Utilisez l'API RunComfy pour exécuter wan-ai/wan-3.0/image-to-video. Pour les entrées et sorties acceptées, voir le schéma.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/wan-ai/wan-3.0/image-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "A vintage cream convertible parked on a windswept coastal cliff at golden hour; the camera slowly orbits to reveal the ocean below, tall grass sways in the sea breeze, warm sunlight glints across the chrome trim, gentle lens flare, cinematic anamorphic look, smooth continuous motion.",
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7413/media-files/input-promo.webp"
}'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/wan-ai/wan-3.0/image-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "A vintage cream convertible parked on a windswept coastal cliff at golden hour; the camera slowly orbits to reveal the ocean below, tall grass sways in the sea breeze, warm sunlight glints across the chrome trim, gentle lens flare, cinematic anamorphic look, smooth continuous motion.",
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7413/media-files/input-promo.webp"
}'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_url"
],
"properties": {
"prompt": {
"title": "Prompt",
"description": "Décrivez le mouvement, l'action, le mouvement de la caméra, l'éclairage et le style dans lequel vous souhaitez animer la première image.",
"type": "string",
"default": "A vintage cream convertible parked on a windswept coastal cliff at golden hour; the camera slowly orbits to reveal the ocean below, tall grass sways in the sea breeze, warm sunlight glints across the chrome trim, gentle lens flare, cinematic anamorphic look, smooth continuous motion."
},
"image_url": {
"title": "Image de la première image",
"description": "Image de la première image que le modèle anime en vidéo. Utilisez une image claire et de haute qualité pour une meilleure préservation du sujet.",
"type": "string",
"default": "https://playgrounds-storage-public.runcomfy.net/tools/7413/media-files/input-promo.webp"
},
"end_image_url": {
"title": "Image de la dernière image (facultatif)",
"description": "Image facultative de la dernière image utilisée pour guider la pose, la composition ou la scène finale de la vidéo.",
"type": "string",
"default": ""
},
"resolution": {
"title": "Résolution",
"description": "Niveau de résolution de sortie. Utilisez 480p pour des brouillons rapides et 1080p pour une sortie de meilleure qualité.",
"type": "string",
"enum": [
"480p",
"720p",
"1080p"
],
"default": "720p"
},
"aspect_ratio": {
"title": "Format d'image",
"description": "Rapport hauteur/largeur de sortie. Utilisez adaptive pour faire correspondre les proportions de l'image d'entrée.",
"type": "string",
"enum": [
"adaptive",
"16:9",
"9:16",
"1:1",
"4:3",
"3:4"
],
"default": "adaptive"
},
"duration": {
"title": "Durée (secondes)",
"description": "Durée de la vidéo générée en secondes. La plage est de 2 à 30. Commencez brièvement pour itérer, puis augmentez une fois que le mouvement semble correct.",
"type": "integer",
"minimum": 2,
"maximum": 30,
"default": 5
},
"thinking_mode": {
"title": "Mode réflexion",
"description": "Permettez une interprétation rapide et plus profonde pour les scènes complexes avec plusieurs exigences de mouvement ou de composition.",
"type": "boolean",
"default": false
},
"enable_audio": {
"title": "Générer l’audio",
"description": "Lorsqu'elle est activée, la vidéo de sortie comprend une piste audio synchronisée. Éteignez-le pour un clip silencieux.",
"type": "boolean",
"default": true
},
"seed": {
"title": "Seed",
"description": "Graine aléatoire pour des résultats reproductibles. La plage va de 0 à 2147483647.",
"type": "integer"
}
}
}{
"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.