Qwen-Image-2.1-Turbo: el mismo 7B en 8 pasos — cómo correrlo en local y la licencia que hereda
TL;DR
- Verificado (README del repo, model card y LICENSE, consultados el 10-oct-2026): Qwen publicó el 09-oct-2026 Qwen-Image-2.1-Turbo, un checkpoint acelerado del mismo modelo de 7B: generación y edición de imagen en 8 pasos de denoising, frente a los 40 por defecto del base. El checkpoint lleva su propio sampling schedule guardado — Diffusers lo carga automáticamente y
num_inference_stepspor sí solo no lo sobreescribe — y genera con CFG=1 por defecto. El mismo día se activaron las APIs oficiales Pro y Turbo en Alibaba Cloud Model Studio. - Lo que no hay: ninguna métrica publicada de calidad Turbo-8-pasos vs base-40-pasos. Ni tabla de regresión en el README ni en el model card. Que 40 entre 8 sea 5 es aritmética sobre defaults, no un benchmark de velocidad medido: el “5× más rápido” que ya circula no lo respalda ninguna fuente primaria.
- Cómo correrlo en local hoy: Diffusers con soporte de sigmas configurados por pipeline (PR #14950 — versión de main), pesos bf16 (14,2 GB solo el transformer), cuantización INT8-ConvRot de unsloth (7,26 GB, LPIPS 0,037 same-seed contra el bf16) o ComfyUI con el repack de Comfy-Org — que vive dentro del repo del base, no en un repo Turbo aparte.
- La trampa que hereda: licencia
qwen-research, la misma research-only que desgranamos en la pieza del base: sin uso comercial salvo licencia aparte, “Built with Qwen” obligatorio en derivados y jurisdicción de Hangzhou. La vía comercial que Qwen pone encima de la mesa es su API de pago.
Qué es Turbo (y qué no es)
Turbo no es un modelo nuevo: es el mismo DiT single-stream de 7B del componente visual de Qwen-Image-2.1, servido en otro checkpoint. El model card lo dice literal: “an accelerated checkpoint of Qwen-Image-2.1 for text-to-image generation and image editing with 8 denoising steps”, misma arquitectura y carga directa con QwenImage21Pipeline en Diffusers. Los metadatos de la ficha lo anclan: base_model: Qwen/Qwen-Image-2.1.
Lo que cambia, verificado en las fuentes:
| Qwen-Image-2.1 (base) | Qwen-Image-2.1-Turbo | |
|---|---|---|
| Pasos | 40 por defecto (README, “Default Parameters”) | 8, con el schedule guardado en el checkpoint |
| Schedule | Configurable en la llamada | Incluido; override solo con un sigmas explícito |
| KV cache de prefijo | Automático con causal_condition: true (default) | Igual; los ejemplos lo piden explícito con use_kv_cache=True |
| Presets de resolución | 2048 nativo más 6 formatos | Los mismos |
| Transformer bf16 | 14,2 GB | 14,2 GB (mismo tamaño de fichero en el tree de Comfy-Org) |
| Licencia | qwen-research | qwen-research (heredada) |
Dos cosas que Turbo no es. No es un modelo más pequeño: el encoder Qwen3-VL 8B sigue viajando con el modelo, y el “7B” del titular no es la VRAM total — el mismo matiz que ya hicimos con el base. Y no declara su método: ni README ni model card explican cómo se aceleró (destilación de pasos, cambio de schedule, una combinación — no consta). En el terreno few-step, el estado del arte trabaja sobre todo por destilación — DuoMatching es exactamente ese enfoque aplicado a vídeo, y UniEVO-VL post-entrena la familia Qwen-Image — pero atribuirle a Turbo cualquiera de esas recetas sería especular: no está en las fuentes.
El 5× que no es (todavía)
- El “40 → 8” es aritmética sobre los defaults de cada checkpoint. Ninguna fuente primaria publica wall-clock, throughput ni VRAM medida con hardware concreto.
- Tampoco hay comparativa de calidad Turbo vs base: la evidencia pública del vendor son los showcases del model card (“Examples from the 8-step outputs in our Turbo showcase”), que es exactamente el nivel de evidencia que este sitio no da por buena.
- El “significant speedup” del prefix KV cache es wording del vendor en el README, atribuido tal cual. Y tampoco es novedad de Turbo: es el mismo mecanismo del base (la condición texto+imágenes se codifica una vez y se reutiliza en todos los pasos; relevante sobre todo en edición con varias imágenes de referencia).
- El único número cuantitativo que está rodando por ahí es de unsloth, y mide otra cosa: LPIPS same-seed de sus cuantizaciones contra el bf16 de Turbo — 0,037 INT8-ConvRot, 0,089 INT8, 0,125 FP8. No sirve para comparar Turbo contra el base: no es eso lo que mide.
- Color de comunidad: existe una LoRA de 6 pasos (
isHeSatoshi/Qwen-Image-2.1-turbo-v0.2.1-6step-lora-r128, 1.794 descargas y 8 likes al 10-oct-2026, según la API de Hugging Face). Existencia verificada; calidad, sin evaluación. Detalle curioso: la ficha se creó el 02-oct, una semana antes del release oficial — sobre qué base exacta se entrenó, no lo podemos verificar.
Cómo correrlo en local hoy
Diffusers (la vía oficial)
pip install "torch>=2.4.0" "transformers>=5.17" accelerate pillow
pip install git+https://github.com/huggingface/diffusers
Ojo al segundo comando: el checkpoint requiere Diffusers con soporte de pipeline-configured sampling sigmas (PR #14950) y así lo dicen el README y el model card — la versión estable puede quedarse corta; Diffusers, desde main.
import torch
from diffusers import QwenImage21Pipeline
pipe = QwenImage21Pipeline.from_pretrained(
"Qwen/Qwen-Image-2.1-Turbo",
dtype=torch.bfloat16,
).to("cuda")
image = pipe(
prompt=prompt,
use_kv_cache=True,
generator=torch.Generator("cpu").manual_seed(42),
).images[0]
Tres notas que ahorran sorpresas:
- No pases
num_inference_stepsesperando controlar la velocidad: el schedule guardado manda (“Settingnum_inference_stepsalone does not override Turbo’s saved schedule”). Para experimentar, el override es unsigmasexplícito en la llamada — y sobre schedules alternativos, palabra literal del model card: “other schedules have not been evaluated”. - La edición por imagen usa el mismo pipeline añadiendo
image=a la llamada; los ejemplos del repo mezclan generación a 1680×2512 y edición a 2048×2048. - VRAM: el transformer bf16 pesa 14,2 GB y el encoder de 8B va aparte; ninguna fuente primaria publica el total. Para GPUs ajustadas, el pipeline ofrece model CPU offload, documentado en el README del repo.
Cuantizado, para GPUs de consumo
El camino corto son los cuants de unsloth sobre este mismo checkpoint (build desde la revisión d65dbc9 del repo oficial):
| Fichero | Tamaño | Scheme | LPIPS vs bf16 Turbo |
|---|---|---|---|
Qwen-Image-2.1-Turbo-INT8-ConvRot.safetensors | 7,26 GB | INT8 W8A8, rotación Hadamard group-256 | 0,037 (el recomendado) |
Qwen-Image-2.1-Turbo-INT8.safetensors | 7,26 GB | INT8 W8A8, sin rotación | 0,089 |
Qwen-Image-2.1-Turbo-FP8.safetensors | 7,12 GB | FP8 e4m3, escalas por fila | 0,125 |
La metodología, del propio unsloth: LPIPS (AlexNet) same-seed contra el transformer bf16 de Turbo, a 8 pasos, CFG 1, el schedule de serie y 1024×1024, con 8 prompts × 2 seeds. El text encoder es byte-idéntico y el VAE idéntico en bf16 a los del base, así que se reutilizan los de unsloth/Qwen-Image-2.1-FP8. Mismo requisito de Diffusers desde main.
ComfyUI (con el matiz del repo compartido)
No busques un repo Comfy-Org/Qwen-Image-2.1-Turbo: no existe. Los pesos Turbo viven dentro del repo que ya conocías, Comfy-Org/Qwen-Image-2.1, verificados en el tree a 10-oct-2026:
diffusion_models/qwen_image_2.1_turbo_bf16.safetensors— 14,2 GBdiffusion_models/qwen_image_2.1_turbo_int8_convrot.safetensors— 7,26 GBloras/qwen_image_2.1_turbo_lora_avg_rank_178_bf16.safetensors— 913 MB
Los del base conviven en los mismos directorios: un solo repo, dos checkpoints por precisión.
GGUF
unsloth/Qwen-Image-2.1-Turbo-GGUF ya está publicado (ficha verificada a 10-oct-2026). No hemos auditado sus variantes ni mediciones: existe, punto.
La licencia que hereda
Turbo no cambia el marco legal: license_name: qwen-research en su ficha y el mismo Qwen RESEARCH LICENSE AGREEMENT — release date 20-sep-2026 — que el base. Lo esencial ya lo desgranamos en la pieza del base: el §2 limita uso, distribución y derivados a “research or evaluation purposes only”, y lo comercial exige licencia aparte ([email protected]); el §4b obliga a lucir “Built with Qwen” en derivados distribuidos; el §4c prohíbe llamar “Qwen” a tu derivado; el §8 pone ley china y tribunales de Hangzhou.
Dos implicaciones concretas de este release:
- Los cuants heredan la trampa. La ficha de unsloth FP8/INT8 declara
license_name: qwen-researchcon enlace al LICENSE del repo de Qwen — y no hay razón para esperar otra cosa en los GGUF, aunque no hemos auditado ficha por ficha. Redistribuir los pesos con el acuerdo adjunto entra en lo que permite el §3; usarlos en un producto, no. - La vía comercial existe — y es la API. El mismo 09-oct, Qwen activó las APIs Pro y Turbo en Alibaba Cloud Model Studio. Es la estrategia dual de siempre: pesos abiertos para research y dev local, facturación por API para quien necesita producción, con el problema de licencia ya resuelto por el vendor. (Precios y términos de la API: no verificados en esta pieza a 10-oct-2026.)
Qué haría yo
- Si tu flujo ya corre el base en Diffusers: probar Turbo es cambiar el string del checkpoint y quitar
num_inference_steps. Mide tu wall-clock y compara calidad con tus propios prompts — es exactamente el benchmark que ni Qwen ni nadie ha publicado. - Si vas montado en ComfyUI: descarga el
turbo_int8_convrotdel repo compartido (7,26 GB) y ahorrate la búsqueda de un repo Turbo que no existe. - Si la GPU es justa: INT8-ConvRot de unsloth — con la letra pequeña en la cabeza: LPIPS same-seed mide fidelidad a la salida bf16 del mismo Turbo, no calidad intrínseca, y la metodología son 8 prompts × 2 seeds.
- Si tu caso es comercial: en los pesos no hay novedad para ti. O API oficial (asumiendo sus términos), o la v1 Apache-2.0, que sigue siendo la única Qwen de imagen con licencia permisiva.
- Lo que no haría: citar el “5×” en ningún documento. Nadie lo ha medido.
Qué falta por medir
- Calidad Turbo-8 vs base-40: sin tabla del vendor y sin evaluación independiente a 10-oct-2026.
- Wall-clock y VRAM reales en hardware consumer: nadie publica cifras; el “5×” sigue siendo aritmética de defaults.
- El ahorro concreto del KV cache en edición multi-referencia: “significant speedup” es su palabra, no un número.
- Schedules alternativos: “not evaluated”, literal.
- Precios y términos de la API Turbo: fuera del alcance de esta pieza; verifícalos antes de decidir producción.
Fuentes
- Primarias (consultadas el 10-oct-2026): README del repo QwenLM/Qwen-Image-2.1 (News, ejemplo Turbo, Default Parameters, Prefix KV Cache) · model card de Qwen/Qwen-Image-2.1-Turbo (muestreo, CFG, licencia) · LICENSE — Qwen RESEARCH LICENSE AGREEMENT · model card de unsloth/Qwen-Image-2.1-Turbo-FP8 (tamaños, schemes, LPIPS y metodología) · tree de Comfy-Org/Qwen-Image-2.1 (ficheros Turbo) · PR #14950 de Diffusers (sigmas configurados por pipeline).
- Métricas de comunidad: API de Hugging Face, consultada el 10-oct-2026.