The viseme detection system was incorrectly using 0.4 (40%) as the default confidence threshold instead of 0.04 (4%), causing excellent vowel scores to be rejected as "neutral". This prevented U and O vowels from being detected despite perfect geometric conditions.
Root cause: Hardcoded 0.4 defaults throughout the system ignored user's 0.04 threshold setting.
Fixed:
- mouth_movement_analyzer_node.py: Function defaults and option parsing
- viseme_analysis_factory.py: Factory defaults and validation
- abstract_viseme_classifier.py: Base class defaults
- temporal_consonant_analyzer.py: Temporal analyzer defaults
- abstract_provider.py: Provider defaults
- openseeface_provider.py: OpenSeeFace provider defaults
Enhanced:
- Added frame number display to preview video
- Added vowel scores debugging display
- Added comprehensive geometric features display (roundedness, lip_ratio, MAR)
- Improved roundedness calculation using proper geometric circularity
- Enhanced U/O detection ranges and scoring logic
Debug confirmed: O scores of 0.66+ and U scores of 0.47+ now properly detected instead of rejected.
- Implement all required abstract methods: _check_dependencies, _initialize, calculate_mar, detect_movement, provider_name
- Fix relative import issues in modular analysis system with fallback to absolute imports
- Add proper error handling and initialization flow
- Resolve 'attempted relative import with no known parent package' errors
OpenSeeFace provider should now load and function correctly in ComfyUI.
- Integrate VisemeAnalysisFactory into MediaPipe provider
- Add viseme_options parameter to analyze_video method
- Use temporal analysis when available, fallback to built-in method
- Enable advanced 5-frame window consonant burst detection
- Support both BasicVisemeClassifier and TemporalConsonantAnalyzer
- Factory pattern automatically chooses appropriate analyzer
System ready for temporal analysis testing with improved consonant detection