ComfyUI Node Reference Card

Quick reference for core ComfyUI nodes with inputs and outputs

Interactive reference card for core ComfyUI nodes — KSampler, VAE Encode/Decode, CLIP Text Encode, LoRA Loader, ControlNet Apply, Upscale, and more. Filter by category or search by name to see each node's inputs, outputs, and data types. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What are the core data types in ComfyUI?

The main types you wire between nodes are MODEL (the diffusion UNet), CLIP (the text encoder), VAE (the latent encoder/decoder), CONDITIONING (encoded prompts), LATENT (the working image in latent space), and IMAGE (pixel-space output). A socket only connects to a matching type, which is why the reference lists types explicitly.

ComfyUI node reference card

ComfyUI is a node-graph interface for Stable Diffusion where each box does one job and you wire them together by data type. The hard part for newcomers is remembering which sockets connect — a MODEL goes here, a LATENT there, a CONDITIONING into the sampler. This searchable card lists the core built-in nodes with their inputs, outputs, and types so you can wire a graph without guesswork.

How it works

Filter by category (loaders, sampling, conditioning, latent, image) or search by name. Each card shows the node’s purpose plus its inputs and outputs with their data types in parentheses. ComfyUI enforces type matching at the socket level, so knowing that KSampler outputs a LATENT and VAE Decode consumes one tells you exactly how they chain.

Tips for building graphs

  • Follow the data types. A red error usually means a type mismatch — an IMAGE plugged where a LATENT was expected. The type labels here prevent that.
  • Start from the template. A minimal text-to-image graph is Checkpoint Loader → CLIP Text Encode (×2, positive/negative) → Empty Latent → KSampler → VAE Decode → Save Image.
  • Decode last. Stay in latent space through sampling and only VAE Decode once at the end; decoding mid-graph wastes compute.
  • LoRA before sampling. Load LoRA Loader between the checkpoint and the sampler so its MODEL and CLIP edits apply to both conditioning and denoising.

Key node relationships

Understanding which nodes connect to which helps you build graphs without trial and error.

The core generation loop:

  1. CheckpointLoaderSimple → outputs MODEL, CLIP, VAE
  2. CLIPTextEncode (×2) consumes CLIP → outputs two CONDITIONING (positive, negative)
  3. EmptyLatentImage → outputs a blank LATENT
  4. KSampler consumes MODEL + positive CONDITIONING + negative CONDITIONING + LATENT → outputs a denoised LATENT
  5. VAEDecode consumes the LATENT + VAE → outputs an IMAGE
  6. SaveImage or PreviewImage consumes IMAGE → no outputs (terminal node)

Adding img2img: replace EmptyLatentImage with a VAEEncode node that consumes an IMAGE and the VAE, producing a LATENT starting point for KSampler. Set the denoise parameter below 1.0 so the sampler preserves some of the original structure.

Adding ControlNet: insert an Apply ControlNet node between CLIP conditioning and KSampler. It takes a CONDITIONING, a CONTROL_NET (from a ControlNet Loader), and a reference IMAGE, and outputs a modified CONDITIONING that steers the output toward the control image’s structure without overriding the content.

Upscaling: After VAEDecode, pass the IMAGE into an Upscale Image (simple model-free) or a UpscaleModelLoader + ImageUpscaleWithModel pair for higher quality. Re-encode and refine via KSampler at lower denoise for the “hires fix” pattern.

Sampler parameters explained

KSampler is the most parameter-dense core node. The key inputs:

  • seed — controls reproducibility; the same seed with the same inputs gives the same output.
  • steps — number of denoising iterations; more steps is slower but can improve quality up to a point. 20–30 is typical.
  • cfg (classifier-free guidance scale) — how strongly the model follows the text prompt. Values of 7–12 are common; very high values (above 15) often cause oversaturation and artifacts.
  • sampler_name — the denoising algorithm (euler, euler_a, dpm++2m, etc.). euler_a is stochastic (different result each run even with same seed); dpm++2m is deterministic.
  • scheduler — the noise schedule (karras, normal, exponential). karras is a popular default.
  • denoise — in img2img mode, 1.0 ignores the input image entirely, 0.0 preserves it fully, and values around 0.6–0.75 blend structure and new generation.