MiniMax H3 Chain De-Rope Budget
Read the cost of your hold map before Time Smear explodes the batch
- state
- source_video_latent
- sigmas
- hold_map
- sampling_steps
- status
De-RoPE is the part of the MiniMax H3 chain where a small node graph decides how many frames each source frame should become. You build a hold map (H3 Jerk Oracle plus Manual Hold Map), Chain De-Rope Guard protects the continuation prefix, and then H3 Time Smear turns that map into a physically longer IMAGE batch by repeating held frames. The expanded batch stays on CPU as float32 RGB, and high-motion scenes routinely become two to three times longer internally.
Which is exactly why this node exists. De-Rope Budget does not cap anything. It reports the bill before Time Smear spends it.
What it actually does
It plugs into the De-RoPE chain between Chain De-Rope Guard and H3 Time Smear, parses the same hold map string the guard produced, sums the hold counts, and tells you how many frames the expanded batch will contain at the source canvas - plus what a single copy of that float32 RGB batch weighs.
The math is the boring, honest part: frames x width x height x 3 x 4 bytes, converted to GiB. It also counts your actual sampling schedule (len(sigmas) - 1) rather than trusting a widget, because the truncated schedule is what really runs. Then it logs the summary and hands everything back unchanged.
Two things it is not, and the author's own description is blunt about it: it is not a memory limit, and it is not a VRAM forecast. The estimate excludes endpoint and legal-grid padding (Time Smear adds those later), excludes copies, excludes any spatial upscaling downstream, and excludes model weights and activations.
Inputs and outputs that matter
You only really set up the wiring; there is nothing to configure.
state- the current scene state. It uses the RAW clock including the carried prefix, so the reported frame count matches the hold map's own coordinate system.hold_map- the protected map from Chain De-Rope Guard. It comes in as a forceInput string and goes straight back out.source_video_latent- a clean source video latent, used only to read the source canvas size.sigmas- the truncated sampling schedule; its length drives the step count.
Three outputs, and this node is really a three-way tee:
hold_map- unchanged. Wire it into H3 Time Smear so the report runs before expansion, not after.sampling_steps- feed Time Smear'sest_stepsso its own estimate stays consistent with the schedule you're actually running.status- the human-readable line: planned expansion, actual steps, source-resolution buffer size. Send it to Preview Any and read it.
Install
This is one node from a whole project, so install the pack:
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 afterwards. ComfyUI Manager also finds it - search for MiniMax H3 Context Loop (the Registry ID keeps a historical typo, contex-loop, which is fine). You want a current ComfyUI with native H3 support, ffmpeg on PATH for review and assembly, and the H3 model files - the repo ships no weights. Note the licence point that catches people out: the MiniMax H3 community licence excludes the US, EU, UK and South Korea from its applicable territory, so the local weights are not licensed there.
Where people get burned
The most common surprise is a status line that says nothing changed: planned frames equal to RAW frames. That's not a bug, it's your hold map being all ones - check your Jerk Oracle ranges and Manual Hold Map entries. Hold ranges are zero-based RAW frames including the repeated prefix, so a range that looks right in delivered-time coordinates lands in the wrong place.
Second surprise: high-motion footage is not proportional. A hold map that is gentle on a static shot can double a busy one, and the doc's advice is to narrow the adapter's scene range, gate the oracle's temporal ranges or reduce oracle aggressiveness rather than pushing through. Budget tells you when you're about to find out the hard way. Third: it will never refuse a plan, so treating its status as a safety gate is the mistake - it is information, and the decision is still yours.
One more thing worth internalising: neither scene looping nor this report makes the expanded batch file-backed. It is still resident RGB.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| state | H3_CHAIN_UPSCALE_STATE,H3_CHAIN_STATE | Current scene state; uses its RAW clock, including the carried prefix. | |
| hold_map | STRING | Protected hold map from Chain De-Rope Guard. Passed through unchanged. | |
| source_video_latent | LATENT | Clean source video latent, used only to report the source canvas. | |
| sigmas | SIGMAS | Actual truncated sampling schedule. Its length determines the real step count. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| hold_map | STRING | Unchanged protected map; connect to H3 Time Smear so this report runs before expansion. |
| sampling_steps | INT | Number of sigma intervals; connect to Time Smear est_steps to keep its estimate current. |
| status | STRING | Planned expansion, actual steps and source-resolution pixel-buffer estimate; connect to Preview Any. |