Nodes/ComfyUI-Omnivoice/OmniVoice Voice Design
ComfyUI Node

OmniVoice Voice Design

Describe a voice with dropdowns instead of hoping the model parses prose

By ethanfel·Created 5 months ago·Updated 5 months ago· 6
OmniVoice Voice Design
    • instruct
    languageEnglish
    genderfemale
    agenone
    pitchnone
    accentnone
    zh_gendernone
    zh_agenone
    zh_pitchnone
    zh_dialectnone

    OmniVoice Voice Design is the pack's answer to "I want a voice that doesn't exist yet, and I don't have a recording." Instead of cloning from audio, OmniVoice can synthesize a voice from a text description - and this node is a structured builder for that description. Pick gender, age, pitch, accent from dropdowns, and it assembles the instruct string OmniVoice Generate needs, with zero guesswork about vocabulary.

    This is the honest alternative to voice cloning, and it matters because the two workflows are fundamentally different. Cloning gives you a specific voice; design gives you a category. Want "female, low pitch, British accent" without hunting for a reference recording that matches? Design is your tool. The model's instruct vocabulary is strict - the README and the node's tooltips both list exactly which accent values are supported - and Voice Design exists specifically so you never have to memorize or mistype them.

    How it works

    It's a formatter, not a model. You pick values from dropdowns, and the node joins whatever you selected (skipping the none options) into a comma-separated instruct string. It's the same string you could type by hand into Generate's instruct field - this node just guarantees you stay inside the vocabulary the model actually validates. The Chinese side works the same way, but with its own separate dropdowns and Chinese vocabulary, joined with Chinese commas (,).

    One subtle but nice detail: the node's language dropdown doubles as the Generate language selector's best friend - the tooltip notes the output wires straight into Generate and you don't need to set language there too. So this node is genuinely two things: a vocabulary-safe voice designer and a language signal.

    The inputs that matter

    For English mode: gender (none/male/female), age (child → elderly), pitch (very low → whisper), accent (ten supported values - American, Australian, British, Canadian, Chinese, Indian, Japanese, Korean, Portuguese, Russian). All default to none, so you can build a minimal instruction from just a couple of picks.

    For Chinese mode (language = Chinese): zh_gender, zh_age, zh_pitch, and zh_dialect - a proper set of regional dialects (东北话, 四川话, 河南话, …). The English dropdowns are ignored in Chinese mode, and vice versa.

    Output: instruct, a STRING that plugs directly into OmniVoice Generate's instruct input. The tooltips are explicit that language is "just a vocabulary selector" - you still pick mode = voice_design on Generate.

    Installing it

    Part of ethanfel/ComfyUI-Omnivoice. ComfyUI Manager: search "OmniVoice", install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ethanfel/ComfyUI-Omnivoice.git
    

    No extra dependencies beyond the pack's own.

    Common issues

    • Generate says voice_design needs an instruct string. The instruct output isn't connected, or everything's set to none and the assembled string is empty. Give Generate at least one real value.
    • Set the wrong mode. The design string only does anything in voice_design mode on Generate. In voice_cloning mode it's an optional style-transfer hint layered on top of a reference; if you're designing from scratch, mode matters.
    • "It ignored my accent." Because the instruct vocabulary is strict, an accent that isn't in the supported list gets dropped or garbled. That's the whole point of the dropdowns - if it's not an option, the model can't do it.
    • Chinese/English confusion. If you set language to Chinese but picked English dropdowns, they're silently ignored. The Chinese controls are the ones that count there.

    Reality check: designed voices are a roulette wheel compared to cloning. You get the category you asked for, not a specific memorable voice, and community testing has found OmniVoice's designed voices less consistent than its clones. It's brilliant for generating a quick character bank or prototyping; for a voice you'll carry through a whole project, cloning a good reference still wins.

    CategoryOmniVoice

    Inputs (9)

    NameTypeDefaultDescription
    languageCOMBOEnglishSelects the instruct vocabulary. The language output wires directly into Generate — no need to set it there too.
    genderCOMBOfemaleVoice gender (English). Ignored when language is Chinese — use zh_gender.
    ageCOMBOnoneAge of the speaker (English). Ignored when language is Chinese — use zh_age.
    pitchCOMBOnonePitch (English). Ignored when language is Chinese — use zh_pitch.
    accentCOMBOnoneAccent (English only, 10 supported values).
    zh_genderoptCOMBOnone声线性别 (Chinese mode)
    zh_ageoptCOMBOnone年龄段 (Chinese mode)
    zh_pitchoptCOMBOnone音调 (Chinese mode)
    zh_dialectoptCOMBOnone方言/口音 (Chinese mode)

    Outputs (1)

    NameTypeDescription
    instructSTRING