Nodes/MiniMax H3 Audio T8/MiniMax H3 Speech Finalize & Release / 完成并释放 (EXP/T8)
ComfyUI Node

MiniMax H3 Speech Finalize & Release / 完成并释放 (EXP/T8)

The bookend that releases your VRAM after a speech render

By T8mars·Created 20 days ago·Updated a day ago· 807
MiniMax H3 Speech Finalize & Release / 完成并释放 (EXP/T8)
  • audio
  • speech_guard
  • audio
  • report_json
release_policyclear_execution_cache
upstream_report

Speech workflows in the T8mars H3 pack are deliberately structured with a bookend: MiniMaxH3SpeechGuardT8 arms a cleanup guarantee at the front, and MiniMaxH3SpeechFinalizeT8 is the node that actually performs the release at the end - if the render completes normally. It passes your AUDIO through untouched and then requests the release policy you chose, so the expensive H3 model doesn't sit in VRAM after a voiceover job is done.

On the surface it's nearly trivial: audio in, audio out, plus a report. The reason it exists is resource hygiene. H3 is a big 33B model, and this pack runs on the assumption that you don't want it resident for the whole session. The speech graph is explicitly built as condition → sample → audio-only decode → finalize and release, and this node is that last step.

The inputs

  • audio - the audio you want to pass through (typically from MiniMaxH3SpeechDecodeT8 or MiniMaxH3SpeechAssembleT8).
  • release_policy - clear_execution_cache (default) or unload_all_models. The author's note is important: unload_all_models is global - it unloads every model in ComfyUI, not just H3 - and is never described as H3-only. Choose it knowing it nukes the whole GPU state.
  • upstream_report (optional) - a report string from upstream nodes that gets folded into the final JSON, so your release record carries the full chain.
  • speech_guard (optional) - the guard object from MiniMaxH3SpeechGuardT8, so Finalize can formally complete the guard instead of just being another node that ran.

Outputs: the passed-through audio and a report_json that records the release, the guard state, and (if provided) the upstream report.

The pairing that matters

The guard at the front arms a promise: "if something abnormal happens between here and Finalize - OOM, a cancellation, another upstream exception - release the selected policy anyway." Finalize is the happy-path counterpart: it releases on normal completion. Between the two, you get release-on-success and release-on-failure. Current ComfyUI already unloads models for recognized CUDA OOM; the guard exists to close the non-OOM and cancellation gaps. So the pairing is: arm the guard in SpeechConditioning, run the render, and let Finalize dismount.

Install

Pack standard - ComfyUI Manager, search "MiniMax H3 Audio T8", or

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8

then restart. No extra pip packages.

The honest take

This is a thin node - you could almost think of it as a formality. But the discipline it encodes is the right one for VRAM-constrained H3 work: every speech job should end with an explicit release, and the release should be recorded so you can see what happened. If you skip Finalize and just let the workflow end, the model lingers until ComfyUI's own GC gets around to it, which on a busy session is how the next render starts already OOM. Two minutes to wire, one less mystery OOM. Worth it.

CategoryT8/MiniMax H3/Speech/Experimental

Inputs (4)

NameTypeDefaultDescription
audioAUDIO
release_policyCOMBOclear_execution_cache3 options: keep_loaded, clear_execution_cache, unload_all_models
upstream_reportoptSTRING
speech_guardoptH3_T8_SPEECH_GUARD

Outputs (2)

NameTypeDescription
audioAUDIO
report_jsonSTRING