JoyAI-Image Edit Plus is a multi-image instruction-guided editing model from the
JoyAI-Image family. It accepts
multiple reference images and a text instruction to generate a new image that combines elements from the references according to the instruction.
1pip uninstall diffusers -y
2pip install git+https://github.com/tangyanf/diffusers.git@add-joyimage-edit-plus
Once the PR is merged into the official diffusers repository, you can switch back to the standard installation:
1import torch
2from PIL import Image
3from diffusers import JoyImageEditPlusPipeline
4
5pipe = JoyImageEditPlusPipeline.from_pretrained(
6 "jdopensource/JoyAI-Image-Edit-Plus-Diffusers",
7 torch_dtype=torch.bfloat16,
8).to("cuda")
9
10# Load reference images
11images = [
12 Image.open("reference_0.png").convert("RGB"),
13 Image.open("reference_1.png").convert("RGB"),
14]
15
16# Determine output resolution from the last reference image
17target_h, target_w = pipe.vae_image_processor.get_default_height_width(images[-1])
18
19# Generate
20result = pipe(
21 images=images,
22 prompt="Combine the person from the second image with the scene from the first image.",
23 negative_prompt="low quality, blurry, deformed",
24 height=target_h,
25 width=target_w,
26 num_inference_steps=30,
27 guidance_scale=4.0,
28 generator=torch.Generator(device="cuda").manual_seed(42),
29)
30result.images[0].save("output.png")
1python inference.py \
2 --model_path jdopensource/JoyAI-Image-Edit-Plus-Diffusers \
3 --images examples/input_0.png examples/input_1.png \
4 --prompt "The woman is lovingly holding the cute puppy in her arms" \
5 --num_inference_steps 30 \
6 --guidance_scale 4.0 \
7 --seed 42 \
8 --output output.png
1@misc{joyai-image-2025,
2 title={JoyAI-Image: A Unified Multimodal Foundation Model for Image Understanding, Generation, and Editing},
3 author={Joy Future Academy, JD},
4 year={2025},
5 url={https://github.com/jd-opensource/JoyAI-Image}
6}