Nodes/comfy_Pond_Nodes/🐳GIF预览
ComfyUI Node

🐳GIF预览

Check your animation without spamming the output folder

By Pondowner857·Created about a year ago·Updated 21 days ago· 45
🐳GIF预览
  • images
    frame_duration100
    loop_count0

    If you're generating animation - frame-by-frame img2img, a video model's output frames, a pose sequence - you end up with a stack of frames and the infuriating problem that a ComfyUI image preview only shows you one of them. PreviewGIF from 🐳 Pond Nodes (comfy_Pond_Nodes) takes the whole batch and renders it as an animated GIF in your UI, so you can actually watch the motion instead of clicking through stills.

    It's the "does it look right?" node, and it's deliberately disposable: it writes to ComfyUI's temp directory and returns nothing to the graph. Every run gets a fresh file with a timestamp+random suffix, so it can't clobber a previous preview. That's the correct design for iteration - the thing you'd pair with SaveGIF once the animation is worth keeping.

    How it works

    Straightforward with one clever detail. Each frame tensor becomes a PIL image, each is quantized down to a 256-color palette (median-cut - GIFs are palette-limited by format), and Pillow writes them all into a single animated GIF with your per-frame duration and loop count. The clever bit is just where it goes: temp, not output, so your ComfyUI/output/ folder doesn't accumulate a hundred previews while you iterate.

    The inputs

    Three, all obvious:

    • images - the batch of frames (an IMAGE tensor with batch dimension > 1; a single image makes a static GIF, which is pointless but harmless).
    • frame_duration (20–5000 ms, default 100) - how long each frame shows. 100 ms is 10 fps, a good starting point for motion check.
    • loop_count (0–100, default 0) - 0 means loop forever, which is what you want for checking motion.

    No outputs, and it's marked as an output node - it terminates the graph branch, and its cache behavior is "always run," like any preview. Drop it at the end of your frame pipeline.

    Installing it

    Standard pack install - Manager search comfy_Pond_Nodes, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Pondowner857/comfy_Pond_Nodes
    cd comfy_Pond_Nodes
    pip install -r requirements.txt
    

    Restart, under 🐳Pond/GIF. Pillow-only; no heavy deps. (Pack-wide footnote: README flags a console-spam conflict with comfyui_HiDream-Sampler.)

    The gotcha

    Preview GIFs are previews - quantized to 256 colors and sitting in temp, so don't judge color fidelity or save anything important from them. And because it's a temp-file output node, if you generate something good and then close ComfyUI, the preview may be gone; that's what SaveGIF is for. One more: GIFs are the worst video codec ever invented, file-size-wise, so a 60-frame preview at 1024px will be huge and slow in the UI. For long sequences, preview a subset of frames rather than the whole thing.

    Category🐳Pond/GIF

    Inputs (3)

    NameTypeDefaultDescription
    imagesIMAGE
    frame_durationINT10020–5000
    loop_countINT00–100

    Outputs (0)

    No outputs