工作流 /
图像 /
MiniMax H3 Image workflow: Image to image

MiniMax H3 Image workflow: Image to image
MiniMax H3 Image workflow: Image to image
Too lazy to write the prompt, use an image instead of a prompt.The vision is brought by Qwen 3.5 with MiniMax H3 Image.Performance 2048x2048: About 16 seconds 5070ti, 32 sec 5060ti 16g (2Nd gen/warm).If the input image i…
图像
21 个节点 138 次使用 def813 136 KB
需要的权重
这个工作流引用了 1 个权重文件,其中 0 个能在本站模型库里找到。
MiniMax-H3-Image-I2I.json
模型库暂未收录
节点构成
MarkdownNote
× 4
ComfySwitchNode
× 4
Note
× 2
CLIPLoader
× 1
LoadImage
× 1
TextGenerate
× 1
PreviewAny
× 1
PrimitiveBoolean
× 1
SaveImage
× 1
e7a111e2-1093-4824-bf57-dff022ce942b
× 1
ImageScaleToTotalPixels
× 1
ComfyMathExpression
× 1
GetImageSize
× 1
40e68d98-f24c-42b4-afa8-919a414db062
× 1
官方标注的模型
minimax_h3_image_pruned_int8_convrot.safetensorsminimax_h3_image_vae_fp16.safetensorsqwen3.5_4b_bf16.safetensorsqwen3.5_9b_w4a8_gptq.safetensorsqwen3vl_32b_minimax_h3_int8_convrot.safetensors
工作流 JSON
和上面「下载工作流 JSON」是同一份文件。
1{
2 "id": "e8f30439-267f-45de-b260-db0d114b2c85",
3 "revision": 0,
4 "last_node_id": 992,
5 "last_link_id": 9292,
6 "nodes": [
7 {
8 "id": 27,
9 "type": "MarkdownNote",
10 "pos": [
11 -944.66720689412,
12 -343.31570742429676
13 ],
14 "size": [
15 593.8190209960936,
16 152.2300692749023
17 ],
18 "flags": [],
19 "order": 0,
20 "mode": 0,
21 "inputs": [],
22 "outputs": [],
23 "properties": [],
24 "widgets_values": [
25 "## by https://h2logs.substack.com/\n"
26 ],
27 "widgets_values_named": {
28 "text": "## by https://h2logs.substack.com/\n"
29 },
30 "color": "#222",
31 "bgcolor": "#000"
32 },
33 {
34 "id": 30,
35 "type": "CLIPLoader",
36 "pos": [
37 -1606.4453131954838,
38 -52.18759527424754
39 ],
40 "size": [
41 430,
42 150
43 ],
44 "flags": [],
45 "order": 1,
46 "mode": 0,
47 "showAdvanced": false,
48 "inputs": [],
49 "outputs": [
50 {
51 "name": "CLIP",
52 "type": "CLIP",
53 "links": [
54 57
55 ]
56 }
57 ],
58 "properties": {
59 "Node name for S&R": "CLIPLoader",
60 "cnr_id": "comfy-core",
61 "ver": "0.18.1",
62 "models": [
63 {
64 "name": "qwen3.5_4b_bf16.safetensors",
65 "url": "https://huggingface.co/Comfy-Org/Qwen3.5/resolve/main/text_encoders/qwen3.5_4b_bf16.safetensors",
66 "directory": "text_encoders"
67 }
68 ],
69 "enableTabs": false,
70 "tabWidth": 65,
71 "tabXOffset": 10,
72 "hasSecondTab": false,
73 "secondTabText": "Send Back",
74 "secondTabOffset": 80,
75 "secondTabWidth": 65
76 },
77 "widgets_values": [
78 "qwen3.5_4b_bf16.safetensors",
79 "stable_diffusion",
80 "default"
81 ],
82 "widgets_values_named": {
83 "clip_name": "qwen3.5_4b_bf16.safetensors",
84 "type": "stable_diffusion",
85 "device": "default"
86 }
87 },
88 {
89 "id": 31,
90 "type": "LoadImage",
91 "pos": [
92 -1596.4453059250895,
93 187.81240166071575
94 ],
95 "size": [
96 420,
97 370
98 ],
99 "flags": [],
100 "order": 2,
101 "mode": 0,
102 "inputs": [],
103 "outputs": [
104 {
105 "name": "IMAGE",
106 "type": "IMAGE",
107 "links": [
108 58,
109 9257,
110 9271
111 ]
112 },
113 {
114 "name": "MASK",
115 "type": "MASK",
116 "links": []
117 }
118 ],
119 "properties": {
120 "Node name for S&R": "LoadImage",
121 "cnr_id": "comfy-core",
122 "ver": "0.18.1",
123 "enableTabs": false,
124 "tabWidth": 65,
125 "tabXOffset": 10,
126 "hasSecondTab": false,
127 "secondTabText": "Send Back",
128 "secondTabOffset": 80,
129 "secondTabWidth": 65
130 },
131 "widgets_values": [
132 "flux-3-vs-krea-2-vs-z-image-turbo_00005_.png",
133 "image"
134 ],
135 "widgets_values_named": {
136 "image": "flux-3-vs-krea-2-vs-z-image-turbo_00005_.png",
137 "upload": "image"
138 },
139 "color": "#233",
140 "bgcolor": "#355"
141 },
142 {
143 "id": 32,
144 "type": "TextGenerate",
145 "pos": [
146 -508.65171563679473,
147 159.74462398946758
148 ],
149 "size": [
150 430,
151 482.65625
152 ],
153 "flags": [],
154 "order": 9,
155 "mode": 0,
156 "inputs": [
157 {
158 "name": "clip",
159 "type": "CLIP",
160 "link": 57
161 },
162 {
163 "name": "image",
164 "shape": 7,
165 "type": "IMAGE",
166 "link": 58
167 },
168 {
169 "name": "video",
170 "shape": 7,
171 "type": "IMAGE",
172 "link": null
173 },
174 {
175 "name": "audio",
176 "shape": 7,
177 "type": "AUDIO",
178 "link": null
179 },
180 {
181 "name": "system_prompt",
182 "shape": 7,
183 "type": "STRING",
184 "link": null
185 }
186 ],
187 "outputs": [
188 {
189 "name": "generated_text",
190 "type": "STRING",
191 "links": [
192 59
193 ]
194 },
195 {
196 "name": "thinking",
197 "type": "STRING",
198 "links": []
199 }
200 ],
201 "properties": {
202 "Node name for S&R": "TextGenerate",
203 "cnr_id": "comfy-core",
204 "ver": "0.18.1",
205 "enableTabs": false,
206 "tabWidth": 65,
207 "tabXOffset": 10,
208 "hasSecondTab": false,
209 "secondTabText": "Send Back",
210 "secondTabOffset": 80,
211 "secondTabWidth": 65
212 },
213 "widgets_values": [
214 "Describe this image in extreme detail, including subject appearance, clothing, pose, expression, background elements, lighting, camera angle, composition, color palette, and overall aesthetic style. Use precise, descriptive language suitable for AI image generation prompts. Do not use vague terms. Only return the prompts itself.",
215 256,
216 "on",
217 0.7,
218 64,
219 0.95,
220 0.05,
221 1.05,
222 0,
223 0,
224 false,
225 true,
226 "auto"
227 ],
228 "widgets_values_named": {
229 "prompt": "Describe this image in extreme detail, including subject appearance, clothing, pose, expression, background elements, lighting, camera angle, composition, color palette, and overall aesthetic style. Use precise, descriptive language suitable for AI image generation prompts. Do not use vague terms. Only return the prompts itself.",
230 "max_length": 256,
231 "sampling_mode": "on",
232 "sampling_mode.temperature": 0.7,
233 "sampling_mode.top_k": 64,
234 "sampling_mode.top_p": 0.95,
235 "sampling_mode.min_p": 0.05,
236 "sampling_mode.repetition_penalty": 1.05,
237 "sampling_mode.seed": 0,
238 "sampling_mode.presence_penalty": 0,
239 "thinking": false,
240 "use_default_template": true,
241 "mtp": "auto"
242 }
243 },
244 {
245 "id": 33,
246 "type": "PreviewAny",
247 "pos": [
248 99.6709263143996,
249 121.96184851481507
250 ],
251 "size": [
252 454.2609857177735,
253 390.537626953125
254 ],
255 "flags": [],
256 "order": 12,
257 "mode": 0,
258 "inputs": [
259 {
260 "name": "source",
261 "type": "*",
262 "link": 59
263 }
264 ],
265 "outputs": [
266 {
267 "name": "STRING",
268 "type": "STRING",
269 "links": [
270 2120
271 ]
272 }
273 ],
274 "properties": {
275 "Node name for S&R": "PreviewAny",
276 "cnr_id": "comfy-core",
277 "ver": "0.18.1",
278 "enableTabs": false,
279 "tabWidth": 65,
280 "tabXOffset": 10,
281 "hasSecondTab": false,
282 "secondTabText": "Send Back",
283 "secondTabOffset": 80,
284 "secondTabWidth": 65
285 },
286 "widgets_values": [],
287 "widgets_values_named": []
288 },
289 {
290 "id": 34,
291 "type": "MarkdownNote",
292 "pos": [
293 -2206.4452320430455,
294 -52.18749046365747
295 ],
296 "size": [
297 560,
298 680
299 ],
300 "flags": [],
301 "order": 3,
302 "mode": 0,
303 "inputs": [],
304 "outputs": [],
305 "properties": [],
306 "widgets_values": [
307 "Related PR: https://github.com/Comfy-Org/ComfyUI/pull/12771\n## Model Links\n\n- [Hugging Face:Comfy-Org/Qwen3.5](https://huggingface.co/Comfy-Org/Qwen3.5)\n- [ModelScope:Comfy-Org/Qwen3.5](https://modelscope.cn/models/Comfy-Org/Qwen3.5)\n\n**text_encoders**\n\n- [qwen3.5_4b_bf16.safetensors](https://huggingface.co/Comfy-Org/Qwen3.5/resolve/main/text_encoders/qwen3.5_4b_bf16.safetensors) (8.68 GB)\n\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ └── 📂 text_encoders/\n│ └── qwen3.5_4b_bf16.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
308 ],
309 "widgets_values_named": {
310 "text": "Related PR: https://github.com/Comfy-Org/ComfyUI/pull/12771\n## Model Links\n\n- [Hugging Face:Comfy-Org/Qwen3.5](https://huggingface.co/Comfy-Org/Qwen3.5)\n- [ModelScope:Comfy-Org/Qwen3.5](https://modelscope.cn/models/Comfy-Org/Qwen3.5)\n\n**text_encoders**\n\n- [qwen3.5_4b_bf16.safetensors](https://huggingface.co/Comfy-Org/Qwen3.5/resolve/main/text_encoders/qwen3.5_4b_bf16.safetensors) (8.68 GB)\n\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ └── 📂 text_encoders/\n│ └── qwen3.5_4b_bf16.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
311 },
312 "color": "#222",
313 "bgcolor": "#000"
314 },
315 {
316 "id": 938,
317 "type": "Note",
318 "pos": [
319 -1151.4252512740604,
320 201.04034125726182
321 ],
322 "size": [
323 589.4844193892045,
324 768.0397727272727
325 ],
326 "flags": [],
327 "order": 4,
328 "mode": 0,
329 "inputs": [],
330 "outputs": [],
331 "properties": [],
332 "widgets_values": [
333 "1. Drag your image.\n\n2. select prompt_enhance or not.\n\n4. select auto size not.\n\n4. Click RUN\n\n\n<-\n\n\n\n\n<-\n\n\n\n\n\n<-"
334 ],
335 "widgets_values_named": {
336 "text": "1. Drag your image.\n\n2. select prompt_enhance or not.\n\n4. select auto size not.\n\n4. Click RUN\n\n\n<-\n\n\n\n\n<-\n\n\n\n\n\n<-"
337 },
338 "color": "#232",
339 "bgcolor": "#353",
340 "shape": 2
341 },
342 {
343 "id": 939,
344 "type": "PrimitiveBoolean",
345 "pos": [
346 -1543.9396338876957,
347 644.3748958453288
348 ],
349 "size": [
350 270,
351 80
352 ],
353 "flags": [],
354 "order": 5,
355 "mode": 0,
356 "inputs": [
357 {
358 "label": "prompt_enhance",
359 "name": "value",
360 "type": "BOOLEAN",
361 "widget": {
362 "name": "value"
363 },
364 "link": null
365 }
366 ],
367 "outputs": [
368 {
369 "name": "BOOLEAN",
370 "type": "BOOLEAN",
371 "links": [
372 9286
373 ]
374 }
375 ],
376 "title": "prompt_enhance",
377 "properties": {
378 "Node name for S&R": "PrimitiveBoolean"
379 },
380 "widgets_values": [
381 false
382 ],
383 "widgets_values_named": {
384 "value": false
385 },
386 "color": "#233",
387 "bgcolor": "#355"
388 },
389 {
390 "id": 940,
391 "type": "SaveImage",
392 "pos": [
393 2027.5979350798548,
394 154.31387121191858
395 ],
396 "size": [
397 560,
398 540
399 ],
400 "flags": [],
401 "order": 20,
402 "mode": 0,
403 "inputs": [
404 {
405 "name": "images",
406 "type": "IMAGE",
407 "link": 2117
408 }
409 ],
410 "outputs": [
411 {
412 "name": "images",
413 "type": "IMAGE",
414 "links": []
415 }
416 ],
417 "properties": {
418 "Node name for S&R": "SaveImage"
419 },
420 "widgets_values": [
421 "minimax_h3_image_t2i"
422 ],
423 "widgets_values_named": {
424 "filename_prefix": "minimax_h3_image_t2i"
425 }
426 },
427 {
428 "id": 942,
429 "type": "e7a111e2-1093-4824-bf57-dff022ce942b",
430 "pos": [
431 1567.5979350798548,
432 154.31387121191858
433 ],
434 "size": [
435 420,
436 540
437 ],
438 "flags": [],
439 "order": 19,
440 "mode": 0,
441 "inputs": [
442 {
443 "label": "prompt",
444 "name": "replace",
445 "type": "STRING",
446 "widget": {
447 "name": "replace"
448 },
449 "link": 2120
450 },
451 {
452 "label": "enable_PE",
453 "name": "switch",
454 "type": "BOOLEAN",
455 "widget": {
456 "name": "switch"
457 },
458 "link": 9286
459 },
460 {
461 "name": "width",
462 "type": "INT",
463 "widget": {
464 "name": "width"
465 },
466 "link": 9284
467 },
468 {
469 "name": "height",
470 "type": "INT",
471 "widget": {
472 "name": "height"
473 },
474 "link": 9285
475 },
476 {
477 "label": "sampler",
478 "name": "sampler_name",
479 "type": "COMBO",
480 "widget": {
481 "name": "sampler_name"
482 },
483 "link": null
484 },
485 {
486 "label": "PE_model",
487 "name": "clip_name_1",
488 "type": "COMBO",
489 "widget": {
490 "name": "clip_name_1"
491 },
492 "link": null
493 }
494 ],
495 "outputs": [
496 {
497 "name": "IMAGE",
498 "type": "IMAGE",
499 "links": [
500 2117
501 ]
502 }
503 ],
504 "properties": {
505 "previewExposures": [
506 {
507 "name": "$$canvas-image-preview",
508 "sourceNodeId": "7",
509 "sourcePreviewName": "$$canvas-image-preview"
510 }
511 ]
512 },
513 "widgets_values": [
514 "The image is a cheerful toy-packaging poster built around a handmade plush fox floating above a summer meadow, drawn in a warm, fairly saturated palette: clear sky blue deepening toward the top, rich burnt-sienna and terracotta plush for the fox, warm cream, fresh sage green in the meadow, cornflower and cherry-red accents on the small props, and buttercup yellow in the lettering, with bright afternoon sun from the upper left and crisp short shadows. The fox is the hero, sewn from long-staple mohair-type plush in warm burnt sienna and hand-stuffed so its silhouette is slightly lumpy; the pile is long and irregular, single fibres catching the light along its outline as a bright hairy halo against the sky, matted in patches where it has been handled, with cream muzzle, chest bib and sock paws, small pointed ears with soft cream inner felt, matte dark eyes with a dull highlight, a stitched smile, brushed felt blush patches, a small black felt nose, and a brush tail whose long pile fades to cream at the tip. It floats tilted in the air, hind legs tucked, one foreleg raised holding a small bunch of felt daisies in off-white and dusty rose, a thin felt collar with a small dull brass bell around its neck. Around and behind it the scene is populated rather than empty: a small plush mushroom friend sits on the grass at the lower right, its rounded cap in cherry red felt with cream spots and a stitched face on a cream stalk; a tiny round plush bird in cornflower blue perches on the fox's tail, its body made of short dense pile with a small felt beak; a second, much smaller fox plush lies on its back on the grass at the lower left, legs in the air; three felt daisies on thin wire stems stand in the meadow, and a scatter of loose felt petals and two small acorns lie among the lit blades; a few soft felt cloud puffs hang on thin white strings from the upper right, and a folded paper plane with a dashed trail glides across the sky toward the fox. Thin white line doodles are drawn flat over the blue: four small four-point stars, one larger outlined star at the left, a loose squiggle beside the raised paw, and a dotted vertical line at the right, all in a loose dry hand-drawn stroke. The typography is set in soft matte material rather than glossy plastic: across the top of the frame the word \"MINIMAX\" is inflatable and rounded but reads as thick felted wool, in warm buttercup-cream with a faint fibre texture, edges slightly soft and imperfect, lit gently from above with a shaded underside and no specular shine, filling the full width and slightly arched; directly beneath, smaller and centred, \"H3\" sits between two small dots, and below it a second small bouncy line reads \"IMAGE MODEL\" in the same felted cream. Along the bottom, on the white cloud band, a heavy bold sans-serif logotype reads \"TEXT TO IMAGE\" in saturated cornflower blue, tracked wide across almost the full width, its ink slightly uneven as if printed on soft paper. Just above the right end of that line a small right-aligned block of the same cornflower is stacked in four short lines reading \"ONE CHECKPOINT\", \"TWO TASKS\", \"SIX STEPS\", \"NO CFG\". All lettering is English only, with no Chinese characters anywhere on the poster, and the light is bright and even with soft shadows under every plush object.",
515 false,
516 496828156021569,
517 3104,
518 3104,
519 "euler",
520 "simple",
521 "minimax_h3_image_pruned_int8_convrot.safetensors",
522 "qwen3vl_32b_minimax_h3_int8_convrot.safetensors",
523 "minimax_h3_image_vae_fp16.safetensors",
524 "qwen3.5_9b_w4a8_gptq.safetensors"
525 ],
526 "widgets_values_named": {
527 "replace": "The image is a cheerful toy-packaging poster built around a handmade plush fox floating above a summer meadow, drawn in a warm, fairly saturated palette: clear sky blue deepening toward the top, rich burnt-sienna and terracotta plush for the fox, warm cream, fresh sage green in the meadow, cornflower and cherry-red accents on the small props, and buttercup yellow in the lettering, with bright afternoon sun from the upper left and crisp short shadows. The fox is the hero, sewn from long-staple mohair-type plush in warm burnt sienna and hand-stuffed so its silhouette is slightly lumpy; the pile is long and irregular, single fibres catching the light along its outline as a bright hairy halo against the sky, matted in patches where it has been handled, with cream muzzle, chest bib and sock paws, small pointed ears with soft cream inner felt, matte dark eyes with a dull highlight, a stitched smile, brushed felt blush patches, a small black felt nose, and a brush tail whose long pile fades to cream at the tip. It floats tilted in the air, hind legs tucked, one foreleg raised holding a small bunch of felt daisies in off-white and dusty rose, a thin felt collar with a small dull brass bell around its neck. Around and behind it the scene is populated rather than empty: a small plush mushroom friend sits on the grass at the lower right, its rounded cap in cherry red felt with cream spots and a stitched face on a cream stalk; a tiny round plush bird in cornflower blue perches on the fox's tail, its body made of short dense pile with a small felt beak; a second, much smaller fox plush lies on its back on the grass at the lower left, legs in the air; three felt daisies on thin wire stems stand in the meadow, and a scatter of loose felt petals and two small acorns lie among the lit blades; a few soft felt cloud puffs hang on thin white strings from the upper right, and a folded paper plane with a dashed trail glides across the sky toward the fox. Thin white line doodles are drawn flat over the blue: four small four-point stars, one larger outlined star at the left, a loose squiggle beside the raised paw, and a dotted vertical line at the right, all in a loose dry hand-drawn stroke. The typography is set in soft matte material rather than glossy plastic: across the top of the frame the word \"MINIMAX\" is inflatable and rounded but reads as thick felted wool, in warm buttercup-cream with a faint fibre texture, edges slightly soft and imperfect, lit gently from above with a shaded underside and no specular shine, filling the full width and slightly arched; directly beneath, smaller and centred, \"H3\" sits between two small dots, and below it a second small bouncy line reads \"IMAGE MODEL\" in the same felted cream. Along the bottom, on the white cloud band, a heavy bold sans-serif logotype reads \"TEXT TO IMAGE\" in saturated cornflower blue, tracked wide across almost the full width, its ink slightly uneven as if printed on soft paper. Just above the right end of that line a small right-aligned block of the same cornflower is stacked in four short lines reading \"ONE CHECKPOINT\", \"TWO TASKS\", \"SIX STEPS\", \"NO CFG\". All lettering is English only, with no Chinese characters anywhere on the poster, and the light is bright and even with soft shadows under every plush object.",
528 "switch": false,
529 "seed": 496828156021569,
530 "width": 3104,
531 "height": 3104,
532 "sampler_name": "euler",
533 "scheduler": "simple",
534 "unet_name": "minimax_h3_image_pruned_int8_convrot.safetensors",
535 "clip_name": "qwen3vl_32b_minimax_h3_int8_convrot.safetensors",
536 "vae_name": "minimax_h3_image_vae_fp16.safetensors",
537 "clip_name_1": "qwen3.5_9b_w4a8_gptq.safetensors"
538 }
539 },
540 {
541 "id": 943,
542 "type": "MarkdownNote",
543 "pos": [
544 1211.83693390798,
545 734.920228907231
546 ],
547 "size": [
548 300,
549 270
550 ],
551 "flags": {
552 "collapsed": false
553 },
554 "order": 6,
555 "mode": 0,
556 "inputs": [],
557 "outputs": [],
558 "title": "Note: size",
559 "properties": [],
560 "widgets_values": [
561 "MiniMax H3 Image doesn't work well in low resolution\n\nThis workflow starts at a reduced default resolution(4MP). Raise the size if your GPU has enough memory.\n\n\n## Recommended sizes (16MP)\n\nThe effective working range of MiniMax-H3-Image is about 4 MP to 20 MP, and it generally gives\nthe best results at around 16 MP. Common 16 MP sizes are listed below:\n\n| Aspect ratio | Size (width x height) |\n| --- | --- |\n| 1:1 | 4096x4096 |\n| 4:3 / 3:4 | 4736x3552 / 3552x4736 |\n| 3:2 / 2:3 | 5024x3360 / 3360x5024 |\n| 16:9 / 9:16 | 5472x3072 / 3072x5472 |\n| 21:9 | 6272x2688 |"
562 ],
563 "widgets_values_named": {
564 "text": "MiniMax H3 Image doesn't work well in low resolution\n\nThis workflow starts at a reduced default resolution(4MP). Raise the size if your GPU has enough memory.\n\n\n## Recommended sizes (16MP)\n\nThe effective working range of MiniMax-H3-Image is about 4 MP to 20 MP, and it generally gives\nthe best results at around 16 MP. Common 16 MP sizes are listed below:\n\n| Aspect ratio | Size (width x height) |\n| --- | --- |\n| 1:1 | 4096x4096 |\n| 4:3 / 3:4 | 4736x3552 / 3552x4736 |\n| 3:2 / 2:3 | 5024x3360 / 3360x5024 |\n| 16:9 / 9:16 | 5472x3072 / 3072x5472 |\n| 21:9 | 6272x2688 |"
565 },
566 "color": "#222",
567 "bgcolor": "#000"
568 },
569 {
570 "id": 944,
571 "type": "MarkdownNote",
572 "pos": [
573 607.7540053923548,
574 144.6636602744186
575 ],
576 "size": [
577 494.10273193359336,
578 1357.0633087158192
579 ],
580 "flags": [],
581 "order": 7,
582 "mode": 0,
583 "inputs": [],
584 "outputs": [],
585 "title": "Model Links",
586 "properties": [],
587 "widgets_values": [
588 "Guide: [Subgraph](https://docs.comfy.org/interface/features/subgraph)\n\n## Model Links\n\n- [Hugging Face:Comfy-Org/MiniMax-H3-Image](https://huggingface.co/Comfy-Org/MiniMax-H3-Image)\n- [Hugging Face:Comfy-Org/MiniMax-H3](https://huggingface.co/Comfy-Org/MiniMax-H3)\n- [Hugging Face:Comfy-Org/Qwen3.8-27B](https://huggingface.co/Comfy-Org/Qwen3.5)\n\n**diffusion_models**\n\n- [minimax_h3_image_pruned_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3-Image/resolve/main/diffusion_models/minimax_h3_image_pruned_int8_convrot.safetensors) (21 GB)\n\n**text_encoders**\n\n- [qwen3vl_32b_minimax_h3_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/text_encoders/qwen3vl_32b_minimax_h3_int8_convrot.safetensors) (25.28 GB)\n- [qwen3.5_9b_w4a8_gptq.safetensors](https://huggingface.co/Comfy-Org/Qwen3.5/resolve/main/text_encoders/qwen3.5_9b_w4a8_gptq.safetensors) (7.34 GB)\n\n**vae**\n\n- [minimax_h3_image_vae_fp16.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3-Image/resolve/main/vae/minimax_h3_image_vae_fp16.safetensors) (1.17 GB)\n\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 diffusion_models/\n│ │ └── minimax_h3_image_pruned_int8_convrot.safetensors\n│ ├── 📂 text_encoders/\n│ │ ├── qwen3vl_32b_minimax_h3_int8_convrot.safetensors\n│ │ └── qwen3.8_27b_w4a8.safetensors\n│ └── 📂 vae/\n│ └── minimax_h3_image_vae_fp16.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
589 ],
590 "widgets_values_named": {
591 "text": "Guide: [Subgraph](https://docs.comfy.org/interface/features/subgraph)\n\n## Model Links\n\n- [Hugging Face:Comfy-Org/MiniMax-H3-Image](https://huggingface.co/Comfy-Org/MiniMax-H3-Image)\n- [Hugging Face:Comfy-Org/MiniMax-H3](https://huggingface.co/Comfy-Org/MiniMax-H3)\n- [Hugging Face:Comfy-Org/Qwen3.8-27B](https://huggingface.co/Comfy-Org/Qwen3.5)\n\n**diffusion_models**\n\n- [minimax_h3_image_pruned_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3-Image/resolve/main/diffusion_models/minimax_h3_image_pruned_int8_convrot.safetensors) (21 GB)\n\n**text_encoders**\n\n- [qwen3vl_32b_minimax_h3_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/text_encoders/qwen3vl_32b_minimax_h3_int8_convrot.safetensors) (25.28 GB)\n- [qwen3.5_9b_w4a8_gptq.safetensors](https://huggingface.co/Comfy-Org/Qwen3.5/resolve/main/text_encoders/qwen3.5_9b_w4a8_gptq.safetensors) (7.34 GB)\n\n**vae**\n\n- [minimax_h3_image_vae_fp16.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3-Image/resolve/main/vae/minimax_h3_image_vae_fp16.safetensors) (1.17 GB)\n\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 diffusion_models/\n│ │ └── minimax_h3_image_pruned_int8_convrot.safetensors\n│ ├── 📂 text_encoders/\n│ │ ├── qwen3vl_32b_minimax_h3_int8_convrot.safetensors\n│ │ └── qwen3.8_27b_w4a8.safetensors\n│ └── 📂 vae/\n│ └── minimax_h3_image_vae_fp16.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
592 },
593 "color": "#222",
594 "bgcolor": "#000"
595 },
596 {
597 "id": 971,
598 "type": "ImageScaleToTotalPixels",
599 "pos": [
600 -997.8972253760053,
601 1521.2095332488511
602 ],
603 "size": [
604 380,
605 150
606 ],
607 "flags": [],
608 "order": 11,
609 "mode": 0,
610 "inputs": [
611 {
612 "name": "image",
613 "type": "IMAGE",
614 "link": 9271
615 }
616 ],
617 "outputs": [
618 {
619 "name": "IMAGE",
620 "type": "IMAGE",
621 "slot_index": 0,
622 "links": [
623 9253
624 ]
625 }
626 ],
627 "title": "Image Scale To Total Pixels (reference)",
628 "properties": {
629 "Node name for S&R": "ImageScaleToTotalPixels"
630 },
631 "widgets_values": [
632 "lanczos",
633 4,
634 16
635 ],
636 "widgets_values_named": {
637 "upscale_method": "lanczos",
638 "megapixels": 4,
639 "resolution_steps": 16
640 }
641 },
642 {
643 "id": 972,
644 "type": "ComfyMathExpression",
645 "pos": [
646 -499.7694530533297,
647 1639.5004917764136
648 ],
649 "size": [
650 400,
651 200
652 ],
653 "flags": [],
654 "order": 14,
655 "mode": 0,
656 "inputs": [
657 {
658 "label": "a",
659 "name": "values.a",
660 "type": "FLOAT,INT,BOOLEAN",
661 "link": 9250
662 },
663 {
664 "name": "values.b",
665 "shape": 7,
666 "type": "FLOAT,INT,BOOLEAN",
667 "link": 9251
668 },
669 {
670 "name": "values.c",
671 "shape": 7,
672 "type": "FLOAT,INT,BOOLEAN",
673 "link": 9252
674 },
675 {
676 "name": "values.d",
677 "shape": 7,
678 "type": "FLOAT,INT,BOOLEAN",
679 "link": 9259
680 },
681 {
682 "name": "values.e",
683 "shape": 7,
684 "type": "FLOAT,INT,BOOLEAN",
685 "link": null
686 }
687 ],
688 "outputs": [
689 {
690 "name": "FLOAT",
691 "type": "FLOAT",
692 "links": []
693 },
694 {
695 "name": "INT",
696 "type": "INT",
697 "links": []
698 },
699 {
700 "name": "BOOL",
701 "type": "BOOLEAN",
702 "links": [
703 9276,
704 9279
705 ]
706 }
707 ],
708 "properties": {
709 "Node name for S&R": "ComfyMathExpression"
710 },
711 "widgets_values": [
712 "(a * b) < (c * d)"
713 ],
714 "widgets_values_named": {
715 "expression": "(a * b) < (c * d)"
716 }
717 },
718 {
719 "id": 973,
720 "type": "GetImageSize",
721 "pos": [
722 -876.4524690557894,
723 1767.3131324974024
724 ],
725 "size": [
726 229.35268554687502,
727 162.36713256835938
728 ],
729 "flags": [],
730 "order": 13,
731 "mode": 0,
732 "inputs": [
733 {
734 "name": "image",
735 "type": "IMAGE",
736 "link": 9253
737 }
738 ],
739 "outputs": [
740 {
741 "name": "width",
742 "type": "INT",
743 "links": [
744 9259,
745 9274
746 ]
747 },
748 {
749 "name": "height",
750 "type": "INT",
751 "links": [
752 9252,
753 9277
754 ]
755 },
756 {
757 "name": "batch_size",
758 "type": "INT",
759 "links": []
760 }
761 ],
762 "properties": {
763 "Node name for S&R": "GetImageSize"
764 }
765 },
766 {
767 "id": 975,
768 "type": "40e68d98-f24c-42b4-afa8-919a414db062",
769 "pos": [
770 -1630.7038110338603,
771 863.4530090876997
772 ],
773 "size": [
774 380.21224606501556,
775 173.8724720886369
776 ],
777 "flags": [],
778 "order": 10,
779 "mode": 0,
780 "inputs": [
781 {
782 "label": "Auto-size",
783 "name": "value",
784 "type": "BOOLEAN",
785 "widget": {
786 "name": "value"
787 },
788 "link": null
789 },
790 {
791 "name": "image",
792 "type": "IMAGE",
793 "link": 9257
794 }
795 ],
796 "outputs": [
797 {
798 "label": "width",
799 "name": "output",
800 "type": "INT",
801 "links": [
802 9250,
803 9275,
804 9282
805 ]
806 },
807 {
808 "label": "height",
809 "name": "output_1",
810 "type": "INT",
811 "links": [
812 9251,
813 9278,
814 9283
815 ]
816 },
817 {
818 "label": "image",
819 "name": "output_2",
820 "type": "IMAGE",
821 "links": []
822 },
823 {
824 "name": "BOOLEAN",
825 "type": "BOOLEAN",
826 "links": [
827 9269,
828 9290
829 ]
830 }
831 ],
832 "properties": {
833 "previewExposures": []
834 },
835 "widgets_values": [
836 true,
837 2048,
838 2048
839 ],
840 "widgets_values_named": {
841 "value": true,
842 "width": 2048,
843 "height": 2048
844 },
845 "color": "#233",
846 "bgcolor": "#355"
847 },
848 {
849 "id": 980,
850 "type": "ComfySwitchNode",
851 "pos": [
852 148.04618891663927,
853 1137.9170754208126
854 ],
855 "size": [
856 270,
857 106
858 ],
859 "flags": [],
860 "order": 17,
861 "mode": 0,
862 "inputs": [
863 {
864 "name": "on_false",
865 "shape": 7,
866 "type": "INT",
867 "link": 9282
868 },
869 {
870 "name": "on_true",
871 "shape": 7,
872 "type": "INT",
873 "link": 9280
874 },
875 {
876 "name": "switch",
877 "type": "BOOLEAN",
878 "widget": {
879 "name": "switch"
880 },
881 "link": 9269
882 }
883 ],
884 "outputs": [
885 {
886 "name": "output",
887 "type": "INT",
888 "links": [
889 9284
890 ]
891 }
892 ],
893 "title": "width 2",
894 "properties": {
895 "Node name for S&R": "ComfySwitchNode"
896 },
897 "widgets_values": [
898 false
899 ],
900 "widgets_values_named": {
901 "switch": false
902 }
903 },
904 {
905 "id": 982,
906 "type": "ComfySwitchNode",
907 "pos": [
908 -113.6803791482223,
909 1378.491560131064
910 ],
911 "size": [
912 270,
913 106
914 ],
915 "flags": [],
916 "order": 15,
917 "mode": 0,
918 "inputs": [
919 {
920 "name": "on_false",
921 "shape": 7,
922 "type": "INT",
923 "link": 9275
924 },
925 {
926 "name": "on_true",
927 "shape": 7,
928 "type": "INT",
929 "link": 9274
930 },
931 {
932 "name": "switch",
933 "type": "BOOLEAN",
934 "widget": {
935 "name": "switch"
936 },
937 "link": 9276
938 }
939 ],
940 "outputs": [
941 {
942 "name": "output",
943 "type": "INT",
944 "links": [
945 9280
946 ]
947 }
948 ],
949 "title": "width",
950 "properties": {
951 "Node name for S&R": "ComfySwitchNode"
952 },
953 "widgets_values": [
954 false
955 ],
956 "widgets_values_named": {
957 "switch": false
958 }
959 },
960 {
961 "id": 983,
962 "type": "ComfySwitchNode",
963 "pos": [
964 5.215265383028509,
965 1607.0186851310639
966 ],
967 "size": [
968 270,
969 106
970 ],
971 "flags": [],
972 "order": 16,
973 "mode": 0,
974 "inputs": [
975 {
976 "name": "on_false",
977 "shape": 7,
978 "type": "INT",
979 "link": 9278
980 },
981 {
982 "name": "on_true",
983 "shape": 7,
984 "type": "INT",
985 "link": 9277
986 },
987 {
988 "name": "switch",
989 "type": "BOOLEAN",
990 "widget": {
991 "name": "switch"
992 },
993 "link": 9279
994 }
995 ],
996 "outputs": [
997 {
998 "name": "output",
999 "type": "INT",
1000 "links": [
1001 9281
1002 ]
1003 }
1004 ],
1005 "title": "height",
1006 "properties": {
1007 "Node name for S&R": "ComfySwitchNode"
1008 },
1009 "widgets_values": [
1010 false
1011 ],
1012 "widgets_values_named": {
1013 "switch": false
1014 }
1015 },
1016 {
1017 "id": 987,
1018 "type": "ComfySwitchNode",
1019 "pos": [
1020 240.83661762593056,
1021 1418.0449530778842
1022 ],
1023 "size": [
1024 270,
1025 106
1026 ],
1027 "flags": [],
1028 "order": 18,
1029 "mode": 0,
1030 "inputs": [
1031 {
1032 "name": "on_false",
1033 "shape": 7,
1034 "type": "INT",
1035 "link": 9283
1036 },
1037 {
1038 "name": "on_true",
1039 "shape": 7,
1040 "type": "INT",
1041 "link": 9281
1042 },
1043 {
1044 "name": "switch",
1045 "type": "BOOLEAN",
1046 "widget": {
1047 "name": "switch"
1048 },
1049 "link": 9290
1050 }
1051 ],
1052 "outputs": [
1053 {
1054 "name": "output",
1055 "type": "INT",
1056 "links": [
1057 9285
1058 ]
1059 }
1060 ],
1061 "title": "height 2",
1062 "properties": {
1063 "Node name for S&R": "ComfySwitchNode"
1064 },
1065 "widgets_values": [
1066 false
1067 ],
1068 "widgets_values_named": {
1069 "switch": false
1070 }
1071 },
1072 {
1073 "id": 992,
1074 "type": "Note",
1075 "pos": [
1076 -1649.8256596903389,
1077 1156.6507841294542
1078 ],
1079 "size": [
1080 595.5952041015621,
1081 419.02516564941374
1082 ],
1083 "flags": [],
1084 "order": 8,
1085 "mode": 0,
1086 "inputs": [],
1087 "outputs": [],
1088 "properties": [],
1089 "widgets_values": [
1090 "About Auto size or not\n\n\nAuto size ON: Uses the dimensions of the uploaded picture; If the image is below 4 MP, the image is upscaled to 4 MP because MiniMax H3 gives better results at 4 MP.\n\nAuto size OFF: The Width and Height parameters are used instead."
1091 ],
1092 "widgets_values_named": {
1093 "text": "About Auto size or not\n\n\nAuto size ON: Uses the dimensions of the uploaded picture; If the image is below 4 MP, the image is upscaled to 4 MP because MiniMax H3 gives better results at 4 MP.\n\nAuto size OFF: The Width and Height parameters are used instead."
1094 },
1095 "color": "#432",
1096 "bgcolor": "#653",
1097 "shape": 2
1098 }
1099 ],
1100 "links": [
1101 [
1102 59,
1103 32,
1104 0,
1105 33,
1106 0,
1107 "STRING"
1108 ],
1109 [
1110 2117,
1111 942,
1112 0,
1113 940,
1114 0,
1115 "IMAGE"
1116 ],
1117 [
1118 2120,
1119 33,
1120 0,
1121 942,
1122 0,
1123 "STRING"
1124 ],
1125 [
1126 9253,
1127 971,
1128 0,
1129 973,
1130 0,
1131 "IMAGE"
1132 ],
1133 [
1134 9257,
1135 31,
1136 0,
1137 975,
1138 1,
1139 "IMAGE"
1140 ],
1141 [
1142 9269,
1143 975,
1144 3,
1145 980,
1146 2,
1147 "BOOLEAN"
1148 ],
1149 [
1150 9271,
1151 31,
1152 0,
1153 971,
1154 0,
1155 "IMAGE"
1156 ],
1157 [
1158 9274,
1159 973,
1160 0,
1161 982,
1162 1,
1163 "INT"
1164 ],
1165 [
1166 9275,
1167 975,
1168 0,
1169 982,
1170 0,
1171 "INT"
1172 ],
1173 [
1174 9276,
1175 972,
1176 2,
1177 982,
1178 2,
1179 "BOOLEAN"
1180 ],
1181 [
1182 9277,
1183 973,
1184 1,
1185 983,
1186 1,
1187 "INT"
1188 ],
1189 [
1190 9278,
1191 975,
1192 1,
1193 983,
1194 0,
1195 "INT"
1196 ],
1197 [
1198 9279,
1199 972,
1200 2,
1201 983,
1202 2,
1203 "BOOLEAN"
1204 ],
1205 [
1206 9280,
1207 982,
1208 0,
1209 980,
1210 1,
1211 "INT"
1212 ],
1213 [
1214 9281,
1215 983,
1216 0,
1217 987,
1218 1,
1219 "INT"
1220 ],
1221 [
1222 9282,
1223 975,
1224 0,
1225 980,
1226 0,
1227 "INT"
1228 ],
1229 [
1230 9283,
1231 975,
1232 1,
1233 987,
1234 0,
1235 "INT"
1236 ],
1237 [
1238 9284,
1239 980,
1240 0,
1241 942,
1242 2,
1243 "INT"
1244 ],
1245 [
1246 9285,
1247 987,
1248 0,
1249 942,
1250 3,
1251 "INT"
1252 ],
1253 [
1254 9286,
1255 939,
1256 0,
1257 942,
1258 1,
1259 "BOOLEAN"
1260 ],
1261 [
1262 9290,
1263 975,
1264 3,
1265 987,
1266 2,
1267 "BOOLEAN"
1268 ],
1269 [
1270 57,
1271 30,
1272 0,
1273 32,
1274 0,
1275 "CLIP"
1276 ],
1277 [
1278 58,
1279 31,
1280 0,
1281 32,
1282 1,
1283 "IMAGE"
1284 ],
1285 [
1286 9250,
1287 975,
1288 0,
1289 972,
1290 0,
1291 "INT"
1292 ],
1293 [
1294 9251,
1295 975,
1296 1,
1297 972,
1298 1,
1299 "INT"
1300 ],
1301 [
1302 9252,
1303 973,
1304 1,
1305 972,
1306 2,
1307 "INT"
1308 ],
1309 [
1310 9259,
1311 973,
1312 0,
1313 972,
1314 3,
1315 "INT"
1316 ]
1317 ],
1318 "groups": [],
1319 "definitions": {
1320 "subgraphs": [
1321 {
1322 "id": "e7a111e2-1093-4824-bf57-dff022ce942b",
1323 "version": 1,
1324 "state": {
1325 "lastGroupId": 57,
1326 "lastNodeId": 992,
1327 "lastLinkId": 9292,
1328 "lastRerouteId": 9
1329 },
1330 "revision": 0,
1331 "config": [],
1332 "name": "Text to Image (MiniMax H3 Image)",
1333 "inputNode": {
1334 "id": -10,
1335 "bounding": [
1336 -1070,
1337 190,
1338 128,
1339 268
1340 ]
1341 },
1342 "outputNode": {
1343 "id": -20,
1344 "bounding": [
1345 1790,
1346 346,
1347 128,
1348 68
1349 ]
1350 },
1351 "inputs": [
1352 {
1353 "id": "b730110f-585d-41f1-a944-5f717eb6cf8c",
1354 "name": "replace",
1355 "type": "STRING",
1356 "linkIds": [
1357 35
1358 ],
1359 "localized_name": "replace",
1360 "label": "prompt",
1361 "pos": [
1362 -966,
1363 214
1364 ]
1365 },
1366 {
1367 "id": "e4504140-2ae8-43b3-b697-4185af6d907b",
1368 "name": "switch",
1369 "type": "BOOLEAN",
1370 "linkIds": [
1371 40
1372 ],
1373 "label": "enable_PE",
1374 "pos": [
1375 -966,
1376 234
1377 ]
1378 },
1379 {
1380 "id": "f20165be-0789-44a9-9a96-5eb2c103a600",
1381 "name": "seed",
1382 "type": "INT",
1383 "linkIds": [
1384 31
1385 ],
1386 "pos": [
1387 -966,
1388 254
1389 ]
1390 },
1391 {
1392 "id": "2f9019fa-1b1c-4786-910f-974f4a932272",
1393 "name": "width",
1394 "type": "INT",
1395 "linkIds": [
1396 36
1397 ],
1398 "pos": [
1399 -966,
1400 274
1401 ]
1402 },
1403 {
1404 "id": "6f2f5ca3-02ec-4706-bc9f-e91ac531bf00",
1405 "name": "height",
1406 "type": "INT",
1407 "linkIds": [
1408 37
1409 ],
1410 "pos": [
1411 -966,
1412 294
1413 ]
1414 },
1415 {
1416 "id": "ce7a2e77-e0c5-456a-8902-658228f6e9ca",
1417 "name": "sampler_name",
1418 "type": "COMBO",
1419 "linkIds": [
1420 38
1421 ],
1422 "label": "sampler",
1423 "pos": [
1424 -966,
1425 314
1426 ]
1427 },
1428 {
1429 "id": "8f2e7783-4feb-4657-8ab9-390f19094d5a",
1430 "name": "scheduler",
1431 "type": "COMBO",
1432 "linkIds": [
1433 39
1434 ],
1435 "pos": [
1436 -966,
1437 334
1438 ]
1439 },
1440 {
1441 "id": "b723c7f8-0381-4f4c-812d-c37b3bfd5abb",
1442 "name": "unet_name",
1443 "type": "COMBO",
1444 "linkIds": [
1445 43
1446 ],
1447 "pos": [
1448 -966,
1449 354
1450 ]
1451 },
1452 {
1453 "id": "eb3025ec-fd65-4f5e-b92a-1c747d8d8fdc",
1454 "name": "clip_name",
1455 "type": "COMBO",
1456 "linkIds": [
1457 44
1458 ],
1459 "pos": [
1460 -966,
1461 374
1462 ]
1463 },
1464 {
1465 "id": "7d162c4f-e430-42a5-9b94-9daf5d27e68e",
1466 "name": "vae_name",
1467 "type": "COMBO",
1468 "linkIds": [
1469 45
1470 ],
1471 "pos": [
1472 -966,
1473 394
1474 ]
1475 },
1476 {
1477 "id": "d074d284-c8ea-4c0b-b7c0-ea7ab5e1e273",
1478 "name": "clip_name_1",
1479 "type": "COMBO",
1480 "linkIds": [
1481 46
1482 ],
1483 "label": "PE_model",
1484 "pos": [
1485 -966,
1486 414
1487 ]
1488 }
1489 ],
1490 "outputs": [
1491 {
1492 "id": "1540fbe2-fc77-40f8-8aac-348935c0bc12",
1493 "name": "IMAGE",
1494 "type": "IMAGE",
1495 "linkIds": [
1496 11
1497 ],
1498 "localized_name": "IMAGE",
1499 "pos": [
1500 1814,
1501 370
1502 ]
1503 }
1504 ],
1505 "widgets": [],
1506 "nodes": [
1507 {
1508 "id": 1,
1509 "type": "UNETLoader",
1510 "pos": [
1511 -180,
1512 -250
1513 ],
1514 "size": [
1515 590,
1516 90
1517 ],
1518 "flags": [],
1519 "order": 2,
1520 "mode": 0,
1521 "inputs": [
1522 {
1523 "localized_name": "unet_name",
1524 "name": "unet_name",
1525 "type": "COMBO",
1526 "widget": {
1527 "name": "unet_name"
1528 },
1529 "link": 43
1530 }
1531 ],
1532 "outputs": [
1533 {
1534 "localized_name": "MODEL",
1535 "name": "MODEL",
1536 "type": "MODEL",
1537 "links": [
1538 5
1539 ]
1540 }
1541 ],
1542 "properties": {
1543 "Node name for S&R": "UNETLoader",
1544 "models": [
1545 {
1546 "name": "minimax_h3_image_pruned_int8_convrot.safetensors",
1547 "url": "https://huggingface.co/Comfy-Org/MiniMax-H3-Image/resolve/main/diffusion_models/minimax_h3_image_pruned_int8_convrot.safetensors",
1548 "directory": "diffusion_models"
1549 }
1550 ]
1551 },
1552 "widgets_values": [
1553 "minimax_h3_image_pruned_int8_convrot.safetensors",
1554 "default"
1555 ],
1556 "widgets_values_named": {
1557 "unet_name": "minimax_h3_image_pruned_int8_convrot.safetensors",
1558 "weight_dtype": "default"
1559 }
1560 },
1561 {
1562 "id": 2,
1563 "type": "CLIPLoader",
1564 "pos": [
1565 -180,
1566 -80
1567 ],
1568 "size": [
1569 590,
1570 120
1571 ],
1572 "flags": [],
1573 "order": 3,
1574 "mode": 0,
1575 "inputs": [
1576 {
1577 "localized_name": "clip_name",
1578 "name": "clip_name",
1579 "type": "COMBO",
1580 "widget": {
1581 "name": "clip_name"
1582 },
1583 "link": 44
1584 }
1585 ],
1586 "outputs": [
1587 {
1588 "localized_name": "CLIP",
1589 "name": "CLIP",
1590 "type": "CLIP",
1591 "links": [
1592 1
1593 ]
1594 }
1595 ],
1596 "properties": {
1597 "Node name for S&R": "CLIPLoader",
1598 "models": [
1599 {
1600 "name": "qwen3vl_32b_minimax_h3_int8_convrot.safetensors",
1601 "url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/text_encoders/qwen3vl_32b_minimax_h3_int8_convrot.safetensors",
1602 "directory": "text_encoders"
1603 }
1604 ]
1605 },
1606 "widgets_values": [
1607 "qwen3vl_32b_minimax_h3_int8_convrot.safetensors",
1608 "minimax",
1609 "default"
1610 ],
1611 "widgets_values_named": {
1612 "clip_name": "qwen3vl_32b_minimax_h3_int8_convrot.safetensors",
1613 "type": "minimax",
1614 "device": "default"
1615 }
1616 },
1617 {
1618 "id": 3,
1619 "type": "VAELoader",
1620 "pos": [
1621 -180,
1622 110
1623 ],
1624 "size": [
1625 590,
1626 70
1627 ],
1628 "flags": [],
1629 "order": 4,
1630 "mode": 0,
1631 "inputs": [
1632 {
1633 "localized_name": "vae_name",
1634 "name": "vae_name",
1635 "type": "COMBO",
1636 "widget": {
1637 "name": "vae_name"
1638 },
1639 "link": 45
1640 }
1641 ],
1642 "outputs": [
1643 {
1644 "localized_name": "VAE",
1645 "name": "VAE",
1646 "type": "VAE",
1647 "links": [
1648 2,
1649 10
1650 ]
1651 }
1652 ],
1653 "properties": {
1654 "Node name for S&R": "VAELoader",
1655 "models": [
1656 {
1657 "name": "minimax_h3_image_vae_fp16.safetensors",
1658 "url": "https://huggingface.co/Comfy-Org/MiniMax-H3-Image/resolve/main/vae/minimax_h3_image_vae_fp16.safetensors",
1659 "directory": "vae"
1660 }
1661 ]
1662 },
1663 "widgets_values": [
1664 "minimax_h3_image_vae_fp16.safetensors"
1665 ],
1666 "widgets_values_named": {
1667 "vae_name": "minimax_h3_image_vae_fp16.safetensors"
1668 }
1669 },
1670 {
1671 "id": 5,
1672 "type": "MiniMaxH3ImageConditioning",
1673 "pos": [
1674 540,
1675 -260
1676 ],
1677 "size": [
1678 440,
1679 400
1680 ],
1681 "flags": [],
1682 "order": 5,
1683 "mode": 0,
1684 "inputs": [
1685 {
1686 "localized_name": "clip",
1687 "name": "clip",
1688 "type": "CLIP",
1689 "link": 1
1690 },
1691 {
1692 "localized_name": "vae",
1693 "name": "vae",
1694 "shape": 7,
1695 "type": "VAE",
1696 "link": 2
1697 },
1698 {
1699 "localized_name": "image_0",
1700 "name": "images.image_0",
1701 "shape": 7,
1702 "type": "IMAGE",
1703 "link": null
1704 },
1705 {
1706 "localized_name": "prompt",
1707 "name": "prompt",
1708 "type": "STRING",
1709 "widget": {
1710 "name": "prompt"
1711 },
1712 "link": 28
1713 },
1714 {
1715 "localized_name": "width",
1716 "name": "width",
1717 "type": "INT",
1718 "widget": {
1719 "name": "width"
1720 },
1721 "link": 36
1722 },
1723 {
1724 "localized_name": "height",
1725 "name": "height",
1726 "type": "INT",
1727 "widget": {
1728 "name": "height"
1729 },
1730 "link": 37
1731 },
1732 {
1733 "localized_name": "image_1",
1734 "name": "images.image_1",
1735 "shape": 7,
1736 "type": "IMAGE",
1737 "link": null
1738 }
1739 ],
1740 "outputs": [
1741 {
1742 "localized_name": "positive",
1743 "name": "positive",
1744 "type": "CONDITIONING",
1745 "links": [
1746 4,
1747 6
1748 ]
1749 },
1750 {
1751 "localized_name": "LATENT",
1752 "name": "LATENT",
1753 "type": "LATENT",
1754 "links": [
1755 8
1756 ]
1757 }
1758 ],
1759 "properties": {
1760 "Node name for S&R": "MiniMaxH3ImageConditioning"
1761 },
1762 "widgets_values": [
1763 "",
1764 3104,
1765 3104
1766 ],
1767 "widgets_values_named": {
1768 "prompt": "",
1769 "width": 3104,
1770 "height": 3104
1771 }
1772 },
1773 {
1774 "id": 6,
1775 "type": "ConditioningZeroOut",
1776 "pos": [
1777 610,
1778 210
1779 ],
1780 "size": [
1781 300,
1782 50
1783 ],
1784 "flags": [],
1785 "order": 6,
1786 "mode": 0,
1787 "inputs": [
1788 {
1789 "localized_name": "conditioning",
1790 "name": "conditioning",
1791 "type": "CONDITIONING",
1792 "link": 4
1793 }
1794 ],
1795 "outputs": [
1796 {
1797 "localized_name": "CONDITIONING",
1798 "name": "CONDITIONING",
1799 "type": "CONDITIONING",
1800 "links": [
1801 7
1802 ]
1803 }
1804 ],
1805 "properties": {
1806 "Node name for S&R": "ConditioningZeroOut"
1807 }
1808 },
1809 {
1810 "id": 15,
1811 "type": "TextGenerateV2",
1812 "pos": [
1813 460,
1814 380
1815 ],
1816 "size": [
1817 400,
1818 460
1819 ],
1820 "flags": [],
1821 "order": 9,
1822 "mode": 0,
1823 "showAdvanced": false,
1824 "inputs": [
1825 {
1826 "localized_name": "clip",
1827 "name": "clip",
1828 "type": "CLIP",
1829 "link": 15
1830 },
1831 {
1832 "localized_name": "image1",
1833 "name": "images.image1",
1834 "shape": 7,
1835 "type": "IMAGE",
1836 "link": null
1837 },
1838 {
1839 "localized_name": "video1",
1840 "name": "videos.video1",
1841 "shape": 7,
1842 "type": "IMAGE",
1843 "link": null
1844 },
1845 {
1846 "localized_name": "audio1",
1847 "name": "audios.audio1",
1848 "shape": 7,
1849 "type": "AUDIO",
1850 "link": null
1851 },
1852 {
1853 "localized_name": "system_prompt",
1854 "name": "system_prompt",
1855 "shape": 7,
1856 "type": "STRING",
1857 "link": 16
1858 },
1859 {
1860 "localized_name": "prompt",
1861 "name": "prompt",
1862 "type": "STRING",
1863 "widget": {
1864 "name": "prompt"
1865 },
1866 "link": 20
1867 }
1868 ],
1869 "outputs": [
1870 {
1871 "localized_name": "generated_text",
1872 "name": "generated_text",
1873 "type": "STRING",
1874 "links": [
1875 47
1876 ]
1877 },
1878 {
1879 "localized_name": "thinking",
1880 "name": "thinking",
1881 "type": "STRING",
1882 "links": null
1883 }
1884 ],
1885 "properties": {
1886 "Node name for S&R": "TextGenerateV2"
1887 },
1888 "widgets_values": [
1889 "",
1890 8192,
1891 "on",
1892 1,
1893 20,
1894 0.95,
1895 0,
1896 1,
1897 0,
1898 0,
1899 true,
1900 true,
1901 "auto"
1902 ],
1903 "widgets_values_named": {
1904 "prompt": "",
1905 "max_length": 8192,
1906 "sampling_mode": "on",
1907 "sampling_mode.temperature": 1,
1908 "sampling_mode.top_k": 20,
1909 "sampling_mode.top_p": 0.95,
1910 "sampling_mode.min_p": 0,
1911 "sampling_mode.repetition_penalty": 1,
1912 "sampling_mode.presence_penalty": 0,
1913 "sampling_mode.seed": 0,
1914 "thinking": true,
1915 "use_default_template": true,
1916 "mtp": "auto"
1917 }
1918 },
1919 {
1920 "id": 16,
1921 "type": "CLIPLoader",
1922 "pos": [
1923 -200,
1924 380
1925 ],
1926 "size": [
1927 560,
1928 140
1929 ],
1930 "flags": [],
1931 "order": 10,
1932 "mode": 0,
1933 "showAdvanced": false,
1934 "inputs": [
1935 {
1936 "localized_name": "clip_name",
1937 "name": "clip_name",
1938 "type": "COMBO",
1939 "widget": {
1940 "name": "clip_name"
1941 },
1942 "link": 46
1943 }
1944 ],
1945 "outputs": [
1946 {
1947 "localized_name": "CLIP",
1948 "name": "CLIP",
1949 "type": "CLIP",
1950 "links": [
1951 15
1952 ]
1953 }
1954 ],
1955 "properties": {
1956 "Node name for S&R": "CLIPLoader",
1957 "models": [
1958 {
1959 "name": "qwen3.5_9b_w4a8_gptq.safetensors",
1960 "url": "https://huggingface.co/Comfy-Org/Qwen3.5/resolve/main/text_encoders/qwen3.5_9b_w4a8_gptq.safetensors",
1961 "directory": "text_encoders"
1962 }
1963 ]
1964 },
1965 "widgets_values": [
1966 "qwen3.5_9b_w4a8_gptq.safetensors",
1967 "minimax",
1968 "default"
1969 ],
1970 "widgets_values_named": {
1971 "clip_name": "qwen3.5_9b_w4a8_gptq.safetensors",
1972 "type": "minimax",
1973 "device": "default"
1974 }
1975 },
1976 {
1977 "id": 17,
1978 "type": "PrimitiveStringMultiline",
1979 "pos": [
1980 -200,
1981 580
1982 ],
1983 "size": [
1984 570,
1985 170
1986 ],
1987 "flags": [],
1988 "order": 0,
1989 "mode": 0,
1990 "inputs": [],
1991 "outputs": [
1992 {
1993 "localized_name": "STRING",
1994 "name": "STRING",
1995 "type": "STRING",
1996 "links": [
1997 16
1998 ]
1999 }
2000 ],
2001 "title": "Text (system_prompt)",
2002 "properties": {
2003 "Node name for S&R": "PrimitiveStringMultiline"
2004 },
2005 "widgets_values": [
2006 "Reason in the thinking section first. The visible final content must be exactly one JSON object with exactly two keys: expanded_caption and aspect_ratio. Every ASCII double quotation mark used as caption content inside expanded_caption must be serialized as the JSON escape sequence \\\". Do not output text outside that object."
2007 ],
2008 "widgets_values_named": {
2009 "value": "Reason in the thinking section first. The visible final content must be exactly one JSON object with exactly two keys: expanded_caption and aspect_ratio. Every ASCII double quotation mark used as caption content inside expanded_caption must be serialized as the JSON escape sequence \\\". Do not output text outside that object."
2010 }
2011 },
2012 {
2013 "id": 18,
2014 "type": "PreviewAny",
2015 "pos": [
2016 990,
2017 380
2018 ],
2019 "size": [
2020 460,
2021 620
2022 ],
2023 "flags": [],
2024 "order": 11,
2025 "mode": 0,
2026 "inputs": [
2027 {
2028 "localized_name": "source",
2029 "name": "source",
2030 "type": "*",
2031 "link": 27
2032 }
2033 ],
2034 "outputs": [
2035 {
2036 "localized_name": "STRING",
2037 "name": "STRING",
2038 "type": "STRING",
2039 "links": [
2040 28
2041 ]
2042 }
2043 ],
2044 "properties": {
2045 "Node name for S&R": "PreviewAny"
2046 },
2047 "widgets_values": [],
2048 "widgets_values_named": []
2049 },
2050 {
2051 "id": 7,
2052 "type": "KSampler",
2053 "pos": [
2054 1120,
2055 -260
2056 ],
2057 "size": [
2058 320,
2059 480
2060 ],
2061 "flags": [],
2062 "order": 7,
2063 "mode": 0,
2064 "inputs": [
2065 {
2066 "localized_name": "model",
2067 "name": "model",
2068 "type": "MODEL",
2069 "link": 5
2070 },
2071 {
2072 "localized_name": "positive",
2073 "name": "positive",
2074 "type": "CONDITIONING",
2075 "link": 6
2076 },
2077 {
2078 "localized_name": "negative",
2079 "name": "negative",
2080 "type": "CONDITIONING",
2081 "link": 7
2082 },
2083 {
2084 "localized_name": "latent_image",
2085 "name": "latent_image",
2086 "type": "LATENT",
2087 "link": 8
2088 },
2089 {
2090 "localized_name": "seed",
2091 "name": "seed",
2092 "type": "INT",
2093 "widget": {
2094 "name": "seed"
2095 },
2096 "link": 31
2097 },
2098 {
2099 "localized_name": "sampler_name",
2100 "name": "sampler_name",
2101 "type": "COMBO",
2102 "widget": {
2103 "name": "sampler_name"
2104 },
2105 "link": 38
2106 },
2107 {
2108 "localized_name": "scheduler",
2109 "name": "scheduler",
2110 "type": "COMBO",
2111 "widget": {
2112 "name": "scheduler"
2113 },
2114 "link": 39
2115 }
2116 ],
2117 "outputs": [
2118 {
2119 "localized_name": "LATENT",
2120 "name": "LATENT",
2121 "type": "LATENT",
2122 "links": [
2123 9
2124 ]
2125 }
2126 ],
2127 "properties": {
2128 "Node name for S&R": "KSampler"
2129 },
2130 "widgets_values": [
2131 42,
2132 "randomize",
2133 6,
2134 1,
2135 "euler",
2136 "simple",
2137 1
2138 ],
2139 "widgets_values_named": {
2140 "seed": 42,
2141 "control_after_generate": "randomize",
2142 "steps": 6,
2143 "cfg": 1,
2144 "sampler_name": "euler",
2145 "scheduler": "simple",
2146 "denoise": 1
2147 }
2148 },
2149 {
2150 "id": 20,
2151 "type": "PrimitiveStringMultiline",
2152 "pos": [
2153 -200,
2154 820
2155 ],
2156 "size": [
2157 580,
2158 160
2159 ],
2160 "flags": [],
2161 "order": 1,
2162 "mode": 0,
2163 "inputs": [],
2164 "outputs": [
2165 {
2166 "localized_name": "STRING",
2167 "name": "STRING",
2168 "type": "STRING",
2169 "links": [
2170 19
2171 ]
2172 }
2173 ],
2174 "title": "Text (task_prompt)",
2175 "properties": {
2176 "Node name for S&R": "PrimitiveStringMultiline"
2177 },
2178 "widgets_values": [
2179 "You are a caption-expansion and canvas-selection model for still-image\ntext-to-image generation. Rewrite input_text into a natural English detailed\ncaption and choose one aspect ratio for the requested final image. After private\nreasoning, serialize the complete caption and aspect ratio together as the one\nrequired two-key JSON object; no visible analysis, markdown, or self-talk. The\ncaption may be long when the requested image is a complex information or design artifact.\n\nRole: act like an expert visual designer and technical illustrator, not a word\nexpander. Preserve every hard fact from the input, then complete the image with\nvisible, inspectable content. The goal is not more words; the goal is that a\nviewer can inspect each important part of the image and find meaningful subjects,\nlabels, relationships, materials, data, and hierarchy.\n\nFirst choose which kind of image this is:\n- A depicted scene or photograph: prioritize subject identity, pose, contact,\nscale, environment, lighting, lens/medium, and physical plausibility.\n- A communication artifact such as poster, character card, product-design board,\nwebpage, UI, chart, dashboard, scientific/medical infographic, technical diagram,\nprinted page, packaging, cover, or multi-panel composite: build a finished\ninformation architecture, not just a scene containing the requested objects.\n\nAspect-ratio decision policy:\nChoose exactly one of these allowed ratios: 1:1, 5:4, 4:3, 3:2, 16:9, 21:9,\n4:5, 3:4, 2:3, or 9:16. Decide in the following order; earlier evidence\noverrides later evidence.\n\n1. Explicit final canvas\n- Preserve an explicit final-output ratio. Map explicit output pixel dimensions\n by width divided by height to the closest allowed ratio.\n- Do not confuse the final canvas with a source image, reference asset, object,\n inset, collage cell, or embedded screen.\n\n2. Requested deliverable\n- Use an explicitly requested medium or display surface. Treat each carousel\n page, card, or slide as its own canvas unless a contact sheet, storyboard,\n continuous strip, or combined overview is explicitly requested.\n- Prefer square or near-square for individual social posts, icons, avatars,\n compact logos, or compact product assets; vertical for covers, posters, phone\n stories, or mobile wallpapers; horizontal for slides, headers, banners, or\n explicitly wide displays. Do not invent a platform or deliverable.\n\n3. Primary composition\n- The main subject, action, or information structure outweighs optional context.\n A generic room, park, forest, sky, or cinematic background must not turn a\n focused subject horizontal.\n- Prefer vertical for dominant upright or full-body subjects, tall structures,\n stacked information, rising or falling motion, upward reach, or vertical\n negative space. Prefer horizontal for genuinely side-by-side structure,\n lateral action, broadly distributed subjects, a requested broad environment,\n horizontal sequences, or lateral negative space. Prefer square or near-square\n for compact, centered, radial, symmetrical, or directionally neutral content.\n\n4. Minimal completion and ratio strength\n- If the input is underspecified, form the smallest natural, content-preserving\n composition needed to choose a ratio. Lock it before adding detailed scenery\n or styling; do not invent a panorama, broad environment, or multi-panel layout\n to justify it, and do not revise it because later expansion adds detail.\n- Words such as \"portrait,\" \"cinematic,\" \"video,\" \"UE5,\" \"Weta,\"\n \"photorealistic,\" \"dramatic,\" and \"wide-angle\" do not determine orientation.\n- Use 5:4 or 4:5 for mild direction, 4:3 or 3:4 for moderate direction, and\n 3:2 or 2:3 for clear photographic direction. Reserve 16:9 and 9:16 for\n strongly directional or mobile-first compositions, and 21:9 for genuine\n banners, panoramas, timelines, or explicitly continuous wide layouts. When\n evidence remains weak, prefer 1:1 or a moderate ratio.\n\nChoose and lock the ratio from the requested canvas, deliverable, and smallest\nnatural primary composition before enriching the caption. Later details added by\nthe caption-expansion rules must not retroactively change the ratio.\n\nUniversal hard rules:\n1. Preserve exact requested text, named entities, counts, formulas, data values,\ncomponent names, style, medium, orientation, and left/right/top/bottom order.\n2. Required content must be visible, not implied. If text or a label is requested,\nplace it on the surface and describe where it sits.\n3. For active bodies, solve scene geometry before pose detail. Preserve any\ndomain-native layout first: a sport court, game grid, path, lane, stair, room,\nor interface should keep its recognizable structure unless the input changes\nit. Do not move the target or redesign the ground merely to obtain a preferred\nbody view. Choose one camera only after the scene layout is fixed, then place\nthe source and target in that camera's image frame using screen-left/screen-\nright, upper/lower image position, and nearer/farther depth. Silently trace the\nsource-to-target vector in this fixed view. Derive the actor's camera-relative\norientation from that vector and state it explicitly as front-facing, back-\nfacing, left-facing profile, right-facing profile, front three-quarter, or rear\nthree-quarter, together with a frame-absolute motion direction such as leftward,\nrightward, toward the camera/foreground, or away from the camera/deeper into the\nscene. Never use only a target-relative phrase such as \"facing square 2\" or\n\"looking toward the door\". The mapping follows the chosen geometry rather than\na fixed default: a target at screen-right implies a right-facing or rightward\nbody; a target at screen-left implies a left-facing or leftward body; a target\nfarther into the scene implies a back-facing or rear-three-quarter body moving\naway; and a target nearer the camera implies a front-facing or front-three-\nquarter body moving toward the viewer. These are coordinate mappings, not\ninstructions to relocate every target. Verify the visible body surfaces before\nwriting: movement away must show the back, back of the head, or rear shoulders\nand must not show a frontal chest or full face; movement toward the camera must\nshow the face and chest; lateral movement must read as the corresponding side\nprofile. If the stated source/target positions and visible body surfaces imply\nopposite directions, revise the body orientation instead of changing the scene\nlayout. Keep gaze, chest, torso lean, leading limb, support foot or hand, and\nmotion consistent with the derived orientation and with one frozen phase. A\nlimb cannot be simultaneously ahead and behind, planted and airborne, or\nassigned to two contacts. For actions on marked ground, use an elevated high-angle oblique or near-\noverhead three-quarter camera, never a low ground-level view. Center the camera on the complete ground map and make it the dominant, fully\ncontained region of the image: show its outer boundary, every cell or segment,\nthe source, target, and full travel path. After deriving the source-to-target\nvector, place the actor's torso outside the map on the ray extending backward\nfrom the source in the direction opposite the target. Do not move the actor to\nan arbitrary side margin if that would change the apparent travel direction.\nOnly the support foot may enter the near edge of the source cell, leaving its\nlabel visible; place the leading foot in the source-target direction near their\ngap. Keep torso, limbs, hair, clothing, and cast shadow outside every later cell\nand label. Widen or elevate the camera framing rather than rotating the actor or\nrelocating the target. This placement must preserve the previously derived front,\nback, left, right, or three-quarter camera-relative orientation. Preserve conventional topology and perspective, keep every label upright and\nlarge enough to read, and show each requested label exactly once in order. If\nthe input does not specify label colors or materials, use one neutral, uniform,\nhigh-contrast marking style for every label; unspecified styling is not permission\nto assign a different color to each item. Keep the actor's hands empty unless the\ninput names a held object. Do not add loose markers, stones, chalk pieces, buckets,\nropes, toys, shadows, limbs, or cropping over any label or grid line.\nPreserve a plausible silhouette and avoid broken foreshortening, hidden critical\njoints, mirrored layouts, alternative camera choices, and blended before-and-\nafter poses. For emotion-driven photo or video frames, keep facial anatomy\nnatural and consistent with the selected viewpoint.\n4. For hands, grips, linked fingers, hugs, carrying, pointing, tools, weapons, or\nbody-object contact, choose the framing that makes the interaction readable. Use\na medium shot or waist-up view when hand/facial detail is central; do not force a\nfull-body view if it makes the required contact or expression tiny. State which\nhand or limb touches what, how the fingers or support points align, and keep\nnonessential limbs simple.\n5. Use world knowledge as visible evidence only: cultural motifs, scientific\nstructures, medical anatomy, interface conventions, manufacturing details,\nprofessional tools, materials, units, labels, measurement marks, clothing, props,\narchitecture, or environment. Do not add lore that cannot be seen.\n6. Respect requested subject count. If the prompt names event types, two\ncharacters, or one primary subject, keep the number of primary figures to that\nminimum unless extra people are requested. Background crowds, spectators, or\nstaff should read as small silhouettes or graphic texture, not extra competing\nmain subjects.\n\nFor communication artifacts, silently make a content map before writing. Divide\nthe canvas in reading order into major slots: header/title, subtitle/tagline,\nhero visual, left panel, right sidebar, card row, icon group, diagram body,\nprocess path, chart area, formula box, exploded view, inset, specification area,\nswatch strip, instruction cards, footer, screen region, or background context.\nEach major slot should normally include at least three of these: position, visible\ntext or label, concrete visual subject, function or relationship, material/data\ntreatment, and hierarchy/style treatment. Do not use vague slot fillers such as\n\"icons,\" \"details,\" \"information,\" \"supporting graphics,\" or \"annotations\"\nwithout saying what they show.\n\nMake the artifact feel complete. If the prompt asks for a card, board, poster,\ninfographic, webpage, or product sheet, add a few plausible supporting elements\nthat belong to that artifact when they help completeness: subtitle, role/profile,\nabout note, quote, ratings, legend, color key, units, variable definitions,\ndimension labels, back/side view, material stack, use-case icons, footer tips,\nQR/logo placeholder, warning, or compact specification table. Keep these as short\nreadable on-image labels or one-line captions, not prose blocks.\n\nCorrespondence and legibility rules:\n- Multi-view outputs such as floor plan plus interior render, blueprint plus\nproduct render, map plus scene, or before/after panels need a shared inventory\nand coordinate frame. Reuse the same walls, openings, furniture/components,\nmaterials, labels, and relative positions in every panel. Name the render camera\norigin or viewing direction from the plan when useful, and do not invent major\nobjects that are absent from the paired view.\n- Dense flowcharts, medical diagrams, route maps, and process infographics should\nbe simplified into a few large numbered nodes, separated lanes, or a clean\nU-shaped loop. Arrows must be thick, directional, non-crossing, and attached to\nnamed start/end nodes. Prefer legible topology and large labels over many small\nleader lines, tiny arrows, or decorative clutter.\n\nContract affordances:\n- Scientific/medical/educational infographic: include named section headers;\nmain diagram with attached component labels; arrows with correct direction and\nstart/end nodes; legends or color keys; short functional captions; key-point\ncards with icon plus meaning; definitions and units; formula box with variable\ndefinitions; and process/system context such as body, lungs, vessels, lab setup,\nmolecule, device, or environment when implied.\n- Charts, graphs, dashboards, and data screens: include chart title when useful,\naxis labels, tick labels or scale endpoints, units, legend entries, colors, data\nmarks, selected states, and values or qualitative endpoints placed consistently\nwith the visual geometry. Even if the chart appears on a photographed stage\nscreen, the screen content still needs readable chart semantics.\n- Product/cultural design board: include title/subtitle/tagline; inspiration or\nuse-case cues; large hero render; motif-specific details; front/back/side or\nscale insets when useful; exploded layers; manufacturable joints, pins, clasps,\nfasteners, seams, ribs, holes, tolerances, or contact points; material stack;\nfinish behavior; dimension labels; palette swatches; specification and craft\nicons.\n- Character card/mascot sheet: include identity/title; name tag; role/profile or\nabout area; full-body readable proportions; attribute rows with icon, label, and\nbrief meaning; props tied to the role; material swatches or callouts; optional\nrating, quote, badge, instruction row, or contextual background so it reads as a\ndesigned card/poster rather than a plain character portrait.\n- UI/web/dashboard/data graphic: include real page/screen sections, navigation,\ncontrols, fields, buttons, cards, selected states, labels, values, icons, and\nintentional empty states only when requested.\n- Public poster/cover/packaging/display graphic: include typography hierarchy,\nheadline/subtitle/supporting copy, image slots, instruction cards, icons, badges,\nborders/rules, QR/barcode/logo placeholders if requested, palette, and intentional\nnegative space. When a poster features sports, products, or people, use one clear\nhero subject per requested category unless the prompt asks for a group.\n\nStyle comes after content. Choose clean isolation for icons/logos/cutouts and\ntechnical assets; layout-rich pages or boards for design communication; believable\nenvironment, lighting, lens, and depth for photographs. Replace abstract mood and\ngeneric adjectives with specific visible cues.\n\nFinal self-check: every input requirement is visible; every major slot has real\ncontent; required text/formulas/values are exact; labels attach to correct\nstructures; arrows and data geometry are coherent; body orientation is explicit relative to the camera and agrees with the preserved scene layout, source, target, depth, gaze, support, and motion; paired panels correspond; subject count has not grown by accident;\nworld knowledge appears as visible evidence; no important surface is blank.\n\nFinal output contract:\nUse the private thinking section to plan the caption and ratio. After thinking,\nthe visible final answer must be exactly one JSON object with exactly these two\nkeys:\n\n{{\"expanded_caption\":\"ONE_DETAILED_ENGLISH_CAPTION\",\"aspect_ratio\":\"ALLOWED_RATIO\"}}\n\nFor example, serialize a caption containing the title \"你好\" as:\n{{\"expanded_caption\":\"The title reads \\\"你好\\\".\",\"aspect_ratio\":\"16:9\"}}\n\nReplace ONE_DETAILED_ENGLISH_CAPTION with one fluent English caption paragraph\nthat follows every rule above, and ALLOWED_RATIO with exactly one allowed ratio\nstring. Keep expanded_caption as one valid JSON string. Every ASCII double quotation mark used as caption content inside expanded_caption must be serialized as the JSON escape sequence \\\". Escape all other characters as valid JSON requires. Do not add or omit keys. Do not put thinking or think tags inside\nthe object. Do not output a Markdown fence, alternatives, or any text outside\nthe final JSON object.\n\ninput_text: {input text}\noutput_text:\n"
2180 ],
2181 "widgets_values_named": {
2182 "value": "You are a caption-expansion and canvas-selection model for still-image\ntext-to-image generation. Rewrite input_text into a natural English detailed\ncaption and choose one aspect ratio for the requested final image. After private\nreasoning, serialize the complete caption and aspect ratio together as the one\nrequired two-key JSON object; no visible analysis, markdown, or self-talk. The\ncaption may be long when the requested image is a complex information or design artifact.\n\nRole: act like an expert visual designer and technical illustrator, not a word\nexpander. Preserve every hard fact from the input, then complete the image with\nvisible, inspectable content. The goal is not more words; the goal is that a\nviewer can inspect each important part of the image and find meaningful subjects,\nlabels, relationships, materials, data, and hierarchy.\n\nFirst choose which kind of image this is:\n- A depicted scene or photograph: prioritize subject identity, pose, contact,\nscale, environment, lighting, lens/medium, and physical plausibility.\n- A communication artifact such as poster, character card, product-design board,\nwebpage, UI, chart, dashboard, scientific/medical infographic, technical diagram,\nprinted page, packaging, cover, or multi-panel composite: build a finished\ninformation architecture, not just a scene containing the requested objects.\n\nAspect-ratio decision policy:\nChoose exactly one of these allowed ratios: 1:1, 5:4, 4:3, 3:2, 16:9, 21:9,\n4:5, 3:4, 2:3, or 9:16. Decide in the following order; earlier evidence\noverrides later evidence.\n\n1. Explicit final canvas\n- Preserve an explicit final-output ratio. Map explicit output pixel dimensions\n by width divided by height to the closest allowed ratio.\n- Do not confuse the final canvas with a source image, reference asset, object,\n inset, collage cell, or embedded screen.\n\n2. Requested deliverable\n- Use an explicitly requested medium or display surface. Treat each carousel\n page, card, or slide as its own canvas unless a contact sheet, storyboard,\n continuous strip, or combined overview is explicitly requested.\n- Prefer square or near-square for individual social posts, icons, avatars,\n compact logos, or compact product assets; vertical for covers, posters, phone\n stories, or mobile wallpapers; horizontal for slides, headers, banners, or\n explicitly wide displays. Do not invent a platform or deliverable.\n\n3. Primary composition\n- The main subject, action, or information structure outweighs optional context.\n A generic room, park, forest, sky, or cinematic background must not turn a\n focused subject horizontal.\n- Prefer vertical for dominant upright or full-body subjects, tall structures,\n stacked information, rising or falling motion, upward reach, or vertical\n negative space. Prefer horizontal for genuinely side-by-side structure,\n lateral action, broadly distributed subjects, a requested broad environment,\n horizontal sequences, or lateral negative space. Prefer square or near-square\n for compact, centered, radial, symmetrical, or directionally neutral content.\n\n4. Minimal completion and ratio strength\n- If the input is underspecified, form the smallest natural, content-preserving\n composition needed to choose a ratio. Lock it before adding detailed scenery\n or styling; do not invent a panorama, broad environment, or multi-panel layout\n to justify it, and do not revise it because later expansion adds detail.\n- Words such as \"portrait,\" \"cinematic,\" \"video,\" \"UE5,\" \"Weta,\"\n \"photorealistic,\" \"dramatic,\" and \"wide-angle\" do not determine orientation.\n- Use 5:4 or 4:5 for mild direction, 4:3 or 3:4 for moderate direction, and\n 3:2 or 2:3 for clear photographic direction. Reserve 16:9 and 9:16 for\n strongly directional or mobile-first compositions, and 21:9 for genuine\n banners, panoramas, timelines, or explicitly continuous wide layouts. When\n evidence remains weak, prefer 1:1 or a moderate ratio.\n\nChoose and lock the ratio from the requested canvas, deliverable, and smallest\nnatural primary composition before enriching the caption. Later details added by\nthe caption-expansion rules must not retroactively change the ratio.\n\nUniversal hard rules:\n1. Preserve exact requested text, named entities, counts, formulas, data values,\ncomponent names, style, medium, orientation, and left/right/top/bottom order.\n2. Required content must be visible, not implied. If text or a label is requested,\nplace it on the surface and describe where it sits.\n3. For active bodies, solve scene geometry before pose detail. Preserve any\ndomain-native layout first: a sport court, game grid, path, lane, stair, room,\nor interface should keep its recognizable structure unless the input changes\nit. Do not move the target or redesign the ground merely to obtain a preferred\nbody view. Choose one camera only after the scene layout is fixed, then place\nthe source and target in that camera's image frame using screen-left/screen-\nright, upper/lower image position, and nearer/farther depth. Silently trace the\nsource-to-target vector in this fixed view. Derive the actor's camera-relative\norientation from that vector and state it explicitly as front-facing, back-\nfacing, left-facing profile, right-facing profile, front three-quarter, or rear\nthree-quarter, together with a frame-absolute motion direction such as leftward,\nrightward, toward the camera/foreground, or away from the camera/deeper into the\nscene. Never use only a target-relative phrase such as \"facing square 2\" or\n\"looking toward the door\". The mapping follows the chosen geometry rather than\na fixed default: a target at screen-right implies a right-facing or rightward\nbody; a target at screen-left implies a left-facing or leftward body; a target\nfarther into the scene implies a back-facing or rear-three-quarter body moving\naway; and a target nearer the camera implies a front-facing or front-three-\nquarter body moving toward the viewer. These are coordinate mappings, not\ninstructions to relocate every target. Verify the visible body surfaces before\nwriting: movement away must show the back, back of the head, or rear shoulders\nand must not show a frontal chest or full face; movement toward the camera must\nshow the face and chest; lateral movement must read as the corresponding side\nprofile. If the stated source/target positions and visible body surfaces imply\nopposite directions, revise the body orientation instead of changing the scene\nlayout. Keep gaze, chest, torso lean, leading limb, support foot or hand, and\nmotion consistent with the derived orientation and with one frozen phase. A\nlimb cannot be simultaneously ahead and behind, planted and airborne, or\nassigned to two contacts. For actions on marked ground, use an elevated high-angle oblique or near-\noverhead three-quarter camera, never a low ground-level view. Center the camera on the complete ground map and make it the dominant, fully\ncontained region of the image: show its outer boundary, every cell or segment,\nthe source, target, and full travel path. After deriving the source-to-target\nvector, place the actor's torso outside the map on the ray extending backward\nfrom the source in the direction opposite the target. Do not move the actor to\nan arbitrary side margin if that would change the apparent travel direction.\nOnly the support foot may enter the near edge of the source cell, leaving its\nlabel visible; place the leading foot in the source-target direction near their\ngap. Keep torso, limbs, hair, clothing, and cast shadow outside every later cell\nand label. Widen or elevate the camera framing rather than rotating the actor or\nrelocating the target. This placement must preserve the previously derived front,\nback, left, right, or three-quarter camera-relative orientation. Preserve conventional topology and perspective, keep every label upright and\nlarge enough to read, and show each requested label exactly once in order. If\nthe input does not specify label colors or materials, use one neutral, uniform,\nhigh-contrast marking style for every label; unspecified styling is not permission\nto assign a different color to each item. Keep the actor's hands empty unless the\ninput names a held object. Do not add loose markers, stones, chalk pieces, buckets,\nropes, toys, shadows, limbs, or cropping over any label or grid line.\nPreserve a plausible silhouette and avoid broken foreshortening, hidden critical\njoints, mirrored layouts, alternative camera choices, and blended before-and-\nafter poses. For emotion-driven photo or video frames, keep facial anatomy\nnatural and consistent with the selected viewpoint.\n4. For hands, grips, linked fingers, hugs, carrying, pointing, tools, weapons, or\nbody-object contact, choose the framing that makes the interaction readable. Use\na medium shot or waist-up view when hand/facial detail is central; do not force a\nfull-body view if it makes the required contact or expression tiny. State which\nhand or limb touches what, how the fingers or support points align, and keep\nnonessential limbs simple.\n5. Use world knowledge as visible evidence only: cultural motifs, scientific\nstructures, medical anatomy, interface conventions, manufacturing details,\nprofessional tools, materials, units, labels, measurement marks, clothing, props,\narchitecture, or environment. Do not add lore that cannot be seen.\n6. Respect requested subject count. If the prompt names event types, two\ncharacters, or one primary subject, keep the number of primary figures to that\nminimum unless extra people are requested. Background crowds, spectators, or\nstaff should read as small silhouettes or graphic texture, not extra competing\nmain subjects.\n\nFor communication artifacts, silently make a content map before writing. Divide\nthe canvas in reading order into major slots: header/title, subtitle/tagline,\nhero visual, left panel, right sidebar, card row, icon group, diagram body,\nprocess path, chart area, formula box, exploded view, inset, specification area,\nswatch strip, instruction cards, footer, screen region, or background context.\nEach major slot should normally include at least three of these: position, visible\ntext or label, concrete visual subject, function or relationship, material/data\ntreatment, and hierarchy/style treatment. Do not use vague slot fillers such as\n\"icons,\" \"details,\" \"information,\" \"supporting graphics,\" or \"annotations\"\nwithout saying what they show.\n\nMake the artifact feel complete. If the prompt asks for a card, board, poster,\ninfographic, webpage, or product sheet, add a few plausible supporting elements\nthat belong to that artifact when they help completeness: subtitle, role/profile,\nabout note, quote, ratings, legend, color key, units, variable definitions,\ndimension labels, back/side view, material stack, use-case icons, footer tips,\nQR/logo placeholder, warning, or compact specification table. Keep these as short\nreadable on-image labels or one-line captions, not prose blocks.\n\nCorrespondence and legibility rules:\n- Multi-view outputs such as floor plan plus interior render, blueprint plus\nproduct render, map plus scene, or before/after panels need a shared inventory\nand coordinate frame. Reuse the same walls, openings, furniture/components,\nmaterials, labels, and relative positions in every panel. Name the render camera\norigin or viewing direction from the plan when useful, and do not invent major\nobjects that are absent from the paired view.\n- Dense flowcharts, medical diagrams, route maps, and process infographics should\nbe simplified into a few large numbered nodes, separated lanes, or a clean\nU-shaped loop. Arrows must be thick, directional, non-crossing, and attached to\nnamed start/end nodes. Prefer legible topology and large labels over many small\nleader lines, tiny arrows, or decorative clutter.\n\nContract affordances:\n- Scientific/medical/educational infographic: include named section headers;\nmain diagram with attached component labels; arrows with correct direction and\nstart/end nodes; legends or color keys; short functional captions; key-point\ncards with icon plus meaning; definitions and units; formula box with variable\ndefinitions; and process/system context such as body, lungs, vessels, lab setup,\nmolecule, device, or environment when implied.\n- Charts, graphs, dashboards, and data screens: include chart title when useful,\naxis labels, tick labels or scale endpoints, units, legend entries, colors, data\nmarks, selected states, and values or qualitative endpoints placed consistently\nwith the visual geometry. Even if the chart appears on a photographed stage\nscreen, the screen content still needs readable chart semantics.\n- Product/cultural design board: include title/subtitle/tagline; inspiration or\nuse-case cues; large hero render; motif-specific details; front/back/side or\nscale insets when useful; exploded layers; manufacturable joints, pins, clasps,\nfasteners, seams, ribs, holes, tolerances, or contact points; material stack;\nfinish behavior; dimension labels; palette swatches; specification and craft\nicons.\n- Character card/mascot sheet: include identity/title; name tag; role/profile or\nabout area; full-body readable proportions; attribute rows with icon, label, and\nbrief meaning; props tied to the role; material swatches or callouts; optional\nrating, quote, badge, instruction row, or contextual background so it reads as a\ndesigned card/poster rather than a plain character portrait.\n- UI/web/dashboard/data graphic: include real page/screen sections, navigation,\ncontrols, fields, buttons, cards, selected states, labels, values, icons, and\nintentional empty states only when requested.\n- Public poster/cover/packaging/display graphic: include typography hierarchy,\nheadline/subtitle/supporting copy, image slots, instruction cards, icons, badges,\nborders/rules, QR/barcode/logo placeholders if requested, palette, and intentional\nnegative space. When a poster features sports, products, or people, use one clear\nhero subject per requested category unless the prompt asks for a group.\n\nStyle comes after content. Choose clean isolation for icons/logos/cutouts and\ntechnical assets; layout-rich pages or boards for design communication; believable\nenvironment, lighting, lens, and depth for photographs. Replace abstract mood and\ngeneric adjectives with specific visible cues.\n\nFinal self-check: every input requirement is visible; every major slot has real\ncontent; required text/formulas/values are exact; labels attach to correct\nstructures; arrows and data geometry are coherent; body orientation is explicit relative to the camera and agrees with the preserved scene layout, source, target, depth, gaze, support, and motion; paired panels correspond; subject count has not grown by accident;\nworld knowledge appears as visible evidence; no important surface is blank.\n\nFinal output contract:\nUse the private thinking section to plan the caption and ratio. After thinking,\nthe visible final answer must be exactly one JSON object with exactly these two\nkeys:\n\n{{\"expanded_caption\":\"ONE_DETAILED_ENGLISH_CAPTION\",\"aspect_ratio\":\"ALLOWED_RATIO\"}}\n\nFor example, serialize a caption containing the title \"你好\" as:\n{{\"expanded_caption\":\"The title reads \\\"你好\\\".\",\"aspect_ratio\":\"16:9\"}}\n\nReplace ONE_DETAILED_ENGLISH_CAPTION with one fluent English caption paragraph\nthat follows every rule above, and ALLOWED_RATIO with exactly one allowed ratio\nstring. Keep expanded_caption as one valid JSON string. Every ASCII double quotation mark used as caption content inside expanded_caption must be serialized as the JSON escape sequence \\\". Escape all other characters as valid JSON requires. Do not add or omit keys. Do not put thinking or think tags inside\nthe object. Do not output a Markdown fence, alternatives, or any text outside\nthe final JSON object.\n\ninput_text: {input text}\noutput_text:\n"
2183 }
2184 },
2185 {
2186 "id": 19,
2187 "type": "StringReplace",
2188 "pos": [
2189 130,
2190 1040
2191 ],
2192 "size": [
2193 400,
2194 200
2195 ],
2196 "flags": {
2197 "collapsed": true
2198 },
2199 "order": 12,
2200 "mode": 0,
2201 "inputs": [
2202 {
2203 "localized_name": "string",
2204 "name": "string",
2205 "type": "STRING",
2206 "widget": {
2207 "name": "string"
2208 },
2209 "link": 19
2210 },
2211 {
2212 "localized_name": "replace",
2213 "name": "replace",
2214 "type": "STRING",
2215 "widget": {
2216 "name": "replace"
2217 },
2218 "link": 32
2219 }
2220 ],
2221 "outputs": [
2222 {
2223 "localized_name": "STRING",
2224 "name": "STRING",
2225 "type": "STRING",
2226 "links": [
2227 20
2228 ]
2229 }
2230 ],
2231 "properties": {
2232 "Node name for S&R": "StringReplace"
2233 },
2234 "widgets_values": [
2235 "",
2236 "{input text}",
2237 ""
2238 ],
2239 "widgets_values_named": {
2240 "string": "",
2241 "find": "{input text}",
2242 "replace": ""
2243 }
2244 },
2245 {
2246 "id": 22,
2247 "type": "ComfySwitchNode",
2248 "pos": [
2249 580,
2250 970
2251 ],
2252 "size": [
2253 270,
2254 80
2255 ],
2256 "flags": [],
2257 "order": 13,
2258 "mode": 0,
2259 "inputs": [
2260 {
2261 "localized_name": "on_false",
2262 "name": "on_false",
2263 "shape": 7,
2264 "type": "STRING",
2265 "link": 33
2266 },
2267 {
2268 "localized_name": "on_true",
2269 "name": "on_true",
2270 "shape": 7,
2271 "type": "STRING",
2272 "link": 48
2273 },
2274 {
2275 "localized_name": "switch",
2276 "name": "switch",
2277 "type": "BOOLEAN",
2278 "widget": {
2279 "name": "switch"
2280 },
2281 "link": 40
2282 }
2283 ],
2284 "outputs": [
2285 {
2286 "localized_name": "output",
2287 "name": "output",
2288 "type": "STRING",
2289 "links": [
2290 27
2291 ]
2292 }
2293 ],
2294 "properties": {
2295 "Node name for S&R": "ComfySwitchNode"
2296 },
2297 "widgets_values": [
2298 false
2299 ],
2300 "widgets_values_named": {
2301 "switch": false
2302 },
2303 "color": "#322",
2304 "bgcolor": "#533"
2305 },
2306 {
2307 "id": 8,
2308 "type": "VAEDecode",
2309 "pos": [
2310 1520,
2311 -250
2312 ],
2313 "size": [
2314 210,
2315 50
2316 ],
2317 "flags": [],
2318 "order": 8,
2319 "mode": 0,
2320 "inputs": [
2321 {
2322 "localized_name": "samples",
2323 "name": "samples",
2324 "type": "LATENT",
2325 "link": 9
2326 },
2327 {
2328 "localized_name": "vae",
2329 "name": "vae",
2330 "type": "VAE",
2331 "link": 10
2332 }
2333 ],
2334 "outputs": [
2335 {
2336 "localized_name": "IMAGE",
2337 "name": "IMAGE",
2338 "type": "IMAGE",
2339 "links": [
2340 11
2341 ]
2342 }
2343 ],
2344 "properties": {
2345 "Node name for S&R": "VAEDecode"
2346 }
2347 },
2348 {
2349 "id": 24,
2350 "type": "PrimitiveStringMultiline",
2351 "pos": [
2352 -720,
2353 410
2354 ],
2355 "size": [
2356 460,
2357 580
2358 ],
2359 "flags": [],
2360 "order": 14,
2361 "mode": 0,
2362 "inputs": [
2363 {
2364 "localized_name": "value",
2365 "name": "value",
2366 "type": "STRING",
2367 "widget": {
2368 "name": "value"
2369 },
2370 "link": 35
2371 }
2372 ],
2373 "outputs": [
2374 {
2375 "localized_name": "STRING",
2376 "name": "STRING",
2377 "type": "STRING",
2378 "links": [
2379 32,
2380 33
2381 ]
2382 }
2383 ],
2384 "title": "Text (user_prompt)",
2385 "properties": {
2386 "Node name for S&R": "PrimitiveStringMultiline"
2387 },
2388 "widgets_values": [
2389 ""
2390 ],
2391 "widgets_values_named": {
2392 "value": ""
2393 },
2394 "color": "#232",
2395 "bgcolor": "#353"
2396 },
2397 {
2398 "id": 26,
2399 "type": "JsonExtractString",
2400 "pos": [
2401 610,
2402 910
2403 ],
2404 "size": [
2405 410,
2406 200
2407 ],
2408 "flags": {
2409 "collapsed": true
2410 },
2411 "order": 15,
2412 "mode": 0,
2413 "inputs": [
2414 {
2415 "localized_name": "json_string",
2416 "name": "json_string",
2417 "type": "STRING",
2418 "widget": {
2419 "name": "json_string"
2420 },
2421 "link": 47
2422 }
2423 ],
2424 "outputs": [
2425 {
2426 "localized_name": "STRING",
2427 "name": "STRING",
2428 "type": "STRING",
2429 "links": [
2430 48
2431 ]
2432 }
2433 ],
2434 "properties": {
2435 "Node name for S&R": "JsonExtractString"
2436 },
2437 "widgets_values": [
2438 "",
2439 "expanded_caption"
2440 ],
2441 "widgets_values_named": {
2442 "json_string": "",
2443 "key": "expanded_caption"
2444 }
2445 }
2446 ],
2447 "groups": [
2448 {
2449 "id": 1,
2450 "title": "Group",
2451 "bounding": [
2452 -210,
2453 -340,
2454 650,
2455 620
2456 ],
2457 "color": "#3f789e",
2458 "flags": []
2459 },
2460 {
2461 "id": 2,
2462 "title": "Group",
2463 "bounding": [
2464 470,
2465 -340,
2466 580,
2467 620
2468 ],
2469 "color": "#3f789e",
2470 "flags": []
2471 },
2472 {
2473 "id": 3,
2474 "title": "Sampling",
2475 "bounding": [
2476 1080,
2477 -340,
2478 410,
2479 620
2480 ],
2481 "color": "#3f789e",
2482 "flags": []
2483 },
2484 {
2485 "id": 4,
2486 "title": "Prompt Enhancer",
2487 "bounding": [
2488 -210,
2489 310,
2490 1700,
2491 790
2492 ],
2493 "color": "#444",
2494 "flags": []
2495 },
2496 {
2497 "id": 5,
2498 "title": "User Prompt",
2499 "bounding": [
2500 -750,
2501 310,
2502 510,
2503 790
2504 ],
2505 "color": "#3f789e",
2506 "flags": []
2507 }
2508 ],
2509 "links": [
2510 {
2511 "id": 1,
2512 "origin_id": 2,
2513 "origin_slot": 0,
2514 "target_id": 5,
2515 "target_slot": 0,
2516 "type": "CLIP"
2517 },
2518 {
2519 "id": 2,
2520 "origin_id": 3,
2521 "origin_slot": 0,
2522 "target_id": 5,
2523 "target_slot": 1,
2524 "type": "VAE"
2525 },
2526 {
2527 "id": 28,
2528 "origin_id": 18,
2529 "origin_slot": 0,
2530 "target_id": 5,
2531 "target_slot": 3,
2532 "type": "STRING"
2533 },
2534 {
2535 "id": 4,
2536 "origin_id": 5,
2537 "origin_slot": 0,
2538 "target_id": 6,
2539 "target_slot": 0,
2540 "type": "CONDITIONING"
2541 },
2542 {
2543 "id": 27,
2544 "origin_id": 22,
2545 "origin_slot": 0,
2546 "target_id": 18,
2547 "target_slot": 0,
2548 "type": "STRING"
2549 },
2550 {
2551 "id": 5,
2552 "origin_id": 1,
2553 "origin_slot": 0,
2554 "target_id": 7,
2555 "target_slot": 0,
2556 "type": "MODEL"
2557 },
2558 {
2559 "id": 6,
2560 "origin_id": 5,
2561 "origin_slot": 0,
2562 "target_id": 7,
2563 "target_slot": 1,
2564 "type": "CONDITIONING"
2565 },
2566 {
2567 "id": 7,
2568 "origin_id": 6,
2569 "origin_slot": 0,
2570 "target_id": 7,
2571 "target_slot": 2,
2572 "type": "CONDITIONING"
2573 },
2574 {
2575 "id": 8,
2576 "origin_id": 5,
2577 "origin_slot": 1,
2578 "target_id": 7,
2579 "target_slot": 3,
2580 "type": "LATENT"
2581 },
2582 {
2583 "id": 19,
2584 "origin_id": 20,
2585 "origin_slot": 0,
2586 "target_id": 19,
2587 "target_slot": 0,
2588 "type": "STRING"
2589 },
2590 {
2591 "id": 9,
2592 "origin_id": 7,
2593 "origin_slot": 0,
2594 "target_id": 8,
2595 "target_slot": 0,
2596 "type": "LATENT"
2597 },
2598 {
2599 "id": 10,
2600 "origin_id": 3,
2601 "origin_slot": 0,
2602 "target_id": 8,
2603 "target_slot": 1,
2604 "type": "VAE"
2605 },
2606 {
2607 "id": 11,
2608 "origin_id": 8,
2609 "origin_slot": 0,
2610 "target_id": -20,
2611 "target_slot": 0,
2612 "type": "IMAGE"
2613 },
2614 {
2615 "id": 33,
2616 "origin_id": 24,
2617 "origin_slot": 0,
2618 "target_id": 22,
2619 "target_slot": 0,
2620 "type": "STRING"
2621 },
2622 {
2623 "id": 35,
2624 "origin_id": -10,
2625 "origin_slot": 0,
2626 "target_id": 24,
2627 "target_slot": 0,
2628 "type": "STRING"
2629 },
2630 {
2631 "id": 40,
2632 "origin_id": -10,
2633 "origin_slot": 1,
2634 "target_id": 22,
2635 "target_slot": 2,
2636 "type": "BOOLEAN"
2637 },
2638 {
2639 "id": 31,
2640 "origin_id": -10,
2641 "origin_slot": 2,
2642 "target_id": 7,
2643 "target_slot": 4,
2644 "type": "INT"
2645 },
2646 {
2647 "id": 36,
2648 "origin_id": -10,
2649 "origin_slot": 3,
2650 "target_id": 5,
2651 "target_slot": 4,
2652 "type": "INT"
2653 },
2654 {
2655 "id": 37,
2656 "origin_id": -10,
2657 "origin_slot": 4,
2658 "target_id": 5,
2659 "target_slot": 5,
2660 "type": "INT"
2661 },
2662 {
2663 "id": 43,
2664 "origin_id": -10,
2665 "origin_slot": 7,
2666 "target_id": 1,
2667 "target_slot": 0,
2668 "type": "COMBO"
2669 },
2670 {
2671 "id": 44,
2672 "origin_id": -10,
2673 "origin_slot": 8,
2674 "target_id": 2,
2675 "target_slot": 0,
2676 "type": "COMBO"
2677 },
2678 {
2679 "id": 45,
2680 "origin_id": -10,
2681 "origin_slot": 9,
2682 "target_id": 3,
2683 "target_slot": 0,
2684 "type": "COMBO"
2685 },
2686 {
2687 "id": 46,
2688 "origin_id": -10,
2689 "origin_slot": 10,
2690 "target_id": 16,
2691 "target_slot": 0,
2692 "type": "COMBO"
2693 },
2694 {
2695 "id": 47,
2696 "origin_id": 15,
2697 "origin_slot": 0,
2698 "target_id": 26,
2699 "target_slot": 0,
2700 "type": "STRING"
2701 },
2702 {
2703 "id": 48,
2704 "origin_id": 26,
2705 "origin_slot": 0,
2706 "target_id": 22,
2707 "target_slot": 1,
2708 "type": "STRING"
2709 },
2710 {
2711 "id": 38,
2712 "origin_id": -10,
2713 "origin_slot": 5,
2714 "target_id": 7,
2715 "target_slot": 5,
2716 "type": "COMBO"
2717 },
2718 {
2719 "id": 39,
2720 "origin_id": -10,
2721 "origin_slot": 6,
2722 "target_id": 7,
2723 "target_slot": 6,
2724 "type": "COMBO"
2725 },
2726 {
2727 "id": 32,
2728 "origin_id": 24,
2729 "origin_slot": 0,
2730 "target_id": 19,
2731 "target_slot": 1,
2732 "type": "STRING"
2733 },
2734 {
2735 "id": 15,
2736 "origin_id": 16,
2737 "origin_slot": 0,
2738 "target_id": 15,
2739 "target_slot": 0,
2740 "type": "CLIP"
2741 },
2742 {
2743 "id": 16,
2744 "origin_id": 17,
2745 "origin_slot": 0,
2746 "target_id": 15,
2747 "target_slot": 4,
2748 "type": "STRING"
2749 },
2750 {
2751 "id": 20,
2752 "origin_id": 19,
2753 "origin_slot": 0,
2754 "target_id": 15,
2755 "target_slot": 5,
2756 "type": "STRING"
2757 }
2758 ],
2759 "extra": []
2760 },
2761 {
2762 "id": "40e68d98-f24c-42b4-afa8-919a414db062",
2763 "version": 1,
2764 "state": {
2765 "lastGroupId": 57,
2766 "lastNodeId": 992,
2767 "lastLinkId": 9292,
2768 "lastRerouteId": 9
2769 },
2770 "revision": 0,
2771 "config": [],
2772 "name": "Auto size or not",
2773 "inputNode": {
2774 "id": -10,
2775 "bounding": [
2776 3393.479641756882,
2777 2478.339536051185,
2778 128,
2779 128
2780 ]
2781 },
2782 "outputNode": {
2783 "id": -20,
2784 "bounding": [
2785 6870.496656212685,
2786 2280.277890577608,
2787 128,
2788 128
2789 ]
2790 },
2791 "inputs": [
2792 {
2793 "id": "d0d16f2d-1d79-408a-abb6-16429e2df8ad",
2794 "name": "value",
2795 "type": "BOOLEAN",
2796 "linkIds": [
2797 9232
2798 ],
2799 "pos": [
2800 3497.479641756882,
2801 2502.339536051185
2802 ]
2803 },
2804 {
2805 "id": "ed8a8b79-22c2-4290-b43a-d3736c568b4d",
2806 "name": "width",
2807 "type": "INT",
2808 "linkIds": [
2809 9230,
2810 9234,
2811 9159
2812 ],
2813 "pos": [
2814 3497.479641756882,
2815 2522.339536051185
2816 ]
2817 },
2818 {
2819 "id": "199b60da-b864-48b6-a59d-425f1bc3cd36",
2820 "name": "height",
2821 "type": "INT",
2822 "linkIds": [
2823 9231,
2824 9235,
2825 9160
2826 ],
2827 "pos": [
2828 3497.479641756882,
2829 2542.339536051185
2830 ]
2831 },
2832 {
2833 "id": "99fcdb7b-d41f-4e3c-aa24-b11ecd66a4b1",
2834 "name": "image",
2835 "type": "IMAGE",
2836 "linkIds": [
2837 9236,
2838 9239,
2839 9157,
2840 9158
2841 ],
2842 "pos": [
2843 3497.479641756882,
2844 2562.339536051185
2845 ]
2846 }
2847 ],
2848 "outputs": [
2849 {
2850 "id": "c59dcb51-cbd5-488e-8f6b-5c10eb7ae09d",
2851 "name": "output",
2852 "type": "INT",
2853 "linkIds": [
2854 9240
2855 ],
2856 "label": "width",
2857 "pos": [
2858 6894.496656212685,
2859 2304.277890577608
2860 ]
2861 },
2862 {
2863 "id": "56923eb7-6472-4a8c-9d4c-9128e57fcc32",
2864 "name": "output_1",
2865 "type": "INT",
2866 "linkIds": [
2867 9233
2868 ],
2869 "label": "height",
2870 "pos": [
2871 6894.496656212685,
2872 2324.277890577608
2873 ]
2874 },
2875 {
2876 "id": "56df485d-2592-4e22-8eed-ba4b3599c524",
2877 "name": "output_2",
2878 "type": "IMAGE",
2879 "linkIds": [
2880 9162
2881 ],
2882 "label": "image",
2883 "pos": [
2884 6894.496656212685,
2885 2344.277890577608
2886 ]
2887 },
2888 {
2889 "id": "cf00d777-545e-44a9-9625-8a6d23138d39",
2890 "name": "BOOLEAN",
2891 "type": "BOOLEAN",
2892 "linkIds": [
2893 9268
2894 ],
2895 "pos": [
2896 6894.496656212685,
2897 2364.277890577608
2898 ]
2899 }
2900 ],
2901 "widgets": [],
2902 "nodes": [
2903 {
2904 "id": 960,
2905 "type": "EmptyLatentImage",
2906 "pos": [
2907 3907.546328764366,
2908 2121.2587028661364
2909 ],
2910 "size": [
2911 310,
2912 150
2913 ],
2914 "flags": [],
2915 "order": 3,
2916 "mode": 0,
2917 "inputs": [
2918 {
2919 "localized_name": "width",
2920 "name": "width",
2921 "type": "INT",
2922 "widget": {
2923 "name": "width"
2924 },
2925 "link": 9230
2926 },
2927 {
2928 "localized_name": "height",
2929 "name": "height",
2930 "type": "INT",
2931 "widget": {
2932 "name": "height"
2933 },
2934 "link": 9231
2935 }
2936 ],
2937 "outputs": [
2938 {
2939 "localized_name": "LATENT",
2940 "name": "LATENT",
2941 "type": "LATENT",
2942 "links": []
2943 }
2944 ],
2945 "properties": {
2946 "Node name for S&R": "EmptyLatentImage",
2947 "cnr_id": "comfy-core",
2948 "ver": "0.3.40",
2949 "enableTabs": false,
2950 "tabWidth": 65,
2951 "tabXOffset": 10,
2952 "hasSecondTab": false,
2953 "secondTabText": "Send Back",
2954 "secondTabOffset": 80,
2955 "secondTabWidth": 65
2956 },
2957 "widgets_values": [
2958 1024,
2959 1280,
2960 1
2961 ],
2962 "widgets_values_named": {
2963 "width": 1024,
2964 "height": 1280,
2965 "batch_size": 1
2966 }
2967 },
2968 {
2969 "id": 961,
2970 "type": "ComfySwitchNode",
2971 "pos": [
2972 6397.730385400192,
2973 2101.479362013507
2974 ],
2975 "size": [
2976 270,
2977 106
2978 ],
2979 "flags": [],
2980 "order": 4,
2981 "mode": 0,
2982 "inputs": [
2983 {
2984 "localized_name": "on_false",
2985 "name": "on_false",
2986 "shape": 7,
2987 "type": "INT",
2988 "link": 9234
2989 },
2990 {
2991 "localized_name": "on_true",
2992 "name": "on_true",
2993 "shape": 7,
2994 "type": "INT",
2995 "link": 9245
2996 },
2997 {
2998 "localized_name": "switch",
2999 "name": "switch",
3000 "type": "BOOLEAN",
3001 "widget": {
3002 "name": "switch"
3003 },
3004 "link": 9228
3005 }
3006 ],
3007 "outputs": [
3008 {
3009 "localized_name": "output",
3010 "name": "output",
3011 "type": "INT",
3012 "links": [
3013 9240
3014 ]
3015 }
3016 ],
3017 "title": "Commutateur largeur",
3018 "properties": {
3019 "Node name for S&R": "ComfySwitchNode"
3020 },
3021 "widgets_values": [
3022 false
3023 ],
3024 "widgets_values_named": {
3025 "switch": false
3026 }
3027 },
3028 {
3029 "id": 962,
3030 "type": "PrimitiveBoolean",
3031 "pos": [
3032 4149.263580508374,
3033 2366.2477630278468
3034 ],
3035 "size": [
3036 270,
3037 80
3038 ],
3039 "flags": [],
3040 "order": 5,
3041 "mode": 0,
3042 "inputs": [
3043 {
3044 "label": "image auto",
3045 "localized_name": "value",
3046 "name": "value",
3047 "type": "BOOLEAN",
3048 "widget": {
3049 "name": "value"
3050 },
3051 "link": 9232
3052 }
3053 ],
3054 "outputs": [
3055 {
3056 "localized_name": "BOOLEAN",
3057 "name": "BOOLEAN",
3058 "type": "BOOLEAN",
3059 "links": [
3060 9156,
3061 9228,
3062 9229,
3063 9268
3064 ]
3065 }
3066 ],
3067 "title": "Auto size",
3068 "properties": {
3069 "Node name for S&R": "PrimitiveBoolean"
3070 },
3071 "widgets_values": [
3072 true
3073 ],
3074 "widgets_values_named": {
3075 "value": true
3076 }
3077 },
3078 {
3079 "id": 963,
3080 "type": "ImageScale",
3081 "pos": [
3082 3690.6923769656446,
3083 2695.0628026826103
3084 ],
3085 "size": [
3086 321.359375,
3087 146
3088 ],
3089 "flags": [],
3090 "order": 6,
3091 "mode": 0,
3092 "inputs": [
3093 {
3094 "localized_name": "image",
3095 "name": "image",
3096 "type": "IMAGE",
3097 "link": 9236
3098 },
3099 {
3100 "localized_name": "height",
3101 "name": "height",
3102 "type": "INT",
3103 "widget": {
3104 "name": "height"
3105 },
3106 "link": 9247
3107 }
3108 ],
3109 "outputs": [
3110 {
3111 "localized_name": "IMAGE",
3112 "name": "IMAGE",
3113 "type": "IMAGE",
3114 "links": [
3115 1829
3116 ]
3117 }
3118 ],
3119 "properties": {
3120 "Node name for S&R": "ImageScale"
3121 },
3122 "widgets_values": [
3123 "bicubic",
3124 0,
3125 0,
3126 "disabled"
3127 ],
3128 "widgets_values_named": {
3129 "upscale_method": "bicubic",
3130 "width": 0,
3131 "height": 0,
3132 "crop": "disabled"
3133 }
3134 },
3135 {
3136 "id": 964,
3137 "type": "ComfySwitchNode",
3138 "pos": [
3139 6404.909583495732,
3140 2464.242012448599
3141 ],
3142 "size": [
3143 270,
3144 106
3145 ],
3146 "flags": [],
3147 "order": 7,
3148 "mode": 0,
3149 "inputs": [
3150 {
3151 "localized_name": "on_false",
3152 "name": "on_false",
3153 "shape": 7,
3154 "type": "INT",
3155 "link": 9235
3156 },
3157 {
3158 "localized_name": "on_true",
3159 "name": "on_true",
3160 "shape": 7,
3161 "type": "INT",
3162 "link": 9246
3163 },
3164 {
3165 "localized_name": "switch",
3166 "name": "switch",
3167 "type": "BOOLEAN",
3168 "widget": {
3169 "name": "switch"
3170 },
3171 "link": 9229
3172 }
3173 ],
3174 "outputs": [
3175 {
3176 "localized_name": "output",
3177 "name": "output",
3178 "type": "INT",
3179 "links": [
3180 9233
3181 ]
3182 }
3183 ],
3184 "title": "Commutateur hauteur",
3185 "properties": {
3186 "Node name for S&R": "ComfySwitchNode"
3187 },
3188 "widgets_values": [
3189 false
3190 ],
3191 "widgets_values_named": {
3192 "switch": false
3193 }
3194 },
3195 {
3196 "id": 965,
3197 "type": "GetImageSize",
3198 "pos": [
3199 4046.393314182521,
3200 2743.1429969029537
3201 ],
3202 "size": [
3203 225,
3204 124
3205 ],
3206 "flags": [],
3207 "order": 8,
3208 "mode": 0,
3209 "inputs": [
3210 {
3211 "localized_name": "image",
3212 "name": "image",
3213 "type": "IMAGE",
3214 "link": 1829
3215 }
3216 ],
3217 "outputs": [
3218 {
3219 "localized_name": "width",
3220 "name": "width",
3221 "type": "INT",
3222 "links": [
3223 9238
3224 ]
3225 },
3226 {
3227 "localized_name": "height",
3228 "name": "height",
3229 "type": "INT",
3230 "links": [
3231 9242
3232 ]
3233 },
3234 {
3235 "localized_name": "batch_size",
3236 "name": "batch_size",
3237 "type": "INT",
3238 "links": null
3239 }
3240 ],
3241 "properties": {
3242 "Node name for S&R": "GetImageSize"
3243 }
3244 },
3245 {
3246 "id": 966,
3247 "type": "ComfyMathExpression",
3248 "pos": [
3249 4053.8350602666796,
3250 3070.7748999154155
3251 ],
3252 "size": [
3253 400,
3254 200
3255 ],
3256 "flags": [],
3257 "order": 9,
3258 "mode": 0,
3259 "inputs": [
3260 {
3261 "label": "a",
3262 "localized_name": "a",
3263 "name": "values.a",
3264 "type": "FLOAT,INT,BOOLEAN",
3265 "link": 9248
3266 },
3267 {
3268 "localized_name": "b",
3269 "name": "values.b",
3270 "shape": 7,
3271 "type": "FLOAT,INT,BOOLEAN",
3272 "link": 9249
3273 },
3274 {
3275 "localized_name": "c",
3276 "name": "values.c",
3277 "shape": 7,
3278 "type": "FLOAT,INT,BOOLEAN",
3279 "link": null
3280 }
3281 ],
3282 "outputs": [
3283 {
3284 "localized_name": "FLOAT",
3285 "name": "FLOAT",
3286 "type": "FLOAT",
3287 "links": null
3288 },
3289 {
3290 "localized_name": "INT",
3291 "name": "INT",
3292 "type": "INT",
3293 "links": null
3294 },
3295 {
3296 "localized_name": "BOOL",
3297 "name": "BOOL",
3298 "type": "BOOLEAN",
3299 "links": [
3300 9237,
3301 9241
3302 ]
3303 }
3304 ],
3305 "properties": {
3306 "Node name for S&R": "ComfyMathExpression"
3307 },
3308 "widgets_values": [
3309 "a > b"
3310 ],
3311 "widgets_values_named": {
3312 "expression": "a > b"
3313 }
3314 },
3315 {
3316 "id": 967,
3317 "type": "ComfySwitchNode",
3318 "pos": [
3319 4436.916174114684,
3320 2713.794183382037
3321 ],
3322 "size": [
3323 270,
3324 106
3325 ],
3326 "flags": [],
3327 "order": 10,
3328 "mode": 0,
3329 "inputs": [
3330 {
3331 "localized_name": "on_false",
3332 "name": "on_false",
3333 "shape": 7,
3334 "type": "INT",
3335 "link": 9243
3336 },
3337 {
3338 "localized_name": "on_true",
3339 "name": "on_true",
3340 "shape": 7,
3341 "type": "INT",
3342 "link": 9238
3343 },
3344 {
3345 "localized_name": "switch",
3346 "name": "switch",
3347 "type": "BOOLEAN",
3348 "widget": {
3349 "name": "switch"
3350 },
3351 "link": 9237
3352 }
3353 ],
3354 "outputs": [
3355 {
3356 "localized_name": "output",
3357 "name": "output",
3358 "type": "INT",
3359 "links": [
3360 9245
3361 ]
3362 }
3363 ],
3364 "title": "Commutateur largeur",
3365 "properties": {
3366 "Node name for S&R": "ComfySwitchNode"
3367 },
3368 "widgets_values": [
3369 false
3370 ],
3371 "widgets_values_named": {
3372 "switch": false
3373 }
3374 },
3375 {
3376 "id": 968,
3377 "type": "GetImageSize",
3378 "pos": [
3379 3742.951427215483,
3380 2938.9538231395627
3381 ],
3382 "size": [
3383 225,
3384 124
3385 ],
3386 "flags": [],
3387 "order": 11,
3388 "mode": 0,
3389 "inputs": [
3390 {
3391 "localized_name": "image",
3392 "name": "image",
3393 "type": "IMAGE",
3394 "link": 9239
3395 }
3396 ],
3397 "outputs": [
3398 {
3399 "localized_name": "width",
3400 "name": "width",
3401 "type": "INT",
3402 "links": [
3403 9243
3404 ]
3405 },
3406 {
3407 "localized_name": "height",
3408 "name": "height",
3409 "type": "INT",
3410 "links": [
3411 9244,
3412 9248
3413 ]
3414 },
3415 {
3416 "localized_name": "batch_size",
3417 "name": "batch_size",
3418 "type": "INT",
3419 "links": null
3420 }
3421 ],
3422 "properties": {
3423 "Node name for S&R": "GetImageSize"
3424 }
3425 },
3426 {
3427 "id": 969,
3428 "type": "ComfySwitchNode",
3429 "pos": [
3430 4540.580552240042,
3431 2990.9034383399976
3432 ],
3433 "size": [
3434 270,
3435 106
3436 ],
3437 "flags": [],
3438 "order": 12,
3439 "mode": 0,
3440 "inputs": [
3441 {
3442 "localized_name": "on_false",
3443 "name": "on_false",
3444 "shape": 7,
3445 "type": "INT",
3446 "link": 9244
3447 },
3448 {
3449 "localized_name": "on_true",
3450 "name": "on_true",
3451 "shape": 7,
3452 "type": "INT",
3453 "link": 9242
3454 },
3455 {
3456 "localized_name": "switch",
3457 "name": "switch",
3458 "type": "BOOLEAN",
3459 "widget": {
3460 "name": "switch"
3461 },
3462 "link": 9241
3463 }
3464 ],
3465 "outputs": [
3466 {
3467 "localized_name": "output",
3468 "name": "output",
3469 "type": "INT",
3470 "links": [
3471 9246
3472 ]
3473 }
3474 ],
3475 "title": "Commutateur hauteur",
3476 "properties": {
3477 "Node name for S&R": "ComfySwitchNode"
3478 },
3479 "widgets_values": [
3480 false
3481 ],
3482 "widgets_values_named": {
3483 "switch": false
3484 }
3485 },
3486 {
3487 "id": 970,
3488 "type": "PrimitiveInt",
3489 "pos": [
3490 3384.374182418161,
3491 2799.6658981485443
3492 ],
3493 "size": [
3494 270,
3495 82
3496 ],
3497 "flags": [],
3498 "order": 0,
3499 "mode": 0,
3500 "inputs": [],
3501 "outputs": [
3502 {
3503 "localized_name": "INT",
3504 "name": "INT",
3505 "type": "INT",
3506 "links": [
3507 9247,
3508 9249
3509 ]
3510 }
3511 ],
3512 "title": "Max keight",
3513 "properties": {
3514 "Node name for S&R": "PrimitiveInt"
3515 },
3516 "widgets_values": [
3517 0,
3518 "fixed"
3519 ],
3520 "widgets_values_named": {
3521 "value": 0,
3522 "control_after_generate": "fixed"
3523 }
3524 },
3525 {
3526 "id": 861,
3527 "type": "ComfySwitchNode",
3528 "pos": [
3529 6261.984478702847,
3530 2293.2733341001885
3531 ],
3532 "size": [
3533 270,
3534 106
3535 ],
3536 "flags": [],
3537 "order": 1,
3538 "mode": 0,
3539 "inputs": [
3540 {
3541 "localized_name": "on_false",
3542 "name": "on_false",
3543 "shape": 7,
3544 "type": "IMAGE",
3545 "link": 9161
3546 },
3547 {
3548 "localized_name": "on_true",
3549 "name": "on_true",
3550 "shape": 7,
3551 "type": "IMAGE",
3552 "link": 9157
3553 },
3554 {
3555 "localized_name": "switch",
3556 "name": "switch",
3557 "type": "BOOLEAN",
3558 "widget": {
3559 "name": "switch"
3560 },
3561 "link": 9156
3562 }
3563 ],
3564 "outputs": [
3565 {
3566 "localized_name": "output",
3567 "name": "output",
3568 "type": "IMAGE",
3569 "links": [
3570 9162
3571 ]
3572 }
3573 ],
3574 "title": "Commutateur largeur",
3575 "properties": {
3576 "Node name for S&R": "ComfySwitchNode"
3577 },
3578 "widgets_values": [
3579 false
3580 ],
3581 "widgets_values_named": {
3582 "switch": false
3583 }
3584 },
3585 {
3586 "id": 862,
3587 "type": "ImageScale",
3588 "pos": [
3589 3998.615313411293,
3590 2494.659084064173
3591 ],
3592 "size": [
3593 321.359375,
3594 146
3595 ],
3596 "flags": [],
3597 "order": 2,
3598 "mode": 0,
3599 "inputs": [
3600 {
3601 "localized_name": "image",
3602 "name": "image",
3603 "type": "IMAGE",
3604 "link": 9158
3605 },
3606 {
3607 "localized_name": "width",
3608 "name": "width",
3609 "type": "INT",
3610 "widget": {
3611 "name": "width"
3612 },
3613 "link": 9159
3614 },
3615 {
3616 "localized_name": "height",
3617 "name": "height",
3618 "type": "INT",
3619 "widget": {
3620 "name": "height"
3621 },
3622 "link": 9160
3623 }
3624 ],
3625 "outputs": [
3626 {
3627 "localized_name": "IMAGE",
3628 "name": "IMAGE",
3629 "type": "IMAGE",
3630 "links": [
3631 9161
3632 ]
3633 }
3634 ],
3635 "properties": {
3636 "Node name for S&R": "ImageScale"
3637 },
3638 "widgets_values": [
3639 "bicubic",
3640 0,
3641 0,
3642 "disabled"
3643 ],
3644 "widgets_values_named": {
3645 "upscale_method": "bicubic",
3646 "width": 0,
3647 "height": 0,
3648 "crop": "disabled"
3649 }
3650 }
3651 ],
3652 "groups": [],
3653 "links": [
3654 {
3655 "id": 9228,
3656 "origin_id": 962,
3657 "origin_slot": 0,
3658 "target_id": 961,
3659 "target_slot": 2,
3660 "type": "BOOLEAN"
3661 },
3662 {
3663 "id": 9229,
3664 "origin_id": 962,
3665 "origin_slot": 0,
3666 "target_id": 964,
3667 "target_slot": 2,
3668 "type": "BOOLEAN"
3669 },
3670 {
3671 "id": 9230,
3672 "origin_id": -10,
3673 "origin_slot": 1,
3674 "target_id": 960,
3675 "target_slot": 0,
3676 "type": "INT"
3677 },
3678 {
3679 "id": 9231,
3680 "origin_id": -10,
3681 "origin_slot": 2,
3682 "target_id": 960,
3683 "target_slot": 1,
3684 "type": "INT"
3685 },
3686 {
3687 "id": 9232,
3688 "origin_id": -10,
3689 "origin_slot": 0,
3690 "target_id": 962,
3691 "target_slot": 0,
3692 "type": "BOOLEAN"
3693 },
3694 {
3695 "id": 9233,
3696 "origin_id": 964,
3697 "origin_slot": 0,
3698 "target_id": -20,
3699 "target_slot": 1,
3700 "type": "INT"
3701 },
3702 {
3703 "id": 9234,
3704 "origin_id": -10,
3705 "origin_slot": 1,
3706 "target_id": 961,
3707 "target_slot": 0,
3708 "type": "INT"
3709 },
3710 {
3711 "id": 9235,
3712 "origin_id": -10,
3713 "origin_slot": 2,
3714 "target_id": 964,
3715 "target_slot": 0,
3716 "type": "INT"
3717 },
3718 {
3719 "id": 9236,
3720 "origin_id": -10,
3721 "origin_slot": 3,
3722 "target_id": 963,
3723 "target_slot": 0,
3724 "type": "IMAGE"
3725 },
3726 {
3727 "id": 1829,
3728 "origin_id": 963,
3729 "origin_slot": 0,
3730 "target_id": 965,
3731 "target_slot": 0,
3732 "type": "IMAGE"
3733 },
3734 {
3735 "id": 9237,
3736 "origin_id": 966,
3737 "origin_slot": 2,
3738 "target_id": 967,
3739 "target_slot": 2,
3740 "type": "BOOLEAN"
3741 },
3742 {
3743 "id": 9238,
3744 "origin_id": 965,
3745 "origin_slot": 0,
3746 "target_id": 967,
3747 "target_slot": 1,
3748 "type": "INT"
3749 },
3750 {
3751 "id": 9239,
3752 "origin_id": -10,
3753 "origin_slot": 3,
3754 "target_id": 968,
3755 "target_slot": 0,
3756 "type": "IMAGE"
3757 },
3758 {
3759 "id": 9240,
3760 "origin_id": 961,
3761 "origin_slot": 0,
3762 "target_id": -20,
3763 "target_slot": 0,
3764 "type": "INT"
3765 },
3766 {
3767 "id": 9241,
3768 "origin_id": 966,
3769 "origin_slot": 2,
3770 "target_id": 969,
3771 "target_slot": 2,
3772 "type": "BOOLEAN"
3773 },
3774 {
3775 "id": 9242,
3776 "origin_id": 965,
3777 "origin_slot": 1,
3778 "target_id": 969,
3779 "target_slot": 1,
3780 "type": "INT"
3781 },
3782 {
3783 "id": 9243,
3784 "origin_id": 968,
3785 "origin_slot": 0,
3786 "target_id": 967,
3787 "target_slot": 0,
3788 "type": "INT"
3789 },
3790 {
3791 "id": 9244,
3792 "origin_id": 968,
3793 "origin_slot": 1,
3794 "target_id": 969,
3795 "target_slot": 0,
3796 "type": "INT"
3797 },
3798 {
3799 "id": 9245,
3800 "origin_id": 967,
3801 "origin_slot": 0,
3802 "target_id": 961,
3803 "target_slot": 1,
3804 "type": "INT"
3805 },
3806 {
3807 "id": 9246,
3808 "origin_id": 969,
3809 "origin_slot": 0,
3810 "target_id": 964,
3811 "target_slot": 1,
3812 "type": "INT"
3813 },
3814 {
3815 "id": 9247,
3816 "origin_id": 970,
3817 "origin_slot": 0,
3818 "target_id": 963,
3819 "target_slot": 1,
3820 "type": "INT"
3821 },
3822 {
3823 "id": 9156,
3824 "origin_id": 962,
3825 "origin_slot": 0,
3826 "target_id": 861,
3827 "target_slot": 2,
3828 "type": "BOOLEAN"
3829 },
3830 {
3831 "id": 9157,
3832 "origin_id": -10,
3833 "origin_slot": 3,
3834 "target_id": 861,
3835 "target_slot": 1,
3836 "type": "IMAGE"
3837 },
3838 {
3839 "id": 9158,
3840 "origin_id": -10,
3841 "origin_slot": 3,
3842 "target_id": 862,
3843 "target_slot": 0,
3844 "type": "IMAGE"
3845 },
3846 {
3847 "id": 9159,
3848 "origin_id": -10,
3849 "origin_slot": 1,
3850 "target_id": 862,
3851 "target_slot": 1,
3852 "type": "INT"
3853 },
3854 {
3855 "id": 9160,
3856 "origin_id": -10,
3857 "origin_slot": 2,
3858 "target_id": 862,
3859 "target_slot": 2,
3860 "type": "INT"
3861 },
3862 {
3863 "id": 9161,
3864 "origin_id": 862,
3865 "origin_slot": 0,
3866 "target_id": 861,
3867 "target_slot": 0,
3868 "type": "IMAGE"
3869 },
3870 {
3871 "id": 9162,
3872 "origin_id": 861,
3873 "origin_slot": 0,
3874 "target_id": -20,
3875 "target_slot": 2,
3876 "type": "IMAGE"
3877 },
3878 {
3879 "id": 9268,
3880 "origin_id": 962,
3881 "origin_slot": 0,
3882 "target_id": -20,
3883 "target_slot": 3,
3884 "type": "BOOLEAN"
3885 },
3886 {
3887 "id": 9248,
3888 "origin_id": 968,
3889 "origin_slot": 1,
3890 "target_id": 966,
3891 "target_slot": 0,
3892 "type": "INT"
3893 },
3894 {
3895 "id": 9249,
3896 "origin_id": 970,
3897 "origin_slot": 0,
3898 "target_id": 966,
3899 "target_slot": 1,
3900 "type": "INT"
3901 }
3902 ],
3903 "extra": []
3904 }
3905 ]
3906 },
3907 "config": [],
3908 "extra": {
3909 "frontendVersion": "1.58.5",
3910 "ds": {
3911 "scale": 0.31863081771035695,
3912 "offset": [
3913 3335.613689790016,
3914 1330.6845584198047
3915 ]
3916 }
3917 },
3918 "version": 0.4
3919}