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
25 KiB
TTS Audio Suite - Project Index
Comprehensive file index for the universal multi-engine TTS extension for ComfyUI
Architecture Overview
This extension features a unified modular architecture supporting multiple TTS engines:
- Unified Node Interface: Single set of nodes (TTS Text, TTS SRT, Voice Changer) that work with any engine via clean delegation
- ComfyUI Model Management Integration: All TTS models now integrate with ComfyUI's native model management system, enabling "Clear VRAM" functionality and automatic memory management
- Universal Model Loading System: Standardized model loading interface across all engines (ChatterBox, F5-TTS, Higgs Audio, VibeVoice, RVC, Audio Separation) with fallback support
- Engine Processors: Internal processing engines for each TTS system (ChatterBox, F5-TTS, Higgs Audio, VibeVoice) handling engine-specific orchestration
- Engine Adapters: Modular adapters for ChatterBox, F5-TTS, Higgs Audio 2, VibeVoice, and RVC voice conversion
- Centralized Download System: Unified downloader eliminates HuggingFace cache duplication with direct downloads to organized TTS/ folder structure, with full extra_model_paths.yaml support for shared model directories
- Thread-Safe Architecture: Stateless ChatterBox wrapper eliminates shared state corruption (Note: parallel processing is slower than sequential)
- Universal Streaming Infrastructure: Unified streaming system with configurable workers (batch_size parameter) - sequential mode (batch_size=0) recommended for optimal performance
- Multilingual Support: German and Norwegian models for ChatterBox, plus ChatterBox Official 23-Lang supporting 23 languages including Arabic, Chinese, Danish, Dutch, English, Finnish, French, German, Greek, Hebrew, Hindi, Italian, Japanese, Korean, Malay, Norwegian, Polish, Portuguese, Russian, Spanish, Swedish, Swahili, and Turkish
- Smart Language Grouping: SRT processing by language groups to minimize model switching
- Character Voice Management: Centralized character voice system with flexible input types
- Comprehensive Audio Processing: Interactive waveform analyzer, vocal separation, and audio mixing
- Professional Voice Conversion: RVC implementation with UVR5 vocal separation and advanced pitch control
Documentation Files
README.md - Main project documentation with installation guide, features overview, and usage instructions for the TTS Audio Suite
CLAUDE.md - Development guidelines and project context for Claude Code when working with this codebase, including critical thinking requirements and response style guidelines
CHANGELOG.md - Complete version history with detailed feature additions, bug fixes, and architectural improvements across all versions
User Documentation
docs/CHARACTER_SWITCHING_GUIDE.md - Guide for multi-character TTS using [CharacterName] tags, voice organization, and character voice management system
docs/CHATTERBOX_V2_SPECIAL_TOKENS.md - Complete guide for ChatterBox Official 23-Lang v2 special emotion and sound tokens (, , , etc.) with 30+ expressive tokens for enhanced TTS generation
docs/🌊_Audio_Wave_Analyzer-Complete_User_Guide.md - Complete user guide for Audio Wave Analyzer with interactive waveform visualization and timing extraction
docs/VERSION_3.1_RELEASE_GUIDE.md - Release documentation for character switching system and overlapping subtitles support
Developer Documentation
docs/Dev reports/F5TTS_INTEGRATION_SPECIFICATION.md - Technical specification for F5-TTS integration architecture
docs/Dev reports/F5TTS_STREAMING_INTEGRATION_PLAN.md - Universal streaming architecture plan to eliminate spaghetti code and enable F5-TTS streaming
docs/Dev reports/STREAMING_ARCHITECTURE.md - Streaming parallel processing architecture documentation with feasibility analysis for multiple engines
docs/Dev reports/STATELESS_WRAPPER_IMPLEMENTATION_PLAN.md - Stateless ChatterBox wrapper implementation solving shared model state corruption in parallel processing
docs/Dev reports/POST_V4.2.3_DEVELOPMENT_REVIEW.md - Comprehensive analysis of 45 commits implementing universal streaming architecture and performance insights
docs/Dev reports/PAUSE_TAGS_IMPLEMENTATION_REPORT.md - Implementation details for pause tag system with timing control syntax
docs/Dev reports/REFACTORING_PLAN.md - Architectural refactoring plan and migration strategy documentation
Core Architecture Files
__init__.py - Main ComfyUI extension entry point defining WEB_DIRECTORY and delegating to nodes.py for node registration
nodes.py - Central module loader with sophisticated node discovery, conditional imports, and startup diagnostics for all TTS/VC/Audio features
Unified Engine Architecture
Engine Implementations
engines/chatterbox/ - Complete ChatterBox TTS and VC engine implementation
- tts.py - ChatterBox TTS engine with multilingual support, perth watermarking, and ComfyUI model management integration
- vc.py - ChatterBox Voice Conversion with multilingual model loading
- language_models.py - Language model registry for English, German, and Norwegian models
- audio_timing.py - Audio timing utilities and time-stretching functionality
- streaming_model_manager.py - Pre-loading and management of multiple language models for streaming workers
- batch_processor.py - Batch processor for character group processing with true parallel inference
- character_grouper.py - Character grouping utilities for batch processing optimization
- stateless_wrapper.py - Thread-safe stateless wrapper eliminating shared state corruption in parallel generation
- models/ - Complete ChatterBox model architecture (S3Gen, T3, tokenizers, voice encoder)
engines/chatterbox_official_23lang/ - ChatterBox Official 23-Lang multilingual engine implementation
- tts.py - Main ChatterBox Official 23-Lang TTS engine with 23-language support
- vc.py - Voice conversion engine supporting all 23 languages with refinement passes
- language_models.py - Language model configuration and multilingual support definitions
- stateless_wrapper.py - Thread-safe wrapper for multilingual parallel processing
- batch_processor.py, adaptive_processor.py, gpu_aware_processor.py - Advanced processing systems
- models/ - Complete multilingual model architecture (S3Gen, T3, tokenizers, voice encoder) optimized for 23-language generation
engines/f5tts/ - F5-TTS engine implementation and editing capabilities
- f5tts.py - Main F5-TTS wrapper with ComfyUI integration
- f5tts_edit_engine.py - Speech editing engine for targeted word replacement
- audio_compositing.py - Audio compositing with crossfade and segment processing
engines/higgs_audio/ - Higgs Audio 2 engine implementation with voice cloning
- higgs_audio.py - Main Higgs Audio 2 wrapper with voice cloning and chunking support
- higgs_audio_downloader.py - Model auto-download system for generation and tokenizer models
- boson_multimodal/ - Complete boson_multimodal implementation from HiggsAudio team
engines/vibevoice_engine/ - VibeVoice engine implementation with multi-speaker and long-form capabilities
- vibevoice_engine.py - Main VibeVoice wrapper with 90-minute generation and multi-speaker support
- vibevoice_downloader.py - Model auto-download system for Microsoft VibeVoice models (1.5B and 7B)
engines/rvc/ - RVC (Real-time Voice Conversion) engine implementation
- __init__.py - RVC engine initialization and ComfyUI integration
- hubert_downloader.py - HuBERT model auto-download from Hugging Face with TTS/ folder organization
- impl/ - Complete RVC implementation with vocal separation and voice conversion
- rvc_audio.py - Audio processing utilities for RVC pipeline
- rvc_downloader.py - Model downloading system for RVC, UVR, and Karafan models
- rvc_utils.py - Utility functions for device detection and file management
- uvr5_cli.py - UVR5 vocal separation command-line interface
- lib/ - Core RVC libraries and model implementations
- separators.py - Audio separation algorithms (MDX, VR, UVR5)
- model_utils.py - Model loading and hash utilities
- audio.py - Audio I/O and format conversion utilities
- utils.py - General utilities and merge functions
- karafan/ - Karafan separation model implementation
- infer_pack/ - RVC inference and model loading components
- uvr5_pack/ - UVR5 vocal separation algorithms
Engine Adapters
engines/adapters/chatterbox_adapter.py - ChatterBox engine adapter providing standardized interface for unified nodes
engines/adapters/f5tts_adapter.py - F5-TTS engine adapter with parameter mapping and cache integration
engines/adapters/higgs_audio_adapter.py - Higgs Audio 2 engine adapter with voice cloning and parameter validation
engines/adapters/vibevoice_adapter.py - VibeVoice engine adapter with multi-speaker format conversion and parameter mapping
engines/adapters/chatterbox_streaming_adapter.py - ChatterBox streaming adapter bridging existing implementation to universal streaming system
engines/adapters/f5tts_streaming_adapter.py - F5-TTS streaming adapter enabling parallel processing with language model switching
Node Implementations
Engine Configuration Nodes
nodes/engines/chatterbox_engine_node.py - ChatterBox engine configuration node for language, device, and generation parameters
nodes/engines/f5tts_engine_node.py - F5-TTS engine configuration node with model selection and generation settings
nodes/engines/higgs_audio_engine_node.py - Higgs Audio 2 engine configuration node with voice cloning parameters and generation settings
nodes/engines/vibevoice_engine_node.py - VibeVoice engine configuration node with multi-speaker modes and long-form generation settings
nodes/engines/rvc_engine_node.py - RVC voice conversion node with pitch control and quality settings
nodes/engines/index_tts_engine_node.py - IndexTTS-2 engine configuration node with character voice selection and generation parameters
nodes/engines/index_tts_emotion_options_node.py - 🌈 IndexTTS-2 Emotion Vectors node with interactive radar chart for 8-emotion control
Unified Interface Nodes
nodes/unified/tts_text_node.py - Universal TTS text generation node working with any configured engine
nodes/unified/tts_srt_node.py - Universal SRT subtitle processing node - clean delegation layer that routes to engine-specific processors
nodes/unified/voice_changer_node.py - Universal voice conversion node with multilingual model support and flexible audio inputs
Shared Components
nodes/shared/character_voices_node.py - Character voice management system providing NARRATOR_VOICE outputs for any TTS node
Text Processing Nodes
nodes/text/phoneme_text_normalizer_node.py - 📝 Phoneme Text Normalizer with multilingual text preprocessing for improved TTS pronunciation. Features 4 processing methods: Pass-through, Unicode Decomposition (ą→a̧), IPA Phonemization (espeak backend), and Character Mapping (ASCII fallback). Supports auto-language detection and cross-platform phonemizer support.
Engine-Specific Nodes
Note: These are internal processors/engines used by the Unified nodes, not direct ComfyUI interface nodes. They handle engine-specific orchestration while the Unified nodes provide the user interface.
nodes/chatterbox/ - ChatterBox engine implementation nodes (called by Unified nodes)
- chatterbox_tts_node.py - ChatterBox TTS engine node with streaming batch processing and character switching
- chatterbox_srt_node.py - ChatterBox SRT engine node with streaming parallel processing and timing modes
- chatterbox_vc_node.py - ChatterBox voice conversion engine with iterative refinement
nodes/chatterbox_official_23lang/ - ChatterBox Official 23-Lang multilingual processors
- chatterbox_official_23lang_processor.py - Main TTS processor supporting all 23 languages with character switching
- chatterbox_official_23lang_srt_processor.py - SRT subtitle processor with multilingual timing and audio assembly
- chatterbox_official_23lang_vc_processor.py - Voice conversion processor supporting all 23 languages with refinement passes
nodes/f5tts/ - F5-TTS specific nodes
- f5tts_node.py - Direct F5-TTS generation node
- f5tts_srt_node.py - F5-TTS SRT processing with language grouping
- f5tts_edit_node.py - F5-TTS speech editor for word replacement
- f5tts_edit_options_node.py - Advanced F5-TTS editing configuration
nodes/higgs_audio/ - Higgs Audio 2 internal processors
- higgs_audio_srt_processor.py - Higgs Audio SRT orchestrator with multi-speaker support, character switching, and timing modes (internal processor used by Unified SRT node)
nodes/vibevoice/ - VibeVoice internal processors
- vibevoice_processor.py - VibeVoice TTS orchestrator with multi-speaker support and long-form generation handling (internal processor used by Unified TTS node)
Audio Processing System
nodes/audio/analyzer_node.py - Interactive Audio Wave Analyzer with web interface and timing extraction
nodes/audio/analyzer_options_node.py - Configuration options for audio analysis (silence detection, peak analysis)
nodes/audio/recorder_node.py - Voice recording node with microphone input and silence detection
nodes/audio/vocal_removal_node.py - Professional vocal/instrumental separation using UVR5, MDX, VR, and Karafan models
nodes/audio/merge_audio_node.py - Advanced audio mixing with multiple algorithms and pitch control
nodes/audio/rvc_pitch_options_node.py - Advanced pitch extraction settings for RVC voice conversion
Video Analysis System
nodes/video/mouth_movement_analyzer_node.py - 🗣️ Silent Speech Analyzer for detecting mouth movement in silent video frames to extract precise timing for TTS SRT synchronization
nodes/video/viseme_options_node.py - Advanced viseme detection configuration with vowel/consonant detection, word prediction, and temporal analysis settings
RVC Model Management
nodes/models/load_rvc_model_node.py - RVC model loader with FAISS index support and automatic downloading
Base Classes and Foundation
nodes/base/base_node.py - Universal base class for all nodes with device resolution, model management, and cleanup
nodes/base/f5tts_base_node.py - F5-TTS specific base class extending universal foundation with F5-TTS requirements
Utility Systems
Model Management
utils/models/manager.py - Intelligent model discovery and caching with multilingual support for both TTS and VC models, integrated with ComfyUI model management and extra_model_paths.yaml for shared storage support
utils/models/smart_loader.py - Universal smart model loader preventing duplicate model loading across all engines and modes
utils/models/f5tts_manager.py - F5-TTS specific model management extending base manager functionality, now with ComfyUI integration
utils/models/language_mapper.py - Language-to-model mapping system with fallback support
utils/models/fallback_utils.py - Model fallback and error recovery utilities
utils/models/comfyui_model_wrapper/ - Modular ComfyUI model wrapper system with engine-specific handlers (base_wrapper.py, model_manager.py, cache_utils.py, engine_handlers.py) enabling TTS models to integrate with ComfyUI's native model management
utils/models/unified_model_interface.py - Universal model loading interface providing standardized factory pattern for all engines (ChatterBox, F5-TTS, Higgs Audio, RVC, Audio Separation) with ComfyUI integration
utils/models/extra_paths.py - ComfyUI extra_model_paths.yaml integration system enabling shared model directories across multiple ComfyUI installations with intelligent path resolution and fallback support
Audio Processing
utils/audio/processing.py - Comprehensive audio utilities for tensor manipulation, normalization, and format conversion
utils/ffmpeg_utils.py - Centralized FFmpeg dependency handling with graceful fallbacks for audio conversion and timing analysis
utils/audio/analysis.py - Advanced audio analysis including waveform processing, silence detection, and timing extraction
utils/audio/audio_hash.py - Centralized content-based hashing for consistent cache keys across all processing modes
utils/audio/cache.py - Unified caching system for TTS engines with engine-specific cache management
utils/audio/chunk_combiner.py - Modular chunk combination utility with smart auto-selection based on text analysis (sentence boundaries, commas, forced splits) and detailed timing information
utils/audio/chunk_timing.py - Chunk combination timing information helper providing standardized timing info integration across all TTS engines
Text Processing
utils/text/character_parser.py - Universal character switching system with [CharacterName] tag parsing and language-aware processing
utils/text/chunking.py - Enhanced text chunking with sentence boundary detection and character limits
utils/text/pause_processor.py - Pause tag parsing supporting [pause:xx] syntax for precise timing control
utils/text/segment_parameters.py - Per-segment parameter system enabling inline control of seed, temperature, cfg, speed, and other engine-specific parameters via pipe-separated syntax like [Alice|seed:42|temperature:0.5]. Supports aliases (cfg_weight→cfg, temp→temperature) and case-insensitive input with universal parameter filtering and validation across all TTS engines
utils/text/phonemizer_utils.py - F5-TTS multilingual phonemization system with IPA conversion, cross-platform backend support (espeak-phonemizer-windows/phonemizer), smart language detection, and model-specific exceptions for optimal quality
Voice Management
utils/voice/discovery.py - Enhanced voice file discovery with multi-path fallback system (models/voices/, models/TTS/voices/, extra_model_paths.yaml directories, voices_examples/), character mapping, and alias loading with priority support
utils/voice/multilingual_engine.py - Central orchestrator for multilingual TTS with language switching optimization
System Integration
utils/system/import_manager.py - Smart dependency resolution managing bundled vs system installations
utils/system/subprocess.py - Safe subprocess execution with error handling and process isolation
Compatibility System
utils/compatibility/transformers_patches.py - Centralized transformers compatibility patches (monkey patches) managing version compatibility across different transformers library versions including FlashAttentionKwargs, BaseStreamer, DynamicCache properties, and VibeVoice generation method signatures
utils/compatibility/numba_compat.py - Centralized Numba/Librosa compatibility system with fast startup testing and intelligent JIT fallback management for Python 3.13+ compatibility
Downloads
utils/downloads/unified_downloader.py - Centralized download system for all engines eliminating HuggingFace cache duplication with direct HTTP downloads to organized TTS/ structure, featuring full extra_model_paths.yaml support for shared model directories
utils/downloads/model_downloader.py - RVC-specific model auto-download system with direct downloads (legacy, integrated with unified system)
Timing and SRT
utils/timing/engine.py - Advanced SRT timing engine with smart audio synchronization
utils/timing/assembly.py - Audio segment assembly supporting multiple timing modes
utils/timing/parser.py - SRT subtitle parsing with timestamp extraction and validation
utils/timing/reporting.py - Timing analysis and report generation
Streaming System
utils/streaming/__init__.py - Universal streaming system initialization
utils/streaming/streaming_types.py - Universal data structures (StreamingSegment, StreamingResult) eliminating format conversions
utils/streaming/streaming_interface.py - Abstract streaming interface for engine adapters
utils/streaming/streaming_coordinator.py - Universal coordinator replacing all format-specific routers
utils/streaming/work_queue_processor.py - Engine-agnostic parallel processing system
Web Interface Components
TTS Tag Editor (Modularized Architecture)
web/string_multiline_tag_editor.js, widget-event-handlers.js, widget-ui-builder.js, widget-parameter-section.js, widget-preset-system.js, editor-state.js, tag-utilities.js, syntax-highlighter.js, font-controls.js - Modular TTS tag editor with event handling, UI sections, parameters, presets, state management, tag utilities, syntax highlighting, and font controls for character/parameter tag editing with undo/redo, formatting, and persistence
Audio Analysis
web/audio_analyzer_interface.js - Main ComfyUI integration and node communication for Audio Wave Analyzer
web/audio_analyzer_core.js - Core JavaScript functionality for waveform visualization
web/audio_analyzer_ui.js - User interface components and control elements
web/audio_analyzer_visualization.js - Waveform rendering and canvas-based visualization
web/audio_analyzer_regions.js - Timing region management and interaction system
web/audio_analyzer_controls.js - Audio playback controls and user interaction handling
web/audio_analyzer_widgets.js - Custom ComfyUI widget implementations
web/audio_analyzer_drawing.js - Canvas drawing utilities and rendering functions
web/audio_analyzer_events.js - Event handling for mouse and keyboard interactions
web/audio_analyzer_layout.js - Layout management and UI positioning
web/audio_analyzer_node_integration.js - Node integration bridge for ComfyUI communication
web/chatterbox_voice_capture.js - Voice recording interface for microphone input
web/index_tts_emotion_radar.js - ComfyUI integration for 🌈 IndexTTS-2 Emotion Vectors radar chart
web/emotion_radar_canvas_widget.js - Interactive radar chart widget with dynamic color blending and click/drag controls
web/chatterbox_srt_showcontrol.js - SRT subtitle display and timing controls
web/audio_analyzer.css - Styling for audio analyzer interface components
Development Tools
scripts/bump_version_enhanced.py - Advanced automated version management with changelog generation and git integration
scripts/version_utils.py - Version management utilities and helper functions
Configuration Files
requirements.txt - Core dependencies including ChatterboxTTS, audio processing libraries, and optional F5-TTS dependencies
pyproject.toml - Project metadata with ComfyUI registry configuration and dependency specifications
Example Workflows
example_workflows/📺 Chatterbox SRT.json - Complete SRT processing workflow with ChatterBox engine
example_workflows/Chatterbox integration.json - General ChatterBox TTS and Voice Conversion demonstration
example_workflows/👄 F5-TTS Speech Editor Workflow.json - F5-TTS speech editing with Audio Wave Analyzer
example_workflows/🎤 📺 F5-TTS SRT and Normal Generation.json - F5-TTS SRT processing and standard generation
Voice Examples
voices_examples/ - Character voice reference files with both audio samples and text descriptions
- male/ - Male voice examples with reference audio and text
- female/ - Female voice examples with reference audio and text
- higgs_audio/ - Higgs Audio 2 voice presets (belinda, en_woman, en_man, chadwick, vex, etc.) with config.json
- #character_alias_map.txt - Character alias mapping configuration
- Individual character voice files (Clint Eastwood, David Attenborough, Morgan Freeman, Sophie Anderson)
Project Management
IgnoredForGitHubDocs/ - Development documentation excluded from main repository
- FOLDER_STRUCTURE_REFACTORING_PLAN.md - Architectural refactoring planning
- CHATTERBOX_MODEL_BUG_REPORT.md - Bug tracking and resolution documentation
Architecture Summary
The TTS Audio Suite follows a unified modular architecture where:
- Engine Nodes (
nodes/engines/) provide user configuration interfaces - Unified Nodes (
nodes/unified/) serve as clean delegation layers routing to appropriate engine processors - Engine Processors (
nodes/chatterbox/,nodes/f5tts/,nodes/higgs_audio/) handle engine-specific orchestration and workflow logic - Engine Implementations (
engines/) handle the actual TTS/VC processing and model inference - Adapters (
engines/adapters/) bridge low-level engines to higher-level processors - Utilities (
utils/) provide shared functionality across all components - Web Interface (
web/) enables interactive features like audio analysis
This layered design ensures consistent user experience while allowing engine-specific optimizations. The unified nodes act as thin delegation layers, eliminating code duplication and maintaining architectural consistency across all TTS engines.