Skip to content
,

Pruna P-Q-Image-2.1: Qwen Image 2.1 in 6 Steps With ComfyUI LoRAs (v0.2 Guide)

8โ€“13 minutes

Qwen Image 2.1 is one of the best open image models for text rendering and editing, but at 40 steps with CFG it is slow on a home GPU. Pruna AI’s P-Q-Image-2.1 LoRAs cut that to 6 steps with CFG off, and Pruna says the result is up to 6.3x faster. Version 0.2 adds two 6-step adapters, one of which has Qwen’s prompt enhancer built in, and the official ComfyUI repo ships ready workflows for both text-to-image and image editing. This guide covers which file to pick, where every file goes, the exact ManualSigmas values you must use, editing with up to three reference images, and what to expect on a 16 GB card.

TL;DR

  • What it is: step-distillation LoRAs from Pruna AI that run Qwen Image 2.1 in 6 steps (v0.2) or 8 and 5 steps (v0.1), with CFG 1 and no negative prompt.
  • Best pick: p_q_image_2.1_6_steps_v0.2_comfyui_bf16.safetensors for editing, the upsampled version for short text-to-image prompts.
  • Folder: ComfyUI/models/loras/, loaded with the core LoraLoaderModelOnly node at strength 1.0.
  • Must-do: use the ManualSigmas schedule for your version. v0.2: 1.0, 0.961054, 0.918949, 0.769302, 0.545554, 0.222292, 0
  • Limits: trained at 1024px, up to 3 edit references, and Pruna calls it “not a finished release”.
  • Licence: Qwen Research License (non-commercial).

What Is P-Q-Image-2.1?

P-Q-Image-2.1 is a set of LoRA adapters from Pruna AI, a company that specialises in making AI models smaller and faster. The adapters sit on top of Qwen Image 2.1 and teach it to make and edit images in far fewer steps, with classifier-free guidance switched off. The text encoder, VAE and pipeline stay exactly the same, so it is not a standalone model. You still need the Qwen Image 2.1 base files.

There are two repos:

Each LoRA is rank 64 across 232 linear layers, trained with alpha 128. The 2x alpha scale is already folded into the weights, which is why strength must stay at exactly 1.0.

The Four LoRAs: Which One to Use

Version Variant Steps Best for
v0.2 6-steps 6 Editing where the input must be preserved. Improves on v0.1 in almost all categories.
v0.2 6-steps-upsampled 6 Text-to-image from short prompts. The prompt enhancer is built in.
v0.1 8-steps 8 The older default. Higher quality than the 5-step.
v0.1 5-steps 5 Maximum speed, with noticeably lower quality.

What “upsampled” means: Qwen recommends running your prompt through a prompt enhancer (an LLM that rewrites a short prompt into a long, detailed one) before generating. That is an extra model call. The upsampled LoRA has learned that rewrite step, so a short prompt like “a cat on a windowsill at sunset” behaves more like a carefully written long one, and you skip the extra call. Pruna notes it may not match the real enhancer exactly.

My pick: start with the v0.2 6-steps-upsampled LoRA for text-to-image and the plain v0.2 6-steps LoRA for editing. Use v0.1 only if you already have workflows built around it.

Files and Folder Paths

The LoRAs

Download from PrunaAI/P-Q-Image-2.1-Comfy (the loras/ folder). Pick the files with comfyui in the name:

  • ComfyUI/models/loras/p_q_image_2.1_6_steps_v0.2_comfyui_bf16.safetensors
  • ComfyUI/models/loras/p_q_image_2.1_6_steps_upsampled_v0.2_comfyui_bf16.safetensors
  • ComfyUI/models/loras/p_q_image_2.1_8_steps_v0.1_comfyui_bf16.safetensors (optional)
  • ComfyUI/models/loras/p_q_image_2.1_5_steps_v0.1_comfyui_bf16.safetensors (optional)

The Qwen Image 2.1 base files

From Comfy-Org/Qwen-Image-2.1. Use the base checkpoint, not the Turbo one:

  • ComfyUI/models/diffusion_models/qwen_image_2.1_int8_convrot.safetensors (or qwen_image_2.1_bf16.safetensors if you have the VRAM)
  • ComfyUI/models/text_encoders/qwen3vl_8b_int8_convrot.safetensors
  • ComfyUI/models/vae/qwen_image_2.1_vae_bf16.safetensors

Your tree should look like this:

ComfyUI/
  models/
    diffusion_models/qwen_image_2.1_int8_convrot.safetensors
    text_encoders/qwen3vl_8b_int8_convrot.safetensors
    vae/qwen_image_2.1_vae_bf16.safetensors
    loras/p_q_image_2.1_6_steps_v0.2_comfyui_bf16.safetensors
    loras/p_q_image_2.1_6_steps_upsampled_v0.2_comfyui_bf16.safetensors

No custom nodes are needed. Everything uses core ComfyUI nodes, so just make sure ComfyUI is up to date for Qwen Image 2.1 support.

Load the Official Workflows

The Comfy repo’s workflows/ folder has six files:

Workflow Use
pruna_q_image_2.1_v0.2_6step_t2i.json v0.2 text-to-image
pruna_q_image_2.1_v0.2_6step_image_edit.json v0.2 image editing
pruna_q_image_2.1_v0.1_8step_t2i.json v0.1 8-step text-to-image
pruna_q_image_2.1_v0.1_8step_image_edit.json v0.1 8-step editing
pruna_q_image_2.1_v0.1_5step_t2i.json v0.1 5-step text-to-image
pruna_q_image_2.1_v0.1_5step_image_edit.json v0.1 5-step editing

Download the one you want and drag it onto the ComfyUI canvas. The v0.2 workflows load the plain 6-steps LoRA. To use the upsampled version, change lora_name in the LoraLoaderModelOnly node to the upsampled file. The sigma schedule stays the same for both v0.2 files.

Settings and ManualSigmas

Setting Value
LoRA loader LoraLoaderModelOnly, strength 1.0 (do not change)
Sampler euler
CFG 1
Negative prompt None (it is ignored at CFG 1)
Sigmas ManualSigmas node with the schedule below
Resolution 1024×1024 (trained at 1K)

The sigma schedule is the part most people get wrong. Each version was trained on its own schedule, and mixing them gives soft or broken images. Paste the exact values into a ManualSigmas node:

v0.2, 6 steps:  1.0, 0.961054, 0.918949, 0.769302, 0.545554, 0.222292, 0
v0.1, 8 steps:  1.0, 0.933333, 0.857143, 0.769231, 0.666667, 0.545455, 0.4, 0.222222, 0
v0.1, 5 steps:  1.0, 0.94, 0.857143, 0.666667, 0.4, 0

The node chain looks like this:

Load Diffusion Model (qwen_image_2.1_int8_convrot)
  -> LoraLoaderModelOnly (p_q_image_2.1_6_steps_v0.2, strength 1.0)
  -> SamplerCustom (euler, CFG 1, sigmas from ManualSigmas)
  -> VAE Decode (qwen_image_2.1_vae_bf16)

Load only one Pruna LoRA at a time. Stacking two step-distill LoRAs does not make it faster; it just breaks the schedule.

Text-to-Image Tips

  • Short prompt? Use the upsampled LoRA. It fills in the detail a prompt enhancer would add.
  • Long, detailed prompt? Either LoRA works. The plain 6-steps one follows your exact words more literally.
  • Text in images: Qwen Image 2.1’s strength is lettering. Put the text in quotes, for example: A glowing neon shop sign that reads "QWEN IMAGE 2.1", mounted on a brick wall in a narrow city alley at night. Heavy rain, wet pavement reflecting pink and blue light, shallow depth of field, cinematic photograph. That is Pruna’s own test prompt.
  • Stay near 1024×1024. 2K may work but is outside the training range. Upscale afterwards instead.
  • v0.1 needs good prompts. Short or vague prompts give weaker results with the older adapters.

Image Editing With Up to 3 References

The v0.2 6-steps LoRA is especially good at edits where the rest of the image must stay the same. Load pruna_q_image_2.1_v0.2_6step_image_edit.json, load your input image, and write the change as an instruction:

  • Change the background to a sunset beach
  • Make the jacket red and keep everything else the same
  • Replace the text on the sign with "OPEN 24 HOURS"

You can feed up to three reference images, for example a person, a product and a background, and describe how to combine them. More than three is outside the training range and quality may drop.

If you also do inpainting or element-level edits, our ComfyArt guide shows a design canvas that runs Qwen Image 2.1 edits for you, and the MOSS-Image Edit LoRA is a lighter Apache-licensed alternative.

Speed: Up to 6.3x Faster

Sampling steps per imageQwen Image 2.1 base vs Pruna P-Q-Image-2.1 LoRAs (adapters run at CFG 1)Qwen Image 2.1 base40 stepsP-Q 8-step (v0.1)8 stepsP-Q 6-step (v0.2)6 stepsP-Q 6-step upsampled (v0.2)6 stepsP-Q 5-step (v0.1)5 stepsSource: PrunaAI/P-Q-Image-2.1 model card. Base benchmarked at 40 steps; up to 6.3x faster (H100).
Pruna’s P-Q-Image-2.1 LoRAs cut Qwen Image 2.1 from 40 sampling steps to 8, 6 or 5, with CFG off.

Pruna’s headline figure is “up to 6.3x faster”. Its benchmarks ran on one NVIDIA H100 80 GB in bf16 at batch size 1, timing the whole request: prompt encoding, reference image processing, denoising and VAE decode. For v0.1, the base model ran 40 steps against 5 or 8 for the adapters. Pruna adds that the timings “do not imply equal image quality”.

The speed comes from two things: 6 steps instead of 40, and CFG 1, which skips the second (negative) model pass at every step. Prompt encoding and VAE decode do not get faster, which is why the end-to-end gain is smaller than the raw step reduction.

Estimate for a 16 GB card like the RTX 5080: with the int8 convrot base and ComfyUI’s offloading, expect roughly 10 to 20 seconds per 1024×1024 image with the 6-step LoRA, compared with well over a minute for the base model at 40 steps with CFG. Edits with several reference images take longer. This is an estimate, not a measured result.

Running It on a 16 GB GPU

  • Use the int8 convrot files. qwen_image_2.1_int8_convrot.safetensors and qwen3vl_8b_int8_convrot.safetensors are the low-memory versions. The bf16 base needs much more VRAM.
  • Let ComfyUI offload the text encoder. It runs once per prompt, so moving it to system RAM costs little time. 32 GB of system RAM is a comfortable minimum.
  • Stay at 1024px. Larger sizes need more VRAM and are outside training anyway.
  • Limit edit references. Each extra reference image adds tokens and memory. Pruna even had to turn off KV caching for 2048×2048 edits with three references on an 80 GB card.

Our Qwen Image 2.1 guide for 16 GB cards has more memory tips that apply here too.

Using It in Diffusers

Pruna’s original repo targets diffusers. It needs a specific diffusers commit for the QwenImage21Pipeline:

pip install 'torch>=2.4.0' 'transformers>=5.17' accelerate peft pillow
pip install git+https://github.com/huggingface/diffusers@6256aa7666cedd47443adc8f82da9a10e110b09c
import torch
from diffusers import FlowMatchEulerDiscreteScheduler, QwenImage21Pipeline

pipe = QwenImage21Pipeline.from_pretrained("Qwen/Qwen-Image-2.1", torch_dtype=torch.bfloat16).to("cuda")
pipe.load_lora_weights("PrunaAI/P-Q-Image-2.1", weight_name="p_q_image_2.1_6_steps_v0.2.safetensors")
pipe.scheduler = FlowMatchEulerDiscreteScheduler.from_config(
    pipe.scheduler.config, use_dynamic_shifting=True, shift_terminal=None)

image = pipe(prompt="A cosy reading nook with a window seat, soft morning light",
             width=1024, height=1024, num_inference_steps=6,
             sigmas=[1.0, 0.925, 0.85, 0.625, 0.375, 0.125],
             true_cfg_scale=1.0, use_kv_cache=True).images[0]
image.save("pq_image.png")

The sigma list here differs from the ComfyUI one because diffusers applies dynamic shifting on top. Do not copy diffusers sigmas into ComfyUI, or the other way round.

Pruna LoRA vs Qwen Image 2.1 Turbo

Pruna P-Q-Image-2.1 (v0.2) Qwen Image 2.1 Turbo
Type LoRA on the base model Separate distilled checkpoint
Extra download One LoRA file A full diffusion model
Editing Yes, up to 3 references, strong at preserving input Depends on the release
Prompt enhancer built in Yes (upsampled variant) No
Status Not a finished release Separate release, see our guide

If you already keep the base model for full-quality work, the Pruna LoRA is the lighter way to add a fast mode: one small file and a different sigma schedule. If you only ever want fast output, a dedicated Turbo checkpoint is the simpler setup. See our Qwen Image 2.1 Turbo workflow to compare.

Limitations

  • Not a finished release. Pruna says to expect the weights to change in future versions.
  • Not full base quality. Distillation does not guarantee identical outputs. Use the base model when you need its full quality.
  • Fixed settings only. Only the stated step counts, sigma schedules and CFG 1 are supported.
  • 1K training. 2K and above may work but quality varies.
  • Three references max for editing.
  • Non-commercial. The adapters are derivatives of Qwen Image 2.1 under the Qwen Research License Agreement.

FAQ

Can I change the LoRA strength?

No. The alpha scale is folded into the weights, so 1.0 is the trained setting. Other values break the distillation.

Why do I need ManualSigmas?

The adapters were trained on specific noise levels. A normal scheduler with 6 steps gives different noise levels and softer or broken images.

Can I use it with the Qwen Image 2.1 Turbo checkpoint?

No. Use the base checkpoint. The LoRA was trained on the base model.

Can I use the images commercially?

The Qwen Research License restricts commercial use. Read the licence in the repo before any commercial work.

Does it need custom nodes?

No. LoraLoaderModelOnly, ManualSigmas and the sampler nodes are all core ComfyUI.

Which is faster, 5 steps or 6 steps?

The v0.1 5-step LoRA is slightly faster, but its images are visibly worse. The v0.2 6-step LoRA is the better trade.

Final Thoughts

Pruna’s P-Q-Image-2.1 v0.2 LoRAs are a simple way to make Qwen Image 2.1 practical on a home GPU. One LoRA file, one ManualSigmas node, CFG 1, and you get 6-step generation and editing with the prompt enhancer built in if you want it. Remember the strict settings, stay near 1024px, and treat it as a fast mode next to the base model rather than a full replacement. For quick drafts, thumbnails and edits, it is a big time saver.

More AI image guides:

Sources