Improve ChatterBox community model loading and Russian model handling
Technical details:
- preserve language context when loading local ChatterBox models
- repair missing files in existing ChatterBox model folders before fallback
- infer ChatterBox T3 text vocabulary size from checkpoint weights for community finetunes
- adapt bundled tokenizer wrapper to community tokenizer space and case conventions
- remove unsupported Russian classic Cyrillic experimental dropdown entry after validation
Fix VibeVoiceDownloader missing download_huggingface_model method
Technical details:
- Add missing download_huggingface_model method to VibeVoiceDownloader class
- Fix method delegation to unified_downloader in both real and dummy classes
- Resolve AttributeError when VibeVoice tokenizer download fails to cache
Implement ComfyUI extra_model_paths.yaml support
Technical implementation:
- Add TtsExtraPathsManager for shared model directory integration
- Update unified downloader to respect configured model paths
- Enhance voice discovery with multi-path fallback support
- Integrate model manager with extra_model_paths.yaml system
- Support shared storage across multiple ComfyUI installations
- Maintain backward compatibility with existing setups
- Reference: GitHub issue #63
Centralize numba compatibility system with smart testing
Technical implementation:
- Replace 15+ duplicate JIT workaround blocks with unified system
- Add utils/compatibility/numba_compat.py with startup testing
- Implement fallback for environments without compatibility module
- Test librosa.stft() at startup and apply workarounds only when needed
- Eliminate contradictory startup messages between init and nodes
- Maintain backward compatibility with legacy Python 3.13 fixes
- Add VC component detection system to check s3gen availability for all languages
- Implement universal ChatterBox model loading with component mixing fallback
- Fix VC download system to handle subdirectories (German havok2 model)
- Add graceful handling of optional files (conds.pt) vs required files (s3gen)
- Propagate 401 authentication errors properly through download system
- Add intelligent fallback: German variants → German base → English
- Return silent audio for unsupported VC languages instead of crashing
- Remove misleading claims about unverified VC language support
- Fix file format detection (.pt vs .safetensors) in VC downloads
Resolves VC crashes with Japanese/incomplete models and improves German model support
Refactor VibeVoice to use ComfyUIModelWrapper
Technical details:
- Replace custom model caching with unified ComfyUI wrapper system
- Remove custom unload hooks in favor of automatic ComfyUI integration
- Implement VibeVoiceModelContainer for proper model/processor handling
- Eliminate manual CPU movement code and global flag management
- Achieve architectural consistency with other TTS engines
Fix VibeVoice unload button and VRAM management
Technical details:
- Hook VibeVoice models into ComfyUI's 'Unload Models' button
- Move models to CPU during unload to actually free VRAM
- Invalidate engine caches to prevent tensor corruption errors
- Fix 'Inference tensors do not track version counter' after unload
- Ensure fresh model recreation after unload for proper functionality
Technical details:
- Add VibeVoice model loading and caching to ModelManager class
- Modify VibeVoice adapter to use ModelManager instead of creating own engine instances
- Add load_vibevoice_model() and unload_vibevoice_models() methods to ModelManager
- Import VibeVoice components into ModelManager with availability checking
- Update adapter to cache model and processor instances via ModelManager
- Follow ChatterBox pattern for persistent model caching across node executions
Technical details:
- Always include huggingface fallback even when local language path exists
- Resolve issue where partial/corrupted local VC models prevent fallback
- Add better cache error logging and source summary diagnostics
- Maintain cache checking functionality for users with HF cache
- Fixed engine initialization issue where adapter never called initialize_engine
- Fixed model configuration key mismatch (generation_repo vs generation_model)
- Fixed tokenizer download file name (model.pth vs pytorch_model.bin)
- Fixed tensor dimension issues for ComfyUI audio output format
- Added comprehensive multi-speaker mode system with three options:
* Custom Character Switching: Use [Alice], [Bob] with character voice files
* Native Multi-Speaker (System Context): Use [SPEAKER0], [SPEAKER1] with opt_second_narrator
* Native Multi-Speaker (Conversation): Same as above but conversation history mode
- Removed audio_priority widget, now follows standard TTS priority logic
- Fixed mode selection bug where config was read from wrong object
- Added proper audio format handling for Character Voices in native modes
- Fixed pause tag support in all modes including native multi-speaker
- Improved tooltips to clarify mode requirements and text formats
Removed debug logging added during multilingual model switching investigation:
- Cache debug messages showing model type and directory
- Generation debug showing model path information
Kept essential operational messages like cache hits, model loading progress,
and error messages for user visibility.
Added debug output to show:
- Which cached model is being used for each language
- Model type and attributes
- Model directory path to verify correct model instances
This will help identify why German model shows 'no_model_dir' in non-streaming
but works correctly in streaming mode.
- Implement language-aware VC model loading for German/Norwegian models
- Voice Changer now uses language parameter from TTS Engine input
- Add multilingual support to ChatterboxVC.from_pretrained() method
- Update model manager to cache VC models separately by language
- Enhanced conversion_info output with detailed model information:
- Language model being used (English/German/Norwegian)
- Model source (huggingface/local/bundled)
- Repository name for HuggingFace models
- Device and refinement pass information
- Smart fallbacks when requested language models aren't available
- Backward compatibility maintained for existing workflows
- Implement generic local-first fallback utility for all TTS engines
- Fix ChatterBox and F5-TTS duplicate model loading during language fallback
- Add F5-TTS language grouping to load models once per language group
- Fix pt-br language mapping support in language mapper
- Add model tracking to prevent redundant loading in multilingual engine
- Optimize SRT nodes to use unified language-grouped processing
This ensures efficient model loading with proper local model reuse,
eliminating unnecessary downloads and duplicate model loading for
low-VRAM scenarios while maintaining full language support.