Guía rápida de Qwen Image Edit¶
Esta guía cubre los flavours de edición de Qwen Image que SimpleTuner soporta:
edit-v1– una sola imagen de referencia por ejemplo de entrenamiento. La imagen de referencia se codifica con el codificador de texto Qwen2.5-VL y se cachea como conditioning image embeds.edit-v2(“edit plus”) – hasta tres imágenes de referencia por muestra, codificadas en latentes VAE sobre la marcha.
Ambas variantes heredan la mayor parte de la guía base de Qwen Image; las secciones de abajo se enfocan en lo que es diferente al ajustar los checkpoints de edición.
1. Lista de hardware¶
El modelo base sigue siendo de 20 B parámetros:
| Requisito | Recomendación |
|---|---|
| VRAM GPU | mínimo 24 G (con cuantización int8/nf4) • 40 G+ muy recomendado |
| Precisión | mixed_precision=bf16, base_model_precision=int8-quanto (o nf4-bnb) |
| Tamaño de lote | Debe permanecer en train_batch_size=1; usa acumulación de gradiente para el lote efectivo |
Se aplican todos los demás requisitos de entrenamiento de la guía de Qwen Image (Python ≥ 3.10, imagen CUDA 12.x, etc.).
2. Puntos destacados de configuración¶
Dentro de config/config.json:
Ver ejemplo de config
{
"model_type": "lora",
"model_family": "qwen_image",
"model_flavour": "edit-v1", // o "edit-v2"
"train_batch_size": 1,
"gradient_accumulation_steps": 4,
"validation_resolution": "1024x1024",
"validation_guidance": 4.0,
"validation_num_inference_steps": 30,
"mixed_precision": "bf16",
"gradient_checkpointing": true,
"base_model_precision": "int8-quanto",
"quantize_via": "cpu",
"quantize_activations": false,
"flow_schedule_shift": 1.73,
"data_backend_config": "config/qwen_edit/multidatabackend.json"
}
- EMA corre en CPU por defecto y es seguro dejarlo habilitado a menos que necesites checkpoints más rápidos.
validation_resolutiondebe reducirse (p. ej.,768x768) en tarjetas de 24 G.match_target_respuede agregarse bajomodel_kwargsparaedit-v2si quieres que las imágenes de control hereden la resolución objetivo en lugar del empaquetado por defecto de 1 MP:
Funciones experimentales avanzadas¶
Mostrar detalles experimentales avanzados
SimpleTuner incluye funciones experimentales que pueden mejorar significativamente la estabilidad y el rendimiento del entrenamiento. * **[Scheduled Sampling (Rollout)](../experimental/SCHEDULED_SAMPLING.md):** reduce el sesgo de exposición y mejora la calidad de la salida al permitir que el modelo genere sus propias entradas durante el entrenamiento. > ⚠️ Estas funciones aumentan la sobrecarga computacional del entrenamiento. ---3. Diseño del dataloader¶
Ambos flavours esperan datasets emparejados: una imagen de edición, caption de edición opcional y una o más imágenes de control/referencia que compartan exactamente los mismos nombres de archivo.
Para detalles de campos, consulta conditioning_type y conditioning_data. Si proporcionas múltiples datasets de condicionamiento, elige cómo se muestrean con conditioning_multidataset_sampling en OPTIONS.
3.1 edit‑v1 (una sola imagen de control)¶
El dataset principal debe referenciar un dataset de condicionamiento y un caché de conditioning-image-embeds:
Ver ejemplo de config
[
{
"id": "my-edited-images",
"type": "local",
"instance_data_dir": "/datasets/edited-images",
"caption_strategy": "textfile",
"resolution": 1024,
"conditioning_data": ["my-reference-images"],
"conditioning_image_embeds": "my-reference-embeds",
"cache_dir_vae": "cache/vae/edited-images"
},
{
"id": "my-reference-images",
"type": "local",
"dataset_type": "conditioning",
"instance_data_dir": "/datasets/reference-images",
"conditioning_type": "reference_strict",
"resolution": 1024,
"cache_dir_vae": "cache/vae/reference-images"
},
{
"id": "my-reference-embeds",
"type": "local",
"dataset_type": "conditioning_image_embeds",
"cache_dir": "cache/conditioning_image_embeds/reference"
}
]
Consulta las opciones y requisitos de caption_strategy en DATALOADER.md.
conditioning_type=reference_strictgarantiza que los recortes coincidan con la imagen de edición. Usareference_loosesolo si la referencia puede tener relaciones de aspecto distintas.- La entrada
conditioning_image_embedsalmacena los tokens visuales de Qwen2.5-VL producidos para cada referencia. Si se omite, SimpleTuner creará un caché por defecto encache/conditioning_image_embeds/<dataset_id>.
3.2 edit‑v2 (multi‑control)¶
Para edit-v2, lista cada dataset de control en conditioning_data. Cada entrada proporciona un frame de control adicional. No necesitas un caché de conditioning-image-embeds porque los latentes se calculan al vuelo.
Ver ejemplo de config
[
{
"id": "my-edited-images",
"type": "local",
"instance_data_dir": "/datasets/edited-images",
"caption_strategy": "textfile",
"resolution": 1024,
"conditioning_data": [
"my-reference-images-a",
"my-reference-images-b",
"my-reference-images-c"
],
"cache_dir_vae": "cache/vae/edited-images"
},
{
"id": "my-reference-images-a",
"type": "local",
"dataset_type": "conditioning",
"instance_data_dir": "/datasets/reference-images-a",
"conditioning_type": "reference_strict",
"resolution": 1024,
"cache_dir_vae": "cache/vae/reference-images-a"
},
{
"id": "my-reference-images-b",
"type": "local",
"dataset_type": "conditioning",
"instance_data_dir": "/datasets/reference-images-b",
"conditioning_type": "reference_strict",
"resolution": 1024,
"cache_dir_vae": "cache/vae/reference-images-b"
},
{
"id": "my-reference-images-c",
"type": "local",
"dataset_type": "conditioning",
"instance_data_dir": "/datasets/reference-images-c",
"conditioning_type": "reference_strict",
"resolution": 1024,
"cache_dir_vae": "cache/vae/reference-images-c"
}
]
Usa tantos datasets de control como imágenes de referencia tengas (1–3). SimpleTuner los mantiene alineados por muestra haciendo coincidir los nombres de archivo.
4. Ejecutar el entrenamiento¶
La prueba rápida más simple es ejecutar uno de los presets de ejemplo:
simpletuner train example=qwen_image.edit-v1-lora
# o
simpletuner train example=qwen_image.edit-v2-lora
Para lanzar manualmente:
Consejos¶
- Mantén
caption_dropout_probabilityen0.0a menos que tengas un motivo para entrenar sin la instrucción de edición. - Para trabajos largos, reduce la cadencia de validación (
validation_step_interval) para que las validaciones de edición (costosas) no dominen el tiempo de ejecución. - Los checkpoints de edición de Qwen no traen un guidance head;
validation_guidancesuele estar en el rango 3.5–4.5.
5. Vistas previas de validación¶
Si quieres previsualizar la imagen de referencia junto con la salida de validación, guarda tus pares de edición/referencia de validación en un dataset dedicado (misma estructura que el split de entrenamiento) y configura:
SimpleTuner reutilizará las imágenes de condicionamiento de ese dataset durante la validación.
Solución de problemas¶
ValueError: Control tensor list length does not match batch size– asegúrate de que cada dataset de condicionamiento contenga archivos para todas las imágenes de edición. Carpetas vacías o nombres de archivo que no coinciden provocan este error.- Out of memory durante validación – baja
validation_resolution,validation_num_inference_steps, o cuantiza más (base_model_precision=int2-quanto) antes de reintentar. - Errores de caché no encontrado al usar
edit-v1– verifica que el campoconditioning_image_embedsdel dataset principal coincida con una entrada de dataset de caché existente.
Ya estás listo para adaptar la guía base de Qwen Image al entrenamiento de edición. Para opciones de configuración completas (caché del codificador de texto, muestreo multi-backend, etc.), reutiliza la guía de FLUX_KONTEXT.md – el flujo de emparejamiento de datasets es el mismo, solo cambia la familia del modelo a qwen_image.