Nodes/civitai-comfy-nodes/Civitai Audio Captioning
ComfyUI Node

Civitai Audio Captioning

Turn audio into text for training sets, without captioning it by hand

By civitai·Created 2 months ago·Updated about a month ago· 42
Civitai Audio Captioning
  • media_url
  • api_config
  • results
  • workflow_id
  • raw_json
temperature0.00
max_new_tokens0

The image side of this hobby has a captioning problem and it's solved: you run a VLM over your training images and get captions. The audio side has the same problem and far fewer tools. Civitai Audio Captioning is the pack's answer - it runs ACE-Step's understanding over an audio clip (or a zip of clips) and returns a text description. If you're building an audio LoRA training set or just need a searchable description of a sound, this saves you from a very tedious afternoon.

What it is

A recipe node under Civitai/Audio that submits an audioCaptioning job. It's thin on inputs and thick on delegation: the captioning runs on Civitai's fleet, so there's no local captioning model to install.

Inputs: media_url (an AUDIO socket - the tooltip says "the URL of the audio file or zip archive to caption," and the pack uploads whatever audio tensor you feed it), plus temperature and max_new_tokens, which the tooltip frames as shared settings for "both ACE-Step requests" - the model runs two passes internally, and these tune sampling for each.

Outputs: results (a STRING - the caption text), plus the pack-standard workflow_id and raw_json.

Where it fits

The captioning-job framing from the KB's LLM-in-ComfyUI essay applies here with the medium swapped: captions feed training sets, and caption quality is what your LoRA actually learns from. For audio, the ecosystem's captioning story is thinner than for images (no JoyCaption equivalent in the KB's audio-generation doc), so a hosted captioner is a genuinely useful shortcut - especially for ACE-Step LoRA training, where you need consistent text descriptions of each track.

The honest use case, though, is "I need captions and I don't want to write them." If you have a few dozen clips, typing one line each is arguably faster than wiring up credentials and spending Buzz. Where this node shines is scale: a zip archive in, batch captions out, without running a GPU or fighting a local audio-CLIP setup.

Install & gotchas

Standard pack install - ComfyUI Manager (search Civitai Comfy Nodes), comfy node registry-install civitai-comfy-nodes, or git clone + pip install -r requirements.txt.

Worth knowing before you rely on it:

  1. It's metered per call, and it's a cloud round-trip of your audio. The clip uploads to Civitai's fleet. For private or unreleased material, weigh that data flow; for random foley it's a non-issue.
  2. temperature and max_new_tokens default to 0. That's a deterministic, minimal output by default - raise max_new_tokens for longer descriptions, and nudge temperature if every caption comes back suspiciously terse.
  3. Auth required, as with every node here. CIVITAI_API_TOKEN, stored OAuth, or a wired Civitai Auth node. No key, no caption.

The results output is a plain STRING, so it wires into anything downstream that wants text - a file writer for a training dataset, a log node, or a prompt builder. That's the whole trick: caption once, reuse everywhere.

CategoryCivitai/Audio

Inputs (4)

NameTypeDefaultDescription
media_urlAUDIOThe URL of the audio file or zip archive to caption.
temperatureFLOAT0.000–2147483647Sampling temperature for both ACE-Step requests.
max_new_tokensINT00–2147483647Maximum number of tokens to generate for each ACE-Step request.
api_configoptCIVITAI_CONFIGOptional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login.

Outputs (3)

NameTypeDescription
resultsSTRING
workflow_idSTRING
raw_jsonSTRING