Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

Commit aefef0c

Browse files
committed
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.
1 parent b25c19b commit aefef0c

8 files changed

Lines changed: 64 additions & 9 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [3.2.2] - 2025-07-21
9+
10+
### Added
11+
12+
- 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.
813
## [3.2.1] - 2025-07-19
914

1015
### Changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
[![Forks][forks-shield]][forks-url]
77
[![Dynamic TOML Badge][version-shield]][version-url]
88

9-
# ComfyUI ChatterBox SRT Voice (diogod) v3.2.1
9+
# ComfyUI ChatterBox SRT Voice (diogod) v3.2.2
1010

1111
*This is a refactored node, originally created by [ShmuelRonen](https://github.com/ShmuelRonen/ComfyUI_ChatterBox_Voice).*
1212

__init__.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,4 +163,20 @@
163163
print(f"🚀 ChatterBox Voice Extension {VERSION_DISPLAY} loaded with {len(NODE_DISPLAY_NAME_MAPPINGS)} nodes:")
164164
for node in sorted(NODE_DISPLAY_NAME_MAPPINGS.values()):
165165
print(f" • {node}")
166+
167+
# Report missing optional features
168+
missing_features = []
169+
if not F5TTS_SUPPORT_AVAILABLE:
170+
missing_features.append("F5-TTS nodes")
171+
if not SRT_SUPPORT_AVAILABLE:
172+
missing_features.append("SRT nodes")
173+
if not AUDIO_ANALYZER_SUPPORT_AVAILABLE:
174+
missing_features.append("Audio Analyzer")
175+
if not AUDIO_RECORDER_AVAILABLE:
176+
missing_features.append("Voice Recorder")
177+
178+
if missing_features:
179+
print(f"⚠️ Missing optional features: {', '.join(missing_features)}")
180+
print(" Install missing dependencies to enable all features")
181+
166182
print(SEPARATOR)

chatterbox/f5tts/__init__.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,22 @@
1111
warnings.filterwarnings("ignore", message=".*deprecated.*")
1212

1313
# Import F5-TTS modules with error handling
14+
F5TTS_IMPORT_ERROR = None
1415
try:
1516
with warnings.catch_warnings():
1617
warnings.simplefilter("ignore")
1718
from .f5tts import ChatterBoxF5TTS
1819
F5TTS_AVAILABLE = True
19-
except ImportError:
20+
except ImportError as e:
2021
F5TTS_AVAILABLE = False
22+
F5TTS_IMPORT_ERROR = str(e)
2123
# Create dummy class for compatibility
2224
class ChatterBoxF5TTS:
2325
@classmethod
2426
def from_pretrained(cls, device):
25-
raise ImportError("F5-TTS not available - missing dependencies")
27+
raise ImportError(f"F5-TTS not available: {F5TTS_IMPORT_ERROR}")
2628
@classmethod
2729
def from_local(cls, path, device, model_name):
28-
raise ImportError("F5-TTS not available - missing dependencies")
30+
raise ImportError(f"F5-TTS not available: {F5TTS_IMPORT_ERROR}")
2931

30-
__all__ = ['ChatterBoxF5TTS', 'F5TTS_AVAILABLE']
32+
__all__ = ['ChatterBoxF5TTS', 'F5TTS_AVAILABLE', 'F5TTS_IMPORT_ERROR']

chatterbox_srt/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"""
55

66
# Version info
7-
__version__ = "3.2.1"
7+
__version__ = "3.2.2"
88
__author__ = "Diogod"
99

1010
# Import the new SRT modules

core/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"""
55

66
# Version info
7-
__version__ = "3.2.1"
7+
__version__ = "3.2.2"
88
__author__ = "Diogod"
99

1010
# Make imports available at package level

nodes.py

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Version and constants
2-
VERSION = "3.2.1"
2+
VERSION = "3.2.2"
33
IS_DEV = False # Set to False for release builds
44
VERSION_DISPLAY = f"v{VERSION}" + (" (dev)" if IS_DEV else "")
55
SEPARATOR = "=" * 70
@@ -267,6 +267,38 @@ def error(self, error):
267267
if IS_DEV:
268268
print("❌ SRT support initialization failed")
269269

270+
# Update F5-TTS node availability with detailed diagnostics
271+
try:
272+
success, f5tts_class, source = import_manager.import_f5tts()
273+
if success:
274+
# F5-TTS is available - update global flag if needed
275+
if not F5TTS_SUPPORT_AVAILABLE:
276+
# This means the node loading failed earlier, but core F5-TTS is available
277+
if IS_DEV:
278+
print(f"⚠️ F5-TTS core available ({source}) but node loading failed - check node dependencies")
279+
else:
280+
if IS_DEV:
281+
print(f"✅ F5-TTS available! (source: {source})")
282+
else:
283+
# F5-TTS not available - get detailed error info
284+
from chatterbox.f5tts import F5TTS_IMPORT_ERROR
285+
F5TTS_SUPPORT_AVAILABLE = False
286+
F5TTS_SRT_SUPPORT_AVAILABLE = False
287+
F5TTS_EDIT_SUPPORT_AVAILABLE = False
288+
F5TTS_EDIT_OPTIONS_SUPPORT_AVAILABLE = False
289+
# Always show F5-TTS errors to help with troubleshooting
290+
if F5TTS_IMPORT_ERROR:
291+
print(f"❌ F5-TTS not available: {F5TTS_IMPORT_ERROR}")
292+
else:
293+
print("❌ F5-TTS support not available")
294+
except Exception as e:
295+
F5TTS_SUPPORT_AVAILABLE = False
296+
F5TTS_SRT_SUPPORT_AVAILABLE = False
297+
F5TTS_EDIT_SUPPORT_AVAILABLE = False
298+
F5TTS_EDIT_OPTIONS_SUPPORT_AVAILABLE = False
299+
# Always show critical F5-TTS errors
300+
print(f"❌ F5-TTS initialization failed: {str(e)}")
301+
270302
# Legacy compatibility: Remove old large SRT implementation - it's now in the new node
271303

272304
# Register nodes

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[project]
22
name = "chatterbox_srt_voice"
33
description = "ChatterBox SRT Voice TTS Node is a fork of 'ChatteBox Voice' with additional devolpments and full F5-TTS implementation as well. I introduced a SRT node designed to help you synchronize your generated TTS audio with `.srt` subtitle files. Audio wave analyzer will help you find speech segments for f5 speech edit and much more!"
4-
version = "3.2.1"
4+
version = "3.2.2"
55
license = {file = "LICENSE"}
66
dependencies = ["s3tokenizer>=0.1.7", "resemble-perth", "librosa", "scipy", "omegaconf", "accelerate", "transformers==4.46.3", "# Additional dependencies for SRT support and audio processing", "conformer>=0.3.2", "torch", "torchaudio", "numpy", "einops", "phonemizer", "g2p-en", "unidecode", "# Audio processing and timing dependencies", "soundfile", "resampy", "webrtcvad", "# Optional but recommended for better performance", "numba"]
77

0 commit comments

Comments
 (0)