File size: 4,851 Bytes
6259880
5cc8250
 
 
 
6259880
c749a2d
4b12495
c749a2d
6259880
4b12495
5cc8250
4b12495
5cc8250
4b12495
5cc8250
4b12495
b538ab1
 
5cc8250
4b12495
5cc8250
 
 
 
 
 
 
 
 
 
 
4b12495
 
5cc8250
c749a2d
 
a324fc8
 
c749a2d
 
a3b8743
 
5cc8250
a324fc8
cedb79a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4b12495
 
 
a324fc8
 
5cc8250
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
---
tags:
- comfyui
- image-editing
- joyai
license: apache-2.0
library_name: ComfyUI
pipeline_tag: image-to-image
base_model: jdopensource/JoyAI-Image-Edit-Diffusers
---

# JoyAI-Image-Edit-ComfyUI

Repackaged model files for ComfyUI.

Original model repository: https://huggingface.co/jdopensource/JoyAI-Image-Edit-Diffusers

You can also use the same weight in: https://huggingface.co/Comfy-Org/JoyAI-Image-Edit

Place the files in the following folders:

```
ComfyUI/
`-- models/
    |-- diffusion_models/
    |   |-- joyai_image_edit_bf16.safetensors
    |   `-- joyai_image_edit_int8_convrot.safetensors
    |-- text_encoders/
    |   |-- qwen3vl_8b_joyimage_edit_bf16.safetensors
    |   `-- qwen3vl_8b_joyimage_edit_int8_convrot.safetensors
    `-- vae/
        `-- wan_2.1_vae.safetensors
```

Download directly into `ComfyUI/models/`:

```bash
hf download jdopensource/JoyAI-Image-Edit-ComfyUI \
  --local-dir /path/to/ComfyUI/models
```

![image](https://cdn-uploads.huggingface.co/production/uploads/67b58aebb57083505c88a074/BgOKEU-XfA2Twdw7d1uZM.png)

Workflow: [workflow_joyimage_edit.json](workflow_joyimage_edit.json)

## Spatial Editing Reference

JoyAI-Image supports three spatial editing prompt patterns: **Object Move**, **Object Rotation**, and **Camera Control**. For the most stable behavior, we recommend following the prompt templates below as closely as possible.
For more information (including data curation and evaluation strategies), please refer to [SpatialEdit](https://github.com/EasonXiao-888/SpatialEdit).

### Object Move

Use this pattern when you want to move a target object into a specified region.

**Prompt template:**

```text
Move the <object> into the red box and finally remove the red box.
```

**Rules:**

- Replace `<object>` with a clear description of the target object to be moved.
- The **red box** indicates the target destination in the image.
- The phrase **"finally remove the red box"** means the guidance box should not appear in the final edited result.

**Example:**

```text
Move the apple into the red box and finally remove the red box.
```

### Object Rotation

Use this pattern when you want to rotate an object to a specific canonical view.

**Prompt template:**

```text
Rotate the <object> to show the <view> side view.
```

**Supported `<view>` values:**

```
front, right, left, rear, front right, front left, rear right, rear left
```

**Rules:**

- Replace `<object>` with a clear description of the object to rotate.
- Replace `<view>` with one of the supported directions above.
- This instruction is intended to change the **object orientation**, while keeping the object identity and surrounding scene as consistent as possible.

**Examples:**

```text
Rotate the chair to show the front side view.
Rotate the car to show the rear left side view.
```

### Camera Control

Use this pattern when you want to change only the camera viewpoint while keeping the 3D scene itself unchanged.

**Prompt template:**

```text
Move the camera.
- Camera rotation: Yaw {y_rotation}°, Pitch {p_rotation}°.
- Camera zoom: in/out/unchanged.
- Keep the 3D scene static; only change the viewpoint.
```

**Rules:**

- `{y_rotation}` specifies the yaw rotation angle in degrees.
- `{p_rotation}` specifies the pitch rotation angle in degrees.
- `Camera zoom` must be one of: `in`, `out`,`unchanged`
- The last line is important: it explicitly tells the model to preserve the 3D scene content and geometry, and only adjust the camera viewpoint.

**Examples:**

```text
Move the camera.
- Camera rotation: Yaw 45°, Pitch 0°.
- Camera zoom: in.
- Keep the 3D scene static; only change the viewpoint.
```

```text
Move the camera.
- Camera rotation: Yaw -90°, Pitch 20°.
- Camera zoom: unchanged.
- Keep the 3D scene static; only change the viewpoint.
```

### Application

**3D Reconstruction:**

The first and third examples show point clouds with only a single given viewpoint. The second and fourth examples are augmented by [SpatialEdit](https://github.com/EasonXiao-888/SpatialEdit), which synthesizes richer spatial observations from the sparse input view.

**Conditional-frames Based Video Generation:**

Given the first frame, [SpatialEdit](https://github.com/EasonXiao-888/SpatialEdit) first generates the final frame of the video, and a video generation model then creates a smooth rotational transition between them while maintaining background consistency.

## Links

- Source code and documentation: [github.com/jd-opensource/JoyAI-Image](https://github.com/jd-opensource/JoyAI-Image)
- Original Diffusers-format weights: [jdopensource/JoyAI-Image-Edit-Diffusers](https://huggingface.co/jdopensource/JoyAI-Image-Edit-Diffusers)
- Multi-image edit model for ComfyUI: [jdopensource/JoyAI-Image-Edit-Plus-ComfyUI](https://huggingface.co/jdopensource/JoyAI-Image-Edit-Plus-ComfyUI)