MiniMax H3 Pixel Continuity • Experimental Boundary Export
Redraw the seam, leave every other frame alone
- manifest
- options
- model
- clip
- video_vae
- tagged_references
- video_path
- status
The whole pitch of this node is what it doesn't touch. After assembly, it re-samples a short window straddling each marked scene join, pastes only the middle frames of that refinement back into a copy of the finished film, and leaves every other decoded frame bit-identical. The assembled audio is stream-copied, so nothing about it changes.
If you've ever re-rendered forty minutes of video to fix a two-frame flicker at a cut, that's the alternative this exists to avoid. Mark joins on the pixel-continuity path, and you can refinish just the joins.
It is also explicitly an experiment, and the pack says so twice: it "may improve the join but introduce artifacts at the replacement edges." Read the results section below before you build a delivery workflow on it.
What goes in, what comes out
Required: video_path (a forced input string - you wire the assembled video's path from Assemble here, not a path you retype), manifest (the run's manifest), options (the object from MiniMax H3 Pixel Continuity • Boundary Experiment), plus model, clip and video_vae. Optional: prompt_override and tagged_references, so the rebuilt prompt for the incoming scene can use the workflow's references.
Outputs are video_path - the refined MKV's path, which is the one you use downstream, not Assemble's baseline path - and status.
The model inputs are lazy, and genuinely so: when the experiment is off, or when there's no eligible join, the node returns the incoming path without ever evaluating the loaders. You can leave them connected in a workflow that mostly isn't using this feature.
How the refinement window is built
Every eligible join gets a window made of three parts: 22 fixed high-quality frames before the editable region, frames_per_side pre-USDU frames from each side of the join (so 17 per side, 34 editable frames, at the default), and 17 fixed high-quality frames after it. The center is re-sampled with the workflow's own model and LoRA input on fixed settings - er_sde/beta, 512×288 tiles, padding 64, disk canvas - while the anchors stay exactly as they were. Only the middle 34 frames are spliced in.
The output is a separate *_boundary_<hash>.mkv written next to the baseline. Nothing is overwritten, no saved HQ checkpoint is rewritten, there's no crossfade, no interpolation, and no frame-count change. The baseline is decoded forward exactly once for all windows rather than restarted per join, which is what keeps this sane on a long chapter.
Joins are skipped, not guessed, when the correspondence is broken: editorial trims that remove the generated join, internal gaps, reordered scenes, insufficient context on either side, and overlapping windows. status counts them. The working scratch windows are deleted on success, failure or cancellation.
Install
Same pack, same two clones - ComfyUI Manager (search MiniMax H3 Contex Loop) or:
cd ComfyUI/custom_nodes
git clone https://github.com/seitanism/ComfyUI-H3-Motion-Context-MultiRef.git
git clone --branch main https://github.com/ethanfel/ComfyUI-MiniMaxH3-Context-Loop.git
Restart ComfyUI. The node needs ComfyUI-ContextAnchoredTile-videopath for its file-backed VIDEO transport (the same transport the example's DLSS and USDU nodes use), and no pip packages of its own. Fine as long as you understand the rest of the pixel-continuity chain wants ComfyUI-DLSS5-Enhancer and ComfyUI_UltimateSDUpscaleGuider_H3 too.
What will stop you
Missing pre-USDU samples for scenes N/M means the Boundary Experiment switch wasn't on when those clips were upscaled. There's no recovering that pair from the current profile - reprocess the pixel upscale with the switch on, in a new profile. The generation doesn't need redoing.
Boundary export requires 24 fps and H3-aligned dimensions is the other hard gate: 24 fps, and width/height divisible by 32.
And the size warning is real. The export is lossless, so the _boundary_*.mkv can be dramatically larger than the MP4 it mirrors even though almost every frame is a copy of it.
The results, honestly
On the pack's own two-scene continuation test, refining the center with pre-USDU frames at denoise 0.20 moved the join's mean absolute RGB difference from 0.0356 to 0.0334 - about 6% better. The two replacement edges moved the wrong way, up roughly 6% and 7.5%. Those are motion-sensitive numbers, not a quality score, but the direction is the point: you're trading one boundary for two. Inspect all three, not just the one you set out to fix.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| video_path | STRING | — | |
| manifest | H3_CHAIN_MANIFEST | — | |
| options | H3_PIXEL_BOUNDARY_OPTIONS | — | |
| model | MODEL | — | |
| clip | CLIP | — | |
| video_vae | VAE | — | |
| prompt_overrideopt | STRING | — | |
| tagged_referencesopt | H3_TAGGED_REFERENCES | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video_path | STRING | — |
| status | STRING | — |