Nodes/IAMCCS-nodes/IAMCCS Ahead Control Room · Seam Review
ComfyUI Node

IAMCCS Ahead Control Room · Seam Review

Fix the seams on a finished long video without re-rendering it

By IAMCCS·Created 11 months ago·Updated about 17 hours ago· 113
IAMCCS Ahead Control Room · Seam Review
    • generation_report
    generation_report

    You just spent two hours rendering a multi-interval H3 film. Nine of the ten joins are invisible. The one at four seconds has a visible lurch where the previous clip's tail meets the next clip's head. Re-running the whole thing to fix one seam is not an option, and the seam you want to fix is in pixels on a finished master anyway.

    The Ahead Control Room exists for exactly that. It is not a generator and it contains no sampling. It takes the report string a LatentGoAhead render hands out, finds the checkpoint directory that render wrote, and opens a browser-side seam editor so you can dissolve specific joins on the finished master.

    What it does, mechanically

    The node has one input, generation_report (a STRING, forced input) and one output of the same string, which you can pass on downstream. When you hit Queue, it regexes the report for the checkpoints= path and pulls the 32-hex run id out of it. That run id has to match a directory under ComfyUI/output/IAMCCS/LatentGoAhead/, and it has to be a directory that looks like a completed master: a final_film.mp4 plus at least two interval_*_delivered.mp4 clips.

    Then it audits before it lets you edit anything. Every interval clip must report the same frame rate, and the master's frame count must equal the sum of the intervals. If those don't line up it refuses - Master and interval timing differ; refusing ambiguous edits. That check is the whole reason this is safe on a film you care about: a seam that shifted by three frames would silently desync your render.

    Your edits are per-seam and deliberately small. Each seam takes a blend curve (linear, smoothstep or cosine), a radius of at most six frames, and an offset of up to six frames either way. Zero radius means "leave this join alone" - a cut-only export. Empty edit list also works, and preserves every source frame.

    Export is duration-preserving. It re-encodes the video with the dissolved windows, aborts if the frame count changed, and then muxes the audio by copying the original packets out of final_film.mp4 rather than re-encoding them. So sync cannot drift as a side effect of a video-timing edit. Alongside the new file it writes a JSON sidecar with the recipe and stamps the seam edits into a copy of the workflow, so the recipe is reproducible rather than a thing you did once and forgot. If FFmpeg is missing you get a plain FFmpeg is unavailable - the pack ships a startup hook that exposes an imageio-ffmpeg binary, so this usually only bites on broken installs.

    Wiring it

    The report output of IAMCCS_MiniMaxH3LatentGoAhead goes straight into generation_report. That is the only wire. The node is an output node because it opens a UI panel rather than passing something useful to a sampler downstream.

    If you route the report through a text node first and mangle it, you lose the checkpoints= token and get Connect the LatentGoAhead report output to IAMCCS Ahead Control Room. - which is a decent error message, and worth heeding literally: it means the string it received had no run path in it.

    Install

    Standard for the pack. In ComfyUI Manager search IAMCCS, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/IAMCCS/IAMCCS-nodes.git
    

    Restart ComfyUI. The editor UI is served out of the pack's web/ directory, so if the node queues happily and nothing appears, that is a frontend load problem, not a render problem - check the browser console and make sure you only have one copy of IAMCCS-nodes in custom_nodes. Two copies is a documented way to get duplicate routes and a stale node definition.

    Things that will trip you up

    • It needs LatentGoAhead output. The run layout (interval_*_delivered.mp4 plus final_film.mp4) is written by that node. Feeds from other video nodes will not resolve.
    • Audio is copied, not edited. If the seam problem is audible - a click - this is the wrong tool. LatentGoAhead's own audio_join/audio_smoothing_ms delivery settings handle that side.
    • Nothing here touches your latents. Which is the point. You can export five different seam recipes from one master, and the original render stays byte-identical.

    Think of it as the last five percent of a long render - the pass you do once the render is technically finished and you are just unhappy with one join.

    CategoryIAMCCS/Cine/Post Production

    Inputs (1)

    NameTypeDefaultDescription
    generation_reportSTRING

    Outputs (1)

    NameTypeDescription
    generation_reportSTRING