Utilisez l'API RunComfy pour exécuter qwen/qwen-edit-2509/lora. Pour les entrées et sorties acceptées, voir le schéma.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/qwen/qwen-edit-2509/lora \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "Keep the overall layout and content of the photo unchanged, but make the photo look vintage. Apply a grainy filter to the photos in each grid, giving the entire image a hazy, old-fashioned photo effect.",
"image_urls": [
"https://playgrounds-storage-public.runcomfy.net/tools/7201/media-files/1-1-input.png"
]
}'Définissez la variable d'environnement YOUR_API_TOKEN avec votre clé API (gestion dans Profil) et incluez à chaque requête un jeton Bearer dans l'en-tête Authorization : Authorization: Bearer $YOUR_API_TOKEN.
Soumettez une tâche de génération asynchrone et recevez immédiatement un request_id ainsi que des URLs pour le statut, les résultats et l'annulation.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/qwen/qwen-edit-2509/lora \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "Keep the overall layout and content of the photo unchanged, but make the photo look vintage. Apply a grainy filter to the photos in each grid, giving the entire image a hazy, old-fashioned photo effect.",
"image_urls": [
"https://playgrounds-storage-public.runcomfy.net/tools/7201/media-files/1-1-input.png"
]
}'Récupère l'état actuel pour un request_id (« in_queue », « in_progress », « completed » ou « cancelled »).
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/status \
--header "Authorization: Bearer <token>"Récupère les sorties finales et métadonnées pour le request_id ; si le travail n'est pas terminé, la réponse indique l'état actuel pour poursuivre le polling.
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/result \
--header "Authorization: Bearer <token>"Annule un travail en file d'attente via request_id ; les travaux en cours ne peuvent pas être annulés.
curl --request POST \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/cancel \
--header "Authorization: Bearer <token>"Fournissez une URL HTTPS accessible publiquement. L'hôte doit autoriser les récupérations côté serveur (sans login/cookies), sans limitation de débit ni blocage des bots. Recommandé : images ≤ 50 Mo (~4K), vidéos ≤ 100 Mo (~2–5 min en 720p). Préférez des URL stables ou pré-signées pour les actifs privés.
{
"type": "object",
"title": "Schéma d'entrée",
"required": [
"prompt",
"image_urls",
"lora_path"
],
"properties": {
"prompt": {
"title": "Prompt",
"description": "Instructions textuelles décrivant la modification souhaitée.",
"type": "string",
"default": "Keep the overall layout and content of the photo unchanged, but make the photo look vintage. Apply a grainy filter to the photos in each grid, giving the entire image a hazy, old-fashioned photo effect."
},
"image_urls": {
"title": "Images",
"description": "Tableau obligatoire contenant 1 à 10 URL d’images sources directement accessibles.",
"type": "array",
"items": {
"type": "string",
"format": "image_uri"
},
"maxItems": 10,
"minItems": 1,
"default": [
"https://playgrounds-storage-public.runcomfy.net/tools/7201/media-files/1-1-input.png"
]
},
"loras": {
"title": "LoRA",
"description": "Liste facultative de 0 à 3 poids LoRA. Chaque entrée contient `path` et `scale`.",
"type": "array",
"default": [
{
"path": "https://huggingface.co/valiantcat/Qwen-Image-Edit-2509-photous/blob/main/QwenEdit2509_photous_000010000.safetensors",
"scale": 1
}
],
"items": {
"path": {
"title": "Chemin du LoRA",
"description": "URL ou identifiant de dépôt Hugging Face (`owner/repo`) des poids LoRA.",
"type": "string",
"format": "str",
"default": ""
},
"scale": {
"title": "Échelle du LoRA",
"description": "Intensité d’application du LoRA. Plage autorisée : 0 à 4 ; valeur par défaut : 1.",
"type": "float",
"format": "float_slider_with_range",
"minimum": 0,
"maximum": 4,
"default": 1
}
},
"maxItems": 3,
"minItems": 0
},
"image_size": {
"title": "Taille de l’image",
"description": "Taille de l’image de sortie. Choisissez l’une des six valeurs proposées.",
"type": "string",
"enum": [
"square_hd",
"square",
"portrait_4_3",
"portrait_16_9",
"landscape_4_3",
"landscape_16_9"
],
"default": "landscape_16_9"
},
"num_inference_steps": {
"title": "Nombre d’étapes d’inférence",
"description": "Nombre d’étapes d’inférence. Plage autorisée : 2 à 50 ; valeur par défaut : 28.",
"type": "integer",
"minimum": 2,
"maximum": 50,
"default": 28
},
"guidance_scale": {
"title": "Échelle de guidage",
"description": "Force de suivi du prompt. Plage autorisée : 0 à 20 ; valeur par défaut : 4. Une valeur élevée rapproche davantage le résultat du prompt.",
"type": "float",
"minimum": 0,
"maximum": 20,
"default": 4
},
"num_images": {
"title": "Nombre d’images",
"description": "Nombre d’images obtenues. Plage autorisée : 1 à 4 ; valeur par défaut : 1.",
"type": "integer",
"default": 1,
"minimum": 1,
"maximum": 4
},
"output_format": {
"title": "Format de sortie",
"description": "Format de l’image de sortie. Choisissez `Default`, `jpeg` ou `png` ; la valeur par défaut est `png`.",
"type": "string",
"enum": [
"Default",
"jpeg",
"png"
],
"default": "png"
},
"seed": {
"title": "Graine",
"description": "Graine entière utilisée pour contrôler la génération. La valeur par défaut est 4571632.",
"type": "integer",
"default": 4571632
},
"negative_prompt": {
"title": "Prompt négatif",
"description": "Texte facultatif décrivant le contenu à éviter. La valeur par défaut est vide.",
"type": "string",
"default": " "
}
}
}{
"output": {
"type": "object",
"properties": {
"image": {
"type": "string",
"format": "uri",
"description": "URL d'une seule image"
},
"video": {
"type": "string",
"format": "uri",
"description": "URL d'une seule vidéo"
},
"images": {
"type": "array",
"description": "plusieurs URLs d'images",
"items": {
"type": "string",
"format": "uri"
}
},
"videos": {
"type": "array",
"description": "plusieurs URLs de vidéos",
"items": {
"type": "string",
"format": "uri"
}
}
}
}
}RunComfy est la première ComfyUI plateforme, offrant des ComfyUI en ligne environnement et services, ainsi que des workflows ComfyUI proposant des visuels époustouflants. RunComfy propose également AI Models, permettant aux artistes d'utiliser les derniers outils d'IA pour créer des œuvres d'art incroyables.