ArtificialGuyBR

Home / Blog / ComfyUI

ComfyUI for A1111 Users: Graph, Nodes, Shortcuts, Habits

Node graph guide for A1111 migrants: read the graph, five starters, keyboard shortcuts, habits that prevent broken workflows.

8 sources cited ComfyUI

TL;DR


Why ComfyUI feels alien after Automatic1111

Automatic1111 presents tabs and sliders; ComfyUI presents a directed acyclic graph — boxes connected by wires where each node performs one operation. Data flows left-to-right through typed tensors. If you've used a node editor in Nuke, Blender, or Unreal, think of it as a visual programming environment of reusable blocks.

This architecture means:

Core concepts: "a collection of program objects called nodes that are connected to each other, forming a network" where "only parts of the graph that change from each execution to the next will be executed." Source


Reading the graph: data types and direction

Every wire carries a typed tensor (hover to see). The six types you'll meet: Type | What it carries | Produced by | Consumed by | Source

|------|-----------------|-------------|-------------|--------

MODEL | Denoising network (UNet) | Load Checkpoint | KSampler, ControlNet Apply | KSampler/Checkpoint docs CLIP | Text encoder | Load Checkpoint | CLIP Text Encode | CheckpointLoaderSimple docs VAE | Latent↔pixel converter | Load Checkpoint | VAE Decode, VAE Encode | CheckpointLoaderSimple docs CONDITIONING | Prompt embeddings | CLIP Text Encode | KSampler | KSampler docs LATENT | Compressed image tensor | Empty Latent Image, KSampler | KSampler, VAE Decode | KSampler docs IMAGE | Pixel tensor (H×W×3) | VAE Decode, Load Image | Save Image, Preview Image | KSampler docs Direction rule: data flows output → input. A red wire means type mismatch — hover to see expected vs. actual. Source


The five nodes you need for text-to-image

Forget the node library. Drag these onto the canvas in order:

  1. Load Checkpoint (CheckpointLoaderSimple) — selects the .safetensors file. Outputs MODEL, CLIP, VAE. CheckpointLoaderSimple docs
  2. CLIP Text Encode (×2) — positive and negative prompts. Takes CLIP, outputs CONDITIONING.
  3. KSampler — the denoiser. Takes MODEL, both CONDITIONINGs, a LATENT (from Empty Latent Image), plus seed, steps, cfg, sampler_name, scheduler, denoise. Outputs denoised LATENT.
  4. VAE Decode — converts LATENTIMAGE using the VAE from step 1.
  5. Save Image — writes the IMAGE to disk and shows a preview. First generation

Wire left-to-right: Checkpoint → (CLIP to both Text Encodes) → (MODEL + both CONDITIONING + LATENT to KSampler) → (KSampler LATENT + VAE to VAE Decode) → (IMAGE to Save Image).

Settings cheat sheet

Parameter | Node | Starting value | Why it matters | Source

|-----------|------|----------------|----------------|--------

ckpt_name | Load Checkpoint | v1-5-pruned-emaonly-fp16.safetensors | Model architecture and weights | CheckpointLoaderSimple docs cfg | KSampler | 8.0 | Prompt adherence; >10 often burns | KSampler docs sampler_name | KSampler | euler_ancestral | Fast; try dpmpp_2m for quality | KSampler docs scheduler | KSampler | normal | karras can sharpen details | KSampler docs denoise | KSampler | 1.0 | 1.0 = txt2img; <1.0 = img2img | KSampler docs Source: KSampler embedded docs, first generation tutorial.


Keyboard shortcuts worth learning on day one

ComfyUI ships with a full shortcut set (documented in the GitHub README). The ones that save the most friction for A1111 migrants: Action | Shortcut | When you'll use it | Source

|--------|----------|-------------------|--------

Queue prompt | Ctrl + Enter | Replaces the big orange Generate button | README Cancel generation | Ctrl + Alt + Enter | Stop a runaway job | README Undo / Redo | Ctrl + Z / Ctrl + Y | Graph editing is destructive; undo saves you | README Bypass selected nodes | Ctrl + B | Disable ControlNet / IP-Adapter without deleting | README Group selected nodes | Ctrl + G | Collapse visual clusters | README Pan canvas | Space + drag | Prevents accidental wire dragging | README Fit view | . (period) | Frame the whole graph instantly | README Refresh graph | R | Reload after dropping new checkpoints | README Three UI settings to change now:

  1. Settings → Comfy → Menu → Use new menu: ON — sidebar with Assets, Nodes, Models, Workflows, Templates. Read more
  2. Settings → Comfy → Locale — supports EN, ZH, RU, FR, JA, KO.

Habits that prevent broken workflows

1. Back up before you rewire

Drag a workflow .json onto the canvas to load it. Before moving nodes, press Ctrl+S. The original file stays intact; you're editing the browser's live copy.

Source: "It's easy to break stuff and not necessarily easy to fix." — Civitai article 9471

2. Use the hand tool for navigation

Bottom-right toolbar: click the arrow icon to toggle hand mode. In hand mode, drag pans without selecting or moving nodes. Arrow mode lets you rewire — but a careless click drags a node and snaps wires. Civitai 9471

When a workflow throws red boxes or "ModuleNotFoundError":

  1. Launch with python main.py --disable-all-custom-nodes.
  2. If it works, re-enable half your custom nodes, restart, test.
  3. Repeat until the culprit is found.

Comfy CLI automates this: comfy-cli node bisect start → mark good/bad → comfy-cli node bisect reset. Source

4. Read red boxes left-to-right

A red node border means missing input. Zoom out (- key), find the leftmost red box. Its input dropdown shows the filename ComfyUI expects. Search your drive for that file (Windows: Everything by Voidtools is excellent). Drop it in the folder the dropdown references, press R to refresh, select it. Civitai 9471

5. Prefer CheckpointLoaderSimple

The old CheckpointLoader asks for both config and checkpoint. CheckpointLoaderSimple needs only the checkpoint name and splits MODEL/CLIP/VAE automatically. The legacy node is deprecated. Source

6. Bypass, don't delete

Need to compare with/without ControlNet? Select the node, press Ctrl+B. It grays out and wires pass through. Press Ctrl+B again to re-enable. Deleting forces you to rewire. Source: "Bypass selected nodes (acts like the node was removed from the graph and the wires reconnected through)."


Common errors and fixes

Symptom | Likely cause | Fix | Source

|---------|--------------|-----|--------

"ModuleNotFoundError: No module named 'xyz'" | Custom node dependency missing or wrong Python env | Run pip install -r requirements.txt inside that node folder, or use Manager → Install Missing Nodes | ComfyUI-Manager Red box on Load Checkpoint, dropdown empty | Checkpoint not in models/checkpoints/ | Move .safetensors there, press R | Civitai 9471 KSampler runs but Save Image shows nothing | Missing wire to VAE Decode or VAE not connected | Connect KSampler → VAE Decode → Save Image; wire VAE from Load Checkpoint | KSampler docs "Torch not compiled with CUDA" | PyTorch CPU-only install | Reinstall: pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130 | ComfyUI README Nodes missing (gray "Unknown" boxes) | Custom nodes not installed | Manager → Install Missing Nodes; or clone the Git repo into custom_nodes/ | ComfyUI-Manager Generated image is solid color | denoise too low or cfg extreme | Set denoise=1.0 for txt2img; keep cfg between 5–9 | KSampler docs Sources: ComfyUI troubleshooting docs, KSampler embedded docs, Civitai article 9471, ComfyUI Manager README.


FAQ

What are the most important ComfyUI nodes for beginners? Load Checkpoint, CLIP Text Encode (positive + negative), KSampler, VAE Decode, Save Image. These five form every text-to-image pipeline. Everything else — ControlNet, IP-Adapter, upscalers — plugs into this spine. Read more

How do you load a model in ComfyUI without knowing the filename? Drop a .safetensors into ComfyUI/models/checkpoints/ (or a subfolder). Press R on the canvas. The Load Checkpoint dropdown refreshes and shows the new file.

What is the difference between LATENT and IMAGE nodes? Empty Latent Image creates a blank compressed tensor that KSampler denoises. VAE Decode converts that LATENT into an IMAGE (pixels). Save Image writes it to disk. You never see pixels until after VAE Decode.

How do I bypass ControlNet without deleting the node? Select the node, press Ctrl+B. It grays out and wires pass through. Ctrl+B again to re-enable.

What does the 'seed' parameter do? Seed initializes the random noise tensor. Same seed + same inputs = identical output. control_after_generate offers random, increment/decrement, and fixed.

Why does my workflow cache results instead of re-generating? ComfyUI only re-runs changed nodes. If no inputs differ, it returns cached output. Change a prompt, seed, or parameter to force re-execution.


Sources

  1. ComfyUI core concepts — workflow graph architecture

https://docs.comfy.org/development/core-concepts/workflow

  1. ComfyUI text-to-image tutorial — detailed node chain

https://docs.comfy.org/tutorials/basic/text-to-image

  1. KSampler embedded docs — denoising node parameters

https://raw.githubusercontent.com/Comfy-Org/embedded-docs/main/comfyui_embedded_docs/docs/KSampler/en.md

  1. CheckpointLoaderSimple docs — model decomposition

https://raw.githubusercontent.com/Comfy-Org/embedded-docs/main/comfyui_embedded_docs/docs/CheckpointLoaderSimple/en.md

  1. ComfyUI README — keyboard shortcuts

https://github.com/Comfy-Org/ComfyUI

  1. ComfyUI troubleshooting — custom node debugging

https://docs.comfy.org/troubleshooting/custom-node-issues

  1. Civitai article 9471 — red-box troubleshooting workflow

https://civitai.com/articles/9471

  1. ComfyUI-Manager — missing nodes installation

https://github.com/Comfy-Org/ComfyUI-Manager