Usa l'API RunComfy per eseguire tongyi-mai/z-image/turbo/inpainting. Per input e output accettati, consulta lo schema.
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"
}'Imposta la variabile d'ambiente YOUR_API_TOKEN con la tua chiave API (gestione nel Profilo) e includi in ogni richiesta un token Bearer nell'intestazione Authorization : Authorization: Bearer $YOUR_API_TOKEN.
Invia un job di generazione asincrono e ricevi subito un request_id e URL per stato, risultati e annullamento.
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"
}'Recupera lo stato corrente per 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>"Recupera output finali e metadati per il request_id; se il job non è completo, la risposta restituisce lo stato corrente per continuare il polling.
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/result \
--header "Authorization: Bearer <token>"Annulla un job in coda tramite request_id; i job in corso non possono essere annullati.
curl --request POST \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/cancel \
--header "Authorization: Bearer <token>"Fornisci un URL HTTPS raggiungibile pubblicamente. L'host deve consentire fetch lato server (senza login/cookie), senza rate limit eccessivo o blocco bot. Consigliato: immagini ≤ 50 MB (~4K), video ≤ 100 MB (~2–5 min a 720p). Per asset privati, URL stabili o pre-firmati.
{
"type": "object",
"title": "Schema di input",
"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": "Immagine",
"description": "URL valida dell’immagine di partenza da usare per l’inpainting.",
"type": "string",
"default": "https://playgrounds-storage-public.runcomfy.net/tools/7294/media-files/input-1-1.png"
},
"mask_image_url": {
"title": "Immagine maschera",
"description": "URL valida della maschera che delimita l’area da modificare.",
"type": "string",
"default": "https://playgrounds-storage-public.runcomfy.net/tools/7294/media-files/mask.png"
},
"control_start": {
"title": "Inizio controllo",
"description": "Punto iniziale del condizionamento ControlNet, su una scala da 0 a 1.",
"type": "float",
"minimum": 0,
"maximum": 1,
"default": 0
},
"strength": {
"title": "Intensità inpainting",
"description": "Regola l’intensità del condizionamento di inpainting.",
"type": "float",
"minimum": 0,
"maximum": 1,
"default": 1
},
"image_size": {
"title": "Proporzioni (L:A)",
"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": "Numero di passaggi di inferenza",
"description": "Regola il numero di passaggi di diffusione.",
"type": "integer",
"minimum": 1,
"maximum": 30,
"default": 20
},
"seed": {
"title": "Seed",
"description": "",
"type": "integer",
"default": 0
},
"output_format": {
"title": "Formato di output",
"description": "Definisce il formato file dell’immagine generata.",
"type": "string",
"enum": [
"jpeg",
"png",
"webp"
],
"default": "png"
},
"control_scale": {
"title": "Intensità controllo",
"description": "Definisce l’intensità del condizionamento ControlNet per l’inpainting.",
"type": "float",
"minimum": 0,
"maximum": 1,
"default": 0.75
},
"control_end": {
"title": "Fine controllo",
"description": "Punto finale del condizionamento ControlNet, su una scala da 0 a 1.",
"type": "float",
"minimum": 0,
"maximum": 1,
"default": 0.6
}
}
}{
"output": {
"type": "object",
"properties": {
"image": {
"type": "string",
"format": "uri",
"description": "URL immagine singola"
},
"video": {
"type": "string",
"format": "uri",
"description": "URL video singolo"
},
"images": {
"type": "array",
"description": "più URL immagine",
"items": {
"type": "string",
"format": "uri"
}
},
"videos": {
"type": "array",
"description": "più URL video",
"items": {
"type": "string",
"format": "uri"
}
}
}
}
}RunComfy è la piattaforma principale ComfyUI che offre ComfyUI online ambiente e servizi, insieme a workflow di ComfyUI con visuali mozzafiato. RunComfy offre anche AI Models, consentire agli artisti di sfruttare gli ultimi strumenti di AI per creare arte incredibile.