Skip to main content

Ajuste fino de modelos de generación de imágenes

Al utilizar Wan para la generación de imágenes, si la guía de indicaciones de Texto a video/Imagen a video no puede satisfacer sus necesidades de personalización para estilos específicos, personajes de IP o efectos visuales, utilice el ajuste fino del modelo.

Ámbito

  • Región admitida: Este documento se aplica únicamente a la región de Singapore. Debe utilizar una clave de API de esta región.
  • Método de ajuste fino admitido: Ajuste fino eficiente SFT-LoRA.
  • Modelos compatibles:
    • Generación de imágenes Wan (texto a imagen/imagen a imagen): wan2.7-image-pro, wan2.7-image.
    • Generación de imágenes Qwen (texto a imagen/imagen a imagen): qwen-image-2.0, qwen-image-2.0-pro.
Los modelos Wan y Qwen comparten el mismo flujo de trabajo de ajuste fino y formato de conjunto de datos. Solo difieren en los hiperparámetros y la fórmula de facturación de entrenamiento: Wan controla el entrenamiento por el número de pasos (max_steps), mientras que Qwen lo controla por el número de épocas (n_epochs). Ambas familias de modelos admiten entrenamiento de texto a imagen, de imagen a imagen y de múltiples imágenes a imagen. Los ejemplos en este tema utilizan modelos Wan de forma predeterminada. Las diferencias para Qwen se señalan en las secciones correspondientes.

Cómo ajustar finamente un modelo

  • Texto a imagen
  • Imagen a imagen
Objetivo de ajuste fino: Entrenar un modelo LoRA de personaje.Resultado esperado: Dado un prompt de texto, el modelo genera imágenes de un personaje específico en la escena descrita por el prompt.
Prompt de entradaUna persona en un vagón de metro abarrotado durante la hora pico matutina, sujetándose del pasamanos, con pasajeros desenfocados al fondo y luces del túnel visibles a través de las ventanas, vistiendo una camisa blanca y pantalones negros típicos de oficinista, de pie frente a la cámara, toma de medio cuerpo, sensación realista de foto espontánea.Imagen de salida (antes del ajuste fino - texto a imagen)
7217b6ac-789d-43c3-aaa5-22647532de52_0
Sin una imagen de referencia, el modelo no puede generar un personaje específico.
Imagen de salida (después del ajuste fino)
1_24
Después del ajuste fino, el modelo puede reproducir de manera confiable el personaje específico del conjunto de entrenamiento.
Antes de ejecutar el siguiente código, Obtenga una clave API y Configure la clave API como variable de entorno.

Paso 1: Cargar el conjunto de datos

Cargue su conjunto de datos local (en formato .zip) en la plataforma Alibaba Cloud Model Studio y obtenga el ID del archivo (id). Datos de entrenamiento de muestra: Para el formato, consulte Conjunto de entrenamiento. Ejemplo de solicitud
Este ejemplo utiliza texto a imagen y carga solo el conjunto de entrenamiento. El sistema divide automáticamente una parte del conjunto de entrenamiento como conjunto de validación.
curl --location --request POST 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/files' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--form 'file=@"./wan-image-t2i-training-dataset.zip"' \
--form 'purpose="fine-tune"'
Ejemplo de respuesta Guarde el id. Este es el identificador único para el conjunto de datos cargado.
{
    "id": "file-ft-3c67043a747c-xxxxxx",
    "object": "file",
    "bytes": 73310369,
    "filename": "wan-image-t2i-training-dataset.zip",
    "purpose": "fine-tune",
    "status": "processed",
    "created_at": 1782271893
}

Paso 2: Ajustar finamente el modelo

Paso 2.1: Crear un trabajo de ajuste fino
Utilice el ID de archivo del Paso 1 para iniciar un trabajo de entrenamiento. Ejemplo de solicitud Reemplace <replace_with_training_dataset_file_id> con el id obtenido en el paso anterior. Para la referencia completa de parámetros y restricciones de formato, consulte Hiperparámetros.
  • Wan
  • Qwen

Parámetro

Tipo

Obligatorio

Descripción

Valor recomendado

max_steps

int

Sí

Pasos totales de entrenamiento. Un parámetro central que determina el número total de iteraciones de entrenamiento. Recomendamos al menos 500 pasos para garantizar la convergencia del modelo, y un valor mayor para conjuntos de datos más grandes.

800

eval_steps

int

Sí

Intervalo de validación. El valor debe ser ≥ 0. Especifica la frecuencia (en pasos) con la que se evalúa el modelo durante el entrenamiento. También se guarda un checkpoint en cada intervalo.

200

learning_rate

float

Sí

tasa de aprendizaje. Controla la magnitud de las actualizaciones de los pesos del modelo. Un valor demasiado alto puede degradar el rendimiento del modelo, mientras que un valor demasiado bajo puede resultar en cambios insignificantes. Recomendamos utilizar el valor predeterminado.

3e-5

generation_type

string

Sí

modo de generación. Use "t2i" para texto a imagen o "i2i" para imagen a imagen. Esta configuración determina el formato de los datos de entrenamiento y el método de inferencia.

t2i

max_pixels

string

Sí

Resolución máxima para las imágenes de entrenamiento. Por ejemplo, "1k" o "2k" (1K = 1024×1024, 2K = 2048×2048). Establece un límite superior en el número total de píxeles (ancho × alto) para las imágenes en el conjunto de entrenamiento. El sistema solo reduce la escala de las imágenes que superan este valor; las imágenes por debajo del límite permanecen sin cambios. Recomendamos mantener consistentes los tres parámetros relacionados con la resolución (max_pixels, max_token_length y val_img_size).

texto a imagen: "2k"
imagen a imagen: "1k"

val_img_size

string

Sí

Resolución de generación de imágenes de validación. Por ejemplo, "1k" o "2k" (1K = 1024×1024, 2K = 2048×2048). La resolución objetivo para las imágenes generadas durante la evaluación de validación.

texto a imagen: "2k"
imagen a imagen: "1k"

max_token_length

string

Sí

Longitud máxima de tokens por paso. Por ejemplo, "1k" o "2k". Este parámetro, junto con max_steps, controla el proceso de entrenamiento: max_steps determina el número de iteraciones, mientras que max_token_length determina la cantidad de datos procesados en cada paso.

texto a imagen: "2k"
imagen a imagen: "1k"

gradient_clip

float

Sí

recorte de gradiente. El umbral para el recorte de la norma global del gradiente en todos los parámetros entrenables, utilizado para prevenir gradientes explosivos. Establezca en -1 para desactivar el recorte.

0.5

weight_decay

float

Sí

decaimiento de peso. El coeficiente de decaimiento de peso desacoplado para el optimizador AdamW. Se aplica a todos los parámetros entrenables y se utiliza para regularización con el fin de prevenir el sobreajuste.

0.02

lora_rank

int

Sí

Rango LoRA. El rango (dimensión) de las matrices de bajo rango LoRA. Este valor determina el número de parámetros entrenables para el ajuste fino. Un valor mayor aumenta la capacidad de ajuste del modelo pero ralentiza el entrenamiento. El valor debe ser una potencia de 2 (por ejemplo, 16, 32, 64).

32

save_total_limit

int

No

Límite de guardado de checkpoints. El número máximo de checkpoints del modelo a guardar. El sistema conserva solo los N checkpoints más recientes, donde N es este valor.

10

split

float

No

Proporción de división del conjunto de entrenamiento. El rango de valores es (0, 1). Este parámetro surte efecto solo cuando no se especifica validation_file_ids. Este parámetro se utiliza para dividir automáticamente una parte del conjunto de entrenamiento para usarla como conjunto de validación. Por ejemplo, un valor de 0.9 significa que el 90% de los datos se utiliza como conjunto de entrenamiento y el 10% se utiliza como conjunto de validación.

0.9

  • Wan (wan2.7-image-pro)
  • Qwen (qwen-image-2.0)
  • Qwen (qwen-image-2.0-pro)
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "wan2.7-image-pro",
    "training_datasets": [
        {
            "data_source_type": "file_id",
            "file_id": "<replace_with_training_dataset_file_id>"
        }
    ],
    "training_type": "efficient_sft",
    "hyper_parameters": {
        "learning_rate": 3e-5,
        "max_steps": 800,
        "eval_steps": 200,
        "max_token_length": "1k",
        "gradient_clip": 0.5,
        "weight_decay": 0.02,
        "max_pixels": "1k",
        "val_img_size": "1k",
        "generation_type": "t2i",
        "lora_rank": 32,
        "save_total_limit": 10
    }
}'
Referencia de duración del entrenamiento (modelos Wan):
  • Texto a imagen (t2i): aproximadamente 77 minutos para 300 pasos.
  • Imagen a imagen (i2i): aproximadamente 110 minutos para 300 pasos.
Ejemplo de respuesta Preste atención a tres parámetros clave en el campo output:
  • job_id: El ID del trabajo, utilizado para consultar el progreso.
  • finetuned_output: El nombre del modelo ajustado finamente. Debe usar este nombre para el despliegue y la invocación posteriores.
  • status: El estado del entrenamiento. Después de crear un trabajo de ajuste fino, el estado inicial es PENDING, lo que indica que el entrenamiento aún no ha comenzado.
{
    ...
    "output": {
        "job_id": "ft-202511111122-xxxx",
        "status": "PENDING",
        "finetuned_output": "xxxx-ft-202511111122-xxxx",
        ...
    }
}
Paso 2.2: Consultar el estado del trabajo de ajuste fino
Use el job_id obtenido en el Paso 2.1 para consultar el progreso del trabajo. Sondee la siguiente API hasta que el status cambie a SUCCEEDED. Ejemplo de solicitud Reemplace <replace_with_fine_tuning_job_id> en la URL con el valor de job_id.
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<replace_with_fine_tuning_job_id>' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json'
Ejemplo de respuesta Preste atención a dos parámetros en el campo output:
  • status: Cuando su valor cambia a SUCCEEDED, el entrenamiento del modelo ha finalizado y puede proceder con el despliegue del modelo.
  • usage: El número total de tokens consumidos durante el entrenamiento del modelo, utilizado con fines de facturación.
{
    ...
    "output": {
        "job_id": "ft-202511111122-xxxx",
        "status": "SUCCEEDED",
        "usage": 432000,
        ...
    }
}

Paso 3: Desplegar el modelo ajustado finamente

Paso 3.1: Desplegar el modelo como un servicio en línea
Después de que el estado del trabajo de ajuste fino cambie a SUCCEEDED, despliegue el modelo como un servicio en línea. Ejemplo de solicitud Reemplace <replace_with_model_name> con el valor de finetuned_output de la salida de Crear un trabajo de ajuste fino.
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/deployments' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model_name": "<replace_with_model_name>",
    "capacity": 1,
    "plan": "lora"
}'
Ejemplo de respuesta Preste atención a dos parámetros en el campo output:
  • deployed_model: El nombre del modelo desplegado, utilizado para consultar el estado del despliegue e invocar el modelo.
  • status: El estado de despliegue del modelo. Después de desplegar el modelo ajustado finamente, el estado inicial es PENDING, lo que indica que el despliegue aún no ha comenzado.
{
    ...
    "output": {
        "deployed_model": "wan2.7-image-pro-xxxxxxxxxxxx",
        "status": "PENDING",
        ...
    }
}
Paso 3.2: Consultar el estado del despliegue
Consulte el estado del despliegue. Sondee la siguiente API hasta que status cambie a RUNNING.
Para el modelo ajustado finamente en este ejemplo, el proceso de despliegue toma aproximadamente 5-10 minutos.
Ejemplo de solicitud Reemplace <replace_with_deployed_model> con el valor de deployed_model de la salida del Paso 3.1.
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/deployments/<replace_with_deployed_model>' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json'
Ejemplo de respuesta Preste atención a dos parámetros en el campo output:
  • status: Cuando el estado cambia a RUNNING, el modelo se ha desplegado correctamente y puede comenzar a invocarlo.
  • deployed_model: El nombre del modelo desplegado.
{
    ...
    "output": {
        "status": "RUNNING",
        "deployed_model": "wan2.7-image-pro-xxxxxxxxxxxx",
        ...
    }
}

Paso 4: Invocar el modelo para generar imágenes

Una vez que el modelo se ha desplegado correctamente (el status de despliegue es RUNNING), puede comenzar a realizar invocaciones.
  • Wan: El modelo implementado actualmente solo admite llamadas asíncronas, y no existe el campo type en message.content. Los siguientes ejemplos utilizan modelos Wan.
  • Qwen: Un modelo qwen-image-2.0 o qwen-image-2.0-pro ajustado finamente se invoca de la misma manera que el modelo base, y solo se admite la API síncrona: POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation. Para los formatos de solicitud y respuesta, consulte la referencia de la API de Qwen-Image, y reemplace model con el valor de deployed_model devuelto por la operación de despliegue.
Ejemplo de solicitudReemplace <replace_with_deployed_model> con el valor de deployed_model del paso anterior.
  • Texto a imagen
  • Imagen a imagen
Proporcione una descripción de texto que contenga la palabra clave. El modelo genera imágenes que coinciden con el estilo entrenado.
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/image-generation/generation' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "X-DashScope-Async: enable" \
--data '{
    "model": "<replace_with_deployed_model>",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {"text": "s86b5p, A person in a crowded morning rush hour subway car, holding onto the handrail, with blurred passengers in the background and tunnel lights visible through the windows, wearing an ordinary office worker white shirt and black trousers, standing facing the camera, half-body shot, realistic candid feel."}
                ]
            }
        ]
    },
    "parameters": {
        "size": "2K",
        "n": 1
    }
}'
Ejemplo de respuestaCopie y guarde el task_id para consultar el resultado en el siguiente paso.
{
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx",
    "output": {
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx",
        "task_status": "PENDING"
    }
}
Parámetros de entrada
Al invocar un modelo LoRA ajustado finamente, los parámetros de entrada son los mismos que los de Wan2.7 - generación y edición de imágenes.La siguiente tabla enumera solo los parámetros clave para la invocación del modelo LoRA.

Campo

Tipo

Obligatorio

Descripción

Ejemplo

model

string

Sí

El nombre del modelo. Debe utilizar un modelo ajustado finamente que se haya desplegado correctamente con un estado de RUNNING.

wan2.7-image-pro-xxxxxxxxxxxx

input.messages[].content[].text

string

Sí

El indicador de texto. Recomendamos incluir la palabra clave de activación para activar el estilo LoRA.

s86b5p, Una persona en una biblioteca privada tranquila en una tarde pacífica...

parameters.size

string

No

La resolución de la imagen de salida.

  • Opción 1: Especificar la resolución de salida (recomendado)

    • Admite 1K, 2K (predeterminado) y 4K

    • Modos aplicables:

      • Texto a imagen: admite 1K, 2K y 4K.

      • Edición de imagen: admite 1K y 2K.

    • Píxeles totales por resolución: 1K: 1024*1024, 2K: 2048*2048, 4K: 4096*4096

  • Opción 2: Especificar valores de píxeles de ancho y alto

    • Texto a imagen: Los píxeles totales deben estar entre [768*768, 4096*4096], con un rango de relación de aspecto de [1:8, 8:1].

    • Edición de imagen: Los píxeles totales deben estar entre [768*768, 2048*2048], con un rango de relación de aspecto de [1:8, 8:1].

2K

parameters.n

integer

No

El número de imágenes a generar. Valores válidos: 1-4. Predeterminado: 1.

1

Sondee el estado de la tarea usando el task_id hasta que task_status cambie a SUCCEEDED. Recupere la URL de la imagen desde output.choices[].message.content[].image.Ejemplo de solicitud
Reemplace 86ecf553-d340-4e21-xxxxxxxxx con su task_id real.
curl -X GET https://dashscope-intl.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Ejemplo de respuesta
La URL de la imagen es válida durante 24 horas. Descargue la imagen rápidamente.
{
    "request_id": "3f2ebb4e-3d47-97b5-xxxx-xxxxxx",
    "output": {
        "task_id": "aeea547c-e24e-4acb-xxxx-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2026-05-29 17:35:23.826",
        "scheduled_time": "2026-05-29 17:35:23.865",
        "end_time": "2026-05-29 17:36:32.498",
        "finished": true,
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": [
                        {
                            "image": "https://dashscope-7c2c.oss-accelerate.aliyuncs.com/xxx.png?Expires=xxxxxx"
                        }
                    ]
                }
            }
        ]
    },
    "usage": {
        "size": "2048*2048",
        "total_tokens": 770,
        "image_count": 1,
        "output_tokens": 691,
        "input_tokens": 79
    }
}

Crear conjuntos de datos personalizados

Además de utilizar los datos de muestra en este documento para experimentar el flujo de trabajo de ajuste fino, también puede crear sus propios conjuntos de datos para el ajuste fino. El formato del conjunto de datos y los límites de escala en esta sección se aplican a los modelos de generación de imágenes tanto de Wan como de Qwen. Un conjunto de datos debe contener un conjunto de entrenamiento (obligatorio) y un conjunto de validación (opcional; admite división automática desde el conjunto de entrenamiento). Empaquete todos los archivos en formato .zip. Los nombres de archivo deben contener solo caracteres en inglés, dígitos, guiones bajos o guiones.

Formato del conjunto de datos

Conjunto de entrenamiento: Obligatorio

  • Texto a imagen
  • Imagen a imagen
  • Múltiple-imagen-a-imagen
El conjunto de entrenamiento incluye imágenes objetivo de entrenamiento y un archivo de anotaciones (data.jsonl).
wan-image-t2i-training-dataset.zip
├── data.jsonl      # Must be named data.jsonl, maximum 20MB
├── 1_0.png         # Training target image, max resolution 4096*4096, max 20MB per image, supports PNG/JPG/JPEG/WEBP/BMP
├── 1_1.png         # File names support only English characters, flat structure (no subdirectories)
└── 1_2.png
  • Archivo de anotaciones (data.jsonl): Cada línea representa una muestra de entrenamiento y debe ser un objeto JSON.
{
  "prompt": "s86b5p, A person in a quiet private library on a peaceful afternoon, with tall dark walnut bookshelves behind them, sunlight streaming through venetian blinds casting striped shadows, wearing a soft beige cable-knit sweater, standing facing the camera, half-body shot, the image has a delicate film grain texture.",
  "img_path": "./1_0.png"
}
  • data.jsonl debe estar en formato JSONL delimitado por líneas (un objeto JSON independiente por línea). El uso de formato de matriz JSON (donde el primer carácter del archivo es [) no está permitido.
  • Los archivos dentro del paquete zip deben colocarse en una estructura plana. Los subdirectorios no están permitidos. Los nombres de archivo solo admiten caracteres en inglés (no se permiten caracteres chinos, espacios ni caracteres especiales).

Conjunto de validación: Opcional

El conjunto de validación incluye un archivo de anotación (data.jsonl) e imágenes de referencia opcionales (requeridas para el modo de imagen a imagen). No se necesitan imágenes objetivo. En cada punto de control de evaluación, el trabajo de entrenamiento invoca automáticamente el servicio del modelo para generar imágenes de vista previa utilizando los prompts (y las imágenes de referencia) del conjunto de validación.
wan-image-i2i-valid-dataset.zip
├── data.jsonl       # Must be named data.jsonl, maximum 20MB
├── input_001.png    # Optional, reference image for image-to-image mode
└── input_002.png
  • Archivo de anotaciones (data.jsonl): Cada línea representa una muestra de validación y debe ser un objeto JSON.
    • Texto a imagen
    • Imagen a imagen
    • Múltiple-imagen-a-imagen
    {
        "prompt": "s86b5p, A person in a crowded morning rush hour subway car, holding onto the handrail, with blurred passengers in the background and tunnel lights visible through the windows, wearing an ordinary office worker white shirt and black trousers, standing facing the camera, half-body shot, realistic candid feel."
    }
    

Escala y límites de datos

  • Volumen de datos: Recomendamos proporcionar al menos 25 imágenes (se recomiendan 50 o más para obtener mejores resultados). Utilice el mismo personaje o estilo en múltiples escenas y ángulos con descripciones de contenido consistentes.
  • Paquete Zip: Al cargar mediante API, el tamaño total del paquete no debe ser mayor que 1 GB.
  • Requisitos de imágenes de entrenamiento:
    • Formatos de imagen admitidos: BMP, JPEG, PNG y WEBP.
    • La resolución de la imagen no debe ser mayor que 4096×4096.
    • El tamaño individual del archivo de imagen no debe ser mayor que 20 MB.

Recopilación y limpieza de datos

1. Determinar el escenario de ajuste fino
Wan admite los siguientes escenarios de ajuste fino para generación de imágenes:
  • Estilización de personajes IP: Entrenar el modelo para aprender el estilo de dibujo de un personaje IP específico, como personajes de anime o imágenes de mascotas.
  • Estilo visual fijo: Mejorar la capacidad del modelo para reproducir un estilo artístico específico, como ilustración plana, pintura con tinta o pixel art.
  • Generación de escenas específicas: Replicar patrones de composición específicos o plantillas de escenas, como imágenes de exhibición de productos o diseños de pósteres.
2. Obtenga materiales sin procesar
  • Generación y selección por IA: Utilice el modelo base Wan para generar imágenes en masa y luego seleccione manualmente las muestras de alta calidad que mejor se ajusten al efecto objetivo. Este es el método más utilizado.
  • Fotografía real: Si su objetivo es lograr escenas altamente realistas (como fotos reales de productos o fotografía de retratos), usar material filmado en realidad es la mejor opción.
  • Renderizado con software 3D: Para escenas que requieren un control detallado preciso o estilos de renderizado 3D, recomendamos usar software 3D (como Blender o C4D) para crear materiales fuente.
3. Limpie los datos

Dimensión

Mejor práctica

Anti-patrón

Consistencia

Las características principales deben ser altamente consistentes.

Por ejemplo: Al entrenar un "estilo de ilustración plana", todas las imágenes deben compartir el mismo grosor de línea y esquema de colores.

Estilos mixtos.

El conjunto de datos contiene tanto imágenes de estilo empaste como de estilo plano. El modelo no puede determinar qué estilo aprender.

Diversidad

Cuanto más diversos sean los sujetos y las escenas, mejor.

Cubra diferentes sujetos (hombres, mujeres, ancianos, niños, gatos, perros, edificios) y diferentes composiciones (plano general, primer plano, primerísimo primer plano). La resolución y las relaciones de aspecto también deben ser lo más variadas posible.

Escena o sujeto único.

Todas las imágenes muestran "una persona con ropa roja frente a una pared blanca". El modelo podría aprender erróneamente que "ropa roja" y "pared blanca" son parte del estilo, y fallar al generar correctamente en diferentes escenas.

Equilibrio

Proporciones equilibradas entre tipos de datos.

Si se incluyen múltiples estilos, la cantidad debe ser aproximadamente igual.

Proporciones severamente desequilibradas.

90% son imágenes verticales y 10% son imágenes horizontales. El modelo puede tener un rendimiento deficiente al generar imágenes horizontales.

Limpieza

Imágenes limpias y claras.

Utilice materiales originales sin distracciones.

Contiene elementos distractores.

Las imágenes contienen marcas de agua, bordes negros evidentes o ruido. El modelo puede aprender las marcas de agua como parte del estilo.

Resolución

Resolución moderada.

Recomendamos que la resolución de las imágenes de entrenamiento no exceda 2048×2048. Las imágenes excesivamente grandes aumentan el tiempo de entrenamiento.

La resolución varía demasiado.

Tener tanto imágenes pequeñas de 256×256 como imágenes grandes de 4096×4096 en el conjunto de entrenamiento afecta la estabilidad del entrenamiento.

Anotación de imágenes: Redacción de prompts para imágenes

En el archivo de anotación del conjunto de datos (data.jsonl), cada imagen tiene un prompt correspondiente. El prompt describe el contenido de la imagen objetivo. La calidad del prompt determina directamente lo que aprende el modelo.

Fórmula de redacción de indicadores

Prompt = [Descripción del sujeto] + [Descripción del fondo] + [Palabra clave] + [Descripción del estilo]

Componente del prompt

Descripción

Recomendación

Ejemplo

Descripción del sujeto

Describe a las personas u objetos en la imagen

Obligatorio

Una mujer joven vistiendo una camisa larga roja de estilo chino...

Descripción del fondo

Describe el entorno donde se encuentra el sujeto

Obligatorio

El fondo es una pared de ladrillos cubierta de enredaderas verdes...

Palabra desencadenante

Una palabra poco común sin significado real

Recomendado

s86b5p o m01aa

Descripción de estilo

Describe en detalle el estilo artístico y las características visuales de la imagen objetivo

Recomendado

Renderizado en estilo de ilustración plana con líneas fluidas y limpias y colores planos vívidos para enfatizar la tridimensionalidad y la estética del diseño moderno.

Acerca de las palabras desencadenantes

  • ¿Qué es una palabra clave de activación? Sirve como un "ancla visual". Dado que muchos estilos visuales complejos (como una textura de imagen única o un esquema de colores específico) son difíciles de describir con precisión en texto, una palabra desencadenante le dice explícitamente al modelo: cuando veas s86b5p, debes generar este estilo visual específico.
  • ¿Por qué usarlo? El ajuste fino del modelo establece mapeos entre "texto" y "características de imagen". La palabra clave vincula un "estilo indescriptible" a una palabra única, permitiendo que el modelo se enfoque en el objetivo.
  • Si ya tenemos una palabra clave de activación, ¿por qué describir el estilo en detalle? Ambos cumplen propósitos diferentes y funcionan mejor juntos.
    • Descripción de estilo: Explica "cómo debe verse la imagen". Indica al modelo el estilo artístico básico y las características visuales. La descripción de estilo suele ser consistente en múltiples muestras.
    • Palabra clave: Explica "cómo se ve específicamente el estilo". Representa características visuales únicas que no pueden describirse con precisión mediante texto.

Evaluar modelos con conjuntos de validación

Especificar el conjunto de validación

Un trabajo de ajuste fino debe incluir un conjunto de entrenamiento, mientras que el conjunto de validación es opcional. Puede elegir que el sistema automatically split o manually upload un conjunto de validación. Los métodos específicos son los siguientes:
Método 1: No se cargó conjunto de validación (división automática del sistema)
Al utilizar la API de ajuste fino de modelos de generación de video e imágenes, si no se carga un conjunto de validación por separado (es decir, no se proporciona el parámetro validation_file_ids), el sistema divide un conjunto de validación del conjunto de entrenamiento basándose en split, cuyo valor predeterminado es 0.9. Esto significa que el 90% se utiliza para entrenamiento y el 10% para validación.
Método 2: Cargar manualmente un conjunto de validación (especificado mediante validation_file_ids)
Si usted want usar sus propios datos preparados para evaluar checkpoints en lugar de depender de la división aleatoria del sistema, puede cargar un conjunto de validación personalizado. Nota: Una vez que elija cargar manualmente, el sistema completely ignores las reglas de división automática anteriores y utiliza solo los datos que cargó para la validación.

Procedimiento: Cargar manualmente un conjunto de validación

  1. Preparar el conjunto de validación: Empaquete los datos de validación en un archivo .zip separado. Consulte Formato del conjunto de validación.
  2. Cargar el conjunto de validación: Llame a la API API de ajuste fino de modelos de generación de video e imágenes para cargar este archivo .zip del conjunto de validación y obtener un ID de archivo dedicado.
  3. Especificar el conjunto de validación al crear el trabajo: Al llamar a la API API de ajuste fino de modelos de generación de video e imágenes, complete este ID de archivo en el parámetro validation_file_ids.
{
    "model":"wan2.7-image-pro",
    "training_file_ids":[ "<training_set_file_id>" ],
    "validation_file_ids": [ "<custom_validation_set_file_id>" ],
    ...
}

Seleccionar el mejor punto de control para el despliegue

Durante el entrenamiento, el sistema guarda periódicamente "instantáneas" del modelo (es decir, puntos de control). Por defecto, el sistema genera el último punto de control como el modelo final ajustado finamente. Sin embargo, los puntos de control producidos durante las etapas intermedias pueden tener un mejor rendimiento que la versión final. Puede seleccionar el más satisfactorio para su implementación. El sistema ejecuta puntos de control en el conjunto de validación y genera imágenes de vista previa en intervalos establecidos por los Hiperparámetros (hyper_parameters) eval_steps.
  • Cómo evaluar: Juzgue los resultados observando directamente las imágenes de vista previa generadas.
  • Criterios de selección: Encuentre el checkpoint con los mejores resultados y el estilo más coincidente.

Procedimiento

Paso 1.1: Consultar la lista de puntos de control validados
Esta API solo devuelve checkpoints que han pasado la validación y han generado exitosamente imágenes de vista previa. Los checkpoints que fallaron en la validación no se listan.Ejemplo de solicitud
curl --location 'https://dashscope.aliyuncs.com/api/v1/fine-tunes/<replace_with_fine_tuning_job_id>/validation-results' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json'
Ejemplo de respuestaEsta API devuelve una lista que contiene solo los nombres de los puntos de control que han pasado la validación correctamente.
{
    "request_id": "da1310f5-5a21-4e29-99d4-xxxxxx",
    "output": [
        {
            "checkpoint": "checkpoint-160"
        },
        ...
    ]
}
Paso 1.2: Consultar los resultados del conjunto de validación para un checkpoint
Seleccione un checkpoint de la lista devuelta en el paso anterior (por ejemplo, "checkpoint-160") y vea los resultados de las imágenes generadas.Ejemplo de solicitud
  • <replace_with_fine_tuning_job_id>: Reemplace completamente con el valor de job_id de la salida de Crear un trabajo de ajuste fino.
  • <replace_with_checkpoint_to_export>: Reemplace completamente con el valor del checkpoint, por ejemplo "checkpoint-160".
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<replace_with_fine_tuning_job_id>/validation-details/<replace_with_checkpoint_to_export>?page_no=1&page_size=10' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Ejemplo de respuestaLa URL de la imagen de vista previa se encuentra en el campo img_path y es válida durante 24 horas. Descargue las imágenes rápidamente para revisar los resultados. Repita este paso para comparar los resultados de múltiples puntos de control y encontrar el más satisfactorio.
{
    "request_id": "375b3ad0-d3fa-451f-b629-xxxxxxx",
    "output": {
        "page_no": 1,
        "page_size": 10,
        "total": 5,
        "list": [
            {
                "img_path": "https://finetune-result.oss-cn-wulanchabu.aliyuncs.com/xxx.png?Expires=xxxxxx",
                "prompt": "s86b5p, Change the background to an elevator equipped with a white ceiling lighting, featuring large floor-to-ceiling windows. Change the character's clothing to red tight-fitting mech armor with black stripe decorations.",
                "input_img": "https://finetune-result.oss-cn-wulanchabu.aliyuncs.com/val_dataset/input_001.png?Expires=xxxxxx"
            },
            ...
        ]
    }
}
Paso 2.1: Exportar el modelo
Suponiendo que "checkpoint-160" tiene los mejores resultados, el siguiente paso es exportarlo.Ejemplo de solicitud
  • <replace_with_fine_tuning_job_id>: Reemplace completamente con el valor de job_id de la salida de Crear un trabajo de ajuste fino.
  • <replace_with_checkpoint_to_export>: Reemplace completamente con el valor del checkpoint, por ejemplo "checkpoint-160".
  • <replace_with_exported_model_display_name>: Reemplace completamente con un nombre de modelo personalizado utilizado solo para visualización en la consola, por ejemplo "wan2.5-checkpoint-160". Este nombre debe ser globalmente único. No se admite la exportación con nombres duplicados. Para detalles de los parámetros, consulte 3. Exportar un punto de control.
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<replace_with_fine_tuning_job_id>/export/<replace_with_checkpoint_to_export>?model_name=<replace_with_exported_model_display_name>' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Ejemplo de respuestaEl parámetro de respuesta output=true indica que la solicitud de exportación se ha creado correctamente.
{
    "request_id": "0817d1ed-b6b6-4383-9650-xxxxx",
    "output": true
}
Paso 2.2: Consultar el nuevo nombre del modelo para el despliegue
Consulte el estado de todos los checkpoints, confirme que la exportación está completa y obtenga el nuevo nombre dedicado del modelo (model_name) para el despliegue.Ejemplo de solicitud
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<replace_with_fine_tuning_job_id>/checkpoints' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Ejemplo de respuestaLocalice el punto de control exportado (como checkpoint-160) en la lista devuelta. Cuando su status cambie a SUCCEEDED, la exportación habrá sido exitosa. El campo model_name devuelto en este punto es el nuevo nombre del modelo después de la exportación.
{
    "request_id": "b0e33c6e-404b-4524-87ac-xxxxxx",
    "output": [
         ...,
        {
            "create_time": "2025-11-11T13:27:29",
            "full_name": "ft-202511111122-496e:checkpoint-160",
            "job_id": "ft-202511111122-496e",
            "checkpoint": "checkpoint-160",
            "model_name": "xxxx-ft-202511111122-xxxx-c160", // Important field, used for model deployment and invocation
            "model_display_name": "xxxx-ft-202511111122-xxxx",
            "status": "SUCCEEDED" // Successfully exported checkpoint
        },
        ...

    ]
}
Después de exportar exitosamente el checkpoint y obtener el model_name, siga estos pasos para las operaciones subsiguientes:
  • Despliegue del modelo: Complete el parámetro de entrada model_name con el valor específico obtenido después de la exportación.
  • Invocación del modelo: Siga la documentación de la API para invocar el modelo desplegado.

Facturación

  • Entrenamiento del modelo: Con costo. La siguiente tabla enumera los recuentos de pasos de entrenamiento y los costos estimados para wan2.7-image, wan2.7-image-pro. Estos datos son solo de referencia. Los resultados reales del entrenamiento están sujetos a la entrega final, y los costos están sujetos a la factura oficial. Para fórmulas de facturación detalladas, consulte Precios de entrenamiento e implementación.

    generation_type

    Resolución de imagen

    Recuento de pasos común

    Consumo estimado de tokens

    Costo estimado

    t2i (texto a imagen)

    1K

    500

    6,400,000

    $96

    1,000

    12,800,000

    $192

    2,000

    25,600,000

    $384

    2K

    500

    11,610,000

    $174.15

    1,000

    23,220,000

    $348.3

    2,000

    46,440,000

    $696.6

    i2i (imagen a imagen)

    1K

    500

    11,610,000

    $174.15

    1,000

    23,220,000

    $348.3

    2,000

    46,440,000

    $696.6

    2K

    500

    16,000,000

    $240

    1,000

    32,000,000

    $480

    2,000

    64,000,000

    $960

    Para qwen-image-2.0 y qwen-image-2.0-pro, el total de tokens de entrenamiento se calcula como n_epochs × Número de imágenes en el conjunto de entrenamiento × (max_pixels / Relación de compresión) × Coeficiente de GPU, y el precio de entrenamiento es de $0.003 por cada 1,000 tokens. La relación de compresión es la relación de compresión VAE fija (1024), y el coeficiente de GPU se ajusta dinámicamente según la programación de trabajos. batch_size no afecta la facturación ni el total de tokens de entrenamiento. Para la fórmula completa y un ejemplo de cálculo, consulte Precios de entrenamiento y despliegue. La siguiente tabla estima el consumo de tokens y las tarifas para qwen-image-2.0 y qwen-image-2.0-pro por imagen de entrenamiento, asumiendo un coeficiente de GPU de 8. Para un conjunto de entrenamiento de N imágenes, multiplique los valores por N. Estos valores son solo estimaciones. Su factura es la autoridad final sobre las tarifas.

    max_pixels

    n_epochs

    Tokens estimados

    Costo estimado (USD)

    1k

    800

    6,553,600

    19.66

    1,000

    8,192,000

    24.58

    2,000

    16,384,000

    49.15

    2k

    800

    26,214,400

    78.64

    1,000

    32,768,000

    98.30

    2,000

    65,536,000

    196.61

  • Despliegue e invocación del modelo: El despliegue es gratuito. Las invocaciones se facturan a la tarifa estándar del modelo base ajustado finamente.

    ID de modelo

    Precio de despliegue e invocación de LoRA

    wan2.7-image-pro

    $0.075/imagen

    wan2.7-image

    $0.03/imagen

    qwen-image-2.0

    $0.035/imagen

    qwen-image-2.0-pro

    $0.075/imagen

Referencia de API

API de ajuste fino de modelos de generación de video e imágenes

FAQ

P: ¿Cómo diseño una buena palabra clave de activación?

R: Las reglas son las siguientes:
  • Recomendamos usar combinaciones de caracteres raras sin significado semántico real, como s86b5p, m01aa o EVEAven638123. Asegúrese de que no haya significado semántico en el vocabulario del modelo base.
  • Evite usar palabras comunes en inglés (como beautiful, fire o dance), ya que esto contaminaría la comprensión original del modelo de estas palabras.