Nodes/ComfyUI_PromptStudio/Qwen Image 2.1 Turbo v0.3 LoRA
ComfyUI Node

Qwen Image 2.1 Turbo v0.3 LoRA

The Qwen Image 2.1 Turbo adapter that never touches your weights

By tiko13·Created 3 months ago·Updated 12 days ago· 8
Qwen Image 2.1 Turbo v0.3 LoRA
  • model
  • MODEL
◄lora_name▾►

Qwen Image 2.1 at 25 or 40 steps is a lovely generator and a slow one. Viggle published a rank-128 adapter that collapses it to six steps, and this node loads it - but the interesting decision is how. It refuses to bake the adapter into your diffusion weights. Instead it hooks the model for the duration of each denoise call, then unhooks itself.

That's not fussiness. It's the whole reason the node exists.

Why an unmerged adapter is the right call

A LoRA is a low-rank patch, not a model; the base weights stay frozen and the patch applies at load time. With a full-precision base, merging has been normal practice for years. With this workflow's default INT8 diffusion weights it's a bad trade: applying a LoRA to a quantized checkpoint means dequantizing, patching and requantizing every layer it touches, and you don't get the original quality back out. Merge a 680 MB distillation adapter into an INT8 model and you've silently requantized the adapter too.

So the node keeps it live as a side branch. The adapter contributes to each active layer during sampling and disappears afterward, untouched by whatever quantization the base model uses. The pack's own source spells out the intent at the top of qwen_turbo.py: "The adapter remains a side branch; it must not be merged/requantized into INT8."

Turbo adapters are also not a cosmetic LoRA. Distilled students are trained against a specific trajectory - few, large jumps instead of many small ones - and the trained schedule and baked-in guidance are part of the deal. That's why the sibling Sampler node fixes steps and CFG instead of exposing them. Details on why distillations behave this way are in the knowledge base's distillation essay if you want the long version.

What it does when you hit queue

The loader reads the adapter's safetensors metadata, takes rank and LoRA alpha out of lora_adapter_metadata and scales the B matrices by alpha / rank - which is why there's no strength widget: it runs at trained strength. It also checks the file really is the Viggle adapter (it wants the gate_layer keys), clones the model with a version tag in model_options, and refuses to stack itself twice: The Qwen Turbo adapter is already applied.

Each sampling call installs forward hooks on the target linear layers - plus a workaround for ComfyUI's fused SwiGLU, where the fused out layer bypasses normal hooks - and tears them all down afterward, even when setup fails partway.

Inputs and outputs

Two inputs, both from the brief's schema:

  • model (MODEL) - the Qwen Image 2.1 diffusion model, straight from your loader (Prompt Studio Model Loader in a [PS] workflow).
  • lora_name - a dropdown from your models/loras folder. Pick the Viggle adapter, not one of your style LoRAs. Choose wrong and the node tells you outright: Select the Viggle Qwen Image 2.1 v0.3 adapter.

Output is a single MODEL you wire into Qwen Image 2.1 Turbo v0.3 Sampler. Order matters here: put your own LoRAs (character, style) upstream of this node, through the Prompt Studio LoRA Loader or a plain LoRA loader. Downstream of the Turbo adapter, the sampler will reject the model.

Install

Install the pack the normal way, then get the weights:

cd ComfyUI/custom_nodes
git clone https://github.com/tiko13/ComfyUI_PromptStudio
# restart ComfyUI

Or search ComfyUI_PromptStudio in ComfyUI Manager and restart. The pack adds no runtime pip requirements of its own, so there's nothing to pip install. The adapter isn't bundled - it's 679 MB and the setup wizard downloads it, with a pinned checksum, to:

ComfyUI/models/loras/QwenImage21/_Qwen-Image-2.1-viggle-turbo-v0.3-6step-lora-r128.safetensors

You still need the Qwen 2.1 diffusion model (INT8 and BF16 are both offered), the Qwen3-VL 8B text encoder and the native Qwen 2.1 VAE. Give Qwen 2.1 a read before you commit: it's under the Qwen Research License - research and evaluation only, commercial use needs a separate licence from Alibaba - and the wizard makes you accept that per workflow.

Where people get burned

Two error messages cover most of it, and both are the node being more specific than you'll expect: a non-Viggle LoRA gives you the "select the Viggle adapter" line, and double-applying gives you the "already applied" one. Neither is a silent quality regression, which is a nice change.

The subtler trap is looking for the adapter in Prompt Studio's own LoRA picker. It isn't there - the pack ships the file with a leading underscore, and Prompt Studio reserves _-prefixed LoRAs for internal use and hides them from its Studio-facing list. Select it here instead, in this node's own lora_name widget.

One honest caveat: community coverage is thin. Qwen Image 2.1 is new enough that Reddit has a handful of mentions, not hundreds, so you're early rather than following a crowd. Lean on the errors this node raises - they're unusually precise.

CategoryPrompt Studio

Inputs (2)

NameTypeDefaultDescription
modelMODEL—
lora_nameCOMBO0 options:

Outputs (1)

NameTypeDescription
MODELMODEL—