MiniMax H3 Drift-Control Model Patch (Sigma Split)
Drift Control across a sigma split, without duplicating the model
- model
- state
- latent
- full_sigmas
- model
Drift-Control AV is the pack's experimental way to keep the picture seam exact when a scene continues from its accepted predecessor - it re-applies the sampler's existing noise to the oldest part of the video prefix and tapers the seam so it stays clean. The problem this node solves is narrower: how to make that work when you're splitting denoising across two samplers that switch H3 models mid-schedule. You don't want to load the whole 33B model twice just to patch one branch, and you don't want the second half of the schedule to forget it's the same mask.
What it does
MiniMaxH3DriftControlModelPatch is a lightweight inline MODEL patch for sigma-split workflows. It stores the small full sigma tuple plus a non-copying reference to Chain Context's clean latent, and clones the ModelPatcher metadata - it never duplicates model weights or latent data. For a non-Drift scene it passes the MODEL through completely unchanged, so you can wire it into every branch and let the state decide what actually happens.
You use one instance per raw model branch, including the first. Wire:
- model - one raw H3 AV MODEL used by a sigma-split sampler.
- state - Current Shot state, which says whether this scene is a Drift-Control scene.
- latent - Chain Context's latent output. Its private marker verifies that the sampler and model patch are using the same Drift-Control prefix, and it stays the clean inpaint reference across the sampler handoff.
- full_sigmas - the original complete sigma schedule, before it's split. Every model-patch instance must receive this same schedule, while each sampler still gets its own half. Get this wrong and stage two starts a fresh local curve instead of continuing the fade.
Output is the patched model, routed through every sampler stage.
The point of full_sigmas can't be overstated: in a split workflow it's easy to feed each stage its own half-schedule, but then the patch can't reconstruct where it is in the whole denoising curve. Same schedule everywhere, split halves only at the samplers.
Install and gotchas
cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-MiniMaxH3-Contex-Loop.git
Restart, or use ComfyUI Manager → "MiniMax H3 Contex Loop". No pip dependencies; a current ComfyUI with native Add Guide (PR #15439) is expected, and ffmpeg on PATH is preferred. Models aren't bundled - see the MiniMax H3 Community License for the territory restriction before you commit to local weights.
If your sampler errors about a mismatched prefix marker, it means the latent you connected isn't Chain Context's output - the marker is a sanity check, not decoration. And remember this node serves the Color-Stable Drift AV variant too; it's the shared plumbing for both drift recipes on the chain's Advanced Policy.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | One raw MiniMax H3 AV MODEL used by a sigma-split sampler. Use one patch node per model branch, including the first. | |
| state | H3_CHAIN_STATE | Current Shot state. Non-Drift scenes pass the MODEL through unchanged. | |
| latent | LATENT | Chain Context's latent output. Its private marker verifies that the sampler and model patch use the same Drift-Control prefix, and it remains the clean inpaint reference across a multi-sampler sigma handoff. | |
| full_sigmas | SIGMAS | The original complete sigma schedule BEFORE it is split. Every model-patch instance must receive this same schedule, while each sampler still receives its own split half. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | The input MODEL with Drift-Control's shared full-schedule mask patch and automatic clean-reference sigma handoff only for an active Drift-Control scene; otherwise unchanged. |