La edición de imágenes en Venice es síncrona. Envía tu imagen fuente a /image/edit o /image/multi-edit y el resultado editado vuelve en la misma respuesta como archivo PNG. Para recortes, /image/background-remove devuelve un PNG transparente.
Los endpoints de edición de imagen son experimentales y el comportamiento específico del modelo puede cambiar con el tiempo.
Endpoints
| Endpoint | Propósito | Mejor para |
|---|
POST /image/edit | Edita una sola imagen con un prompt | Edits generales e inpainting con prompt |
POST /image/multi-edit | Edita usando 1-3 imágenes en capas | Edits más controlados con máscaras u overlays |
POST /image/background-remove | Elimina el fondo de una imagen | Recortes transparentes para productos, retratos y activos |
Cuándo usar cada endpoint
- Usa
/image/edit cuando tienes una imagen fuente y quieres cambiar, eliminar o restilizar parte de ella con un prompt.
- Usa
/image/multi-edit cuando necesitas más control mediante máscaras, overlays o capas de referencia.
- Usa
/image/background-remove cuando solo quieres un sujeto en primer plano limpio con transparencia.
Para inpainting, usa /image/edit o /image/multi-edit. El antiguo parámetro inpaint en /image/generate está deprecado.
Paso 1: edita una sola imagen
La edición de imagen única es el flujo más simple de inpainting. Envía una imagen más un prompt corto como “remove the sign”, “change the sky to sunrise” o “replace the background with a studio backdrop”.
Solicitud:
POST https://api.venice.ai/api/v1/image/edit
Authorization: Bearer $VENICE_API_KEY
Content-Type: application/json
{
"model": "qwen-edit",
"prompt": "Replace the cloudy sky with a warm sunrise while preserving the buildings and canal",
"image": "https://example.com/venice-canal.jpg"
}
Respuesta (200):
El cuerpo de la respuesta es datos binarios en bruto image/png. Guárdalos directamente en un archivo.
import base64
import os
import requests
with open("input.jpg", "rb") as f:
image_base64 = base64.b64encode(f.read()).decode("utf-8")
response = requests.post(
"https://api.venice.ai/api/v1/image/edit",
headers={
"Authorization": f"Bearer {os.environ['VENICE_API_KEY']}",
"Content-Type": "application/json",
},
json={
"model": "qwen-edit",
"prompt": "Remove the tourist crowd from the square and keep the architecture intact",
"image": image_base64,
},
)
with open("edited.png", "wb") as f:
f.write(response.content)
Paso 2: usa multi-edit para máscaras o inpainting en capas
/image/multi-edit acepta hasta tres imágenes. La primera imagen es la imagen base. Las imágenes restantes se tratan como capas de edición o máscaras, lo que te da más control que la edición solo con prompt.
Es la mejor elección cuando quieres:
- apuntar a una región específica con una máscara
- combinar una composición existente con un overlay
- restringir la edición más estrechamente de lo que puede hacer un prompt en una sola imagen
Solicitud JSON:
{
"modelId": "qwen-edit",
"prompt": "Replace the blank billboard area with a glowing Venice film festival poster while preserving lighting and perspective",
"images": [
"https://example.com/street-scene.png",
"https://example.com/billboard-mask.png"
]
}
Solicitud multipart:
curl https://api.venice.ai/api/v1/image/multi-edit \
-H "Authorization: Bearer $VENICE_API_KEY" \
-F "modelId=qwen-edit" \
-F "prompt=Replace the blank billboard area with a glowing Venice film festival poster while preserving lighting and perspective" \
-F "[email protected]" \
-F "[email protected]" \
-o multi-edited.png
Al igual que /image/edit, el cuerpo de la respuesta es datos image/png en bruto.
/image/multi-edit usa actualmente el campo modelId en lugar de model en el esquema de la solicitud.
Consejos para inpainting
El inpainting basado en prompt funciona mejor cuando la instrucción es corta y local:
remove the tree
change the sky to sunset
replace the logo with a blank sign
restore the torn corner of the photo
Para cambios de escena más amplios, describe lo que debe permanecer igual:
Replace the background with a modern photo studio backdrop while preserving the subject pose, facial features, and clothing.
Si la edición sigue afectando al área equivocada, cambia de /image/edit a /image/multi-edit y proporciona una máscara o capa de overlay.
Paso 3: elimina el fondo
Usa /image/background-remove cuando quieras el sujeto en primer plano aislado sobre un fondo transparente. Este endpoint devuelve un PNG con transparencia alfa.
Usando una URL de imagen:
curl https://api.venice.ai/api/v1/image/background-remove \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-o cutout.png \
-d '{
"image_url": "https://example.com/product-photo.jpg"
}'
Usando subida de archivo local:
curl https://api.venice.ai/api/v1/image/background-remove \
-H "Authorization: Bearer $VENICE_API_KEY" \
-F "[email protected]" \
-o cutout.png
Usa la eliminación de fondo para:
- fotos de producto de ecommerce
- fotos de perfil y retratos
- activos que planeas colocar sobre un nuevo fondo
Parámetros de la solicitud
/image/edit
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|
image | archivo, cadena base64 o URL | Sí | - | Imagen fuente a editar |
prompt | string | Sí | - | Instrucciones de texto para la edición |
model | string | No | qwen-edit | ID del modelo de edición |
aspect_ratio | string | No | predeterminado del modelo | Ratio de salida para los modelos que lo admiten |
modelId | string | Deprecado | - | Alias deprecado de model |
/image/multi-edit
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|
images | array de 1-3 archivos, cadenas base64 o URLs | Sí | - | La primera imagen es la base; el resto son capas de edición o máscaras |
prompt | string | Sí | - | Instrucciones de texto sobre cómo combinar o editar las capas |
modelId | string | No | qwen-edit | ID del modelo de edición |
/image/background-remove
| Parámetro | Tipo | Obligatorio | Descripción |
|---|
image | archivo o cadena base64 | Uno de image o image_url | Imagen fuente a recortar |
image_url | string | Uno de image o image_url | URL pública de la imagen a recortar |
| Endpoint | Entrada JSON | Entrada multipart | Salida |
|---|
/image/edit | Cadena base64 o URL | Subida de archivo | image/png |
/image/multi-edit | Cadenas base64 o URLs | Subidas de archivo | image/png |
/image/background-remove | Cadena base64 o URL | Subida de archivo | image/png |
Para los endpoints de edición, las dimensiones de la imagen deben ser de al menos 65536 píxeles y no más de 33177600 píxeles. Los archivos subidos deben ser de menos de 25MB.
Modelos y precios
El modelo de edición predeterminado es qwen-edit, con precio de $0.04 por edición. Otros modelos con capacidad de edición pueden tener precios y restricciones diferentes.
Consulta:
Errores
| Estado | Significado | Acción |
|---|
400 | Parámetros de solicitud no válidos | Comprueba el número de imágenes, los nombres de campo y el formato de entrada |
401 | Autenticación fallida | Comprueba tu API key |
402 | Saldo insuficiente | Añade créditos en venice.ai/settings/api |
415 | Tipo de contenido no válido | Usa JSON o multipart form-data correctamente |
429 | Límite de velocidad excedido o modelo sobrecargado | Reintenta con backoff; comprueba la cabecera Retry-After |
500 | Procesamiento de inferencia fallido | Reintenta la solicitud |
503 | Modelo a capacidad máxima | Reintenta tras una breve demora |
Algunos modelos de edición tienen políticas de contenido más estrictas que los modelos de generación de imagen. Por ejemplo, qwen-edit bloquea solicitudes que impliquen imágenes sexuales explícitas, menores sexualizados o violencia del mundo real.
Flujos relacionados