Nodes/ComfyUI-OmniVoice-TTS/OmniVoice Voice Design TTS
ComfyUI Node

OmniVoice Voice Design TTS

Design a voice from a text description — no reference clip required

By Saganaki22·Created 5 months ago·Updated 3 months ago· 537
OmniVoice Voice Design TTS
    • audio
    model
    textHello! This is a test of voice design with OmniVoice.
    voice_instructfemale, low pitch, british accent
    steps32
    guidance_scale2.0
    t_shift0.10
    speed1.0
    duration0.0
    deviceauto
    dtypeauto
    attentionauto
    seed0
    position_temperature5.0
    class_temperature0.0
    layer_penalty_factor5.0
    denoisetrue
    postprocess_outputtrue
    keep_model_loadedtrue

    Most TTS gives you two options: use the default narrator voice, or clone a real one. OmniVoiceVoiceDesignTTS is the third door - invent a voice that belongs to nobody, from a text description. Type female, low pitch, british accent and it synthesizes a brand-new speaker with those attributes. No reference audio, no Whisper, no copyright-shaped questions about whose voice you're using. For character work - a podcast host, a narrator with a specific energy, a fictional character in a scene - this is genuinely the nicest node in the pack, because it's the one that needs the least setup and the least cleanup.

    Mechanically it's the same OmniVoice diffusion language model as the rest of the pack, just driven differently. Instead of conditioning generation on encoded voice tokens from a reference clip (the clone path), it conditions on a text description of the voice. The whole skill lives in the voice_instruct string, and it's worth knowing the exact vocabulary, because the model validates against a fixed list and silently (or not so silently) underdelivers on anything else. Valid attributes: gender (male/female), age (child, young adult, teenager, middle-aged, elderly), pitch (very low through very high), style (whisper), and a set of accents - american, british, australian, canadian, chinese, indian, japanese, korean, portuguese, russian, plus a dozen Chinese dialects like 河南话. Comma-separate them: "female, young adult, high pitch, whisper". Don't mix English and Chinese values in one string, and keep in mind that unlike the other nodes' instruct field, voice_instruct is defining the voice, not adjusting the delivery of a cloned one - the README calls that distinction out explicitly.

    The rest of the inputs are the pack's standard generation kit: model (OmniVoice fp32 ~4GB or OmniVoice-bf16 ~2GB, both auto-download to ComfyUI/models/omnivoice/), text (what the designed voice says; supports [laughter]/[sigh]-style inline tags), steps (32 default, 16 faster, 64 best), guidance_scale (2.0), speed, and the temperature knobs you can leave alone. keep_model_loaded stays on by default and offloads to CPU between runs. Output is a single audio (AUDIO) that you save or feed downstream - pair it with an audio-driven avatar if you want a consistent, fictional talking head that doesn't belong to any real person.

    Setup is the pack's standard story: search "OmniVoice" in ComfyUI Manager, or git clone and run python install.py. Same shared caveats apply - let install.py handle the omnivoice package with --no-deps so its torch==2.8.* pin can't downgrade your PyTorch to CPU-only, and if the node's missing at startup it's almost always the transformers/soxr version issue the pack's troubleshooting doc walks through. A fair expectation check, though: designed voices are a synthetic-sounding middle ground. It's never going to sound like a specific real person - that's the point - and community reports suggest the clone nodes get closer to "natural" than the design node does. Use it when you want a plausible new voice fast, not a perfect one.

    CategoryOmniVoice

    Inputs (18)

    NameTypeDefaultDescription
    modelCOMBOOmniVoice model checkpoint. Models are stored in ComfyUI/models/omnivoice/
    textSTRINGHello! This is a test of voice design with OmniVoice.Text to synthesize in the designed voice. Supports inline non-verbal tags like [laughter], [sigh], etc.
    voice_instructSTRINGfemale, low pitch, british accentVoice attributes (comma-separated): gender (male/female), age (child/young/elderly), pitch (very low/low/medium/high/very high), style (whisper), accent (american/british/australian/sichuan/shaanxi/etc.). Example: 'female, low pitch, british accent'
    stepsINT324–64Number of diffusion steps. 16 = faster, 32 = balanced, 64 = best quality.
    guidance_scaleFLOAT2.00–10Classifier-free guidance scale. Higher = more aligned with text.
    t_shiftFLOAT0.100–1Time-step shift for noise schedule. Smaller = emphasis on earlier steps.
    speedFLOAT1.00.5–2Speaking speed factor. >1.0 = faster, <1.0 = slower.
    durationFLOAT0.00–60Fixed output duration in seconds. 0 = automatic. Overrides speed if set.
    deviceCOMBOautoCompute device. 'auto' picks CUDA > MPS > XPU > CPU.
    dtypeCOMBOautoModel precision. 'auto' picks bf16 for CUDA (Ampere+), fp16 for older CUDA/MPS, fp32 for CPU.
    attentionCOMBOautoAttention implementation. 'auto' uses model default (eager). 'sage_attention' uses SageAttention CUDA kernels (requires SM80+ GPU).
    seedINT00–2147483647Random seed. 0 = random.
    position_temperatureFLOAT5.00–20Temperature for mask-position selection. 0 = greedy, higher = more random.
    class_temperatureFLOAT0.00–5Temperature for token sampling. 0 = greedy, higher = more random.
    layer_penalty_factorFLOAT5.00–20Penalty on deeper codebook layers, encouraging lower layers to unmask first.
    denoiseBOOLEANtruePrepend denoise token to input for cleaner output.
    postprocess_outputBOOLEANtruePost-process generated audio (remove long silences).
    keep_model_loadedBOOLEANtrueKeep model loaded between runs. Model is automatically offloaded to CPU after generation.

    Outputs (1)

    NameTypeDescription
    audioAUDIO