Ir al contenido principal

Flujo de imagen con Wan 2.7: genera un concepto y luego edítalo

Crea una imagen con Wan 2.7 a partir de un brief o referencias: planifica paleta y zonas de edición, elige Standard o Pro y revisa la composición final.

Autor
Lydia
Publicado
Lectura
11 min de lectura
Actualizado
Ilustrador adulto ficticio examinando una ilustración física de un faro junto a muestras de pintura en un estudio costero

Usa Wan 2.7 de texto a imagen para un concepto nuevo a 0,03 $/imagen, y la edición de Wan 2.7 para revisar una fuente existente al mismo precio. Elige Pro a 0,075 $/imagen cuando necesites salida en 4k, que solo ofrece Pro texto; Pro edición siempre devuelve 2k. La generación y la edición estándar ofrecen 1k o 2k y hasta cuatro salidas por llamada. Los ajustes de abajo construyen una portada con un faro y después eliminan una barca no deseada con un recuadro de edición medido.

Elige primero el endpoint

TareaResoluciónSalidas por llamadaOtros controles
Wan 2.7 texto1k (por defecto), 2k1–4Paleta, seed, interruptor de razonamiento (activado por defecto)
Wan 2.7 edición1k (por defecto), 2k1–41–9 fuentes, paleta, recuadros, seed
Pro texto2k (por defecto), 4k1Paleta, seed
Pro edición2k fija11–9 fuentes, paleta, recuadros, seed

Como referencia de escala: 1k son unos 1 megapíxel, 2k unos 4 y 4k unos 16. Los cuatro aceptan 1:1, 4:3, 3:4, 16:9, 9:16, 3:2 y 2:3. El texto es cuadrado por defecto. La edición no tiene valor por defecto: sigue las proporciones de la última imagen fuente. Fija 2:3 de forma explícita cuando generes sin paleta, para que una referencia posterior no decida la forma. aspect_ratio no se puede combinar con color_palette ni con bounding_boxes: una petición que lleve ambos devuelve el error 40004, así que omite aspect_ratio en esas peticiones (una petición de texto con paleta devuelve entonces el cuadrado por defecto; una edición con recuadro conserva las proporciones de la última fuente). Ninguno de los cuatro tiene selector de formato de salida.

Pro edición está ajustado para instrucciones largas con varias cláusulas («toma este objeto, ponlo sobre aquella superficie, iguala la luz de la segunda imagen, no toques la etiqueta»), así que elígelo para ediciones compuestas y no por la resolución.

Genera el concepto de portada

Usa la generación de texto estándar con resolution: "2k", aspect_ratio: "2:3", num_outputs: 1, enable_thinking: true y la seed 314159. Una seed fija mantiene estable la condición aleatoria inicial mientras cambias una sola cláusula cada vez; omítela para obtener un resultado nuevo. Con enable_thinking desactivado se genera más rápido; déjalo activado mientras sigas explorando la composición. El prompt se mantiene en inglés, tal cual:

Original painted cover artwork for a fictional coastal mystery. One white lighthouse on a charcoal rocky island above dark teal water, the entire tower visible slightly right of center. One small mustard-yellow lamp at its top. One fictional adult keeper aged 45 in a rust raincoat walks along a clear path toward the tower. The keeper is small relative to the building. Pale restrained sky with quiet space in the upper third for separately added typography. Strong large silhouettes, soft dusk light, no lettering, extra towers, boats or disaster spectacle.

Ilustración vertical de un faro blanco sobre un mar verde azulado oscuro y rocas, con un pequeño farero adulto

Ilustración, no un resultado de Wan (su cielo es más cálido de lo que pide el prompt): el pequeño farero marca la escala mientras el faro sigue dominando.

Pruébalo primero en el Playground

  1. Abre la página de Wan 2.7 de texto a imagen y quédate en la pestaña Playground, en la vista Form. Inicia sesión con una cuenta con saldo para ejecutar.
  2. Pega el prompt de portada de arriba en Prompt. Pon Resolution en 2k y Seed en 314159; deja Deep thinking activado mientras exploras la composición.
  3. En Aspect ratio elige 2:3. Si añades una paleta en el paso 4, ponlo en Auto, porque ambos no se pueden combinar.
  4. Opcional: en Color palette pulsa Add a color, escribe cada código #RRGGBB y, si quieres, su porcentaje (de 3 a 10 colores; la siguiente sección trae el conjunto del faro).
  5. Ejecuta el modelo, revisa la torre y la escala del farero, cambia después una cláusula y vuelve a ejecutar con la misma seed.

Para la edición de la barca, abre la página de edición de Wan 2.7, añade la imagen aprobada en Images (Add a file o Asset URL) y arrastra un recuadro sobre la barca y su estela en Edit areas; Fine-tune coordinates muestra los mismos números. En el prompt, habla de «la zona marcada». El cuerpo de la petición del Playground es el mismo JSON que acepta la API, así que una configuración que funcione aquí se puede copiar directamente al código.

Playground de edición de Wan 2.7 en vista Form para editar con hasta nueve referencias

La página de edición de Wan 2.7 en vista Form, con el campo Prompt y el botón Run.

Aporta una paleta válida

color_palette admite de 3 a 10 colores hexadecimales de seis dígitos (8 es el número recomendado) y orienta todo el encuadre: escena, ropa y luz. Cada color puede llevar un ratio, un porcentaje; los colores sin porcentaje se reparten el resto a partes iguales. Trata los porcentajes como una distribución solicitada, no como un recuento medido de píxeles. La petición del faro usa cuatro colores que suman 100: #173E46 verde azulado 45, #E8E1D3 cielo pálido 30, #34383A carbón 20 y #C9A448 mostaza 5. Omite aspect_ratio cuando los envíes.

Si el amarillo inunda el cielo, quita del prompt las expresiones de cielo dorado y cálido, y reduce el papel del acento.

Elimina una barca con coordenadas de la fuente real

Supón que la imagen aprobada contiene una barca que distrae. Cambia a la edición estándar, usa la imagen aprobada como primera fuente y mantén 2k y una salida; omite aspect_ratio, porque no se puede combinar con bounding_boxes. Cada entrada de bounding_boxes nombra una fuente con image_index, que empieza en uno, y sus coordenadas son píxeles medidos desde la esquina superior izquierda de esa fuente.

Para una fuente hipotética de 1200 × 1800 con la barca y la estela encerradas entre (120,1180) y (390,1420), el recuadro es {"image_index": 1, "x1": 120, "y1": 1180, "x2": 390, "y2": 1420}, y el prompt dice: "Remove the small boat and its wake inside the marked lower-left sea area. Continue the surrounding dark teal water and painterly texture. Retain the lighthouse, rocky island, adult keeper, path and quiet sky. No new objects or lettering."

Esas coordenadas son ilustrativas; mide tu propia barca. Si una vista previa muestra la misma fuente a 600 × 900, multiplica por dos las coordenadas de la vista previa: el punto (60,590) de la vista previa pasa a ser el punto (120,1180) de la fuente. Vuelve a calcular tras cualquier recorte o cambio de tamaño, porque el recuadro siempre se refiere al archivo enviado, no al tamaño de salida solicitado.

Cada fuente admite hasta dos recuadros (dieciocho en nueve fuentes). Incluye la estela además del casco, o la barca seguirá visible por implicación. El recuadro indica dónde actuar y el prompt qué lo sustituye; ninguno garantiza píxeles idénticos en el resto. Usa de 1 a 9 imágenes fuente en JPEG, PNG opaco o WebP, cada una como URL HTTPS pública o archivo spicy:// subido.

Con varias fuentes, di para qué sirve cada una («la imagen 1 es la escena, la imagen 2 el abrigo, la imagen 3 la referencia de paleta»).

Ilustración física de un faro, fotografía aparte de un impermeable y cuatro muestras de color pintadas sobre una mesa de madera

Ilustración, no un resultado de Wan: materiales separados de fuente, ropa y paleta, cada uno con su propia función.

Después, ejecútalo desde código

Instala el SDK de Python (pip install spicyapi), define SPICY_API_KEY en el entorno de tu servidor y ejecuta los dos pasos: el concepto y, cuando tengas una imagen aprobada, la eliminación de la barca.

python
import uuid
from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment

def run(model, input_data):
    task = client.create_task(model=model, input_data=input_data,
                              idempotency_key=str(uuid.uuid4()))
    final = client.wait_for_terminal(task["taskId"])
    if final["state"] != "succeeded":
        raise RuntimeError(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
    return output_assets(final)[0]["url"]  # copy the image to your own storage now

concept_url = run("alibaba/wan-2.7/text-to-image", {
    "prompt": "Painted cover for a fictional coastal mystery: one white lighthouse above dark teal sea on charcoal rocks, one small mustard-yellow lamp and one small adult keeper in a rust coat on a clear path. Pale quiet upper sky for later typography. Whole tower visible; no lettering or extra towers.",
    "resolution": "2k",
    "num_outputs": 1,
    "enable_thinking": True,
    "seed": 314159,
    "color_palette": [
        {"hex": "#173E46", "ratio": 45},
        {"hex": "#E8E1D3", "ratio": 30},
        {"hex": "#34383A", "ratio": 20},
        {"hex": "#C9A448", "ratio": 5},
    ],
})

edit_url = run("alibaba/wan-2.7/edit", {
    "image_urls": ["https://your-domain.example/approved-cover-1200x1800.jpg"],  # your approved image
    "prompt": "Remove the small boat and its wake inside the marked lower-left sea area. Continue the surrounding dark teal water and painterly texture. Retain the lighthouse, rocky island, adult keeper, path and quiet sky. No new objects or lettering.",
    "bounding_boxes": [{"image_index": 1, "x1": 120, "y1": 1180, "x2": 390, "y2": 1420}],
    "resolution": "2k",
    "num_outputs": 1,
    "seed": 314159,
})
print(concept_url, edit_url)

La creación, la espera, la descarga, los reintentos y los códigos de error están en la guía de tareas y en la referencia del SDK de Python. Los resultados caducan, así que consulta retención y entrega antes de apoyarte en el enlace devuelto.

O deja que lo ejecute un agente

Cuando un asistente deba ejecutar las generaciones, las tres herramientas oficiales muestran el precio y te piden confirmación antes de una llamada de pago.

  • CLI. Pon el objeto input del concepto en input.json y ejecuta:

``bash spicyapi tasks create --model alibaba/wan-2.7/text-to-image --input-file input.json --wait ``

Para la edición, spicyapi files upload <path> convierte una imagen local en un enlace spicy:// para image_urls. Consulta la documentación de la CLI; npx @spicyapi/cli funciona sin instalar.

  • Servidor MCP. Añade el servidor MCP a tu asistente y pide: «Run Wan 2.7 text to image with this prompt at 2k, seed 314159.» Llama a spicyapi_task_create, que se detiene para que confirmes el precio, y luego a spicyapi_task_wait; spicyapi_upload_file se encarga de una imagen fuente local.
  • Skill. npx skills add spicyapi-ai/spicy-skill instala el Agent Skill, que hace que un asistente de código lea el esquema vigente del modelo en lugar de adivinar campos.

Corrige un resultado fallido concreto

FalloSiguiente cambio
La edición afecta a la esquina equivocadaCorrige image_index y recalcula las coordenadas desde la fuente real, en lugar de repetir «exactamente aquí».
La torre queda cortadaPide la torre entera y más cielo tranquilo; mantén el formato vertical.
El farero es más grande que la torreIndica «pequeña figura adulta lejana en el camino»; quita las palabras de retrato o primer plano.
La barca desaparece pero queda la estelaAmplía el recuadro para incluir la estela y nombra ambas en la instrucción.
El faro cambia al quitar la barcaVuelve a la fuente aceptada; usa un recuadro más pequeño o compón solo el parche de mar aceptado sobre el original.
Pro edición rechaza resolutionQuita el campo; Pro edición es fija a 2k y el 4k corresponde a Pro texto.
Un lote de cuatro imágenes cuesta más de lo esperadoPon num_outputs: 1; el precio estándar es por imagen, no una tarifa plana por lote.

Estándar o Pro, y el coste

Un concepto estándar más una edición estándar cuestan 0,06 $. Una petición estándar de cuatro salidas cuesta 0,12 $ y una imagen Pro 0,075 $, así que un pase de Pro texto más Pro edición cuesta 0,15 $. Explora la composición en estándar con num_outputs hasta 4. Paga Pro texto solo cuando necesites 4k, por ejemplo para un fotograma principal que se recortará o imprimirá, y Pro edición cuando una instrucción lleve varias cláusulas que deban cumplirse todas. Si la composición en sí está mal, una resolución mayor no la arreglará.

Trabajo orientado a adultos

Los dos endpoints de edición no están censurados y SpicyAPI no añade ningún análisis de contenido. Pueden entregar cambios orientados a adultos, pero las ediciones más intensas a veces vuelven atenuadas en cualquiera de los dos; Pro no garantiza un resultado más explícito. La tarea de texto estándar entrega a veces imágenes adultas avanzadas, pero ambas tareas de texto atenuaron las escenas adultas más intensas en nuestras pruebas; un resultado atenuado se cobra igualmente. Pro no elimina esta limitación. Para creadores de personajes adultos, la vía práctica es construir primero la imagen base o la referencia y hacer después los cambios orientados a adultos mediante edición. Los resultados registrados están en el artículo en inglés «Wan 2.7 Pro NSFW image test»; la tarea en sí está en la página de Wan 2.7 Pro edición. La portada del faro de esta guía está completamente vestida y no necesita nada de esto.

Para terminar

Conserva la imagen aprobada como fuente de las revisiones concretas, y empieza un concepto nuevo cuando deba cambiar la disposición de la propia isla. Añade el título exacto en una herramienta de diseño cuando la ilustración funcione en miniatura.

También en English · 日本語 · 한국어 · Deutsch · Français · Português (Brasil) · Русский · Italiano · Polski