Nodes/ComfyUI-QwenASR/ASR (QwenASR)
ComfyUI Node

ASR (QwenASR)

Local speech-to-text, no API key required

By 1038lab·Created 7 months ago·Updated 7 months ago· 68
ASR (QwenASR)
  • audio
  • TEXT
â—„modelQwen/Qwen3-ASR-0.6Bâ–ş
â—„precisionbf16â–ş
â—„languageautoâ–ş
â—„hintsâ–ş
â—„unload_modelstrueâ–ş

This node is speech-to-text that stays on your machine. Drop an audio file in, get a plain-text transcript out, and never hand your recordings to some API you didn't read the terms of. The name is a lie in the best way - it doesn't call any service and needs no key; Qwen's ASR models are downloaded once, cached locally, and run through your own GPU.

Qwen3-ASR is a fresh model family (released January 2026, hot on the heels of a couple of rival open ASR releases), and a bunch of ComfyUI packs rushed to wrap it within days. This one, by 1038lab (the same folks behind ComfyUI-QwenTTS), is pitched as the lightweight, no-fuss option - just two nodes, sensible defaults, and local model caching. It slots naturally into the wider graph: load audio, transcribe, feed the text to a ShowText node, or hand it to a TTS pack to re-voice something. If you've ever built a voice-cloning workflow, you already know the annoying manual step this kills - typing out what a reference clip actually says.

How it works

Under the hood it wraps Qwen3-ASR through transformers with the usual torch pipeline: your ComfyUI AUDIO (a waveform plus sample rate) gets normalized and mono-mixed, then fed to the model. Long files are chunked automatically inside the model pipeline, so a 10-minute podcast doesn't blow up your VRAM. The model loads in bf16 by default (fp16 on Apple Silicon, since MPS doesn't do bf16), and the loaded weights are cached per settings - bump the batch or switch precision and it reloads, otherwise it stays warm between runs.

The model itself lands in ComfyUI/models/Qwen3-ASR/, and the first run auto-downloads whichever repo you pick. Two sizes are offered: 0.6B (default) and 1.7B. If your audio is clean English, 0.6B is plenty and way faster; reach for 1.7B when you've got noise, accents, or messy conversational audio.

The inputs that matter

Most of these you'll never touch. The few that count:

  • audio - the one required input. Wire it from LoadAudio (or any node that emits an AUDIO).
  • model - Qwen/Qwen3-ASR-0.6B vs Qwen/Qwen3-ASR-1.7B. Speed vs accuracy.
  • language - auto by default, or force one of the 30 languages. Worth setting when the auto-detect gets confused between close languages.
  • hints - this one's underrated. It's a free-form context string of names, jargon, or product terms ("Kubernetes", "CivitAI") that genuinely improves recognition of words the model would otherwise mangle.
  • unload_models - defaults to True, which frees VRAM after each run. If you're transcribing a batch in a loop, flip it to False so the model stays cached and you're not reloading every frame.

Output: a single TEXT string. Feed it to ShowText or SaveText, or straight into another node's prompt input.

Installing it

Simplest path is ComfyUI Manager - search QwenASR (the README suggests searching "ASR") and install ComfyUI-QwenASR. Or do it by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/1038lab/ComfyUI-QwenASR.git
cd ComfyUI-QwenASR
pip install -r requirements.txt

Then restart ComfyUI. Two gotchas: the dependency list is heavier than it looks - transformers>=4.57 (Qwen3-ASR needs a recent transformers), torchaudio, modelscope, and a trio of tokenization libs (nagisa, soynlp, DyNet38) that are what enable the wide language list. And the first transcription isn't instant: it's downloading a few gigabytes of weights, which can look like a hang. Watch the console for the download progress.

Common issues

  • "qwen-asr not available" - the most common failure, and it means dependencies didn't install (or you upgraded the environment and broke a pinned lib). Re-run pip install -r requirements.txt in the pack folder.
  • Download slow or stalled - you're probably outside mainland China pulling from HuggingFace, or inside it. The README's tip is the fix: edit config.json in the pack root to set "source": "ModelScope", which is far faster from China.
  • Model won't unload / VRAM creep - flip unload_models to True between runs, or restart ComfyUI. Keep it False only for deliberate batch loops.
  • Terrible transcripts on niche languages - try forcing the language instead of auto, and feed hints for domain terms.

One honest caveat: this pack is young and small, so don't expect a wall of community troubleshooting threads if something breaks - the README and the GitHub repo are your best bet, and both are well-written.

Category🧪AILab/🎙️QwenASR

Inputs (6)

NameTypeDefaultDescription
audioAUDIOAudio input to transcribe.
modeloptCOMBOQwen/Qwen3-ASR-0.6BChoose the ASR model size.
precisionoptCOMBObf16Inference precision.
languageoptCOMBOautoForce language or auto-detect.
hintsoptSTRINGOptional hints/keywords (names, terms) to improve recognition.
unload_modelsoptBOOLEANtrueUnload cached model after inference.

Outputs (1)

NameTypeDescription
TEXTSTRING—