Commit Graph
31 Commits
Author SHA1 Message Date
diodiogod fc79682b5f Add functional language tag button to TTS editor
Implements language tag insertion matching character/parameter buttons:
- Inserts [lang:] or [lang:Character] tags at cursor
- Supports all 9 languages (en, de, fr, ja, es, it, pt, th, no)
- Modifies existing tags (replaces language in [lang:Char] format)
- Creates new tags when cursor not in tag
- Integrates with tag editor UI builder and event handlers
2025-10-31 17:28:45 -03:00
diodiogod e4a48045a1 Add per-segment parameter switching system (VibeVoice Custom Character Switching)
- New utils/text/segment_parameters.py with parameter validation, aliases, and engine compatibility
- Extended CharacterSegment to include per-segment parameters
- Extended language resolver to parse pipe-separated parameters: [Alice|seed:42|temp:0.5]
- Support for: seed, temperature, cfg, speed, top_p, top_k, inference_steps, exaggeration, emotion_alpha
- Case-insensitive aliases and order-independent syntax
- Integrated into VibeVoice Custom Character Switching mode (text and SRT)
- Fixed grouping logic to break groups when parameters change
- Added PARAMETER_SWITCHING_GUIDE.md documentation
- Updated PROJECT_INDEX.md

NOTE: Currently implemented for VibeVoice Custom Character Switching only.
Native Multi-Speaker mode and other engines will be added in future updates.
2025-10-29 00:36:44 -03:00
diodiogod 7ad5b8227e Update documentation for Clear VRAM integration
- Add engine_handlers.py to PROJECT_INDEX.md
- Add comprehensive Clear VRAM integration guide to NEW_ENGINE_IMPLEMENTATION_GUIDE.md
- Document .to() method implementation patterns for simple, medium, and complex engines
- Document device checking and wrapper re-registration patterns
- Provide code examples for proper ComfyUI model management integration
2025-10-27 23:46:16 -03:00
diodiogod 955aff40a7 Fix ChatterBox v2 auto-download and pass model_version through entire chain
Fixed critical issues preventing v2 model auto-download:
1. Removed silent v1 fallback in from_local - now raises FileNotFoundError to trigger download
2. Updated unified_model_interface factory to pass model_version parameter
3. Factory now properly tries from_local first, then from_pretrained for auto-download
4. Added model_version parameter to generate_speech and load_tts_model signatures
5. Pass model_version from engine config through unified TTS node to processor
6. Updated README to clarify v1/v2 files coexist in same directory

Now when v2 is selected but files missing:
- from_local raises error instead of falling back to v1
- from_pretrained downloads missing v2 files automatically
- Model loads correctly with v2 tokenization enabled
2025-10-07 23:54:00 -03:00
diodiogod 59188909c3 Version 4.10.6
Fix voice discovery extra_model_paths.yaml integration

Technical details:
- Fix path comparison logic in voice discovery system preventing extra_model_paths voice directories from being scanned
- Add proper path normalization using os.path.normpath() for accurate duplicate detection
- Apply fix to all voice discovery functions: main scanning, character discovery, and alias loading
- Maintain backward compatibility with existing voice directory structure
2025-09-23 22:10:54 -03:00
diodiogod 1cea7ce4f1 Version 4.10.1
Add missing F5-TTS workflow and improve documentation

Technical fixes:
- Add comprehensive tooltips to Phoneme Text Normalizer node inputs
- Add Text Processing Nodes section to PROJECT_INDEX.md
- Document 📝 Phoneme Text Normalizer with all 4 processing methods
- Add missing workflow file reference for user testing
2025-09-23 13:22:53 -03:00
diodiogod ebf4dddb0a Update PROJECT_INDEX.md with IndexTTS-2 and radar chart entries
- Add IndexTTS-2 engine node and 🌈 Emotion Vectors node to engine section
- Add radar chart web interface files to web components section
- Maintain concise documentation style with brief, descriptive entries
2025-09-15 22:34:27 -03:00
diodiogod d01e5cb807 Refactor comfyui_model_wrapper.py into modular architecture
- Split 970-line monolith into focused modules following 500-600 line policy
- Created utils/models/comfyui_model_wrapper/ directory structure:
  - base_wrapper.py (302 lines): Core ComfyUIModelWrapper class
  - model_manager.py (318 lines): ComfyUITTSModelManager class
  - cache_utils.py (28 lines): Cache invalidation utilities
  - engine_handlers/: Engine-specific memory management
    - higgs_audio_handler.py: CUDA graph management and unload blocking
    - vibevoice_handler.py: RAM cleanup and complete deletion logic
    - generic_handler.py: Standard CPU migration for other engines
- Fixed engine routing bug where stateless_tts wrappers weren't using HiggsAudioHandler
- Maintained full backward compatibility with existing imports
- All engine-specific behaviors preserved (VibeVoice deletion, Higgs CUDA graphs)
- Updated PROJECT_INDEX.md to reflect modular structure
2025-09-11 14:57:52 -03:00
diodiogod 2405b0eaf5 Version 4.8.35
Fix critical Windows installation issues

Technical fixes:
- Fix Windows UTF-8 encoding errors in subprocess calls
- Fix PyTorch version parsing failure on CUDA suffix (+cu124)
- Fix PyTorch 2.6.0 availability issues with graceful fallback
- Improve CUDA version detection and compatibility logic
2025-09-10 13:46:16 -03:00
diodiogod 08ce943f4f Centralize transformers compatibility patches into unified system
- Created utils/compatibility/transformers_patches.py with all monkey patches
- Moved FlashAttentionKwargs, BaseStreamer, DynamicCache, and generation method patches
- Fixed VibeVoice GenerationMixin._prepare_generation_config signature compatibility
- Updated VibeVoice downloader and engine to use centralized patches
- Updated PROJECT_INDEX.md to document compatibility system
- Eliminates duplicate patching logic and improves maintainability
2025-09-07 09:06:27 -03:00
diodiogod 118b7df7cc Add Italian to F5-TTS phonemization exceptions
- Add 'it' to models_to_skip list alongside PT-BR
- Update debug message to reflect both Portuguese and Italian models
- Update PROJECT_INDEX.md with phonemizer utilities documentation

Italian F5-TTS models work better with native text rather than IPA phonemization,
similar to Portuguese-Brazil models.
2025-09-06 14:13:34 -03:00
diodiogod 1d78cdf053 Version 4.8.1
Fix SRT overlapping functionality system-wide

Technical implementation:
- Add unified timing mode routing in AudioAssemblyEngine with assemble_by_timing_mode()
- Fix ChatterBox Official 23-Lang processor to use correct assembly method for pad_with_silence mode
- Now properly uses assemble_with_overlaps() instead of assemble_smart_natural() for overlaps
- All engines (ChatterBox, F5-TTS, Higgs Audio, VibeVoice) now handle overlaps consistently
- Resolves audio being cut off when SRT segments overlap in timing
2025-09-05 20:07:02 -03:00
diodiogod 4fee53a20e Version 4.6.1
Fix German and Norwegian Voice Changer model loading

Resolves #11 - German Voice-Changer requests .pt files but only .safetensors are available

Technical details:
- Add safetensors support to ChatterboxVC.from_local()
- Implement auto-detection for .safetensors and .pt files
- Add strict=False for model loading compatibility
- Resolve file format mismatch for multilingual VC models
2025-08-29 11:37:24 -03:00
diodiogod 2ba5f0a1b4 Add VibeVoice TTS engine integration with full unified architecture support
Implemented complete VibeVoice engine integration following unified modular architecture:

Engine Infrastructure:
- VibeVoice engine wrapper with model management and generation
- Engine adapter for standardized interface integration
- Proper ComfyUI model management integration
- Support for both 1.5B and 7B models (Microsoft + community)

Core Features:
- Two generation modes: Custom Character Switching and Native Multi-Speaker
- Character voice management with [CharacterName] tag support
- Pause tag processing with [pause:xx] syntax
- Time-based chunking UI (minutes converted to characters internally)
- Unified cache system following ChatterBox patterns with 💾 indicators
- Full integration with Character Voices node
- 90-minute generation capability and 4-speaker native mode

Technical Implementation:
- Engine configuration node with ⚙️ emoji consistency
- Unified TTS node integration via processor delegation
- Proper parameter validation and device management
- Dependency management with --no-deps installation approach
- Fixed name collision issues (vibevoice/ → vibevoice_engine/)
- Comprehensive error handling and fallback systems

Architecture Compliance:
- Follows exact Higgs Audio integration patterns
- Uses unified streaming infrastructure
- Maintains modular design under 600 lines per file
- No code duplication, reuses all existing utilities
- Proper separation: Engine → Adapter → Processor → Unified Node

Installation & Dependencies:
- Added VibeVoice to install.py with dependency conflict resolution
- Updated nodes.py with conditional imports and diagnostics
- Comprehensive PROJECT_INDEX.md documentation

Tested and verified:
- Model downloading and loading
- Voice reference handling (dropdown and Character Voices)
- Cache functionality with proper hit indicators
- Multi-character generation and pause processing
2025-08-29 01:15:16 -03:00
diodiogod 6857c7437e Version 4.5.10: Fix Higgs Audio seed parameter cache bug and implement ComfyUI model management integration 2025-08-25 13:34:38 -03:00
diodiogod 7eb0c62d50 Enhance chunk combiner with smart per-junction analysis
- Replace global method selection with intelligent per-junction analysis
- Analyze each chunk boundary individually for optimal transition method
- Add comprehensive junction analysis rules (sentence boundaries, commas, conjunctions, forced splits)
- Implement per-junction audio processing with crossfade, silence, and concatenate methods
- Enhance generation info reporting with detailed per-junction method breakdown
- Add backward compatibility for silence_padding method alias
- Fix tensor dimension mismatches in silence generation
- Update method descriptions to reflect new per-junction capabilities

The auto method now intelligently selects different combination methods for each junction
based on text analysis, resulting in more natural audio transitions.
2025-08-21 00:31:27 -03:00
diodiogod a046532044 Refactor Higgs Audio SRT to use modular processor architecture
- Extract 267 lines of hardcoded SRT logic from unified node into HiggsAudioSRTProcessor
- Create proper engine processor following ChatterBox/F5-TTS delegation pattern
- Replace hardcoded implementation with clean delegation (23 lines vs 267 lines)
- Fix timing report generation using unified SRTReportGenerator utilities
- Maintain all functionality while achieving architectural consistency
- Update PROJECT_INDEX.md to document new processor and architectural layers

Architecture now consistent across all engines:
- UnifiedTTSSRTNode → ChatterboxSRTTTSNode ✅
- UnifiedTTSSRTNode → F5TTSSRTNode ✅
- UnifiedTTSSRTNode → HiggsAudioSRTProcessor ✅ (new)
2025-08-20 13:29:04 -03:00
diodiogod f6a6cfb2f0 Fix Higgs Audio 2 engine integration issues
- Fix HiggsAudioEngineNode return type from HIGGS_AUDIO_ENGINE to TTS_ENGINE for unified node compatibility
- Remove duplicated parameters: seed, enable_cache, enable_chunking, max_tokens_per_chunk, silence_between_chunks_ms
- Keep engine-specific parameters: max_new_tokens (generation limit), voice_preset, audio_priority, system_prompt
- Update TTS Text node to pass max_chars_per_chunk to Higgs Audio adapter
- Maintain character-based chunking via ImprovedChatterBoxChunker with token-to-char conversion
- Preserve clean separation: universal parameters in TTS Text, engine-specific in Engine nodes

The Higgs Audio Engine Node now properly connects to unified TTS Text and TTS SRT nodes
while maintaining engine-specific generation parameters that other engines don't have.
2025-08-18 18:37:59 -03:00
diodiogod 4c3dbf3a37 Fix vowel detection confidence threshold bug preventing U/O recognition
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.
2025-08-16 01:26:21 -03:00
diodiogod 3e901f6aa7 Add Mouth Movement Analyzer Node - Phase 1 & 2 Complete
- Implemented core mouth movement detection using MediaPipe
- Created modular provider-based architecture supporting multiple CV backends
- Added standardized timing data format with MovementSegment and TimingData
- Integrated with ComfyUI framework and TTS Audio Suite
- Supports SRT, JSON, CSV export formats with confidence scoring
- Added facial landmark detection and Mouth Aspect Ratio calculation
- Includes preview mode with annotated video output
- Successfully detects mouth movements and generates timing data for TTS synchronization

Next: Implement OpenSeeFace and dlib providers for better compatibility
2025-08-14 00:16:50 -03:00
diodiogod 9f180a130d Update model location recommendations to TTS/ organized structure
- Update README with new TTS/ folder organization for all model types
- Add TTS/chatterbox/, TTS/F5-TTS/, TTS/RVC/, TTS/UVR/ as recommended locations
- Maintain backward compatibility with legacy model locations
- Add PROJECT_INDEX.md documentation for missing download components
- Include HuBERT downloader and universal model downloader in project index
- Update unified voice changer workflow
2025-08-13 21:27:12 -03:00
diodiogod a8cddffd2b Clean up unused code and update PROJECT_INDEX.md with accurate architecture documentation
- Remove unused processor imports (adaptive_processor, continuous_worker_processor) from ChatterBox TTS engine
- Add genuinely used missing files to PROJECT_INDEX.md (smart_loader.py, audio_hash.py)
- Correct misleading parallel processing performance claims in architecture overview
- Add comprehensive POST_V4.2.3_DEVELOPMENT_REVIEW.md documenting 45 commits of architectural changes
- Clarify that sequential processing (batch_size=0) remains optimal despite streaming infrastructure
2025-08-12 22:42:34 -03:00
diodiogod 98df4efbe5 Update PROJECT_INDEX.md with stateless wrapper documentation
- Added stateless_wrapper.py to ChatterBox engine file list
- Added streaming_model_manager.py to documentation
- Updated architecture overview to highlight thread-safe parallel processing
- Added reference to STATELESS_WRAPPER_IMPLEMENTATION_PLAN.md in dev docs
- Clarified batch_size parameter controls worker count
2025-08-11 23:14:26 -03:00
diodiogod 994ba16c31 Add F5-TTS streaming support and update PROJECT_INDEX
- Add _process_single_segment_for_streaming() method to F5-TTS node
- Use language mapper instead of hardcoded language mapping
- Preserve all F5-TTS functionality (pause tags, chunking, caching)
- Update PROJECT_INDEX.md with new streaming system documentation
- Document all new streaming modules and adapters in project index

F5-TTS now supports parallel streaming processing through the universal
streaming system while maintaining all existing features.
2025-08-10 11:36:59 -03:00
diodiogod 8a00983418 Remove unused dynamic_worker_manager.py and update streaming architecture docs
- Remove orphaned dynamic_worker_manager.py (never imported/used)
- Update PROJECT_INDEX.md to reflect file removal
- Enhance STREAMING_ARCHITECTURE.md with feasibility analysis for F5-TTS
- Document that StreamingWorkQueueProcessor is the active implementation
- Confirm streaming architecture is engine-extensible via adapter pattern
2025-08-10 02:40:29 -03:00
diodiogod b14a871a23 Update PROJECT_INDEX.md with streaming parallel processing capabilities
- Add streaming infrastructure files to ChatterBox engine section
- Update architecture overview to highlight streaming parallel processing feature
- Clarify that ChatterBox nodes are engine implementations (not legacy UI nodes)
- Document SRT batch processing router and streaming work queue components
2025-08-10 01:59:10 -03:00
diodiogod 6ae4ad15ef Improve user experience with clear tooltips and remove misleading widgets
• Enhanced tooltips across all RVC nodes with technical terms + user explanations
• Removed misleading output_format widget from Merge Audio (format handled by Save Audio)
• Added quality-loss warnings for audio processing operations (stereo conversion, resampling, padding)
• Updated PROJECT_INDEX.md to document complete RVC implementation
• Moved reference project to IgnoredForGitHubDocs (works independently now)
• Added lesson to CLAUDE.md about keeping dependencies when copying implementations

Technical improvements:
- Clear tooltips: "Consonant protection - Low=voice changes more, High=clearer pronunciation"
- Pitch controls: "deeper voice like man" vs "higher voice like child" (non-technical language)
- Smart warnings only for significant quality loss (>0.1s padding/truncation, stereo conversion)
- Torch tensor processing remains lossless between ComfyUI nodes
2025-08-08 08:32:26 -03:00
diodiogod 30058c3350 Update PROJECT_INDEX.md to reflect current unified architecture
- Complete rewrite to document the current TTS Audio Suite structure
- Updated architecture overview to describe unified engine system
- Corrected all file paths after folder structure cleanup (removed chatterbox/, core/)
- Added documentation for new features:
  - Multilingual voice conversion with German/Norwegian models
  - Unified engine interface working with any TTS engine
  - Character voice management with flexible input types
  - Engine adapter system for modular TTS engine support
- Organized documentation by architectural layers:
  - Engine configuration nodes (user interface)
  - Unified interface nodes (consistent UX)
  - Engine implementations (TTS/VC processing)
  - Engine adapters (bridge layer)
  - Utility systems (shared functionality)
  - Web interface (interactive features)
- Updated project name to "TTS Audio Suite" reflecting universal nature
- Comprehensive file index now accurately reflects mature, modular architecture
2025-08-07 17:08:00 -03:00
diodiogod b21d0212fb Major refactoring: Reorganize project structure for better maintainability
🔧 ENGINES SEPARATION:
- Move chatterbox/ → engines/chatterbox/ (TTS/VC engine + models)
- Move chatterbox/f5tts/ → engines/f5tts/ (F5-TTS engine)
- Move adapters/ → engines/adapters/ (engine adapters for multilingual system)

📁 NODES ORGANIZATION:
- Create nodes/chatterbox/ for ChatterBox nodes (TTS, VC, SRT)
- Create nodes/f5tts/ for F5-TTS nodes (TTS, SRT, Edit, Options)
- Create nodes/audio/ for audio processing nodes (analyzer, recorder)
- Create nodes/base/ for base classes
- Rename node files for clarity (tts_node.py → chatterbox_tts_node.py)

🗂️ UTILITIES RESTRUCTURE:
- Replace core/ with organized utils/ structure
- utils/audio/ - Audio processing, analysis, caching
- utils/text/ - Text processing, character parsing, chunking
- utils/voice/ - Voice discovery, multilingual engine
- utils/timing/ - SRT timing logic (from chatterbox_srt/)
- utils/models/ - Model management (ChatterBox + F5-TTS)
- utils/system/ - System utilities, import management

🔄 IMPORT PATH UPDATES:
- Update all import paths to use new organized structure
- Fix lazy imports in nodes for runtime compatibility
- Restore missing F5-TTS edit engine from git history
- Fix path resolution for voice discovery and character aliases

🎯 KEY IMPROVEMENTS:
- Engine-centric organization with clear separation
- Purpose-driven folder grouping for better navigation
- Self-documenting file names indicating ownership
- Scalable structure for future engine additions
- Maintains backward compatibility for existing workflows

All 10 nodes loading successfully with complete functionality preserved.
2025-08-02 18:50:26 -03:00
diodiogod 7477d07f95 Update PROJECT_INDEX.md to reflect new modular multilingual architecture
- Added new Modular Multilingual Architecture section highlighting core modules
- Updated node descriptions to reflect smart language grouping integration
- Added architecture overview explaining smart language grouping and unified engine support
- Reorganized file structure to better showcase the modular design
- Documents all new core modules: multilingual_engine, language_model_mapper, audio_cache
- Documents new adapter system: f5tts_adapter, chatterbox_adapter
2025-08-02 14:47:56 -03:00
diodiogod f69a204a33 Version 3.3.0: Add snail 🐌 and rabbit 🐰 emojis to stretch-to-fit timing reports for compress and expand modes in both ChatterBox and F5-TTS SRT nodes 2025-07-22 15:34:29 -03:00