Qwen-Image 2.1 Lightning v2 RL: 4-Step Full Weights

Introduction
Four steps, one guidance pass, three jobs. The LightX2V team (ModelTC) published Qwen-Image-2.1-Lightning-v2-RL on Hugging Face on Nov 2: repo created at 11:54 UTC, weights uploaded at 12:12 UTC. It's a distilled version of Alibaba's Qwen-Image 2.1, refined with reinforcement learning. It does text-to-image, single-reference editing and multi-reference generation in 4 denoising steps at CFG 1.0.
It's open weights under the Qwen Research License, so it inherits Qwen-Image 2.1's non-commercial terms. You can run it today in Diffusers (QwenImage21Pipeline). There's no ComfyUI-format file yet.
One thing to know before you download: some posts call this a "V2 LoRA", but it isn't one. The October Lightning v1 was a 67 MB LoRA (we covered it here: https://artrealmai.com/article/qwen-image-2-1-lightning-4-step-lora-lightx2v). v2 RL ships the whole transformer as one diffusion_pytorch_model.safetensors.
What shipped
- Model: Qwen-Image-2.1-Lightning-v2-RL by LightX2V / ModelTC
- Base: Qwen/Qwen-Image-2.1, listed as a finetune
- Method: Lightning v2 distillation, then an RL pass using LightX2V's open
lightx2v_rlcode - Tasks: text-to-image, single-reference edit, multi-reference composite (references are passed in the order your prompt names them)
- Steps / guidance: 4 steps,
true_cfg_scale1.0, KV cache on - File: one 28.46 GB transformer checkpoint stored in FP32. The authors say to load it in BF16, which works out to about 14 GB, the same size as Comfy-Org's bf16 Qwen-Image 2.1 transformer.
- Not included: text encoder, VAE and processor. These still come from the original Qwen-Image 2.1 pipeline, and you swap in the new transformer.
- License: Qwen Research License (non-commercial)
The sigma schedule is the whole trick
This is where most people will trip up. v2 RL ships an inference_config.json with a fixed, already-shifted schedule:
- Sigmas: 1.0 → 0.95418 → 0.89508 → 0.704534 (the scheduler adds the final 0)
- Scheduler: FlowMatch Euler, shift 1.0, dynamic shifting off
The model card is blunt about it: setting num_inference_steps=4 on its own won't reproduce this schedule, and you shouldn't shift it a second time. That's also a change from v1, which used evenly spaced sigmas (1.0 / 0.75 / 0.5 / 0.25) with exponential dynamic shifting. Don't reuse your v1 settings.
Run it in Diffusers
Install a recent Diffusers build, as the model card asks:
pip install git+https://github.com/huggingface/diffusers.git
pip install "transformers>=5.17.0" accelerate safetensors pillow
hf download lightx2v/Qwen-Image-2.1-Lightning-v2-RL --local-dir ./lightning-v2-rlThen swap the transformer into the stock pipeline and use the shipped schedule:
import json, torch
from pathlib import Path
from diffusers import FlowMatchEulerDiscreteScheduler, QwenImage21Pipeline, QwenImage21Transformer2DModel
MODEL_DIR = "./lightning-v2-rl"
cfg = json.loads((Path(MODEL_DIR) / "inference_config.json").read_text())
transformer = QwenImage21Transformer2DModel.from_pretrained(MODEL_DIR, torch_dtype=torch.bfloat16)
pipe = QwenImage21Pipeline.from_pretrained(cfg["base_model"], transformer=transformer, torch_dtype=torch.bfloat16)
pipe.scheduler = FlowMatchEulerDiscreteScheduler(**cfg["scheduler"]) # sigmas are pre-shifted
pipe.to("cuda")
image = pipe(
prompt="A rusted bicycle leaning against a stone wall in heavy rain, shallow puddles reflecting the frame, soft overcast light",
width=1024, height=1024,
sigmas=cfg["sample_sigmas"], num_inference_steps=len(cfg["sample_sigmas"]),
true_cfg_scale=cfg["true_cfg_scale"], use_kv_cache=cfg["use_kv_cache"],
generator=torch.Generator("cpu").manual_seed(42),
).images[0]
image.save("t2i.png")To edit an image, pass image=[reference]. For a multi-reference composite, pass image=[person, jacket] and name them in that order in your prompt, for example "the person from image 1 wearing the jacket from image 2". Width and height have to be multiples of 32.
How it compares
The model card puts v2 RL at 4 steps side by side with the original Qwen-Image 2.1 at 40-step Euler. Both runs use CFG 1.0, the same long enhanced prompts and 1024×1024 output. There are two text-to-image scenes, two single-reference edits and two multi-reference composites, and all the prompts and full-size PNGs are in the repo's assets/comparison/ folder. That's ten times fewer steps, and judging by the examples it gets you most of the way there. These are hand-picked examples, though, not a benchmark score.
Caveats
- ComfyUI: there's no Comfy-format file or official workflow yet. The checkpoint is in Diffusers layout, and the schedule depends on custom sigmas. v1 got community ComfyUI, GGUF and Diffusers repacks within a day, so keep an eye on HF.
- Size: it's a 28 GB download, and you still need the base Qwen-Image 2.1 text encoder and VAE. A LoRA would have been far lighter.
- Non-commercial license, the same as the Qwen-Image 2.1 base.
- Fine detail: the authors say small text, anatomy, object counts and exact reference matching can still need checking, and results vary by seed.
- Brand new: no downloads were recorded yet and 9 likes when I checked.
Original Source
- Model card and weights: https://huggingface.co/lightx2v/Qwen-Image-2.1-Lightning-v2-RL
- LightX2V (incl. lightx2v_rl): https://github.com/ModelTC/LightX2V
- Lightning v1 LoRA: https://huggingface.co/lightx2v/Qwen-Image-2.1-Lightning
- Base model: https://huggingface.co/Qwen/Qwen-Image-2.1
Conclusion
Lightning v1 showed Qwen-Image 2.1 could work in four steps. v2 RL refines that with reinforcement learning and covers edits and multi-reference composites in the same 4-step, CFG-1 pass. Use the shipped sigma schedule exactly as it comes, keep the 40-step base around for comparison, and you'll be iterating on ideas much faster. ⚡🖼️
—Aurelia ♡
