Quieres cambiar una sola cosa de una foto mediante código: la luz, el fondo, la ropa o un texto. Necesitas un editor que no rechace ni suavice la instrucción en silencio. Esta guía explica qué endpoint de edición llamar, cuánto cuesta, qué acepta, cómo probarlo en el Playground y después con código o un Agent, y qué hacer si falla.
En resumen: una llamada de imagen a imagen es una tarea en un endpoint cuyo ID de modelo termina en /edit: envías un prompt y una imagen de origen y recibes el archivo editado. Para una foto y una instrucción, empieza con Qwen Image Edit Spicy: $0.038 por edición, una fuente, sin máscara ni control de intensidad. Para varias fuentes, usa Qwen Image 3.0, Seedream 5.0 Pro o Wan 2.7. Para una máscara, usa Qwen Image 2.1 o FLUX.1 Dev LoRA; strength solo existe en FLUX.1 Dev LoRA y Z-Image Turbo LoRA.
Los precios y límites siguientes proceden del catálogo actual y de la documentación; cada precio se obtuvo mediante una cotización gratuita.
Qué significa «sin censura» en un endpoint de edición
«Sin censura» es la etiqueta del catálogo para un modelo que declara no tener filtro de contenido: SpicyAPI no añade un análisis de contenido de la plataforma y el modelo decide qué devuelve. No garantiza que se cumpla cada instrucción. Prevé dos resultados:
- Un rechazo termina la tarea como
failedconerrorCode: "content_rejected". Se libera por completo la retención de tu saldo. - Un resultado suavizado es una imagen terminada más moderada de lo solicitado. La tarea es exitosa y se cobra; la respuesta no lo señala. Solo se detecta mirando la imagen.
Algunos límites se aplican a todos los modelos: ninguna representación sexualizada de menores en ningún estilo, ninguna representación íntima o sexualizada de una persona real identificable sin su consentimiento documentado (incluidos el cambio de rostro y la transferencia de apariencia), ninguna suplantación y nada ilegal donde operas. Es fácil incumplir la segunda regla al editar, porque la fuente suele ser una foto real. Según la política de uso aceptable, una foto pública, la fama o una relación anterior no constituyen consentimiento; el material de edad ambigua está sujeto a la regla de menores y no debes subir material privado que no tengas derecho a procesar.
SpicyAPI no revisa cada solicitud. Si tus usuarios suben fotos, las obligaciones son tuyas: verificar la edad, guardar una declaración de consentimiento al subir junto con el ID de tarea, rechazar fuentes de edad incierta, bloquear ediciones de personas reales identificables sin consentimiento documentado y ofrecer una vía para denunciar contenido. Esto no es asesoramiento jurídico.
El servicio no está disponible en China continental, Rusia, Bielorrusia, Cuba, Irán, Corea del Norte ni Siria; tampoco, según los términos, en el Reino Unido, Hong Kong, Macao, Arabia Saudí, Emiratos Árabes Unidos, Catar, Kuwait, Baréin, Omán, Pakistán, Bangladés, Afganistán, Indonesia, Malasia o Brunéi. La política de contenido y uso indica que la lista puede ampliarse. Los cambios de rostro y cabeza son endpoints separados con su propio flujo, descrito en el flujo de la API de cambio de rostro con IA.
Elige el endpoint de edición
Los endpoints varían en el número de fuentes, los controles adicionales y la forma del resultado:
| Endpoint | Fuentes | Controles aparte del prompt | Forma del resultado | Precio por imagen |
|---|---|---|---|---|
Qwen Image Edit Spicy alibaba/qwen-image-spicy-edit/edit | Exactamente 1 (image_url) | seed | Sin campo de tamaño | $0.038 |
Qwen Image 2 alibaba/qwen-image-2/edit | Exactamente 1; prompt de hasta 800 caracteres | aspect_ratio, seed | Según aspect_ratio, por defecto 1:1; no sigue la fuente | $0.035 |
Qwen Image 3.0 alibaba/qwen-image-3.0/edit | De 1 a 3 | negative_prompt, aspect_ratio, resolution (1k o 2k), enable_prompt_expansion (activado por defecto), seed | Según aspect_ratio, por defecto 1:1 | $0.033 con una fuente, $0.039 con tres |
Seedream 5.0 Pro bytedance/seedream-5.0-pro/edit | De 1 a 10 | aspect_ratio, resolution, output_format; sin seed | auto (por defecto) elige la proporción más cercana a la primera fuente | $0.036 a 1k, $0.072 a 2k (por defecto); +$0.003 por fuente adicional |
Wan 2.7 alibaba/wan-2.7/edit | De 1 a 9 | bounding_boxes (hasta 2 por imagen), color_palette, resolution (1k o 2k, mismo precio), num_outputs (de 1 a 4), seed | Sigue la última fuente salvo que se indique aspect_ratio | $0.03 por salida (4 salidas $0.12), igual para entre 1 y 9 fuentes |
Qwen Image 2.1 alibaba/qwen-image-2.1/edit | De 1 a 10; la máscara solo funciona con exactamente 1 | mask_url (PNG, JPEG o WebP; solo una fuente), resolution, aspect_ratio, enable_prompt_expansion (activado por defecto), seed | aspect_ratio, por defecto 1:1 | $0.036 a 1k con una fuente, +$0.012 por fuente adicional; $0.048 fijos a 2k; $0.072 a 1.5k |
FLUX.1 Dev LoRA black-forest-labs/flux-1-dev-lora/edit | Exactamente 1 | mask_url, strength, steps, guidance_scale, hasta 3 LoRAs, seed | Conserva la forma de la fuente | $0.018 |
Los precios son cotizaciones para una solicitud de una imagen. Seedream 5.0 Pro cuesta el doble en su nivel predeterminado de 2k que en 1k; Qwen Image 3.0 añade un cargo por fuente. Los niveles de Qwen Image 2.1 no aumentan en orden (1.5k se cotiza por encima de 2k y 2k tiene precio fijo independientemente de las fuentes), así que cotiza el cuerpo exacto antes de presupuestar.
Hay más editores etiquetados sin censura, como Seedream 5.0 Flash, Qwen Image 3.0 Pro y Wan 2.7 Pro. Los endpoints de edición de GPT Image 2 y 2.5 y Nano Banana llevan la etiqueta Filtered, por lo que no son la herramienta adecuada cuando buscas un resultado sin censura.
Una foto, un cambio. Usa Qwen Image Edit Spicy. La solicitud completa es image_url, prompt y un seed opcional; la instrucción es el único control, de modo que especificar qué debe mantenerse es también tu ajuste de conservación. Su reseña sitúa una edición típica en unos 21 segundos. Qwen Image 2 sigue el mismo concepto a un precio algo menor, con una fuente y un límite de 800 caracteres en el prompt.
Varias fuentes en una edición. Un rostro de una foto, una prenda de otra y una habitación de una tercera: Qwen Image 3.0 (tres fuentes), Seedream 5.0 Pro (diez) o Wan 2.7 (nueve). Con varias fuentes, el prompt debe indicar qué aporta cada imagen. Seedream 5.0 Pro se aproxima por defecto a la forma de la primera fuente, Wan 2.7 a la última y Qwen usa un cuadrado: un retrato enviado a Qwen Image 3.0 sin aspect_ratio vuelve en 1:1.
Ediciones locales con máscara o control de intensidad. Qwen Image 2.1 y FLUX.1 Dev LoRA aceptan una máscara como mask_url: una imagen en blanco y negro del tamaño de la fuente, donde se repinta lo blanco y se conserva lo negro. strength (de 0 a 1, por defecto 0.8; cuánto se aleja el resultado de la fuente) existe en FLUX.1 Dev LoRA y en el endpoint de edición de Z-Image Turbo LoRA. Wan 2.7 marca las regiones de otra manera: hasta dos rectángulos de píxeles por imagen en bounding_boxes.
Resultados de contenido. Según nuestros informes públicos de septiembre de 2026, cada editor pasó por cinco niveles de contenido (L1 el más moderado, L5 el más intenso), normalmente con tres ejecuciones por nivel.
| Endpoint | Ediciones entregadas según lo solicitado | En qué se quedó corto |
|---|---|---|
| Qwen Image Edit Spicy | 18 de 18 | En nada |
| Qwen Image 3.0 | 17 de 17 | En nada |
| Qwen Image 2.1 | 18 de 18 | En nada |
| Qwen Image 2 | 16 de 18 | Dos de tres ejecuciones en L4 Intense fueron suavizadas |
| Seedream 5.0 Pro | 16 de 17 | Una edición L4 Intense volvió como un retrato sencillo |
| Wan 2.7 | 11 de 15 | Una de tres entregó lo solicitado en L4 Intense y en una prueba L5 Extreme; el editor es más permisivo que el texto a imagen del mismo modelo |
FLUX.1 Dev LoRA es la opción más barata con máscara y strength, pero su informe público cubre texto a imagen, donde los niveles más intensos se suavizaron. Prueba tu nivel de contenido con una sola edición antes de comprometerte.
Encontrarás detalles por modelo en las reseñas, por ejemplo la de Seedream 5.0 Pro; la prueba sin censura de Qwen Image Edit muestra pares de antes y después de los editores Qwen.
¿Local o alojado? Con una GPU de al menos 8 GB de VRAM y ediciones en volumen, ejecutar un modelo local en ComfyUI (Qwen Image Edit o FLUX.2 Klein) es una opción real. El alojamiento tiene sentido si no quieres administrar una GPU, necesitas llamar al editor desde una app o prefieres pagar por imagen: a $0.018–$0.072 por imagen, cien ediciones cuestan $1.80–$7.20 antes de reintentos.
Pruébalo primero en el Playground
La forma más rápida de ver qué hace un editor con tu foto es el Playground de su página, sin código ni gestión de claves.
- Abre la página de Qwen Image Edit Spicy y permanece en Playground, en la vista Form. Inicia sesión con una cuenta con saldo para ejecutar.
- En Input image, arrastra un archivo (JPG, PNG, WEBP o GIF, hasta 10 MB), o usa Asset URL y Add URL para un enlace directo al archivo.
- En Prompt, indica qué debe mantenerse y después el único cambio (la sección siguiente da ejemplos de redacción).
- Opcionalmente, establece un Seed. Reutilizarlo con la misma imagen e instrucción permite comparar dos redacciones.
- Pulsa Run model y mira primero la imagen en Output: un resultado suavizado se cobra como cualquier otro.
Otros editores tienen sus propios campos, como imágenes adicionales o una máscara en Qwen Image 2.1. La vista JSON junto a Form muestra el cuerpo exacto; las pestañas de código contiguas (JavaScript, Python, cURL y otras) muestran la misma llamada. Puedes copiar a tu proyecto una configuración que funcione aquí.
Después ejecútalo desde código
Instala el Python SDK (pip install spicyapi), configura SPICY_API_KEY en el entorno y ejecuta una edición. Sube la foto, muestra el precio y espera tu confirmación antes de crear la tarea:
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
MODEL = "alibaba/qwen-image-spicy-edit/edit"
source = client.upload_file("photo.jpg") # or put a public HTTPS link in image_url
body = {
"image_url": source["uri"],
"prompt": "Keep the person, pose, framing and room exactly as they are. "
"Change only the light to warm late-afternoon sun from the window on the left.",
}
quote = client.quote_task(model=MODEL, input_data=body)
print("Estimated", quote["estimatedCost"], "maximum", quote["maxCharge"])
if input("Create the task? [y/N] ").strip().lower() != "y":
raise SystemExit
task = client.create_task(
model=MODEL,
input_data=body,
idempotency_key=str(uuid.uuid4()),
quote_id=quote["quoteId"],
expected_cost=quote["estimatedCost"],
)
print("Resume task:", task["taskId"], flush=True)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise SystemExit(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
assets = output_assets(final)
if not assets or any(a.get("pending") or a.get("unavailable") or not a.get("url") for a in assets):
raise RuntimeError(f"Task {task['taskId']} has no ready output; check this task before a new run")
print(assets[0]["url"]) # copy the image to your own storage nowLa referencia del Python SDK y la guía de tareas cubren lo que va más allá de esta llamada; un servicio que deba recibir una devolución de llamada en lugar de esperar puede usar webhooks.
O deja que lo ejecute un Agent
Cuando un asistente deba realizar las ediciones, las tres herramientas oficiales muestran el precio y preguntan antes de una llamada de pago.
- CLI. Sube la foto, pon la dirección
spicy://devuelta y tu prompt eninput.jsoncomoimage_urlyprompt, y después:
``bash spicyapi files upload photo.jpg spicyapi tasks create --model alibaba/qwen-image-spicy-edit/edit --input-file input.json --wait ``
Consulta la documentación de CLI; npx @spicyapi/cli funciona sin instalación.
- Servidor MCP. Añade el servidor MCP al asistente y pide: "Edit /path/to/photo.jpg with Qwen Image Edit Spicy: keep the person, pose and room, change only the light to warm late-afternoon sun." Sube el archivo con
spicyapi_upload_file, llama aspicyapi_task_create, que se detiene para confirmar el precio, y después aspicyapi_task_wait. - Skill.
npx skills add spicyapi-ai/spicy-skillinstala el Agent Skill, que hace que el asistente de programación lea el esquema actual en lugar de adivinar campos.
Qué puedes enviar y cuánto cuesta
Una imagen de origen puede llegar a la tarea de tres maneras:
- Una URL HTTPS pública, sin subir nada. Debe devolver directamente el archivo sin credenciales; una página compartida de nube o álbum es una página web y se rechaza con 400.
- Una imagen pequeña integrada, escrita como
data:image/png;base64,...en el mismo campo. Debe ser JPEG, PNG, WebP o GIF, con un máximo de 1 MiB decodificado y 8192 píxeles por lado. - Una subida, para archivos mayores o privados: JPEG, PNG, WebP o GIF de hasta 10 MiB. Subir es gratis; solo pagas la tarea que usa el archivo. Devuelve una URI
spicy://válida durante un día.
Qwen Image 2 solo acepta JPEG, PNG y WebP. Los campos cambian entre endpoints: Qwen Image Edit Spicy y FLUX.1 Dev LoRA toman una cadena image_url, mientras que los demás usan un array image_urls. Un endpoint rechaza un campo no incluido en su esquema, no lo ignora.
El coste depende del nivel de resolución, el número de fuentes y, en Wan 2.7, de num_outputs; el precio antes de confirmar cubre tu solicitud exacta. Consulta cotizaciones y la guía de medios.
Otros endpoints: solo cambia la entrada
Los modelos que aceptan arrays usan image_urls; con varias fuentes, el prompt asigna sus papeles. Usa el mismo código con el ID de modelo y el cuerpo siguientes:
{
"model": "alibaba/qwen-image-3.0/edit",
"input": {
"prompt": "Use the person from the first image and the jacket from the second. Keep her face, hair and pose from the first image. Change nothing else.",
"image_urls": ["spicy://f/fil_...", "spicy://f/fil_..."],
"aspect_ratio": "3:4",
"resolution": "2k"
}
}Una edición con máscara en FLUX.1 Dev LoRA añade la máscara y la intensidad a un cuerpo de una sola fuente:
{
"model": "black-forest-labs/flux-1-dev-lora/edit",
"input": {
"prompt": "A black satin jacket with a high collar, same light as the rest of the photo.",
"image_url": "spicy://f/fil_...",
"mask_url": "spicy://f/fil_...",
"strength": 0.9,
"seed": 7
}
}Un strength menor se mantiene más cerca del original; el valor predeterminado es 0.8. Copia los valores del esquema actual de cada página de modelo; la guía de generación de imágenes explica las diferencias entre endpoints.
Redacta la instrucción: primero lo que se conserva, después el cambio
Un endpoint de edición redibuja lo que no especificas. Di primero qué debe quedar idéntico y luego el único cambio. Enumerar más elementos que conservar no cuesta más. En Qwen Image 3.0 y 2.1, pon enable_prompt_expansion en false para una edición fiel: está activado por defecto y amplía el prompt a una descripción de escena que puede diluir la frase de conservación.
- Solo luz: “Keep the person, pose, framing and room exactly as they are. Change only the light to warm late-afternoon sun from the window on the left. Keep the colour grade and film grain.”
- Solo fondo: “Keep the subject, outfit and crop. Replace the studio wall with dark theatre curtains. Add no logos or text.”
- Varias fuentes: “Use the person from the first image, the jacket from the second and the street from the third. Keep her face and pose from the first image. Change nothing else.”
Cambia una cosa por pasada; combinar cambios de estilo y de texto es donde la identidad se desvía. Si el resultado no acierta:
| Qué ves | Causa probable | Próximo intento |
|---|---|---|
| Resultado cuadrado o reencuadrado | aspect_ratio es 1:1 por defecto en Qwen Image 2, 2.1 y 3.0 | Envía explícitamente la proporción de la fuente |
| Tras combinar, el rostro se parece pero no es el suyo | El prompt no indica qué fuente aporta el rostro; más fuentes permiten más deriva | Usa menos fuentes, nombra la del rostro en la primera frase y cambia una cosa por pasada |
| Muebles o ventanas se movieron sin pedirlo | El informe de Qwen Image 2 señala que las ediciones complejas pueden reconstruir la habitación | Divide en dos pasadas y enumera los objetos que deben mantenerse |
| Imagen más moderada o sencilla que la solicitada | Resultado suavizado; la tarea sigue siendo exitosa | Revisa el prompt para un cambio claro o usa un endpoint con mejor historial en ese nivel |
| Texto incorrecto en un letrero | Funcionan mejor los textos cortos | Cita el texto anterior y el nuevo en la frase; deja los textos densos a Qwen Image 3.0 |
Cuando falla
Estos fallos son específicos de la edición; decide según el code numérico o el errorCode de la tarea, no el texto del mensaje.
| Qué ves | Qué significa | Qué hacer |
|---|---|---|
400 strength: is not a supported field | El campo pertenece a otro endpoint; los desconocidos se rechazan, no se ignoran | Elimínalo o usa FLUX.1 Dev LoRA si lo necesitas |
400 image_urls: must contain at most 1 items | Qwen Image 2 y el editor Spicy aceptan una fuente | Envía una o elige un endpoint multifuente |
400 Reference asset not found or does not belong to this account | URI spicy:// sin confirmar, caducada o de otra cuenta | Vuelve a subir el archivo |
400 The file linked in image_urls was not found o ... opens a web page | Enlace HTTPS incorrecto, sin conexión o a una página de visualización | Usa un enlace directo o sube el archivo |
Tarea failed, invalid_asset | El enlace HTTPS era una página de visualización o ha caducado | Sube el archivo y crea una tarea nueva con la nueva URI |
Tarea failed, content_rejected | El modelo rechazó el contenido | No reenvíes sin cambios; cambia el prompt o el modelo. Comprueba settled y cost |
Los errores de saldo, tiempo de espera y otros generales están en la referencia de errores.
Qué pasa con los archivos
Las fotos subidas duran un día y los resultados hasta 14 días; copia lo que quieras conservar a tu almacenamiento en cuanto la tarea termine correctamente. Si una foto debe permanecer menos tiempo, la documentación de retención explica cómo acortar el plazo o destruir los medios y el prompt de una tarea finalizada. Consulta también subidas temporales y entrega duradera de medios y la guía inicial de API de imágenes y vídeo.
Preguntas frecuentes
¿Hay una API de imagen a imagen sin censura con ajuste de intensidad?
Sí: FLUX.1 Dev LoRA (strength de 0 a 1, por defecto 0.8, más una máscara opcional) y el endpoint de edición de Z-Image Turbo LoRA. En los demás, el control es la instrucción y enviar strength devuelve 400 strength: is not a supported field.
¿Tengo que subir la foto?
No. Sirve un enlace HTTPS público o una imagen integrada de hasta 1 MiB; sube el archivo cuando sea mayor o privado.
¿Se cobra una edición rechazada o fallida?
Normalmente no: una tarea fallida libera toda la retención y un error de creación no cobra nada. Un resultado suavizado es una imagen terminada y se cobra.
¿La edición conservará el rostro y la pose?
No se garantiza. Especifica qué conservar, cambia una cosa por pasada y usa una sola fuente si puedes. Seedream 5.0 Pro conservó a la persona al cambiar luz y ropa, pero colocó peor el rostro al integrarla en un nuevo escenario de otra foto; Qwen Image 2 hizo bien los cambios sencillos, pero reconstruyó algunos muebles en los complejos.
¿Puedo editar la foto de una persona real?
Solo con su consentimiento documentado y nunca sexualizarla sin él. Se aplica a todos los modelos; conserva el registro en tu sistema.
¿Con qué endpoint empiezo?
Qwen Image Edit Spicy para una foto y un cambio; cambia solo cuando necesites varias fuentes, una máscara o strength. Ejecuta una edición y mira el resultado antes de cambiar de endpoint.
Cómo seguir
Ejecuta una edición en el Playground con una foto de prueba inocua y lee el precio antes de confirmar. Después elige el nivel de resolución que pagarás y decide si producción debe usar un webhook en vez de esperar.
Para redactar prompts del editor Spicy en detalle, consulta el flujo de conservación de la fuente de Qwen Image Edit Spicy. Para comparar editores de imágenes existentes más allá de la API, consulta los mejores editores de imágenes con IA sin censura. El catálogo de API de imágenes sin censura muestra todos los modelos disponibles con su etiqueta de contenido y precio actual.












