MiniMax H3 Dual-Clock Sampler (T8)
One clock for video, one for audio
- model
- av_latent
- model
- sampler
- sigmas
Most video models have one noise schedule. H3 doesn't, because it isn't one model - it's a joint audio+video Transformer where the picture runs at 24fps and the audio runs on its own ~40Hz clock. Treat both with a single schedule and one side gets the wrong number of steps where it matters. MiniMaxH3DualClockSamplerT8 is the pack's answer: a sampling setup with separate video and audio clocks, and it's the backbone of the whole MiniMax H3 Audio T8 pack. If you're generating H3 here, this is likely the sampler node you start from.
What it actually outputs
It's a setup node, not a full KSampler: it takes model and av_latent and returns model, sampler, and sigmas - the three pieces you wire into the actual sampler node, exactly like a ModelSamplingDiscrete style setup. You set steps (default 4 - H3 is flow-trained and fast), shift_video (12) and shift_audio (3). Those two shifts are the whole point: video noise gets a strong sigma shift, audio gets a gentler one, and each stream denoises on its own clock.
The sampler/scheduler combo
sampler_name defaults to dual_clock_euler and scheduler to native_flow. That pair is T8mars' original explicit dual-clock path, and the tooltip is careful: it preserves the original behavior. If your ComfyUI build has native H3 FLOW_AV support, you can also pick any stock sampler/scheduler and it routes through ComfyUI's native protocol instead. The KB's sampler guidance applies double here: H3 is a flow-matching model, so your old DPM++ 2M Karras habits belong to a different architecture - Euler-family on a conservative schedule is the safe lane.
Where it sits in a workflow
MiniMaxH3AudioConditioningT8 builds your AV conditioning and latent, this node prepares the sampling math, then a standard sampler runs it and MiniMaxH3AVDecodeT8 decodes the joint latent back to video + audio on the timeline. The pack's examples (01-basic-generation) wire it exactly that way - start there before you experiment.
Installing it
From MiniMax H3 Audio T8 (T8mars/T8star, GPL-3.0). ComfyUI Manager → search MiniMax H3 Audio T8, or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8
restart. No forced pip extras; H3 DiT, CLIP, video/audio VAE and LoRAs go in models/ yourself. And the H3 weights' Community License excludes the US, EU, UK and South Korea - check that before downloading.
The classic screw-ups
The README's troubleshooting list is worth quoting mentally: duplicated Sigma/sampler connections are a top cause of OOMs and weird output. Feed sigmas from this node once, don't re-wire a second sampler into the same path. And respect H3's frame grid - 22, 124, 362 are the shapes that work; don't guess "5 seconds" and hand the sampler an arbitrary length. If audio vanishes or comes out wrong, check that you're decoding with AVDecode's timeline-preserving path rather than treating it like a silent video model.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| av_latent | LATENT | — | |
| steps | INT | 41–1000 | — |
| shift_video | FLOAT | 12.000.01–100 | — |
| shift_audio | FLOAT | 3.000.01–100 | — |
| sampler_nameopt | COMBO | dual_clock_euler | dual_clock_euler preserves the original T8 explicit dual-clock path. Other choices use ComfyUI's native MiniMax H3 FLOW_AV protocol. |
| scheduleropt | COMBO | native_flow | native_flow preserves the original shifted uniform H3 flow schedule. Other choices use ComfyUI's built-in scheduler implementation. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| sampler | SAMPLER | — |
| sigmas | SIGMAS | — |