Nodes/comfyui-cyclist/Save Latent (Override)
ComfyUI Node

Save Latent (Override)

Keep a latent under one filename so a Cyclist loop can re-upscale it

By Pos13·Created 2 years ago·Updated 2 years ago· 33
Save Latent (Override)
  • samples
    filenameForLoop_1

    Save Latent (Override) writes a LATENT to disk under a fixed filename - no auto-incrementing counter - so the next iteration of your Cyclist loop can load the exact same file back. It's the latent-space sibling of Save Image (Override), and it exists for one job: looping on the latent itself instead of the decoded image.

    Why loop in latent space

    Every VAE decode and re-encode costs a little quality and a little time. If your loop is doing something iterative to a latent - progressive upscaling is the obvious case - you're better off keeping the work in latent space and only decoding to an image at the very end. Save Latent (Override) makes that possible across Cyclist's re-queue-based loop: it saves the latent to your output/latent folder under a stable name, and the matching Reload node picks it up next run. The pack's own example uses it for a gradual latent-upscale loop that bumps the image by ~1.375× each pass until it hits a target megapixel count, all without round-tripping through pixels every iteration.

    Because it's on disk, it persists across a ComfyUI restart - the durable option, versus the memory-based Memorize/Recall nodes that clear when you shut down.

    The inputs that matter

    • filename (STRING, default ForLoop_1) - the fixed name it saves under; the reload side reads this exact name.
    • samples (LATENT) - the latent to write.

    It's a terminal (output) node - no outputs, it just commits the .latent file at the end of the branch.

    Install

    • ComfyUI Manager: search comfyui-cyclist, install, restart.
    • Manual: cd ComfyUI/custom_nodes && git clone https://github.com/Pos13/comfyui-cyclist, restart.

    Pure Python - nothing to download.

    Things to know

    The pack's upscale example has a nice trick worth stealing: it keeps the final decode-and-save nodes muted during the loop and only enables them once the whole cycle is done - no point decoding intermediate latents you're going to throw away. Enabling those nodes afterward doesn't disturb the loop flow (no early interrupts, no extra iterations), so it's free speed. That's a pattern, not a feature of this node, but it's exactly how you're meant to use Save Latent (Override).

    The usual "New Cycle" caveat applies: the fresh-loop button only bumps filename widgets and connected Primitives, not a name coming from a Recall String or String Const node - so keep your filename in a widget if you want increments to land.

    And the standing note: Cyclist is archived and unmaintained. This node is simple enough to keep working, but there's no support if it doesn't. Latents also aren't a fully stable on-disk format across every model family, so if you're on something exotic, test a save-and-reload round trip before building a long loop on it.

    Categorycyclist/Write

    Inputs (2)

    NameTypeDefaultDescription
    filenameSTRINGForLoop_1
    samplesLATENT

    Outputs (0)

    No outputs