{ "id": "7cbcec68-7fa6-47bb-a38a-da689949a001", "revision": 0, "last_node_id": 193, "last_link_id": 306, "nodes": [ { "id": 42, "type": "FluxKontextImageScale", "pos": [ 48.03105163574219, 508.45477294921875 ], "size": [ 270, 30 ], "flags": { "collapsed": false }, "order": 13, "mode": 0, "inputs": [ { "name": "image", "type": "IMAGE", "link": 251 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 222, 289 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.38", "Node name for S&R": "FluxKontextImageScale", "widget_ue_connectable": {} }, "widgets_values": [] }, { "id": 185, "type": "MarkdownNote", "pos": [ -1538.1163330078125, 537.2955932617188 ], "size": [ 510, 170 ], "flags": {}, "order": 0, "mode": 0, "inputs": [], "outputs": [], "title": "About VRAM", "properties": { "widget_ue_connectable": {} }, "widgets_values": [ "For reference:\n- **fp8_scaled**: Requires about 20GB of VRAM.\n- **Original**: Requires about 32GB of VRAM.\n\n---\n\n供参考:\n- **fp8_scaled** : 大概需要 20GB 左右 VRAM \n- **原始权重**: 原始权重,大概需要 32GB 左右 VRAM \n" ], "color": "#432", "bgcolor": "#653" }, { "id": 175, "type": "MarkdownNote", "pos": [ 48.03105163574219, 578.4547729492188 ], "size": [ 320, 88 ], "flags": {}, "order": 1, "mode": 0, "inputs": [], "outputs": [], "title": "How to enable multiple image input", "properties": { "widget_ue_connectable": {} }, "widgets_values": [ "Click on the **Load image (from output)** node and use **Ctrl + B** to enable multiple image input support." ], "color": "#432", "bgcolor": "#653" }, { "id": 37, "type": "UNETLoader", "pos": [ -692.51904296875, 101.7772216796875 ], "size": [ 337.76861572265625, 82 ], "flags": {}, "order": 2, "mode": 0, "inputs": [], "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ 303 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.38", "Node name for S&R": "UNETLoader", "models": [ { "name": "flux1-dev-kontext_fp8_scaled.safetensors", "url": "https://huggingface.co/Comfy-Org/flux1-kontext-dev_ComfyUI/resolve/main/split_files/diffusion_models/flux1-dev-kontext_fp8_scaled.safetensors", "directory": "diffusion_models" } ], "widget_ue_connectable": {} }, "widgets_values": [ "flux1-dev-kontext_fp8_scaled.safetensors", "default" ], "color": "#323", "bgcolor": "#535" }, { "id": 8, "type": "VAEDecode", "pos": [ 823.2332153320312, 13.524840354919434 ], "size": [ 190, 46 ], "flags": { "collapsed": true }, "order": 21, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 52 }, { "name": "vae", "type": "VAE", "link": 61 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "slot_index": 0, "links": [ 240 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.38", "Node name for S&R": "VAEDecode", "widget_ue_connectable": {} }, "widgets_values": [] }, { "id": 184, "type": "MarkdownNote", "pos": [ -1538.1163330078125, 87.295654296875 ], "size": [ 510, 400 ], "flags": {}, "order": 3, "mode": 0, "inputs": [], "outputs": [], "title": "Model links", "properties": { "widget_ue_connectable": {} }, "widgets_values": [ "[tutorial](http://docs.comfy.org/tutorials/flux/flux-1-kontext-dev) | [教程](http://docs.comfy.org/zh-CN/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" ], "color": "#432", "bgcolor": "#653" }, { "id": 38, "type": "DualCLIPLoader", "pos": [ -692.51904296875, 228.12562561035156 ], "size": [ 337.76861572265625, 130 ], "flags": {}, "order": 4, "mode": 0, "inputs": [], "outputs": [ { "name": "CLIP", "type": "CLIP", "links": [ 304 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.38", "Node name for S&R": "DualCLIPLoader", "models": [ { "name": "clip_l.safetensors", "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors", "directory": "text_encoders" }, { "name": "t5xxl_fp8_e4m3fn_scaled.safetensors", "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn_scaled.safetensors", "directory": "text_encoders" } ], "widget_ue_connectable": {} }, "widgets_values": [ "clip_l.safetensors", "t5xxl_fp8.safetensors", "flux", "default" ], "color": "#323", "bgcolor": "#535" }, { "id": 146, "type": "ImageStitch", "pos": [ -271.6634826660156, 508.45477294921875 ], "size": [ 270, 150 ], "flags": {}, "order": 11, "mode": 0, "inputs": [ { "name": "image1", "type": "IMAGE", "link": 249 }, { "name": "image2", "shape": 7, "type": "IMAGE", "link": 250 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 251 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.40", "Node name for S&R": "ImageStitch", "widget_ue_connectable": {} }, "widgets_values": [ "right", true, 0, "white" ] }, { "id": 35, "type": "FluxGuidance", "pos": [ 675.4931640625, 127.74691009521484 ], "size": [ 260.8838195800781, 58 ], "flags": { "collapsed": false }, "order": 19, "mode": 0, "inputs": [ { "name": "conditioning", "type": "CONDITIONING", "link": 292 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "slot_index": 0, "links": [ 57 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.38", "Node name for S&R": "FluxGuidance", "widget_ue_connectable": {} }, "widgets_values": [ 2.5 ] }, { "id": 189, "type": "MarkdownNote", "pos": [ -1540.0147705078125, 992.39013671875 ], "size": [ 510.7558898925781, 132.99609375 ], "flags": {}, "order": 5, "mode": 0, "inputs": [], "outputs": [], "title": "About multi-round edit", "properties": { "widget_ue_connectable": {} }, "widgets_values": [ "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." ], "color": "#432", "bgcolor": "#653" }, { "id": 136, "type": "SaveImage", "pos": [ 981.8594360351562, 70.94837951660156 ], "size": [ 744.5913696289062, 1021.1671752929688 ], "flags": {}, "order": 22, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 240 } ], "outputs": [], "properties": { "cnr_id": "comfy-core", "ver": "0.3.39", "Node name for S&R": "SaveImage", "widget_ue_connectable": {} }, "widgets_values": [ "%date:MM-dd%/Noobify/ComfyUI_" ] }, { "id": 177, "type": "ReferenceLatent", "pos": [ 421.04595947265625, 126.03887939453125 ], "size": [ 240.708984375, 52.14229965209961 ], "flags": { "collapsed": true }, "order": 17, "mode": 0, "inputs": [ { "name": "conditioning", "type": "CONDITIONING", "link": 294 }, { "name": "latent", "shape": 7, "type": "LATENT", "link": 293 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "links": [ 292 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.41", "Node name for S&R": "ReferenceLatent", "widget_ue_connectable": {} }, "widgets_values": [] }, { "id": 124, "type": "VAEEncode", "pos": [ 425.1010437011719, 173.12998962402344 ], "size": [ 240, 50 ], "flags": { "collapsed": true }, "order": 15, "mode": 0, "inputs": [ { "name": "pixels", "type": "IMAGE", "link": 222 }, { "name": "vae", "type": "VAE", "link": 223 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 293, 305 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.39", "Node name for S&R": "VAEEncode", "widget_ue_connectable": {} }, "widgets_values": [] }, { "id": 135, "type": "ConditioningZeroOut", "pos": [ 413.4072570800781, 217.0537567138672 ], "size": [ 240, 26 ], "flags": { "collapsed": false }, "order": 14, "mode": 0, "inputs": [ { "name": "conditioning", "type": "CONDITIONING", "link": 237 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "links": [ 238 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.39", "Node name for S&R": "ConditioningZeroOut", "widget_ue_connectable": {} }, "widgets_values": [] }, { "id": 39, "type": "VAELoader", "pos": [ 674.9263305664062, 219.2698211669922 ], "size": [ 254.2333526611328, 58 ], "flags": { "collapsed": false }, "order": 6, "mode": 0, "inputs": [], "outputs": [ { "name": "VAE", "type": "VAE", "links": [ 61, 223 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.38", "Node name for S&R": "VAELoader", "models": [ { "name": "ae.safetensors", "url": "https://huggingface.co/Comfy-Org/Lumina_Image_2.0_Repackaged/resolve/main/split_files/vae/ae.safetensors", "directory": "vae" } ], "widget_ue_connectable": {} }, "widgets_values": [ "ae.safetensors" ], "color": "#322", "bgcolor": "#533" }, { "id": 31, "type": "KSampler", "pos": [ 434.6272277832031, 321.3169250488281 ], "size": [ 496.898193359375, 262 ], "flags": {}, "order": 20, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 301 }, { "name": "positive", "type": "CONDITIONING", "link": 57 }, { "name": "negative", "type": "CONDITIONING", "link": 238 }, { "name": "latent_image", "type": "LATENT", "link": 306 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "slot_index": 0, "links": [ 52 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.38", "Node name for S&R": "KSampler", "widget_ue_connectable": {} }, "widgets_values": [ 843282458914228, "randomize", 20, 1, "euler", "simple", 1 ], "color": "#323", "bgcolor": "#535" }, { "id": 173, "type": "PreviewImage", "pos": [ 410.59356689453125, 854.6057739257812 ], "size": [ 269.4578857421875, 258 ], "flags": {}, "order": 16, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 289 } ], "outputs": [], "properties": { "cnr_id": "comfy-core", "ver": "0.3.40", "Node name for S&R": "PreviewImage", "widget_ue_connectable": {} }, "widgets_values": [] }, { "id": 192, "type": "LatentUpscale", "pos": [ 440.3393249511719, 641.6296997070312 ], "size": [ 471.02069091796875, 130 ], "flags": {}, "order": 18, "mode": 4, "inputs": [ { "name": "samples", "type": "LATENT", "link": 305 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 306 ] } ], "title": "image size", "properties": { "cnr_id": "comfy-core", "ver": "0.3.45", "Node name for S&R": "LatentUpscale", "widget_ue_connectable": {} }, "widgets_values": [ "nearest-exact", 512, 512, "disabled" ] }, { "id": 147, "type": "LoadImageOutput", "pos": [ 48.03105163574219, 708.4547729492188 ], "size": [ 320, 374 ], "flags": {}, "order": 7, "mode": 4, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 250 ] }, { "name": "MASK", "type": "MASK", "links": null } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.40", "Node name for S&R": "LoadImageOutput", "widget_ue_connectable": {} }, "widgets_values": [ "ComfyUI_00222_.png [output]", false, "refresh", "image" ], "color": "#322", "bgcolor": "#533" }, { "id": 186, "type": "MarkdownNote", "pos": [ -1538.1163330078125, 757.2955932617188 ], "size": [ 510, 170 ], "flags": {}, "order": 8, "mode": 0, "inputs": [], "outputs": [], "title": "Flux Kontext Prompt Techniques", "properties": { "widget_ue_connectable": {} }, "widgets_values": [ "\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. " ], "color": "#432", "bgcolor": "#653" }, { "id": 191, "type": "LoraLoader", "pos": [ -692.51904296875, 405.8274230957031 ], "size": [ 338.802490234375, 126 ], "flags": {}, "order": 10, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 303 }, { "name": "clip", "type": "CLIP", "link": 304 } ], "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ 301 ] }, { "name": "CLIP", "type": "CLIP", "links": [ 302 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.45", "Node name for S&R": "LoraLoader", "widget_ue_connectable": {} }, "widgets_values": [ "Noobify/noobify_v1.safetensors", 1.0000000000000002, 1.0000000000000002 ], "color": "#323", "bgcolor": "#535" }, { "id": 6, "type": "CLIPTextEncode", "pos": [ -288.80035400390625, 123.10784912109375 ], "size": [ 658.6285400390625, 235.9782257080078 ], "flags": { "collapsed": false }, "order": 12, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 302 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "slot_index": 0, "links": [ 237, 294 ] } ], "title": "CLIP Text Encode (Positive Prompt)", "properties": { "cnr_id": "comfy-core", "ver": "0.3.38", "Node name for S&R": "CLIPTextEncode", "widget_ue_connectable": {} }, "widgets_values": [ "apply the noobify style to the image" ], "color": "#232", "bgcolor": "#353" }, { "id": 142, "type": "LoadImageOutput", "pos": [ -291.96856689453125, 708.4547729492188 ], "size": [ 320, 374 ], "flags": {}, "order": 9, "mode": 0, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 249 ] }, { "name": "MASK", "type": "MASK", "links": null } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.40", "Node name for S&R": "LoadImageOutput", "widget_ue_connectable": {} }, "widgets_values": [ "Frukt-3180176258.jpg [output]", false, "refresh", "image" ], "color": "#322", "bgcolor": "#533" } ], "links": [ [ 52, 31, 0, 8, 0, "LATENT" ], [ 57, 35, 0, 31, 1, "CONDITIONING" ], [ 61, 39, 0, 8, 1, "VAE" ], [ 222, 42, 0, 124, 0, "IMAGE" ], [ 223, 39, 0, 124, 1, "VAE" ], [ 237, 6, 0, 135, 0, "CONDITIONING" ], [ 238, 135, 0, 31, 2, "CONDITIONING" ], [ 240, 8, 0, 136, 0, "IMAGE" ], [ 249, 142, 0, 146, 0, "IMAGE" ], [ 250, 147, 0, 146, 1, "IMAGE" ], [ 251, 146, 0, 42, 0, "IMAGE" ], [ 289, 42, 0, 173, 0, "IMAGE" ], [ 292, 177, 0, 35, 0, "CONDITIONING" ], [ 293, 124, 0, 177, 1, "LATENT" ], [ 294, 6, 0, 177, 0, "CONDITIONING" ], [ 301, 191, 0, 31, 0, "MODEL" ], [ 302, 191, 1, 6, 0, "CLIP" ], [ 303, 37, 0, 191, 0, "MODEL" ], [ 304, 38, 0, 191, 1, "CLIP" ], [ 305, 124, 0, 192, 0, "LATENT" ], [ 306, 192, 0, 31, 3, "LATENT" ] ], "groups": [ { "id": 1, "title": "Step 1- Load models", "bounding": [ -712.5701293945312, 40.711483001708984, 386.2890319824219, 1048.01416015625 ], "color": "#3f789e", "font_size": 24, "flags": {} }, { "id": 3, "title": "Step 2 - Upload images", "bounding": [ -311.9685363769531, 418.4547119140625, 700, 680 ], "color": "#3f789e", "font_size": 24, "flags": {} }, { "id": 5, "title": "Step 3 - Prompt", "bounding": [ -308.0375671386719, 44.63368606567383, 692.739501953125, 321.5693664550781 ], "color": "#3f789e", "font_size": 24, "flags": {} }, { "id": 6, "title": "Conditioning", "bounding": [ 406.1029052734375, 41.93994903564453, 557.7568359375, 758.3590087890625 ], "color": "#3f789e", "font_size": 24, "flags": {} }, { "id": 7, "title": "Downloads & Notes", "bounding": [ -1550.0147705078125, 13.69570541381836, 531.8984375, 1121.690673828125 ], "color": "#3f789e", "font_size": 24, "flags": {} } ], "config": {}, "extra": { "ds": { "scale": 0.7400249944258711, "offset": [ 1000.6643302721632, 406.4957206321035 ] }, "frontendVersion": "1.23.4", "groupNodes": {}, "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, "VHS_KeepIntermediate": true, "ue_links": [], "links_added_by_ue": [] }, "version": 0.4 }