ComfyPilotComfyPilot
工作流 / 图像 / FLUX 3 Image Klein 12GB — 5.6B int8 Text to Image + Edit with up to 4 Reference Images + BFL Prompt Upsampler
FLUX 3 Image Klein 12GB — 5.6B int8 Text to Image + Edit with up to 4 Reference Images + BFL Prompt Upsampler

FLUX 3 Image Klein 12GB — 5.6B int8 Text to Image + Edit with up to 4 Reference Images + BFL Prompt Upsampler

FLUX 3 Image Klein 12GB — 5.6B int8 Text to Image + Edit with up to 4 Reference Images + BFL Prompt Upsampler

☕ One coffee = one happy creator: https://buymeacoffee.com/the_frizzy1No video on this workflow yet — the one above is how to use my workflows, if you are new to them.FLUX 3 Image Klein from Black Forest Labs, 5.6B disti…

图像 9 个节点 2 次使用 The_frizzy1 63 KB

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

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

需要的权重

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

The_frizzy1_flux3-klein-t2i-12gb_v1.0.0.json 模型库暂未收录
The_frizzy1_flux3-klein-edit-12gb_v1.0.0.json 模型库暂未收录

节点构成

MarkdownNote × 2
SaveImage × 1
ResolutionSelector × 1
CreateBoundingBoxes × 1
PrimitiveStringMultiline × 1
PreviewAny × 1
294d97c2-5179-4d93-a7ae-87b9745df54a × 1
8f01b7ad-14bc-4b2f-a42e-8f4f861639c6 × 1

官方标注的模型

flux2-vae.safetensorsflux3-image-klein-int8-convrot.safetensorsqwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensorsqwen3vl_4b_int8_convrot.safetensors

工作流 JSON

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

1{
2 "id": "e8f30439-267f-45de-b260-db0d114b2c85",
3 "revision": 0,
4 "last_node_id": 132,
5 "last_link_id": 145,
6 "nodes": [
7 {
8 "id": 9,
9 "type": "SaveImage",
10 "pos": [
11 1580,
12 30
13 ],
14 "size": [
15 560,
16 600
17 ],
18 "flags": [],
19 "order": 0,
20 "mode": 0,
21 "inputs": [
22 {
23 "name": "images",
24 "type": "IMAGE",
25 "link": 131
26 }
27 ],
28 "outputs": [
29 {
30 "name": "images",
31 "type": "IMAGE",
32 "links": []
33 }
34 ],
35 "properties": {
36 "Node name for S&R": "SaveImage"
37 },
38 "widgets_values": [
39 "Flux3Klein_t2i"
40 ],
41 "widgets_values_named": {
42 "filename_prefix": "image_flux3_klein_distilled_t2i"
43 },
44 "title": "Result"
45 },
46 {
47 "id": 19,
48 "type": "ResolutionSelector",
49 "pos": [
50 1100,
51 30
52 ],
53 "size": [
54 420,
55 190
56 ],
57 "flags": [],
58 "order": 1,
59 "mode": 0,
60 "showAdvanced": false,
61 "inputs": [],
62 "outputs": [
63 {
64 "name": "width",
65 "type": "INT",
66 "links": [
67 129,
68 144
69 ]
70 },
71 {
72 "name": "height",
73 "type": "INT",
74 "links": [
75 130,
76 145
77 ]
78 }
79 ],
80 "properties": {
81 "Node name for S&R": "ResolutionSelector"
82 },
83 "widgets_values": [
84 "1:1 (Square)",
85 1,
86 16
87 ],
88 "widgets_values_named": {
89 "aspect_ratio": "1:1 (Square)",
90 "megapixels": 2,
91 "multiple": 16
92 }
93 },
94 {
95 "id": 25,
96 "type": "CreateBoundingBoxes",
97 "pos": [
98 0,
99 420
100 ],
101 "size": [
102 420,
103 560
104 ],
105 "flags": [],
106 "order": 3,
107 "mode": 0,
108 "inputs": [
109 {
110 "name": "background",
111 "shape": 7,
112 "type": "IMAGE",
113 "link": null
114 },
115 {
116 "name": "bboxes",
117 "shape": 7,
118 "type": "BOUNDING_BOX,ARRAY,STRING",
119 "link": null
120 },
121 {
122 "localized_name": "width",
123 "name": "width",
124 "type": "INT",
125 "widget": {
126 "name": "width"
127 },
128 "link": 144
129 },
130 {
131 "localized_name": "height",
132 "name": "height",
133 "type": "INT",
134 "widget": {
135 "name": "height"
136 },
137 "link": 145
138 }
139 ],
140 "outputs": [
141 {
142 "name": "preview",
143 "type": "IMAGE",
144 "links": []
145 },
146 {
147 "name": "bboxes",
148 "type": "BOUNDING_BOX",
149 "links": []
150 },
151 {
152 "name": "elements",
153 "type": "ARRAY",
154 "links": [
155 112
156 ]
157 }
158 ],
159 "properties": {
160 "Node name for S&R": "CreateBoundingBoxes"
161 },
162 "widgets_values": [
163 1000,
164 1000,
165 [],
166 []
167 ],
168 "widgets_values_named": {
169 "width": 1000,
170 "height": 1000,
171 "editor_state": [],
172 "last_incoming": []
173 },
174 "title": "Bounding boxes (optional)",
175 "color": "#232",
176 "bgcolor": "#353"
177 },
178 {
179 "id": 28,
180 "type": "PrimitiveStringMultiline",
181 "title": "Prompt",
182 "pos": [
183 0,
184 30
185 ],
186 "size": [
187 420,
188 300
189 ],
190 "flags": [],
191 "order": 5,
192 "mode": 0,
193 "inputs": [],
194 "outputs": [
195 {
196 "localized_name": "STRING",
197 "name": "STRING",
198 "type": "STRING",
199 "links": [
200 111
201 ]
202 }
203 ],
204 "properties": {
205 "Node name for S&R": "PrimitiveStringMultiline"
206 },
207 "widgets_values": [
208 "close up profile of a young male athlete with closed eyes pressing his sweaty forehead against a soccer ball, right hand gripping the ball, stark white background, athletic jacket, white ball with jagged red graphic patterns, high contrast studio lighting, highly detailed skin texture, sharp focus Absolutely no text, no typography, no letters, no words, no numbers, no logos, no watermark, no captions, pure imagery only."
209 ],
210 "color": "#232",
211 "bgcolor": "#353"
212 },
213 {
214 "id": 113,
215 "type": "PreviewAny",
216 "pos": [
217 480,
218 344
219 ],
220 "size": [
221 560,
222 400
223 ],
224 "flags": [],
225 "order": 14,
226 "mode": 0,
227 "inputs": [
228 {
229 "localized_name": "source",
230 "name": "source",
231 "type": "*",
232 "link": 113
233 }
234 ],
235 "outputs": [
236 {
237 "localized_name": "STRING",
238 "name": "STRING",
239 "type": "STRING",
240 "links": [
241 128
242 ]
243 }
244 ],
245 "properties": {
246 "Node name for S&R": "PreviewAny"
247 },
248 "widgets_values": [],
249 "widgets_values_named": [],
250 "title": "Upsampled prompt",
251 "color": "#323",
252 "bgcolor": "#535"
253 },
254 {
255 "id": 127,
256 "type": "294d97c2-5179-4d93-a7ae-87b9745df54a",
257 "title": "Prompt Upsampler",
258 "pos": [
259 480,
260 30
261 ],
262 "size": [
263 560,
264 224
265 ],
266 "flags": [],
267 "order": 50,
268 "mode": 0,
269 "inputs": [
270 {
271 "label": "prompt",
272 "name": "prompt",
273 "type": "STRING",
274 "link": 111
275 },
276 {
277 "label": "bounding_boxes",
278 "name": "bounding_boxes",
279 "type": "ARRAY",
280 "link": 112
281 },
282 {
283 "label": "enable upsampler",
284 "name": "enable",
285 "type": "BOOLEAN",
286 "widget": {
287 "name": "enable"
288 },
289 "link": null
290 },
291 {
292 "label": "upsampler model",
293 "name": "upsampler_model",
294 "type": "COMBO",
295 "widget": {
296 "name": "upsampler_model"
297 },
298 "link": null
299 }
300 ],
301 "outputs": [
302 {
303 "localized_name": "prompt",
304 "name": "prompt",
305 "type": "STRING",
306 "links": [
307 113
308 ]
309 }
310 ],
311 "properties": {
312 "previewExposures": []
313 },
314 "color": "#323",
315 "bgcolor": "#535",
316 "widgets_values": [
317 "",
318 true,
319 "qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors"
320 ],
321 "widgets_values_named": {
322 "prompt": "",
323 "enable": true,
324 "upsampler_model": "qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors"
325 }
326 },
327 {
328 "id": 128,
329 "type": "8f01b7ad-14bc-4b2f-a42e-8f4f861639c6",
330 "title": "FLUX 3 Klein · text to image",
331 "pos": [
332 1100,
333 310
334 ],
335 "size": [
336 420,
337 442
338 ],
339 "flags": [],
340 "order": 60,
341 "mode": 0,
342 "inputs": [
343 {
344 "label": "prompt",
345 "name": "prompt",
346 "type": "STRING",
347 "link": 128
348 },
349 {
350 "label": "width",
351 "name": "width",
352 "type": "INT",
353 "link": 129
354 },
355 {
356 "label": "height",
357 "name": "height",
358 "type": "INT",
359 "link": 130
360 },
361 {
362 "label": "batch size",
363 "name": "batch_size",
364 "type": "INT",
365 "widget": {
366 "name": "batch_size"
367 },
368 "link": null
369 },
370 {
371 "label": "steps",
372 "name": "steps",
373 "type": "INT",
374 "link": null,
375 "widget": {
376 "name": "steps"
377 }
378 },
379 {
380 "label": "alpha (timestep shift)",
381 "name": "alpha",
382 "type": "FLOAT",
383 "widget": {
384 "name": "alpha"
385 },
386 "link": null
387 },
388 {
389 "label": "seed",
390 "name": "seed",
391 "type": "INT",
392 "link": null,
393 "widget": {
394 "name": "seed"
395 }
396 },
397 {
398 "label": "sampler",
399 "name": "sampler_name",
400 "type": "COMBO",
401 "widget": {
402 "name": "sampler_name"
403 },
404 "link": null
405 },
406 {
407 "label": "scheduler",
408 "name": "scheduler",
409 "type": "COMBO",
410 "widget": {
411 "name": "scheduler"
412 },
413 "link": null
414 },
415 {
416 "label": "diffusion model",
417 "name": "unet_name",
418 "type": "COMBO",
419 "widget": {
420 "name": "unet_name"
421 },
422 "link": null
423 },
424 {
425 "label": "text encoder",
426 "name": "clip_name",
427 "type": "COMBO",
428 "widget": {
429 "name": "clip_name"
430 },
431 "link": null
432 },
433 {
434 "label": "vae",
435 "name": "vae_name",
436 "type": "COMBO",
437 "widget": {
438 "name": "vae_name"
439 },
440 "link": null
441 }
442 ],
443 "outputs": [
444 {
445 "localized_name": "IMAGE",
446 "name": "IMAGE",
447 "type": "IMAGE",
448 "links": [
449 131
450 ]
451 }
452 ],
453 "properties": {
454 "previewExposures": []
455 },
456 "widgets_values": [
457 "",
458 1024,
459 1024,
460 1,
461 16,
462 16,
463 758781618552631,
464 "euler",
465 "simple",
466 "flux3-image-klein-int8-convrot.safetensors",
467 "qwen3vl_4b_int8_convrot.safetensors",
468 "flux2-vae.safetensors"
469 ],
470 "widgets_values_named": {
471 "prompt": "",
472 "width": 1024,
473 "height": 1024,
474 "batch_size": 1,
475 "steps": 16,
476 "alpha": 16,
477 "seed": 758781618552631,
478 "sampler_name": "euler",
479 "scheduler": "simple",
480 "unet_name": "flux3-image-klein-int8-convrot.safetensors",
481 "clip_name": "qwen3vl_4b_int8_convrot.safetensors",
482 "vae_name": "flux2-vae.safetensors"
483 },
484 "color": "#223",
485 "bgcolor": "#335"
486 },
487 {
488 "id": 129,
489 "type": "MarkdownNote",
490 "pos": [
491 -560,
492 30
493 ],
494 "size": [
495 500,
496 560
497 ],
498 "flags": [],
499 "order": 0,
500 "mode": 0,
501 "inputs": [],
502 "outputs": [],
503 "title": "How to use",
504 "properties": [],
505 "widgets_values": [
506 "## How to use - tested on RTX 3060 12 GB\n\n1. Write what you want in **Prompt**. Short is fine: the **Prompt Upsampler** turns it into the full scene caption Klein was trained on (you see it in **Upsampled prompt**). BFL says: do not run Klein without it.\n2. Optional: draw **Bounding boxes** and describe each one, to say what goes where. Needs Nodes 2.0 (ComfyUI icon → Nodes 2.0). Leave it empty for a normal prompt.\n3. Pick the size in the size node: 1 MP is the 12 GB default, 4 MP works too, it just takes longer.\n4. Press **Run**. Distilled Klein: 16 steps, no CFG.\n\nRTX 3060, 1 MP: new prompt 25 s (upsampler + image) · same prompt, new seed 14 s (the upsampled prompt is reused). 4 MP, same prompt: 1 min 16 s. First run after starting ComfyUI: 50 s. Peak VRAM 11.4 GB, RAM about 4 GB.\n\n4 MP: the sky in my test showed some banding. My 1 MP tests looked clean.\n\nAlready wrote a long caption yourself? Turn off *enable upsampler* on the upsampler node.\n\nDouble-click a node to see every step."
507 ],
508 "color": "#432",
509 "bgcolor": "#653"
510 },
511 {
512 "id": 130,
513 "type": "MarkdownNote",
514 "pos": [
515 -560,
516 620
517 ],
518 "size": [
519 500,
520 620
521 ],
522 "flags": [],
523 "order": 0,
524 "mode": 0,
525 "inputs": [],
526 "outputs": [],
527 "title": "Downloads",
528 "properties": [],
529 "widgets_values": [
530 "## Downloads - put each file in the ComfyUI folder shown\n\nClick a file name to download it. Put it in the folder shown (inside `ComfyUI/models/`).\nThe repo is gated: log in on Hugging Face and accept BFL's terms on the model page first.\n\n**[black-forest-labs/flux-3-image-klein-comfy](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy)**\n\n| For | Folder | File (click = download) | Size |\n|---|---|---|---|\n| all (tested) | `diffusion_models/` | [flux3-image-klein-int8-convrot.safetensors](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/diffusion_models/flux3-image-klein-int8-convrot.safetensors) | 5.8 GB |\n| all (tested) | `text_encoders/` | [qwen3vl_4b_int8_convrot.safetensors](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/text_encoders/qwen3vl_4b_int8_convrot.safetensors) | 4.9 GB |\n| prompt upsampler (tested) | `text_encoders/` | [qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/text_encoders/qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors) | 6.7 GB |\n| all (tested) | `vae/` | [flux2-vae.safetensors](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/vae/flux2-vae.safetensors) | 0.3 GB |\n\nTotal: 17.8 GB. _Tested on: RTX 3060 12 GB · Ryzen 5 5600X · 32 GB RAM · ComfyUI 0.43.1 · sage attention._\n\nNeeds ComfyUI **0.41 or newer** (FLUX 3 Image support landed in 0.41.0). Update first.\n\nBigger cards: `flux3-image-klein-bf16` (11.1 GB) and the int8 upsampler (9.8 GB) are in the same repo. RTX 50 cards: the `nvfp4` file (5.3 GB).\n\nLicense: FLUX Kommunity License (non-commercial; commercial output use if your revenue is under US$5M, see the model page). Workflow: MIT."
531 ],
532 "color": "#432",
533 "bgcolor": "#653"
534 }
535 ],
536 "links": [
537 [
538 111,
539 28,
540 0,
541 127,
542 0,
543 "STRING"
544 ],
545 [
546 112,
547 25,
548 2,
549 127,
550 1,
551 "ARRAY"
552 ],
553 [
554 113,
555 127,
556 0,
557 113,
558 0,
559 "STRING"
560 ],
561 [
562 128,
563 113,
564 0,
565 128,
566 0,
567 "STRING"
568 ],
569 [
570 129,
571 19,
572 0,
573 128,
574 1,
575 "INT"
576 ],
577 [
578 130,
579 19,
580 1,
581 128,
582 2,
583 "INT"
584 ],
585 [
586 131,
587 128,
588 0,
589 9,
590 0,
591 "IMAGE"
592 ],
593 [
594 144,
595 19,
596 0,
597 25,
598 2,
599 "INT"
600 ],
601 [
602 145,
603 19,
604 1,
605 25,
606 3,
607 "INT"
608 ]
609 ],
610 "groups": [],
611 "config": [],
612 "extra": {
613 "ds": {
614 "scale": 0.6,
615 "offset": [
616 620,
617 60
618 ]
619 },
620 "frontendVersion": "1.55.17"
621 },
622 "version": 0.4,
623 "definitions": {
624 "subgraphs": [
625 {
626 "id": "294d97c2-5179-4d93-a7ae-87b9745df54a",
627 "version": 1,
628 "state": {
629 "lastGroupId": 3,
630 "lastNodeId": 126,
631 "lastLinkId": 110,
632 "lastRerouteId": 0
633 },
634 "revision": 0,
635 "config": [],
636 "name": "Prompt Upsampler",
637 "inputNode": {
638 "id": -10,
639 "bounding": [
640 0,
641 80,
642 200,
643 160
644 ]
645 },
646 "outputNode": {
647 "id": -20,
648 "bounding": [
649 2020,
650 80,
651 140,
652 70
653 ]
654 },
655 "inputs": [
656 {
657 "id": "1b579fb6-db8a-4153-91fa-61109f19a4e1",
658 "name": "prompt",
659 "type": "STRING",
660 "linkIds": [
661 89,
662 98,
663 106
664 ],
665 "label": "prompt",
666 "pos": [
667 180,
668 110
669 ]
670 },
671 {
672 "id": "b3ac3af9-1050-40aa-ad41-4b5af015cc01",
673 "name": "bounding_boxes",
674 "type": "ARRAY",
675 "linkIds": [
676 88,
677 93
678 ],
679 "label": "bounding_boxes",
680 "pos": [
681 180,
682 140
683 ]
684 },
685 {
686 "id": "fd743e51-c181-440e-8290-565418b37e1f",
687 "name": "enable",
688 "type": "BOOLEAN",
689 "linkIds": [
690 108
691 ],
692 "label": "enable upsampler",
693 "pos": [
694 180,
695 170
696 ]
697 },
698 {
699 "id": "c056ffc9-0dae-4183-90b3-8a56055c8d97",
700 "name": "upsampler_model",
701 "type": "COMBO",
702 "linkIds": [
703 109
704 ],
705 "label": "upsampler model",
706 "pos": [
707 180,
708 200
709 ]
710 }
711 ],
712 "outputs": [
713 {
714 "id": "430744a2-9cd0-4cfd-a192-8594e23c91ae",
715 "name": "prompt",
716 "type": "STRING",
717 "linkIds": [
718 110
719 ],
720 "localized_name": "prompt",
721 "pos": [
722 2040,
723 110
724 ]
725 }
726 ],
727 "widgets": [],
728 "nodes": [
729 {
730 "id": 112,
731 "type": "CLIPLoader",
732 "pos": [
733 1480,
734 110
735 ],
736 "size": [
737 480,
738 130
739 ],
740 "flags": [],
741 "order": 6,
742 "mode": 0,
743 "inputs": [
744 {
745 "localized_name": "clip_name",
746 "name": "clip_name",
747 "type": "COMBO",
748 "widget": {
749 "name": "clip_name"
750 },
751 "link": 109
752 }
753 ],
754 "outputs": [
755 {
756 "localized_name": "CLIP",
757 "name": "CLIP",
758 "type": "CLIP",
759 "links": [
760 92
761 ]
762 }
763 ],
764 "properties": {
765 "Node name for S&R": "CLIPLoader",
766 "models": [
767 {
768 "name": "qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors",
769 "url": "https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/text_encoders/qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors",
770 "directory": "text_encoders"
771 }
772 ]
773 },
774 "widgets_values": [
775 "qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors",
776 "flux3",
777 "default"
778 ],
779 "widgets_values_named": {
780 "clip_name": "qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors",
781 "type": "flux3",
782 "device": "default"
783 },
784 "title": "Upsampler model"
785 },
786 {
787 "id": 116,
788 "type": "ComfySwitchNode",
789 "pos": [
790 1480,
791 1000
792 ],
793 "size": [
794 480,
795 100
796 ],
797 "flags": [],
798 "order": 15,
799 "mode": 0,
800 "inputs": [
801 {
802 "localized_name": "on_false",
803 "name": "on_false",
804 "shape": 7,
805 "type": "STRING",
806 "link": 90
807 },
808 {
809 "localized_name": "on_true",
810 "name": "on_true",
811 "shape": 7,
812 "type": "STRING",
813 "link": 91
814 },
815 {
816 "localized_name": "switch",
817 "name": "switch",
818 "type": "BOOLEAN",
819 "widget": {
820 "name": "switch"
821 },
822 "link": 108
823 }
824 ],
825 "outputs": [
826 {
827 "localized_name": "output",
828 "name": "output",
829 "type": "STRING",
830 "links": [
831 110
832 ]
833 }
834 ],
835 "properties": {
836 "Node name for S&R": "ComfySwitchNode"
837 },
838 "widgets_values": [
839 true
840 ],
841 "widgets_values_named": {
842 "switch": true
843 },
844 "title": "Upsampler on/off",
845 "color": "#323",
846 "bgcolor": "#535"
847 },
848 {
849 "id": 27,
850 "type": "Flux3LayoutPrompt",
851 "pos": [
852 1480,
853 860
854 ],
855 "size": [
856 480,
857 80
858 ],
859 "flags": [],
860 "order": 4,
861 "mode": 0,
862 "inputs": [
863 {
864 "localized_name": "prompt",
865 "name": "prompt",
866 "type": "STRING",
867 "widget": {
868 "name": "prompt"
869 },
870 "link": 89
871 },
872 {
873 "name": "element",
874 "type": "ARRAY",
875 "link": 88
876 }
877 ],
878 "outputs": [
879 {
880 "name": "prompt",
881 "type": "STRING",
882 "links": [
883 90
884 ]
885 }
886 ],
887 "properties": {
888 "Node name for S&R": "Flux3LayoutPrompt"
889 },
890 "widgets_values": [
891 ""
892 ],
893 "widgets_values_named": {
894 "prompt": ""
895 },
896 "title": "Prompt + boxes",
897 "color": "#323",
898 "bgcolor": "#535"
899 },
900 {
901 "id": 118,
902 "type": "Flux3LayoutPrompt",
903 "title": "Box rows only",
904 "pos": [
905 300,
906 110
907 ],
908 "size": [
909 420,
910 80
911 ],
912 "flags": [],
913 "order": 118,
914 "mode": 0,
915 "inputs": [
916 {
917 "localized_name": "prompt",
918 "name": "prompt",
919 "type": "STRING",
920 "link": null,
921 "widget": {
922 "name": "prompt"
923 }
924 },
925 {
926 "localized_name": "element",
927 "name": "element",
928 "type": "ARRAY",
929 "link": 93
930 }
931 ],
932 "outputs": [
933 {
934 "localized_name": "prompt",
935 "name": "prompt",
936 "type": "STRING",
937 "links": [
938 94
939 ]
940 }
941 ],
942 "properties": {
943 "Node name for S&R": "Flux3LayoutPrompt"
944 },
945 "widgets_values": [
946 ""
947 ],
948 "color": "#323",
949 "bgcolor": "#535"
950 },
951 {
952 "id": 119,
953 "type": "StringTrim",
954 "title": "Trim box rows",
955 "pos": [
956 300,
957 250
958 ],
959 "size": [
960 420,
961 82
962 ],
963 "flags": [],
964 "order": 119,
965 "mode": 0,
966 "inputs": [
967 {
968 "localized_name": "string",
969 "name": "string",
970 "type": "STRING",
971 "link": 94,
972 "widget": {
973 "name": "string"
974 }
975 }
976 ],
977 "outputs": [
978 {
979 "localized_name": "STRING",
980 "name": "STRING",
981 "type": "STRING",
982 "links": [
983 95,
984 97
985 ]
986 }
987 ],
988 "properties": {
989 "Node name for S&R": "StringTrim"
990 },
991 "widgets_values": [
992 "",
993 "Both"
994 ],
995 "color": "#323",
996 "bgcolor": "#535"
997 },
998 {
999 "id": 120,
1000 "type": "StringContains",
1001 "title": "Has boxes?",
1002 "pos": [
1003 300,
1004 392
1005 ],
1006 "size": [
1007 420,
1008 110
1009 ],
1010 "flags": [],
1011 "order": 120,
1012 "mode": 0,
1013 "inputs": [
1014 {
1015 "localized_name": "string",
1016 "name": "string",
1017 "type": "STRING",
1018 "link": 95,
1019 "widget": {
1020 "name": "string"
1021 }
1022 }
1023 ],
1024 "outputs": [
1025 {
1026 "localized_name": "contains",
1027 "name": "contains",
1028 "type": "BOOLEAN",
1029 "links": [
1030 100,
1031 103
1032 ]
1033 }
1034 ],
1035 "properties": {
1036 "Node name for S&R": "StringContains"
1037 },
1038 "widgets_values": [
1039 "",
1040 "\"bbox\"",
1041 true
1042 ],
1043 "color": "#323",
1044 "bgcolor": "#535"
1045 },
1046 {
1047 "id": 126,
1048 "type": "StringTrim",
1049 "title": "Trim prompt",
1050 "pos": [
1051 300,
1052 562
1053 ],
1054 "size": [
1055 420,
1056 82
1057 ],
1058 "flags": [],
1059 "order": 126,
1060 "mode": 0,
1061 "inputs": [
1062 {
1063 "localized_name": "string",
1064 "name": "string",
1065 "type": "STRING",
1066 "widget": {
1067 "name": "string"
1068 },
1069 "link": 106
1070 }
1071 ],
1072 "outputs": [
1073 {
1074 "localized_name": "STRING",
1075 "name": "STRING",
1076 "type": "STRING",
1077 "links": [
1078 107
1079 ]
1080 }
1081 ],
1082 "properties": {
1083 "Node name for S&R": "StringTrim"
1084 },
1085 "widgets_values": [
1086 "",
1087 "Both"
1088 ],
1089 "color": "#323",
1090 "bgcolor": "#535"
1091 },
1092 {
1093 "id": 121,
1094 "type": "StringConcatenate",
1095 "title": "Locked-box input (1/2)",
1096 "pos": [
1097 300,
1098 704
1099 ],
1100 "size": [
1101 420,
1102 150
1103 ],
1104 "flags": [],
1105 "order": 121,
1106 "mode": 0,
1107 "inputs": [
1108 {
1109 "localized_name": "string_b",
1110 "name": "string_b",
1111 "type": "STRING",
1112 "link": 107,
1113 "widget": {
1114 "name": "string_b"
1115 }
1116 }
1117 ],
1118 "outputs": [
1119 {
1120 "localized_name": "STRING",
1121 "name": "STRING",
1122 "type": "STRING",
1123 "links": [
1124 96
1125 ]
1126 }
1127 ],
1128 "properties": {
1129 "Node name for S&R": "StringConcatenate"
1130 },
1131 "widgets_values": [
1132 "ORIGINAL PROMPT:\n",
1133 "",
1134 ""
1135 ],
1136 "color": "#323",
1137 "bgcolor": "#535"
1138 },
1139 {
1140 "id": 122,
1141 "type": "StringConcatenate",
1142 "title": "Locked-box input (2/2)",
1143 "pos": [
1144 300,
1145 914
1146 ],
1147 "size": [
1148 420,
1149 150
1150 ],
1151 "flags": [],
1152 "order": 122,
1153 "mode": 0,
1154 "inputs": [
1155 {
1156 "localized_name": "string_a",
1157 "name": "string_a",
1158 "type": "STRING",
1159 "link": 96,
1160 "widget": {
1161 "name": "string_a"
1162 }
1163 },
1164 {
1165 "localized_name": "string_b",
1166 "name": "string_b",
1167 "type": "STRING",
1168 "link": 97,
1169 "widget": {
1170 "name": "string_b"
1171 }
1172 }
1173 ],
1174 "outputs": [
1175 {
1176 "localized_name": "STRING",
1177 "name": "STRING",
1178 "type": "STRING",
1179 "links": [
1180 99
1181 ]
1182 }
1183 ],
1184 "properties": {
1185 "Node name for S&R": "StringConcatenate"
1186 },
1187 "widgets_values": [
1188 "",
1189 "",
1190 "\n\nLOCKED BOUNDING-BOX ANNOTATIONS ([y_min, x_min, y_max, x_max] on a 0-1000 canvas, with (0, 0) at the top-left). This is an authoritative JSON list of dictionaries; preserve every supplied identity, provenance value, null, and coordinate exactly:\n"
1191 ],
1192 "color": "#323",
1193 "bgcolor": "#535"
1194 },
1195 {
1196 "id": 123,
1197 "type": "ComfySwitchNode",
1198 "title": "Upsampler input: plain or locked-box",
1199 "pos": [
1200 300,
1201 1124
1202 ],
1203 "size": [
1204 420,
1205 100
1206 ],
1207 "flags": [],
1208 "order": 123,
1209 "mode": 0,
1210 "inputs": [
1211 {
1212 "localized_name": "on_false",
1213 "name": "on_false",
1214 "type": "STRING",
1215 "link": 98,
1216 "shape": 7
1217 },
1218 {
1219 "localized_name": "on_true",
1220 "name": "on_true",
1221 "type": "STRING",
1222 "link": 99,
1223 "shape": 7
1224 },
1225 {
1226 "localized_name": "switch",
1227 "name": "switch",
1228 "type": "BOOLEAN",
1229 "link": 100,
1230 "widget": {
1231 "name": "switch"
1232 }
1233 }
1234 ],
1235 "outputs": [
1236 {
1237 "localized_name": "output",
1238 "name": "output",
1239 "type": "STRING",
1240 "links": [
1241 104
1242 ]
1243 }
1244 ],
1245 "properties": {
1246 "Node name for S&R": "ComfySwitchNode"
1247 },
1248 "widgets_values": [
1249 false
1250 ],
1251 "color": "#323",
1252 "bgcolor": "#535"
1253 },
1254 {
1255 "id": 114,
1256 "type": "PrimitiveStringMultiline",
1257 "pos": [
1258 820,
1259 110
1260 ],
1261 "size": [
1262 560,
1263 380
1264 ],
1265 "flags": [],
1266 "order": 7,
1267 "mode": 0,
1268 "inputs": [],
1269 "outputs": [
1270 {
1271 "localized_name": "STRING",
1272 "name": "STRING",
1273 "type": "STRING",
1274 "links": [
1275 101
1276 ]
1277 }
1278 ],
1279 "title": "System prompt: plain (t2i)",
1280 "properties": {
1281 "Node name for S&R": "PrimitiveStringMultiline"
1282 },
1283 "widgets_values": [
1284 "You are the prompt upsampler of a text-to-image model. Expand the user's short request into ONE detailed, self-contained caption: the exact text the image model receives. Output only the caption, with no greetings, explanations, refusals, questions, Markdown, headings, JSON, coordinates, ids or angle-bracket tokens, and no quotes around it. If the input is not clearly an image request, caption a visualization of its concept. The request may begin with a \"TARGET CANVAS: W:H\" line: compose for that canvas (wide spreads content sideways, tall stacks it) and never mention the ratio or the canvas.\n\nFidelity and planning: keep every explicit subject, attribute, count, spatial constraint, style cue and piece of wording; never contradict, substitute, drop or narrow the request, and keep an abstract concept abstract. Decide everything left open as ONE concrete, consistent plan; never offer alternatives or hedge. Never re-express a stated constraint through another mechanism; add camera optics (depth of field, bokeh, blur) only when asked for or implied. Without a stated style, plan an actual photograph and open with the medium convention (\"Full-color outdoor photograph, ...\", \"Full-color indoor photograph, ...\", \"Studio photograph, ...\", \"Close-up photograph, ...\"); keep \"Photorealistic\" for renders, and turn \"photorealistic\" or \"realistic\" requests for photos into the photograph convention. Give a photograph a few ordinary, non-ideal specifics drawn from the scene's own objects instead of the stock-photo ideal. Do not invent names, brands, logos or celebrities; keep user-named ones. A long request keeps its content but not its wording: drop appraisal and sales vocabulary, turn moods into observable physical facts, and add only new concrete content with positions. Time of day is lighting, not rendered text.\n\nCaption format: one continuous prose block in the generative voice, never \"this image shows\", \"we can see\" or \"is visible\". Lead with medium and style, then scene, lighting and camera, then the subjects with concrete colors, materials and state. Every person in focus gets an observable profile: ethnicity, gender, age range, skin tone (\"fair skin\", \"brown skin\"), hair and clothing. Make the layout reconstructable from words: frame-relative positions (frame-left, frame-right, upper, lower, foreground, midground, background), sentence-initial anchors (\"On the left, ...\", \"In the background, ...\"), relations (holds, faces, behind) and a consistent order; describe up to about ten instances one by one, beyond that give the exact count and arrangement. Out-of-focus or distant planes are shapes, colors and silhouettes, never identities or readable text, and the background takes about a sixth of the caption. Be definite: no hedging adverbs, no quality or emotion judgments, no closing sentence about mood; state negations as what is present. Rendered text: transcribe every wording verbatim inside double quotes in its original language and script, keep the line breaks of multi-line text, and give its typography, color and placement; author concrete, domain-correct wording when the request needs text it does not supply, and name canonical structures (calendar, keyboard, periodic table) exactly with their full layout. All prose is English; only quoted text keeps its language. Typical length is 100 to 350 words, more for complex scenes.\n\nOutput only the caption."
1285 ],
1286 "widgets_values_named": {
1287 "value": "You are the prompt upsampler of a text-to-image model. Expand the user's short request into ONE detailed, self-contained caption: the exact text the image model receives. Output only the caption, with no greetings, explanations, refusals, questions, Markdown, headings, JSON, coordinates, ids or angle-bracket tokens, and no quotes around it. If the input is not clearly an image request, caption a visualization of its concept. The request may begin with a \"TARGET CANVAS: W:H\" line: compose for that canvas (wide spreads content sideways, tall stacks it) and never mention the ratio or the canvas.\n\nFidelity and planning: keep every explicit subject, attribute, count, spatial constraint, style cue and piece of wording; never contradict, substitute, drop or narrow the request, and keep an abstract concept abstract. Decide everything left open as ONE concrete, consistent plan; never offer alternatives or hedge. Never re-express a stated constraint through another mechanism; add camera optics (depth of field, bokeh, blur) only when asked for or implied. Without a stated style, plan an actual photograph and open with the medium convention (\"Full-color outdoor photograph, ...\", \"Full-color indoor photograph, ...\", \"Studio photograph, ...\", \"Close-up photograph, ...\"); keep \"Photorealistic\" for renders, and turn \"photorealistic\" or \"realistic\" requests for photos into the photograph convention. Give a photograph a few ordinary, non-ideal specifics drawn from the scene's own objects instead of the stock-photo ideal. Do not invent names, brands, logos or celebrities; keep user-named ones. A long request keeps its content but not its wording: drop appraisal and sales vocabulary, turn moods into observable physical facts, and add only new concrete content with positions. Time of day is lighting, not rendered text.\n\nCaption format: one continuous prose block in the generative voice, never \"this image shows\", \"we can see\" or \"is visible\". Lead with medium and style, then scene, lighting and camera, then the subjects with concrete colors, materials and state. Every person in focus gets an observable profile: ethnicity, gender, age range, skin tone (\"fair skin\", \"brown skin\"), hair and clothing. Make the layout reconstructable from words: frame-relative positions (frame-left, frame-right, upper, lower, foreground, midground, background), sentence-initial anchors (\"On the left, ...\", \"In the background, ...\"), relations (holds, faces, behind) and a consistent order; describe up to about ten instances one by one, beyond that give the exact count and arrangement. Out-of-focus or distant planes are shapes, colors and silhouettes, never identities or readable text, and the background takes about a sixth of the caption. Be definite: no hedging adverbs, no quality or emotion judgments, no closing sentence about mood; state negations as what is present. Rendered text: transcribe every wording verbatim inside double quotes in its original language and script, keep the line breaks of multi-line text, and give its typography, color and placement; author concrete, domain-correct wording when the request needs text it does not supply, and name canonical structures (calendar, keyboard, periodic table) exactly with their full layout. All prose is English; only quoted text keeps its language. Typical length is 100 to 350 words, more for complex scenes.\n\nOutput only the caption."
1288 },
1289 "color": "#323",
1290 "bgcolor": "#535"
1291 },
1292 {
1293 "id": 124,
1294 "type": "PrimitiveStringMultiline",
1295 "title": "System prompt: bounding boxes (t2i_bbox)",
1296 "pos": [
1297 820,
1298 550
1299 ],
1300 "size": [
1301 560,
1302 380
1303 ],
1304 "flags": [],
1305 "order": 124,
1306 "mode": 0,
1307 "inputs": [],
1308 "outputs": [
1309 {
1310 "localized_name": "STRING",
1311 "name": "STRING",
1312 "type": "STRING",
1313 "links": [
1314 102
1315 ]
1316 }
1317 ],
1318 "properties": {
1319 "Node name for S&R": "PrimitiveStringMultiline"
1320 },
1321 "widgets_values": [
1322 "You are the prompt upsampler of a text-to-image model. Plan the full image the user's short request implies and output ONE structured caption on a single line: the global caption paragraph, one space, then ONE JSON array, the element table that places every cited element with a bounding box in the image to be generated. Output nothing else (no Markdown fences, commentary or refusals); visualize the concept of a non-image input. The request may begin with a \"TARGET CANVAS: W:H\" line: compose for that canvas and never mention it. Boxes live on a 0-1000 grid stretched onto the canvas: an element of physical width-to-height ratio a gets an x-span of about y-span x a x H/W.\n\nPlanning: keep every explicit subject, attribute, count, spatial constraint, style cue and piece of wording, and decide everything left open as ONE concrete composition that the caption and the table both describe. Without a stated style plan an actual photograph and open with the medium convention (\"Full-color outdoor photograph, ...\", \"Studio photograph, ...\"); add camera optics only when asked for; do not invent names, brands, logos or celebrities; drop appraisal and sales vocabulary.\n\nThe table: one row per distinct object, person, animal, building or salient region the caption mentions and one per coherent text block; no rows for style, lighting or atmosphere. Structured layouts (tables, grids, calendars, keyboards, charts, maps, posters, pages) decompose into their regions, each row carrying that region's complete verbatim content; more than about ten interchangeable items become one collection row giving the exact count and arrangement, while items whose positions matter keep a row each. Row keys, in order: \"id\", \"bbox\", \"desc\". id: the bare class noun plus an index numbered left to right, then top to bottom, from 1 (person_1, dog_2); a text block is its two-letter language code plus _Text_ plus an index (En_Text_1); one entity is one row and ids are unique. bbox: [y_min, x_min, y_max, x_max] as integers from 0 to 1000, top-left origin, clamped at the borders, with plausible relative sizes and a small margin around text. desc: one self-contained paragraph in the generative voice that opens with the element's identity (never \"the X\"): shape, material, colors, state and markings, but no position. People in focus get the richest desc: ethnicity, gender, age range, skin tone, build, hair, face, each garment, accessories, pose and expression. A text row carries its complete wording verbatim in double quotes, with line breaks as \\n, plus its typography.\n\nThe global caption: one flowing paragraph in the generative voice (medium first, then scene, lighting, camera and frame-relative layout; no quality judgments) that names each table element at identity level at its first mention and cites it with its id in its own angle brackets: \"a wicker table <table_1> holding a tiered stand <stand_1>\". Cite every table id and no other; appearance detail and text content live in the descs; no coordinates. Text-dense documents are laid out region by region with every visible text transcribed verbatim at a readable size (cut content rather than shrink type), and a grid quotes every visible cell. All prose is English; only quoted text keeps its language.\n\nOutput only the caption and the table."
1323 ],
1324 "color": "#323",
1325 "bgcolor": "#535"
1326 },
1327 {
1328 "id": 125,
1329 "type": "ComfySwitchNode",
1330 "title": "System prompt: t2i or t2i_bbox",
1331 "pos": [
1332 820,
1333 990
1334 ],
1335 "size": [
1336 560,
1337 100
1338 ],
1339 "flags": [],
1340 "order": 125,
1341 "mode": 0,
1342 "inputs": [
1343 {
1344 "localized_name": "on_false",
1345 "name": "on_false",
1346 "type": "STRING",
1347 "link": 101,
1348 "shape": 7
1349 },
1350 {
1351 "localized_name": "on_true",
1352 "name": "on_true",
1353 "type": "STRING",
1354 "link": 102,
1355 "shape": 7
1356 },
1357 {
1358 "localized_name": "switch",
1359 "name": "switch",
1360 "type": "BOOLEAN",
1361 "link": 103,
1362 "widget": {
1363 "name": "switch"
1364 }
1365 }
1366 ],
1367 "outputs": [
1368 {
1369 "localized_name": "output",
1370 "name": "output",
1371 "type": "STRING",
1372 "links": [
1373 105
1374 ]
1375 }
1376 ],
1377 "properties": {
1378 "Node name for S&R": "ComfySwitchNode"
1379 },
1380 "widgets_values": [
1381 false
1382 ],
1383 "color": "#323",
1384 "bgcolor": "#535"
1385 },
1386 {
1387 "id": 111,
1388 "type": "TextGenerate",
1389 "pos": [
1390 1480,
1391 300
1392 ],
1393 "size": [
1394 480,
1395 500
1396 ],
1397 "flags": [],
1398 "order": 8,
1399 "mode": 0,
1400 "inputs": [
1401 {
1402 "localized_name": "clip",
1403 "name": "clip",
1404 "type": "CLIP",
1405 "link": 92
1406 },
1407 {
1408 "localized_name": "image",
1409 "name": "image",
1410 "shape": 7,
1411 "type": "IMAGE",
1412 "link": null
1413 },
1414 {
1415 "localized_name": "video",
1416 "name": "video",
1417 "shape": 7,
1418 "type": "IMAGE",
1419 "link": null
1420 },
1421 {
1422 "localized_name": "audio",
1423 "name": "audio",
1424 "shape": 7,
1425 "type": "AUDIO",
1426 "link": null
1427 },
1428 {
1429 "localized_name": "system_prompt",
1430 "name": "system_prompt",
1431 "shape": 7,
1432 "type": "STRING",
1433 "link": 105
1434 },
1435 {
1436 "localized_name": "prompt",
1437 "name": "prompt",
1438 "type": "STRING",
1439 "widget": {
1440 "name": "prompt"
1441 },
1442 "link": 104
1443 }
1444 ],
1445 "outputs": [
1446 {
1447 "localized_name": "generated_text",
1448 "name": "generated_text",
1449 "type": "STRING",
1450 "links": [
1451 91
1452 ]
1453 },
1454 {
1455 "localized_name": "thinking",
1456 "name": "thinking",
1457 "type": "STRING",
1458 "links": []
1459 }
1460 ],
1461 "properties": {
1462 "Node name for S&R": "TextGenerate"
1463 },
1464 "widgets_values": [
1465 "",
1466 3584,
1467 "on",
1468 1,
1469 1,
1470 0.95,
1471 0,
1472 1,
1473 758781618552631,
1474 1.5,
1475 false,
1476 true,
1477 "off"
1478 ],
1479 "widgets_values_named": {
1480 "prompt": "",
1481 "max_length": 3584,
1482 "sampling_mode": "on",
1483 "sampling_mode.temperature": 1,
1484 "sampling_mode.top_k": 1,
1485 "sampling_mode.top_p": 0.95,
1486 "sampling_mode.min_p": 0,
1487 "sampling_mode.repetition_penalty": 1,
1488 "sampling_mode.seed": 758781618552631,
1489 "sampling_mode.presence_penalty": 1.5,
1490 "thinking": false,
1491 "use_default_template": true,
1492 "mtp": "off"
1493 },
1494 "title": "Prompt upsampler",
1495 "color": "#323",
1496 "bgcolor": "#535"
1497 }
1498 ],
1499 "groups": [
1500 {
1501 "id": 1,
1502 "title": "Bounding boxes -> locked-box input",
1503 "bounding": [
1504 280,
1505 0,
1506 460,
1507 1264
1508 ],
1509 "color": "#3f789e",
1510 "flags": []
1511 },
1512 {
1513 "id": 2,
1514 "title": "System prompts",
1515 "bounding": [
1516 800,
1517 0,
1518 600,
1519 1264
1520 ],
1521 "color": "#3f789e",
1522 "flags": []
1523 },
1524 {
1525 "id": 3,
1526 "title": "Upsampler",
1527 "bounding": [
1528 1460,
1529 0,
1530 520,
1531 1264
1532 ],
1533 "color": "#3f789e",
1534 "flags": []
1535 }
1536 ],
1537 "links": [
1538 {
1539 "id": 88,
1540 "origin_id": -10,
1541 "origin_slot": 1,
1542 "target_id": 27,
1543 "target_slot": 1,
1544 "type": "ARRAY"
1545 },
1546 {
1547 "id": 89,
1548 "origin_id": -10,
1549 "origin_slot": 0,
1550 "target_id": 27,
1551 "target_slot": 0,
1552 "type": "STRING"
1553 },
1554 {
1555 "id": 90,
1556 "origin_id": 27,
1557 "origin_slot": 0,
1558 "target_id": 116,
1559 "target_slot": 0,
1560 "type": "STRING"
1561 },
1562 {
1563 "id": 91,
1564 "origin_id": 111,
1565 "origin_slot": 0,
1566 "target_id": 116,
1567 "target_slot": 1,
1568 "type": "STRING"
1569 },
1570 {
1571 "id": 92,
1572 "origin_id": 112,
1573 "origin_slot": 0,
1574 "target_id": 111,
1575 "target_slot": 0,
1576 "type": "CLIP"
1577 },
1578 {
1579 "id": 93,
1580 "origin_id": -10,
1581 "origin_slot": 1,
1582 "target_id": 118,
1583 "target_slot": 1,
1584 "type": "ARRAY"
1585 },
1586 {
1587 "id": 94,
1588 "origin_id": 118,
1589 "origin_slot": 0,
1590 "target_id": 119,
1591 "target_slot": 0,
1592 "type": "STRING"
1593 },
1594 {
1595 "id": 95,
1596 "origin_id": 119,
1597 "origin_slot": 0,
1598 "target_id": 120,
1599 "target_slot": 0,
1600 "type": "STRING"
1601 },
1602 {
1603 "id": 96,
1604 "origin_id": 121,
1605 "origin_slot": 0,
1606 "target_id": 122,
1607 "target_slot": 0,
1608 "type": "STRING"
1609 },
1610 {
1611 "id": 97,
1612 "origin_id": 119,
1613 "origin_slot": 0,
1614 "target_id": 122,
1615 "target_slot": 1,
1616 "type": "STRING"
1617 },
1618 {
1619 "id": 98,
1620 "origin_id": -10,
1621 "origin_slot": 0,
1622 "target_id": 123,
1623 "target_slot": 0,
1624 "type": "STRING"
1625 },
1626 {
1627 "id": 99,
1628 "origin_id": 122,
1629 "origin_slot": 0,
1630 "target_id": 123,
1631 "target_slot": 1,
1632 "type": "STRING"
1633 },
1634 {
1635 "id": 100,
1636 "origin_id": 120,
1637 "origin_slot": 0,
1638 "target_id": 123,
1639 "target_slot": 2,
1640 "type": "BOOLEAN"
1641 },
1642 {
1643 "id": 101,
1644 "origin_id": 114,
1645 "origin_slot": 0,
1646 "target_id": 125,
1647 "target_slot": 0,
1648 "type": "STRING"
1649 },
1650 {
1651 "id": 102,
1652 "origin_id": 124,
1653 "origin_slot": 0,
1654 "target_id": 125,
1655 "target_slot": 1,
1656 "type": "STRING"
1657 },
1658 {
1659 "id": 103,
1660 "origin_id": 120,
1661 "origin_slot": 0,
1662 "target_id": 125,
1663 "target_slot": 2,
1664 "type": "BOOLEAN"
1665 },
1666 {
1667 "id": 104,
1668 "origin_id": 123,
1669 "origin_slot": 0,
1670 "target_id": 111,
1671 "target_slot": 5,
1672 "type": "STRING"
1673 },
1674 {
1675 "id": 105,
1676 "origin_id": 125,
1677 "origin_slot": 0,
1678 "target_id": 111,
1679 "target_slot": 4,
1680 "type": "STRING"
1681 },
1682 {
1683 "id": 106,
1684 "origin_id": -10,
1685 "origin_slot": 0,
1686 "target_id": 126,
1687 "target_slot": 0,
1688 "type": "STRING"
1689 },
1690 {
1691 "id": 107,
1692 "origin_id": 126,
1693 "origin_slot": 0,
1694 "target_id": 121,
1695 "target_slot": 0,
1696 "type": "STRING"
1697 },
1698 {
1699 "id": 108,
1700 "origin_id": -10,
1701 "origin_slot": 2,
1702 "target_id": 116,
1703 "target_slot": 2,
1704 "type": "BOOLEAN"
1705 },
1706 {
1707 "id": 109,
1708 "origin_id": -10,
1709 "origin_slot": 3,
1710 "target_id": 112,
1711 "target_slot": 0,
1712 "type": "COMBO"
1713 },
1714 {
1715 "id": 110,
1716 "origin_id": 116,
1717 "origin_slot": 0,
1718 "target_id": -20,
1719 "target_slot": 0,
1720 "type": "STRING"
1721 }
1722 ],
1723 "extra": []
1724 },
1725 {
1726 "id": "8f01b7ad-14bc-4b2f-a42e-8f4f861639c6",
1727 "version": 1,
1728 "state": {
1729 "lastGroupId": 4,
1730 "lastNodeId": 132,
1731 "lastLinkId": 143,
1732 "lastRerouteId": 0
1733 },
1734 "revision": 0,
1735 "config": [],
1736 "name": "Diffusion (FLUX 3 Klein)",
1737 "inputNode": {
1738 "id": -10,
1739 "bounding": [
1740 0,
1741 80,
1742 220,
1743 400
1744 ]
1745 },
1746 "outputNode": {
1747 "id": -20,
1748 "bounding": [
1749 2300,
1750 80,
1751 140,
1752 70
1753 ]
1754 },
1755 "inputs": [
1756 {
1757 "id": "cc8a99c9-050d-4be9-8c64-dc51e0a150bc",
1758 "name": "prompt",
1759 "type": "STRING",
1760 "linkIds": [
1761 115
1762 ],
1763 "label": "prompt",
1764 "pos": [
1765 200,
1766 110
1767 ]
1768 },
1769 {
1770 "id": "58966b42-a7cf-41c7-bdf3-e09f726e880a",
1771 "name": "width",
1772 "type": "INT",
1773 "linkIds": [
1774 123
1775 ],
1776 "label": "width",
1777 "pos": [
1778 200,
1779 140
1780 ]
1781 },
1782 {
1783 "id": "cb68f058-ccde-4b3d-a71d-4487a8420536",
1784 "name": "height",
1785 "type": "INT",
1786 "linkIds": [
1787 124
1788 ],
1789 "label": "height",
1790 "pos": [
1791 200,
1792 170
1793 ]
1794 },
1795 {
1796 "id": "af5e4ef2-23e9-4432-9c7b-a9145d9070d1",
1797 "name": "batch_size",
1798 "type": "INT",
1799 "linkIds": [
1800 135
1801 ],
1802 "label": "batch size",
1803 "pos": [
1804 200,
1805 200
1806 ]
1807 },
1808 {
1809 "id": "0d794141-d547-430e-81f3-12a4a4c0bace",
1810 "name": "steps",
1811 "type": "INT",
1812 "linkIds": [
1813 126
1814 ],
1815 "label": "steps",
1816 "pos": [
1817 200,
1818 230
1819 ]
1820 },
1821 {
1822 "id": "9069653e-1025-457f-9247-c5de9cfb60b1",
1823 "name": "alpha",
1824 "type": "FLOAT",
1825 "linkIds": [
1826 141
1827 ],
1828 "label": "alpha (timestep shift)",
1829 "pos": [
1830 200,
1831 260
1832 ]
1833 },
1834 {
1835 "id": "035fddbe-37a4-46c8-9f72-c3f72c5df614",
1836 "name": "seed",
1837 "type": "INT",
1838 "linkIds": [
1839 125
1840 ],
1841 "label": "seed",
1842 "pos": [
1843 200,
1844 290
1845 ]
1846 },
1847 {
1848 "id": "dda04a2c-351e-4de4-9d27-46e1b79da55d",
1849 "name": "sampler_name",
1850 "type": "COMBO",
1851 "linkIds": [
1852 142
1853 ],
1854 "label": "sampler",
1855 "pos": [
1856 200,
1857 320
1858 ]
1859 },
1860 {
1861 "id": "2849d03f-779e-4c2c-a7dc-b41a0facc3c9",
1862 "name": "scheduler",
1863 "type": "COMBO",
1864 "linkIds": [
1865 143
1866 ],
1867 "label": "scheduler",
1868 "pos": [
1869 200,
1870 350
1871 ]
1872 },
1873 {
1874 "id": "71b8a19b-17dd-43d2-a2b9-0752525a18b9",
1875 "name": "unet_name",
1876 "type": "COMBO",
1877 "linkIds": [
1878 132
1879 ],
1880 "label": "diffusion model",
1881 "pos": [
1882 200,
1883 380
1884 ]
1885 },
1886 {
1887 "id": "337c7579-d763-4a00-8316-83987a07e94f",
1888 "name": "clip_name",
1889 "type": "COMBO",
1890 "linkIds": [
1891 133
1892 ],
1893 "label": "text encoder",
1894 "pos": [
1895 200,
1896 410
1897 ]
1898 },
1899 {
1900 "id": "bea2a278-cc5d-42e2-9bb4-ad3a6c874e9d",
1901 "name": "vae_name",
1902 "type": "COMBO",
1903 "linkIds": [
1904 134
1905 ],
1906 "label": "vae",
1907 "pos": [
1908 200,
1909 440
1910 ]
1911 }
1912 ],
1913 "outputs": [
1914 {
1915 "id": "32c73293-f58f-491e-9ef8-df29ee3b0fc3",
1916 "name": "IMAGE",
1917 "type": "IMAGE",
1918 "linkIds": [
1919 127
1920 ],
1921 "localized_name": "IMAGE",
1922 "pos": [
1923 2320,
1924 110
1925 ]
1926 }
1927 ],
1928 "widgets": [],
1929 "nodes": [
1930 {
1931 "id": 101,
1932 "type": "UNETLoader",
1933 "pos": [
1934 300,
1935 110
1936 ],
1937 "size": [
1938 420,
1939 100
1940 ],
1941 "flags": [],
1942 "order": 9,
1943 "mode": 0,
1944 "inputs": [
1945 {
1946 "localized_name": "unet_name",
1947 "name": "unet_name",
1948 "type": "COMBO",
1949 "widget": {
1950 "name": "unet_name"
1951 },
1952 "link": 132
1953 }
1954 ],
1955 "outputs": [
1956 {
1957 "localized_name": "MODEL",
1958 "name": "MODEL",
1959 "type": "MODEL",
1960 "slot_index": 0,
1961 "links": [
1962 139
1963 ]
1964 }
1965 ],
1966 "properties": {
1967 "Node name for S&R": "UNETLoader",
1968 "models": [
1969 {
1970 "name": "flux3-image-klein-int8-convrot.safetensors",
1971 "url": "https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/diffusion_models/flux3-image-klein-int8-convrot.safetensors",
1972 "directory": "diffusion_models"
1973 }
1974 ]
1975 },
1976 "widgets_values": [
1977 "flux3-image-klein-int8-convrot.safetensors",
1978 "default"
1979 ],
1980 "widgets_values_named": {
1981 "unet_name": "flux3-image-klein-int8-convrot.safetensors",
1982 "weight_dtype": "default"
1983 }
1984 },
1985 {
1986 "id": 102,
1987 "type": "CLIPLoader",
1988 "pos": [
1989 300,
1990 270
1991 ],
1992 "size": [
1993 420,
1994 130
1995 ],
1996 "flags": [],
1997 "order": 11,
1998 "mode": 0,
1999 "inputs": [
2000 {
2001 "localized_name": "clip_name",
2002 "name": "clip_name",
2003 "type": "COMBO",
2004 "widget": {
2005 "name": "clip_name"
2006 },
2007 "link": 133
2008 }
2009 ],
2010 "outputs": [
2011 {
2012 "localized_name": "CLIP",
2013 "name": "CLIP",
2014 "type": "CLIP",
2015 "slot_index": 0,
2016 "links": [
2017 114,
2018 119
2019 ]
2020 }
2021 ],
2022 "properties": {
2023 "Node name for S&R": "CLIPLoader",
2024 "models": [
2025 {
2026 "name": "qwen3vl_4b_int8_convrot.safetensors",
2027 "url": "https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/text_encoders/qwen3vl_4b_int8_convrot.safetensors",
2028 "directory": "text_encoders"
2029 }
2030 ]
2031 },
2032 "widgets_values": [
2033 "qwen3vl_4b_int8_convrot.safetensors",
2034 "flux3",
2035 "default"
2036 ],
2037 "widgets_values_named": {
2038 "clip_name": "qwen3vl_4b_int8_convrot.safetensors",
2039 "type": "flux3",
2040 "device": "default"
2041 },
2042 "title": "Text encoder"
2043 },
2044 {
2045 "id": 103,
2046 "type": "VAELoader",
2047 "pos": [
2048 300,
2049 460
2050 ],
2051 "size": [
2052 420,
2053 80
2054 ],
2055 "flags": [],
2056 "order": 13,
2057 "mode": 0,
2058 "inputs": [
2059 {
2060 "localized_name": "vae_name",
2061 "name": "vae_name",
2062 "type": "COMBO",
2063 "widget": {
2064 "name": "vae_name"
2065 },
2066 "link": 134
2067 }
2068 ],
2069 "outputs": [
2070 {
2071 "localized_name": "VAE",
2072 "name": "VAE",
2073 "type": "VAE",
2074 "slot_index": 0,
2075 "links": [
2076 121
2077 ]
2078 }
2079 ],
2080 "properties": {
2081 "Node name for S&R": "VAELoader",
2082 "models": [
2083 {
2084 "name": "flux2-vae.safetensors",
2085 "url": "https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/vae/flux2-vae.safetensors",
2086 "directory": "vae"
2087 }
2088 ]
2089 },
2090 "widgets_values": [
2091 "flux2-vae.safetensors"
2092 ],
2093 "widgets_values_named": {
2094 "vae_name": "flux2-vae.safetensors"
2095 }
2096 },
2097 {
2098 "id": 104,
2099 "type": "CLIPTextEncode",
2100 "pos": [
2101 820,
2102 110
2103 ],
2104 "size": [
2105 420,
2106 80
2107 ],
2108 "flags": [],
2109 "order": 10,
2110 "mode": 0,
2111 "inputs": [
2112 {
2113 "localized_name": "clip",
2114 "name": "clip",
2115 "type": "CLIP",
2116 "link": 114
2117 },
2118 {
2119 "localized_name": "text",
2120 "name": "text",
2121 "type": "STRING",
2122 "widget": {
2123 "name": "text"
2124 },
2125 "link": 115
2126 }
2127 ],
2128 "outputs": [
2129 {
2130 "localized_name": "CONDITIONING",
2131 "name": "CONDITIONING",
2132 "type": "CONDITIONING",
2133 "slot_index": 0,
2134 "links": [
2135 117
2136 ]
2137 }
2138 ],
2139 "title": "Positive Prompt",
2140 "properties": {
2141 "Node name for S&R": "CLIPTextEncode"
2142 },
2143 "widgets_values": [
2144 "A close-up photograph of a red fox standing in fresh snow at sunrise. The fox faces the camera with alert ears and amber eyes, its thick orange fur dusted with snowflakes. Soft golden light comes from the left, the background is a blurred line of snow-covered pine trees, shallow depth of field."
2145 ],
2146 "widgets_values_named": {
2147 "text": "A close-up photograph of a red fox standing in fresh snow at sunrise. The fox faces the camera with alert ears and amber eyes, its thick orange fur dusted with snowflakes. Soft golden light comes from the left, the background is a blurred line of snow-covered pine trees, shallow depth of field."
2148 }
2149 },
2150 {
2151 "id": 105,
2152 "type": "CLIPTextEncode",
2153 "pos": [
2154 820,
2155 250
2156 ],
2157 "size": [
2158 420,
2159 30
2160 ],
2161 "flags": {
2162 "collapsed": true
2163 },
2164 "order": 17,
2165 "mode": 0,
2166 "inputs": [
2167 {
2168 "localized_name": "clip",
2169 "name": "clip",
2170 "type": "CLIP",
2171 "link": 119
2172 }
2173 ],
2174 "outputs": [
2175 {
2176 "localized_name": "CONDITIONING",
2177 "name": "CONDITIONING",
2178 "type": "CONDITIONING",
2179 "slot_index": 0,
2180 "links": [
2181 118
2182 ]
2183 }
2184 ],
2185 "title": "Negative Prompt (unused at cfg 1)",
2186 "properties": {
2187 "Node name for S&R": "CLIPTextEncode"
2188 },
2189 "widgets_values": [
2190 ""
2191 ],
2192 "widgets_values_named": {
2193 "text": ""
2194 }
2195 },
2196 {
2197 "id": 106,
2198 "type": "EmptyFlux2LatentImage",
2199 "pos": [
2200 820,
2201 310
2202 ],
2203 "size": [
2204 420,
2205 110
2206 ],
2207 "flags": [],
2208 "order": 16,
2209 "mode": 0,
2210 "inputs": [
2211 {
2212 "localized_name": "width",
2213 "name": "width",
2214 "type": "INT",
2215 "widget": {
2216 "name": "width"
2217 },
2218 "link": 123
2219 },
2220 {
2221 "localized_name": "height",
2222 "name": "height",
2223 "type": "INT",
2224 "widget": {
2225 "name": "height"
2226 },
2227 "link": 124
2228 },
2229 {
2230 "localized_name": "batch_size",
2231 "name": "batch_size",
2232 "type": "INT",
2233 "widget": {
2234 "name": "batch_size"
2235 },
2236 "link": 135
2237 }
2238 ],
2239 "outputs": [
2240 {
2241 "localized_name": "LATENT",
2242 "name": "LATENT",
2243 "type": "LATENT",
2244 "slot_index": 0,
2245 "links": [
2246 122
2247 ]
2248 }
2249 ],
2250 "properties": {
2251 "Node name for S&R": "EmptyFlux2LatentImage"
2252 },
2253 "widgets_values": [
2254 1024,
2255 1024,
2256 1
2257 ],
2258 "widgets_values_named": {
2259 "width": 1024,
2260 "height": 1024,
2261 "batch_size": 1
2262 }
2263 },
2264 {
2265 "id": 107,
2266 "type": "KSampler",
2267 "pos": [
2268 1840,
2269 110
2270 ],
2271 "size": [
2272 400,
2273 330
2274 ],
2275 "flags": [],
2276 "order": 12,
2277 "mode": 0,
2278 "inputs": [
2279 {
2280 "localized_name": "model",
2281 "name": "model",
2282 "type": "MODEL",
2283 "link": 140
2284 },
2285 {
2286 "localized_name": "positive",
2287 "name": "positive",
2288 "type": "CONDITIONING",
2289 "link": 117
2290 },
2291 {
2292 "localized_name": "negative",
2293 "name": "negative",
2294 "type": "CONDITIONING",
2295 "link": 118
2296 },
2297 {
2298 "localized_name": "latent_image",
2299 "name": "latent_image",
2300 "type": "LATENT",
2301 "link": 122
2302 },
2303 {
2304 "localized_name": "seed",
2305 "name": "seed",
2306 "type": "INT",
2307 "widget": {
2308 "name": "seed"
2309 },
2310 "link": 125
2311 },
2312 {
2313 "localized_name": "steps",
2314 "name": "steps",
2315 "type": "INT",
2316 "widget": {
2317 "name": "steps"
2318 },
2319 "link": 126
2320 },
2321 {
2322 "localized_name": "sampler_name",
2323 "name": "sampler_name",
2324 "type": "COMBO",
2325 "widget": {
2326 "name": "sampler_name"
2327 },
2328 "link": 142
2329 },
2330 {
2331 "localized_name": "scheduler",
2332 "name": "scheduler",
2333 "type": "COMBO",
2334 "widget": {
2335 "name": "scheduler"
2336 },
2337 "link": 143
2338 }
2339 ],
2340 "outputs": [
2341 {
2342 "localized_name": "LATENT",
2343 "name": "LATENT",
2344 "type": "LATENT",
2345 "slot_index": 0,
2346 "links": [
2347 120
2348 ]
2349 }
2350 ],
2351 "properties": {
2352 "Node name for S&R": "KSampler"
2353 },
2354 "widgets_values": [
2355 758781618552631,
2356 "randomize",
2357 16,
2358 1,
2359 "euler",
2360 "simple",
2361 1
2362 ],
2363 "widgets_values_named": {
2364 "seed": 758781618552631,
2365 "control_after_generate": "randomize",
2366 "steps": 16,
2367 "cfg": 1,
2368 "sampler_name": "euler",
2369 "scheduler": "simple",
2370 "denoise": 1
2371 },
2372 "title": "KSampler (16 steps, cfg 1)"
2373 },
2374 {
2375 "id": 108,
2376 "type": "VAEDecode",
2377 "pos": [
2378 1840,
2379 500
2380 ],
2381 "size": [
2382 400,
2383 70
2384 ],
2385 "flags": [],
2386 "order": 18,
2387 "mode": 0,
2388 "inputs": [
2389 {
2390 "localized_name": "samples",
2391 "name": "samples",
2392 "type": "LATENT",
2393 "link": 120
2394 },
2395 {
2396 "localized_name": "vae",
2397 "name": "vae",
2398 "type": "VAE",
2399 "link": 121
2400 }
2401 ],
2402 "outputs": [
2403 {
2404 "localized_name": "IMAGE",
2405 "name": "IMAGE",
2406 "type": "IMAGE",
2407 "slot_index": 0,
2408 "links": [
2409 127
2410 ]
2411 }
2412 ],
2413 "properties": {
2414 "Node name for S&R": "VAEDecode"
2415 }
2416 },
2417 {
2418 "id": 130,
2419 "type": "PrimitiveFloat",
2420 "title": "alpha",
2421 "pos": [
2422 1340,
2423 110
2424 ],
2425 "size": [
2426 400,
2427 82
2428 ],
2429 "flags": [],
2430 "order": 0,
2431 "mode": 0,
2432 "inputs": [
2433 {
2434 "localized_name": "value",
2435 "name": "value",
2436 "type": "FLOAT",
2437 "widget": {
2438 "name": "value"
2439 },
2440 "link": 141
2441 }
2442 ],
2443 "outputs": [
2444 {
2445 "localized_name": "FLOAT",
2446 "name": "FLOAT",
2447 "type": "FLOAT",
2448 "links": [
2449 136
2450 ]
2451 }
2452 ],
2453 "properties": {
2454 "Node name for S&R": "PrimitiveFloat"
2455 },
2456 "widgets_values": [
2457 16
2458 ]
2459 },
2460 {
2461 "id": 131,
2462 "type": "ComfyMathExpression",
2463 "title": "mu = ln(alpha)",
2464 "pos": [
2465 1340,
2466 252
2467 ],
2468 "size": [
2469 400,
2470 150
2471 ],
2472 "flags": [],
2473 "order": 0,
2474 "mode": 0,
2475 "inputs": [
2476 {
2477 "label": "a",
2478 "localized_name": "values.a",
2479 "name": "values.a",
2480 "type": "FLOAT,INT,BOOLEAN",
2481 "link": 136
2482 },
2483 {
2484 "label": "b",
2485 "localized_name": "values.b",
2486 "name": "values.b",
2487 "shape": 7,
2488 "type": "FLOAT,INT,BOOLEAN",
2489 "link": null
2490 }
2491 ],
2492 "outputs": [
2493 {
2494 "localized_name": "FLOAT",
2495 "name": "FLOAT",
2496 "type": "FLOAT",
2497 "links": [
2498 137,
2499 138
2500 ]
2501 },
2502 {
2503 "localized_name": "INT",
2504 "name": "INT",
2505 "type": "INT",
2506 "links": []
2507 },
2508 {
2509 "localized_name": "BOOL",
2510 "name": "BOOL",
2511 "type": "BOOLEAN",
2512 "links": []
2513 }
2514 ],
2515 "properties": {
2516 "Node name for S&R": "ComfyMathExpression"
2517 },
2518 "widgets_values": [
2519 "log(a)"
2520 ]
2521 },
2522 {
2523 "id": 132,
2524 "type": "ModelSamplingFlux",
2525 "title": "Timestep shift (from alpha)",
2526 "pos": [
2527 1340,
2528 462
2529 ],
2530 "size": [
2531 400,
2532 150
2533 ],
2534 "flags": [],
2535 "order": 0,
2536 "mode": 0,
2537 "inputs": [
2538 {
2539 "localized_name": "model",
2540 "name": "model",
2541 "type": "MODEL",
2542 "link": 139
2543 },
2544 {
2545 "localized_name": "max_shift",
2546 "name": "max_shift",
2547 "type": "FLOAT",
2548 "widget": {
2549 "name": "max_shift"
2550 },
2551 "link": 137
2552 },
2553 {
2554 "localized_name": "base_shift",
2555 "name": "base_shift",
2556 "type": "FLOAT",
2557 "widget": {
2558 "name": "base_shift"
2559 },
2560 "link": 138
2561 }
2562 ],
2563 "outputs": [
2564 {
2565 "localized_name": "MODEL",
2566 "name": "MODEL",
2567 "type": "MODEL",
2568 "links": [
2569 140
2570 ]
2571 }
2572 ],
2573 "properties": {
2574 "Node name for S&R": "ModelSamplingFlux"
2575 },
2576 "widgets_values": [
2577 2.77259,
2578 2.77259,
2579 1024,
2580 1024
2581 ]
2582 }
2583 ],
2584 "groups": [
2585 {
2586 "id": 1,
2587 "title": "Models",
2588 "bounding": [
2589 280,
2590 0,
2591 460,
2592 652
2593 ],
2594 "color": "#3f789e",
2595 "flags": []
2596 },
2597 {
2598 "id": 2,
2599 "title": "Conditioning",
2600 "bounding": [
2601 800,
2602 0,
2603 460,
2604 652
2605 ],
2606 "color": "#3f789e",
2607 "flags": []
2608 },
2609 {
2610 "id": 3,
2611 "title": "Schedule (alpha)",
2612 "bounding": [
2613 1320,
2614 0,
2615 440,
2616 652
2617 ],
2618 "color": "#3f789e",
2619 "flags": []
2620 },
2621 {
2622 "id": 4,
2623 "title": "Sampling",
2624 "bounding": [
2625 1820,
2626 0,
2627 440,
2628 652
2629 ],
2630 "color": "#3f789e",
2631 "flags": []
2632 }
2633 ],
2634 "links": [
2635 {
2636 "id": 114,
2637 "origin_id": 102,
2638 "origin_slot": 0,
2639 "target_id": 104,
2640 "target_slot": 0,
2641 "type": "CLIP"
2642 },
2643 {
2644 "id": 115,
2645 "origin_id": -10,
2646 "origin_slot": 0,
2647 "target_id": 104,
2648 "target_slot": 1,
2649 "type": "STRING"
2650 },
2651 {
2652 "id": 117,
2653 "origin_id": 104,
2654 "origin_slot": 0,
2655 "target_id": 107,
2656 "target_slot": 1,
2657 "type": "CONDITIONING"
2658 },
2659 {
2660 "id": 118,
2661 "origin_id": 105,
2662 "origin_slot": 0,
2663 "target_id": 107,
2664 "target_slot": 2,
2665 "type": "CONDITIONING"
2666 },
2667 {
2668 "id": 119,
2669 "origin_id": 102,
2670 "origin_slot": 0,
2671 "target_id": 105,
2672 "target_slot": 0,
2673 "type": "CLIP"
2674 },
2675 {
2676 "id": 120,
2677 "origin_id": 107,
2678 "origin_slot": 0,
2679 "target_id": 108,
2680 "target_slot": 0,
2681 "type": "LATENT"
2682 },
2683 {
2684 "id": 121,
2685 "origin_id": 103,
2686 "origin_slot": 0,
2687 "target_id": 108,
2688 "target_slot": 1,
2689 "type": "VAE"
2690 },
2691 {
2692 "id": 122,
2693 "origin_id": 106,
2694 "origin_slot": 0,
2695 "target_id": 107,
2696 "target_slot": 3,
2697 "type": "LATENT"
2698 },
2699 {
2700 "id": 123,
2701 "origin_id": -10,
2702 "origin_slot": 1,
2703 "target_id": 106,
2704 "target_slot": 0,
2705 "type": "INT"
2706 },
2707 {
2708 "id": 124,
2709 "origin_id": -10,
2710 "origin_slot": 2,
2711 "target_id": 106,
2712 "target_slot": 1,
2713 "type": "INT"
2714 },
2715 {
2716 "id": 125,
2717 "origin_id": -10,
2718 "origin_slot": 6,
2719 "target_id": 107,
2720 "target_slot": 4,
2721 "type": "INT"
2722 },
2723 {
2724 "id": 126,
2725 "origin_id": -10,
2726 "origin_slot": 4,
2727 "target_id": 107,
2728 "target_slot": 5,
2729 "type": "INT"
2730 },
2731 {
2732 "id": 127,
2733 "origin_id": 108,
2734 "origin_slot": 0,
2735 "target_id": -20,
2736 "target_slot": 0,
2737 "type": "IMAGE"
2738 },
2739 {
2740 "id": 132,
2741 "origin_id": -10,
2742 "origin_slot": 9,
2743 "target_id": 101,
2744 "target_slot": 0,
2745 "type": "COMBO"
2746 },
2747 {
2748 "id": 133,
2749 "origin_id": -10,
2750 "origin_slot": 10,
2751 "target_id": 102,
2752 "target_slot": 0,
2753 "type": "COMBO"
2754 },
2755 {
2756 "id": 134,
2757 "origin_id": -10,
2758 "origin_slot": 11,
2759 "target_id": 103,
2760 "target_slot": 0,
2761 "type": "COMBO"
2762 },
2763 {
2764 "id": 135,
2765 "origin_id": -10,
2766 "origin_slot": 3,
2767 "target_id": 106,
2768 "target_slot": 2,
2769 "type": "INT"
2770 },
2771 {
2772 "id": 136,
2773 "origin_id": 130,
2774 "origin_slot": 0,
2775 "target_id": 131,
2776 "target_slot": 0,
2777 "type": "FLOAT"
2778 },
2779 {
2780 "id": 137,
2781 "origin_id": 131,
2782 "origin_slot": 0,
2783 "target_id": 132,
2784 "target_slot": 1,
2785 "type": "FLOAT"
2786 },
2787 {
2788 "id": 138,
2789 "origin_id": 131,
2790 "origin_slot": 0,
2791 "target_id": 132,
2792 "target_slot": 2,
2793 "type": "FLOAT"
2794 },
2795 {
2796 "id": 139,
2797 "origin_id": 101,
2798 "origin_slot": 0,
2799 "target_id": 132,
2800 "target_slot": 0,
2801 "type": "MODEL"
2802 },
2803 {
2804 "id": 140,
2805 "origin_id": 132,
2806 "origin_slot": 0,
2807 "target_id": 107,
2808 "target_slot": 0,
2809 "type": "MODEL"
2810 },
2811 {
2812 "id": 141,
2813 "origin_id": -10,
2814 "origin_slot": 5,
2815 "target_id": 130,
2816 "target_slot": 0,
2817 "type": "FLOAT"
2818 },
2819 {
2820 "id": 142,
2821 "origin_id": -10,
2822 "origin_slot": 7,
2823 "target_id": 107,
2824 "target_slot": 6,
2825 "type": "COMBO"
2826 },
2827 {
2828 "id": 143,
2829 "origin_id": -10,
2830 "origin_slot": 8,
2831 "target_id": 107,
2832 "target_slot": 7,
2833 "type": "COMBO"
2834 }
2835 ],
2836 "extra": []
2837 }
2838 ]
2839 }
2840}