Files
diodiogod-TTS-Audio-Suite/PROJECT_INDEX.md
T
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

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:

  1. Engine Nodes (nodes/engines/) provide user configuration interfaces
  2. Unified Nodes (nodes/unified/) serve as clean delegation layers routing to appropriate engine processors
  3. Engine Processors (nodes/chatterbox/, nodes/f5tts/, nodes/higgs_audio/) handle engine-specific orchestration and workflow logic
  4. Engine Implementations (engines/) handle the actual TTS/VC processing and model inference
  5. Adapters (engines/adapters/) bridge low-level engines to higher-level processors
  6. Utilities (utils/) provide shared functionality across all components
  7. 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.