Published 17 October 2026 · five existing outputs tested 5–16 October 2026. Watch complete MuseTalk examples, inspect actual input/output frames, and reproduce each workflow from its original guide. The selection includes visibly soft results and recorded workflow imperfections.
Inputs you may reuse
The portrait represents a fictional adult. Speech was generated with eSpeak NG: “Please bring me a blue mug. We can meet on Friday.” The WAV is mono, 16 kHz PCM, 3.6318125 seconds. The video input holds the portrait stationary at 512 × 512 and 25 fps; the direct-photo tests use the original 1254 × 1254 PNG.
These project-created input media may be reused and redistributed for these tutorials and tests, as recorded in the shared kit README. This permission does not relicense upstream code, model weights or dependencies. No weights are included in the linked evidence kits.
Download all five exact raw screenshots, arrow copies and gallery records (ZIP, 0.9 MB). Standalone site images may be optimized by WordPress; the ZIP preserves the original captured bytes. Separate SVG arrow overlays and checksums are included.
Five tested examples
Each screenshot pairs the actual input with decoded output frame 40 at 1.60 seconds. Images have the same display scale within each pair. Arrows point toward the mouth and lower-face texture and stay clear of all text. The untouched captures remain available. Full MP4s below are the original retained outputs, without gallery labels or arrows added.
1. Photo baseline — MuseTalk 1.5

What to notice: At 1.60 seconds the mouth is open and nearby skin is softer than the input. This demonstrates an edit; a still frame does not establish accurate synchronization.
- Input and audio
- 1254 × 1254 original PNG; no input resize; direct-image inference. Shared synthetic speech above. Open this input.
- Settings actually used
- FP16; batch 2; bbox_shift=0 (fixed in 1.5); extra_margin=10; parsing_mode=jaw; cheek widths=90/90; seed=20261012; 4 CPU threads.
- Output checked
- 3.632-second container/audio; 90 video frames at 25 fps (3.60-second video stream); H.264 / AAC. Both streams and complete decoding verified again for this gallery.
- Useful limitation
- The direct-image run logged a post-write cleanup error: local variable 'save_dir_full' referenced before assignment. The saved MP4 passes full decoding. A repeated static base image does not add natural head motion or blinks.
Single-photo tutorial · Exact version-specific quality controls
Reproduction record and original downloads
Official MuseTalk source commit: 0a89dec45a0192b824e3cf4daf96c239440c5ed8. Model: MuseTalk 1.5. Exact commands, environment records and model verification remain in the original evidence archive.
Download this workflow’s evidence ZIP · Open original full MP4
Output SHA-256: e006ee5b016af7261cb4c8df6df257fb8e4a539f385e8b1a08f5fb3e68726df1
Input SHA-256: 029185678e4435ee0501ebff4c40ed4753b2dbfba6fc42e16e906510428e1767
2. Larger lower crop — MuseTalk 1.5

What to notice: Only extra_margin changes from the photo baseline. The result still has softer skin; increasing this setting was not a universal improvement.
- Input and audio
- 1254 × 1254 original PNG; no input resize; direct-image inference. Shared synthetic speech above. Open this input.
- Settings actually used
- FP16; batch 2; bbox_shift=0 (fixed in 1.5); extra_margin=20; parsing_mode=jaw; cheek widths=90/90; seed=20261012; 4 CPU threads.
- Output checked
- 3.632-second container/audio; 90 video frames at 25 fps (3.60-second video stream); H.264 / AAC. Both streams and complete decoding verified again for this gallery.
- Useful limitation
- The direct-image run logged a post-write cleanup error: local variable 'save_dir_full' referenced before assignment. The saved MP4 passes full decoding. A repeated static base image does not add natural head motion or blinks.
Single-photo tutorial · Exact version-specific quality controls
Reproduction record and original downloads
Official MuseTalk source commit: 0a89dec45a0192b824e3cf4daf96c239440c5ed8. Model: MuseTalk 1.5. Exact commands, environment records and model verification remain in the original evidence archive.
Download this workflow’s evidence ZIP · Open original full MP4
Output SHA-256: db70bfba2c16d2d8f1d08b10076c15fa46683ad63f2c726246fe472533c30c39
Input SHA-256: 029185678e4435ee0501ebff4c40ed4753b2dbfba6fc42e16e906510428e1767
3. Crop shift with caveats — MuseTalk 1.0

What to notice: The mouth shape differs and local skin is softer. Comparing with the 1.5 cards also changes model version; use the same-version baseline in the evidence archive to isolate the crop shift.
- Input and audio
- 1254 × 1254 original PNG; no input resize; direct-image inference. Shared synthetic speech above. Open this input.
- Settings actually used
- FP16; batch 2; bbox_shift=+10; seed=20261012; 4 CPU threads. Effective blending=raw. Requested extra_margin=10, parsing_mode=jaw and cheek widths=90/90 are ignored by this 1.0 path.
- Output checked
- 3.632-second container/audio; 90 video frames at 25 fps (3.60-second video stream); H.264 / AAC. Both streams and complete decoding verified again for this gallery.
- Useful limitation
- The direct-image run logged a post-write cleanup error: local variable 'save_dir_full' referenced before assignment. The saved MP4 passes full decoding. A repeated static base image does not add natural head motion or blinks.
Single-photo tutorial · Exact version-specific quality controls
Reproduction record and original downloads
Official MuseTalk source commit: 0a89dec45a0192b824e3cf4daf96c239440c5ed8. Model: MuseTalk 1.0. Exact commands, environment records and model verification remain in the original evidence archive.
Download this workflow’s evidence ZIP · Open original full MP4
Output SHA-256: 5512449c22aa20d95ff6ed6515be6a6979f73ce00cbea1b851faedffd670405e
Input SHA-256: 029185678e4435ee0501ebff4c40ed4753b2dbfba6fc42e16e906510428e1767
4. Stationary-video workflow — MuseTalk 1.5

What to notice: Saved sample frames show changing mouth shapes with consistent framing. This is the retained output from the tested video tutorial, with its original input, command and logs.
- Input and audio
- Silent 512 × 512 MP4 at 25 fps, created by holding the fictional portrait; no real head movement. Shared synthetic speech above. Open this input.
- Settings actually used
- FP16; batch 2; 25 fps. Pinned-source defaults: bbox_shift=0 (fixed in 1.5), extra_margin=10, parsing_mode=jaw, cheek widths=90/90. No explicit seed in the recorded command.
- Output checked
- 3.632-second container/audio; 90 video frames at 25 fps (3.60-second video stream); H.264 / AAC. Both streams and complete decoding verified again for this gallery.
- Useful limitation
- This is a stationary portrait converted to video, not a moving-speaker test. No validated synchronization score was measured. Do not infer motion handling or natural blinks from it.
Video lip-sync tutorial and exact command · Quality inspection guide
Reproduction record and original downloads
Official MuseTalk source commit: 0a89dec45a0192b824e3cf4daf96c239440c5ed8. Model: MuseTalk 1.5. Exact commands, environment records and model verification remain in the original evidence archive.
Download this workflow’s evidence ZIP · Open original full MP4
Output SHA-256: 090cf948c01993101ab0294dbc53e6371a8bdecef5bfd56313bce57d5f4eca4e
Input SHA-256: 895c94e8efff634b054abd17951e0c6e9cb8c1e864a0a9e4035b832f4a676a26
5. RTX 3090 comparison sample — MuseTalk 1.5

What to notice: The recorded comparison notes describe crisper facial detail and wider mouth openings than its matched Wav2Lip result. These are subjective observations from this sample, not a general model ranking.
- Input and audio
- Same 512 × 512 / 25 fps stationary portrait MP4 and 16 kHz speech bytes used in the matched Wav2Lip comparison. Shared synthetic speech above. Open this input.
- Settings actually used
- FP16; batch 2; 25 fps; bbox_shift=0 (fixed in 1.5); extra_margin=10; parsing_mode=jaw; cheek widths=90/90. No explicit seed in the recorded command. First successful measured run selected.
- Output checked
- 3.632-second container/audio; 90 video frames at 25 fps (3.60-second video stream); H.264 / AAC. Both streams and complete decoding verified again for this gallery.
- Useful limitation
- Different hardware, source framing and execution conditions from the photo cards. Do not compare their timings as controlled runs. One stationary face and one short English utterance do not establish language, profile or long-clip performance.
Video lip-sync tutorial · Exact RTX 3090 comparison method and settings
Reproduction record and original downloads
Official MuseTalk source commit: 0a89dec45a0192b824e3cf4daf96c239440c5ed8. Model: MuseTalk 1.5. Exact commands, environment records and model verification remain in the original evidence archive.
Download this workflow’s evidence ZIP · Open original full MP4
Output SHA-256: 975f635c02d25512d05b51698547be9fe2f8f689ac333d4124888ceb061ecaeb
Input SHA-256: 895c94e8efff634b054abd17951e0c6e9cb8c1e864a0a9e4035b832f4a676a26
How to read these results
- Play every clip with sound. A screenshot cannot establish phoneme alignment, audio timing or stability over time.
- Photo outputs can show softer mouth/chin skin and different teeth or lip shapes. MuseTalk synthesizes a 256 × 256 face crop; a large output canvas does not restore the original skin detail.
- The photo runs used a seeded wrapper with math attention and strict deterministic settings. Repeat variation still appeared in some related tests. The video commands did not explicitly set a seed.
- Version 1.0 and 1.5 do not use every control in the same way. The third example labels the ignored CLI settings rather than presenting them as effective controls.
- The RTX 4090 and RTX 3090 examples differ in input canvas, test date and execution conditions. No cross-card speed ranking is supported.
- These samples do not cover profiles, occlusion, noisy speech, long clips, multiple faces, other identities or languages. They do not generate natural head movement or blinking.
Continue with the full before/after quality guide, single-photo tutorial, or video tutorial. For matched alternative-model outputs, use the separate Wav2Lip comparison and LatentSync comparison.