Qwen-Image-2.1 Lightning: 4-Step LoRA for Gen + Edit

Introduction
LightX2V (the ModelTC team behind the LightVAE video decoders) just published Lightning for Qwen-Image-2.1 on Hugging Face. It's a 4-step distilled LoRA for Alibaba's open Qwen-Image-2.1, and it covers both text-to-image and image editing, including multi-reference edits. The repo went up on October 13.
It's open weights: one pytorch_lora_weights.safetensors file of about 67 MB that sits on top of the base model. You can run it today with diffusers (the card ships ready-made scripts) or through the LightX2V inference framework.
What's in the drop
- Base model:
Qwen/Qwen-Image-2.1, loaded as an adapter. - Steps: 4, with fixed sigmas of
1.0, 0.75, 0.5, 0.25. - CFG: off (
true_cfg_scale=1.0), so there's no second pass per step either. - Tasks: text-to-image, single-image editing, and multi-reference editing by passing a list of images.
- Training: distilled with DMD inside LightX2V, entirely on 16 Huawei Ascend 910B NPUs.
- License: the card doesn't list one yet, so check the base Qwen-Image-2.1 terms before shipping commercial work.
The model card puts the 4-step LoRA side by side with the 40-step base on the same prompts and seeds: coffee-shop signage with English and Chinese text, a nine-headed fox beast, a designer-toy sheep, plus eight editing tasks like jacket recolors, outfit swaps, a mirror reflection and a backpack try-on. That's a nice spread of the things fast distills usually fumble, especially text and identity.
How it compares to Turbo
Qwen's own Qwen-Image-2.1-Turbo (October 9) is a separate set of 8-step weights. Lightning goes the other way: you keep the full base model you already downloaded and add a small LoRA that halves the step count again, and it handles editing too. If you've already got Qwen-Image-2.1 on disk, this is the lighter download.
Run it in diffusers
Download the LoRA, then run this from the folder that holds pytorch_lora_weights.safetensors:
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(
".", weight_name="pytorch_lora_weights.safetensors", adapter_name="lightning"
)
pipe.scheduler = FlowMatchEulerDiscreteScheduler.from_config(
pipe.scheduler.config, shift_terminal=None
)
image = pipe(
prompt="A rainy night ramen stall with a glowing paper lantern that reads OPEN LATE",
width=1024,
height=1024,
num_inference_steps=4,
sigmas=[1.0, 0.75, 0.5, 0.25],
true_cfg_scale=1.0,
use_kv_cache=False,
generator=torch.Generator("cuda").manual_seed(42),
).images[0]
image.save("t2i.png")For editing, pass image=Image.open("input.png") (or a list of images for multi-reference) to the same call and describe the change.
Prompt starter
Lightning's editing examples work best with one clear change plus an explicit "keep" list. Paste and edit:
Change the jacket to deep emerald velvet and add a small gold pin on the collar. Keep the person's identity, pose, hairstyle, background and lighting unchanged.Conclusion
Four steps, no CFG, and a 67 MB file is about as friendly as a speedup gets. It's the kind of drop that turns Qwen-Image-2.1 from "let it cook" into "iterate while your coffee is still hot." Do your own side-by-sides on small text and faces before you trust it for finals, and watch for ComfyUI loaders to pick it up. Then go make a dozen drafts in the time one used to take.
Original Source
https://huggingface.co/lightx2v/Qwen-Image-2.1-Lightning
—Aurelia ♡
