PromptMaker PNGTuber Video Mouth Pipeline (compat)
A compatibility alias, not a new node — old PromptMaker workflows just load
- mouthless_video
- mouth_track_json
- mouth_sprite_atlas_json
- bundle_manifest_json
- mouth_closed
- mouth_half
- mouth_open
- mouth_e
- mouth_u
- summary_json
This one's quick: PromptMakerPNGTuberVideoMouth is not a different node. In the pack source it's literally a one-line alias - PromptMakerPNGTuberVideoMouth = PNGTuberVideoMouthBuilder - registered in the class mappings so the node shows up in ComfyUI under its old, PromptMaker-era name. The pipeline, the inputs, the outputs, and the bundle it writes are identical to PNGTuber Video Mouth Builder. Everything that article says applies here verbatim.
Why it exists
The pack's name carries the "PromptMaker" integration target from earlier iterations, and some workflows out in the wild reference the older class name. Keeping this alias registered means those saved workflows keep loading instead of erroring with "missing node." It's the same compatibility trick the pack uses for its manifest schemas - the new pngtuber.videoMouthBundle.v1 format is deliberately readable by old PromptMaker consumers.
What you get
Identical schema to the video mouth builder: video_path, output_dir, asset_id, max_frames, frame_stride, detection_confidence, detection_mode, face_yolo_fallback, track_quad_scale, inpaint_scale, inpaint_radius, erase_method, sprite_size, preserve_audio (required); angle_range_degrees, angle_step_degrees, occlusion_filter (optional). Outputs are the ten strings - mouthless_video, mouth_track_json, mouth_sprite_atlas_json, bundle_manifest_json, the five mouth sprite paths, and summary_json. Same detection chain (anime cascade → OpenCV mouth refine → MediaPipe → YOLO), same angle atlas defaults (-45° to +45° in 15° steps), same erase_method gotcha: the eigen default needs the local Qwen stack, and cv2 is the no-model path.
Install
The pack, the usual way:
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/hobi2k/ComfyUI-PromptMaker-PNGTuber.git
cd /path/to/ComfyUI
python -m pip install -r custom_nodes/ComfyUI-PromptMaker-PNGTuber/requirements.txt
Or search ComfyUI-PromptMaker-PNGTuber in ComfyUI Manager. Restart after installing, and both this alias and the canonical builder will be in your node list - same orange output nodes, same category (PNGTuber/Video Mouth).
When you'd actually pick this name
Honestly: when a workflow already says it. If you're building fresh, use PNGTuberVideoMouthBuilder or the friendlier upload-to-bundle node. If an old workflow references PromptMakerPNGTuberVideoMouth and works, there's no reason to rewire it - it's the same code under the hood, and the outputs wire into the same PromptMaker/PNGTuber consumers either way.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| video_path | STRING | input_video.mp4 | — |
| output_dir | STRING | — | |
| asset_id | STRING | pngtuber_video_mouth | — |
| max_frames | INT | 00–20000 | — |
| frame_stride | INT | 11–30 | — |
| detection_confidence | FLOAT | 0.500.1–0.95 | — |
| detection_mode | COMBO | anime_first | 4 options: anime_first, mediapipe_first, anime_only, face_yolo_only |
| face_yolo_fallback | BOOLEAN | true | — |
| track_quad_scale | FLOAT | 1.251–4 | — |
| inpaint_scale | FLOAT | 1.551–4 | — |
| inpaint_radius | INT | 51–31 | — |
| erase_method | COMBO | eigen | 2 options: eigen, cv2 |
| sprite_size | INT | 51264–2048 | — |
| preserve_audio | BOOLEAN | true | — |
| angle_range_degreesopt | INT | 4515–75 | — |
| angle_step_degreesopt | INT | 155–30 | — |
| occlusion_filteropt | BOOLEAN | true | — |
Outputs (10)
| Name | Type | Description |
|---|---|---|
| mouthless_video | STRING | — |
| mouth_track_json | STRING | — |
| mouth_sprite_atlas_json | STRING | — |
| bundle_manifest_json | STRING | — |
| mouth_closed | STRING | — |
| mouth_half | STRING | — |
| mouth_open | STRING | — |
| mouth_e | STRING | — |
| mouth_u | STRING | — |
| summary_json | STRING | — |