Replace torchaudio.save with soundfile.write; add EPUB loader node

- nodes/generator.py: swap torchaudio.save for soundfile.write to avoid
  torchcodec/FFmpeg dependency crash in environments without FFmpeg shared libs
- nodes/epub_loader.py: new OmniVoiceEpubLoader node for loading EPUB chapters
- tests/test_epub_loader.py: 8 tests for the EPUB loader
- install.py: add beautifulsoup4 to runtime deps
- __init__.py, nodes/__init__.py: register OmniVoiceEpubLoader

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-05 17:24:18 +02:00
parent 5366f6992e
commit 5dfaa0b300
8 changed files with 254 additions and 6 deletions
+3 -1
View File
@@ -1,13 +1,15 @@
from .nodes import OmniVoiceModelLoader, OmniVoiceGenerate
from .nodes import OmniVoiceModelLoader, OmniVoiceGenerate, OmniVoiceEpubLoader
NODE_CLASS_MAPPINGS = {
"OmniVoiceModelLoader": OmniVoiceModelLoader,
"OmniVoiceGenerate": OmniVoiceGenerate,
"OmniVoiceEpubLoader": OmniVoiceEpubLoader,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"OmniVoiceModelLoader": "OmniVoice Model Loader",
"OmniVoiceGenerate": "OmniVoice Generate",
"OmniVoiceEpubLoader": "OmniVoice EPUB Loader",
}
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"]