aleph65 commited on
Commit
e174bd3
·
verified ·
1 Parent(s): cf39ef9

Add Docker build context for plx1029/comfyui-qwen:v1 (ComfyUI 35c1470 prebaked RunPod image)

Browse files
docker/Dockerfile ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ComfyUI Qwen-Image-Edit base image (H100 / RunPod)
2
+ #
3
+ # NOTE: the image plx1029/comfyui-qwen was NOT built from this file — it was
4
+ # assembled directly on the pod with `crane append` (no Docker daemon on
5
+ # RunPod). This Dockerfile is the reproducible equivalent: building it on any
6
+ # machine with Docker produces the same setup.
7
+ #
8
+ # docker build -t plx1029/comfyui-qwen:v1 docker/
9
+ # docker push plx1029/comfyui-qwen:v1
10
+
11
+ FROM runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404
12
+
13
+ ARG COMFYUI_COMMIT=35c1470935044be5610a81d46e57922a8a598c6c
14
+ ARG RGTHREE_COMMIT=27b4f4cdcf3b127c29d5d8135ac1536ecbd4c383
15
+
16
+ # ComfyUI pinned to the exact commit; torch stack already in base -> only light deps install
17
+ RUN git clone https://github.com/comfyanonymous/ComfyUI.git /ComfyUI && \
18
+ cd /ComfyUI && git checkout ${COMFYUI_COMMIT} && \
19
+ pip install -r requirements.txt
20
+
21
+ # Custom nodes: rgthree (Power Lora Loader) + ComfyUI-Manager
22
+ RUN git clone https://github.com/rgthree/rgthree-comfy.git /ComfyUI/custom_nodes/rgthree-comfy && \
23
+ cd /ComfyUI/custom_nodes/rgthree-comfy && git checkout ${RGTHREE_COMMIT} && \
24
+ pip install comfyui-manager==4.2.2
25
+
26
+ # Manager config baked in: security_level=weak, network_mode=personal_cloud
27
+ COPY config.ini /ComfyUI/user/__manager/config.ini
28
+ COPY comfy.settings.json /ComfyUI/user/default/comfy.settings.json
29
+ COPY workflows/ /ComfyUI/user/default/workflows/
30
+
31
+ # Startup: `comfy` runs ComfyUI (prefers /workspace/ComfyUI when a volume is
32
+ # attached); start-comfy.sh auto-starts it alongside the stock RunPod services.
33
+ COPY comfy /usr/local/bin/comfy
34
+ COPY start-comfy.sh /start-comfy.sh
35
+ RUN chmod +x /usr/local/bin/comfy /start-comfy.sh
36
+
37
+ EXPOSE 7865
38
+ CMD ["/start-comfy.sh"]
docker/README.md ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # plx1029/comfyui-qwen — prebaked ComfyUI image (H100 / RunPod)
2
+
3
+ Everything from the manual setup is baked in — **no reinstalling on new pods**:
4
+
5
+ - Base: `runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404` (torch 2.8.0+cu128, Python 3.12)
6
+ - ComfyUI @ `35c1470935044be5610a81d46e57922a8a598c6c` at `/ComfyUI`
7
+ - rgthree-comfy @ `27b4f4c` in `custom_nodes/`
8
+ - comfyui-manager 4.2.2 + all pip deps (65 packages) preinstalled system-wide
9
+ - Manager config baked: `security_level = weak`, `network_mode = personal_cloud`
10
+ - Workflows baked into the workflow browser: `qwen-loras-very-good-nsfw.json`, `qwen-edit-nsfw.json`
11
+ - ComfyUI **auto-starts on pod boot** on port **7865** (log: `/workspace/comfyui.log`)
12
+
13
+ Models are NOT in the image (keep them on the network volume, as before).
14
+
15
+ ## Using it on RunPod
16
+
17
+ 1. Create a template with container image `plx1029/comfyui-qwen:v1`.
18
+ 2. Expose HTTP port **7865** (plus 8888/22 as usual).
19
+ 3. Attach your network volume at `/workspace`.
20
+
21
+ On boot the image:
22
+ - uses `/workspace/ComfyUI` if it exists (your current volume — models already there);
23
+ - otherwise seeds a fresh `/workspace/ComfyUI` from the baked-in copy (download models per the main README);
24
+ - SSH / Jupyter / nginx from the stock RunPod start script still work normally.
25
+
26
+ Manual control: `COMFY_AUTOSTART=false` env var disables auto-start; run `comfy` in a
27
+ terminal to start it by hand. `COMFY_PORT` overrides the port.
28
+
29
+ ## How the image was built
30
+
31
+ No Docker daemon exists on RunPod pods, so the image was assembled *on the pod
32
+ itself* with [`crane`](https://github.com/google/go-containerregistry): the exact
33
+ pip-package delta vs the base image (identified via dist-info RECORDs) plus the
34
+ pinned git clones were tarred into a single OCI layer and appended onto the base
35
+ image manifest — the 20 GB base was never re-uploaded.
36
+
37
+ `Dockerfile` in this directory is the reproducible equivalent for rebuilding on
38
+ any machine with real Docker:
39
+
40
+ ```bash
41
+ docker build -t plx1029/comfyui-qwen:v1 /workspace/docker
42
+ docker push plx1029/comfyui-qwen:v1
43
+ ```
docker/comfy ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ # Run ComfyUI in the foreground.
3
+ # Prefers /workspace/ComfyUI (network volume, persists models); falls back to
4
+ # the copy baked into the image at /ComfyUI. On a fresh volume, seeds
5
+ # /workspace/ComfyUI from the baked-in copy so models/outputs persist.
6
+ set -e
7
+
8
+ COMFY_PORT="${COMFY_PORT:-7865}"
9
+
10
+ if [[ -d /workspace/ComfyUI ]]; then
11
+ COMFY_HOME=/workspace/ComfyUI
12
+ elif [[ -d /workspace && -w /workspace ]]; then
13
+ echo "Seeding /workspace/ComfyUI from image..."
14
+ cp -a /ComfyUI /workspace/ComfyUI
15
+ COMFY_HOME=/workspace/ComfyUI
16
+ else
17
+ COMFY_HOME=/ComfyUI
18
+ fi
19
+
20
+ echo "Starting ComfyUI from ${COMFY_HOME} on port ${COMFY_PORT}"
21
+ cd "${COMFY_HOME}"
22
+ exec python3 main.py --listen 0.0.0.0 --port "${COMFY_PORT}" "$@"
docker/comfy.settings.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "Comfy.InstalledVersion": "1.45.20",
3
+ "Comfy.TutorialCompleted": true,
4
+ "Comfy.RightSidePanel.IsOpen": true
5
+ }
docker/config.ini ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [default]
2
+ git_exe =
3
+ use_uv = True
4
+ use_unified_resolver = False
5
+ channel_url = https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main
6
+ share_option = all
7
+ bypass_ssl = False
8
+ file_logging = True
9
+ update_policy = stable-comfyui
10
+ windows_selector_event_loop_policy = False
11
+ model_download_by_agent = False
12
+ downgrade_blacklist =
13
+ security_level = weak
14
+ always_lazy_install = False
15
+ network_mode = personal_cloud
16
+ db_mode = cache
17
+ verbose = False
18
+ allow_git_url_install = False
19
+ allow_pip_install = False
20
+
docker/start-comfy.sh ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ # Image CMD: start ComfyUI in the background (auto-restart), then hand off to
3
+ # the stock RunPod /start.sh (SSH, Jupyter, nginx) in the foreground.
4
+ # Set COMFY_AUTOSTART=false in the pod env to disable the auto-start.
5
+
6
+ if [[ "${COMFY_AUTOSTART:-true}" != "false" ]]; then
7
+ LOG=/workspace/comfyui.log
8
+ [[ -d /workspace && -w /workspace ]] || LOG=/var/log/comfyui.log
9
+ (
10
+ while true; do
11
+ /usr/local/bin/comfy >> "$LOG" 2>&1
12
+ echo "[start-comfy] ComfyUI exited ($?), restarting in 5s..." >> "$LOG"
13
+ sleep 5
14
+ done
15
+ ) &
16
+ echo "ComfyUI starting in background (log: $LOG, port ${COMFY_PORT:-7865})"
17
+ fi
18
+
19
+ exec /start.sh
docker/workflows/qwen-edit-nsfw.json ADDED
@@ -0,0 +1,1261 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "91f6bbe2-ed41-4fd6-bac7-71d5b5864ecb",
3
+ "revision": 0,
4
+ "last_node_id": 122,
5
+ "last_link_id": 237,
6
+ "nodes": [
7
+ {
8
+ "id": 88,
9
+ "type": "VAEEncode",
10
+ "pos": [
11
+ 690,
12
+ 30
13
+ ],
14
+ "size": [
15
+ 140,
16
+ 46
17
+ ],
18
+ "flags": {},
19
+ "order": 13,
20
+ "mode": 0,
21
+ "inputs": [
22
+ {
23
+ "name": "pixels",
24
+ "type": "IMAGE",
25
+ "link": 178
26
+ },
27
+ {
28
+ "name": "vae",
29
+ "type": "VAE",
30
+ "link": 236
31
+ }
32
+ ],
33
+ "outputs": [
34
+ {
35
+ "name": "LATENT",
36
+ "type": "LATENT",
37
+ "links": [
38
+ 228
39
+ ]
40
+ }
41
+ ],
42
+ "properties": {
43
+ "Node name for S&R": "VAEEncode",
44
+ "cnr_id": "comfy-core",
45
+ "ver": "0.3.50",
46
+ "enableTabs": false,
47
+ "tabWidth": 65,
48
+ "tabXOffset": 10,
49
+ "hasSecondTab": false,
50
+ "secondTabText": "Send Back",
51
+ "secondTabOffset": 80,
52
+ "secondTabWidth": 65,
53
+ "ue_properties": {
54
+ "widget_ue_connectable": {}
55
+ }
56
+ },
57
+ "widgets_values": []
58
+ },
59
+ {
60
+ "id": 66,
61
+ "type": "ModelSamplingAuraFlow",
62
+ "pos": [
63
+ 450,
64
+ -80
65
+ ],
66
+ "size": [
67
+ 210,
68
+ 58
69
+ ],
70
+ "flags": {},
71
+ "order": 10,
72
+ "mode": 0,
73
+ "inputs": [
74
+ {
75
+ "name": "model",
76
+ "type": "MODEL",
77
+ "link": 191
78
+ }
79
+ ],
80
+ "outputs": [
81
+ {
82
+ "name": "MODEL",
83
+ "type": "MODEL",
84
+ "links": [
85
+ 141
86
+ ]
87
+ }
88
+ ],
89
+ "properties": {
90
+ "Node name for S&R": "ModelSamplingAuraFlow",
91
+ "cnr_id": "comfy-core",
92
+ "ver": "0.3.48",
93
+ "enableTabs": false,
94
+ "tabWidth": 65,
95
+ "tabXOffset": 10,
96
+ "hasSecondTab": false,
97
+ "secondTabText": "Send Back",
98
+ "secondTabOffset": 80,
99
+ "secondTabWidth": 65,
100
+ "widget_ue_connectable": {}
101
+ },
102
+ "widgets_values": [
103
+ 3
104
+ ]
105
+ },
106
+ {
107
+ "id": 75,
108
+ "type": "CFGNorm",
109
+ "pos": [
110
+ 690,
111
+ -80
112
+ ],
113
+ "size": [
114
+ 210,
115
+ 82
116
+ ],
117
+ "flags": {},
118
+ "order": 14,
119
+ "mode": 0,
120
+ "inputs": [
121
+ {
122
+ "name": "model",
123
+ "type": "MODEL",
124
+ "link": 141
125
+ }
126
+ ],
127
+ "outputs": [
128
+ {
129
+ "name": "patched_model",
130
+ "type": "MODEL",
131
+ "links": [
132
+ 225
133
+ ]
134
+ }
135
+ ],
136
+ "properties": {
137
+ "Node name for S&R": "CFGNorm",
138
+ "cnr_id": "comfy-core",
139
+ "ver": "0.3.50",
140
+ "enableTabs": false,
141
+ "tabWidth": 65,
142
+ "tabXOffset": 10,
143
+ "hasSecondTab": false,
144
+ "secondTabText": "Send Back",
145
+ "secondTabOffset": 80,
146
+ "secondTabWidth": 65,
147
+ "ue_properties": {
148
+ "widget_ue_connectable": {
149
+ "strength": true
150
+ }
151
+ }
152
+ },
153
+ "widgets_values": [
154
+ 1,
155
+ false
156
+ ]
157
+ },
158
+ {
159
+ "id": 104,
160
+ "type": "WidgetToString",
161
+ "pos": [
162
+ 110,
163
+ -120
164
+ ],
165
+ "size": [
166
+ 288.072265625,
167
+ 154
168
+ ],
169
+ "flags": {
170
+ "collapsed": true
171
+ },
172
+ "order": 6,
173
+ "mode": 0,
174
+ "inputs": [
175
+ {
176
+ "name": "any_input",
177
+ "shape": 7,
178
+ "type": "*",
179
+ "link": 219
180
+ }
181
+ ],
182
+ "outputs": [
183
+ {
184
+ "name": "STRING",
185
+ "type": "STRING",
186
+ "links": [
187
+ 209
188
+ ]
189
+ }
190
+ ],
191
+ "properties": {
192
+ "Node name for S&R": "WidgetToString",
193
+ "cnr_id": "comfyui-kjnodes",
194
+ "ver": "1.1.9"
195
+ },
196
+ "widgets_values": [
197
+ 0,
198
+ "ckpt_name",
199
+ false,
200
+ "",
201
+ 2
202
+ ]
203
+ },
204
+ {
205
+ "id": 93,
206
+ "type": "ImageScaleToTotalPixels",
207
+ "pos": [
208
+ 450,
209
+ 30
210
+ ],
211
+ "size": [
212
+ 216.4927734375,
213
+ 106
214
+ ],
215
+ "flags": {},
216
+ "order": 8,
217
+ "mode": 0,
218
+ "inputs": [
219
+ {
220
+ "name": "image",
221
+ "type": "IMAGE",
222
+ "link": 199
223
+ }
224
+ ],
225
+ "outputs": [
226
+ {
227
+ "name": "IMAGE",
228
+ "type": "IMAGE",
229
+ "links": [
230
+ 178
231
+ ]
232
+ }
233
+ ],
234
+ "properties": {
235
+ "Node name for S&R": "ImageScaleToTotalPixels",
236
+ "cnr_id": "comfy-core",
237
+ "ver": "0.3.50",
238
+ "enableTabs": false,
239
+ "tabWidth": 65,
240
+ "tabXOffset": 10,
241
+ "hasSecondTab": false,
242
+ "secondTabText": "Send Back",
243
+ "secondTabOffset": 80,
244
+ "secondTabWidth": 65,
245
+ "ue_properties": {
246
+ "widget_ue_connectable": {
247
+ "upscale_method": true,
248
+ "megapixels": true
249
+ }
250
+ }
251
+ },
252
+ "widgets_values": [
253
+ "lanczos",
254
+ 1,
255
+ 1
256
+ ]
257
+ },
258
+ {
259
+ "id": 115,
260
+ "type": "INTConstant",
261
+ "pos": [
262
+ 690,
263
+ 130
264
+ ],
265
+ "size": [
266
+ 210,
267
+ 58
268
+ ],
269
+ "flags": {},
270
+ "order": 0,
271
+ "mode": 0,
272
+ "inputs": [],
273
+ "outputs": [
274
+ {
275
+ "name": "value",
276
+ "type": "INT",
277
+ "links": [
278
+ 206,
279
+ 230
280
+ ]
281
+ }
282
+ ],
283
+ "title": "Steps",
284
+ "properties": {
285
+ "Node name for S&R": "INTConstant",
286
+ "cnr_id": "comfyui-kjnodes",
287
+ "ver": "1.1.9"
288
+ },
289
+ "widgets_values": [
290
+ 8
291
+ ],
292
+ "color": "#1b4669",
293
+ "bgcolor": "#29699c"
294
+ },
295
+ {
296
+ "id": 77,
297
+ "type": "TextEncodeQwenImageEdit",
298
+ "pos": [
299
+ 520,
300
+ 780
301
+ ],
302
+ "size": [
303
+ 380,
304
+ 140
305
+ ],
306
+ "flags": {},
307
+ "order": 11,
308
+ "mode": 0,
309
+ "inputs": [
310
+ {
311
+ "name": "clip",
312
+ "type": "CLIP",
313
+ "link": 202
314
+ },
315
+ {
316
+ "name": "vae",
317
+ "shape": 7,
318
+ "type": "VAE",
319
+ "link": 235
320
+ },
321
+ {
322
+ "name": "image",
323
+ "shape": 7,
324
+ "type": "IMAGE",
325
+ "link": 223
326
+ }
327
+ ],
328
+ "outputs": [
329
+ {
330
+ "name": "CONDITIONING",
331
+ "type": "CONDITIONING",
332
+ "links": [
333
+ 227
334
+ ]
335
+ }
336
+ ],
337
+ "properties": {
338
+ "Node name for S&R": "TextEncodeQwenImageEdit",
339
+ "cnr_id": "comfy-core",
340
+ "ver": "0.3.50",
341
+ "enableTabs": false,
342
+ "tabWidth": 65,
343
+ "tabXOffset": 10,
344
+ "hasSecondTab": false,
345
+ "secondTabText": "Send Back",
346
+ "secondTabOffset": 80,
347
+ "secondTabWidth": 65,
348
+ "ue_properties": {
349
+ "widget_ue_connectable": {
350
+ "prompt": true
351
+ }
352
+ }
353
+ },
354
+ "widgets_values": [
355
+ "ugly, blurry, distorted, artifacts, bad, wrong, low quality, anime, digital art, semirealistic, cartoon, manga, drawing, fake, unreal, "
356
+ ],
357
+ "color": "#322",
358
+ "bgcolor": "#533"
359
+ },
360
+ {
361
+ "id": 8,
362
+ "type": "VAEDecode",
363
+ "pos": [
364
+ 1180,
365
+ -80
366
+ ],
367
+ "size": [
368
+ 210,
369
+ 46
370
+ ],
371
+ "flags": {
372
+ "collapsed": false
373
+ },
374
+ "order": 16,
375
+ "mode": 0,
376
+ "inputs": [
377
+ {
378
+ "name": "samples",
379
+ "type": "LATENT",
380
+ "link": 231
381
+ },
382
+ {
383
+ "name": "vae",
384
+ "type": "VAE",
385
+ "link": 233
386
+ }
387
+ ],
388
+ "outputs": [
389
+ {
390
+ "name": "IMAGE",
391
+ "type": "IMAGE",
392
+ "slot_index": 0,
393
+ "links": [
394
+ 188
395
+ ]
396
+ }
397
+ ],
398
+ "properties": {
399
+ "Node name for S&R": "VAEDecode",
400
+ "cnr_id": "comfy-core",
401
+ "ver": "0.3.48",
402
+ "enableTabs": false,
403
+ "tabWidth": 65,
404
+ "tabXOffset": 10,
405
+ "hasSecondTab": false,
406
+ "secondTabText": "Send Back",
407
+ "secondTabOffset": 80,
408
+ "secondTabWidth": 65,
409
+ "widget_ue_connectable": {}
410
+ },
411
+ "widgets_values": []
412
+ },
413
+ {
414
+ "id": 117,
415
+ "type": "PrimitiveInt",
416
+ "pos": [
417
+ 690,
418
+ 230
419
+ ],
420
+ "size": [
421
+ 210,
422
+ 82
423
+ ],
424
+ "flags": {},
425
+ "order": 1,
426
+ "mode": 0,
427
+ "inputs": [],
428
+ "outputs": [
429
+ {
430
+ "name": "INT",
431
+ "type": "INT",
432
+ "links": [
433
+ 211,
434
+ 229
435
+ ]
436
+ }
437
+ ],
438
+ "title": "Seed",
439
+ "properties": {
440
+ "Node name for S&R": "PrimitiveInt",
441
+ "cnr_id": "comfy-core",
442
+ "ver": "0.3.66"
443
+ },
444
+ "widgets_values": [
445
+ 0,
446
+ "fixed"
447
+ ]
448
+ },
449
+ {
450
+ "id": 118,
451
+ "type": "CheckpointLoaderSimple",
452
+ "pos": [
453
+ -371.2148870314887,
454
+ -80
455
+ ],
456
+ "size": [
457
+ 250,
458
+ 98
459
+ ],
460
+ "flags": {},
461
+ "order": 2,
462
+ "mode": 0,
463
+ "inputs": [],
464
+ "outputs": [
465
+ {
466
+ "name": "MODEL",
467
+ "type": "MODEL",
468
+ "links": [
469
+ 214,
470
+ 219
471
+ ]
472
+ },
473
+ {
474
+ "name": "CLIP",
475
+ "type": "CLIP",
476
+ "links": [
477
+ 232
478
+ ]
479
+ },
480
+ {
481
+ "name": "VAE",
482
+ "type": "VAE",
483
+ "links": [
484
+ 233,
485
+ 234,
486
+ 235,
487
+ 236
488
+ ]
489
+ }
490
+ ],
491
+ "properties": {
492
+ "Node name for S&R": "CheckpointLoaderSimple",
493
+ "cnr_id": "comfy-core",
494
+ "ver": "0.3.66"
495
+ },
496
+ "widgets_values": [
497
+ "Qwen-Rapid-AIO-NSFW-v11.4.safetensors"
498
+ ]
499
+ },
500
+ {
501
+ "id": 102,
502
+ "type": "Image Saver Simple",
503
+ "pos": [
504
+ 25.725592148344973,
505
+ 350.31616333407857
506
+ ],
507
+ "size": [
508
+ 360,
509
+ 780
510
+ ],
511
+ "flags": {},
512
+ "order": 17,
513
+ "mode": 0,
514
+ "inputs": [
515
+ {
516
+ "name": "images",
517
+ "type": "IMAGE",
518
+ "link": 188
519
+ },
520
+ {
521
+ "name": "metadata",
522
+ "shape": 7,
523
+ "type": "METADATA",
524
+ "link": 208
525
+ }
526
+ ],
527
+ "outputs": [
528
+ {
529
+ "name": "hashes",
530
+ "type": "STRING",
531
+ "links": null
532
+ },
533
+ {
534
+ "name": "a1111_params",
535
+ "type": "STRING",
536
+ "links": null
537
+ }
538
+ ],
539
+ "properties": {
540
+ "Node name for S&R": "Image Saver Simple",
541
+ "cnr_id": "comfyui-image-saver",
542
+ "ver": "1.16.0"
543
+ },
544
+ "widgets_values": [
545
+ "%time_%basemodelname_%seed",
546
+ "qwen_edit/%date",
547
+ "webp",
548
+ false,
549
+ 100,
550
+ false,
551
+ true,
552
+ false,
553
+ 0,
554
+ "%Y-%m-%d-%H%M%S",
555
+ true
556
+ ]
557
+ },
558
+ {
559
+ "id": 103,
560
+ "type": "Power Lora Loader (rgthree)",
561
+ "pos": [
562
+ -77.9282870313215,
563
+ -250.47591148625898
564
+ ],
565
+ "size": [
566
+ 380,
567
+ 190
568
+ ],
569
+ "flags": {},
570
+ "order": 7,
571
+ "mode": 0,
572
+ "inputs": [
573
+ {
574
+ "dir": 3,
575
+ "name": "model",
576
+ "type": "MODEL",
577
+ "link": 214
578
+ },
579
+ {
580
+ "dir": 3,
581
+ "name": "clip",
582
+ "type": "CLIP",
583
+ "link": 232
584
+ }
585
+ ],
586
+ "outputs": [
587
+ {
588
+ "dir": 4,
589
+ "name": "MODEL",
590
+ "shape": 3,
591
+ "type": "MODEL",
592
+ "links": [
593
+ 191
594
+ ]
595
+ },
596
+ {
597
+ "dir": 4,
598
+ "name": "CLIP",
599
+ "shape": 3,
600
+ "type": "CLIP",
601
+ "links": [
602
+ 202,
603
+ 216
604
+ ]
605
+ }
606
+ ],
607
+ "properties": {
608
+ "Show Strengths": "Single Strength",
609
+ "Match": "",
610
+ "cnr_id": "rgthree-comfy",
611
+ "ver": "1.0.2510052058"
612
+ },
613
+ "widgets_values": [
614
+ {},
615
+ {
616
+ "type": "PowerLoraLoaderHeaderWidget"
617
+ },
618
+ {
619
+ "on": false,
620
+ "lora": "qwen_edit\\next-scene_lora-v2-3000.safetensors",
621
+ "strength": 1,
622
+ "strengthTwo": null
623
+ },
624
+ {},
625
+ ""
626
+ ]
627
+ },
628
+ {
629
+ "id": 99,
630
+ "type": "MarkdownNote",
631
+ "pos": [
632
+ 1435.731336272329,
633
+ -12.02964538951973
634
+ ],
635
+ "size": [
636
+ 410,
637
+ 410
638
+ ],
639
+ "flags": {},
640
+ "order": 3,
641
+ "mode": 0,
642
+ "inputs": [],
643
+ "outputs": [],
644
+ "title": "Model links",
645
+ "properties": {
646
+ "widget_ue_connectable": {}
647
+ },
648
+ "widgets_values": [
649
+ "## Model links\n\n### Checkpoint\n- [Qwen-Image-Edit-Rapid-AIO](https://huggingface.co/Phr00t/Qwen-Image-Edit-Rapid-AIO)\n\n### Text Encoders\n- [qwen_2.5_vl_7b_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors)\n\n### VAE\n- [qwen_image_vae.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/vae/qwen_image_vae.safetensors)\n\nModel Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 checkpoints/\n│ │ └── Qwen-Rapid-AIO-NSFW-v11.1.safetensors\n│ ├── 📂 text_encoders/\n│ │ └── qwen_2.5_vl_7b_fp8_scaled.safetensors\n│ └── 📂 vae/\n│ └── qwen_image_vae.safetensors\n```\n"
650
+ ],
651
+ "color": "#432",
652
+ "bgcolor": "#653"
653
+ },
654
+ {
655
+ "id": 106,
656
+ "type": "Image Saver Metadata",
657
+ "pos": [
658
+ 1185.589459165019,
659
+ 450.9553780555401
660
+ ],
661
+ "size": [
662
+ 228.3359375,
663
+ 518
664
+ ],
665
+ "flags": {},
666
+ "order": 9,
667
+ "mode": 0,
668
+ "inputs": [
669
+ {
670
+ "name": "modelname",
671
+ "shape": 7,
672
+ "type": "STRING",
673
+ "widget": {
674
+ "name": "modelname"
675
+ },
676
+ "link": 209
677
+ },
678
+ {
679
+ "name": "seed_value",
680
+ "shape": 7,
681
+ "type": "INT",
682
+ "widget": {
683
+ "name": "seed_value"
684
+ },
685
+ "link": 211
686
+ },
687
+ {
688
+ "name": "steps",
689
+ "shape": 7,
690
+ "type": "INT",
691
+ "widget": {
692
+ "name": "steps"
693
+ },
694
+ "link": 206
695
+ }
696
+ ],
697
+ "outputs": [
698
+ {
699
+ "name": "metadata",
700
+ "type": "METADATA",
701
+ "links": [
702
+ 208
703
+ ]
704
+ },
705
+ {
706
+ "name": "hashes",
707
+ "type": "STRING",
708
+ "links": null
709
+ },
710
+ {
711
+ "name": "a1111_params",
712
+ "type": "STRING",
713
+ "links": null
714
+ }
715
+ ],
716
+ "properties": {
717
+ "Node name for S&R": "Image Saver Metadata",
718
+ "cnr_id": "comfyui-image-saver",
719
+ "ver": "1.16.0"
720
+ },
721
+ "widgets_values": [
722
+ "",
723
+ "unknown",
724
+ "unknown",
725
+ 512,
726
+ 512,
727
+ 0,
728
+ 20,
729
+ 1,
730
+ "euler",
731
+ "beta57",
732
+ 1,
733
+ 0,
734
+ "",
735
+ true,
736
+ true,
737
+ ""
738
+ ]
739
+ },
740
+ {
741
+ "id": 121,
742
+ "type": "ClownsharKSampler_Beta",
743
+ "pos": [
744
+ 1067.5348079646246,
745
+ -29.345573384207366
746
+ ],
747
+ "size": [
748
+ 230,
749
+ 418
750
+ ],
751
+ "flags": {},
752
+ "order": 15,
753
+ "mode": 0,
754
+ "inputs": [
755
+ {
756
+ "name": "model",
757
+ "shape": 7,
758
+ "type": "MODEL",
759
+ "link": 225
760
+ },
761
+ {
762
+ "name": "positive",
763
+ "shape": 7,
764
+ "type": "CONDITIONING",
765
+ "link": 226
766
+ },
767
+ {
768
+ "name": "negative",
769
+ "shape": 7,
770
+ "type": "CONDITIONING",
771
+ "link": 227
772
+ },
773
+ {
774
+ "name": "latent_image",
775
+ "shape": 7,
776
+ "type": "LATENT",
777
+ "link": 228
778
+ },
779
+ {
780
+ "name": "sigmas",
781
+ "shape": 7,
782
+ "type": "SIGMAS",
783
+ "link": null
784
+ },
785
+ {
786
+ "name": "guides",
787
+ "shape": 7,
788
+ "type": "GUIDES",
789
+ "link": null
790
+ },
791
+ {
792
+ "name": "options",
793
+ "shape": 7,
794
+ "type": "OPTIONS",
795
+ "link": null
796
+ },
797
+ {
798
+ "name": "steps",
799
+ "type": "INT",
800
+ "widget": {
801
+ "name": "steps"
802
+ },
803
+ "link": 230
804
+ },
805
+ {
806
+ "name": "seed",
807
+ "type": "INT",
808
+ "widget": {
809
+ "name": "seed"
810
+ },
811
+ "link": 229
812
+ }
813
+ ],
814
+ "outputs": [
815
+ {
816
+ "name": "output",
817
+ "type": "LATENT",
818
+ "links": null
819
+ },
820
+ {
821
+ "name": "denoised",
822
+ "type": "LATENT",
823
+ "links": [
824
+ 231
825
+ ]
826
+ },
827
+ {
828
+ "name": "options",
829
+ "type": "OPTIONS",
830
+ "links": null
831
+ }
832
+ ],
833
+ "properties": {
834
+ "Node name for S&R": "ClownsharKSampler_Beta",
835
+ "cnr_id": "RES4LYF",
836
+ "ver": "46de917234f9fef3f2ab411c41e07aa3c633f4f7"
837
+ },
838
+ "widgets_values": [
839
+ 0.5,
840
+ "linear/euler",
841
+ "simple",
842
+ 30,
843
+ -1,
844
+ 1,
845
+ 1,
846
+ 0,
847
+ "fixed",
848
+ "standard",
849
+ true
850
+ ]
851
+ },
852
+ {
853
+ "id": 78,
854
+ "type": "LoadImage",
855
+ "pos": [
856
+ -469.1334150414443,
857
+ 126.00739853397658
858
+ ],
859
+ "size": [
860
+ 330,
861
+ 540
862
+ ],
863
+ "flags": {},
864
+ "order": 4,
865
+ "mode": 0,
866
+ "inputs": [],
867
+ "outputs": [
868
+ {
869
+ "name": "IMAGE",
870
+ "type": "IMAGE",
871
+ "links": [
872
+ 199,
873
+ 223,
874
+ 224
875
+ ]
876
+ },
877
+ {
878
+ "name": "MASK",
879
+ "type": "MASK",
880
+ "links": null
881
+ }
882
+ ],
883
+ "properties": {
884
+ "Node name for S&R": "LoadImage",
885
+ "cnr_id": "comfy-core",
886
+ "ver": "0.3.50",
887
+ "enableTabs": false,
888
+ "tabWidth": 65,
889
+ "tabXOffset": 10,
890
+ "hasSecondTab": false,
891
+ "secondTabText": "Send Back",
892
+ "secondTabOffset": 80,
893
+ "secondTabWidth": 65,
894
+ "ue_properties": {
895
+ "widget_ue_connectable": {
896
+ "image": true,
897
+ "upload": true
898
+ }
899
+ }
900
+ },
901
+ "widgets_values": [
902
+ "_DSC5579.jpg",
903
+ "image"
904
+ ]
905
+ },
906
+ {
907
+ "id": 119,
908
+ "type": "TextEncodeQwenImageEditPlus",
909
+ "pos": [
910
+ 520,
911
+ 360
912
+ ],
913
+ "size": [
914
+ 380,
915
+ 360
916
+ ],
917
+ "flags": {},
918
+ "order": 12,
919
+ "mode": 0,
920
+ "inputs": [
921
+ {
922
+ "name": "clip",
923
+ "type": "CLIP",
924
+ "link": 216
925
+ },
926
+ {
927
+ "name": "vae",
928
+ "shape": 7,
929
+ "type": "VAE",
930
+ "link": 234
931
+ },
932
+ {
933
+ "name": "image1",
934
+ "shape": 7,
935
+ "type": "IMAGE",
936
+ "link": 224
937
+ },
938
+ {
939
+ "name": "image2",
940
+ "shape": 7,
941
+ "type": "IMAGE",
942
+ "link": 237
943
+ },
944
+ {
945
+ "name": "image3",
946
+ "shape": 7,
947
+ "type": "IMAGE",
948
+ "link": null
949
+ },
950
+ {
951
+ "name": "image4",
952
+ "shape": 7,
953
+ "type": "IMAGE",
954
+ "link": null
955
+ }
956
+ ],
957
+ "outputs": [
958
+ {
959
+ "name": "CONDITIONING",
960
+ "type": "CONDITIONING",
961
+ "links": [
962
+ 226
963
+ ]
964
+ }
965
+ ],
966
+ "properties": {
967
+ "Node name for S&R": "TextEncodeQwenImageEditPlus",
968
+ "cnr_id": "comfy-core",
969
+ "ver": "0.3.66"
970
+ },
971
+ "widgets_values": [
972
+ "replace the outfit of the first image subject with outfit in the second image, don't change anything else"
973
+ ]
974
+ },
975
+ {
976
+ "id": 122,
977
+ "type": "LoadImage",
978
+ "pos": [
979
+ -479.04619805529876,
980
+ 738.5564482700898
981
+ ],
982
+ "size": [
983
+ 330,
984
+ 540
985
+ ],
986
+ "flags": {},
987
+ "order": 5,
988
+ "mode": 0,
989
+ "inputs": [],
990
+ "outputs": [
991
+ {
992
+ "name": "IMAGE",
993
+ "type": "IMAGE",
994
+ "links": [
995
+ 237
996
+ ]
997
+ },
998
+ {
999
+ "name": "MASK",
1000
+ "type": "MASK",
1001
+ "links": null
1002
+ }
1003
+ ],
1004
+ "title": "Reference image 2 (hat)",
1005
+ "properties": {
1006
+ "Node name for S&R": "LoadImage",
1007
+ "cnr_id": "comfy-core",
1008
+ "ver": "0.3.50"
1009
+ },
1010
+ "widgets_values": [
1011
+ "Screenshot 2026-07-02 at 7.45.25 PM.png",
1012
+ "image"
1013
+ ]
1014
+ }
1015
+ ],
1016
+ "links": [
1017
+ [
1018
+ 141,
1019
+ 66,
1020
+ 0,
1021
+ 75,
1022
+ 0,
1023
+ "MODEL"
1024
+ ],
1025
+ [
1026
+ 178,
1027
+ 93,
1028
+ 0,
1029
+ 88,
1030
+ 0,
1031
+ "IMAGE"
1032
+ ],
1033
+ [
1034
+ 188,
1035
+ 8,
1036
+ 0,
1037
+ 102,
1038
+ 0,
1039
+ "IMAGE"
1040
+ ],
1041
+ [
1042
+ 191,
1043
+ 103,
1044
+ 0,
1045
+ 66,
1046
+ 0,
1047
+ "MODEL"
1048
+ ],
1049
+ [
1050
+ 199,
1051
+ 78,
1052
+ 0,
1053
+ 93,
1054
+ 0,
1055
+ "IMAGE"
1056
+ ],
1057
+ [
1058
+ 202,
1059
+ 103,
1060
+ 1,
1061
+ 77,
1062
+ 0,
1063
+ "CLIP"
1064
+ ],
1065
+ [
1066
+ 206,
1067
+ 115,
1068
+ 0,
1069
+ 106,
1070
+ 2,
1071
+ "INT"
1072
+ ],
1073
+ [
1074
+ 208,
1075
+ 106,
1076
+ 0,
1077
+ 102,
1078
+ 1,
1079
+ "METADATA"
1080
+ ],
1081
+ [
1082
+ 209,
1083
+ 104,
1084
+ 0,
1085
+ 106,
1086
+ 0,
1087
+ "STRING"
1088
+ ],
1089
+ [
1090
+ 211,
1091
+ 117,
1092
+ 0,
1093
+ 106,
1094
+ 1,
1095
+ "INT"
1096
+ ],
1097
+ [
1098
+ 214,
1099
+ 118,
1100
+ 0,
1101
+ 103,
1102
+ 0,
1103
+ "MODEL"
1104
+ ],
1105
+ [
1106
+ 216,
1107
+ 103,
1108
+ 1,
1109
+ 119,
1110
+ 0,
1111
+ "CLIP"
1112
+ ],
1113
+ [
1114
+ 219,
1115
+ 118,
1116
+ 0,
1117
+ 104,
1118
+ 0,
1119
+ "*"
1120
+ ],
1121
+ [
1122
+ 223,
1123
+ 78,
1124
+ 0,
1125
+ 77,
1126
+ 2,
1127
+ "IMAGE"
1128
+ ],
1129
+ [
1130
+ 224,
1131
+ 78,
1132
+ 0,
1133
+ 119,
1134
+ 2,
1135
+ "IMAGE"
1136
+ ],
1137
+ [
1138
+ 225,
1139
+ 75,
1140
+ 0,
1141
+ 121,
1142
+ 0,
1143
+ "MODEL"
1144
+ ],
1145
+ [
1146
+ 226,
1147
+ 119,
1148
+ 0,
1149
+ 121,
1150
+ 1,
1151
+ "CONDITIONING"
1152
+ ],
1153
+ [
1154
+ 227,
1155
+ 77,
1156
+ 0,
1157
+ 121,
1158
+ 2,
1159
+ "CONDITIONING"
1160
+ ],
1161
+ [
1162
+ 228,
1163
+ 88,
1164
+ 0,
1165
+ 121,
1166
+ 3,
1167
+ "LATENT"
1168
+ ],
1169
+ [
1170
+ 229,
1171
+ 117,
1172
+ 0,
1173
+ 121,
1174
+ 8,
1175
+ "INT"
1176
+ ],
1177
+ [
1178
+ 230,
1179
+ 115,
1180
+ 0,
1181
+ 121,
1182
+ 7,
1183
+ "INT"
1184
+ ],
1185
+ [
1186
+ 231,
1187
+ 121,
1188
+ 1,
1189
+ 8,
1190
+ 0,
1191
+ "LATENT"
1192
+ ],
1193
+ [
1194
+ 232,
1195
+ 118,
1196
+ 1,
1197
+ 103,
1198
+ 1,
1199
+ "CLIP"
1200
+ ],
1201
+ [
1202
+ 233,
1203
+ 118,
1204
+ 2,
1205
+ 8,
1206
+ 1,
1207
+ "VAE"
1208
+ ],
1209
+ [
1210
+ 234,
1211
+ 118,
1212
+ 2,
1213
+ 119,
1214
+ 1,
1215
+ "VAE"
1216
+ ],
1217
+ [
1218
+ 235,
1219
+ 118,
1220
+ 2,
1221
+ 77,
1222
+ 1,
1223
+ "VAE"
1224
+ ],
1225
+ [
1226
+ 236,
1227
+ 118,
1228
+ 2,
1229
+ 88,
1230
+ 1,
1231
+ "VAE"
1232
+ ],
1233
+ [
1234
+ 237,
1235
+ 122,
1236
+ 0,
1237
+ 119,
1238
+ 3,
1239
+ "IMAGE"
1240
+ ]
1241
+ ],
1242
+ "groups": [],
1243
+ "config": {},
1244
+ "extra": {
1245
+ "ds": {
1246
+ "scale": 0.6991983426254801,
1247
+ "offset": [
1248
+ 924.7878967353189,
1249
+ -146.6276141192488
1250
+ ]
1251
+ },
1252
+ "frontendVersion": "1.45.20",
1253
+ "ue_links": [],
1254
+ "links_added_by_ue": [],
1255
+ "VHS_latentpreview": false,
1256
+ "VHS_latentpreviewrate": 0,
1257
+ "VHS_MetadataImage": true,
1258
+ "VHS_KeepIntermediate": true
1259
+ },
1260
+ "version": 0.4
1261
+ }
docker/workflows/qwen-loras-very-good-nsfw.json ADDED
@@ -0,0 +1,1505 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "48200475-15bb-4d5d-8515-54b203e06530",
3
+ "revision": 0,
4
+ "last_node_id": 28,
5
+ "last_link_id": 37,
6
+ "nodes": [
7
+ {
8
+ "id": 2,
9
+ "type": "CLIPLoader",
10
+ "pos": [
11
+ -1560,
12
+ -30
13
+ ],
14
+ "size": [
15
+ 380,
16
+ 110
17
+ ],
18
+ "flags": {},
19
+ "order": 0,
20
+ "mode": 0,
21
+ "inputs": [],
22
+ "outputs": [
23
+ {
24
+ "name": "CLIP",
25
+ "type": "CLIP",
26
+ "slot_index": 0,
27
+ "links": [
28
+ 4
29
+ ]
30
+ }
31
+ ],
32
+ "properties": {
33
+ "Node name for S&R": "CLIPLoader"
34
+ },
35
+ "widgets_values": [
36
+ "qwen_2.5_vl_7b_fp8_scaled.safetensors",
37
+ "qwen_image",
38
+ "default"
39
+ ]
40
+ },
41
+ {
42
+ "id": 3,
43
+ "type": "VAELoader",
44
+ "pos": [
45
+ -1560,
46
+ 140
47
+ ],
48
+ "size": [
49
+ 380,
50
+ 60
51
+ ],
52
+ "flags": {},
53
+ "order": 1,
54
+ "mode": 0,
55
+ "inputs": [],
56
+ "outputs": [
57
+ {
58
+ "name": "VAE",
59
+ "type": "VAE",
60
+ "slot_index": 0,
61
+ "links": [
62
+ 12,
63
+ 13,
64
+ 22,
65
+ 33
66
+ ]
67
+ }
68
+ ],
69
+ "properties": {
70
+ "Node name for S&R": "VAELoader"
71
+ },
72
+ "widgets_values": [
73
+ "qwen_image_vae.safetensors"
74
+ ]
75
+ },
76
+ {
77
+ "id": 6,
78
+ "type": "ModelSamplingAuraFlow",
79
+ "pos": [
80
+ -1120,
81
+ -160
82
+ ],
83
+ "size": [
84
+ 280,
85
+ 60
86
+ ],
87
+ "flags": {},
88
+ "order": 11,
89
+ "mode": 0,
90
+ "inputs": [
91
+ {
92
+ "name": "model",
93
+ "type": "MODEL",
94
+ "link": 1
95
+ }
96
+ ],
97
+ "outputs": [
98
+ {
99
+ "name": "MODEL",
100
+ "type": "MODEL",
101
+ "slot_index": 0,
102
+ "links": [
103
+ 2
104
+ ]
105
+ }
106
+ ],
107
+ "properties": {
108
+ "Node name for S&R": "ModelSamplingAuraFlow"
109
+ },
110
+ "widgets_values": [
111
+ 3.1
112
+ ]
113
+ },
114
+ {
115
+ "id": 7,
116
+ "type": "CFGNorm",
117
+ "pos": [
118
+ -820,
119
+ -160
120
+ ],
121
+ "size": [
122
+ 280,
123
+ 82
124
+ ],
125
+ "flags": {},
126
+ "order": 16,
127
+ "mode": 0,
128
+ "inputs": [
129
+ {
130
+ "name": "model",
131
+ "type": "MODEL",
132
+ "link": 2
133
+ }
134
+ ],
135
+ "outputs": [
136
+ {
137
+ "name": "patched_model",
138
+ "type": "MODEL",
139
+ "slot_index": 0,
140
+ "links": [
141
+ 3
142
+ ]
143
+ }
144
+ ],
145
+ "properties": {
146
+ "Node name for S&R": "CFGNorm"
147
+ },
148
+ "widgets_values": [
149
+ 1,
150
+ false
151
+ ]
152
+ },
153
+ {
154
+ "id": 12,
155
+ "type": "PrimitiveInt",
156
+ "pos": [
157
+ -120,
158
+ 60
159
+ ],
160
+ "size": [
161
+ 300,
162
+ 90
163
+ ],
164
+ "flags": {},
165
+ "order": 2,
166
+ "mode": 0,
167
+ "inputs": [],
168
+ "outputs": [
169
+ {
170
+ "name": "INT",
171
+ "type": "INT",
172
+ "slot_index": 0,
173
+ "links": [
174
+ 24
175
+ ]
176
+ }
177
+ ],
178
+ "title": "Full steps",
179
+ "properties": {
180
+ "Node name for S&R": "PrimitiveInt"
181
+ },
182
+ "widgets_values": [
183
+ 20,
184
+ "fixed"
185
+ ]
186
+ },
187
+ {
188
+ "id": 13,
189
+ "type": "PrimitiveInt",
190
+ "pos": [
191
+ -120,
192
+ 200
193
+ ],
194
+ "size": [
195
+ 300,
196
+ 90
197
+ ],
198
+ "flags": {},
199
+ "order": 3,
200
+ "mode": 0,
201
+ "inputs": [],
202
+ "outputs": [
203
+ {
204
+ "name": "INT",
205
+ "type": "INT",
206
+ "slot_index": 0,
207
+ "links": [
208
+ 25
209
+ ]
210
+ }
211
+ ],
212
+ "title": "Accel steps",
213
+ "properties": {
214
+ "Node name for S&R": "PrimitiveInt"
215
+ },
216
+ "widgets_values": [
217
+ 4,
218
+ "fixed"
219
+ ]
220
+ },
221
+ {
222
+ "id": 14,
223
+ "type": "ComfySwitchNode",
224
+ "pos": [
225
+ 320,
226
+ 60
227
+ ],
228
+ "size": [
229
+ 260,
230
+ 110
231
+ ],
232
+ "flags": {},
233
+ "order": 14,
234
+ "mode": 0,
235
+ "inputs": [
236
+ {
237
+ "name": "on_false",
238
+ "type": "INT",
239
+ "link": 24
240
+ },
241
+ {
242
+ "name": "on_true",
243
+ "type": "INT",
244
+ "link": 25
245
+ },
246
+ {
247
+ "name": "switch",
248
+ "type": "BOOLEAN",
249
+ "widget": {
250
+ "name": "switch"
251
+ },
252
+ "link": 26
253
+ }
254
+ ],
255
+ "outputs": [
256
+ {
257
+ "name": "output",
258
+ "type": "INT",
259
+ "slot_index": 0,
260
+ "links": [
261
+ 27
262
+ ]
263
+ }
264
+ ],
265
+ "title": "Switch: STEPS",
266
+ "properties": {
267
+ "Node name for S&R": "ComfySwitchNode"
268
+ },
269
+ "widgets_values": [
270
+ false
271
+ ]
272
+ },
273
+ {
274
+ "id": 15,
275
+ "type": "PrimitiveFloat",
276
+ "pos": [
277
+ -120,
278
+ 340
279
+ ],
280
+ "size": [
281
+ 300,
282
+ 90
283
+ ],
284
+ "flags": {},
285
+ "order": 4,
286
+ "mode": 0,
287
+ "inputs": [],
288
+ "outputs": [
289
+ {
290
+ "name": "FLOAT",
291
+ "type": "FLOAT",
292
+ "slot_index": 0,
293
+ "links": [
294
+ 28
295
+ ]
296
+ }
297
+ ],
298
+ "title": "Full CFG",
299
+ "properties": {
300
+ "Node name for S&R": "PrimitiveFloat"
301
+ },
302
+ "widgets_values": [
303
+ 4
304
+ ]
305
+ },
306
+ {
307
+ "id": 16,
308
+ "type": "PrimitiveFloat",
309
+ "pos": [
310
+ -120,
311
+ 480
312
+ ],
313
+ "size": [
314
+ 300,
315
+ 90
316
+ ],
317
+ "flags": {},
318
+ "order": 5,
319
+ "mode": 0,
320
+ "inputs": [],
321
+ "outputs": [
322
+ {
323
+ "name": "FLOAT",
324
+ "type": "FLOAT",
325
+ "slot_index": 0,
326
+ "links": [
327
+ 29
328
+ ]
329
+ }
330
+ ],
331
+ "title": "Accel CFG",
332
+ "properties": {
333
+ "Node name for S&R": "PrimitiveFloat"
334
+ },
335
+ "widgets_values": [
336
+ 1
337
+ ]
338
+ },
339
+ {
340
+ "id": 17,
341
+ "type": "ComfySwitchNode",
342
+ "pos": [
343
+ 320,
344
+ 340
345
+ ],
346
+ "size": [
347
+ 260,
348
+ 110
349
+ ],
350
+ "flags": {},
351
+ "order": 15,
352
+ "mode": 0,
353
+ "inputs": [
354
+ {
355
+ "name": "on_false",
356
+ "type": "FLOAT",
357
+ "link": 28
358
+ },
359
+ {
360
+ "name": "on_true",
361
+ "type": "FLOAT",
362
+ "link": 29
363
+ },
364
+ {
365
+ "name": "switch",
366
+ "type": "BOOLEAN",
367
+ "widget": {
368
+ "name": "switch"
369
+ },
370
+ "link": 30
371
+ }
372
+ ],
373
+ "outputs": [
374
+ {
375
+ "name": "output",
376
+ "type": "FLOAT",
377
+ "slot_index": 0,
378
+ "links": [
379
+ 31
380
+ ]
381
+ }
382
+ ],
383
+ "title": "Switch: CFG",
384
+ "properties": {
385
+ "Node name for S&R": "ComfySwitchNode"
386
+ },
387
+ "widgets_values": [
388
+ false
389
+ ]
390
+ },
391
+ {
392
+ "id": 19,
393
+ "type": "TextEncodeQwenImageEditPlus",
394
+ "pos": [
395
+ -820,
396
+ 500
397
+ ],
398
+ "size": [
399
+ 400,
400
+ 180
401
+ ],
402
+ "flags": {},
403
+ "order": 21,
404
+ "mode": 0,
405
+ "inputs": [
406
+ {
407
+ "name": "clip",
408
+ "type": "CLIP",
409
+ "link": 11
410
+ },
411
+ {
412
+ "name": "vae",
413
+ "shape": 7,
414
+ "type": "VAE",
415
+ "link": 13
416
+ },
417
+ {
418
+ "name": "image1",
419
+ "shape": 7,
420
+ "type": "IMAGE",
421
+ "link": 16
422
+ },
423
+ {
424
+ "name": "image2",
425
+ "shape": 7,
426
+ "type": "IMAGE",
427
+ "link": 36
428
+ },
429
+ {
430
+ "name": "image3",
431
+ "shape": 7,
432
+ "type": "IMAGE",
433
+ "link": null
434
+ }
435
+ ],
436
+ "outputs": [
437
+ {
438
+ "name": "CONDITIONING",
439
+ "type": "CONDITIONING",
440
+ "slot_index": 0,
441
+ "links": [
442
+ 19
443
+ ]
444
+ }
445
+ ],
446
+ "title": "Negative prompt",
447
+ "properties": {
448
+ "Node name for S&R": "TextEncodeQwenImageEditPlus"
449
+ },
450
+ "widgets_values": [
451
+ ""
452
+ ]
453
+ },
454
+ {
455
+ "id": 21,
456
+ "type": "FluxKontextMultiReferenceLatentMethod",
457
+ "pos": [
458
+ -380,
459
+ 500
460
+ ],
461
+ "size": [
462
+ 330,
463
+ 60
464
+ ],
465
+ "flags": {},
466
+ "order": 24,
467
+ "mode": 0,
468
+ "inputs": [
469
+ {
470
+ "name": "conditioning",
471
+ "type": "CONDITIONING",
472
+ "link": 19
473
+ }
474
+ ],
475
+ "outputs": [
476
+ {
477
+ "name": "CONDITIONING",
478
+ "type": "CONDITIONING",
479
+ "slot_index": 0,
480
+ "links": [
481
+ 21
482
+ ]
483
+ }
484
+ ],
485
+ "properties": {
486
+ "Node name for S&R": "FluxKontextMultiReferenceLatentMethod"
487
+ },
488
+ "widgets_values": [
489
+ "index_timestep_zero"
490
+ ]
491
+ },
492
+ {
493
+ "id": 22,
494
+ "type": "VAEEncode",
495
+ "pos": [
496
+ -380,
497
+ 640
498
+ ],
499
+ "size": [
500
+ 240,
501
+ 50
502
+ ],
503
+ "flags": {},
504
+ "order": 17,
505
+ "mode": 0,
506
+ "inputs": [
507
+ {
508
+ "name": "pixels",
509
+ "type": "IMAGE",
510
+ "link": 17
511
+ },
512
+ {
513
+ "name": "vae",
514
+ "type": "VAE",
515
+ "link": 22
516
+ }
517
+ ],
518
+ "outputs": [
519
+ {
520
+ "name": "LATENT",
521
+ "type": "LATENT",
522
+ "slot_index": 0,
523
+ "links": [
524
+ 23
525
+ ]
526
+ }
527
+ ],
528
+ "properties": {
529
+ "Node name for S&R": "VAEEncode"
530
+ },
531
+ "widgets_values": []
532
+ },
533
+ {
534
+ "id": 24,
535
+ "type": "VAEDecode",
536
+ "pos": [
537
+ 980,
538
+ 60
539
+ ],
540
+ "size": [
541
+ 220,
542
+ 50
543
+ ],
544
+ "flags": {},
545
+ "order": 26,
546
+ "mode": 0,
547
+ "inputs": [
548
+ {
549
+ "name": "samples",
550
+ "type": "LATENT",
551
+ "link": 32
552
+ },
553
+ {
554
+ "name": "vae",
555
+ "type": "VAE",
556
+ "link": 33
557
+ }
558
+ ],
559
+ "outputs": [
560
+ {
561
+ "name": "IMAGE",
562
+ "type": "IMAGE",
563
+ "slot_index": 0,
564
+ "links": [
565
+ 34
566
+ ]
567
+ }
568
+ ],
569
+ "properties": {
570
+ "Node name for S&R": "VAEDecode"
571
+ },
572
+ "widgets_values": []
573
+ },
574
+ {
575
+ "id": 25,
576
+ "type": "SaveImage",
577
+ "pos": [
578
+ 1240,
579
+ 60
580
+ ],
581
+ "size": [
582
+ 440,
583
+ 470
584
+ ],
585
+ "flags": {},
586
+ "order": 27,
587
+ "mode": 0,
588
+ "inputs": [
589
+ {
590
+ "name": "images",
591
+ "type": "IMAGE",
592
+ "link": 34
593
+ }
594
+ ],
595
+ "outputs": [
596
+ {
597
+ "name": "images",
598
+ "type": "IMAGE",
599
+ "links": null
600
+ }
601
+ ],
602
+ "properties": {
603
+ "Node name for S&R": "SaveImage"
604
+ },
605
+ "widgets_values": [
606
+ "Qwen_Edit"
607
+ ]
608
+ },
609
+ {
610
+ "id": 26,
611
+ "type": "MarkdownNote",
612
+ "pos": [
613
+ 640,
614
+ -360
615
+ ],
616
+ "size": [
617
+ 560,
618
+ 270
619
+ ],
620
+ "flags": {},
621
+ "order": 6,
622
+ "mode": 0,
623
+ "inputs": [],
624
+ "outputs": [],
625
+ "title": "How to use",
626
+ "properties": {},
627
+ "widgets_values": [
628
+ "## Qwen Image Edit — Master Workflow\n\n**One toggle controls quality vs speed:** the **Accelerate?** boolean node (bottom-left).\n\n- **ON (true)** = Lightning 4-step LoRA + 4 steps + CFG 1.0 (fast)\n- **OFF (false)** = no Lightning + 20 steps + CFG 4.0 (best quality)\n\nIt drives the three **Switch** nodes (MODEL / STEPS / CFG) together, so you only flip one thing.\n\n**Your content LoRAs** go in the **Power Lora Loader** (add/stack/toggle each). It is always applied in both modes.\n\nModel: `qwen_image_edit_2511_fp8mixed` (20GB fp8 — loads ~2x faster than bf16)."
629
+ ],
630
+ "color": "#432",
631
+ "bgcolor": "#653"
632
+ },
633
+ {
634
+ "id": 1,
635
+ "type": "UNETLoader",
636
+ "pos": [
637
+ -1560,
638
+ -160
639
+ ],
640
+ "size": [
641
+ 380,
642
+ 82
643
+ ],
644
+ "flags": {},
645
+ "order": 7,
646
+ "mode": 0,
647
+ "inputs": [],
648
+ "outputs": [
649
+ {
650
+ "name": "MODEL",
651
+ "type": "MODEL",
652
+ "slot_index": 0,
653
+ "links": [
654
+ 1
655
+ ]
656
+ }
657
+ ],
658
+ "properties": {
659
+ "Node name for S&R": "UNETLoader"
660
+ },
661
+ "widgets_values": [
662
+ "qwen_image_edit_2511_bf16.safetensors",
663
+ "default"
664
+ ]
665
+ },
666
+ {
667
+ "id": 8,
668
+ "type": "Power Lora Loader (rgthree)",
669
+ "pos": [
670
+ -520,
671
+ -200
672
+ ],
673
+ "size": [
674
+ 360,
675
+ 180
676
+ ],
677
+ "flags": {},
678
+ "order": 18,
679
+ "mode": 0,
680
+ "inputs": [
681
+ {
682
+ "dir": 3,
683
+ "name": "model",
684
+ "type": "MODEL",
685
+ "link": 3
686
+ },
687
+ {
688
+ "dir": 3,
689
+ "name": "clip",
690
+ "type": "CLIP",
691
+ "link": 4
692
+ }
693
+ ],
694
+ "outputs": [
695
+ {
696
+ "dir": 4,
697
+ "name": "MODEL",
698
+ "type": "MODEL",
699
+ "slot_index": 0,
700
+ "links": [
701
+ 5,
702
+ 6
703
+ ]
704
+ },
705
+ {
706
+ "dir": 4,
707
+ "name": "CLIP",
708
+ "type": "CLIP",
709
+ "slot_index": 1,
710
+ "links": [
711
+ 10,
712
+ 11
713
+ ]
714
+ }
715
+ ],
716
+ "title": "Power Lora Loader (content LoRAs)",
717
+ "properties": {
718
+ "Show Strengths": "Single Strength",
719
+ "Match": "",
720
+ "Node name for S&R": "Power Lora Loader (rgthree)"
721
+ },
722
+ "widgets_values": [
723
+ {},
724
+ {
725
+ "type": "PowerLoraLoaderHeaderWidget"
726
+ },
727
+ {
728
+ "on": true,
729
+ "lora": "Qwen4Play_v2.safetensors",
730
+ "strength": 1,
731
+ "strengthTwo": null
732
+ },
733
+ {},
734
+ ""
735
+ ]
736
+ },
737
+ {
738
+ "id": 18,
739
+ "type": "TextEncodeQwenImageEditPlus",
740
+ "pos": [
741
+ -820,
742
+ 260
743
+ ],
744
+ "size": [
745
+ 400,
746
+ 200
747
+ ],
748
+ "flags": {},
749
+ "order": 20,
750
+ "mode": 0,
751
+ "inputs": [
752
+ {
753
+ "name": "clip",
754
+ "type": "CLIP",
755
+ "link": 10
756
+ },
757
+ {
758
+ "name": "vae",
759
+ "shape": 7,
760
+ "type": "VAE",
761
+ "link": 12
762
+ },
763
+ {
764
+ "name": "image1",
765
+ "shape": 7,
766
+ "type": "IMAGE",
767
+ "link": 15
768
+ },
769
+ {
770
+ "name": "image2",
771
+ "shape": 7,
772
+ "type": "IMAGE",
773
+ "link": 37
774
+ },
775
+ {
776
+ "name": "image3",
777
+ "shape": 7,
778
+ "type": "IMAGE",
779
+ "link": null
780
+ }
781
+ ],
782
+ "outputs": [
783
+ {
784
+ "name": "CONDITIONING",
785
+ "type": "CONDITIONING",
786
+ "slot_index": 0,
787
+ "links": [
788
+ 18
789
+ ]
790
+ }
791
+ ],
792
+ "title": "Positive prompt",
793
+ "properties": {
794
+ "Node name for S&R": "TextEncodeQwenImageEditPlus"
795
+ },
796
+ "widgets_values": [
797
+ "replace the outfit of the subject with the bikini in the second image, don't change anything else"
798
+ ]
799
+ },
800
+ {
801
+ "id": 5,
802
+ "type": "FluxKontextImageScale",
803
+ "pos": [
804
+ -1237.052875033084,
805
+ 315.2963018071418
806
+ ],
807
+ "size": [
808
+ 290,
809
+ 58
810
+ ],
811
+ "flags": {},
812
+ "order": 13,
813
+ "mode": 0,
814
+ "inputs": [
815
+ {
816
+ "name": "image",
817
+ "type": "IMAGE",
818
+ "link": 14
819
+ }
820
+ ],
821
+ "outputs": [
822
+ {
823
+ "name": "IMAGE",
824
+ "type": "IMAGE",
825
+ "slot_index": 0,
826
+ "links": [
827
+ 15,
828
+ 16,
829
+ 17
830
+ ]
831
+ }
832
+ ],
833
+ "properties": {
834
+ "Node name for S&R": "FluxKontextImageScale"
835
+ },
836
+ "widgets_values": []
837
+ },
838
+ {
839
+ "id": 27,
840
+ "type": "LoadImage",
841
+ "pos": [
842
+ -1539.5670708441953,
843
+ 673.121941232823
844
+ ],
845
+ "size": [
846
+ 300,
847
+ 340
848
+ ],
849
+ "flags": {},
850
+ "order": 8,
851
+ "mode": 0,
852
+ "inputs": [],
853
+ "outputs": [
854
+ {
855
+ "name": "IMAGE",
856
+ "type": "IMAGE",
857
+ "slot_index": 0,
858
+ "links": [
859
+ 35
860
+ ]
861
+ },
862
+ {
863
+ "name": "MASK",
864
+ "type": "MASK",
865
+ "slot_index": 1,
866
+ "links": []
867
+ }
868
+ ],
869
+ "properties": {
870
+ "Node name for S&R": "LoadImage"
871
+ },
872
+ "widgets_values": [
873
+ "Screenshot 2026-07-02 at 6.05.45 PM.png",
874
+ "image"
875
+ ]
876
+ },
877
+ {
878
+ "id": 28,
879
+ "type": "FluxKontextImageScale",
880
+ "pos": [
881
+ -1185.2995863942845,
882
+ 570.3845658284137
883
+ ],
884
+ "size": [
885
+ 290,
886
+ 58
887
+ ],
888
+ "flags": {},
889
+ "order": 12,
890
+ "mode": 0,
891
+ "inputs": [
892
+ {
893
+ "name": "image",
894
+ "type": "IMAGE",
895
+ "link": 35
896
+ }
897
+ ],
898
+ "outputs": [
899
+ {
900
+ "name": "IMAGE",
901
+ "type": "IMAGE",
902
+ "slot_index": 0,
903
+ "links": [
904
+ 36,
905
+ 37
906
+ ]
907
+ }
908
+ ],
909
+ "properties": {
910
+ "Node name for S&R": "FluxKontextImageScale"
911
+ },
912
+ "widgets_values": []
913
+ },
914
+ {
915
+ "id": 4,
916
+ "type": "LoadImage",
917
+ "pos": [
918
+ -1560,
919
+ 260
920
+ ],
921
+ "size": [
922
+ 300,
923
+ 340
924
+ ],
925
+ "flags": {},
926
+ "order": 9,
927
+ "mode": 0,
928
+ "inputs": [],
929
+ "outputs": [
930
+ {
931
+ "name": "IMAGE",
932
+ "type": "IMAGE",
933
+ "slot_index": 0,
934
+ "links": [
935
+ 14
936
+ ]
937
+ },
938
+ {
939
+ "name": "MASK",
940
+ "type": "MASK",
941
+ "slot_index": 1,
942
+ "links": []
943
+ }
944
+ ],
945
+ "properties": {
946
+ "Node name for S&R": "LoadImage"
947
+ },
948
+ "widgets_values": [
949
+ "_DSC5579.jpg",
950
+ "image"
951
+ ]
952
+ },
953
+ {
954
+ "id": 11,
955
+ "type": "ComfySwitchNode",
956
+ "pos": [
957
+ 330.48556360022366,
958
+ -355.3210645444286
959
+ ],
960
+ "size": [
961
+ 260,
962
+ 110
963
+ ],
964
+ "flags": {},
965
+ "order": 22,
966
+ "mode": 0,
967
+ "inputs": [
968
+ {
969
+ "name": "on_false",
970
+ "type": "MODEL",
971
+ "link": 6
972
+ },
973
+ {
974
+ "name": "on_true",
975
+ "type": "MODEL",
976
+ "link": 7
977
+ },
978
+ {
979
+ "name": "switch",
980
+ "type": "BOOLEAN",
981
+ "widget": {
982
+ "name": "switch"
983
+ },
984
+ "link": 8
985
+ }
986
+ ],
987
+ "outputs": [
988
+ {
989
+ "name": "output",
990
+ "type": "MODEL",
991
+ "slot_index": 0,
992
+ "links": [
993
+ 9
994
+ ]
995
+ }
996
+ ],
997
+ "title": "Switch: MODEL",
998
+ "properties": {
999
+ "Node name for S&R": "ComfySwitchNode"
1000
+ },
1001
+ "widgets_values": [
1002
+ false
1003
+ ]
1004
+ },
1005
+ {
1006
+ "id": 9,
1007
+ "type": "LoraLoaderModelOnly",
1008
+ "pos": [
1009
+ -12.790058208281684,
1010
+ -191.0290993988523
1011
+ ],
1012
+ "size": [
1013
+ 360,
1014
+ 90
1015
+ ],
1016
+ "flags": {},
1017
+ "order": 19,
1018
+ "mode": 0,
1019
+ "inputs": [
1020
+ {
1021
+ "name": "model",
1022
+ "type": "MODEL",
1023
+ "link": 5
1024
+ }
1025
+ ],
1026
+ "outputs": [
1027
+ {
1028
+ "name": "MODEL",
1029
+ "type": "MODEL",
1030
+ "slot_index": 0,
1031
+ "links": [
1032
+ 7
1033
+ ]
1034
+ }
1035
+ ],
1036
+ "title": "Lightning 4-step LoRA (acceleration)",
1037
+ "properties": {
1038
+ "Node name for S&R": "LoraLoaderModelOnly"
1039
+ },
1040
+ "widgets_values": [
1041
+ "Qwen-Image-Edit-2511-Lightning-4steps-V1.0-bf16.safetensors",
1042
+ 1
1043
+ ]
1044
+ },
1045
+ {
1046
+ "id": 20,
1047
+ "type": "FluxKontextMultiReferenceLatentMethod",
1048
+ "pos": [
1049
+ -403.1028620644545,
1050
+ 235.34903349834278
1051
+ ],
1052
+ "size": [
1053
+ 330,
1054
+ 60
1055
+ ],
1056
+ "flags": {},
1057
+ "order": 23,
1058
+ "mode": 0,
1059
+ "inputs": [
1060
+ {
1061
+ "name": "conditioning",
1062
+ "type": "CONDITIONING",
1063
+ "link": 18
1064
+ }
1065
+ ],
1066
+ "outputs": [
1067
+ {
1068
+ "name": "CONDITIONING",
1069
+ "type": "CONDITIONING",
1070
+ "slot_index": 0,
1071
+ "links": [
1072
+ 20
1073
+ ]
1074
+ }
1075
+ ],
1076
+ "properties": {
1077
+ "Node name for S&R": "FluxKontextMultiReferenceLatentMethod"
1078
+ },
1079
+ "widgets_values": [
1080
+ "index_timestep_zero"
1081
+ ]
1082
+ },
1083
+ {
1084
+ "id": 10,
1085
+ "type": "PrimitiveBoolean",
1086
+ "pos": [
1087
+ -520,
1088
+ 60
1089
+ ],
1090
+ "size": [
1091
+ 357.3609375,
1092
+ 90
1093
+ ],
1094
+ "flags": {},
1095
+ "order": 10,
1096
+ "mode": 0,
1097
+ "inputs": [],
1098
+ "outputs": [
1099
+ {
1100
+ "name": "BOOLEAN",
1101
+ "type": "BOOLEAN",
1102
+ "slot_index": 0,
1103
+ "links": [
1104
+ 8,
1105
+ 26,
1106
+ 30
1107
+ ]
1108
+ }
1109
+ ],
1110
+ "title": "Accelerate? (ON=fast 4-step / OFF=full quality)",
1111
+ "properties": {
1112
+ "Node name for S&R": "PrimitiveBoolean"
1113
+ },
1114
+ "widgets_values": [
1115
+ false
1116
+ ]
1117
+ },
1118
+ {
1119
+ "id": 23,
1120
+ "type": "KSampler",
1121
+ "pos": [
1122
+ 640,
1123
+ 60
1124
+ ],
1125
+ "size": [
1126
+ 300,
1127
+ 360
1128
+ ],
1129
+ "flags": {},
1130
+ "order": 25,
1131
+ "mode": 0,
1132
+ "inputs": [
1133
+ {
1134
+ "name": "model",
1135
+ "type": "MODEL",
1136
+ "link": 9
1137
+ },
1138
+ {
1139
+ "name": "positive",
1140
+ "type": "CONDITIONING",
1141
+ "link": 20
1142
+ },
1143
+ {
1144
+ "name": "negative",
1145
+ "type": "CONDITIONING",
1146
+ "link": 21
1147
+ },
1148
+ {
1149
+ "name": "latent_image",
1150
+ "type": "LATENT",
1151
+ "link": 23
1152
+ },
1153
+ {
1154
+ "name": "steps",
1155
+ "type": "INT",
1156
+ "widget": {
1157
+ "name": "steps"
1158
+ },
1159
+ "link": 27
1160
+ },
1161
+ {
1162
+ "name": "cfg",
1163
+ "type": "FLOAT",
1164
+ "widget": {
1165
+ "name": "cfg"
1166
+ },
1167
+ "link": 31
1168
+ }
1169
+ ],
1170
+ "outputs": [
1171
+ {
1172
+ "name": "LATENT",
1173
+ "type": "LATENT",
1174
+ "slot_index": 0,
1175
+ "links": [
1176
+ 32
1177
+ ]
1178
+ }
1179
+ ],
1180
+ "properties": {
1181
+ "Node name for S&R": "KSampler"
1182
+ },
1183
+ "widgets_values": [
1184
+ 42,
1185
+ "fixed",
1186
+ 4,
1187
+ 1,
1188
+ "euler",
1189
+ "simple",
1190
+ 1
1191
+ ]
1192
+ }
1193
+ ],
1194
+ "links": [
1195
+ [
1196
+ 1,
1197
+ 1,
1198
+ 0,
1199
+ 6,
1200
+ 0,
1201
+ "MODEL"
1202
+ ],
1203
+ [
1204
+ 2,
1205
+ 6,
1206
+ 0,
1207
+ 7,
1208
+ 0,
1209
+ "MODEL"
1210
+ ],
1211
+ [
1212
+ 3,
1213
+ 7,
1214
+ 0,
1215
+ 8,
1216
+ 0,
1217
+ "MODEL"
1218
+ ],
1219
+ [
1220
+ 4,
1221
+ 2,
1222
+ 0,
1223
+ 8,
1224
+ 1,
1225
+ "CLIP"
1226
+ ],
1227
+ [
1228
+ 5,
1229
+ 8,
1230
+ 0,
1231
+ 9,
1232
+ 0,
1233
+ "MODEL"
1234
+ ],
1235
+ [
1236
+ 6,
1237
+ 8,
1238
+ 0,
1239
+ 11,
1240
+ 0,
1241
+ "MODEL"
1242
+ ],
1243
+ [
1244
+ 7,
1245
+ 9,
1246
+ 0,
1247
+ 11,
1248
+ 1,
1249
+ "MODEL"
1250
+ ],
1251
+ [
1252
+ 8,
1253
+ 10,
1254
+ 0,
1255
+ 11,
1256
+ 2,
1257
+ "BOOLEAN"
1258
+ ],
1259
+ [
1260
+ 9,
1261
+ 11,
1262
+ 0,
1263
+ 23,
1264
+ 0,
1265
+ "MODEL"
1266
+ ],
1267
+ [
1268
+ 10,
1269
+ 8,
1270
+ 1,
1271
+ 18,
1272
+ 0,
1273
+ "CLIP"
1274
+ ],
1275
+ [
1276
+ 11,
1277
+ 8,
1278
+ 1,
1279
+ 19,
1280
+ 0,
1281
+ "CLIP"
1282
+ ],
1283
+ [
1284
+ 12,
1285
+ 3,
1286
+ 0,
1287
+ 18,
1288
+ 1,
1289
+ "VAE"
1290
+ ],
1291
+ [
1292
+ 13,
1293
+ 3,
1294
+ 0,
1295
+ 19,
1296
+ 1,
1297
+ "VAE"
1298
+ ],
1299
+ [
1300
+ 14,
1301
+ 4,
1302
+ 0,
1303
+ 5,
1304
+ 0,
1305
+ "IMAGE"
1306
+ ],
1307
+ [
1308
+ 15,
1309
+ 5,
1310
+ 0,
1311
+ 18,
1312
+ 2,
1313
+ "IMAGE"
1314
+ ],
1315
+ [
1316
+ 16,
1317
+ 5,
1318
+ 0,
1319
+ 19,
1320
+ 2,
1321
+ "IMAGE"
1322
+ ],
1323
+ [
1324
+ 17,
1325
+ 5,
1326
+ 0,
1327
+ 22,
1328
+ 0,
1329
+ "IMAGE"
1330
+ ],
1331
+ [
1332
+ 18,
1333
+ 18,
1334
+ 0,
1335
+ 20,
1336
+ 0,
1337
+ "CONDITIONING"
1338
+ ],
1339
+ [
1340
+ 19,
1341
+ 19,
1342
+ 0,
1343
+ 21,
1344
+ 0,
1345
+ "CONDITIONING"
1346
+ ],
1347
+ [
1348
+ 20,
1349
+ 20,
1350
+ 0,
1351
+ 23,
1352
+ 1,
1353
+ "CONDITIONING"
1354
+ ],
1355
+ [
1356
+ 21,
1357
+ 21,
1358
+ 0,
1359
+ 23,
1360
+ 2,
1361
+ "CONDITIONING"
1362
+ ],
1363
+ [
1364
+ 22,
1365
+ 3,
1366
+ 0,
1367
+ 22,
1368
+ 1,
1369
+ "VAE"
1370
+ ],
1371
+ [
1372
+ 23,
1373
+ 22,
1374
+ 0,
1375
+ 23,
1376
+ 3,
1377
+ "LATENT"
1378
+ ],
1379
+ [
1380
+ 24,
1381
+ 12,
1382
+ 0,
1383
+ 14,
1384
+ 0,
1385
+ "INT"
1386
+ ],
1387
+ [
1388
+ 25,
1389
+ 13,
1390
+ 0,
1391
+ 14,
1392
+ 1,
1393
+ "INT"
1394
+ ],
1395
+ [
1396
+ 26,
1397
+ 10,
1398
+ 0,
1399
+ 14,
1400
+ 2,
1401
+ "BOOLEAN"
1402
+ ],
1403
+ [
1404
+ 27,
1405
+ 14,
1406
+ 0,
1407
+ 23,
1408
+ 4,
1409
+ "INT"
1410
+ ],
1411
+ [
1412
+ 28,
1413
+ 15,
1414
+ 0,
1415
+ 17,
1416
+ 0,
1417
+ "FLOAT"
1418
+ ],
1419
+ [
1420
+ 29,
1421
+ 16,
1422
+ 0,
1423
+ 17,
1424
+ 1,
1425
+ "FLOAT"
1426
+ ],
1427
+ [
1428
+ 30,
1429
+ 10,
1430
+ 0,
1431
+ 17,
1432
+ 2,
1433
+ "BOOLEAN"
1434
+ ],
1435
+ [
1436
+ 31,
1437
+ 17,
1438
+ 0,
1439
+ 23,
1440
+ 5,
1441
+ "FLOAT"
1442
+ ],
1443
+ [
1444
+ 32,
1445
+ 23,
1446
+ 0,
1447
+ 24,
1448
+ 0,
1449
+ "LATENT"
1450
+ ],
1451
+ [
1452
+ 33,
1453
+ 3,
1454
+ 0,
1455
+ 24,
1456
+ 1,
1457
+ "VAE"
1458
+ ],
1459
+ [
1460
+ 34,
1461
+ 24,
1462
+ 0,
1463
+ 25,
1464
+ 0,
1465
+ "IMAGE"
1466
+ ],
1467
+ [
1468
+ 35,
1469
+ 27,
1470
+ 0,
1471
+ 28,
1472
+ 0,
1473
+ "IMAGE"
1474
+ ],
1475
+ [
1476
+ 36,
1477
+ 28,
1478
+ 0,
1479
+ 19,
1480
+ 3,
1481
+ "IMAGE"
1482
+ ],
1483
+ [
1484
+ 37,
1485
+ 28,
1486
+ 0,
1487
+ 18,
1488
+ 3,
1489
+ "IMAGE"
1490
+ ]
1491
+ ],
1492
+ "groups": [],
1493
+ "config": {},
1494
+ "extra": {
1495
+ "ds": {
1496
+ "scale": 0.5556714903390076,
1497
+ "offset": [
1498
+ 685.5173886163286,
1499
+ 512.0898206669115
1500
+ ]
1501
+ },
1502
+ "frontendVersion": "1.45.20"
1503
+ },
1504
+ "version": 0.4
1505
+ }