Nodes/Color Gel Pixel/Color Gel Preview
ComfyUI Node

Color Gel Preview

A dedicated preview window that also passes your image through

By cadric·Created 11 months ago·Updated 11 months ago· 0
Color Gel Preview
  • image
  • image
title
max_previews32

Preview is the node you drop on the end of a chain to actually see what you're doing. In ComfyUI every IMAGE output shows a thumbnail, but those are small and crowded. Color Gel Preview is a dedicated OUTPUT node: it shows the image in its own preview window and - the useful part - passes the exact same tensor through unchanged, so you can stick it in the middle of a workflow and keep chaining without breaking anything.

Its real niche is decoupling "viewing" from "saving." The pack's philosophy is that Color Gel Save writes files, and Color Gel Preview shows you what you're about to save - wire Save's image output into Preview and you get a look at the exact pixels before committing. Because it's a pass-through, it also works as a debugging probe anywhere in a graph: stick it after any node whose output you're unsure about, look, and leave it in the chain.

How it works

Under the hood it converts the input tensor to PIL images, writes them as PNGs into ComfyUI's temp folder, and returns UI metadata so the preview window appears. A few details worth knowing:

  • Batches are handled. If you feed it a 20-frame batch it previews up to max_previews (default 32, capped at 256) and marks the preview as truncated if there's more.
  • title is a label only - it's shown with the preview and has zero effect on the output pixels.
  • Old previews are cleaned up - files older than 48 hours in its temp subfolder get deleted opportunistically, so it won't leak disk forever.
  • It needs Pillow (which ComfyUI ships) and falls back to COMFYUI_TEMP_DIR if the ComfyUI temp folder can't be found.

Because it's marked as an OUTPUT node, ComfyUI treats it as a graph endpoint - like Save, it counts as a place a workflow "ends," which also means it shows up when you're routing around which node is actually doing output.

The inputs that matter

  • image - required, any IMAGE tensor (RGB or RGBA).
  • title - optional label for the preview.
  • max_previews - how many frames to show when the input is a batch.

Output: image, the same tensor you put in. Wire it to the next node and pretend Preview wasn't there.

Installing Color Gel Pixel

Preview ships in the Color Gel Pixel pack (MIT, by cadric). One install, all seven nodes.

cd ComfyUI/custom_nodes
git clone https://github.com/cadric/color_gel_pixel

Restart ComfyUI, or use ComfyUI Manager → Install Custom Nodes → search "Color Gel Pixel." No model downloads, no extra dependencies - pyproject.toml declares zero and ComfyUI already has torch, NumPy, and Pillow. It wants ComfyUI 0.3.65+.

Common issues

  • Preview shows but image "disappears" downstream - unlikely, but if you relied on the output and it changed, remember the output is literally the input tensor; the node does no processing. If a downstream node is fed from Preview and you also have a save, they're seeing identical pixels by design.
  • Huge batches flood the UI. That's what max_previews exists to stop. Crank it down if your graph churns out hundreds of frames and the preview window becomes a slideshow.
  • Pillow missing - this is the one hard dependency at runtime. If your ComfyUI install somehow lacks it, Preview fails with a clear "Pillow required" error; in practice every standard install has it.

It's the rare node that's simpler than it looks - a pass-through with a window. In the color-gel workflow it's the last node in the pack's recommended chain (select → batch → save → preview), and for that job it's exactly right.

CategoryColor Gel Pixel/Core

Inputs (3)

NameTypeDefaultDescription
imageIMAGEImage to preview (RGB/RGBA).
titleoptSTRINGOptional label; does not affect output.
max_previewsoptINT321–256Limit number of images shown when input is a batch.

Outputs (1)

NameTypeDescription
imageIMAGE