Workflows are roughly the same for any model


The top is the workflow for Stable Diffusion 1.5, and the bottom is for the latest model Z-Image (hypothetical/example).
Can you see that although there are minor differences such as the number of nodes, they are roughly the same? No matter what new image generation model or video generation model comes out, the flow of "preparing materials and throwing them to KSampler" does not change.
I understand very well the feeling of wanting to use new models quickly, but please suppress your impatience and cover the workflows based on Stable Diffusion 1.5 once.
Your future ComfyUI life should become much more enjoyable.
What does "Modular" mean?
Node-based tools like ComfyUI are often explained as having the advantage of being "modular".
So, what is modular in the first place? How is it useful in image generation?
Modular System
A modular system is a structure where "necessary functions can be added later" like LEGO blocks.
- There is a base foundation
- When a necessary function comes up, add only that block
- If you want to increase functions further, add blocks again
This way of thinking of "adding on" applies directly to ComfyUI workflows.
How it works in ComfyUI
Leaving aside specific node names for a moment, let's look at how a workflow expands little by little. Let's check in the flow which parts are increasing as modules.
-
- text2image
- The basics. Just input a prompt and throw it to KSampler.

-
{ "id": "9f1affcb-e640-4652-8250-bc15a9de2063", "revision": 0, "last_node_id": 10, "last_link_id": 11, "nodes": [ { "id": 8, "type": "VAEDecode", "pos": [ 1234.4100000000008, 189.20999999999998 ], "size": [ 210, 46 ], "flags": {}, "order": 5, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 7 }, { "name": "vae", "type": "VAE", "link": 8 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "slot_index": 0, "links": [ 9 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "VAEDecode" }, "widgets_values": [] }, { "id": 7, "type": "CLIPTextEncode", "pos": [ 414.0311166015624, 404.7299999999998 ], "size": [ 423.81391513671883, 124.97027910156254 ], "flags": {}, "order": 3, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 5 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "slot_index": 0, "links": [ 6 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "text, watermark" ] }, { "id": 6, "type": "CLIPTextEncode", "pos": [ 415, 186 ], "size": [ 422.84503173828125, 164.31304931640625 ], "flags": {}, "order": 2, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 3 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "slot_index": 0, "links": [ 4 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "(best quality, high quality),close-up flower portrait of a single red rose in a small clear glass vase,centered composition on a dark blurred background,\nsoft studio lighting, shallow depth of field, extremely detailed petals and texture,photorealistic, 8k, ultra high resolution" ] }, { "id": 5, "type": "EmptyLatentImage", "pos": [ 547.8450317382812, 590.8499999999995 ], "size": [ 290, 106 ], "flags": {}, "order": 0, "mode": 0, "inputs": [], "outputs": [ { "name": "LATENT", "type": "LATENT", "slot_index": 0, "links": [ 11 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "EmptyLatentImage" }, "widgets_values": [ 512, 512, 1 ] }, { "id": 3, "type": "KSampler", "pos": [ 888.41, 187.20999999999998 ], "size": [ 315, 262 ], "flags": {}, "order": 4, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 1 }, { "name": "positive", "type": "CONDITIONING", "link": 4 }, { "name": "negative", "type": "CONDITIONING", "link": 6 }, { "name": "latent_image", "type": "LATENT", "link": 11 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "slot_index": 0, "links": [ 7 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "KSampler" }, "widgets_values": [ 12345, "fixed", 20, 8, "euler", "normal", 1 ] }, { "id": 9, "type": "SaveImage", "pos": [ 1476.4100000000008, 190.20999999999998 ], "size": [ 403.8933499999998, 466.45131000000003 ], "flags": {}, "order": 6, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 9 } ], "outputs": [], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76" }, "widgets_values": [ "ComfyUI" ] }, { "id": 4, "type": "CheckpointLoaderSimple", "pos": [ 43.89590000000001, 328.6354400000006 ], "size": [ 315, 98 ], "flags": {}, "order": 1, "mode": 0, "inputs": [], "outputs": [ { "name": "MODEL", "type": "MODEL", "slot_index": 0, "links": [ 1 ] }, { "name": "CLIP", "type": "CLIP", "slot_index": 1, "links": [ 3, 5 ] }, { "name": "VAE", "type": "VAE", "slot_index": 2, "links": [ 8 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CheckpointLoaderSimple" }, "widgets_values": [ "v1-5-pruned-emaonly-fp16.safetensors" ], "color": "#323", "bgcolor": "#535" } ], "links": [ [ 1, 4, 0, 3, 0, "MODEL" ], [ 3, 4, 1, 6, 0, "CLIP" ], [ 4, 6, 0, 3, 1, "CONDITIONING" ], [ 5, 4, 1, 7, 0, "CLIP" ], [ 6, 7, 0, 3, 2, "CONDITIONING" ], [ 7, 3, 0, 8, 0, "LATENT" ], [ 8, 4, 2, 8, 1, "VAE" ], [ 9, 8, 0, 9, 0, "IMAGE" ], [ 11, 5, 0, 3, 3, "LATENT" ] ], "groups": [], "config": {}, "extra": { "ds": { "scale": 0.7513148009015777, "offset": [ 56.10409999999999, -86 ] }, "workflowRendererVersion": "LG", "frontendVersion": "1.34.6", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, "VHS_KeepIntermediate": true }, "version": 0.4 }
-
- image2image
- Generates an image using an input image as a draft.

-
{ "id": "9f1affcb-e640-4652-8250-bc15a9de2063", "revision": 0, "last_node_id": 14, "last_link_id": 14, "nodes": [ { "id": 8, "type": "VAEDecode", "pos": [ 1234.4100000000008, 189.20999999999998 ], "size": [ 210, 46 ], "flags": {}, "order": 6, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 7 }, { "name": "vae", "type": "VAE", "link": 8 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "slot_index": 0, "links": [ 9 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "VAEDecode" }, "widgets_values": [] }, { "id": 7, "type": "CLIPTextEncode", "pos": [ 414.0311166015624, 404.7299999999998 ], "size": [ 423.81391513671883, 124.97027910156254 ], "flags": {}, "order": 3, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 5 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "slot_index": 0, "links": [ 6 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "text, watermark" ] }, { "id": 9, "type": "SaveImage", "pos": [ 1476.4100000000008, 190.20999999999998 ], "size": [ 403.8933499999998, 466.45131000000003 ], "flags": {}, "order": 7, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 9 } ], "outputs": [], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76" }, "widgets_values": [ "ComfyUI" ] }, { "id": 12, "type": "VAEEncode", "pos": [ 697.8450317382812, 588.1185311795643 ], "size": [ 140, 46 ], "flags": {}, "order": 4, "mode": 0, "inputs": [ { "name": "pixels", "type": "IMAGE", "link": 13 }, { "name": "vae", "type": "VAE", "link": 14 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 12 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "VAEEncode" }, "widgets_values": [], "color": "#232", "bgcolor": "#353" }, { "id": 14, "type": "LoadImage", "pos": [ 368.5349338091666, 588.1185311795643 ], "size": [ 300.7160781250001, 410.129 ], "flags": {}, "order": 0, "mode": 0, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 13 ] }, { "name": "MASK", "type": "MASK", "links": null } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "LoadImage" }, "widgets_values": [ "ComfyUI_02814_.png", "image" ], "color": "#232", "bgcolor": "#353" }, { "id": 4, "type": "CheckpointLoaderSimple", "pos": [ 43.89590000000001, 328.6354400000006 ], "size": [ 315, 98 ], "flags": {}, "order": 1, "mode": 0, "inputs": [], "outputs": [ { "name": "MODEL", "type": "MODEL", "slot_index": 0, "links": [ 1 ] }, { "name": "CLIP", "type": "CLIP", "slot_index": 1, "links": [ 3, 5 ] }, { "name": "VAE", "type": "VAE", "slot_index": 2, "links": [ 8, 14 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CheckpointLoaderSimple" }, "widgets_values": [ "v1-5-pruned-emaonly-fp16.safetensors" ], "color": "#323", "bgcolor": "#535" }, { "id": 6, "type": "CLIPTextEncode", "pos": [ 415, 186 ], "size": [ 422.84503173828125, 164.31304931640625 ], "flags": {}, "order": 2, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 3 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "slot_index": 0, "links": [ 4 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "(best quality, high quality),painting of a single red rose in a small clear glass vase, centered composition on a dark blurred background, rich oil painting style, visible brushstrokes, thick impasto texture, detailed petals, canvas texture" ] }, { "id": 3, "type": "KSampler", "pos": [ 888.41, 187.20999999999998 ], "size": [ 315, 262 ], "flags": {}, "order": 5, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 1 }, { "name": "positive", "type": "CONDITIONING", "link": 4 }, { "name": "negative", "type": "CONDITIONING", "link": 6 }, { "name": "latent_image", "type": "LATENT", "link": 12 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "slot_index": 0, "links": [ 7 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "KSampler" }, "widgets_values": [ 1234, "fixed", 20, 8, "euler", "normal", 0.85 ] } ], "links": [ [ 1, 4, 0, 3, 0, "MODEL" ], [ 3, 4, 1, 6, 0, "CLIP" ], [ 4, 6, 0, 3, 1, "CONDITIONING" ], [ 5, 4, 1, 7, 0, "CLIP" ], [ 6, 7, 0, 3, 2, "CONDITIONING" ], [ 7, 3, 0, 8, 0, "LATENT" ], [ 8, 4, 2, 8, 1, "VAE" ], [ 9, 8, 0, 9, 0, "IMAGE" ], [ 12, 12, 0, 3, 3, "LATENT" ], [ 13, 14, 0, 12, 0, "IMAGE" ], [ 14, 4, 2, 12, 1, "VAE" ] ], "groups": [], "config": {}, "extra": { "ds": { "scale": 0.7513148009015777, "offset": [ 56.10409999999999, -86 ] }, "workflowRendererVersion": "LG", "frontendVersion": "1.34.6", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, "VHS_KeepIntermediate": true }, "version": 0.4 } - 🟩 Add a node to load an image and a node to convert it to latent.
-
- inpainting
- Performs image2image on only a part of the input image.

-
{ "id": "9f1affcb-e640-4652-8250-bc15a9de2063", "revision": 0, "last_node_id": 19, "last_link_id": 23, "nodes": [ { "id": 8, "type": "VAEDecode", "pos": [ 1234.4100000000008, 189.20999999999998 ], "size": [ 210, 46 ], "flags": {}, "order": 7, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 7 }, { "name": "vae", "type": "VAE", "link": 8 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "slot_index": 0, "links": [ 9 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "VAEDecode" }, "widgets_values": [] }, { "id": 7, "type": "CLIPTextEncode", "pos": [ 414.0311166015624, 404.7299999999998 ], "size": [ 423.81391513671883, 124.97027910156254 ], "flags": {}, "order": 3, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 5 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "slot_index": 0, "links": [ 6 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "text, watermark" ] }, { "id": 9, "type": "SaveImage", "pos": [ 1476.4100000000008, 190.20999999999998 ], "size": [ 403.8933499999998, 466.45131000000003 ], "flags": {}, "order": 8, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 9 } ], "outputs": [], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76" }, "widgets_values": [ "ComfyUI" ] }, { "id": 12, "type": "VAEEncode", "pos": [ 473.29957719282635, 585.3912584522918 ], "size": [ 140, 46 ], "flags": {}, "order": 4, "mode": 0, "inputs": [ { "name": "pixels", "type": "IMAGE", "link": 13 }, { "name": "vae", "type": "VAE", "link": 14 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 15 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "VAEEncode" }, "widgets_values": [], "color": "#232", "bgcolor": "#353" }, { "id": 14, "type": "LoadImage", "pos": [ 122.17129744553026, 636.1712727272728 ], "size": [ 300.7160781250001, 410.129 ], "flags": {}, "order": 0, "mode": 0, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 13 ] }, { "name": "MASK", "type": "MASK", "links": [ 16 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "LoadImage", "image": "clipspace/clipspace-painted-masked-1764827434610.png [input]" }, "widgets_values": [ "clipspace/clipspace-painted-masked-1764827434610.png [input]", "image" ], "color": "#232", "bgcolor": "#353" }, { "id": 6, "type": "CLIPTextEncode", "pos": [ 415, 186 ], "size": [ 422.84503173828125, 164.31304931640625 ], "flags": {}, "order": 2, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 3 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "slot_index": 0, "links": [ 4 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "(best quality, high quality), close-up painting of a single red rose in a small clear glass vase, centered composition on a dark blurred background, rich oil painting style, visible brushstrokes, thick impasto texture, detailed petals, canvas texture, high resolution" ] }, { "id": 15, "type": "SetLatentNoiseMask", "pos": [ 649.7194454545465, 636.1712727272728 ], "size": [ 187.34765624999991, 46 ], "flags": {}, "order": 5, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 15 }, { "name": "mask", "type": "MASK", "link": 16 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 17 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "SetLatentNoiseMask" }, "widgets_values": [], "color": "#322", "bgcolor": "#533" }, { "id": 4, "type": "CheckpointLoaderSimple", "pos": [ 43.89590000000001, 328.6354400000006 ], "size": [ 315, 98 ], "flags": {}, "order": 1, "mode": 0, "inputs": [], "outputs": [ { "name": "MODEL", "type": "MODEL", "slot_index": 0, "links": [ 1 ] }, { "name": "CLIP", "type": "CLIP", "slot_index": 1, "links": [ 3, 5 ] }, { "name": "VAE", "type": "VAE", "slot_index": 2, "links": [ 8, 14 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CheckpointLoaderSimple" }, "widgets_values": [ "v1-5-pruned-emaonly-fp16.safetensors" ], "color": "#323", "bgcolor": "#535" }, { "id": 3, "type": "KSampler", "pos": [ 888.41, 187.20999999999998 ], "size": [ 315, 262 ], "flags": {}, "order": 6, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 1 }, { "name": "positive", "type": "CONDITIONING", "link": 4 }, { "name": "negative", "type": "CONDITIONING", "link": 6 }, { "name": "latent_image", "type": "LATENT", "link": 17 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "slot_index": 0, "links": [ 7 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "KSampler" }, "widgets_values": [ 1234, "fixed", 20, 8, "euler", "normal", 0.85 ] } ], "links": [ [ 1, 4, 0, 3, 0, "MODEL" ], [ 3, 4, 1, 6, 0, "CLIP" ], [ 4, 6, 0, 3, 1, "CONDITIONING" ], [ 5, 4, 1, 7, 0, "CLIP" ], [ 6, 7, 0, 3, 2, "CONDITIONING" ], [ 7, 3, 0, 8, 0, "LATENT" ], [ 8, 4, 2, 8, 1, "VAE" ], [ 9, 8, 0, 9, 0, "IMAGE" ], [ 13, 14, 0, 12, 0, "IMAGE" ], [ 14, 4, 2, 12, 1, "VAE" ], [ 15, 12, 0, 15, 0, "LATENT" ], [ 16, 14, 1, 15, 1, "MASK" ], [ 17, 15, 0, 3, 3, "LATENT" ] ], "groups": [], "config": {}, "extra": { "ds": { "scale": 0.7513148009015777, "offset": [ 45.456099999999985, -80.67599999999999 ] }, "workflowRendererVersion": "LG", "frontendVersion": "1.34.6", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, "VHS_KeepIntermediate": true }, "version": 0.4 } - 🟥 Add nodes to make image2image happen only in the masked area.
-
- ControlNet
- ControlNet is a function that allows you to control image generation by inputting an image.

-
{ "id": "9f1affcb-e640-4652-8250-bc15a9de2063", "revision": 0, "last_node_id": 23, "last_link_id": 31, "nodes": [ { "id": 8, "type": "VAEDecode", "pos": [ 1495.1100000000013, 228.81 ], "size": [ 210, 46 ], "flags": {}, "order": 11, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 7 }, { "name": "vae", "type": "VAE", "link": 8 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "slot_index": 0, "links": [ 9 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "VAEDecode" }, "widgets_values": [] }, { "id": 9, "type": "SaveImage", "pos": [ 1737.1100000000013, 229.81 ], "size": [ 403.8933499999998, 466.45131000000003 ], "flags": {}, "order": 12, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 9 } ], "outputs": [], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76" }, "widgets_values": [ "ComfyUI" ] }, { "id": 7, "type": "CLIPTextEncode", "pos": [ 414.0311166015624, 404.7299999999998 ], "size": [ 423.81391513671883, 124.97027910156254 ], "flags": {}, "order": 5, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 5 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "slot_index": 0, "links": [ 25 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "text, watermark" ] }, { "id": 15, "type": "SetLatentNoiseMask", "pos": [ 650.4973754882815, 906.3741652892569 ], "size": [ 187.34765624999991, 46 ], "flags": {}, "order": 9, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 15 }, { "name": "mask", "type": "MASK", "link": 16 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 17 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "SetLatentNoiseMask" }, "widgets_values": [], "color": "#322", "bgcolor": "#533" }, { "id": 22, "type": "CannyEdgePreprocessor", "pos": [ 627.8450317382812, 718.6152147438016 ], "size": [ 210, 106 ], "flags": {}, "order": 3, "mode": 0, "inputs": [ { "name": "image", "type": "IMAGE", "link": 29 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 30, 31 ] } ], "properties": { "cnr_id": "comfyui_controlnet_aux", "ver": "12f35647f0d510e03b45a47fb420fe1245a575df", "Node name for S&R": "CannyEdgePreprocessor" }, "widgets_values": [ 100, 200, 512 ], "color": "#2a363b", "bgcolor": "#3f5159" }, { "id": 12, "type": "VAEEncode", "pos": [ 462.0364292484142, 864.9586138241931 ], "size": [ 140, 46 ], "flags": {}, "order": 6, "mode": 0, "inputs": [ { "name": "pixels", "type": "IMAGE", "link": 13 }, { "name": "vae", "type": "VAE", "link": 14 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 15 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "VAEEncode" }, "widgets_values": [], "color": "#232", "bgcolor": "#353" }, { "id": 21, "type": "ControlNetLoader", "pos": [ 602.5450317382813, 591.6099585454547 ], "size": [ 235.29999999999995, 58 ], "flags": {}, "order": 0, "mode": 0, "inputs": [], "outputs": [ { "name": "CONTROL_NET", "type": "CONTROL_NET", "links": [ 28 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "ControlNetLoader" }, "widgets_values": [ "ControlNet-v1-1\\control_v11p_sd15_canny.pth" ], "color": "#2a363b", "bgcolor": "#3f5159" }, { "id": 6, "type": "CLIPTextEncode", "pos": [ 415, 186 ], "size": [ 422.84503173828125, 164.31304931640625 ], "flags": {}, "order": 4, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 3 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "slot_index": 0, "links": [ 24 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "(best quality, high quality), close-up painting of a single blue rose in a small clear glass vase, centered composition on a dark blurred background, rich oil painting style, visible brushstrokes, thick impasto texture, detailed petals, canvas texture, dramatic soft lighting, high resolution" ] }, { "id": 23, "type": "PreviewImage", "pos": [ 900.2939475371905, 718.9325949090918 ], "size": [ 252.25785123966966, 291.0578512396694 ], "flags": {}, "order": 7, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 31 } ], "outputs": [], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "PreviewImage" }, "widgets_values": [], "color": "#2a363b", "bgcolor": "#3f5159" }, { "id": 20, "type": "ControlNetApplyAdvanced", "pos": [ 891.209757454547, 248.456231272727 ], "size": [ 210, 186 ], "flags": {}, "order": 8, "mode": 0, "inputs": [ { "name": "positive", "type": "CONDITIONING", "link": 24 }, { "name": "negative", "type": "CONDITIONING", "link": 25 }, { "name": "control_net", "type": "CONTROL_NET", "link": 28 }, { "name": "image", "type": "IMAGE", "link": 30 }, { "name": "vae", "shape": 7, "type": "VAE", "link": null } ], "outputs": [ { "name": "positive", "type": "CONDITIONING", "links": [ 26 ] }, { "name": "negative", "type": "CONDITIONING", "links": [ 27 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "ControlNetApplyAdvanced" }, "widgets_values": [ 1, 0, 0.8 ], "color": "#2a363b", "bgcolor": "#3f5159" }, { "id": 14, "type": "LoadImage", "pos": [ 112.8594048835469, 906.3741652892569 ], "size": [ 300.7160781250001, 410.129 ], "flags": {}, "order": 1, "mode": 0, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 13, 29 ] }, { "name": "MASK", "type": "MASK", "links": [ 16 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "LoadImage", "image": "clipspace/clipspace-painted-masked-1764827434610.png [input]" }, "widgets_values": [ "clipspace/clipspace-painted-masked-1764827434610.png [input]", "image" ], "color": "#232", "bgcolor": "#353" }, { "id": 4, "type": "CheckpointLoaderSimple", "pos": [ 43.89590000000001, 328.6354400000006 ], "size": [ 315, 98 ], "flags": {}, "order": 2, "mode": 0, "inputs": [], "outputs": [ { "name": "MODEL", "type": "MODEL", "slot_index": 0, "links": [ 1 ] }, { "name": "CLIP", "type": "CLIP", "slot_index": 1, "links": [ 3, 5 ] }, { "name": "VAE", "type": "VAE", "slot_index": 2, "links": [ 8, 14 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CheckpointLoaderSimple" }, "widgets_values": [ "v1-5-pruned-emaonly-fp16.safetensors" ], "color": "#323", "bgcolor": "#535" }, { "id": 3, "type": "KSampler", "pos": [ 1149.1100000000004, 226.81 ], "size": [ 315, 262 ], "flags": {}, "order": 10, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 1 }, { "name": "positive", "type": "CONDITIONING", "link": 26 }, { "name": "negative", "type": "CONDITIONING", "link": 27 }, { "name": "latent_image", "type": "LATENT", "link": 17 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "slot_index": 0, "links": [ 7 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "KSampler" }, "widgets_values": [ 1234, "fixed", 20, 8, "euler", "normal", 1 ] } ], "links": [ [ 1, 4, 0, 3, 0, "MODEL" ], [ 3, 4, 1, 6, 0, "CLIP" ], [ 5, 4, 1, 7, 0, "CLIP" ], [ 7, 3, 0, 8, 0, "LATENT" ], [ 8, 4, 2, 8, 1, "VAE" ], [ 9, 8, 0, 9, 0, "IMAGE" ], [ 13, 14, 0, 12, 0, "IMAGE" ], [ 14, 4, 2, 12, 1, "VAE" ], [ 15, 12, 0, 15, 0, "LATENT" ], [ 16, 14, 1, 15, 1, "MASK" ], [ 17, 15, 0, 3, 3, "LATENT" ], [ 24, 6, 0, 20, 0, "CONDITIONING" ], [ 25, 7, 0, 20, 1, "CONDITIONING" ], [ 26, 20, 0, 3, 1, "CONDITIONING" ], [ 27, 20, 1, 3, 2, "CONDITIONING" ], [ 28, 21, 0, 20, 2, "CONTROL_NET" ], [ 29, 14, 0, 22, 0, "IMAGE" ], [ 30, 22, 0, 20, 3, "IMAGE" ], [ 31, 22, 0, 23, 0, "IMAGE" ] ], "groups": [], "config": {}, "extra": { "ds": { "scale": 0.6830134553650712, "offset": [ 56.10409999999999, -86 ] }, "workflowRendererVersion": "LG", "frontendVersion": "1.34.6", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, "VHS_KeepIntermediate": true }, "version": 0.4 } - 🟦 Add nodes to add ControlNet and nodes to create images used for ControlNet control.
-
- Add even more ControlNet
- There is no restriction that ControlNet must be only one. Let's add another one.

-
{ "id": "9f1affcb-e640-4652-8250-bc15a9de2063", "revision": 0, "last_node_id": 29, "last_link_id": 42, "nodes": [ { "id": 8, "type": "VAEDecode", "pos": [ 1771.3482272727306, 228.46131818181814 ], "size": [ 210, 46 ], "flags": {}, "order": 15, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 7 }, { "name": "vae", "type": "VAE", "link": 8 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "slot_index": 0, "links": [ 9 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "VAEDecode" }, "widgets_values": [] }, { "id": 9, "type": "SaveImage", "pos": [ 2013.3482272727306, 229.46131818181814 ], "size": [ 403.8933499999998, 466.45131000000003 ], "flags": {}, "order": 16, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 9 } ], "outputs": [], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76" }, "widgets_values": [ "ComfyUI" ] }, { "id": 7, "type": "CLIPTextEncode", "pos": [ 414.0311166015624, 404.7299999999998 ], "size": [ 423.81391513671883, 124.97027910156254 ], "flags": {}, "order": 7, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 5 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "slot_index": 0, "links": [ 25 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "text, watermark" ] }, { "id": 15, "type": "SetLatentNoiseMask", "pos": [ 650.4973754882815, 906.3741652892569 ], "size": [ 187.34765624999991, 46 ], "flags": {}, "order": 12, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 15 }, { "name": "mask", "type": "MASK", "link": 16 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 17 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "SetLatentNoiseMask" }, "widgets_values": [], "color": "#322", "bgcolor": "#533" }, { "id": 22, "type": "CannyEdgePreprocessor", "pos": [ 627.8450317382812, 718.6152147438016 ], "size": [ 210, 106 ], "flags": {}, "order": 4, "mode": 0, "inputs": [ { "name": "image", "type": "IMAGE", "link": 29 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 30, 31 ] } ], "properties": { "cnr_id": "comfyui_controlnet_aux", "ver": "12f35647f0d510e03b45a47fb420fe1245a575df", "Node name for S&R": "CannyEdgePreprocessor" }, "widgets_values": [ 100, 200, 512 ], "color": "#2a363b", "bgcolor": "#3f5159" }, { "id": 12, "type": "VAEEncode", "pos": [ 462.0364292484142, 864.9586138241931 ], "size": [ 140, 46 ], "flags": {}, "order": 8, "mode": 0, "inputs": [ { "name": "pixels", "type": "IMAGE", "link": 13 }, { "name": "vae", "type": "VAE", "link": 14 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 15 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "VAEEncode" }, "widgets_values": [], "color": "#232", "bgcolor": "#353" }, { "id": 21, "type": "ControlNetLoader", "pos": [ 602.5450317382813, 591.6099585454547 ], "size": [ 235.29999999999995, 58 ], "flags": {}, "order": 0, "mode": 0, "inputs": [], "outputs": [ { "name": "CONTROL_NET", "type": "CONTROL_NET", "links": [ 28 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "ControlNetLoader" }, "widgets_values": [ "ControlNet-v1-1\\control_v11p_sd15_canny.pth" ], "color": "#2a363b", "bgcolor": "#3f5159" }, { "id": 6, "type": "CLIPTextEncode", "pos": [ 415, 186 ], "size": [ 422.84503173828125, 164.31304931640625 ], "flags": {}, "order": 6, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 3 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "slot_index": 0, "links": [ 24 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "(best quality, high quality), close-up painting of a single blue rose in a small clear glass vase, centered composition on a dark blurred background, rich oil painting style, visible brushstrokes, thick impasto texture, detailed petals, canvas texture, dramatic soft lighting, high resolution" ] }, { "id": 24, "type": "ControlNetApplyAdvanced", "pos": [ 1183.2045610012392, 246.5556212474299 ], "size": [ 210, 186 ], "flags": {}, "order": 13, "mode": 0, "inputs": [ { "name": "positive", "type": "CONDITIONING", "link": 32 }, { "name": "negative", "type": "CONDITIONING", "link": 33 }, { "name": "control_net", "type": "CONTROL_NET", "link": 37 }, { "name": "image", "type": "IMAGE", "link": 41 }, { "name": "vae", "shape": 7, "type": "VAE", "link": null } ], "outputs": [ { "name": "positive", "type": "CONDITIONING", "links": [ 34 ] }, { "name": "negative", "type": "CONDITIONING", "links": [ 35 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "ControlNetApplyAdvanced" }, "widgets_values": [ 0.8, 0, 0.6 ], "color": "#233", "bgcolor": "#355" }, { "id": 20, "type": "ControlNetApplyAdvanced", "pos": [ 920.1353772892571, 248.456231272727 ], "size": [ 210, 186 ], "flags": {}, "order": 11, "mode": 0, "inputs": [ { "name": "positive", "type": "CONDITIONING", "link": 24 }, { "name": "negative", "type": "CONDITIONING", "link": 25 }, { "name": "control_net", "type": "CONTROL_NET", "link": 28 }, { "name": "image", "type": "IMAGE", "link": 30 }, { "name": "vae", "shape": 7, "type": "VAE", "link": null } ], "outputs": [ { "name": "positive", "type": "CONDITIONING", "links": [ 32 ] }, { "name": "negative", "type": "CONDITIONING", "links": [ 33 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "ControlNetApplyAdvanced" }, "widgets_values": [ 0.8, 0, 0.6 ], "color": "#2a363b", "bgcolor": "#3f5159" }, { "id": 14, "type": "LoadImage", "pos": [ 112.8594048835469, 906.3741652892569 ], "size": [ 300.7160781250001, 410.129 ], "flags": {}, "order": 1, "mode": 0, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 13, 29, 39 ] }, { "name": "MASK", "type": "MASK", "links": [ 16 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "LoadImage", "image": "clipspace/clipspace-painted-masked-1764827434610.png [input]" }, "widgets_values": [ "clipspace/clipspace-painted-masked-1764827434610.png [input]", "image" ], "color": "#232", "bgcolor": "#353" }, { "id": 28, "type": "DepthAnythingV2Preprocessor", "pos": [ 928.5571271665664, 718.6152147438016 ], "size": [ 219.6646484375, 82 ], "flags": {}, "order": 5, "mode": 0, "inputs": [ { "name": "image", "type": "IMAGE", "link": 39 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 41, 42 ] } ], "properties": { "cnr_id": "comfyui_controlnet_aux", "ver": "12f35647f0d510e03b45a47fb420fe1245a575df", "Node name for S&R": "DepthAnythingV2Preprocessor" }, "widgets_values": [ "depth_anything_v2_vitl.pth", 512 ], "color": "#233", "bgcolor": "#355" }, { "id": 23, "type": "PreviewImage", "pos": [ 890.7139475371899, 890.5325949090922 ], "size": [ 252.25785123966966, 291.0578512396694 ], "flags": {}, "order": 9, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 31 } ], "outputs": [], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "PreviewImage" }, "widgets_values": [], "color": "#2a363b", "bgcolor": "#3f5159" }, { "id": 26, "type": "ControlNetLoader", "pos": [ 913.673090404968, 591.6099585454547 ], "size": [ 235.29999999999995, 58 ], "flags": {}, "order": 2, "mode": 0, "inputs": [], "outputs": [ { "name": "CONTROL_NET", "type": "CONTROL_NET", "links": [ 37 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "ControlNetLoader" }, "widgets_values": [ "ControlNet-v1-1\\control_v11f1p_sd15_depth.pth" ], "color": "#233", "bgcolor": "#355" }, { "id": 29, "type": "PreviewImage", "pos": [ 1200.218371535789, 883.6365813004558 ], "size": [ 243.81799999999998, 292.58500000000004 ], "flags": {}, "order": 10, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 42 } ], "outputs": [], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "PreviewImage" }, "widgets_values": [], "color": "#233", "bgcolor": "#355" }, { "id": 3, "type": "KSampler", "pos": [ 1425.3482272727297, 226.46131818181814 ], "size": [ 315, 262 ], "flags": {}, "order": 14, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 1 }, { "name": "positive", "type": "CONDITIONING", "link": 34 }, { "name": "negative", "type": "CONDITIONING", "link": 35 }, { "name": "latent_image", "type": "LATENT", "link": 17 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "slot_index": 0, "links": [ 7 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "KSampler" }, "widgets_values": [ 1234, "fixed", 20, 8, "euler", "normal", 1 ] }, { "id": 4, "type": "CheckpointLoaderSimple", "pos": [ 43.89590000000001, 328.6354400000006 ], "size": [ 315, 98 ], "flags": {}, "order": 3, "mode": 0, "inputs": [], "outputs": [ { "name": "MODEL", "type": "MODEL", "slot_index": 0, "links": [ 1 ] }, { "name": "CLIP", "type": "CLIP", "slot_index": 1, "links": [ 3, 5 ] }, { "name": "VAE", "type": "VAE", "slot_index": 2, "links": [ 8, 14 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.76", "Node name for S&R": "CheckpointLoaderSimple" }, "widgets_values": [ "v1-5-pruned-emaonly-fp16.safetensors" ], "color": "#323", "bgcolor": "#535" } ], "links": [ [ 1, 4, 0, 3, 0, "MODEL" ], [ 3, 4, 1, 6, 0, "CLIP" ], [ 5, 4, 1, 7, 0, "CLIP" ], [ 7, 3, 0, 8, 0, "LATENT" ], [ 8, 4, 2, 8, 1, "VAE" ], [ 9, 8, 0, 9, 0, "IMAGE" ], [ 13, 14, 0, 12, 0, "IMAGE" ], [ 14, 4, 2, 12, 1, "VAE" ], [ 15, 12, 0, 15, 0, "LATENT" ], [ 16, 14, 1, 15, 1, "MASK" ], [ 17, 15, 0, 3, 3, "LATENT" ], [ 24, 6, 0, 20, 0, "CONDITIONING" ], [ 25, 7, 0, 20, 1, "CONDITIONING" ], [ 28, 21, 0, 20, 2, "CONTROL_NET" ], [ 29, 14, 0, 22, 0, "IMAGE" ], [ 30, 22, 0, 20, 3, "IMAGE" ], [ 31, 22, 0, 23, 0, "IMAGE" ], [ 32, 20, 0, 24, 0, "CONDITIONING" ], [ 33, 20, 1, 24, 1, "CONDITIONING" ], [ 34, 24, 0, 3, 1, "CONDITIONING" ], [ 35, 24, 1, 3, 2, "CONDITIONING" ], [ 37, 26, 0, 24, 2, "CONTROL_NET" ], [ 39, 14, 0, 28, 0, "IMAGE" ], [ 41, 28, 0, 24, 3, "IMAGE" ], [ 42, 28, 0, 29, 0, "IMAGE" ] ], "groups": [], "config": {}, "extra": { "ds": { "scale": 0.6209213230591556, "offset": [ 56.10409999999999, -86 ] }, "workflowRendererVersion": "LG", "frontendVersion": "1.34.6", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, "VHS_KeepIntermediate": true }, "version": 0.4 } - 🟦 Just create another set of ControlNet and its preprocessing nodes and connect them.
This is just one example, but I think it showed the flexibility of ComfyUI.
In addition to official templates, many people publish workflows, but still, the perfect workflow you desire might not exist in this world. But don't worry. If you don't need it, delete it, and if there are other functions you want, just add them.