95cf706b19
- Add OmniVoiceSpeaker node (label + ref_audio + ref_text → OMNIVOICE_SPEAKER) - Add OmniVoiceSpeakers node (roster with dynamic speaker_N inputs driven by num_speakers INT widget; slots expand/collapse via ComfyUI JS extension) - Add web/multi_speaker.js: ComfyUI extension that hooks onNodeCreated and onConfigure to sync speaker_N inputs in real time (max 8 speakers) - Extend OmniVoiceGenerate with optional speakers (OMNIVOICE_SPEAKERS) input; when connected it routes each paragraph to the assigned speaker and concatenates the results — supports alternate_paragraphs and tagged_speakers modes - Remove OmniVoiceMultiSpeakerGenerate (generation now lives in the existing Generate node) - Refactor generator.py: extract _write_tmp_wav helper, add _tensors_to_audio Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
10 lines
519 B
Python
10 lines
519 B
Python
from .loader import OmniVoiceModelLoader
|
|
from .generator import OmniVoiceGenerate
|
|
from .epub_loader import OmniVoiceEpubLoader
|
|
from .voice_presets import OmniVoiceVoicePreset
|
|
from .mix_voices import OmniVoiceMixVoices
|
|
from .voice_design import OmniVoiceVoiceDesign
|
|
from .multi_speaker import OmniVoiceSpeaker, OmniVoiceSpeakers
|
|
|
|
__all__ = ["OmniVoiceModelLoader", "OmniVoiceGenerate", "OmniVoiceEpubLoader", "OmniVoiceVoicePreset", "OmniVoiceMixVoices", "OmniVoiceVoiceDesign", "OmniVoiceSpeaker", "OmniVoiceSpeakers"]
|