Nodes/ComfyUI Checkpoint Rotation Node/Save Image (with Checkpoint Info)
ComfyUI Node

Save Image (with Checkpoint Info)

The saver that stamps which checkpoint made each image

By trunksn1·Created 10 months ago·Updated 3 months ago· 1
Save Image (with Checkpoint Info)
  • images
    checkpoint_name
    filename_prefixComfyUI
    checkpoint_info

    If you rotate checkpoints, you need this

    Here's the problem SaveImageWithCheckpoint solves: when you're churning out a batch where every image comes from a different model, the stock Save Image node records exactly one thing about the model - and it's the wrong one, or none at all. A week later you're staring at a folder of PNGs and have no idea which checkpoint made which shot. This node is the fix: it saves images exactly like the built-in saver, then writes the actual checkpoint name into the PNG's metadata so each file carries its own provenance.

    It ships in the same pack as the rotation loaders, and honestly it's the piece that makes them usable. Rotating models without recording which one fired per image is how you end up with untraceable output.

    How it works

    Under the hood it's a fork of ComfyUI's own Save Image. It routes through folder_paths.get_save_image_path(), so your output folder, counter, and subfolder behavior are identical to stock. What's added is PNG metadata: it embeds the checkpoint_name string you feed in as both checkpoint and model text chunks, alongside the standard ComfyUI prompt and extra_pnginfo that every saved PNG carries. The checkpoint field is the one most gallery tools and image viewers will show you; the model copy is there for the tools that look for that name instead.

    There's no output socket because it's an output node - it's the end of the line, like Save Image. It returns its results through ComfyUI's UI images mechanism.

    The inputs that matter

    Only three, and you'll set all of them:

    • images - the IMAGE tensor from your VAE Decode, same as any saver.
    • checkpoint_name - the author's tooltip says it plainly: "Connect from Checkpoint Rotation node." Don't type it by hand; wire the checkpoint_name output from one of the rotation loaders (CheckpointRotation, CheckpointRotationSimple) into here. If you leave it empty, you've got a plain Save Image with extra steps.
    • filename_prefix - default ComfyUI, same as stock. It pairs neatly with the pack's Checkpoint to Filename node if you want the model name in the filename too.

    There's an optional checkpoint_info multiline string for embedding extra text per image. It's just a blob dumped into metadata - handy for batch tags or notes.

    One honest caveat

    The metadata is only as accurate as the checkpoint_name it's handed, which means the loader has to actually re-execute per image. Inside a single batch queue (batch_size > 1), ComfyUI loads one checkpoint and renders the whole batch with it, so every PNG in that queue gets the same tag. For genuinely per-image metadata you want the loop setup the pack's README pushes: KSampler batch_size: 1, wrapped in a loop or queued one image at a time. The metadata machinery is right - the execution model is the part you have to respect.

    Install

    Same as the rest of the pack - there's no separate install for this node.

    cd ComfyUI/custom_nodes/
    git clone https://github.com/trunksn1/comfyui-change-checkpoint-randomly
    

    Restart ComfyUI and look for [ComfyUI] Checkpoint Rotation Node loaded successfully! in the console. No requirements.txt, no pip installs, no model downloads - it only uses ComfyUI's own internals plus PIL, which you already have. If you're using ComfyUI Manager, the README lists Manager integration as a roadmap item rather than something shipped, so the reliable route is the clone above (or Manager's "Install via Git URL" with the same link).

    You'll find it under Add Node → image → Save Image (with Checkpoint Info). If images come out and the metadata looks empty, check that you actually connected checkpoint_name rather than leaving the default blank string.

    Categoryimage

    Inputs (4)

    NameTypeDefaultDescription
    imagesIMAGE
    checkpoint_nameSTRINGConnect from Checkpoint Rotation node
    filename_prefixSTRINGComfyUIPrefix for saved files
    checkpoint_infooptSTRINGAdditional info to embed

    Outputs (0)

    No outputs