Nodes/comfyui-minimax-h3-audio-T8/MiniMax H3 Audio Refine Quality Gate / 音频精修人工质量门 (T8 Advanced EXP)
ComfyUI Node

MiniMax H3 Audio Refine Quality Gate / 音频精修人工质量门 (T8 Advanced EXP)

Your refine only counts if you actually listened

By T8mars·Created about a month ago·Updated about 20 hours ago· 1,023
MiniMax H3 Audio Refine Quality Gate / 音频精修人工质量门 (T8 Advanced EXP)
  • original_av_latent
  • candidate_av_latent
  • original_audio
  • candidate_audio
  • selected_av_latent
  • selected_audio
  • candidate_selected
  • decision
  • report_json
accept_candidatefalse
video_frame_count0
fps24.000
maximum_duration_delta_ms50.0
spectral_drift_threshold0.30
level_delta_threshold_db4.0
persistent_window_count3

Every audio-refine chain in this pack ends the same way: not with a sampler, but with a person. This node is that person's gate. It takes the original clip and the refined candidate, audits the candidate mechanically, and - here's the whole design - defaults to the original until you explicitly flip the acceptance switch. A refine that sounds good in theory but wrong in the room should never make it into the final render, and this node makes that the path of least resistance.

The default matters more than it looks. In most ComfyUI gates, the interesting output is what you switch on. Here, accept_candidate defaults to false, and its tooltip says it plainly: "Keep false until you have listened to the saved original/candidate pair." The node's philosophy is that the only honest quality judgment on audio is human audition, so the mechanical checks are framed as review cues, not quality claims. It will reject a candidate that is mechanically broken, but it will never claim a candidate is better.

What it checks and what it outputs

  • original_av_latent / candidate_av_latent and original_audio / candidate_audio - both pairs, so it can compare
  • video_frame_count, fps - to verify the candidate timeline lines up with the original video
  • maximum_duration_delta_ms (50), spectral_drift_threshold (0.3), level_delta_threshold_db (4), persistent_window_count (3) - the mechanical audit: shape, sample rate, duration, and non-finite data all get rejected; spectral and level deltas are the review cues
  • accept_candidate - the human switch

Outputs: selected_av_latent and selected_audio (original or candidate, per your decision), candidate_selected (BOOLEAN), decision, and report_json. When you accept, it splices the candidate audio latent into the exact original video latent - so the picture never changes, only the sound.

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 itself 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 most common mistake is treating the mechanical audit as a quality verdict. A candidate that passes shape/rate/duration checks can still sound worse - that's exactly why accept_candidate exists and why the tooltips insist you listen. The practical rhythm: save the original/candidate pair, audition it (headphones, not laptop speakers), then flip the switch. The second mistake is forgetting the gate only splices audio - if your refine also produced a candidate video latent you wanted, this node won't swap it; the video half of selected_av_latent is the original by design. If your candidate's audio timeline drifts from the video, the duration-delta check should catch it before you ever hear the jank; if it doesn't, check the fps/frame-count inputs actually match your render.

CategoryT8/MiniMax H3/Audio/Experimental

Inputs (11)

NameTypeDefaultDescription
original_av_latentLATENT
candidate_av_latentLATENT
original_audioAUDIO
candidate_audioAUDIO
accept_candidateBOOLEANfalseKeep false until you have listened to the saved original/candidate pair.
video_frame_countINT00–1000000
fpsFLOAT24.0000.001–1000
maximum_duration_delta_msFLOAT50.00–10000
spectral_drift_thresholdFLOAT0.300.01–4
level_delta_threshold_dbFLOAT4.00.1–40
persistent_window_countINT31–100

Outputs (5)

NameTypeDescription
selected_av_latentLATENT
selected_audioAUDIO
candidate_selectedBOOLEAN
decisionSTRING
report_jsonSTRING