ComfyPilotComfyPilot
工作流 / 图像 / MOSS-Image: Image Edit
MOSS-Image: Image Edit

MOSS-Image: Image Edit

MOSS-Image: Image Edit LoRA

使用 MOSS-Image 及其编辑 LoRA,通过简短指令编辑照片:指令与来源图像会一起编码,因此采样器会重绘同一画面,只应用所描述的更改。颜色、材质、服装和背景的替换会保持面部、头发、姿态和构图不变,图像对比节点会将来源图像与结果并排显示。

图像 17 个节点 1 个输入 2,158 次使用 ComfyUI ≥ 0.43.0 ComfyUI 25 KB

下载工作流 JSON 查看官方来源

下载后把文件拖进 ComfyUI 窗口即可打开。

需要的权重

这个工作流引用了 4 个权重文件,其中 4 个能在本站模型库里找到。

flux2-vae_small.safetensors 在模型库查看
moss_image_edit_lora_rank_64_bf16.safetensors 在模型库查看
moss_image_sft_int8_convrot.safetensors 在模型库查看
qwen3.5_9b_w4a8_gptq.safetensors 在模型库查看

节点构成

MarkdownNote × 2
TextEncodeMOSSImageEdit × 2
LoadImage × 1
SaveImage × 1
ImageCompare × 1
GetImageSize × 1
EmptyFlux2LatentImage × 1
ImageScaleToTotalPixels × 1
UNETLoader × 1
LoraLoaderModelOnly × 1
SkipLayerGuidanceDiTSimple × 1
CLIPLoader × 1
VAELoader × 1
KSampler × 1
VAEDecode × 1

官方标注的模型

MOSS-Image

工作流 JSON

和上面「下载工作流 JSON」是同一份文件。

1{
2 "id": "11f4aa31-53e3-453a-b4dd-4bf52de3a617",
3 "revision": 0,
4 "last_node_id": 40,
5 "last_link_id": 9069,
6 "nodes": [
7 {
8 "id": 8,
9 "type": "LoadImage",
10 "pos": [
11 820,
12 -240
13 ],
14 "size": [
15 690,
16 930
17 ],
18 "flags": [],
19 "order": 0,
20 "mode": 0,
21 "inputs": [],
22 "outputs": [
23 {
24 "name": "IMAGE",
25 "type": "IMAGE",
26 "slot_index": 0,
27 "links": [
28 43,
29 9051
30 ]
31 },
32 {
33 "name": "MASK",
34 "type": "MASK",
35 "links": null
36 }
37 ],
38 "properties": {
39 "Node name for S&R": "LoadImage"
40 },
41 "widgets_values": [
42 "two_women_berets_floral_jackets.png",
43 "image"
44 ],
45 "widgets_values_named": {
46 "image": "two_women_berets_floral_jackets.png",
47 "upload": "image"
48 },
49 "color": "#322",
50 "bgcolor": "#533"
51 },
52 {
53 "id": 9,
54 "type": "SaveImage",
55 "pos": [
56 3630,
57 -180
58 ],
59 "size": [
60 760,
61 870
62 ],
63 "flags": [],
64 "order": 15,
65 "mode": 0,
66 "inputs": [
67 {
68 "name": "images",
69 "type": "IMAGE",
70 "link": 9060
71 }
72 ],
73 "outputs": [
74 {
75 "name": "images",
76 "type": "IMAGE",
77 "links": [
78 44
79 ]
80 }
81 ],
82 "properties": {
83 "Node name for S&R": "SaveImage"
84 },
85 "widgets_values": [
86 "image_moss_image_edit"
87 ],
88 "widgets_values_named": {
89 "filename_prefix": "image_moss_image_edit"
90 }
91 },
92 {
93 "id": 20,
94 "type": "ImageCompare",
95 "pos": [
96 4440,
97 -180
98 ],
99 "size": [
100 860,
101 870
102 ],
103 "flags": [],
104 "order": 16,
105 "mode": 0,
106 "inputs": [
107 {
108 "name": "image_a",
109 "shape": 7,
110 "type": "IMAGE",
111 "link": 43
112 },
113 {
114 "name": "image_b",
115 "shape": 7,
116 "type": "IMAGE",
117 "link": 44
118 }
119 ],
120 "outputs": [],
121 "properties": {
122 "Node name for S&R": "ImageCompare"
123 },
124 "widgets_values": [
125 null
126 ],
127 "widgets_values_named": []
128 },
129 {
130 "id": 21,
131 "type": "MarkdownNote",
132 "pos": [
133 60,
134 -370
135 ],
136 "size": [
137 670,
138 1500
139 ],
140 "flags": [],
141 "order": 1,
142 "mode": 0,
143 "inputs": [],
144 "outputs": [],
145 "properties": [],
146 "widgets_values": [
147 "## MOSS-Image: Image Edit\n\nEdit one photo with a short instruction. An edit LoRA runs on top of the MOSS-Image SFT checkpoint, and the instruction is encoded together with the source image as a reference, so the sampler redraws the same frame with only the described change applied.\n\n### How to use\n\n1. **Load Image** (node 8): the photo to edit. It is scaled to 1.0 MP and aligned to 16 px (node 29), and **Get Image Size** feeds that size to **Empty Flux2 Latent Image**, so the output keeps the source aspect ratio.\n2. **Text Encode MOSS-Image Edit - positive** (node 39): describe only the change. The phrasing the LoRA was trained on works best: `Change only the X to Y. Keep the character, face, hair, pose, background and composition unchanged.`\n3. **Text Encode MOSS-Image Edit - negative** (node 36): the model's recommended negative line. It sees the same reference image, so it describes what to avoid, not what to remove from the scene.\n4. **KSampler** (node 37): 30 steps, cfg 4.0, `euler`, `normal`, denoise 1: the values the LoRA author ships.\n5. Queue. **Save Image** writes `image_moss_image_edit_*.png`, and **Compare Images** (node 20) shows the source next to the result.\n\n### edit_format must match the LoRA\n\n`edit_format` selects the layout the LoRA was trained with. Both encode nodes must use the same value.\n\n| value | trained with |\n|-------|--------------|\n| `Moss-Image-Edit` | `moss_image_edit_lora_rank_64_bf16.safetensors`, the LoRA this workflow loads |\n| `ai-toolkit` | ai-toolkit's MOSS-Image Edit Training |\n| `ai-toolkit (kv_cache off)` | the same with `kv_cache` off: the references also attend to the image being generated, so they are recomputed every step |\n\nPicking the wrong layout still returns an image, but a worse one: identity, framing and fine detail drift away from the source.\n\n### Resolution\n\nReferences enter the diffusion model at exactly the size they arrive with, so the source is scaled once by **Image Scale To Total Pixels** (node 29, 1.0 MP, 16 px step) and both the reference and the generated frame use that size. Lowering it to about 0.26 MP (a 512 px long edge) makes the run cheaper but looser: the model starts re-framing the subject instead of editing the frame it was given.\n\n### Sampling\n\n- **Skip Layer Guidance** (node 32) stays on, single layer `22`, 0 to 1.0 of the schedule: what the LoRA author ships.\n- CFG 4.0 means the negative branch matters. If you see a necklace or earrings appear out of nowhere while editing the top, the cfg is too low for this LoRA; keep it at 4.0.\n\n### More than one reference\n\nThe encode nodes autogrow `images.image_0`, `images.image_1`, ... Connect up to four photos (a garment, a face, a prop) and say in the prompt what each one is for. Extra slots appear only when you connect them; a disconnected slot costs nothing.\n"
148 ],
149 "widgets_values_named": {
150 "text": "## MOSS-Image: Image Edit\n\nEdit one photo with a short instruction. An edit LoRA runs on top of the MOSS-Image SFT checkpoint, and the instruction is encoded together with the source image as a reference, so the sampler redraws the same frame with only the described change applied.\n\n### How to use\n\n1. **Load Image** (node 8): the photo to edit. It is scaled to 1.0 MP and aligned to 16 px (node 29), and **Get Image Size** feeds that size to **Empty Flux2 Latent Image**, so the output keeps the source aspect ratio.\n2. **Text Encode MOSS-Image Edit - positive** (node 39): describe only the change. The phrasing the LoRA was trained on works best: `Change only the X to Y. Keep the character, face, hair, pose, background and composition unchanged.`\n3. **Text Encode MOSS-Image Edit - negative** (node 36): the model's recommended negative line. It sees the same reference image, so it describes what to avoid, not what to remove from the scene.\n4. **KSampler** (node 37): 30 steps, cfg 4.0, `euler`, `normal`, denoise 1: the values the LoRA author ships.\n5. Queue. **Save Image** writes `image_moss_image_edit_*.png`, and **Compare Images** (node 20) shows the source next to the result.\n\n### edit_format must match the LoRA\n\n`edit_format` selects the layout the LoRA was trained with. Both encode nodes must use the same value.\n\n| value | trained with |\n|-------|--------------|\n| `Moss-Image-Edit` | `moss_image_edit_lora_rank_64_bf16.safetensors`, the LoRA this workflow loads |\n| `ai-toolkit` | ai-toolkit's MOSS-Image Edit Training |\n| `ai-toolkit (kv_cache off)` | the same with `kv_cache` off: the references also attend to the image being generated, so they are recomputed every step |\n\nPicking the wrong layout still returns an image, but a worse one: identity, framing and fine detail drift away from the source.\n\n### Resolution\n\nReferences enter the diffusion model at exactly the size they arrive with, so the source is scaled once by **Image Scale To Total Pixels** (node 29, 1.0 MP, 16 px step) and both the reference and the generated frame use that size. Lowering it to about 0.26 MP (a 512 px long edge) makes the run cheaper but looser: the model starts re-framing the subject instead of editing the frame it was given.\n\n### Sampling\n\n- **Skip Layer Guidance** (node 32) stays on, single layer `22`, 0 to 1.0 of the schedule: what the LoRA author ships.\n- CFG 4.0 means the negative branch matters. If you see a necklace or earrings appear out of nowhere while editing the top, the cfg is too low for this LoRA; keep it at 4.0.\n\n### More than one reference\n\nThe encode nodes autogrow `images.image_0`, `images.image_1`, ... Connect up to four photos (a garment, a face, a prop) and say in the prompt what each one is for. Extra slots appear only when you connect them; a disconnected slot costs nothing.\n"
151 },
152 "color": "#222",
153 "bgcolor": "#000"
154 },
155 {
156 "id": 22,
157 "type": "MarkdownNote",
158 "pos": [
159 -670,
160 -370
161 ],
162 "size": [
163 670,
164 1150
165 ],
166 "flags": [],
167 "order": 2,
168 "mode": 0,
169 "inputs": [],
170 "outputs": [],
171 "properties": [],
172 "widgets_values": [
173 "## Model Links\n\n- [Hugging Face:Comfy-Org/MOSS-Image](https://huggingface.co/Comfy-Org/MOSS-Image) (checkpoints, text encoder, VAE, edit LoRA)\n- [Hugging Face:chinoll/Moss-Image-Edit](https://huggingface.co/chinoll/Moss-Image-Edit) (upstream edit LoRA, same bytes as the rehosted file)\n\n**ModelScope mirrors** (alternative repo location)\n\n- [ModelScope:Comfy-Org/MOSS-Image](https://modelscope.cn/models/Comfy-Org/MOSS-Image)\n\n**diffusion_models**\n\n- [moss_image_sft_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_sft_int8_convrot.safetensors)\n- [moss_image_sft_bf16.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_sft_bf16.safetensors) (higher precision, slower)\n\n**loras**\n\n- [moss_image_edit_lora_rank_64_bf16.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/loras/moss_image_edit_lora_rank_64_bf16.safetensors) (rank 64, bf16, 297 MB)\n\n**text_encoders**\n\n- [qwen3.5_9b_w4a8_gptq.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_w4a8_gptq.safetensors)\n- [qwen3.5_9b_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_int8_convrot.safetensors) (larger, slightly higher precision)\n\n**vae**\n\n- [flux2-vae_small.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/vae/flux2-vae_small.safetensors)\n\nThe edit LoRA runs on either MOSS-Image checkpoint: set `unet_model` to `moss_image_base_*` to try it on the base model. The Core support (`Text Encode MOSS-Image Edit`) ships from ComfyUI 0.43.0.\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 diffusion_models/\n│ │ └── moss_image_sft_int8_convrot.safetensors\n│ ├── 📂 loras/\n│ │ └── moss_image_edit_lora_rank_64_bf16.safetensors\n│ ├── 📂 text_encoders/\n│ │ └── qwen3.5_9b_w4a8_gptq.safetensors\n│ └── 📂 vae/\n│ └── flux2-vae_small.safetensors\n```\n\n## Input Asset\n\n`Load Image` points at `two_women_berets_floral_jackets.png`, two women in berets and floral jackets, which is what the shipped thumbnail was made from. Any image works: the graph scales it to 1.0 MP and keeps its aspect ratio, so portrait, square and landscape sources all come out at their own shape. Swap in your own file, or paint/connect extra references on the encode nodes.\n"
174 ],
175 "widgets_values_named": {
176 "text": "## Model Links\n\n- [Hugging Face:Comfy-Org/MOSS-Image](https://huggingface.co/Comfy-Org/MOSS-Image) (checkpoints, text encoder, VAE, edit LoRA)\n- [Hugging Face:chinoll/Moss-Image-Edit](https://huggingface.co/chinoll/Moss-Image-Edit) (upstream edit LoRA, same bytes as the rehosted file)\n\n**ModelScope mirrors** (alternative repo location)\n\n- [ModelScope:Comfy-Org/MOSS-Image](https://modelscope.cn/models/Comfy-Org/MOSS-Image)\n\n**diffusion_models**\n\n- [moss_image_sft_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_sft_int8_convrot.safetensors)\n- [moss_image_sft_bf16.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_sft_bf16.safetensors) (higher precision, slower)\n\n**loras**\n\n- [moss_image_edit_lora_rank_64_bf16.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/loras/moss_image_edit_lora_rank_64_bf16.safetensors) (rank 64, bf16, 297 MB)\n\n**text_encoders**\n\n- [qwen3.5_9b_w4a8_gptq.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_w4a8_gptq.safetensors)\n- [qwen3.5_9b_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_int8_convrot.safetensors) (larger, slightly higher precision)\n\n**vae**\n\n- [flux2-vae_small.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/vae/flux2-vae_small.safetensors)\n\nThe edit LoRA runs on either MOSS-Image checkpoint: set `unet_model` to `moss_image_base_*` to try it on the base model. The Core support (`Text Encode MOSS-Image Edit`) ships from ComfyUI 0.43.0.\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 diffusion_models/\n│ │ └── moss_image_sft_int8_convrot.safetensors\n│ ├── 📂 loras/\n│ │ └── moss_image_edit_lora_rank_64_bf16.safetensors\n│ ├── 📂 text_encoders/\n│ │ └── qwen3.5_9b_w4a8_gptq.safetensors\n│ └── 📂 vae/\n│ └── flux2-vae_small.safetensors\n```\n\n## Input Asset\n\n`Load Image` points at `two_women_berets_floral_jackets.png`, two women in berets and floral jackets, which is what the shipped thumbnail was made from. Any image works: the graph scales it to 1.0 MP and keeps its aspect ratio, so portrait, square and landscape sources all come out at their own shape. Swap in your own file, or paint/connect extra references on the encode nodes.\n"
177 },
178 "color": "#222",
179 "bgcolor": "#000"
180 },
181 {
182 "id": 27,
183 "type": "GetImageSize",
184 "pos": [
185 1670,
186 1030
187 ],
188 "size": [
189 380,
190 100
191 ],
192 "flags": [],
193 "order": 10,
194 "mode": 0,
195 "inputs": [
196 {
197 "name": "image",
198 "type": "IMAGE",
199 "link": 9069
200 }
201 ],
202 "outputs": [
203 {
204 "name": "width",
205 "type": "INT",
206 "slot_index": 0,
207 "links": [
208 9049
209 ]
210 },
211 {
212 "name": "height",
213 "type": "INT",
214 "slot_index": 1,
215 "links": [
216 9050
217 ]
218 },
219 {
220 "name": "batch_size",
221 "type": "INT",
222 "slot_index": 2,
223 "links": []
224 }
225 ],
226 "properties": {
227 "Node name for S&R": "GetImageSize"
228 }
229 },
230 {
231 "id": 28,
232 "type": "EmptyFlux2LatentImage",
233 "pos": [
234 2340,
235 1000
236 ],
237 "size": [
238 380,
239 120
240 ],
241 "flags": [],
242 "order": 12,
243 "mode": 0,
244 "inputs": [
245 {
246 "name": "width",
247 "type": "INT",
248 "widget": {
249 "name": "width"
250 },
251 "link": 9049
252 },
253 {
254 "name": "height",
255 "type": "INT",
256 "widget": {
257 "name": "height"
258 },
259 "link": 9050
260 }
261 ],
262 "outputs": [
263 {
264 "name": "LATENT",
265 "type": "LATENT",
266 "slot_index": 0,
267 "links": [
268 9057
269 ]
270 }
271 ],
272 "properties": {
273 "Node name for S&R": "EmptyFlux2LatentImage"
274 },
275 "widgets_values": [
276 1024,
277 1024,
278 1
279 ],
280 "widgets_values_named": {
281 "width": 1024,
282 "height": 1024,
283 "batch_size": 1
284 }
285 },
286 {
287 "id": 29,
288 "type": "ImageScaleToTotalPixels",
289 "pos": [
290 1670,
291 830
292 ],
293 "size": [
294 380,
295 150
296 ],
297 "flags": [],
298 "order": 6,
299 "mode": 0,
300 "inputs": [
301 {
302 "name": "image",
303 "type": "IMAGE",
304 "link": 9051
305 }
306 ],
307 "outputs": [
308 {
309 "name": "IMAGE",
310 "type": "IMAGE",
311 "slot_index": 0,
312 "links": [
313 9062,
314 9067,
315 9069
316 ]
317 }
318 ],
319 "title": "Image Scale To Total Pixels (reference)",
320 "properties": {
321 "Node name for S&R": "ImageScaleToTotalPixels"
322 },
323 "widgets_values": [
324 "lanczos",
325 1,
326 16
327 ],
328 "widgets_values_named": {
329 "upscale_method": "lanczos",
330 "megapixels": 1,
331 "resolution_steps": 16
332 }
333 },
334 {
335 "id": 30,
336 "type": "UNETLoader",
337 "pos": [
338 1620,
339 -240
340 ],
341 "size": [
342 440,
343 90
344 ],
345 "flags": [],
346 "order": 3,
347 "mode": 0,
348 "showAdvanced": true,
349 "inputs": [],
350 "outputs": [
351 {
352 "name": "MODEL",
353 "type": "MODEL",
354 "slot_index": 0,
355 "links": [
356 9052
357 ]
358 }
359 ],
360 "properties": {
361 "Node name for S&R": "UNETLoader",
362 "models": [
363 {
364 "name": "moss_image_sft_int8_convrot.safetensors",
365 "url": "https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_sft_int8_convrot.safetensors",
366 "directory": "diffusion_models"
367 }
368 ]
369 },
370 "widgets_values": [
371 "moss_image_sft_int8_convrot.safetensors",
372 "default"
373 ],
374 "widgets_values_named": {
375 "unet_name": "moss_image_sft_int8_convrot.safetensors",
376 "weight_dtype": "default"
377 }
378 },
379 {
380 "id": 31,
381 "type": "LoraLoaderModelOnly",
382 "pos": [
383 1620,
384 -80
385 ],
386 "size": [
387 440,
388 120
389 ],
390 "flags": [],
391 "order": 7,
392 "mode": 0,
393 "inputs": [
394 {
395 "name": "model",
396 "type": "MODEL",
397 "link": 9052
398 }
399 ],
400 "outputs": [
401 {
402 "name": "MODEL",
403 "type": "MODEL",
404 "slot_index": 0,
405 "links": [
406 9053
407 ]
408 }
409 ],
410 "properties": {
411 "Node name for S&R": "LoraLoaderModelOnly",
412 "models": [
413 {
414 "name": "moss_image_edit_lora_rank_64_bf16.safetensors",
415 "url": "https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/loras/moss_image_edit_lora_rank_64_bf16.safetensors",
416 "directory": "loras"
417 }
418 ]
419 },
420 "widgets_values": [
421 "moss_image_edit_lora_rank_64_bf16.safetensors",
422 1
423 ],
424 "widgets_values_named": {
425 "lora_name": "moss_image_edit_lora_rank_64_bf16.safetensors",
426 "strength_model": 1
427 }
428 },
429 {
430 "id": 32,
431 "type": "SkipLayerGuidanceDiTSimple",
432 "pos": [
433 1620,
434 110
435 ],
436 "size": [
437 440,
438 210
439 ],
440 "flags": [],
441 "order": 11,
442 "mode": 0,
443 "showAdvanced": true,
444 "inputs": [
445 {
446 "name": "model",
447 "type": "MODEL",
448 "link": 9053
449 }
450 ],
451 "outputs": [
452 {
453 "name": "MODEL",
454 "type": "MODEL",
455 "slot_index": 0,
456 "links": [
457 9054
458 ]
459 }
460 ],
461 "properties": {
462 "Node name for S&R": "SkipLayerGuidanceDiTSimple"
463 },
464 "widgets_values": [
465 "",
466 "22",
467 0,
468 1
469 ],
470 "widgets_values_named": {
471 "double_layers": "",
472 "single_layers": "22",
473 "start_percent": 0,
474 "end_percent": 1
475 }
476 },
477 {
478 "id": 33,
479 "type": "CLIPLoader",
480 "pos": [
481 1620,
482 400
483 ],
484 "size": [
485 440,
486 130
487 ],
488 "flags": [],
489 "order": 4,
490 "mode": 0,
491 "inputs": [],
492 "outputs": [
493 {
494 "name": "CLIP",
495 "type": "CLIP",
496 "slot_index": 0,
497 "links": [
498 9061,
499 9066
500 ]
501 }
502 ],
503 "properties": {
504 "Node name for S&R": "CLIPLoader",
505 "models": [
506 {
507 "name": "qwen3.5_9b_w4a8_gptq.safetensors",
508 "url": "https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_w4a8_gptq.safetensors",
509 "directory": "text_encoders"
510 }
511 ]
512 },
513 "widgets_values": [
514 "qwen3.5_9b_w4a8_gptq.safetensors",
515 "moss_image",
516 "default"
517 ],
518 "widgets_values_named": {
519 "clip_name": "qwen3.5_9b_w4a8_gptq.safetensors",
520 "type": "moss_image",
521 "device": "default"
522 }
523 },
524 {
525 "id": 34,
526 "type": "VAELoader",
527 "pos": [
528 1620,
529 600
530 ],
531 "size": [
532 440,
533 60
534 ],
535 "flags": [],
536 "order": 5,
537 "mode": 0,
538 "inputs": [],
539 "outputs": [
540 {
541 "name": "VAE",
542 "type": "VAE",
543 "slot_index": 0,
544 "links": [
545 9059,
546 9063,
547 9070
548 ]
549 }
550 ],
551 "properties": {
552 "Node name for S&R": "VAELoader",
553 "models": [
554 {
555 "name": "flux2-vae_small.safetensors",
556 "url": "https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/vae/flux2-vae_small.safetensors",
557 "directory": "vae"
558 }
559 ]
560 },
561 "widgets_values": [
562 "flux2-vae_small.safetensors"
563 ],
564 "widgets_values_named": {
565 "vae_name": "flux2-vae_small.safetensors"
566 }
567 },
568 {
569 "id": 36,
570 "type": "TextEncodeMOSSImageEdit",
571 "pos": [
572 2260,
573 280
574 ],
575 "size": [
576 460,
577 320
578 ],
579 "flags": [],
580 "order": 8,
581 "mode": 0,
582 "showAdvanced": false,
583 "inputs": [
584 {
585 "name": "clip",
586 "type": "CLIP",
587 "link": 9061
588 },
589 {
590 "name": "images.image_0",
591 "type": "IMAGE",
592 "link": 9062
593 },
594 {
595 "name": "images.image_1",
596 "shape": 7,
597 "type": "IMAGE",
598 "link": null
599 },
600 {
601 "name": "vae",
602 "shape": 7,
603 "type": "VAE",
604 "link": 9063
605 }
606 ],
607 "outputs": [
608 {
609 "name": "CONDITIONING",
610 "type": "CONDITIONING",
611 "slot_index": 0,
612 "links": [
613 9056
614 ]
615 }
616 ],
617 "title": "Text Encode MOSS-Image Edit (negative)",
618 "properties": {
619 "Node name for S&R": "TextEncodeMOSSImageEdit"
620 },
621 "widgets_values": [
622 "nsfw, worst quality, bad anatomy, watermark, jpeg artifact",
623 "Moss-Image-Edit",
624 1
625 ],
626 "widgets_values_named": {
627 "prompt": "nsfw, worst quality, bad anatomy, watermark, jpeg artifact",
628 "edit_format": "Moss-Image-Edit",
629 "image_strength": 1
630 },
631 "color": "#223",
632 "bgcolor": "#335"
633 },
634 {
635 "id": 37,
636 "type": "KSampler",
637 "pos": [
638 2890,
639 -180
640 ],
641 "size": [
642 310,
643 690
644 ],
645 "flags": [],
646 "order": 13,
647 "mode": 0,
648 "inputs": [
649 {
650 "name": "model",
651 "type": "MODEL",
652 "link": 9054
653 },
654 {
655 "name": "positive",
656 "type": "CONDITIONING",
657 "link": 9068
658 },
659 {
660 "name": "negative",
661 "type": "CONDITIONING",
662 "link": 9056
663 },
664 {
665 "name": "latent_image",
666 "type": "LATENT",
667 "link": 9057
668 }
669 ],
670 "outputs": [
671 {
672 "name": "LATENT",
673 "type": "LATENT",
674 "slot_index": 0,
675 "links": [
676 9058
677 ]
678 }
679 ],
680 "properties": {
681 "Node name for S&R": "KSampler"
682 },
683 "widgets_values": [
684 42,
685 "fixed",
686 30,
687 4,
688 "euler",
689 "normal",
690 1
691 ],
692 "widgets_values_named": {
693 "seed": 42,
694 "control_after_generate": "fixed",
695 "steps": 30,
696 "cfg": 4,
697 "sampler_name": "euler",
698 "scheduler": "normal",
699 "denoise": 1
700 }
701 },
702 {
703 "id": 38,
704 "type": "VAEDecode",
705 "pos": [
706 3230,
707 -180
708 ],
709 "size": [
710 300,
711 90
712 ],
713 "flags": [],
714 "order": 14,
715 "mode": 0,
716 "inputs": [
717 {
718 "name": "samples",
719 "type": "LATENT",
720 "link": 9058
721 },
722 {
723 "name": "vae",
724 "type": "VAE",
725 "link": 9059
726 }
727 ],
728 "outputs": [
729 {
730 "name": "IMAGE",
731 "type": "IMAGE",
732 "slot_index": 0,
733 "links": [
734 9060
735 ]
736 }
737 ],
738 "properties": {
739 "Node name for S&R": "VAEDecode"
740 }
741 },
742 {
743 "id": 39,
744 "type": "TextEncodeMOSSImageEdit",
745 "pos": [
746 2260,
747 -200
748 ],
749 "size": [
750 470,
751 380
752 ],
753 "flags": [],
754 "order": 9,
755 "mode": 0,
756 "inputs": [
757 {
758 "name": "clip",
759 "type": "CLIP",
760 "link": 9066
761 },
762 {
763 "name": "images.image_0",
764 "type": "IMAGE",
765 "link": 9067
766 },
767 {
768 "name": "images.image_1",
769 "shape": 7,
770 "type": "IMAGE",
771 "link": null
772 },
773 {
774 "name": "vae",
775 "shape": 7,
776 "type": "VAE",
777 "link": 9070
778 }
779 ],
780 "outputs": [
781 {
782 "name": "CONDITIONING",
783 "type": "CONDITIONING",
784 "links": [
785 9068
786 ]
787 }
788 ],
789 "title": "Text Encode MOSS-Image Edit (positive)",
790 "properties": {
791 "Node name for S&R": "TextEncodeMOSSImageEdit"
792 },
793 "widgets_values": [
794 "Change only the pink floral blazer to a plain black wool coat. Keep both women, their faces, glasses, berets, poses, the embroidered cardigan and the concrete wall background unchanged.",
795 "Moss-Image-Edit",
796 1
797 ],
798 "widgets_values_named": {
799 "prompt": "Change only the pink floral blazer to a plain black wool coat. Keep both women, their faces, glasses, berets, poses, the embroidered cardigan and the concrete wall background unchanged.",
800 "edit_format": "Moss-Image-Edit",
801 "image_strength": 1
802 },
803 "color": "#232",
804 "bgcolor": "#353"
805 }
806 ],
807 "links": [
808 [
809 43,
810 8,
811 0,
812 20,
813 0,
814 "IMAGE"
815 ],
816 [
817 44,
818 9,
819 0,
820 20,
821 1,
822 "IMAGE"
823 ],
824 [
825 9049,
826 27,
827 0,
828 28,
829 0,
830 "INT"
831 ],
832 [
833 9050,
834 27,
835 1,
836 28,
837 1,
838 "INT"
839 ],
840 [
841 9051,
842 8,
843 0,
844 29,
845 0,
846 "IMAGE"
847 ],
848 [
849 9052,
850 30,
851 0,
852 31,
853 0,
854 "MODEL"
855 ],
856 [
857 9053,
858 31,
859 0,
860 32,
861 0,
862 "MODEL"
863 ],
864 [
865 9054,
866 32,
867 0,
868 37,
869 0,
870 "MODEL"
871 ],
872 [
873 9056,
874 36,
875 0,
876 37,
877 2,
878 "CONDITIONING"
879 ],
880 [
881 9057,
882 28,
883 0,
884 37,
885 3,
886 "LATENT"
887 ],
888 [
889 9058,
890 37,
891 0,
892 38,
893 0,
894 "LATENT"
895 ],
896 [
897 9059,
898 34,
899 0,
900 38,
901 1,
902 "VAE"
903 ],
904 [
905 9060,
906 38,
907 0,
908 9,
909 0,
910 "IMAGE"
911 ],
912 [
913 9068,
914 39,
915 0,
916 37,
917 1,
918 "CONDITIONING"
919 ],
920 [
921 9069,
922 29,
923 0,
924 27,
925 0,
926 "IMAGE"
927 ],
928 [
929 9061,
930 33,
931 0,
932 36,
933 0,
934 "CLIP"
935 ],
936 [
937 9062,
938 29,
939 0,
940 36,
941 1,
942 "IMAGE"
943 ],
944 [
945 9063,
946 34,
947 0,
948 36,
949 3,
950 "VAE"
951 ],
952 [
953 9066,
954 33,
955 0,
956 39,
957 0,
958 "CLIP"
959 ],
960 [
961 9067,
962 29,
963 0,
964 39,
965 1,
966 "IMAGE"
967 ],
968 [
969 9070,
970 34,
971 0,
972 39,
973 3,
974 "VAE"
975 ]
976 ],
977 "groups": [
978 {
979 "id": 1,
980 "title": "Models",
981 "bounding": [
982 1580,
983 -360,
984 600,
985 1070
986 ],
987 "color": "#3f789e",
988 "flags": []
989 },
990 {
991 "id": 2,
992 "title": "Conditioning",
993 "bounding": [
994 2220,
995 -360,
996 570,
997 1070
998 ],
999 "color": "#3f789e",
1000 "flags": []
1001 },
1002 {
1003 "id": 3,
1004 "title": "Sampling & Decoding",
1005 "bounding": [
1006 2820,
1007 -360,
1008 760,
1009 1070
1010 ],
1011 "color": "#3f789e",
1012 "flags": []
1013 },
1014 {
1015 "id": 4,
1016 "title": "Size",
1017 "bounding": [
1018 1580,
1019 740,
1020 1210,
1021 430
1022 ],
1023 "color": "#444",
1024 "flags": []
1025 }
1026 ],
1027 "config": [],
1028 "extra": {
1029 "ds": {
1030 "scale": 0.2905397748220841,
1031 "offset": [
1032 3998.777225220796,
1033 1464.2479565093668
1034 ]
1035 },
1036 "frontendVersion": "1.57.1",
1037 "VHS_latentpreview": false,
1038 "VHS_latentpreviewrate": 0,
1039 "VHS_MetadataImage": true,
1040 "VHS_KeepIntermediate": true
1041 },
1042 "version": 0.4
1043}