ThinkingLLM Whisper ASR
Turn any audio into text your LLM can read
- audio
- TRANSCRIPT
- SEGMENTS_JSON
- RAW_TRACE
ComfyUI has plenty of ways to make noise; it has few ways to listen. The Whisper ASR node is the transcription half of the ThinkingLLM pack's audio story - speech-to-text via faster-whisper that turns a connected AUDIO input or a file path into a TRANSCRIPT string you can pipe into any text node in the graph. It's the missing front end for every local-LLM workflow in this pack: Whisper transcribes, a Qwen node summarizes.
How it works
You feed it either an audio connection (from a Load Audio node) or an audio_file_path pointing at M4A, MP3, WAV, FLAC, or anything FFmpeg can read. The node decodes it to 16 kHz mono WAV, runs faster-whisper, and returns three strings:
TRANSCRIPT- the clean, joined text.SEGMENTS_JSON- the per-segment timings and text, which is what you want if you're building subtitles or aligning transcript to video.RAW_TRACE- the diagnostic trail: source, model, device, compute type, detected language and confidence, duration.
The defaults are tuned for Windows reliability, and that's the right call: small model on cpu with int8 compute. It's not fast, but it works on a machine with no CUDA setup at all. Switch device to cuda (and compute_type to float16 or int8_float16) once your CTranslate2 CUDA runtime is confirmed working.
The inputs that matter
model_size- tiny / base / small / medium / large-v3 / distil-large-v3.smallis the honest starting point;large-v3is a big quality jump and a big download;distil-large-v3is the speed pick.language-auto(default) lets Whisper detect it, or pin it (en, de, fr, es, ja, ko…) to speed things up and avoid misdetection.task-transcribekeeps the original language;translatereturns English.beam_size- 5 default; higher is more accurate and slower.vad_filter- on by default; skips long silences and non-speech before transcribing. Leave it on unless it's eating the first words of a quiet recording.
Installing
Manager (search ThinkingLLM) or:
cd ComfyUI/custom_nodes
git clone https://github.com/goodguy1963/ComfyUI-ThinkingLLM.git
cd ComfyUI-ThinkingLLM
pip install -r requirements.txt
The pack's requirements declare faster-whisper, and the node returns an install hint in its output if the library is missing. Two real dependencies: FFmpeg must be available for audio decoding, and the first run downloads the selected Whisper model into the Hugging Face cache - on a dial-up mood that's a 150 MB–3 GB surprise for the bigger models.
Gotchas
If you get an install-hint message out of the TRANSCRIPT output, faster-whisper isn't importable in ComfyUI's Python - that's an environment issue, not a workflow issue, and the hint names it. CPU + int8 is the reliable Windows default but genuinely slow on long files; don't benchmark the node's quality on a 30-minute recording before switching to CUDA. And remember the division of labor in this pack: Whisper gives you words, Gemma 4 Audio gives you understanding. If you only need "what was said," this is the cheap node; if you need "what's happening in this audio," that's the Gemma node's job.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model_size | COMBO | small | faster-whisper model size. small is a reliable Windows-friendly starting point; large-v3 is higher quality but downloads and runs much larger. |
| language | COMBO | auto | Audio language. Use auto to let Whisper detect it. |
| task | COMBO | transcribe | transcribe preserves the original language; translate returns English. |
| device | COMBO | cpu | cpu is the most reliable Windows default; choose cuda when your faster-whisper/CTranslate2 CUDA runtime is working. |
| compute_type | COMBO | int8 | int8 is reliable on CPU. Use float16 or int8_float16 for CUDA. |
| beam_size | INT | 51–10 | Higher values can improve accuracy but run slower. |
| vad_filter | BOOLEAN | true | Skip long silence and non-speech sections before transcription. |
| audioopt | AUDIO | — | |
| audio_file_pathopt | STRING | Optional local audio file path. M4A, MP3, WAV, FLAC, and other FFmpeg-readable files are decoded to 16 kHz mono WAV before Whisper. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| TRANSCRIPT | STRING | — |
| SEGMENTS_JSON | STRING | — |
| RAW_TRACE | STRING | — |