H3 Face · Bind External Prompt Relay (T8 EXP)
Keep your timestamped prompts while a face pass runs on top
- model
- relay_positive
- relay_av_latent
- relay_plan
- face_plan
- source_frames
- stage_av_latent
- stage_context
- model
- positive
- report_json
Two things in this pack do not naturally fit together. A Prompt Relay plan gives the model a timeline - this happens at second 6, that line lands at second 9 - by installing a per-query time bias on the model's attention. Face refinement runs a small low-denoise pass over a face crop with its own model and sampler. Stack them naively and you either lose the timeline or you lose the crop.
This node is the adapter that lets a full-clip standard face refinement stage run with an externally applied Relay model and conditioning attached.
What it binds
It takes the Relay side and the face side and pairs them:
- Relay side:
model,relay_positive(the conditioning the Relay produced),relay_av_latent, andrelay_plan(the Relay plan object). - Face side:
face_plan(standard face plan - this node is explicitly not for the parity or window variants),source_frames,stage_av_latent, andstage_contextfrom the face bind node.
It outputs the paired model and positive, plus a report_json. No sampling, no encoding, no crop decode.
The division of authority
This is the part worth understanding, because it decides what you can expect from the output. The Relay AV is checked for packed layout only - the face-crop AV and the untouched source audio are the authoritative content. In other words: the Relay contributes time-aware conditioning to the model, and the face stage decides what pixels get changed.
That is a sane split. A Relay plan is about when things happen in the film; a face repair is about what one region looks like. The Relay does not get to overrule the repair window, and the repair does not get to rewrite the timeline. If you came here expecting the Relay to also govern the crop's content, you have the wrong mental model of these two systems.
The other strict rule is scope: standard face plan only. Feed it a parity plan and you want the equivalent node for parity stages; feed it a window plan and you want the local relay bind node instead. These look interchangeable and are not.
Wiring
Relay conditioning (from the pack's Relay nodes) + face plan/source → Face Relay Bind → face sampling stage → face audit.
The bind sits between the two halves. Face bind first, then relay bind, because the relay side consumes stage_context.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8
Restart ComfyUI fully afterwards. These are EXP classes and they register at import - if the node does not appear in the search after a browser refresh, you have not actually restarted. ComfyUI Manager users can install by searching "MiniMax H3 Audio T8". The pack's requirements.txt deliberately installs nothing, so adding it cannot quietly replace ComfyUI's Torch or CUDA stack, but you still need a recent Core with H3 support plus the H3 weights, Qwen encoder, video VAE and audio VAE.
Things that will bite you
The pack refuses stacked effects owners, so do not arrive here with a model that already carries a Relay wrapper. One independent Relay per model; if you already have one installed upstream, this node is not the place to add a second.
Remember what the Relay can do to dialogue. The dialogue-capable joint AV routing is documented as incompatible with locked source audio, so if you are preserving an existing soundtrack, the Relay phrasing has to live in the video-focused route. That is a hard error rather than a degraded result, which is kinder than it sounds.
And treat the face pass as what it is: low denoise, small sigma range, tuned for polishing a crop. If the face is drifting for identity reasons - the model stopped being the same person - no amount of Relay timing and no amount of refinement strength fixes that. Identity is set during the generation pass; this whole pipeline is downstream cosmetics with provenance checks bolted on.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| relay_positive | CONDITIONING | — | |
| relay_av_latent | LATENT | — | |
| relay_plan | H3_T8_PROMPT_RELAY_PLAN | — | |
| face_plan | H3_T8_FACE_REFINE_PLAN | — | |
| source_frames | IMAGE | — | |
| stage_av_latent | LATENT | — | |
| stage_context | T8_STAGE_CONTEXT | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| positive | CONDITIONING | — |
| report_json | STRING | — |