MiniMax H3 Enhance-A-Video / FETA (Advanced EXP)
Temporal sharpening for H3 clips, injected straight into attention
- model
- sigmas
- model
- runtime
- report_json
If you've got a MiniMax H3 clip where motion goes mushy or frames don't hold together, this is the node that tries to fix it inside the model instead of after the fact. It's an experimental port of the Enhance-A-Video technique - FETA, Feature Enhancement in Temporal Attention - into H3's actual attention pass. The idea, borrowed from the Enhance-A-Video paper, is to boost cross-frame interaction so the model keeps things temporally consistent while it generates.
Here's the mechanism, stripped down: the node computes the cross-frame interaction (CFI) from the target video's Q/K only - not the reference video, not the audio stream - and scales only the target-video attention output rows by a weight called tau (default 4). It does that in exact, low-memory chunks governed by max_workspace_mib, so the temporal score buffer doesn't eat your VRAM. It never touches audio attention, and it's not a post-process filter. It changes how the transformer attends across frames while sampling.
The inputs that actually matter:
model- clean native H3 for the defaultstock20profile. No LoRA, no cache, no attention patch: stock20 rejects every LoRA. Forturbo8_alpha8, apply the corrected 208-module Alpha8 bypass LoRA before this node.sigmas- the exact SIGMAS your sampler receives. This gets checked strictly; a mismatch fails the run.mode-disabledis an exact bypass,report_onlymeasures the CFI/gain without changing your output, andapply_expactually applies the gain. Read that carefully:tau = 0is not off. Off isdisabled.tau- the enhancement weight. The tooltip is honest: 4 is "an upstream candidate, not a validated H3 optimum." Treat it as a starting point, not a setting you've earned.g_hard_limit(default 1.5) - a fail-closed guard. If the observed gain exceeds it, the node refuses the run rather than silently clamping and calling it paper-equivalent.
Outputs: model (into your sampler), runtime (H3_T8_EAV_RUNTIME - the pack's companion audit node consumes it so you can see exactly what happened), and report_json for inspection.
The part to internalize: this is an experiment, and the author says so on every panel. Automatic metrics only prove that trajectories and the joint audio changed - not that either got better. So the correct workflow is: run disabled and report_only (or apply_exp) with the same seed, and actually eyeball the results. That's not paranoia, that's the pack's whole design philosophy.
Where people get burned: stacking it with other attention patches. The README is explicit - don't pile standalone EAV on top of KJ Sage, BlockCache, STG, or Prompt Relay. If you want those combos, the pack ships dedicated composer nodes for them. And if you hit a "runtime contract" error, you fed it the wrong sigmas or a model with a LoRA in stock20 mode.
Install it via ComfyUI Manager (search "MiniMax H3 Audio T8") or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8
Restart ComfyUI after. The pack has no forced pip dependencies - its requirements.txt literally reads "No extra packages" - and it never downloads H3 weights for you. You bring the H3 DiT, the Qwen/MiniMax CLIP, VAE, and any LoRAs yourself, and remember the H3 Community License itself geofences the weights out of the US, EU, UK and Korea regardless of what this GPL pack does.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | Stock20: connect the native H3 model with no LoRA/cache/attention patch. Turbo8: connect the corrected 208-module Alpha8 bypass LoRA first, then this node; the runtime contract is checked strictly. | |
| sigmas | SIGMAS | Connect the exact Stock20 or Turbo8 SIGMAS sent to the sampler. | |
| mode | COMBO | report_only | disabled is exact bypass; report_only measures CFI/g without changing the output; apply_exp enables the experimental gain. tau=0 is not off. |
| tau | FLOAT | 4.00-32–32 | Paper enhancement weight. 4 is an upstream candidate, not a validated H3 optimum; always compare against disabled/report_only with the same seed. |
| start_video_progress | FLOAT | 0.000–0.99 | — |
| end_video_progress | FLOAT | 1.000.01–1 | — |
| max_workspace_mib | INT | 324–512 | Upper planning budget for chunked temporal score buffers. This is not a whole-workflow VRAM guarantee. |
| g_hard_limit | FLOAT | 1.501–3 | Fail closed when the observed gain exceeds this value. The node refuses the run instead of silently clamping and calling it paper-equivalent. |
| sampling_profile | COMBO | stock20 | stock20 rejects every LoRA. turbo8_alpha8 requires the corrected 208-module Alpha8 bypass LoRA at strength 1.0 before this node. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| runtime | H3_T8_EAV_RUNTIME | — |
| report_json | STRING | — |