Nodes/Continuity/Continuity Take
ComfyUI Node

Continuity Take

The node that saved your shots before your render failed

By roadmaus·Created about a month ago·Updated 2 days ago· 80
Continuity Take
  • source
    fps24.00
    filename_prefixcontinuity/H3
    crf23
    card1
    seed0

    Here's the failure that made this node exist. In ComfyUI-Continuity, a multi-shot timeline renders pass by pass - shot 2 continues from shot 1's last frame, and so on. It used to be that every take got written at the end, all at once, by the save node. So when a fourteen-pass strip failed on its last pass, you kept nothing: fourteen good generations sat as temporary files in a folder ComfyUI wipes on restart, no video was ever muxed from them, and the next queue sampled all fourteen again.

    Continuity Take is the fix, and it's a quiet one. It hangs off each pass's output and, because it's an output node, the executor runs it the moment that pass exists - not when the strip finishes. Each shot's own file is on disk before the render is anywhere near done, so whatever happens to the passes after it, that take is saved.

    Where it lives - and whether you'll ever touch it

    This is internal plumbing, marked is_dev_only and filed under Continuity/internal, which is pack-speak for "not meant to be placed by hand." You won't find it in the normal node search (dev-only nodes are hidden unless you switch ComfyUI into developer mode). The Continuity front door builds it for you automatically whenever your timeline has more than one card and isn't re-detailing. Single-shot renders don't emit it at all - for a one-pass piece, the piece's own file is the take.

    What you'll actually notice, as a user, is that your output folder fills up as a strip renders, not after. Each take lands in its own takes/ shelf - output/continuity/takes/ by default - so the gallery never buries your finished renders under a pile of working files. Those per-pass files are what a locked card plays instead of being sampled again.

    The inputs that matter

    • source - an MMC_PASS socket, i.e. one spilled pass from the pack's own reel/segment nodes. No ordinary node emits it, which is the other reason you're not hand-wiring this.
    • crf (default 23) - the mux quality. Because it's an input rather than a fixed constant, changing it and re-queueing re-muxes every take from its stored spill instead of re-sampling anything. That's the cheap quality tweak.
    • filename_prefix (default continuity/H3) - where the takes shelf sits.
    • card and seed - stamped per pass, so a file like H3_00001_s02.mp4 tells you it's shot 2 of that render and the seed it ran on.

    fps (24 by default) is the rate the take is muxed at. There are no outputs; this node's whole job is the file it writes. Failures are logged and swallowed on purpose - the trade being that a take that can't be written must never take the render down with it.

    Installing it

    You install the pack, not the node:

    cd ComfyUI/custom_nodes
    git clone https://github.com/roadmaus/ComfyUI-Continuity
    

    Restart ComfyUI - there's nothing to pip install. Or grab "ComfyUI-Continuity" from ComfyUI Manager. One gotcha that bites people: this pack used to be called ComfyUI-MiniMax-Creator, and the node ids stayed the same through the rename. If you clone the new folder next to the old one, two folders register the same ids and no node shows up in the search at all. If you already have the old folder, git pull inside it instead. Delete one copy, restart, and check output/continuity/takes/ on your next multi-shot render.

    If you see a take missing from a long strip that died late, that's the node doing its job - the good shots are already on disk, so re-queue and they'll come back from the cache or play from their takes rather than being sampled twice.

    CategoryContinuity/internal

    Inputs (6)

    NameTypeDefaultDescription
    sourceMMC_PASS
    fpsFLOAT24.001–120
    filename_prefixSTRINGcontinuity/H3
    crfINT230–51
    cardINT11–9999
    seedINT00–18446744073709550000

    Outputs (0)

    No outputs