Commit Graph
34 Commits
Author SHA1 Message Date
diodiogod 3df2f92cb9 Include character aliases in available-characters API endpoint
Modified /api/tts-audio-suite/available-characters to return both
character filenames and their aliases from the character alias map.
This allows the tag editor dropdown to show friendly alias names like
'Alice' alongside actual voice files.
2025-10-31 18:14:16 -03:00
diodiogod d8b5d10be0 Use canonical LANGUAGE_ALIASES from language_mapper as API source
Changed /api/tts-audio-suite/available-languages endpoint to derive
languages from the authoritative LANGUAGE_ALIASES dictionary in
language_mapper.py instead of hardcoded list. This ensures the tag
editor always has all supported language codes.
2025-10-31 17:56:03 -03:00
diodiogod 368ccd0dd4 Create language constants source of truth and fix language tag logic
- Added language-constants.js with API-driven language list (fallback to hardcoded)
- Added /api/tts-audio-suite/available-languages endpoint in __init__.py
- Updated widget-ui-builder.js to use getSupportedLanguages()
- Updated widget-event-handlers.js to use isLanguageCode() for detection
- Fixes issue where [seed:5|steps:3] now correctly becomes [de:|seed:5|steps:3]
  instead of [de:5|steps:3] by properly detecting language codes vs parameters
2025-10-31 17:48:06 -03:00
diodiogod 15cd521e28 Fix API response format - return aiohttp web.json_response
The endpoint was returning a dict instead of a proper aiohttp response object.
Now correctly returns web.json_response() which aiohttp expects.
2025-10-31 02:40:00 -03:00
diodiogod 8dd363b75e Add API endpoint for character voice discovery in widget
- Create /api/tts-audio-suite/available-characters endpoint
- Make widget's populateCharacters() async and try to fetch from API
- Falls back to hardcoded defaults if API unavailable
- Endpoint returns sorted list of discovered character voices
2025-10-31 02:37:32 -03:00
diodiogod dffd6f4cab Reduce verbose init logging - remove success messages for FFmpeg, numba JIT, engine loading, and model discovery
- Remove 'FFmpeg available' success message (only show when unavailable)
- Remove 'numba JIT enabled' success message
- Remove 'ChatterboxTTS/VC loaded from bundled package' success messages
- Remove 'F5-TTS loaded from system package' success message
- Remove 'Using ComfyUI ChatterBox models' legacy success message
- Keep important diagnostic messages like 'Failed to load GPU Faiss' and package versions
2025-10-23 22:02:42 -03:00
diodiogod 793722aa9a Version 4.10.12
Fix VibeVoice accelerate compatibility issues

Technical implementation:
- Add comprehensive transformers patches for accelerate detection
- Fix missing check_tied_parameters_on_same_device function
- Fix missing dispatch_model function for device mapping
- Smart patch application only when compatibility issues detected
- Add accelerate to critical dependencies monitoring
2025-09-26 14:54:28 -03:00
diodiogod cc544e9558 Version 4.10.9
Fix Python 3.12 VRAM spikes with ComfyUI compatibility patch

Technical implementation:
- Add automatic CUDNN benchmark disabling for Python 3.12
- Implement compatibility patch system in utils/comfyui_compatibility.py
- Apply fix before TTS generation in unified text and SRT nodes
- Resolve ComfyUI v0.3.57+ regression affecting memory management
2025-09-26 01:18:35 -03:00
diodiogod 8a5b8dad45 Version 4.10.5
Add centralized FFmpeg dependency handling with graceful fallbacks

Technical details:
- Create centralized FFmpegUtils class for dependency detection
- Add FFmpeg status to initial startup logs alongside package versions
- Implement graceful MP3 conversion fallbacks in vocal separation
- Maintain backward compatibility with existing FFmpeg usage across project
2025-09-23 21:08:05 -03:00
diodiogod e6b9a5ab80 Version 4.8.27
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
2025-09-09 00:40:06 -03:00
diodiogod 3e5f9a3721 Fix RVC Python 3.13 compatibility - comprehensive numba/librosa solution
Major compatibility overhaul for RVC engine in Python 3.13 environments:

🔧 Core Compatibility Fixes:
• Disabled numba JIT compilation for Python 3.13+ via environment variables
• Added comprehensive librosa compatibility patches for missing functions:
  - pad_center, tiny (as function), fill_off_diagonal, is_positive_int, expand_to
• Replaced librosa.resample with torchaudio.resample to eliminate numba dependency
• Fixed all relative imports in RVC implementation (. notation)

⚡ Performance Improvements:
• Manual RMS calculation replacing librosa.feature.rms (avoids numba)
• Higher quality audio resampling using torchaudio
• Maintains backward compatibility with Python 3.12

🐛 Bug Fixes:
• Fixed 'function' object has no attribute 'get_call_template' errors
• Resolved 'float' object is not callable in librosa.sequence.viterbi
• Fixed ImportError for missing librosa utility functions
• Enhanced error handling and debugging throughout RVC pipeline

✨ Features:
• Comprehensive monkey-patching system for librosa compatibility
• Automatic fallbacks for failed operations
• Detailed logging for troubleshooting

Successfully tested with full RVC voice conversion workflow in Python 3.13.6.
2025-09-06 17:22:33 -03:00
diodiogod a1e2bd06bb Version 4.5.7: Fix Python 3.13 compatibility: Replace librosa with torchaudio in Higgs Audio engine 2025-08-25 10:17:26 -03:00
diodiogod 95d3b691a4 feat: Add viseme detection (vowel classification) to mouth movement analyzer
- Enhanced geometric feature extraction for comprehensive mouth shape analysis
- Implemented vowel classification (A, E, I, O, U) based on lip geometry
- Added new SRT format option to display detected viseme sequences
- New toggle for enabling/disabling viseme detection
- Caching system supports viseme detection state
- Viseme sequences grouped for readability (A3-E2-I-O4)

Technical implementation:
- Extract 8 geometric features: lip width/height, mouth area, roundedness, curvature
- Rule-based vowel classification with confidence scoring
- Frame-by-frame viseme detection integrated with existing movement analysis
- ~20% performance impact when enabled, fully cached for repeated analysis
2025-08-15 01:06:41 -03:00
diodiogod 91617effe8 Fix relative import errors in unified nodes
- Replace relative imports with absolute imports using importlib.util
- Fixes 'attempted relative import with no known parent package' error
- All unified nodes (TTS Text, TTS SRT, Voice Changer) now use consistent import pattern
- Preserves engine delegation functionality while fixing startup issues
2025-08-06 18:32:45 -03:00
diodiogod 53925dfb3f Version 3.2.2: Add detailed F5-TTS diagnostic messages to help users troubleshoot installation issues. F5-TTS import errors are now always shown during initialization, making it easier to identify missing dependencies without requiring development mode. 2025-07-21 10:02:23 -03:00
diodiogod 1cc542897c Clean up old F5-TTS Edit node references from main branch 2025-07-15 08:54:28 -03:00
diodiogod 27790a660f Implement F5-TTS Edit Options node with advanced crossfade and caching
Phase 1 Complete: F5-TTS Edit Improvements Plan
- Add 🔧 F5-TTS Edit Options node following Audio Analyzer pattern
- Implement smart caching system with LRU eviction for fast iteration
- Enhanced crossfade with configurable curves (linear, cosine, exponential)
- Adaptive crossfade adjusts duration based on segment size
- Cache system supports 10-1000 entries with MD5-based keys
- Backward compatibility: main node works without options node
- Restore F5-TTS Speech Editor (OLD) for comparison testing

Technical improvements:
- core/f5tts_edit_cache.py: Complete caching infrastructure
- core/audio_compositing.py: Enhanced with curve types and adaptive behavior
- core/f5tts_edit_engine.py: Integrated cache and options support
- nodes/f5tts_edit_options_node.py: New options node with all parameters
- nodes/f5tts_edit_node_old.py: Restored original version for comparison

Ready for testing problematic segments like "55" to "7 year"
2025-07-14 22:48:38 -03:00
diodiogod b27d7b4447 Change F5-TTS Speech Editor emoji from 🎛️ to 👄 2025-07-13 15:10:00 -03:00
diodiogod 7b44654250 Rename Audio Analyzer to Audio Wave Analyzer and fix F5-TTS nfe_step bug
- Renamed '🎵 Audio Analyzer' to '🌊 Audio Wave Analyzer' throughout project
- Updated all node display names, tooltips, documentation, and web interface
- Preserved class names and internal identifiers for ComfyUI compatibility
- Fixed nfe_step bug in F5-TTS nodes: limited max value to 71 to prevent ODE solver issues
- Added validation clamping and warning messages in F5-TTS Node and F5-TTS Edit Node
- Updated tooltips to warn about ODE solver issues above 71
2025-07-13 01:02:08 -03:00
diodiogodandClaude fa9a48d959 Fix Audio Analyzer Options Node emoji consistency
- Update display names to use 🔧 emoji in both __init__.py and nodes.py
- Ensure consistent branding across all registration files
- Complete Audio Analyzer Options Node architecture implementation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 13:26:10 -03:00
diodiogodandClaude 92fdbd4aa0 Implement Audio Analyzer Options Node for decluttered UI
Add separate AudioAnalyzerOptionsNode to provide advanced configuration:

New Features:
- 🎛️ Audio Analyzer Options node outputs OPTIONS data type
- Contains all analysis method parameters (silence, energy, peaks, manual)
- Main Audio Analyzer node accepts optional "options" input
- If connected: uses options node settings
- If not connected: uses individual parameter widgets (backward compatible)

Architecture:
- AudioAnalyzerOptionsNode (~200 lines) - clean parameter interface
- Modified AudioAnalyzerNode - accepts options input with fallback logic
- Full backward compatibility - existing workflows unchanged
- Follows ComfyUI's composable node philosophy

Benefits:
- Cleaner main node interface for basic users
- Advanced users can fine-tune with separate options node
- Modular design keeps files under 600 lines
- Zero breaking changes to existing functionality

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 09:05:09 -03:00
diodiogod 25db27547c Audio Analizer node, initial, lading, working, but user interactive interface not working 2025-07-09 23:35:05 -03:00
diodiogod 12a76ee665 Temporary branch: WIP on F5 TTS integration 2025-07-08 23:28:14 -03:00
diodiogod 91a1298c20 v2.0.1: Node renaming for conflict resolution
- Renamed nodes with '(diogod)' suffix to avoid conflicts with original ChatterBox Voice repository
- SRT Voice TTS node remains unchanged as it was unique to this implementation
2025-06-17 10:19:22 -03:00
diodiogod 6b35a14a73 v2.0.0! - MAJOR ARCHITECTURAL REFACTORING
Transformed the project from a monolithic structure to a clean, modular architecture, see CHANGELOG.md
2025-06-14 02:35:16 -03:00
diodiogod e4819bdb52 v1.2.0: Added chunk/segment progress indicators, improved interruption handling with proper ComfyUI signaling, refined smart timing reports, cleaned up console output, and fixed edge case crashes and sequence numbering in SRT output. 2025-06-13 14:01:55 -03:00
diodiogod 5efc68497e tried to fix some warning messages but I failed. Fixed initialization messages not showing all 4 nodes being loaded 2025-06-09 19:19:35 -03:00
diodiogod 1727b0a9e2 feat: major stability and usability improvements 🚀
- Fixed model detection to properly identify local models by checking for s3gen.pt files

- Added support for both standard and legacy model directory structures

- Resolved UnboundLocalError in SRT generation by initializing 'any_segment_cached'

- Simplified startup messages for cleaner end-user experience

- Removed unnecessary debug output while maintaining dev capabilities

These changes ensure more reliable operation and better user experience
2025-06-08 12:23:12 -03:00
diodiogod b81b63d744 Add new SRT node
does voice timming alignment, segment cache, SRT output and a lot of things
2025-06-08 01:19:21 -03:00
Shmuel Ronen 71e5fbb7e3 name change to ChatterBox_Voice 2025-06-04 09:37:09 +03:00
Shmuel Ronen 837360f29f add audio capture code 2025-06-04 00:45:52 +03:00
Shmuel Ronen 6f3f19b080 new main code 2025-06-03 08:24:20 +03:00
Shmuel Ronen 3228a755f4 Delete __init__.py 2025-06-03 08:17:51 +03:00
Shmuel Ronen 9cff30b3e5 added files 2025-06-02 11:18:09 +03:00