Instructions to use chriswritescode/Turbo8-LoRA-Qwen-Image-2.1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use chriswritescode/Turbo8-LoRA-Qwen-Image-2.1 with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("Qwen/Qwen-Image-2.1", dtype=torch.bfloat16, device_map="cuda") pipe.load_lora_weights("chriswritescode/Turbo8-LoRA-Qwen-Image-2.1") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- Draw Things
- DiffusionBee
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
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
- Put
turbo8_lora_step2500.safetensorsinComfyUI/models/loras/. - Load
comfyui/turbo8_t2i.json(text-to-image and RGBA) orcomfyui/turbo8_edit.json(editing and extraction). - 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 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.
- Teacher trajectories: 3,100 fixed-noise 40-step teacher renders, recorded at the student's 8 noise levels.
- ODE initialization: 3,000 steps of trajectory regression.
- 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
Model tree for chriswritescode/Turbo8-LoRA-Qwen-Image-2.1
Base model
Qwen/Qwen-Image-2.1
