ComfyUI Node

omnivoice

One text box to speech — with optional voice cloning, no local model

By civitai·Created 2 months ago·Updated about a month ago· 42
omnivoice
  • ref_audio_url
  • api_config
  • audio_blob
  • model_type
  • speaker
  • workflow_id
  • raw_json
text
language
ref_text
instruct

Type a sentence, get a voice back. CivitaiTextToSpeechVllmOmniOmnivoice is the "omnivoice" variant of Civitai's cloud text-to-speech: give it text, it synthesizes audio on Civitai's servers and hands you a native AUDIO output you can wire into a preview, save, or further processing. No local TTS model, no VRAM, no PyTorch install - just a Buzz charge per clip. If you've ever wanted a TTS node that Just Works with zero setup, this is that node.

It lives in the Civitai/Audio/omnivoice menu of Civitai's official ComfyUI pack. The interesting part is ref_audio_url: wire in a short sample of someone's voice and a transcript of that sample, and it does zero-shot voice cloning - the same TTS pipeline's standard trick, but hosted. That makes it a one-stop voiceover tool: narrate a video, dub a character, or give your video-gen results a voice track without leaving the graph.

How it works

The node submits a textToSpeech workflow to Civitai's Orchestration API. Your text goes up, the vLLM-omni model generates speech, and the pack downloads the result as an audio blob that comes back through the audio_blob output (an AUDIO type). Like every node in this pack it long-polls until the job is done, then reports workflow_id and cost on the canvas so you can see what a clip ran you.

The inputs that matter

  • text (required) - the words to synthesize. That's the whole job when you don't need cloning.
  • ref_audio_url - reference audio for voice cloning. It's an AUDIO socket, so wire a Load Audio node or another audio source. In the cloud-pipeline terms the API accepts an AIR URN or a URL, but here you just feed it a Comfy audio tensor.
  • ref_text - the transcript of that reference clip. Clone quality drops if this doesn't match what's actually said, so transcribe it accurately.
  • instruct - an optional style/voice instruction ("read this like a documentary narrator") layered on top.
  • language - target language; leave empty for auto-detection.

The outputs are audio_blob (the audio), model_type and speaker (metadata about what actually generated it), plus the standard workflow_id and raw_json for debugging.

Installing it

This is one of ~160 nodes in Civitai Comfy Nodes, Civitai's official pack for their Orchestration API. Install it once, get them all:

  • ComfyUI Manager: Manager → Custom Nodes Manager → search Civitai Comfy Nodes → Install, then restart.
  • CLI: comfy node registry-install civitai-comfy-nodes
  • Source: cd ComfyUI/custom_nodes && git clone https://github.com/civitai/civitai-comfy-nodes.git && pip install -r civitai-comfy-nodes/requirements.txt (only requests).

You need a Civitai account with Buzz and credentials - a Civitai Auth node, CIVITAI_API_TOKEN (the reliable path for headless), or a stored key from the Civitai sidebar.

Where people get burned

  • No credentials → "No Civitai credentials" error. Export CIVITAI_API_TOKEN and restart ComfyUI; headless setups can't use browser OAuth.
  • Cloning is picky about ref_text. If your reference transcript doesn't match the audio, the cloned voice drifts. Use a clean 5–15 second sample.
  • It's a paid call and it's moderated. Every clip burns Buzz, and your text and reference audio leave your machine for Civitai's servers, where the platform's content filters apply.
  • Early preview. The pack README warns nodes "may change without notice," and early community reports mention slow jobs and bugs. Long clips can hit the default 30-minute timeout - raise it via the Auth node or CIVITAI_COMFY_TIMEOUT.

If you need quick, decent narration and don't want to wrestle a local model, this is the lazy-correct answer. If you're doing voice cloning at volume, the cost adds up - but for one-offs it's hard to beat "type, run, done."

CategoryCivitai/Audio/omnivoice

Inputs (6)

NameTypeDefaultDescription
textSTRINGThe text to synthesize into speech.
languageoptSTRINGTarget language (e.g., "English", "Chinese"). Defaults to "Auto".
ref_audio_urloptAUDIOReference audio AIR URN or external URL for voice cloning.
ref_textoptSTRINGTranscript of the reference audio.
instructoptSTRINGOptional voice/style instruction.
api_configoptCIVITAI_CONFIGOptional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login.

Outputs (5)

NameTypeDescription
audio_blobAUDIO
model_typeSTRING
speakerSTRING
workflow_idSTRING
raw_jsonSTRING