Commit Graph
277 Commits
Author SHA1 Message Date
diodiogod 8d0bbd49eb Update all references from 'String Multiline Tag Editor' to 'Multiline TTS Tag Editor'
- Updated docstring in tts_tag_editor_node.py
- Updated error message in nodes.py
- Updated node display name mapping in nodes.py
- Updated file header comment in string_multiline_tag_editor.js
- Updated SRT helper file header comment
- All UI references now use consistent naming
2025-10-31 02:12:30 -03:00
diodiogod 9d5d6968b4 Implement 🏷️ String Multiline Tag Editor with full persistence, undo/redo, and preset system 2025-10-30 14:54:04 -03:00
diodiogod c7cd8c8274 Version 4.13.2
Fix IndexTTS-2 QwenEmotion transformers compatibility (#90)

- Change deprecated dtype parameter to torch_dtype for AutoModelForCausalLM
- Add KV-cache disabling to prevent incompatibilities with newer transformers versions
- Resolves Qwen3ForCausalLM unexpected keyword argument error
2025-10-30 00:06:35 -03:00
diodiogod b23c769956 Version 4.13.1
Fix perth import fallback - make it optional

- Add try-except with PERTH_AVAILABLE flag for all perth imports
- Prevents ModuleNotFoundError crash when perth is not installed
- Watermarking is disabled by default, perth is truly optional
- Matches pattern already used in vc.py files
- Remove unused perth import from stateless wrappers
2025-10-29 23:48:11 -03:00
diodiogod f969b47b12 Version 4.13.0
Add Voice Fixer audio restoration node and optimize dependencies

Implementation details:
- Integrate bundled VoiceFixer for professional audio restoration (Issue #153)
- Lazy loading with Python 3.12 CUDNN fix for VRAM optimization
- Replace torchlibrosa with librosa-based STFT/ISTFT to reduce external dependencies
- Improve Wave Analyzer: analyze in mono but preserve original stereo output
- Fix audio playback cache issues with unique filename generation
- Sort vocal removal model dropdown by category for better UX
2025-10-29 17:05:59 -03:00
diodiogod 75d85c0ebb Change Voice Fixer emoji to 🤐 to match Noise or Vocal Removal
- Signals to users they have related audio restoration functions
- Updated node name, docstring, tooltips, and display mappings
- Both nodes now use 🤐 emoji for visual consistency
- Better UX: users see them as part of the same family
2025-10-29 15:36:42 -03:00
diodiogod 40f0e873be Integrate Voice Fixer audio restoration (Issue #153)
- Bundle VoiceFixer locally to avoid cache downloads
- Create voice_fixer_downloader for TTS/voicefixer/ model management
- Implement Voice Fixer node with 3 restoration modes (original, high-freq removal, train mode)
- Register node in nodes.py with proper error handling
- Patch bundled VoiceFixer hardcoded paths to use TTS/voicefixer/ directory
- Disable auto-download in restorer/__init__.py, handled by node instead
- Support lazy loading and CUDA acceleration
- All models download to organized TTS/ folder, never to cache
2025-10-29 14:15:52 -03:00
diodiogod c5b0f98404 Version 4.12.1
Fix Higgs Audio SRT seed behavior to use fixed seed

Implementation:
- Change Higgs Audio from seed+i pattern to consistent fixed seed
- Aligns with other engines (F5-TTS, VibeVoice, ChatterBox) which already use fixed seed
- User can control per-segment seed via segment parameters: [seed:42]
- Improves predictability and cache stability when editing SRT files
2025-10-29 12:08:22 -03:00
diodiogod 8e0e5bdff5 Version 4.12.0
Add per-segment parameter switching across all TTS engines

Implementation details:
- Unified parameter switching for ChatterBox, F5-TTS, Higgs Audio 2, VibeVoice, IndexTTS-2
- Per-segment control with inline tag syntax [character|seed:42|temp:0.5]
- Engine-specific parameter filtering with smart fallback handling
- SRT subtitle line parameter support
- Order-independent and case-insensitive parameter syntax
- Full integration with character and language switching
- Comprehensive parameter validation and range clamping
2025-10-29 11:37:36 -03:00
diodiogod 6649f01c9f Version 4.11.26
Add interrupt handling to all TTS processors

Comprehensive implementation of cancellation support:
- Higgs Audio: Interrupt checks in SRT and TTS processors
- VibeVoice: Interrupt checks in SRT and text processors
- ChatterBox Official 23-Lang: Interrupt checks in SRT processor
- IndexTTS-2: Interrupt checks in SRT processor
- Added Step 9.5 to implementation guide for future engines

This allows users to stop long-running operations gracefully.
2025-10-28 23:17:18 -03:00
diodiogod d511b0f2d7 Version 4.11.25
Fix Clear VRAM button for all TTS engines

Technical details:
- Add .to() methods to ChatterBox Classic, ChatterBox 23-Lang, F5-TTS, Higgs Audio, VibeVoice, RVC, and Index-TTS engines
- Implement device checking before generation to detect CPU offloading
- Add wrapper search and re-registration logic to maintain ComfyUI tracking
- Fix VRAM spike issues during RVC and VibeVoice reload by moving models to correct device before generation
- Optimize to reuse existing wrappers instead of creating duplicates
- Register RVC models with ComfyUI model management for proper VRAM tracking
- Fix target device calculation to always use CUDA when available across all engines
2025-10-27 23:35:31 -03:00
diodiogod 43cd4f5bd9 Version 4.11.24
Fix ChatterBox Official 23-Lang device placement bug

Technical implementation:
- Add .to() method to ChatterBoxOfficial23LangTTS class for device migration
- Add .to() method to ChatterboxVC class for voice conversion device handling
- Improve wrapper's _move_all_components_to_device() with better recursion depth
- Fix unified_model_interface device resolution for 'auto' mode
- Add ComfyUI model management re-registration after wrapper.model_load()
- Fix model_finalizer setup when re-registering with ComfyUI
- Add device check in processor to call wrapper.model_load() instead of direct .to()

Fixes device mismatch errors:
- Fix 'Expected all tensors to be on the same device' error on second run
- Fix 'Inference tensors do not track version counter' after CPU detachment
- Fix 'Clear VRAM' button not working after model reload
2025-10-27 19:10:52 -03:00
diodiogod caee9dbcd1 Version 4.11.23
Fix PyTorch installation syntax error

Invalid pip requirement syntax with local version labels in version specifiers.
The +cu121 suffix is only valid with == or != operators, not with >= operators.
Now correctly passes CUDA version via --index-url instead.

Also add graceful error handling for RVC monotonic-alignment-search installation
on systems without C++ build tools.
2025-10-26 19:58:14 -03:00
diodiogod 2fd56ad4b9 Version 4.11.22
Fix remaining torch_dtype deprecation warning in Higgs Audio

Technical changes:
- Replace self.config.torch_dtype with self.dtype in CUDA graph capture
- Add fallback chain: self.dtype -> self.config.dtype -> torch.float32
- Complete elimination of all torch_dtype deprecation warnings
2025-10-25 13:15:57 -03:00
diodiogod 2d4f16d7d9 Version 4.11.21
Fix Higgs Audio compatibility with transformers 4.57.1+

Technical changes:
- Add **kwargs to HiggsAudioModel.forward() to catch new tokenizer argument
- Replace deprecated torch_dtype with dtype in from_pretrained() calls
- Ensure backward compatibility with older transformers versions
2025-10-25 13:11:06 -03:00
diodiogod 319e16f8ca Version 4.11.20
Add TTS Audio Suite prefix to post-load diagnostic messages

User-facing improvements:
- Prefix character voice discovery messages with [TTS Audio Suite] for clarity
- Helps users identify which extension is responsible for each message
- Distinguishes TTS Suite messages from other custom nodes during startup
2025-10-23 23:42:48 -03:00
diodiogod daf54de61d Version 4.11.19
Optimize startup performance with lazy loading and async checks

Engine node optimizations:
- Replace heavy engine imports in INPUT_TYPES with file-reading-only model discovery
- Remove blocking module loads from node initialization
- Reconstruct discovery logic for all 7 engine nodes: VibeVoice, F5-TTS, Higgs, ChatterBox, ChatterBox 23-Lang, IndexTTS, RVC
- Each engine now scans model folders without importing engine modules

Voice discovery and dependency improvements:
- Implement persistent voice character discovery cache in .cache folder
- Add background refresh thread for cache updates
- Move dependency checking to async background thread (2-second delay)
- Prevent blocking initialization on startup
- Print diagnostic messages after ComfyUI loads
2025-10-23 23:34:35 -03:00
diodiogod ce2cccc122 Version 4.11.18
Clean up initialization startup messages

- Remove success messages for FFmpeg availability, numba JIT, and model loading
- Remove 'ChatterboxTTS/VC loaded' and 'F5-TTS loaded' informational messages
- Keep critical diagnostic messages (failed faiss GPU, package versions)
- Simplify stdout filter code and remove non-functional JAX suppression attempts
2025-10-23 22:03:55 -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 0f18fc3998 Version 4.11.17
Fix ComfyUI JSON serialization type corruption in unified nodes

- Add modular ConfigSanitizer utility for parameter type validation
- Fix repetition_penalty and other float parameters becoming integers
- Fix device parameter corruption when using Any Switch node
- Skip verbose download messages for already-downloaded models
2025-10-23 13:51:37 -03:00
diodiogod 76379af376 Version 4.11.16
Fix device mismatch in TTS model reuse after CPU offloading

Root cause: When models are detached to CPU and then reloaded to GPU, conditioning tokens (cond_prompt_speech_tokens) remain on CPU. The prepare_conditioning() method in T3 model tries to embed these CPU tokens using GPU embedding layers, causing device mismatch.

Solution: Explicitly move conditioning tokens to model device before calling embedding layers in both ChatterBox and ChatterBox Official 23-Lang T3 models.
2025-10-22 18:22:07 -03:00
diodiogod ef51a9a5ae Version 4.11.15
Fix Higgs Audio DynamicCache AttributeError and cache recreation on device transitions

Technical details:
- Fix ambiguous cache type checking using hasattr() instead of isinstance()
- Replace cache reset logic with explicit StaticCache vs DynamicCache handling
- Add exception handling for cache reset operations
- Set force_cache_recreation flag when clearing caches during CPU unload
- Improve DynamicCache manual construction with better error handling
2025-10-22 15:04:36 -03:00
diodiogod e299ab9719 Version 4.11.14
Skip WeTextProcessing on Windows to avoid confusing install errors

Windows users see failed WeTextProcessing installation due to missing build
tools, even though code has graceful fallback. This confuses users.

Changes:
- Detect Windows platform and skip WeTextProcessing installation
- Use fallback text processing instead (works fine, slightly slower for Chinese)
- Add explanatory message in install summary for Windows users
- No functional impact - all TTS generation works normally
2025-10-22 10:44:06 -03:00
diodiogod aae6151f57 Version 4.11.13
Fix VibeVoice compatibility with transformers 4.51.3+

Technical details:
- Add num_hidden_layers patch to VibeVoiceConfig
- Patch applies wildminder v1.5.1 fix to FushionHub fork
- Fixes DynamicCache initialization error in transformers 4.51.3+
2025-10-22 10:18:18 -03:00
diodiogod 73191eb251 Version 4.11.12
Fix IndexTTS-2 CampPlus model auto-download

CampPlus was using direct hf_hub_download() instead of unified downloader,
causing FileNotFoundError when loading from cache. Now uses unified system.

Changes:
- Add CampPlus to index_tts_downloader MODELS registry
- Replace hf_hub_download() with unified downloader in infer_v2.py
- Ensures CampPlus downloads to models/TTS/IndexTTS/campplus/
- Follows consistent TTS folder policy with other dependencies
2025-10-21 08:43:26 -03:00
diodiogod 8d4a8b067f Version 4.11.11
Fix ChatterBox Official 23-Lang device mismatch on cached model reuse

Root cause: When models are moved from CPU back to VRAM after being detached,
the model components are properly moved but conditioning data remained on CPU.
This caused embedding layers to fail (input tensors on CPU, weights on CUDA).

Changes:
- TTS engine: Sync self.conds to device in generate() and generate_batch()
- VC engine: Sync self.ref_dict to device in generate()
- Ensures all tensors are on correct device before inference
2025-10-20 18:03:55 -03:00
diodiogod 6b2157d29e Version 4.11.10
Add SSL certificate bypass for IndexTTS-2 W2V-BERT download

Technical details:
- Add TTS_DISABLE_SSL_VERIFY environment variable support
- Implement scoped SSL bypass for transformers downloads
- Restore SSL verification after model loading completes
- Add SSL verification toggle to unified downloader
2025-10-19 08:37:16 -03:00
diodiogod 6405e8494c Version 4.11.9
Fix VibeVoice standalone model detection

Technical details:
- Add support for .safetensor extension (singular)
- Fix _find_standalone_model() to search extra_model_paths.yaml directories
- Add case-insensitive folder name support (vibevoice/VibeVoice)
2025-10-14 18:19:38 -03:00
diodiogod 9f722ad392 Version 4.11.8
Fix F5-TTS trainer wandb import for protobuf compatibility

- Make wandb import optional in trainer.py to prevent crashes
- Add WANDB_AVAILABLE flag with graceful degradation
- Fixes issue with ComfyUI portable protobuf version mismatch
2025-10-14 18:11:40 -03:00
diodiogod eaf5123bd9 Version 4.11.7
Fix RVC HuBERT model loading error

Technical details:
- Add direct .pt loading attempt before safetensors conversion
- Improve error handling for unsupported model formats
- Add fallback mechanism for complex fairseq models
2025-10-13 09:09:35 -03:00
diodiogod 04167d31b9 Version 4.11.6
Fix IndexTTS-2 dependency download violations

Technical fixes:
- Fix w2v-bert-2.0 downloading to .cache instead of TTS folder
- Fix MaskGCT semantic codec downloading to .cache instead of TTS folder
- Fix BigVGAN vocoder downloading to .cache instead of TTS folder
- Update download configurations to include only necessary files
- All IndexTTS-2 dependencies now use unified downloader
2025-10-10 12:09:44 -03:00
diodiogod 917cdc7269 Version 4.11.5
Fix Higgs Audio HuBERT download policy to use unified TTS structure

Technical details:
- Replace direct AutoModel.from_pretrained() calls with unified downloader
- Follow proper download policy: TTS folder > cache check > download to TTS
- Download HuBERT to TTS/hubert/hubert-base-ls960/ instead of .cache
- Maintain consistency with other engines (ChatterBox, VibeVoice, etc.)
- Respect extra_model_paths.yaml configuration for custom directories
2025-10-10 11:46:09 -03:00
diodiogod c473837547 Version 4.11.4
Fix Higgs Audio model discovery with extra_model_paths.yaml support

Technical details:
- Add proper extra_model_paths.yaml integration like other TTS engines
- Support HiggsAudio/, higgs_audio/, and higgsaudio/ parent folder variations
- Add flexible subfolder scanning with Higgs Audio-specific file detection
- Use get_all_tts_model_paths() instead of hardcoded directory paths
- Update download_model and download_tokenizer for local: prefix support
2025-10-10 11:30:29 -03:00
diodiogod 4a7673f583 Version 4.11.3
Fix VibeVoice model discovery with extra_model_paths.yaml support

Technical details:
- Add proper extra_model_paths.yaml integration like ChatterBox
- Support both vibevoice/ and VibeVoice/ parent folder case variations
- Add flexible subfolder scanning with VibeVoice-specific file detection
- Use get_all_tts_model_paths() instead of hardcoded directory paths
2025-10-10 11:11:28 -03:00
diodiogod fea3f769e7 Version 4.11.2
Fix Polish ł mapping in Unicode decomposition

Technical details:
- Remove incorrect ł->lł and Ł->Lł mappings from DECOMPOSITION_MAP
- Polish ł/Ł have no proper Unicode decomposition (distinct letters)
- Prevents duplication bug in phoneme text normalizer
2025-10-10 10:42:23 -03:00
diodiogod d9b306705f Version 4.11.1
Fix ChatterBox v2 special token conversion and update documentation

Technical fixes:
- Fix v2 tag conversion not being applied in main code path
- Move conversion to top of _generate_tts_with_pause_tags
- Fix incorrect token names in CHANGELOG (laugh→laughter)
- Add experimental warning to documentation about limited token effectiveness
2025-10-08 18:06:27 -03:00
diodiogod 10ce0da588 Version 4.11.0
Add ChatterBox Official 23-Lang v2 with emotion/sound tokens

Implementation details:
- Add model version selection (v1/v2) to engine configuration
- Implement version-specific model loading with auto-download
- Add special token conversion system for emotions/sounds/effects
- Update bundled code to v2 specification (2454 vocab tokens)
- Fix v1/v2 cache isolation and engine instance separation
- Fix v2 model download path normalization and file detection
- Fix v1 compatibility with correct vocab size and tokenizer
2025-10-08 10:04:48 -03:00
diodiogod b38667257b Version 4.10.16
Fix VibeVoice local model prefix handling

Technical details:
- Strip local: prefix for model lookups in vibevoice_downloader
- Fix model path resolution when using local: prefix
- Add chunk_combination_method parameter to unified node
- Implement native multi-speaker chunking support
- Use existing ImprovedChatterBoxChunker for intelligent text splitting
2025-10-07 22:17:20 -03:00
diodiogod 1adaa1a22c Version 4.10.15
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
2025-09-29 08:28:18 -03:00
diodiogod 8855e493f3 Version 4.10.14
Fix VibeVoice auto device detection and model loading issues

Technical details:
- Fix model being moved to CPU after every generation
- Prevent redundant model loading through unified interface
- Add model already-loaded check in VibeVoice adapter
- Fix auto device detection logic running after cache checks
- Resolve aggressive memory management triggering unnecessarily
2025-09-27 10:41:00 -03:00
diodiogod abf14e0474 Version 4.10.13
Fix VibeVoice cache invalidation for attention modes

Technical details:
- Fix cache key missing attention_mode parameter
- Add quantize parameter to cache key generation
- Remove debug cache logging statements
2025-09-26 15:27:56 -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 c5c227b996 Version 4.10.11
Fix VibeVoice SageAttention compatibility issues

Technical improvements:
- Replace aggressive Qwen2Attention monkey-patching with safer SDPA wrapper approach
- Implement Enemyx-net's temporary F.scaled_dot_product_attention patching method
- Add proper EOS token handling for correct generation termination
- Fix model state corruption when switching between attention modes
- Add automatic fallback to original SDPA if SageAttention fails
- Eliminate need for ComfyUI restart when changing attention modes

Credits: SageAttention implementation approach adapted from @Enemyx-net's VibeVoice-ComfyUI
2025-09-26 12:10:08 -03:00
diodiogod 0ad89351b1 Version 4.10.10
Fix IndexTTS-2 import conflicts with external installations

Technical implementation:
- Add detection for external IndexTTS installations in unified_model_interface.py
- Display clear error message with uninstall instructions when conflicts found
- Remove unnecessary adapter initialization log message
- Resolves import errors from issues #115, #116, and #101
2025-09-26 09:19:08 -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 ed0888bea4 Version 4.10.8
Fix install.py Python version detection and emoji encoding issues

Technical details:
- Fix Windows py launcher bypassing venv detection
- Add clear warnings for Python version mismatches
- Remove emojis from install script to prevent encoding issues
- Improve error messaging for py vs python command usage
2025-09-25 21:50:50 -03:00
diodiogod 2b4d97a47a Version 4.10.7
Add VibeVoice wildminder format compatibility

Technical changes:
- Implement [1] [2] [3] [4] numeric character tag support for native multi-speaker
- Replace synthetic voice samples with None for true zero-shot generation
- Increase CFG scale limit from 5.0 to 10.0
- Add direct Speaker mapping for numeric character tags
- Maintain full backward compatibility with existing character systems
2025-09-25 18:05:24 -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 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 c33cf24989 Version 4.10.4
Fix VibeVoice compatibility with transformers 4.56+

Technical details:
- Enable previously disabled transformers compatibility patches
- Fix _prepare_cache_for_generation argument mapping for newer transformers versions
- Maintain backward compatibility with older transformers versions
2025-09-23 20:47:31 -03:00