Nodes/MiniMax H3 Audio T8/MiniMax H3 Skin Finish Video Finalize / 原音频封装 (Advanced)
ComfyUI Node

MiniMax H3 Skin Finish Video Finalize / 原音频封装 (Advanced)

The only Skin Finish node that re-encodes your video without touching the audio

By T8mars·Created 20 days ago·Updated a day ago· 807
MiniMax H3 Skin Finish Video Finalize / 原音频封装 (Advanced)
  • source_video
  • processed_frames
  • video
  • saved_path
  • report_json
filename_prefixMiniMaxH3/SkinFinish/skin_finish
crf18
accept_candidatefalse

All the Skin Finish nodes work on IMAGE frames. That's fine for review, but a movie has a soundtrack, and the pack's whole audio-integrity posture is "the picture finish must not touch the audio." MiniMaxH3SkinFinishVideoFinalizeT8Advanced is the node that finally makes it a real video: it takes your reviewed full-length frames plus the untrimmed file-backed source VIDEO, re-encodes the picture frame by frame, and copies the original compressed audio packets through unchanged, SHA-256 verified.

The key word is "untrimmed." This node expects the exact file the rest of your pipeline decoded from - if you've trimmed, rotated, cropped, or re-encoded the source, it fails closed. It also rejects HDR/10-bit, unknown codecs, and any geometry or packet drift. That strictness is the feature: it will refuse rather than hand you a subtly corrupted file.

How it works

Inputs: source_video (the file-backed VIDEO), processed_frames (your accepted skin-finish frames), filename_prefix (default MiniMaxH3/SkinFinish/skin_finish), crf (18) for the H.264 encode, and accept_candidate. While accept_candidate is false, it returns the exact source VIDEO and writes nothing - this is the final gate, and it's off by default.

When you flip it, the node encodes the picture with single-threaded libx264 and, before publishing, runs a strict single-threaded FFmpeg decode (-xerror -err_detect explode) to prove the file is valid. The original compressed audio packet payloads are copied package-by-package and SHA-256 verified against the source. Outputs are video, saved_path, and report_json.

Why the paranoid decode? The pack's own testing hit a real bug where Windows' default multithreaded PyAV/libx264 produced candidates with the right frame count but a corrupt stream. The fix that shipped is exactly this: single thread + strict decode before atomic publish. So that threads=1 isn't a performance choice, it's a correctness one.

Requirements

  • FFmpeg on PATH. This is a hard dependency for file-level save/finalize nodes in this pack. Standard ComfyUI installs usually have it; if it's missing, an explicit accept fails closed with a clear error rather than writing a junk file.
  • An untrimmed, 8-bit SDR, file-backed VIDEO. HDR, 10-bit, rotated, cropped or re-encoded sources are refused.

Where it fits

The multi-person chain ends here: examples/workflows/17-skin-finish/2026-08-24_H3_Skin_Finish_MultiPerson_Video_Finalize_Advanced_EXP.json. SAM tracks once, the Multi-Person node finishes, Texture Guard hardens, you review with Preview/Audit, and only then does this node re-encode and mux. Note the audio here comes from the source VIDEO itself - you don't wire an AUDIO object into this node.

Install

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

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

then restart ComfyUI. No extra pip packages. If you're coming from the image-only Skin Finish nodes, this is the step that turns a reviewed candidate into a deliverable - and the reason the review happened at all.

CategoryT8/MiniMax H3/Post FX/Experimental

Inputs (5)

NameTypeDefaultDescription
source_videoVIDEO
processed_framesIMAGE
filename_prefixSTRINGMiniMaxH3/SkinFinish/skin_finish
crfFLOAT180–51
accept_candidateBOOLEANfalseFalse returns the exact source VIDEO and writes nothing. Enable only after reviewing the Skin Finish candidate.

Outputs (3)

NameTypeDescription
videoVIDEO
saved_pathSTRING
report_jsonSTRING