๐ง Viseme Mouth Shape Options
Tuning knobs for silent-video lip timing
- viseme_options
This is a niche corner of the suite, and it's honest about being experimental. The pack has a Silent Speech Analyzer that watches a video of someone's mouth moving and tries to work out the timing - and rough phonetic shape - of what they're "saying," so you can build a base SRT for silent footage. A viseme is the visual shape a mouth makes for a sound (the "oo" shape, the "mm" closure). This options node is where you tune how sensitive and confident that mouth-shape detection is.
It's a settings node, full stop. It doesn't analyze anything itself - it outputs a VISEME_OPTIONS bundle that plugs into the video-analysis node and shapes how that node reads mouths. Set your reasonable-analysis expectations first: the README is upfront that viseme detection is an experimental approximation, and you should expect to hand-edit both the timing and the text it produces.
How it works
The analyzer detects mouth movement frame by frame, groups it into syllable-like chunks, and (optionally) guesses words. This node controls the thresholds on that pipeline: how strong a movement has to be to count, how confident a shape match must be to be accepted, how much to smooth jittery frames, and whether to attempt consonant detection, temporal analysis, and word prediction on top of raw vowel shapes. Turn features on for more (noisier) detail, off for cleaner but sparser output.
The inputs and outputs that matter
viseme_sensitivity(default 2) - how readily it registers a mouth shape. Too high and it sees phantom movements; too low and it misses real ones. This is the first dial to try.viseme_confidence_threshold(0.4) - the bar a detection must clear to be kept. Raise it for fewer, surer detections; lower it to catch more (at the cost of false ones).viseme_smoothing(0) - smooths frame-to-frame jitter. Bump it up if results flicker.enable_word_prediction(off) - attempts to guess words from the shapes. Remember the README's warning: predicted "words" are phonetic placeholders, not meaningful sentences. Leave off unless you specifically want rough placeholders to edit.
enable_viseme_detection, enable_consonant_detection, and enable_temporal_analysis toggle the stages of the pipeline. Output is viseme_options (VISEME_OPTIONS) โ into the silent-speech / mouth-movement analysis node.
Installing it
Comes with the pack. ComfyUI Manager โ search "TTS Audio Suite" โ install โ restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/diodiogod/TTS-Audio-Suite.git
cd TTS-Audio-Suite
python install.py
The analysis itself relies on MediaPipe (Google's face/mouth-tracking framework) as the stable backend. Note a real compatibility catch: MediaPipe doesn't support Python 3.13 - on 3.13 the suite falls back to OpenSeeFace, which the README flags as experimental and not recommended for production. So if you're on the latest Python, expect the shakier provider.
Common issues & troubleshooting
Results are noisy or full of phantom detections. Lower viseme_sensitivity and raise viseme_confidence_threshold so only strong, confident mouth shapes register. Add a little viseme_smoothing to calm frame flicker.
It missed obvious mouth movements. The opposite - raise sensitivity and/or lower the confidence threshold. There's no perfect setting; this is approximate detection and you're trading false positives against misses.
The predicted text is nonsense. By design. enable_word_prediction produces phonetic placeholders, not real sentences - the intended workflow is to take the timing it gives you and write the actual words yourself before sending the SRT to a TTS node.
On Python 3.13 it's using OpenSeeFace and results are worse. That's the MediaPipe-incompatibility fallback. MediaPipe is the stable path; if quality matters, run the suite on a Python version where MediaPipe is available.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| enable_viseme_detection | BOOLEAN | true | Enable vowel classification (A, E, I, O, U) for precise lip-sync: โข Analyzes mouth shape geometry beyond simple open/close โข Detects vowel patterns in mouth movements โข Adds ~20% processing time โข Provides phoneme sequences for better TTS synchronization |
| viseme_sensitivity | FLOAT | 2.000.1โ2 | How hard should I look for vowels? Controls geometric thresholds for mouth shape classification: โข 0.1-0.5: Very strict, only obvious vowel shapes โข 0.8-1.2: Balanced detection (recommended) โข 1.5-2.0: Lenient, detects subtle vowel variations Higher = more detections, may include false positives Lower = fewer detections, higher accuracy |
| viseme_confidence_threshold | FLOAT | 0.400โ1 | How sure should I be before showing a vowel? Minimum confidence for valid viseme classification: โข 0.0-0.2: Show all viseme attempts (noisy) โข 0.3-0.5: Balanced filtering (recommended) โข 0.6-0.8: Conservative, only clear vowels โข 0.9-1.0: Ultra-strict, only perfect detections Below threshold shows as 'neutral' instead of uncertain vowel. |
| viseme_smoothing | FLOAT | 0.000โ1 | Temporal smoothing to reduce viseme flickering: โข 0.0: No smoothing (immediate response, may flicker) โข 0.3: Light smoothing (recommended balance) โข 0.7: Heavy smoothing (stable but slower response) โข 1.0: Maximum smoothing (very stable, delayed) Reduces rapid switching between visemes for cleaner sequences. Useful for noisy videos or subtle mouth movements. |
| enable_consonant_detection | BOOLEAN | true | Detect consonants (B, P, M, F, V, TH, etc.) in addition to vowels: โข Vowels only: A, E, I, O, U, _ โข With consonants: A, E, I, O, U, B, P, M, F, V, TH, _, etc. โข Adds ~10% processing time โข Provides more detailed phoneme sequences โข Better for advanced lip-sync and speech analysis Leave disabled for basic vowel-only detection. |
| enable_temporal_analysis | BOOLEAN | true | Advanced consonant burst detection using 5-frame windows: โข Analyzes onset โ peak โ release patterns for true consonants โข Dramatically improves B/P/M distinction accuracy โข Detects rapid lip closure/release vs sustained patterns โข Better coarticulation modeling (vowel context) โข Adds ~50% processing time but much higher accuracy โข Requires consonant detection enabled Recommended for: research, high-quality phonetic analysis Skip for: basic lip-sync, real-time processing |
| enable_word_prediction | BOOLEAN | false | Predict words from detected phoneme sequences: โข Uses 10,000 most common English words โข Matches phoneme patterns to suggest likely words โข Shows confidence with ?, (), markers โข Example: 'AEIOU' โ 'you', 'hey?', '(audio)' โข Helpful for manual SRT editing โข No processing time impact Requires viseme detection enabled to work. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| viseme_options | VISEME_OPTIONS | โ |