Turbo8: 8-step LoRA for Qwen-Image-2.1

Built with Qwen. Turbo8 is a step-distillation LoRA for Qwen-Image-2.1. It generates in 8 steps with no CFG instead of the base model's 40, about 5Γ— faster. It covers everything the base model does:

  • text-to-image, up to native 2K
  • text rendering, in English and Chinese
  • image editing, with up to 10 reference images
  • transparent (RGBA) generation and subject extraction

showcase

All samples use Turbo8 with 8 steps and cfg 1 at 1024Β², first seed, with no cherry-picking within a prompt. The prompts were chosen for display from the held-out evaluation set.

Usage

ComfyUI

  1. Put turbo8_lora_step2500.safetensors in ComfyUI/models/loras/.
  2. Load comfyui/turbo8_t2i.json (text-to-image and RGBA) or comfyui/turbo8_edit.json (editing and extraction).
  3. Keep steps 8, cfg 1, sampler euler, scheduler simple.

The T2I workflow includes a ModelSamplingFlux node (max_shift 0.6935, base_shift 0.5), wired to width and height. It reproduces the resolution-dependent noise schedule the LoRA was trained with, including at 2K. Tested with ComfyUI 0.36.0's native Qwen-Image-2.1 support: all 227 LoRA layers map, and a 1024Β² image takes about 4 s on an RTX PRO 6000.

Diffusers

import torch
from diffusers import FlowMatchEulerDiscreteScheduler, QwenImage21Pipeline

base = "Qwen/Qwen-Image-2.1"
scheduler = FlowMatchEulerDiscreteScheduler.from_pretrained(base, subfolder="scheduler", shift_terminal=None)
pipe = QwenImage21Pipeline.from_pretrained(base, scheduler=scheduler, torch_dtype=torch.bfloat16)
pipe.load_lora_weights("chriswritescode/Turbo8-LoRA-Qwen-Image-2.1", weight_name="turbo8_lora_step2500.safetensors")
pipe.to("cuda")

image = pipe(
    prompt='A cozy bakery storefront with a carved wooden sign reading "Fresh Baked Daily"',
    num_inference_steps=8,
    generator=torch.Generator("cuda").manual_seed(0),
).images[0]
image.save("turbo8.png")

shift_terminal=None is required. The LoRA was distilled on the base schedule without the terminal stretch.

Prompt templates (same as the base model)

  • Transparent image: This is an RGBA image with transparency. {description}. The image has alpha channel and the background is transparent.
  • Subject extraction (pass the photo as the input image): This is an RGBA image with transparency. Extract the {subject} from the photo. The image has alpha channel and the background is transparent.

Evaluation

Offline evaluation on 192 held-out prompts: 64 DrawBench prompts plus 24 extra seeds for diversity, 40 text-rendering prompts (7 in Chinese), 24 GenEval-subject RGBA prompts, 24 OmniEdit edits and 16 extractions. The teacher is the base model at 40 steps.

Metric Teacher (40 steps) Turbo8 (8 steps)
PickScore, T2I 22.15 21.94
CLIPScore, T2I 26.89 26.89
PickScore, RGBA 20.51 20.07
Text exact match (OCR by Qwen3-VL) 95.0% 75.0%
Text character accuracy 99.6% 95.3%
Transparency rate (RGBA + extraction) 0.875 0.925
Seed diversity (DINOv2 similarity, lower = more varied) 0.705 0.670
Edit similarity to teacher (DINOv2) β€” 0.967
Extraction alpha IoU vs teacher β€” 0.85

teacher vs Turbo8

Teacher at 40 steps (upper row of each pair) against Turbo8 at 8 steps (lower row), same seed. Samples cover T2I, text, edits, RGBA and extraction.

Limitations

  • Dense or long text (paragraphs, small print) degrades much more than at 40 steps. Short headlines, signs and labels are reliable.
  • On some busy scenes, the composition can differ from the teacher's at the same seed.
  • Extraction inherits the base model's failure cases: in the evaluation, 3 of 16 extractions came out empty for both teacher and Turbo8. Turbo8 sometimes includes more surrounding context in the cutout than the teacher.
  • Tuned for 8 steps and cfg 1. Using more steps, or cfg above 1, does not improve results.

Training

  • Method: three stages.
    1. Teacher trajectories: 3,100 fixed-noise 40-step teacher renders, recorded at the student's 8 noise levels.
    2. ODE initialization: 3,000 steps of trajectory regression.
    3. DMD2 fine-tuning: 2,500 steps of distribution matching with a fake-score critic, a GAN head on the critic's features with teacher renders as real samples, and the trajectory regression kept on as an anchor (weight 6), with task-balanced generator updates.
  • LoRA: rank 128, alpha 128, on attention, MLP, modulation and timestep-embedding layers. The critic is a second LoRA on the same frozen transformer.
  • Data:
    • prompts from k-mktr/improved-flux-prompts and PartiPrompts;
    • edits from TIGER-Lab/OmniEdit-Filtered-1.2M (o_score β‰₯ 9);
    • synthetic RGBA subjects, extraction and transparent-edit sets;
    • about 860 text-rendering prompts written by Qwen3-VL.
    • Training was 1 MP plus 2K; all targets come from the teacher itself.
  • Hardware: one RTX PRO 6000 Blackwell (96 GB) for training, and one RTX 6000 Ada for trajectories and evaluation.

License

Turbo8 is a derivative of Qwen-Image-2.1 and is released under the Qwen Research License: non-commercial research and evaluation use only. For commercial use, obtain a license from Qwen (model-business@notice.qwencloud.com). See NOTICE.

Qwen is licensed under the Qwen RESEARCH LICENSE AGREEMENT, Copyright (c) 2026 Hangzhou Tongyi Laboratory Technology Co., Ltd. All Rights Reserved.

Downloads last month
23,653
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for chriswritescode/Turbo8-LoRA-Qwen-Image-2.1

Adapter
(148)
this model

Spaces using chriswritescode/Turbo8-LoRA-Qwen-Image-2.1 4