MiniMax H3 FreeNoise Long Video / 长视频噪声重排 (Advanced EXP)
FreeNoise for long H3 videos — one shared noise pool, permuted per segment
- model
- model
- report_json
If you've been around AnimateDiff-era video generation, you know FreeNoise: instead of rolling fresh noise for every video window - which is why the same character wobbles and the background swims between segments of a long clip - you build one shared pool of noise and deterministically permute it for each window. The segments stay temporally consistent because they're all drawing from the same noise family. This node is that trick, ported to MiniMax H3's long-video runners.
The catch that makes this H3-specific: H3 is a joint audio-video model, so a naive FreeNoise port might reschedule everything. This node doesn't. The description is precise - it adds deterministic FreeNoise-style rescheduling to the video noise, while audio noise remains native and independent. That scope decision matters if you're refining audio or locking a source track; you don't want a video-consistency hack silently changing how the audio slice starts.
How it behaves
mode-paper_permutation(the default) uses the paper-style full shared noise pool: every segment draws from the same pool, each with its own deterministic time permutation.variance_preserving_blendmixes the shared pool with per-segment independent noise.base_seed(default 123456789) - the seed that makes the whole permutation scheme reproducible. Change it and you get a different - but still internally consistent - long video.reuse_ratio(default 0.65) - used only byvariance_preserving_blend; the tooltip spells out thatpaper_permutationalways uses the full shared pool (1.0). If you leave the mode on default, this slider does nothing, which is a nice piece of honest UI design.
Outputs: the patched model and a report_json. There's no sampler output here, which is the point - this node patches the model's noise handling, it doesn't own the sampler or attention. That's what lets it compose with the pack's Prompt Relay and Enhance-A-Video routes, both of which do own attention. The README makes this composability explicit: "It composes with Prompt Relay and Enhance-A-Video because it does not own attention."
The honesty you should know about
The pack's README draws a clear line between FreeNoise-the-paper and FreeNoise-the-adaptation. The original paper also runs sliding-window temporal attention fusion inside one long latent; the H3 route still samples in independent 124-frame training windows with continuation context. So this node is called exactly what it is - a FreeNoise noise rescheduling adaptation - and the pack refuses to claim it fully reproduces the paper or guarantees seam-free video. It's a tool for reducing inter-segment noise inconsistency, not a magic long-video-consistency button. Test it on your own content and judge the seams yourself.
One operational note: whatever you set here (mode, base seed, reuse ratio) gets baked into the long-video breakpoint contract. If you change any of it mid-project, you need a fresh chain_id for the resume/continuation logic, or your segments won't line up.
Install
Same pack, same steps:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8
or ComfyUI Manager → "MiniMax H3 Audio T8" → restart. Update ComfyUI itself first - an old build import-fails the whole pack. This node needs no extra models; it patches the loaded H3 model. The FreeNoise workflow lives in the 04-long-video folder (FreeNoise_Prompt_Relay_EAV_Long_Video_Advanced), so grab that rather than hand-assembling one.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| mode | COMBO | paper_permutation | 2 options: paper_permutation, variance_preserving_blend |
| base_seed | INT | 1234567890–18446744073709550000 | — |
| reuse_ratio | FLOAT | 0.650–1 | Used only by variance_preserving_blend. paper_permutation always uses the paper-style full shared pool (1.0). |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| report_json | STRING | — |