H3 Save Hold Map (sidecar)
A de-rope render without its hold map is a secret that dies when you close the graph
- path
H3 Save Hold Map is the node nobody adds until they've lost a render. It exists because the whole MAINodes pipeline has a dirty secret: the "clock" of a de-roped clip lives in a JSON string that exists only in memory while the graph is open. You run the pipeline, you love the output, you close ComfyUI - and the information about exactly which frames were held, and for how long, is gone. A later tool like the staircase ruler or H3 Clock Remap can't re-derive it, because the recovery already threw the held frames away. This node writes that clock down beside the render so it survives.
What it actually does
It's an output node, not a processing node. You wire two things in and it writes a file, period.
hold_map- this should behold_map_usedfrom H3 Time Smear, not the map you fed in. That's the crucial distinction.hold_map_usedrecords what actually happened after padding and grid-snapping, so recovery is lossless and any later reader gets the true clock.filename_prefix- the same prefix yourSaveVideoof that arm uses (defaultvideo/derope). The node matches the convention, so the.holdmap.jsonlands right next to the render.
Give it those and it writes <output>/<filename_prefix>.holdmap.json and returns the relative path as its only output. It deduplicates on write (a second run gets a _00001 suffix rather than clobbering the first), so re-queueing doesn't destroy evidence.
Why you'd bother
Three real uses. First, reproducibility: a de-rope is seed + prompt + hold map, and the hold map is the part that evaporates. Second, the "staircase ruler" and any later H3 Clock Remap pass read this exact file - the README's generic-de-rope branch (DEROPE_ANY_MODEL.md) uses it to retime a plan onto another model's clock, like LTX-2.5's 8k+1 grid. Third, honesty: if you're iterating on a clip across days, the sidecar is your only record of what the previous pass actually held.
Install and context
It ships in matlowai/ComfyUI-MAINodes with the rest of the Motion Lab. Install once, get everything:
cd ComfyUI/custom_nodes
git clone https://github.com/matlowai/ComfyUI-MAINodes
Restart ComfyUI and you'll find the node under image/minimax/motion. There are no Python dependencies (the pack declares none), though the README's example graphs additionally need ComfyUI-KJNodes. You also need MiniMax-H3 weights and ComfyUI's stock H3 support - and a heads-up the license geofences out the US, EU, UK and Korea, so check that before you commit to this stack.
The honest take: this is a 60-second add that saves a re-render of a clip that took 12+ minutes. Just wire hold_map_used through, not the pre-pad map - that's the one mistake that makes the sidecar lie.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| hold_map | STRING | — | |
| filename_prefix | STRING | video/derope | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| path | STRING | — |