MiniMax H3 Long Video Seam Drift / 长视频接缝色彩漂移审计 (Advanced EXP/T8)
The audit that catches H3 segments going green (or dark) at the seams
- frames
- person_roi
- frames
- status
- report_json
Stitch together enough H3 segments and you'll eventually see it: each segment is generated independently, so the color story drifts - the sky in segment three is a touch greener, the exposure at the cut is a click darker. Individually invisible, cut together it reads as "the video glitches at the seams." This node is the tool that catches that before you export. It audits the boundaries between your segments for brightness, white-balance, chroma and texture drift, reports exactly what changed, and - if you opt in - can apply a conservative correction that only uses bounded low-frequency gain and offset.
Read the boundaries of what it promises, because that's the honest part. It reports seam drift and can nudge the global tone of a region back toward its neighbors. It does not sharpen, invent detail, or touch audio - those are explicitly out of scope. And the correction is deliberately conservative: gains and offsets are clamped (maximum_gain defaults to 1.08), and any frame whose change would exceed safety thresholds rolls back to the untouched source. When in doubt, it does nothing rather than do harm.
Inputs that matter
- frames (IMAGE) - the assembled video frames
- boundary_frames_json - where the segment seams are, default
[124](match this to your render window) - mode -
report_only(default) or the opt-in correction - color_contract -
sdr_rec709_0_to_1default; tells the analysis what color space it's working in - analysis_window_frames (3), transition_frames (24), scene_cut_threshold (0.18) - how it detects and how far the correction blends
- minimum_drift (0.008) - below this, no correction is warranted
- maximum_gain / maximum_offset / maximum_frame_change / maximum_texture_ratio_deviation - the bounded correction limits
- person_roi (optional MASK) - restrict the audit to a person's region, for when you care about skin-tone drift at the seam but not the background
Outputs: frames (source, or source with only the safe low-frequency correction applied), status, report_json.
Installing it
Part of the T8mars/comfyui-minimax-h3-audio-T8 pack - search "MiniMax H3 Audio T8" in ComfyUI Manager, install, restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8
Update ComfyUI first (recent core: comfy_api.latest, comfy.weight_adapter, comfy.patcher_extension, comfy.ldm.minimax); requirements.txt is intentionally empty.
Where people get burned
The biggest mistake is treating report_only as a finished pass - it's the diagnostic, and it will happily show you seams all day without fixing them. The other is setting boundary_frames_json wrong: it must match your actual segment boundaries (usually your render window), or the audit analyzes the wrong places and confidently reports nothing. And while the correction is safe by design, it's still a color pass on top of generated video - if your source is already stylized, a "drift" report can be the look you intended, so read the report before enabling the fix. It's the kind of node that's most useful as a habit: run it once on a two-segment test, learn what your pipeline's seams actually look like, then trust it on the full shoot.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| frames | IMAGE | — | |
| boundary_frames_json | STRING | [124] | — |
| mode | COMBO | report_only | 2 options: report_only, bounded_candidate_exp |
| color_contract | COMBO | sdr_rec709_0_to_1 | 2 options: sdr_rec709_0_to_1, unknown_or_hdr |
| analysis_window_frames | INT | 31–24 | — |
| transition_frames | INT | 241–240 | — |
| scene_cut_threshold | FLOAT | 0.180.01–1 | — |
| minimum_drift | FLOAT | 0.0080–0.25 | — |
| maximum_gain | FLOAT | 1.081–1.5 | — |
| maximum_offset | FLOAT | 0.0400–0.25 | — |
| maximum_frame_change | FLOAT | 0.0600–0.5 | — |
| maximum_texture_ratio_deviation | FLOAT | 0.120–1 | — |
| person_roiopt | MASK | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| frames | IMAGE | — |
| status | STRING | — |
| report_json | STRING | — |