Nodes/MiniMax H3 Audio T8/MiniMax H3 Skin Finish Semantic Mask / 语义皮肤遮罩 (Advanced EXP)
ComfyUI Node

MiniMax H3 Skin Finish Semantic Mask / 语义皮肤遮罩 (Advanced EXP)

A skin mask that knows eyes from cheeks, so your finish doesn't smear

By T8mars·Created 20 days ago·Updated a day ago· 807
MiniMax H3 Skin Finish Semantic Mask / 语义皮肤遮罩 (Advanced EXP)
  • frames
  • face_plan
  • semantic_skin_mask
  • mask_preview
  • report_json
parser_modelfacexlib_parsenet_v0.2.2_pinned
include_neckfalse
crop_expansion1.45
minimum_face_weight0.35
minimum_class_probability0.55
feature_protection_px3
minimum_skin_area0.0005
maximum_skin_area0.25
preview_count6

The Skin Finish nodes are only as good as the mask they're allowed to touch. Hand them a sloppy mask and your "even out the skin" pass happily smooths over eyebrows, lips and hair. MiniMaxH3SkinFinishSemanticMaskT8Advanced is the fix for that: it produces a semantic skin mask - a pixel-level map that knows what is skin and what is eyelid, brow, nose, lip, mouth, hair or accessory - so the finish node downstream only ever touches actual skin.

It's the single-person route in the T8mars H3 pack. You already ran face detection and built a Face Refine Plan for this clip; this node takes that plan plus your frames, runs a fixed local ParseNet classifier on CPU, and hands back a MASK you feed straight into MiniMaxH3SkinFinishT8 (or the Advanced variant's external_exact input) as skin_mask.

How it works

The heavy lifting is done by a pinned FaceXLib ParseNet checkpoint - "pinned" meaning the pack checks the exact byte size and SHA-256 hash and refuses anything else. No network download, no persistent model cache, loaded on CPU with weights_only=True, unloaded after it runs. Eyes, brows, nose, lips, mouth, hair and accessories are excluded by class; the mask you get is skin, conservatively bounded.

Inputs that matter:

  • frames and face_plan - the same batch of frames you used to build the plan (source binding is a hard contract; mismatch means an empty mask).
  • parser_model - fixed to the pinned facexlib_parsenet_v0.2.2 checkpoint, no choice.
  • crop_expansion (1.45) - how wide a square around each face box gets parsed. Existing face plans don't carry five-point landmarks, so this is an expanded upright box, not affine alignment.
  • include_neck - off by default, and you want it off. Off keeps the finish from spilling onto neck or clothing.
  • minimum_face_weight (0.35), minimum_class_probability (0.55), feature_protection_px (3) - the confidence and protection gates. The author's explicit warning: don't crank probabilities down just to get more skin area. That's how masks leak into features.
  • preview_count (6) - how many frames get mask_preview thumbnails.

Outputs are semantic_skin_mask, mask_preview, and report_json.

The model you have to supply

This is the one Skin Finish node with a real external dependency. You need:

  • the FaceXLib code (the pack uses it as a library), and
  • the fixed checkpoint at ComfyUI/models/facedetection/parsing_parsenet.pth, exactly 85,331,193 bytes, SHA-256 3d558d8d0e42c20224f13cf5a29c79eba2d59913419f945545d8cf7b72920de2.

If the file is missing, the wrong size, or the hash doesn't match, the node fails closed to an empty mask and reports - it will not download anything and won't accept an arbitrary model path. Get the file right, and the pack's own validation (a real three-frame run on the fixed weights) shows the route working.

Install and the flow

Install is the pack's standard:

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

then restart ComfyUI (or use Manager and search "MiniMax H3 Audio T8"). The example is examples/workflows/17-skin-finish/2026-08-24_H3_Skin_Finish_Semantic_Mask_Advanced_EXP.json - same source frames build the Face Refine Plan, then the ParseNet mask, then the finish, with green=skin / red=protected-features previews.

Honest limits: this single-person route uses an expanded face box because Face Refine Plans don't retain landmarks, so it's less precise than the multi-person five-point route. It's also not a beautifier on its own - it just makes the mask the finish nodes deserve. If your clip has multiple faces, look at MiniMaxH3SkinFinishMultiPersonSemanticMaskT8Advanced instead.

CategoryT8/MiniMax H3/Post FX/Experimental

Inputs (11)

NameTypeDefaultDescription
framesIMAGE
face_planH3_T8_FACE_REFINE_PLAN
parser_modelCOMBOfacexlib_parsenet_v0.2.2_pinned1 options: facexlib_parsenet_v0.2.2_pinned
include_neckBOOLEANfalseOff by default so face finishing cannot spill onto neck or clothing.
crop_expansionFLOAT1.451–3Expanded upright square around each source-bound face box. Existing face plans do not retain five-point landmarks, so this is not affine alignment.
minimum_face_weightFLOAT0.350–1
minimum_class_probabilityFLOAT0.550–1
feature_protection_pxINT30–32Protection dilation in the fixed 512x512 parser canvas.
minimum_skin_areaFLOAT0.00050–0.25
maximum_skin_areaFLOAT0.250.01–1
preview_countINT61–8

Outputs (3)

NameTypeDescription
semantic_skin_maskMASK
mask_previewIMAGE
report_jsonSTRING