Usa la API de RunComfy para ejecutar tongyi-mai/z-image/turbo/inpainting. Para entradas y salidas admitidas, consulta el esquema.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/tongyi-mai/z-image/turbo/inpainting \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "Replace the girl’s current top with a short red polka-dot swimsuit top. Keep the girl’s face, hairstyle, body proportions, and pose unchanged. The lighting should be natural and consistent with a beach environment, with realistic colors and details.",
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7294/media-files/input-1-1.png",
"mask_image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7294/media-files/mask.png"
}'Define la variable de entorno YOUR_API_TOKEN con tu clave API (gestión en Perfil) e incluye en cada solicitud un token Bearer en la cabecera Authorization : Authorization: Bearer $YOUR_API_TOKEN.
Envía un trabajo de generación asíncrono y recibe de inmediato un request_id y URLs para consultar estado, obtener resultados y cancelar.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/tongyi-mai/z-image/turbo/inpainting \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "Replace the girl’s current top with a short red polka-dot swimsuit top. Keep the girl’s face, hairstyle, body proportions, and pose unchanged. The lighting should be natural and consistent with a beach environment, with realistic colors and details.",
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7294/media-files/input-1-1.png",
"mask_image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7294/media-files/mask.png"
}'Obtiene el estado actual de un request_id ("in_queue", "in_progress", "completed" o "cancelled").
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/status \
--header "Authorization: Bearer <token>"Obtiene las salidas finales y metadatos del request_id; si el trabajo no ha terminado, la respuesta devuelve el estado actual para seguir haciendo polling.
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/result \
--header "Authorization: Bearer <token>"Cancela un trabajo en cola por request_id; los trabajos en curso no se pueden cancelar.
curl --request POST \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/cancel \
--header "Authorization: Bearer <token>"Proporciona una URL HTTPS públicamente accesible. El host debe permitir peticiones del servidor (sin login/cookies), sin rate limit agresivo ni bloqueo de bots. Recomendado: imágenes ≤ 50 MB (~4K), vídeos ≤ 100 MB (~2–5 min a 720p). Para activos privados, URLs estables o firmadas.
{
"type": "object",
"title": "Esquema de entrada",
"required": [
"prompt",
"image_url",
"mask_image_url"
],
"properties": {
"prompt": {
"title": "Prompt",
"description": "",
"type": "string",
"default": "Replace the girl’s current top with a short red polka-dot swimsuit top. Keep the girl’s face, hairstyle, body proportions, and pose unchanged. The lighting should be natural and consistent with a beach environment, with realistic colors and details."
},
"image_url": {
"title": "Imagen",
"description": "URL válida de la imagen de origen que se utilizará para el inpainting.",
"type": "string",
"default": "https://playgrounds-storage-public.runcomfy.net/tools/7294/media-files/input-1-1.png"
},
"mask_image_url": {
"title": "Imagen de máscara",
"description": "URL válida de la máscara que delimita la zona que se va a editar.",
"type": "string",
"default": "https://playgrounds-storage-public.runcomfy.net/tools/7294/media-files/mask.png"
},
"control_start": {
"title": "Inicio del control",
"description": "Punto inicial del condicionamiento de ControlNet, en una escala de 0 a 1.",
"type": "float",
"minimum": 0,
"maximum": 1,
"default": 0
},
"strength": {
"title": "Intensidad de inpainting",
"description": "Controla la intensidad del condicionamiento de inpainting.",
"type": "float",
"minimum": 0,
"maximum": 1,
"default": 1
},
"image_size": {
"title": "Relación de aspecto (An:Al)",
"description": "",
"type": "string",
"enum": [
"square_hd",
"square",
"portrait_4_3",
"portrait_16_9",
"landscape_4_3",
"landscape_16_9",
"auto"
],
"default": "auto"
},
"num_inference_steps": {
"title": "Número de pasos de inferencia",
"description": "Controla el número de pasos de difusión.",
"type": "integer",
"minimum": 1,
"maximum": 30,
"default": 20
},
"seed": {
"title": "Semilla",
"description": "",
"type": "integer",
"default": 0
},
"output_format": {
"title": "Formato de salida",
"description": "Define el formato de archivo de la imagen generada.",
"type": "string",
"enum": [
"jpeg",
"png",
"webp"
],
"default": "png"
},
"control_scale": {
"title": "Intensidad del control",
"description": "Define la intensidad del condicionamiento de ControlNet para el inpainting.",
"type": "float",
"minimum": 0,
"maximum": 1,
"default": 0.75
},
"control_end": {
"title": "Fin del control",
"description": "Punto final del condicionamiento de ControlNet, en una escala de 0 a 1.",
"type": "float",
"minimum": 0,
"maximum": 1,
"default": 0.6
}
}
}{
"output": {
"type": "object",
"properties": {
"image": {
"type": "string",
"format": "uri",
"description": "URL de una sola imagen"
},
"video": {
"type": "string",
"format": "uri",
"description": "URL de un solo vídeo"
},
"images": {
"type": "array",
"description": "varias URLs de imagen",
"items": {
"type": "string",
"format": "uri"
}
},
"videos": {
"type": "array",
"description": "varias URLs de vídeo",
"items": {
"type": "string",
"format": "uri"
}
}
}
}
}RunComfy es la principal ComfyUI plataforma, ofreciendo ComfyUI en línea entorno y servicios, junto con flujos de trabajo de ComfyUI con impresionantes imágenes. RunComfy también ofrece AI Models, permitiendo a los artistas aprovechar las últimas herramientas de AI para crear arte increíble.