Nodes/ComfyUI-MiniMaxH3-Context-Loop/MiniMax H3 Upscale Manifest Load
ComfyUI Node

MiniMax H3 Upscale Manifest Load

Reassemble a saved MiniMax H3 upscale without rendering a single frame

By ethanfel·Created about a month ago·Updated about 20 hours ago· 437
MiniMax H3 Upscale Manifest Load
    • manifest
    • manifest_json
    • status
    manifest_path

    MiniMax H3 is a 33B omni-modal model that generates 4–15 second clips with native stereo audio - so a "video" is really a chain of scenes, each one an expensive sampling job with its own sound. The Context Loop pack turns that into a production line: render a scene, review it, checkpoint it, move on. Deferred upscaling then reruns that saved chain through SeedVR2 or a latent upscaler and drops the results under output/h3_chains/<run>/upscaled/<profile>/.

    And then you close ComfyUI, and all those polished HQ segments are just files sitting on disk.

    This node is the way back in. It reads a saved upscale manifest off disk and hands it straight to H3 Chain Assemble, which muxes the finished MP4. No sampler runs, no Plan, no Loop End, no model loaders, no source scene regeneration. If you've ever sat through a second pass over a ten-scene project just to get an MP4 you already had the pieces for, this is the node that stops that.

    How it works

    It's a one-widget node with a deliberately dumb-looking surface and a fairly paranoid interior. You give it manifest_path - a string, not a dropdown, so there's no file browser. Paste either an absolute path or a path relative to ComfyUI's output folder:

    h3_chains/my-film/upscaled/seedvr2/upscale_manifest.json
    

    At queue time it resolves that path (the pack refuses anything that resolves outside the ComfyUI output tree), parses the JSON, and checks the manifest's format field against the two records this pack writes: h3_chain_upscale_manifest_v1 for a completed profile, or h3_chain_upscale_partial_manifest_v1 for a half-finished one. Point it at a scene checkpoint, a final-video record, or a generation manifest and it stops with an explicit error instead of assembling something subtly wrong.

    Then it verifies, against SHA-256 hashes stored in the manifest, every segment MP4, every checkpoint, and any generated audio the manifest names. That's the honest part: the node is a reader, not a backup. If a file was deleted or moved, verification fails here, at queue time, rather than producing a truncated movie. It rebuilds the assembly record from the source manifest embedded in the upscale manifest - that's why partial upscales can still be assembled - and its IS_CHANGED always reports changed, so re-queueing it re-verifies rather than serving a cached result.

    Inputs and outputs

    The only input is manifest_path, and the tooltip is the instruction manual: point it at the complete upscale_manifest.json, or at partial/through_clip_NNNN.manifest.json if the run never finished. A partial stays partial - you get the scenes that were saved, and the node doesn't try to finish the job or rewrite anything.

    Wire manifest (type H3_CHAIN_MANIFEST) into H3 Chain Assemble's manifest input and queue Assemble. manifest_json is the whole record as readable JSON if you want to inspect or store it, and status is the one-line summary - scene count and resolved location - that tells you immediately whether you loaded 12/12 scenes or 5/12.

    Install

    ComfyUI Manager, search MiniMax H3 Context Loop, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/seitanism/ComfyUI-H3-Motion-Context-MultiRef.git
    git clone https://github.com/ethanfel/ComfyUI-MiniMaxH3-Contex-Loop.git
    

    Restart ComfyUI. Despite the README's mention of ffmpeg, the pack ships no requirements.txt and installs nothing through pip - the only real prerequisite is ffmpeg on PATH (PyAV is the fallback), plus a ComfyUI build with native MiniMax H3 Add Guide support. You still supply your own H3 diffusion model, text encoder, video VAE, and audio VAE; none are bundled. Note the folder name: the repo is spelled Context-Loop now, and an existing Contex-Loop install works fine - don't clone a second copy to "fix" the name.

    Where people get burned

    The one that actually bites is cleanup. delete_checkpoints_after_assembly on H3 Chain Assemble permanently deletes the completed manifest's .safetensors payloads - the docs are blunt that when those are gone, reassembly through Load Manifest is gone too, and this node's hash check will say so. Leave that option off if you want to reopen a project and re-assemble later.

    The rest are ordinary mistakes. Wire either the saved upscale loop or this loader into Assemble, not both - the README's recovery branch exists precisely so the muted loop can't fight the loaded manifest. And don't expect a picker in the widget: it doesn't scan projects, so the path is yours to paste.

    Community writing on this pack is still basically nonexistent - H3 discourse in the corpus is launch-week reaction, nothing post-release - so the workflow docs and the example workflows are your manual here, and they're better than average.

    Categoryconditioning/minimax/context_loop/upscale

    Inputs (1)

    NameTypeDefaultDescription
    manifest_pathSTRINGSaved upscale_manifest.json (complete), or partial/through_clip_NNNN.manifest.json. Accepts an absolute path or a path relative to ComfyUI output. Connect manifest directly to H3 Chain Assemble; no Adapter, sampler, or source Plan is needed.

    Outputs (3)

    NameTypeDescription
    manifestH3_CHAIN_MANIFESTSaved complete or partial upscale manifest for H3 Chain Assemble.
    manifest_jsonSTRINGReadable JSON of the saved upscale manifest.
    statusSTRINGVerified saved scene count and manifest location.