AuK Whisper Transcribe X
Transcribe the input, then check the output
- audio
- STRING
Why you'd reach for it
Two jobs, one node, and they're both about knowing what's actually being said. The first: AuK's edit instructions quote the words to change, and the words have to exist in the recording - so you need a transcript before you can write a good replace or extract instruction. The second: after AuK has done its thing, you want to know whether it said what you asked for, and reading the output back is faster than squinting at a waveform.
Worth saying clearly, because the docs do: AuK never needs a transcript of reference audio. Its encoder listens to the clip directly. This node exists for you, not for the model - to help you write instructions and to verify results.
How it works
audio is what gets transcribed. model picks the Whisper checkpoint, and its tooltip describes the lookup order precisely: names are resolved from folders under ComfyUI/models/whisper/ or ComfyUI/models/audio_encoders/, and a name that has no local folder is only downloaded when download_if_missing is on. Off is the default, and off means the node stays fully offline - it'll fail rather than reach out.
When you do enable download_if_missing, model_size is the fallback size to fetch if the selected name isn't itself a known download size. The known sizes are Whisper's standard set, tiny through large-v3 and large-v3-turbo, and they land under models/whisper/<size>/ and get reused from then on. The default model_size is large-v3, which is a lot of download if you just wanted a quick check - small or base is often enough for verifying that words came out in the right order.
language defaults to auto-detect and lists a dozen languages explicitly; pick one if detection is wavering on a short clip. task is transcribe, which keeps the spoken language, or translate, which outputs English.
One STRING output - wire it to AuK Prompt Enhance X's context input, or to a text display. It's an output node, so it also previews on its face.
Long clips are handled properly: anything past Whisper's 30-second window goes through native timestamp-guided long-form processing rather than being truncated, so a two-minute recording transcribes completely.
Install
ComfyUI Manager → search WorkflowX Configurator, or:
cd ComfyUI/custom_nodes
git clone https://github.com/haroonaslam/WorkflowX-Configurator
cd WorkflowX-Configurator
pip install "transformers>=5.3,<6" safetensors PyYAML tqdm
Models, your choice of route:
# fully offline - drop any Whisper folder containing config.json here:
ComfyUI/models/whisper/<name>/
ComfyUI/models/audio_encoders/<name>/
# or let the node fetch one, with download_if_missing enabled:
# tiny / base / small / medium / large-v3 / large-v3-turbo
Restart after adding model folders.
Where it goes wrong
A local folder without config.json is invisible. The lookup requires it, and a folder that doesn't qualify just doesn't appear in the dropdown - which reads as "my model isn't showing up" rather than as a malformed model folder.
download_if_missing off plus an unknown name is a hard failure, by design. If you're on a metered connection or genuinely want the offline guarantee, keep it off and pre-place the folder; if you flip it on expecting a small model and get large-v3, remember that's the model_size default doing its job.
Transcription mistakes on names and unusual words will mislead your edit instructions, because you're quoting what Whisper heard. For a replace instruction, spot-check the quoted words against the audio before you build on them - an anchor that isn't in the recording is a failed edit, and it's not obvious which of the two stages went wrong.
Dependency drift. Whisper arrives through Transformers, in a pack that already requires a current Transformers for AuK. If transcription suddenly starts failing after you installed something else in ComfyUI, check your Transformers version first - version conflicts are the standing failure mode across every local audio suite.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | Audio to transcribe - AuK's output as a quality check, or source audio before writing a replace/extract instruction. | |
| model | COMBO | Whisper checkpoint folder from models/whisper or models/audio_encoders. Names without a local folder download only when download_if_missing is on. | |
| download_if_missing | BOOLEAN | false | When the selected model is not on disk, download it once from Hugging Face into models/whisper/ and reuse the local copy afterwards. Off keeps the node fully offline. |
| model_size | COMBO | large-v3 | Fallback size to fetch when download_if_missing is on and the selected model is not itself a known download size. Saved under models/whisper/<size>/. |
| language | COMBO | Spoken language hint; auto detects it. | |
| task | COMBO | transcribe keeps the spoken language; translate outputs English. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |