Civitai Transcription
Turn any audio into text (and word-level timestamps) without a local model
- media_url
- api_config
- text
- language
- time_stamps
- elapsed_seconds
- workflow_id
- raw_json
You've got an audio clip and you want the words out of it - a voiceover take, a podcast excerpt, a line of dialogue you generated with a TTS node. CivitaiTranscription is the audio-to-text half of Civitai's ComfyUI pack: feed it an audio file, and it sends the job to Civitai's cloud transcription service and returns the transcript, the detected language, and word-level timestamps. No Whisper install, no VRAM spent, no model to download. It costs Buzz instead.
It sits in the Civitai/Audio menu, a sibling of the pack's text-to-speech nodes. The pairing is the natural use case: synthesize speech with a TTS node, transcribe it back with this one, and you've got a self-verifying audio round-trip inside one graph. It's also handy when your local setup has no speech model at all and you just need a caption or a subtitle file worth of timing data.
How it works
The node is a thin wrapper over Civitai's Orchestration API. You wire audio into the media_url input (an AUDIO socket - anything a Load Audio node produces, or an audio output from another Civitai node), it uploads the audio, the cloud transcribes it, and the result comes back as plain Comfy types. Behind the scenes the pack long-polls the workflow until it finishes, then hands you the text. The node reports its workflow_id and cost on the canvas after a run, which is how you keep an eye on the Buzz meter.
The inputs that matter
- media_url (required) - the audio to transcribe. Wire a generated audio output or a loaded file here.
- language - an optional hint like
"en"or"zh"to steer the transcriber. Usually unnecessary; leave blank for auto-detection. - context - a prompt giving background on the audio ("a narrated product demo for a coffee machine") that measurably improves accuracy on jargon and proper nouns. Worth filling if your content is technical.
- return_time_stamps - defaults to true, so you get word-level timestamps by default. Flip it off if you only want the plain text.
The outputs tell you everything you need: text (the transcript), language, time_stamps (word-level timing data), and elapsed_seconds - the processing time the cloud job took, useful for cost forensics. Plus the usual workflow_id and raw_json for debugging.
Installing it
This node ships in Civitai Comfy Nodes, Civitai's official ~160-node pack for their Orchestration API. Install it once and the whole Civitai category appears:
- 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(justrequests).
Transcription runs on Civitai's fleet, so you need an account with Buzz and credentials: a Civitai Auth node, the CIVITAI_API_TOKEN environment variable (the reliable choice for headless/remote ComfyUI), or a key stored via the Civitai sidebar.
Where people get burned
- No credentials → immediate error. Without a token, the pack throws "No Civitai credentials." Export
CIVITAI_API_TOKENand restart. - Cloud moderation and privacy. Your audio leaves your machine and hits Civitai's servers; anything the platform's filters object to can come back blocked. Don't feed it material you wouldn't upload to the site.
- It's a metered call, not free. Local Whisper is free after the VRAM; this is a per-transcription Buzz charge. For a one-off caption that's fine; for transcribing hundreds of files, a local model wins.
- Early-preview rough edges. The pack is in active development and the community's first weeks reported slow jobs and bugs. Long audio can outlast the default 30-minute timeout - raise it via the Auth node or
CIVITAI_COMFY_TIMEOUTif you hit it.
Bottom line: when you need a transcript fast and don't want to babysit a local model, this is the one-click answer. Just keep the Buzz meter and the privacy trade in view.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| media_url | AUDIO | The URL of the audio media to transcribe. | |
| languageopt | STRING | Optional language hint (e.g., "en", "zh") to guide transcription. | |
| contextopt | STRING | Optional context prompt to improve transcription accuracy. | |
| return_time_stampsopt | BOOLEAN | true | Whether to return word-level timestamps. Defaults to true. |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| language | STRING | — |
| time_stamps | STRING | — |
| elapsed_seconds | STRING | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |