comfyui-workflow-templates-media-image 0.3.0__py3-none-any.whl → 0.3.50__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. comfyui_workflow_templates_media_image/templates/01_get_started_text_to_image.json +796 -0
  2. comfyui_workflow_templates_media_image/templates/02_qwen_Image_edit_subgraphed.json +104 -150
  3. comfyui_workflow_templates_media_image/templates/3d_hunyuan3d_image_to_model.json +3 -3
  4. comfyui_workflow_templates_media_image/templates/default-1.webp +0 -0
  5. comfyui_workflow_templates_media_image/templates/{image2image.json → default.json} +213 -299
  6. comfyui_workflow_templates_media_image/templates/flux1_dev_uso_reference_image_gen.json +3446 -2631
  7. comfyui_workflow_templates_media_image/templates/flux1_krea_dev.json +715 -453
  8. comfyui_workflow_templates_media_image/templates/flux_canny_model_example.json +2 -2
  9. comfyui_workflow_templates_media_image/templates/flux_depth_lora_example.json +3 -3
  10. comfyui_workflow_templates_media_image/templates/flux_dev_checkpoint_example.json +828 -283
  11. comfyui_workflow_templates_media_image/templates/flux_dev_full_text_to_image.json +2 -2
  12. comfyui_workflow_templates_media_image/templates/flux_fill_inpaint_example.json +862 -645
  13. comfyui_workflow_templates_media_image/templates/flux_fill_outpaint_example.json +2 -2
  14. comfyui_workflow_templates_media_image/templates/flux_kontext_dev_basic.json +1055 -896
  15. comfyui_workflow_templates_media_image/templates/flux_redux_model_example.json +6 -6
  16. comfyui_workflow_templates_media_image/templates/flux_schnell.json +190 -43
  17. comfyui_workflow_templates_media_image/templates/flux_schnell_full_text_to_image.json +2 -2
  18. comfyui_workflow_templates_media_image/templates/hidream_e1_1-1.webp +0 -0
  19. comfyui_workflow_templates_media_image/templates/hidream_e1_1-2.webp +0 -0
  20. comfyui_workflow_templates_media_image/templates/hidream_e1_1.json +1133 -0
  21. comfyui_workflow_templates_media_image/templates/image_chroma1_radiance_text_to_image.json +1320 -1035
  22. comfyui_workflow_templates_media_image/templates/image_chroma_text_to_image.json +96 -94
  23. comfyui_workflow_templates_media_image/templates/image_chrono_edit_14B-1.webp +0 -0
  24. comfyui_workflow_templates_media_image/templates/image_chrono_edit_14B-2.webp +0 -0
  25. comfyui_workflow_templates_media_image/templates/image_chrono_edit_14B.json +2564 -0
  26. comfyui_workflow_templates_media_image/templates/image_flux.1_fill_dev_OneReward.json +2142 -2235
  27. comfyui_workflow_templates_media_image/templates/image_flux2-1.webp +0 -0
  28. comfyui_workflow_templates_media_image/templates/image_flux2-2.webp +0 -0
  29. comfyui_workflow_templates_media_image/templates/image_flux2.json +2810 -0
  30. comfyui_workflow_templates_media_image/templates/image_flux2_fp8-1.webp +0 -0
  31. comfyui_workflow_templates_media_image/templates/image_flux2_fp8.json +3448 -0
  32. comfyui_workflow_templates_media_image/templates/image_flux2_text_to_image-1.webp +0 -0
  33. comfyui_workflow_templates_media_image/templates/image_flux2_text_to_image.json +1108 -0
  34. comfyui_workflow_templates_media_image/templates/image_lotus_depth_v1_1.json +937 -663
  35. comfyui_workflow_templates_media_image/templates/image_netayume_lumina_t2i.json +811 -163
  36. comfyui_workflow_templates_media_image/templates/image_newbieimage_exp0_1-t2i-1.webp +0 -0
  37. comfyui_workflow_templates_media_image/templates/image_newbieimage_exp0_1-t2i.json +1158 -0
  38. comfyui_workflow_templates_media_image/templates/image_omnigen2_image_edit.json +5 -5
  39. comfyui_workflow_templates_media_image/templates/image_omnigen2_t2i.json +958 -688
  40. comfyui_workflow_templates_media_image/templates/image_ovis_text_to_image-1.webp +0 -0
  41. comfyui_workflow_templates_media_image/templates/image_ovis_text_to_image.json +918 -0
  42. comfyui_workflow_templates_media_image/templates/image_qwen_Image_2512-1.webp +0 -0
  43. comfyui_workflow_templates_media_image/templates/image_qwen_Image_2512.json +2047 -0
  44. comfyui_workflow_templates_media_image/templates/image_qwen_image.json +839 -729
  45. comfyui_workflow_templates_media_image/templates/image_qwen_image_controlnet_patch.json +4 -4
  46. comfyui_workflow_templates_media_image/templates/image_qwen_image_edit.json +1068 -855
  47. comfyui_workflow_templates_media_image/templates/image_qwen_image_edit_2509.json +2107 -2707
  48. comfyui_workflow_templates_media_image/templates/image_qwen_image_edit_2509_relight-1.webp +0 -0
  49. comfyui_workflow_templates_media_image/templates/image_qwen_image_edit_2509_relight-2.webp +0 -0
  50. comfyui_workflow_templates_media_image/templates/{01_qwen_t2i_subgraphed.json → image_qwen_image_edit_2509_relight.json} +855 -590
  51. comfyui_workflow_templates_media_image/templates/image_qwen_image_edit_2511-1.webp +0 -0
  52. comfyui_workflow_templates_media_image/templates/image_qwen_image_edit_2511-2.webp +0 -0
  53. comfyui_workflow_templates_media_image/templates/image_qwen_image_edit_2511.json +2870 -0
  54. comfyui_workflow_templates_media_image/templates/image_qwen_image_instantx_controlnet.json +1666 -1422
  55. comfyui_workflow_templates_media_image/templates/image_qwen_image_instantx_inpainting_controlnet.json +625 -600
  56. comfyui_workflow_templates_media_image/templates/image_qwen_image_layered-1.webp +0 -0
  57. comfyui_workflow_templates_media_image/templates/image_qwen_image_layered.json +2849 -0
  58. comfyui_workflow_templates_media_image/templates/image_qwen_image_union_control_lora.json +1234 -861
  59. comfyui_workflow_templates_media_image/templates/image_z_image_turbo_fun_union_controlnet-1.webp +0 -0
  60. comfyui_workflow_templates_media_image/templates/image_z_image_turbo_fun_union_controlnet-2.webp +0 -0
  61. comfyui_workflow_templates_media_image/templates/image_z_image_turbo_fun_union_controlnet.json +1355 -0
  62. comfyui_workflow_templates_media_image/templates/sd3.5_large_canny_controlnet_example.json +2 -2
  63. comfyui_workflow_templates_media_image/templates/sdxl_refiner_prompt_example.json +451 -100
  64. comfyui_workflow_templates_media_image/templates/sdxl_revision_text_prompts.json +2 -2
  65. comfyui_workflow_templates_media_image/templates/sdxl_simple_example.json +11 -11
  66. comfyui_workflow_templates_media_image/templates/sdxlturbo_example.json +2 -2
  67. comfyui_workflow_templates_media_image/templates/templates-1_click_multiple_character_angles-v1.0-1.webp +0 -0
  68. comfyui_workflow_templates_media_image/templates/templates-1_click_multiple_character_angles-v1.0.json +10191 -0
  69. comfyui_workflow_templates_media_image/templates/templates-1_click_multiple_scene_angles-v1.0-1.webp +0 -0
  70. comfyui_workflow_templates_media_image/templates/templates-1_click_multiple_scene_angles-v1.0.json +10155 -0
  71. comfyui_workflow_templates_media_image/templates/templates-6-key-frames-1.webp +0 -0
  72. comfyui_workflow_templates_media_image/templates/templates-6-key-frames.json +8012 -0
  73. comfyui_workflow_templates_media_image/templates/templates-product_ad-v2.0-1.webp +0 -0
  74. comfyui_workflow_templates_media_image/templates/templates-product_ad-v2.0.json +652 -0
  75. comfyui_workflow_templates_media_image/templates/templates-qwen_image_edit-crop_and_stitch-fusion-1.webp +0 -0
  76. comfyui_workflow_templates_media_image/templates/templates-qwen_image_edit-crop_and_stitch-fusion-2.webp +0 -0
  77. comfyui_workflow_templates_media_image/templates/templates-qwen_image_edit-crop_and_stitch-fusion.json +1458 -0
  78. comfyui_workflow_templates_media_image/templates/templates-textured_logotype-v2.1-1.webp +0 -0
  79. comfyui_workflow_templates_media_image/templates/templates-textured_logotype-v2.1.json +738 -0
  80. {comfyui_workflow_templates_media_image-0.3.0.dist-info → comfyui_workflow_templates_media_image-0.3.50.dist-info}/METADATA +1 -1
  81. comfyui_workflow_templates_media_image-0.3.50.dist-info/RECORD +134 -0
  82. comfyui_workflow_templates_media_image/templates/controlnet_example-1.webp +0 -0
  83. comfyui_workflow_templates_media_image/templates/controlnet_example-2.webp +0 -0
  84. comfyui_workflow_templates_media_image/templates/controlnet_example.json +0 -848
  85. comfyui_workflow_templates_media_image/templates/depth_controlnet-1.webp +0 -0
  86. comfyui_workflow_templates_media_image/templates/depth_controlnet-2.webp +0 -0
  87. comfyui_workflow_templates_media_image/templates/depth_controlnet.json +0 -678
  88. comfyui_workflow_templates_media_image/templates/depth_t2i_adapter-1.webp +0 -0
  89. comfyui_workflow_templates_media_image/templates/depth_t2i_adapter-2.webp +0 -0
  90. comfyui_workflow_templates_media_image/templates/depth_t2i_adapter.json +0 -1708
  91. comfyui_workflow_templates_media_image/templates/image2image-1.webp +0 -0
  92. comfyui_workflow_templates_media_image/templates/image2image-2.webp +0 -0
  93. comfyui_workflow_templates_media_image/templates/inpaint_example-1.webp +0 -0
  94. comfyui_workflow_templates_media_image/templates/inpaint_example-2.webp +0 -0
  95. comfyui_workflow_templates_media_image/templates/inpaint_example.json +0 -650
  96. comfyui_workflow_templates_media_image/templates/inpaint_model_outpainting-1.webp +0 -0
  97. comfyui_workflow_templates_media_image/templates/inpaint_model_outpainting-2.webp +0 -0
  98. comfyui_workflow_templates_media_image/templates/inpaint_model_outpainting.json +0 -710
  99. comfyui_workflow_templates_media_image/templates/mixing_controlnets-1.webp +0 -0
  100. comfyui_workflow_templates_media_image/templates/mixing_controlnets-2.webp +0 -0
  101. comfyui_workflow_templates_media_image/templates/mixing_controlnets.json +0 -913
  102. comfyui_workflow_templates_media_image-0.3.0.dist-info/RECORD +0 -110
  103. /comfyui_workflow_templates_media_image/templates/{01_qwen_t2i_subgraphed-1.webp → 01_get_started_text_to_image-1.webp} +0 -0
  104. /comfyui_workflow_templates_media_image/templates/{image_qwen_image_union_control_lora-3.webp → image_qwen_image_union_control_lora-2.webp} +0 -0
  105. {comfyui_workflow_templates_media_image-0.3.0.dist-info → comfyui_workflow_templates_media_image-0.3.50.dist-info}/WHEEL +0 -0
  106. {comfyui_workflow_templates_media_image-0.3.0.dist-info → comfyui_workflow_templates_media_image-0.3.50.dist-info}/top_level.txt +0 -0
@@ -1,352 +1,113 @@
1
1
  {
2
2
  "id": "7cbcec68-7fa6-47bb-a38a-da689949a001",
3
3
  "revision": 0,
4
- "last_node_id": 191,
5
- "last_link_id": 298,
4
+ "last_node_id": 192,
5
+ "last_link_id": 301,
6
6
  "nodes": [
7
7
  {
8
- "id": 39,
9
- "type": "VAELoader",
8
+ "id": 184,
9
+ "type": "MarkdownNote",
10
10
  "pos": [
11
- -400,
12
- 390
11
+ -960,
12
+ 40
13
13
  ],
14
14
  "size": [
15
- 337.76861572265625,
16
- 58
15
+ 510,
16
+ 400
17
17
  ],
18
18
  "flags": {},
19
19
  "order": 0,
20
20
  "mode": 0,
21
21
  "inputs": [],
22
- "outputs": [
23
- {
24
- "name": "VAE",
25
- "type": "VAE",
26
- "links": [
27
- 61,
28
- 223
29
- ]
30
- }
31
- ],
32
- "properties": {
33
- "cnr_id": "comfy-core",
34
- "ver": "0.3.38",
35
- "Node name for S&R": "VAELoader",
36
- "models": [
37
- {
38
- "name": "ae.safetensors",
39
- "url": "https://huggingface.co/Comfy-Org/Lumina_Image_2.0_Repackaged/resolve/main/split_files/vae/ae.safetensors",
40
- "directory": "vae"
41
- }
42
- ]
43
- },
22
+ "outputs": [],
23
+ "title": "Model links",
24
+ "properties": {},
44
25
  "widgets_values": [
45
- "ae.safetensors"
46
- ]
26
+ "[tutorial](https://docs.comfy.org/tutorials/flux/flux-1-kontext-dev)\n\n**diffusion model**\n\n- [flux1-dev-kontext_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/flux1-kontext-dev_ComfyUI/resolve/main/split_files/diffusion_models/flux1-dev-kontext_fp8_scaled.safetensors)\n\n**vae**\n\n- [ae.safetensors](https://huggingface.co/Comfy-Org/Lumina_Image_2.0_Repackaged/blob/main/split_files/vae/ae.safetensors)\n\n**text encoder**\n\n- [clip_l.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/blob/main/clip_l.safetensors)\n- [t5xxl_fp16.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp16.safetensors) or [t5xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn_scaled.safetensors)\n\nModel Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 diffusion_models/\n│ │ └── flux1-dev-kontext_fp8_scaled.safetensors\n│ ├── 📂 vae/\n│ │ └── ae.safetensor\n│ └── 📂 text_encoders/\n│ ├── clip_l.safetensors\n│ └── t5xxl_fp16.safetensors 或者 t5xxl_fp8_e4m3fn_scaled.safetensors\n```\n"
27
+ ],
28
+ "color": "#432",
29
+ "bgcolor": "#000"
47
30
  },
48
31
  {
49
- "id": 38,
50
- "type": "DualCLIPLoader",
32
+ "id": 186,
33
+ "type": "MarkdownNote",
51
34
  "pos": [
52
- -400,
53
- 210
35
+ -960,
36
+ 500
54
37
  ],
55
38
  "size": [
56
- 337.76861572265625,
57
- 130
39
+ 510,
40
+ 670
58
41
  ],
59
42
  "flags": {},
60
43
  "order": 1,
61
44
  "mode": 0,
62
45
  "inputs": [],
63
- "outputs": [
64
- {
65
- "name": "CLIP",
66
- "type": "CLIP",
67
- "links": [
68
- 59
69
- ]
70
- }
71
- ],
72
- "properties": {
73
- "cnr_id": "comfy-core",
74
- "ver": "0.3.38",
75
- "Node name for S&R": "DualCLIPLoader",
76
- "models": [
77
- {
78
- "name": "clip_l.safetensors",
79
- "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors",
80
- "directory": "text_encoders"
81
- },
82
- {
83
- "name": "t5xxl_fp8_e4m3fn_scaled.safetensors",
84
- "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn_scaled.safetensors",
85
- "directory": "text_encoders"
86
- }
87
- ]
88
- },
46
+ "outputs": [],
47
+ "title": "Flux Kontext Prompt Techniques",
48
+ "properties": {},
89
49
  "widgets_values": [
90
- "clip_l.safetensors",
91
- "t5xxl_fp8_e4m3fn_scaled.safetensors",
92
- "flux",
93
- "default"
94
- ]
95
- },
96
- {
97
- "id": 135,
98
- "type": "ConditioningZeroOut",
99
- "pos": [
100
- 250,
101
- 200
102
- ],
103
- "size": [
104
- 240,
105
- 26
106
- ],
107
- "flags": {
108
- "collapsed": false
109
- },
110
- "order": 13,
111
- "mode": 0,
112
- "inputs": [
113
- {
114
- "name": "conditioning",
115
- "type": "CONDITIONING",
116
- "link": 237
117
- }
118
- ],
119
- "outputs": [
120
- {
121
- "name": "CONDITIONING",
122
- "type": "CONDITIONING",
123
- "links": [
124
- 238
125
- ]
126
- }
127
- ],
128
- "properties": {
129
- "cnr_id": "comfy-core",
130
- "ver": "0.3.39",
131
- "Node name for S&R": "ConditioningZeroOut"
132
- },
133
- "widgets_values": []
134
- },
135
- {
136
- "id": 173,
137
- "type": "PreviewImage",
138
- "pos": [
139
- 320,
140
- 860
141
- ],
142
- "size": [
143
- 420,
144
- 310
145
- ],
146
- "flags": {},
147
- "order": 16,
148
- "mode": 0,
149
- "inputs": [
150
- {
151
- "name": "images",
152
- "type": "IMAGE",
153
- "link": 289
154
- }
50
+ "\n## Flux Kontext Prompt Techniques\n\n### 1. Basic Modifications\n- Simple and direct: `\"Change the car color to red\"`\n- Maintain style: `\"Change to daytime while maintaining the same style of the painting\"`\n\n### 2. Style Transfer\n**Principles:**\n- Clearly name style: `\"Transform to Bauhaus art style\"`\n- Describe characteristics: `\"Transform to oil painting with visible brushstrokes, thick paint texture\"`\n- Preserve composition: `\"Change to Bauhaus style while maintaining the original composition\"`\n\n### 3. Character Consistency\n**Framework:**\n- Specific description: `\"The woman with short black hair\"` instead of \"she\"\n- Preserve features: `\"while maintaining the same facial features, hairstyle, and expression\"`\n- Step-by-step modifications: Change background first, then actions\n\n### 4. Text Editing\n- Use quotes: `\"Replace 'joy' with 'BFL'\"`\n- Maintain format: `\"Replace text while maintaining the same font style\"`\n\n## Common Problem Solutions\n\n### Character Changes Too Much\n❌ Wrong: `\"Transform the person into a Viking\"`\n✅ Correct: `\"Change the clothes to be a viking warrior while preserving facial features\"`\n\n### Composition Position Changes\n❌ Wrong: `\"Put him on a beach\"`\n✅ Correct: `\"Change the background to a beach while keeping the person in the exact same position, scale, and pose\"`\n\n### Style Application Inaccuracy\n❌ Wrong: `\"Make it a sketch\"`\n✅ Correct: `\"Convert to pencil sketch with natural graphite lines, cross-hatching, and visible paper texture\"`\n\n## Core Principles\n\n1. **Be Specific and Clear** - Use precise descriptions, avoid vague terms\n2. **Step-by-step Editing** - Break complex modifications into multiple simple steps\n3. **Explicit Preservation** - State what should remain unchanged\n4. **Verb Selection** - Use \"change\", \"replace\" rather than \"transform\"\n\n## Best Practice Templates\n\n**Object Modification:**\n`\"Change [object] to [new state], keep [content to preserve] unchanged\"`\n\n**Style Transfer:**\n`\"Transform to [specific style], while maintaining [composition/character/other] unchanged\"`\n\n**Background Replacement:**\n`\"Change the background to [new background], keep the subject in the exact same position and pose\"`\n\n**Text Editing:**\n`\"Replace '[original text]' with '[new text]', maintain the same font style\"`\n\n> **Remember:** The more specific, the better. Kontext excels at understanding detailed instructions and maintaining consistency. "
155
51
  ],
156
- "outputs": [],
157
- "properties": {
158
- "cnr_id": "comfy-core",
159
- "ver": "0.3.40",
160
- "Node name for S&R": "PreviewImage"
161
- },
162
- "widgets_values": []
52
+ "color": "#432",
53
+ "bgcolor": "#000"
163
54
  },
164
55
  {
165
56
  "id": 136,
166
57
  "type": "SaveImage",
167
58
  "pos": [
168
- 760,
169
- 510
59
+ 430,
60
+ 50
170
61
  ],
171
62
  "size": [
172
63
  650,
173
64
  660
174
65
  ],
175
66
  "flags": {},
176
- "order": 21,
67
+ "order": 5,
177
68
  "mode": 0,
178
69
  "inputs": [
179
70
  {
180
71
  "name": "images",
181
72
  "type": "IMAGE",
182
- "link": 240
73
+ "link": 301
183
74
  }
184
75
  ],
185
76
  "outputs": [],
186
77
  "properties": {
78
+ "Node name for S&R": "SaveImage",
187
79
  "cnr_id": "comfy-core",
188
- "ver": "0.3.39",
189
- "Node name for S&R": "SaveImage"
80
+ "ver": "0.3.39"
190
81
  },
191
82
  "widgets_values": [
192
83
  "ComfyUI"
193
84
  ]
194
85
  },
195
86
  {
196
- "id": 8,
197
- "type": "VAEDecode",
198
- "pos": [
199
- 530,
200
- 350
201
- ],
202
- "size": [
203
- 190,
204
- 46
205
- ],
206
- "flags": {
207
- "collapsed": false
208
- },
209
- "order": 20,
210
- "mode": 0,
211
- "inputs": [
212
- {
213
- "name": "samples",
214
- "type": "LATENT",
215
- "link": 52
216
- },
217
- {
218
- "name": "vae",
219
- "type": "VAE",
220
- "link": 61
221
- }
222
- ],
223
- "outputs": [
224
- {
225
- "name": "IMAGE",
226
- "type": "IMAGE",
227
- "slot_index": 0,
228
- "links": [
229
- 240
230
- ]
231
- }
232
- ],
233
- "properties": {
234
- "cnr_id": "comfy-core",
235
- "ver": "0.3.38",
236
- "Node name for S&R": "VAEDecode"
237
- },
238
- "widgets_values": []
239
- },
240
- {
241
- "id": 124,
242
- "type": "VAEEncode",
87
+ "id": 192,
88
+ "type": "654c828f-2572-47e8-ba85-8a832c89b30c",
243
89
  "pos": [
244
90
  -20,
245
- 400
246
- ],
247
- "size": [
248
- 240,
249
91
  50
250
92
  ],
251
- "flags": {
252
- "collapsed": false
253
- },
254
- "order": 15,
255
- "mode": 0,
256
- "inputs": [
257
- {
258
- "name": "pixels",
259
- "type": "IMAGE",
260
- "link": 222
261
- },
262
- {
263
- "name": "vae",
264
- "type": "VAE",
265
- "link": 223
266
- }
267
- ],
268
- "outputs": [
269
- {
270
- "name": "LATENT",
271
- "type": "LATENT",
272
- "links": [
273
- 291,
274
- 293
275
- ]
276
- }
277
- ],
278
- "properties": {
279
- "cnr_id": "comfy-core",
280
- "ver": "0.3.39",
281
- "Node name for S&R": "VAEEncode"
282
- },
283
- "widgets_values": []
284
- },
285
- {
286
- "id": 42,
287
- "type": "FluxKontextImageScale",
288
- "pos": [
289
- -50,
290
- 570
291
- ],
292
- "size": [
293
- 270,
294
- 30
295
- ],
296
- "flags": {
297
- "collapsed": false
298
- },
299
- "order": 14,
300
- "mode": 0,
301
- "inputs": [
302
- {
303
- "name": "image",
304
- "type": "IMAGE",
305
- "link": 251
306
- }
307
- ],
308
- "outputs": [
309
- {
310
- "name": "IMAGE",
311
- "type": "IMAGE",
312
- "links": [
313
- 222,
314
- 289
315
- ]
316
- }
317
- ],
318
- "properties": {
319
- "cnr_id": "comfy-core",
320
- "ver": "0.3.38",
321
- "Node name for S&R": "FluxKontextImageScale"
322
- },
323
- "widgets_values": []
324
- },
325
- {
326
- "id": 146,
327
- "type": "ImageStitch",
328
- "pos": [
329
- -390,
330
- 570
331
- ],
332
93
  "size": [
333
- 270,
334
- 150
94
+ 400,
95
+ 480
335
96
  ],
336
97
  "flags": {},
337
- "order": 12,
98
+ "order": 4,
338
99
  "mode": 0,
339
100
  "inputs": [
340
101
  {
341
102
  "name": "image1",
342
103
  "type": "IMAGE",
343
- "link": 297
104
+ "link": 299
344
105
  },
345
106
  {
346
107
  "name": "image2",
347
108
  "shape": 7,
348
109
  "type": "IMAGE",
349
- "link": 298
110
+ "link": 300
350
111
  }
351
112
  ],
352
113
  "outputs": [
@@ -354,74 +115,42 @@
354
115
  "name": "IMAGE",
355
116
  "type": "IMAGE",
356
117
  "links": [
357
- 251
118
+ 301
358
119
  ]
359
120
  }
360
121
  ],
122
+ "title": "Flux.1 Kontext Dev Image Edit",
361
123
  "properties": {
362
- "cnr_id": "comfy-core",
363
- "ver": "0.3.40",
364
- "Node name for S&R": "ImageStitch"
365
- },
366
- "widgets_values": [
367
- "right",
368
- true,
369
- 0,
370
- "white"
371
- ]
372
- },
373
- {
374
- "id": 35,
375
- "type": "FluxGuidance",
376
- "pos": [
377
- 250,
378
- 90
379
- ],
380
- "size": [
381
- 240,
382
- 58
383
- ],
384
- "flags": {
385
- "collapsed": false
386
- },
387
- "order": 18,
388
- "mode": 0,
389
- "inputs": [
390
- {
391
- "name": "conditioning",
392
- "type": "CONDITIONING",
393
- "link": 292
394
- }
395
- ],
396
- "outputs": [
397
- {
398
- "name": "CONDITIONING",
399
- "type": "CONDITIONING",
400
- "slot_index": 0,
401
- "links": [
402
- 57
124
+ "proxyWidgets": [
125
+ [
126
+ "-1",
127
+ "text"
128
+ ],
129
+ [
130
+ "-1",
131
+ "seed"
132
+ ],
133
+ [
134
+ "31",
135
+ "control_after_generate"
403
136
  ]
404
- }
405
- ],
406
- "properties": {
407
- "cnr_id": "comfy-core",
408
- "ver": "0.3.38",
409
- "Node name for S&R": "FluxGuidance"
137
+ ]
410
138
  },
411
139
  "widgets_values": [
412
- 2.5
140
+ "Using this elegant style, create a portrait of a swan wearing a pearl tiara and lace collar, maintaining the same refined quality and soft color tones.",
141
+ 784381637916598
413
142
  ]
414
143
  },
415
144
  {
416
- "id": 37,
417
- "type": "UNETLoader",
145
+ "id": 190,
146
+ "type": "LoadImage",
418
147
  "pos": [
419
- -400,
420
- 80
148
+ -380,
149
+ 50
421
150
  ],
422
151
  "size": [
423
- 337.76861572265625,
424
- 82
152
+ 280,
153
+ 330
425
154
  ],
426
155
  "flags": {},
427
156
  "order": 2,
@@ -429,83 +158,38 @@
429
158
  "inputs": [],
430
159
  "outputs": [
431
160
  {
432
- "name": "MODEL",
433
- "type": "MODEL",
161
+ "name": "IMAGE",
162
+ "type": "IMAGE",
434
163
  "links": [
435
- 58
164
+ 299
436
165
  ]
437
- }
438
- ],
439
- "properties": {
440
- "cnr_id": "comfy-core",
441
- "ver": "0.3.38",
442
- "Node name for S&R": "UNETLoader",
443
- "models": [
444
- {
445
- "name": "flux1-dev-kontext_fp8_scaled.safetensors",
446
- "url": "https://huggingface.co/Comfy-Org/flux1-kontext-dev_ComfyUI/resolve/main/split_files/diffusion_models/flux1-dev-kontext_fp8_scaled.safetensors",
447
- "directory": "diffusion_models"
448
- }
449
- ]
450
- },
451
- "widgets_values": [
452
- "flux1-dev-kontext_fp8_scaled.safetensors",
453
- "default"
454
- ]
455
- },
456
- {
457
- "id": 177,
458
- "type": "ReferenceLatent",
459
- "pos": [
460
- 10,
461
- 140
462
- ],
463
- "size": [
464
- 197.712890625,
465
- 46
466
- ],
467
- "flags": {},
468
- "order": 17,
469
- "mode": 0,
470
- "inputs": [
471
- {
472
- "name": "conditioning",
473
- "type": "CONDITIONING",
474
- "link": 294
475
166
  },
476
167
  {
477
- "name": "latent",
478
- "shape": 7,
479
- "type": "LATENT",
480
- "link": 293
481
- }
482
- ],
483
- "outputs": [
484
- {
485
- "name": "CONDITIONING",
486
- "type": "CONDITIONING",
487
- "links": [
488
- 292
489
- ]
168
+ "name": "MASK",
169
+ "type": "MASK",
170
+ "links": null
490
171
  }
491
172
  ],
492
173
  "properties": {
174
+ "Node name for S&R": "LoadImage",
493
175
  "cnr_id": "comfy-core",
494
- "ver": "0.3.41",
495
- "Node name for S&R": "ReferenceLatent"
176
+ "ver": "0.3.64"
496
177
  },
497
- "widgets_values": []
178
+ "widgets_values": [
179
+ "flux_kontext_dev_basic_input_image.jpg",
180
+ "image"
181
+ ]
498
182
  },
499
183
  {
500
- "id": 188,
501
- "type": "EmptySD3LatentImage",
184
+ "id": 191,
185
+ "type": "LoadImage",
502
186
  "pos": [
503
- 530,
504
- -140
187
+ -370,
188
+ 450
505
189
  ],
506
190
  "size": [
507
- 310,
508
- 106
191
+ 280,
192
+ 330
509
193
  ],
510
194
  "flags": {},
511
195
  "order": 3,
@@ -513,541 +197,1016 @@
513
197
  "inputs": [],
514
198
  "outputs": [
515
199
  {
516
- "name": "LATENT",
517
- "type": "LATENT",
200
+ "name": "IMAGE",
201
+ "type": "IMAGE",
202
+ "links": [
203
+ 300
204
+ ]
205
+ },
206
+ {
207
+ "name": "MASK",
208
+ "type": "MASK",
518
209
  "links": null
519
210
  }
520
211
  ],
521
212
  "properties": {
213
+ "Node name for S&R": "LoadImage",
522
214
  "cnr_id": "comfy-core",
523
- "ver": "0.3.41",
524
- "Node name for S&R": "EmptySD3LatentImage"
215
+ "ver": "0.3.64"
525
216
  },
526
217
  "widgets_values": [
527
- 1024,
528
- 1024,
529
- 1
218
+ "flux_kontext_dev_basic_input_image.jpg",
219
+ "image"
530
220
  ]
531
- },
532
- {
533
- "id": 6,
534
- "type": "CLIPTextEncode",
535
- "pos": [
536
- 330,
537
- 560
538
- ],
539
- "size": [
540
- 400,
541
- 220
542
- ],
543
- "flags": {},
544
- "order": 11,
545
- "mode": 0,
546
- "inputs": [
547
- {
548
- "name": "clip",
549
- "type": "CLIP",
550
- "link": 59
551
- }
552
- ],
553
- "outputs": [
554
- {
555
- "name": "CONDITIONING",
556
- "type": "CONDITIONING",
557
- "slot_index": 0,
558
- "links": [
559
- 237,
560
- 294
561
- ]
562
- }
563
- ],
564
- "title": "CLIP Text Encode (Positive Prompt)",
565
- "properties": {
566
- "cnr_id": "comfy-core",
567
- "ver": "0.3.38",
568
- "Node name for S&R": "CLIPTextEncode"
569
- },
570
- "widgets_values": [
571
- "Using this elegant style, create a portrait of a swan wearing a pearl tiara and lace collar, maintaining the same refined quality and soft color tones."
572
- ],
573
- "color": "#232",
574
- "bgcolor": "#353"
575
- },
576
- {
577
- "id": 31,
578
- "type": "KSampler",
579
- "pos": [
580
- 530,
581
- 40
582
- ],
583
- "size": [
584
- 320,
585
- 262
586
- ],
587
- "flags": {},
588
- "order": 19,
589
- "mode": 0,
590
- "inputs": [
591
- {
592
- "name": "model",
593
- "type": "MODEL",
594
- "link": 58
595
- },
596
- {
597
- "name": "positive",
598
- "type": "CONDITIONING",
599
- "link": 57
600
- },
601
- {
602
- "name": "negative",
603
- "type": "CONDITIONING",
604
- "link": 238
605
- },
606
- {
607
- "name": "latent_image",
608
- "type": "LATENT",
609
- "link": 291
610
- }
611
- ],
612
- "outputs": [
613
- {
614
- "name": "LATENT",
615
- "type": "LATENT",
616
- "slot_index": 0,
617
- "links": [
618
- 52
619
- ]
620
- }
621
- ],
622
- "properties": {
623
- "cnr_id": "comfy-core",
624
- "ver": "0.3.38",
625
- "Node name for S&R": "KSampler"
626
- },
627
- "widgets_values": [
628
- 784381637916598,
629
- "randomize",
630
- 20,
631
- 1,
632
- "euler",
633
- "simple",
634
- 1
635
- ]
636
- },
637
- {
638
- "id": 175,
639
- "type": "MarkdownNote",
640
- "pos": [
641
- -50,
642
- 640
643
- ],
644
- "size": [
645
- 320,
646
- 88
647
- ],
648
- "flags": {},
649
- "order": 4,
650
- "mode": 0,
651
- "inputs": [],
652
- "outputs": [],
653
- "title": "How to enable multiple image input",
654
- "properties": {},
655
- "widgets_values": [
656
- "Click on the **Load image (from output)** node and use **Ctrl + B** to enable multiple image input support."
657
- ],
658
- "color": "#432",
659
- "bgcolor": "#653"
660
- },
661
- {
662
- "id": 189,
663
- "type": "MarkdownNote",
664
- "pos": [
665
- -400,
666
- 1200
667
- ],
668
- "size": [
669
- 340,
670
- 90
671
- ],
672
- "flags": {},
673
- "order": 5,
674
- "mode": 0,
675
- "inputs": [],
676
- "outputs": [],
677
- "title": "About multi-round edit",
678
- "properties": {},
679
- "widgets_values": [
680
- "The **Load Image (from Outputs)** node allows you to fetch the last image from the output. Click on the **refresh** button to fetch the latest image or manually select an image from the dropdown list."
681
- ],
682
- "color": "#432",
683
- "bgcolor": "#653"
684
- },
685
- {
686
- "id": 184,
687
- "type": "MarkdownNote",
688
- "pos": [
689
- -960,
690
- 40
691
- ],
692
- "size": [
693
- 510,
694
- 400
695
- ],
696
- "flags": {},
697
- "order": 6,
698
- "mode": 0,
699
- "inputs": [],
700
- "outputs": [],
701
- "title": "Model links",
702
- "properties": {},
703
- "widgets_values": [
704
- "[tutorial](http://docs.comfy.org/tutorials/flux/flux-1-kontext-dev)\n\n**diffusion model**\n\n- [flux1-dev-kontext_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/flux1-kontext-dev_ComfyUI/resolve/main/split_files/diffusion_models/flux1-dev-kontext_fp8_scaled.safetensors)\n\n**vae**\n\n- [ae.safetensors](https://huggingface.co/Comfy-Org/Lumina_Image_2.0_Repackaged/blob/main/split_files/vae/ae.safetensors)\n\n**text encoder**\n\n- [clip_l.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/blob/main/clip_l.safetensors)\n- [t5xxl_fp16.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp16.safetensors) or [t5xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn_scaled.safetensors)\n\nModel Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 diffusion_models/\n│ │ └── flux1-dev-kontext_fp8_scaled.safetensors\n│ ├── 📂 vae/\n│ │ └── ae.safetensor\n│ └── 📂 text_encoders/\n│ ├── clip_l.safetensors\n│ └── t5xxl_fp16.safetensors 或者 t5xxl_fp8_e4m3fn_scaled.safetensors\n```\n"
705
- ],
706
- "color": "#432",
707
- "bgcolor": "#653"
708
- },
709
- {
710
- "id": 178,
711
- "type": "MarkdownNote",
712
- "pos": [
713
- -30,
714
- -150
715
- ],
716
- "size": [
717
- 540,
718
- 150
719
- ],
720
- "flags": {},
721
- "order": 7,
722
- "mode": 0,
723
- "inputs": [],
724
- "outputs": [],
725
- "title": "About multiple images reference",
726
- "properties": {},
727
- "widgets_values": [
728
- "[English] In addition to using **Image Stitch** to combine two images at a time, you can also encode individual images, then concatenate multiple latent conditions using the **ReferenceLatent** node, thus achieving the purpose of referencing multiple images. You can use the **EmptySD3LatentImage** node on the right to connect to **KSamper** and customize the size of the **latent_image**."
729
- ],
730
- "color": "#432",
731
- "bgcolor": "#653"
732
- },
733
- {
734
- "id": 190,
735
- "type": "LoadImage",
736
- "pos": [
737
- -380,
738
- 800
739
- ],
740
- "size": [
741
- 280,
742
- 330
743
- ],
744
- "flags": {},
745
- "order": 8,
746
- "mode": 0,
747
- "inputs": [],
748
- "outputs": [
749
- {
750
- "name": "IMAGE",
751
- "type": "IMAGE",
752
- "links": [
753
- 297
754
- ]
755
- },
756
- {
757
- "name": "MASK",
758
- "type": "MASK",
759
- "links": null
760
- }
761
- ],
762
- "properties": {
763
- "cnr_id": "comfy-core",
764
- "ver": "0.3.64",
765
- "Node name for S&R": "LoadImage"
766
- },
767
- "widgets_values": [
768
- "flux_kontext_dev_basic_input_image.jpg",
769
- "image"
770
- ]
771
- },
772
- {
773
- "id": 191,
774
- "type": "LoadImage",
775
- "pos": [
776
- -40,
777
- 800
778
- ],
779
- "size": [
780
- 280,
781
- 330
782
- ],
783
- "flags": {},
784
- "order": 9,
785
- "mode": 4,
786
- "inputs": [],
787
- "outputs": [
788
- {
789
- "name": "IMAGE",
790
- "type": "IMAGE",
791
- "links": [
792
- 298
793
- ]
794
- },
795
- {
796
- "name": "MASK",
797
- "type": "MASK",
798
- "links": null
799
- }
800
- ],
801
- "properties": {
802
- "cnr_id": "comfy-core",
803
- "ver": "0.3.64",
804
- "Node name for S&R": "LoadImage"
805
- },
806
- "widgets_values": [
807
- "flux_kontext_dev_basic_input_image.jpg",
808
- "image"
809
- ]
810
- },
811
- {
812
- "id": 186,
813
- "type": "MarkdownNote",
814
- "pos": [
815
- -960,
816
- 500
817
- ],
818
- "size": [
819
- 510,
820
- 670
821
- ],
822
- "flags": {},
823
- "order": 10,
824
- "mode": 0,
825
- "inputs": [],
826
- "outputs": [],
827
- "title": "Flux Kontext Prompt Techniques",
828
- "properties": {},
829
- "widgets_values": [
830
- "\n## Flux Kontext Prompt Techniques\n\n### 1. Basic Modifications\n- Simple and direct: `\"Change the car color to red\"`\n- Maintain style: `\"Change to daytime while maintaining the same style of the painting\"`\n\n### 2. Style Transfer\n**Principles:**\n- Clearly name style: `\"Transform to Bauhaus art style\"`\n- Describe characteristics: `\"Transform to oil painting with visible brushstrokes, thick paint texture\"`\n- Preserve composition: `\"Change to Bauhaus style while maintaining the original composition\"`\n\n### 3. Character Consistency\n**Framework:**\n- Specific description: `\"The woman with short black hair\"` instead of \"she\"\n- Preserve features: `\"while maintaining the same facial features, hairstyle, and expression\"`\n- Step-by-step modifications: Change background first, then actions\n\n### 4. Text Editing\n- Use quotes: `\"Replace 'joy' with 'BFL'\"`\n- Maintain format: `\"Replace text while maintaining the same font style\"`\n\n## Common Problem Solutions\n\n### Character Changes Too Much\n❌ Wrong: `\"Transform the person into a Viking\"`\n✅ Correct: `\"Change the clothes to be a viking warrior while preserving facial features\"`\n\n### Composition Position Changes\n❌ Wrong: `\"Put him on a beach\"`\n✅ Correct: `\"Change the background to a beach while keeping the person in the exact same position, scale, and pose\"`\n\n### Style Application Inaccuracy\n❌ Wrong: `\"Make it a sketch\"`\n✅ Correct: `\"Convert to pencil sketch with natural graphite lines, cross-hatching, and visible paper texture\"`\n\n## Core Principles\n\n1. **Be Specific and Clear** - Use precise descriptions, avoid vague terms\n2. **Step-by-step Editing** - Break complex modifications into multiple simple steps\n3. **Explicit Preservation** - State what should remain unchanged\n4. **Verb Selection** - Use \"change\", \"replace\" rather than \"transform\"\n\n## Best Practice Templates\n\n**Object Modification:**\n`\"Change [object] to [new state], keep [content to preserve] unchanged\"`\n\n**Style Transfer:**\n`\"Transform to [specific style], while maintaining [composition/character/other] unchanged\"`\n\n**Background Replacement:**\n`\"Change the background to [new background], keep the subject in the exact same position and pose\"`\n\n**Text Editing:**\n`\"Replace '[original text]' with '[new text]', maintain the same font style\"`\n\n> **Remember:** The more specific, the better. Kontext excels at understanding detailed instructions and maintaining consistency. "
831
- ],
832
- "color": "#432",
833
- "bgcolor": "#653"
834
221
  }
835
222
  ],
836
223
  "links": [
837
224
  [
838
- 52,
839
- 31,
840
- 0,
841
- 8,
842
- 0,
843
- "LATENT"
844
- ],
845
- [
846
- 57,
847
- 35,
848
- 0,
849
- 31,
850
- 1,
851
- "CONDITIONING"
852
- ],
853
- [
854
- 58,
855
- 37,
856
- 0,
857
- 31,
858
- 0,
859
- "MODEL"
860
- ],
861
- [
862
- 59,
863
- 38,
864
- 0,
865
- 6,
866
- 0,
867
- "CLIP"
868
- ],
869
- [
870
- 61,
871
- 39,
872
- 0,
873
- 8,
874
- 1,
875
- "VAE"
876
- ],
877
- [
878
- 222,
879
- 42,
225
+ 299,
226
+ 190,
880
227
  0,
881
- 124,
228
+ 192,
882
229
  0,
883
230
  "IMAGE"
884
231
  ],
885
232
  [
886
- 223,
887
- 39,
233
+ 300,
234
+ 191,
888
235
  0,
889
- 124,
236
+ 192,
890
237
  1,
891
- "VAE"
892
- ],
893
- [
894
- 237,
895
- 6,
896
- 0,
897
- 135,
898
- 0,
899
- "CONDITIONING"
900
- ],
901
- [
902
- 238,
903
- 135,
904
- 0,
905
- 31,
906
- 2,
907
- "CONDITIONING"
908
- ],
909
- [
910
- 240,
911
- 8,
912
- 0,
913
- 136,
914
- 0,
915
- "IMAGE"
916
- ],
917
- [
918
- 251,
919
- 146,
920
- 0,
921
- 42,
922
- 0,
923
- "IMAGE"
924
- ],
925
- [
926
- 289,
927
- 42,
928
- 0,
929
- 173,
930
- 0,
931
238
  "IMAGE"
932
239
  ],
933
240
  [
934
- 291,
935
- 124,
936
- 0,
937
- 31,
938
- 3,
939
- "LATENT"
940
- ],
941
- [
942
- 292,
943
- 177,
944
- 0,
945
- 35,
946
- 0,
947
- "CONDITIONING"
948
- ],
949
- [
950
- 293,
951
- 124,
952
- 0,
953
- 177,
954
- 1,
955
- "LATENT"
956
- ],
957
- [
958
- 294,
959
- 6,
960
- 0,
961
- 177,
241
+ 301,
242
+ 192,
962
243
  0,
963
- "CONDITIONING"
964
- ],
965
- [
966
- 297,
967
- 190,
968
- 0,
969
- 146,
970
- 0,
971
- "IMAGE"
972
- ],
973
- [
974
- 298,
975
- 191,
244
+ 136,
976
245
  0,
977
- 146,
978
- 1,
979
246
  "IMAGE"
980
247
  ]
981
248
  ],
982
- "groups": [
983
- {
984
- "id": 1,
985
- "title": "Step 1- Load models",
986
- "bounding": [
987
- -410,
988
- 10,
989
- 360,
990
- 450
991
- ],
992
- "color": "#3f789e",
993
- "font_size": 24,
994
- "flags": {}
995
- },
996
- {
997
- "id": 3,
998
- "title": "Step 2 - Upload images",
999
- "bounding": [
1000
- -410,
1001
- 480,
1002
- 700,
1003
- 680
1004
- ],
1005
- "color": "#3f789e",
1006
- "font_size": 24,
1007
- "flags": {}
1008
- },
1009
- {
1010
- "id": 5,
1011
- "title": "Step 3 - Prompt",
1012
- "bounding": [
1013
- 310,
1014
- 480,
1015
- 430,
1016
- 330
1017
- ],
1018
- "color": "#3f789e",
1019
- "font_size": 24,
1020
- "flags": {}
1021
- },
1022
- {
1023
- "id": 6,
1024
- "title": "Conditioning",
1025
- "bounding": [
1026
- -30,
1027
- 10,
1028
- 540,
1029
- 250
1030
- ],
1031
- "color": "#3f789e",
1032
- "font_size": 24,
1033
- "flags": {}
1034
- }
1035
- ],
249
+ "groups": [],
250
+ "definitions": {
251
+ "subgraphs": [
252
+ {
253
+ "id": "654c828f-2572-47e8-ba85-8a832c89b30c",
254
+ "version": 1,
255
+ "state": {
256
+ "lastGroupId": 6,
257
+ "lastNodeId": 191,
258
+ "lastLinkId": 300,
259
+ "lastRerouteId": 0
260
+ },
261
+ "revision": 0,
262
+ "config": {},
263
+ "name": "Flux.1 Kontext Dev Image Edit",
264
+ "inputNode": {
265
+ "id": -10,
266
+ "bounding": [
267
+ 180,
268
+ 305,
269
+ 120,
270
+ 120
271
+ ]
272
+ },
273
+ "outputNode": {
274
+ "id": -20,
275
+ "bounding": [
276
+ 1680,
277
+ 315,
278
+ 120,
279
+ 60
280
+ ]
281
+ },
282
+ "inputs": [
283
+ {
284
+ "id": "2ecac158-b1ad-405b-a7d1-819093266237",
285
+ "name": "image1",
286
+ "type": "IMAGE",
287
+ "linkIds": [
288
+ 297
289
+ ],
290
+ "localized_name": "image1",
291
+ "pos": [
292
+ 280,
293
+ 325
294
+ ]
295
+ },
296
+ {
297
+ "id": "9ae2e5aa-011a-487b-a7fb-d1783c3e5e3d",
298
+ "name": "image2",
299
+ "type": "IMAGE",
300
+ "linkIds": [
301
+ 298
302
+ ],
303
+ "localized_name": "image2",
304
+ "shape": 7,
305
+ "pos": [
306
+ 280,
307
+ 345
308
+ ]
309
+ },
310
+ {
311
+ "id": "65538758-3d1e-43dd-a64b-0cbf2cc3a467",
312
+ "name": "seed",
313
+ "type": "INT",
314
+ "linkIds": [
315
+ 299
316
+ ],
317
+ "pos": [
318
+ 280,
319
+ 365
320
+ ]
321
+ },
322
+ {
323
+ "id": "3ec56922-7974-45cb-86b8-a59245486b0b",
324
+ "name": "text",
325
+ "type": "STRING",
326
+ "linkIds": [
327
+ 300
328
+ ],
329
+ "pos": [
330
+ 280,
331
+ 385
332
+ ]
333
+ }
334
+ ],
335
+ "outputs": [
336
+ {
337
+ "id": "e940d353-8345-44cd-a2f1-676648b44d71",
338
+ "name": "IMAGE",
339
+ "type": "IMAGE",
340
+ "linkIds": [
341
+ 240
342
+ ],
343
+ "localized_name": "IMAGE",
344
+ "pos": [
345
+ 1700,
346
+ 335
347
+ ]
348
+ }
349
+ ],
350
+ "widgets": [],
351
+ "nodes": [
352
+ {
353
+ "id": 39,
354
+ "type": "VAELoader",
355
+ "pos": [
356
+ 370,
357
+ 420
358
+ ],
359
+ "size": [
360
+ 337.76861572265625,
361
+ 58
362
+ ],
363
+ "flags": {},
364
+ "order": 0,
365
+ "mode": 0,
366
+ "inputs": [],
367
+ "outputs": [
368
+ {
369
+ "localized_name": "VAE",
370
+ "name": "VAE",
371
+ "type": "VAE",
372
+ "links": [
373
+ 61,
374
+ 223
375
+ ]
376
+ }
377
+ ],
378
+ "properties": {
379
+ "Node name for S&R": "VAELoader",
380
+ "cnr_id": "comfy-core",
381
+ "ver": "0.3.38",
382
+ "models": [
383
+ {
384
+ "name": "ae.safetensors",
385
+ "url": "https://huggingface.co/Comfy-Org/Lumina_Image_2.0_Repackaged/resolve/main/split_files/vae/ae.safetensors",
386
+ "directory": "vae"
387
+ }
388
+ ]
389
+ },
390
+ "widgets_values": [
391
+ "ae.safetensors"
392
+ ]
393
+ },
394
+ {
395
+ "id": 38,
396
+ "type": "DualCLIPLoader",
397
+ "pos": [
398
+ 370,
399
+ 240
400
+ ],
401
+ "size": [
402
+ 337.76861572265625,
403
+ 130
404
+ ],
405
+ "flags": {},
406
+ "order": 1,
407
+ "mode": 0,
408
+ "inputs": [],
409
+ "outputs": [
410
+ {
411
+ "localized_name": "CLIP",
412
+ "name": "CLIP",
413
+ "type": "CLIP",
414
+ "links": [
415
+ 59
416
+ ]
417
+ }
418
+ ],
419
+ "properties": {
420
+ "Node name for S&R": "DualCLIPLoader",
421
+ "cnr_id": "comfy-core",
422
+ "ver": "0.3.38",
423
+ "models": [
424
+ {
425
+ "name": "clip_l.safetensors",
426
+ "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors",
427
+ "directory": "text_encoders"
428
+ },
429
+ {
430
+ "name": "t5xxl_fp8_e4m3fn_scaled.safetensors",
431
+ "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn_scaled.safetensors",
432
+ "directory": "text_encoders"
433
+ }
434
+ ]
435
+ },
436
+ "widgets_values": [
437
+ "clip_l.safetensors",
438
+ "t5xxl_fp8_e4m3fn_scaled.safetensors",
439
+ "flux",
440
+ "default"
441
+ ]
442
+ },
443
+ {
444
+ "id": 135,
445
+ "type": "ConditioningZeroOut",
446
+ "pos": [
447
+ 1020,
448
+ 230
449
+ ],
450
+ "size": [
451
+ 240,
452
+ 26
453
+ ],
454
+ "flags": {
455
+ "collapsed": false
456
+ },
457
+ "order": 6,
458
+ "mode": 0,
459
+ "inputs": [
460
+ {
461
+ "localized_name": "conditioning",
462
+ "name": "conditioning",
463
+ "type": "CONDITIONING",
464
+ "link": 237
465
+ }
466
+ ],
467
+ "outputs": [
468
+ {
469
+ "localized_name": "CONDITIONING",
470
+ "name": "CONDITIONING",
471
+ "type": "CONDITIONING",
472
+ "links": [
473
+ 238
474
+ ]
475
+ }
476
+ ],
477
+ "properties": {
478
+ "Node name for S&R": "ConditioningZeroOut",
479
+ "cnr_id": "comfy-core",
480
+ "ver": "0.3.39"
481
+ },
482
+ "widgets_values": []
483
+ },
484
+ {
485
+ "id": 8,
486
+ "type": "VAEDecode",
487
+ "pos": [
488
+ 1300,
489
+ 380
490
+ ],
491
+ "size": [
492
+ 190,
493
+ 46
494
+ ],
495
+ "flags": {
496
+ "collapsed": false
497
+ },
498
+ "order": 7,
499
+ "mode": 0,
500
+ "inputs": [
501
+ {
502
+ "localized_name": "samples",
503
+ "name": "samples",
504
+ "type": "LATENT",
505
+ "link": 52
506
+ },
507
+ {
508
+ "localized_name": "vae",
509
+ "name": "vae",
510
+ "type": "VAE",
511
+ "link": 61
512
+ }
513
+ ],
514
+ "outputs": [
515
+ {
516
+ "localized_name": "IMAGE",
517
+ "name": "IMAGE",
518
+ "type": "IMAGE",
519
+ "slot_index": 0,
520
+ "links": [
521
+ 240
522
+ ]
523
+ }
524
+ ],
525
+ "properties": {
526
+ "Node name for S&R": "VAEDecode",
527
+ "cnr_id": "comfy-core",
528
+ "ver": "0.3.38"
529
+ },
530
+ "widgets_values": []
531
+ },
532
+ {
533
+ "id": 124,
534
+ "type": "VAEEncode",
535
+ "pos": [
536
+ 750,
537
+ 430
538
+ ],
539
+ "size": [
540
+ 240,
541
+ 50
542
+ ],
543
+ "flags": {
544
+ "collapsed": false
545
+ },
546
+ "order": 11,
547
+ "mode": 0,
548
+ "inputs": [
549
+ {
550
+ "localized_name": "pixels",
551
+ "name": "pixels",
552
+ "type": "IMAGE",
553
+ "link": 222
554
+ },
555
+ {
556
+ "localized_name": "vae",
557
+ "name": "vae",
558
+ "type": "VAE",
559
+ "link": 223
560
+ }
561
+ ],
562
+ "outputs": [
563
+ {
564
+ "localized_name": "LATENT",
565
+ "name": "LATENT",
566
+ "type": "LATENT",
567
+ "links": [
568
+ 291,
569
+ 293
570
+ ]
571
+ }
572
+ ],
573
+ "properties": {
574
+ "Node name for S&R": "VAEEncode",
575
+ "cnr_id": "comfy-core",
576
+ "ver": "0.3.39"
577
+ },
578
+ "widgets_values": []
579
+ },
580
+ {
581
+ "id": 35,
582
+ "type": "FluxGuidance",
583
+ "pos": [
584
+ 1020,
585
+ 120
586
+ ],
587
+ "size": [
588
+ 240,
589
+ 58
590
+ ],
591
+ "flags": {
592
+ "collapsed": false
593
+ },
594
+ "order": 9,
595
+ "mode": 0,
596
+ "inputs": [
597
+ {
598
+ "localized_name": "conditioning",
599
+ "name": "conditioning",
600
+ "type": "CONDITIONING",
601
+ "link": 292
602
+ }
603
+ ],
604
+ "outputs": [
605
+ {
606
+ "localized_name": "CONDITIONING",
607
+ "name": "CONDITIONING",
608
+ "type": "CONDITIONING",
609
+ "slot_index": 0,
610
+ "links": [
611
+ 57
612
+ ]
613
+ }
614
+ ],
615
+ "properties": {
616
+ "Node name for S&R": "FluxGuidance",
617
+ "cnr_id": "comfy-core",
618
+ "ver": "0.3.38"
619
+ },
620
+ "widgets_values": [
621
+ 2.5
622
+ ]
623
+ },
624
+ {
625
+ "id": 37,
626
+ "type": "UNETLoader",
627
+ "pos": [
628
+ 370,
629
+ 110
630
+ ],
631
+ "size": [
632
+ 337.76861572265625,
633
+ 82
634
+ ],
635
+ "flags": {},
636
+ "order": 2,
637
+ "mode": 0,
638
+ "inputs": [],
639
+ "outputs": [
640
+ {
641
+ "localized_name": "MODEL",
642
+ "name": "MODEL",
643
+ "type": "MODEL",
644
+ "links": [
645
+ 58
646
+ ]
647
+ }
648
+ ],
649
+ "properties": {
650
+ "Node name for S&R": "UNETLoader",
651
+ "cnr_id": "comfy-core",
652
+ "ver": "0.3.38",
653
+ "models": [
654
+ {
655
+ "name": "flux1-dev-kontext_fp8_scaled.safetensors",
656
+ "url": "https://huggingface.co/Comfy-Org/flux1-kontext-dev_ComfyUI/resolve/main/split_files/diffusion_models/flux1-dev-kontext_fp8_scaled.safetensors",
657
+ "directory": "diffusion_models"
658
+ }
659
+ ]
660
+ },
661
+ "widgets_values": [
662
+ "flux1-dev-kontext_fp8_scaled.safetensors",
663
+ "default"
664
+ ]
665
+ },
666
+ {
667
+ "id": 177,
668
+ "type": "ReferenceLatent",
669
+ "pos": [
670
+ 780,
671
+ 170
672
+ ],
673
+ "size": [
674
+ 204.134765625,
675
+ 46
676
+ ],
677
+ "flags": {},
678
+ "order": 13,
679
+ "mode": 0,
680
+ "inputs": [
681
+ {
682
+ "localized_name": "conditioning",
683
+ "name": "conditioning",
684
+ "type": "CONDITIONING",
685
+ "link": 294
686
+ },
687
+ {
688
+ "localized_name": "latent",
689
+ "name": "latent",
690
+ "shape": 7,
691
+ "type": "LATENT",
692
+ "link": 293
693
+ }
694
+ ],
695
+ "outputs": [
696
+ {
697
+ "localized_name": "CONDITIONING",
698
+ "name": "CONDITIONING",
699
+ "type": "CONDITIONING",
700
+ "links": [
701
+ 292
702
+ ]
703
+ }
704
+ ],
705
+ "properties": {
706
+ "Node name for S&R": "ReferenceLatent",
707
+ "cnr_id": "comfy-core",
708
+ "ver": "0.3.41"
709
+ },
710
+ "widgets_values": []
711
+ },
712
+ {
713
+ "id": 146,
714
+ "type": "ImageStitch",
715
+ "pos": [
716
+ 380,
717
+ 610
718
+ ],
719
+ "size": [
720
+ 270,
721
+ 150
722
+ ],
723
+ "flags": {},
724
+ "order": 12,
725
+ "mode": 0,
726
+ "inputs": [
727
+ {
728
+ "localized_name": "image1",
729
+ "name": "image1",
730
+ "type": "IMAGE",
731
+ "link": 297
732
+ },
733
+ {
734
+ "localized_name": "image2",
735
+ "name": "image2",
736
+ "shape": 7,
737
+ "type": "IMAGE",
738
+ "link": 298
739
+ }
740
+ ],
741
+ "outputs": [
742
+ {
743
+ "localized_name": "IMAGE",
744
+ "name": "IMAGE",
745
+ "type": "IMAGE",
746
+ "links": [
747
+ 251
748
+ ]
749
+ }
750
+ ],
751
+ "properties": {
752
+ "Node name for S&R": "ImageStitch",
753
+ "cnr_id": "comfy-core",
754
+ "ver": "0.3.40"
755
+ },
756
+ "widgets_values": [
757
+ "right",
758
+ true,
759
+ 0,
760
+ "white"
761
+ ]
762
+ },
763
+ {
764
+ "id": 42,
765
+ "type": "FluxKontextImageScale",
766
+ "pos": [
767
+ 730,
768
+ 620
769
+ ],
770
+ "size": [
771
+ 270,
772
+ 30
773
+ ],
774
+ "flags": {
775
+ "collapsed": false
776
+ },
777
+ "order": 10,
778
+ "mode": 0,
779
+ "inputs": [
780
+ {
781
+ "localized_name": "image",
782
+ "name": "image",
783
+ "type": "IMAGE",
784
+ "link": 251
785
+ }
786
+ ],
787
+ "outputs": [
788
+ {
789
+ "localized_name": "IMAGE",
790
+ "name": "IMAGE",
791
+ "type": "IMAGE",
792
+ "links": [
793
+ 222
794
+ ]
795
+ }
796
+ ],
797
+ "properties": {
798
+ "Node name for S&R": "FluxKontextImageScale",
799
+ "cnr_id": "comfy-core",
800
+ "ver": "0.3.38"
801
+ },
802
+ "widgets_values": []
803
+ },
804
+ {
805
+ "id": 178,
806
+ "type": "MarkdownNote",
807
+ "pos": [
808
+ 740,
809
+ -120
810
+ ],
811
+ "size": [
812
+ 540,
813
+ 150
814
+ ],
815
+ "flags": {},
816
+ "order": 3,
817
+ "mode": 0,
818
+ "inputs": [],
819
+ "outputs": [],
820
+ "title": "About multiple images reference",
821
+ "properties": {},
822
+ "widgets_values": [
823
+ "[English] In addition to using **Image Stitch** to combine two images at a time, you can also encode individual images, then concatenate multiple latent conditions using the **ReferenceLatent** node, thus achieving the purpose of referencing multiple images. You can use the **EmptySD3LatentImage** node on the right to connect to **KSamper** and customize the size of the **latent_image**."
824
+ ],
825
+ "color": "#432",
826
+ "bgcolor": "#653"
827
+ },
828
+ {
829
+ "id": 188,
830
+ "type": "EmptySD3LatentImage",
831
+ "pos": [
832
+ 1300,
833
+ -110
834
+ ],
835
+ "size": [
836
+ 310,
837
+ 106
838
+ ],
839
+ "flags": {},
840
+ "order": 4,
841
+ "mode": 4,
842
+ "inputs": [],
843
+ "outputs": [
844
+ {
845
+ "localized_name": "LATENT",
846
+ "name": "LATENT",
847
+ "type": "LATENT",
848
+ "links": null
849
+ }
850
+ ],
851
+ "properties": {
852
+ "Node name for S&R": "EmptySD3LatentImage",
853
+ "cnr_id": "comfy-core",
854
+ "ver": "0.3.41"
855
+ },
856
+ "widgets_values": [
857
+ 1024,
858
+ 1024,
859
+ 1
860
+ ]
861
+ },
862
+ {
863
+ "id": 31,
864
+ "type": "KSampler",
865
+ "pos": [
866
+ 1300,
867
+ 70
868
+ ],
869
+ "size": [
870
+ 320,
871
+ 262
872
+ ],
873
+ "flags": {},
874
+ "order": 8,
875
+ "mode": 0,
876
+ "inputs": [
877
+ {
878
+ "localized_name": "model",
879
+ "name": "model",
880
+ "type": "MODEL",
881
+ "link": 58
882
+ },
883
+ {
884
+ "localized_name": "positive",
885
+ "name": "positive",
886
+ "type": "CONDITIONING",
887
+ "link": 57
888
+ },
889
+ {
890
+ "localized_name": "negative",
891
+ "name": "negative",
892
+ "type": "CONDITIONING",
893
+ "link": 238
894
+ },
895
+ {
896
+ "localized_name": "latent_image",
897
+ "name": "latent_image",
898
+ "type": "LATENT",
899
+ "link": 291
900
+ },
901
+ {
902
+ "localized_name": "seed",
903
+ "name": "seed",
904
+ "type": "INT",
905
+ "widget": {
906
+ "name": "seed"
907
+ },
908
+ "link": 299
909
+ }
910
+ ],
911
+ "outputs": [
912
+ {
913
+ "localized_name": "LATENT",
914
+ "name": "LATENT",
915
+ "type": "LATENT",
916
+ "slot_index": 0,
917
+ "links": [
918
+ 52
919
+ ]
920
+ }
921
+ ],
922
+ "properties": {
923
+ "Node name for S&R": "KSampler",
924
+ "cnr_id": "comfy-core",
925
+ "ver": "0.3.38"
926
+ },
927
+ "widgets_values": [
928
+ 784381637916598,
929
+ "randomize",
930
+ 20,
931
+ 1,
932
+ "euler",
933
+ "simple",
934
+ 1
935
+ ]
936
+ },
937
+ {
938
+ "id": 6,
939
+ "type": "CLIPTextEncode",
940
+ "pos": [
941
+ 1100,
942
+ 590
943
+ ],
944
+ "size": [
945
+ 400,
946
+ 220
947
+ ],
948
+ "flags": {},
949
+ "order": 5,
950
+ "mode": 0,
951
+ "inputs": [
952
+ {
953
+ "localized_name": "clip",
954
+ "name": "clip",
955
+ "type": "CLIP",
956
+ "link": 59
957
+ },
958
+ {
959
+ "localized_name": "text",
960
+ "name": "text",
961
+ "type": "STRING",
962
+ "widget": {
963
+ "name": "text"
964
+ },
965
+ "link": 300
966
+ }
967
+ ],
968
+ "outputs": [
969
+ {
970
+ "localized_name": "CONDITIONING",
971
+ "name": "CONDITIONING",
972
+ "type": "CONDITIONING",
973
+ "slot_index": 0,
974
+ "links": [
975
+ 237,
976
+ 294
977
+ ]
978
+ }
979
+ ],
980
+ "title": "CLIP Text Encode (Positive Prompt)",
981
+ "properties": {
982
+ "Node name for S&R": "CLIPTextEncode",
983
+ "cnr_id": "comfy-core",
984
+ "ver": "0.3.38"
985
+ },
986
+ "widgets_values": [
987
+ "Using this elegant style, create a portrait of a swan wearing a pearl tiara and lace collar, maintaining the same refined quality and soft color tones."
988
+ ],
989
+ "color": "#232",
990
+ "bgcolor": "#353"
991
+ }
992
+ ],
993
+ "groups": [
994
+ {
995
+ "id": 1,
996
+ "title": "Step 1- Load models",
997
+ "bounding": [
998
+ 360,
999
+ 40,
1000
+ 360,
1001
+ 450
1002
+ ],
1003
+ "color": "#3f789e",
1004
+ "font_size": 24,
1005
+ "flags": {}
1006
+ },
1007
+ {
1008
+ "id": 5,
1009
+ "title": "Step 3 - Prompt",
1010
+ "bounding": [
1011
+ 1080,
1012
+ 510,
1013
+ 430,
1014
+ 330
1015
+ ],
1016
+ "color": "#3f789e",
1017
+ "font_size": 24,
1018
+ "flags": {}
1019
+ },
1020
+ {
1021
+ "id": 6,
1022
+ "title": "Conditioning",
1023
+ "bounding": [
1024
+ 740,
1025
+ 40,
1026
+ 540,
1027
+ 250
1028
+ ],
1029
+ "color": "#3f789e",
1030
+ "font_size": 24,
1031
+ "flags": {}
1032
+ }
1033
+ ],
1034
+ "links": [
1035
+ {
1036
+ "id": 237,
1037
+ "origin_id": 6,
1038
+ "origin_slot": 0,
1039
+ "target_id": 135,
1040
+ "target_slot": 0,
1041
+ "type": "CONDITIONING"
1042
+ },
1043
+ {
1044
+ "id": 52,
1045
+ "origin_id": 31,
1046
+ "origin_slot": 0,
1047
+ "target_id": 8,
1048
+ "target_slot": 0,
1049
+ "type": "LATENT"
1050
+ },
1051
+ {
1052
+ "id": 61,
1053
+ "origin_id": 39,
1054
+ "origin_slot": 0,
1055
+ "target_id": 8,
1056
+ "target_slot": 1,
1057
+ "type": "VAE"
1058
+ },
1059
+ {
1060
+ "id": 222,
1061
+ "origin_id": 42,
1062
+ "origin_slot": 0,
1063
+ "target_id": 124,
1064
+ "target_slot": 0,
1065
+ "type": "IMAGE"
1066
+ },
1067
+ {
1068
+ "id": 223,
1069
+ "origin_id": 39,
1070
+ "origin_slot": 0,
1071
+ "target_id": 124,
1072
+ "target_slot": 1,
1073
+ "type": "VAE"
1074
+ },
1075
+ {
1076
+ "id": 292,
1077
+ "origin_id": 177,
1078
+ "origin_slot": 0,
1079
+ "target_id": 35,
1080
+ "target_slot": 0,
1081
+ "type": "CONDITIONING"
1082
+ },
1083
+ {
1084
+ "id": 294,
1085
+ "origin_id": 6,
1086
+ "origin_slot": 0,
1087
+ "target_id": 177,
1088
+ "target_slot": 0,
1089
+ "type": "CONDITIONING"
1090
+ },
1091
+ {
1092
+ "id": 293,
1093
+ "origin_id": 124,
1094
+ "origin_slot": 0,
1095
+ "target_id": 177,
1096
+ "target_slot": 1,
1097
+ "type": "LATENT"
1098
+ },
1099
+ {
1100
+ "id": 59,
1101
+ "origin_id": 38,
1102
+ "origin_slot": 0,
1103
+ "target_id": 6,
1104
+ "target_slot": 0,
1105
+ "type": "CLIP"
1106
+ },
1107
+ {
1108
+ "id": 58,
1109
+ "origin_id": 37,
1110
+ "origin_slot": 0,
1111
+ "target_id": 31,
1112
+ "target_slot": 0,
1113
+ "type": "MODEL"
1114
+ },
1115
+ {
1116
+ "id": 57,
1117
+ "origin_id": 35,
1118
+ "origin_slot": 0,
1119
+ "target_id": 31,
1120
+ "target_slot": 1,
1121
+ "type": "CONDITIONING"
1122
+ },
1123
+ {
1124
+ "id": 238,
1125
+ "origin_id": 135,
1126
+ "origin_slot": 0,
1127
+ "target_id": 31,
1128
+ "target_slot": 2,
1129
+ "type": "CONDITIONING"
1130
+ },
1131
+ {
1132
+ "id": 291,
1133
+ "origin_id": 124,
1134
+ "origin_slot": 0,
1135
+ "target_id": 31,
1136
+ "target_slot": 3,
1137
+ "type": "LATENT"
1138
+ },
1139
+ {
1140
+ "id": 251,
1141
+ "origin_id": 146,
1142
+ "origin_slot": 0,
1143
+ "target_id": 42,
1144
+ "target_slot": 0,
1145
+ "type": "IMAGE"
1146
+ },
1147
+ {
1148
+ "id": 297,
1149
+ "origin_id": -10,
1150
+ "origin_slot": 0,
1151
+ "target_id": 146,
1152
+ "target_slot": 0,
1153
+ "type": "IMAGE"
1154
+ },
1155
+ {
1156
+ "id": 298,
1157
+ "origin_id": -10,
1158
+ "origin_slot": 1,
1159
+ "target_id": 146,
1160
+ "target_slot": 1,
1161
+ "type": "IMAGE"
1162
+ },
1163
+ {
1164
+ "id": 240,
1165
+ "origin_id": 8,
1166
+ "origin_slot": 0,
1167
+ "target_id": -20,
1168
+ "target_slot": 0,
1169
+ "type": "IMAGE"
1170
+ },
1171
+ {
1172
+ "id": 299,
1173
+ "origin_id": -10,
1174
+ "origin_slot": 2,
1175
+ "target_id": 31,
1176
+ "target_slot": 4,
1177
+ "type": "INT"
1178
+ },
1179
+ {
1180
+ "id": 300,
1181
+ "origin_id": -10,
1182
+ "origin_slot": 3,
1183
+ "target_id": 6,
1184
+ "target_slot": 1,
1185
+ "type": "STRING"
1186
+ }
1187
+ ],
1188
+ "extra": {
1189
+ "workflowRendererVersion": "LG"
1190
+ }
1191
+ }
1192
+ ]
1193
+ },
1036
1194
  "config": {},
1037
1195
  "extra": {
1038
1196
  "ds": {
1039
- "scale": 0.5909232551952691,
1197
+ "scale": 0.515096223863771,
1040
1198
  "offset": [
1041
- 1279.4241547910187,
1042
- 33.095262680409
1199
+ 2193.3162846871633,
1200
+ 407.75837067267213
1043
1201
  ]
1044
1202
  },
1045
- "frontendVersion": "1.28.7",
1203
+ "frontendVersion": "1.36.0",
1046
1204
  "groupNodes": {},
1047
1205
  "VHS_latentpreview": false,
1048
1206
  "VHS_latentpreviewrate": 0,
1049
1207
  "VHS_MetadataImage": true,
1050
- "VHS_KeepIntermediate": true
1208
+ "VHS_KeepIntermediate": true,
1209
+ "workflowRendererVersion": "LG"
1051
1210
  },
1052
1211
  "version": 0.4
1053
- }
1212
+ }