Nodes/ComfyUI-Qwen3-ASR/Qwen3-ASR Batch Transcribe
ComfyUI Node

Qwen3-ASR Batch Transcribe

Batching Qwen3-ASR transcription

By DarioFT·Created 7 months ago·Updated 7 months ago· 197
Qwen3-ASR Batch Transcribe
  • model
  • audio_list
  • transcriptions
languageauto
return_timestampsfalse

The batch version of a transcription node is where you land once the single-clip version has already done its job and you've realized the boring part isn't the transcribing, it's running it a dozen times. Qwen3-ASR Batch Transcribe from DarioFT's ComfyUI-Qwen3-ASR takes a pile of audio in through one input and hands you one transcript of everything, all locally - no API, no key, no upload.

What you're actually running

Underneath is Alibaba's Qwen3-ASR, an open (Apache-2.0) speech-to-text model that hit in early 2026 to a warm reception and covers 30 languages plus 22 Chinese dialects. It's a small model family - 1.7B for best quality, 0.6B for speed - small enough that people were running the 1.7B happily on a Google Colab free tier, which tells you it'll fit whatever you've got. DarioFT shipped this pack basically the day the model landed, as the speech-to-text half of a voice-cloning workflow that pairs with his ComfyUI-Qwen3-TTS pack: transcribe a reference clip automatically, then clone the voice. That's the workflow the README leads with, and the batch node is the "now do it for a whole dataset" extension of it.

Mechanically it's the sibling of the single Qwen3-ASR Transcribe node, sharing its QWEN3_ASR_MODEL input. You feed it the model from the Qwen3-ASR Loader plus an audio_list, and it iterates: each item gets converted to a mono waveform, all of them go into one model.transcribe(...) call (the loader sets max_inference_batch_size=32), and each result comes back formatted as [i] (language): text. Turn on return_timestamps and each entry gets indented start-end: text lines beneath it. Note that one forced language applies to every file in the batch - the loader's auto-detection runs per-file, but a manually set language doesn't.

The inputs that matter

The schema is tiny. You'll set two things, sometimes three:

  • model - from the Loader. Pick 1.7B (accuracy) or 0.6B (speed/VRAM) there.
  • audio_list - AUDIO type, so it takes whatever LoadAudio emits. One clip, several LoadAudio nodes wired into the same input (ComfyUI passes them as a list), or a folder/wildcard audio loader from a pack like data_handling_node. The node accepts either a single clip or a list, so it doesn't fuss about which.
  • language - default auto; force it only when the file's multilingual or noisy.
  • return_timestamps - off by default; see below before flipping it.

The one output, transcriptions, is a single STRING with every file's result in one blob. That's the honest trade-off: if you need each file's text as a separate value to wire into downstream nodes, this isn't the node - use the single Transcribe node per clip. The batch node is for "give me the text out of all of this."

Installing it

ComfyUI Manager, search Qwen3-ASR, install, restart. One caution: more than one pack answers to a name like that - make sure the one you're getting is DarioFT's (repo DarioFT/ComfyUI-Qwen3-ASR). Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/DarioFT/ComfyUI-Qwen3-ASR.git
cd ComfyUI-Qwen3-ASR
pip install -r requirements.txt

Its requirements are qwen-asr, modelscope, soundfile, torch, transformers, accelerate. Models auto-download on first run into ComfyUI/models/Qwen3-ASR/ - the 1.7B is a few GB, so the first run has a download wall to sit through.

Where people get burned

  • Timestamps come back empty. return_timestamps only does anything if you also set a ForcedAligner on the Loader node - and the aligner doesn't support every language the ASR model does. Hindi, famously, produces partial or missing alignments. Set it on the Loader, not here.
  • Blank output, no error. The node silently returns "" if it gets no usable audio. If a batch comes back empty, check the LoadAudio side first.
  • Silently long first run. That auto-download has no progress bar in the node; watch the terminal.
  • The same-name pack trap in Manager mentioned above - wrong repo, confusing week.

If you're building the TTS pairing, this is the node that turns "I have a voice clip" into "the model already knows what they said" without a manual transcript. Just don't expect per-file outputs out of it.

CategoryQwen3-ASR

Inputs (4)

NameTypeDefaultDescription
modelQWEN3_ASR_MODEL
audio_listAUDIO
languageoptCOMBOauto31 options: auto, Chinese, English, Cantonese, Arabic, German, +25
return_timestampsoptBOOLEANfalse

Outputs (1)

NameTypeDescription
transcriptionsSTRING