Guide d'utilisation
Ray 3.2 image-vers-vidéo : transformez une image statique en court clip vertical
Transformez vos photos produit et vos portraits existants en clips vidéo 9:16, avec en bonus une astuce de boucle sans couture end_image_url validée
TL;DR
- De quoi s'agit-il : un workflow reproductible qui utilise ray-3.2/image-to-video sur l'API de tâches asynchrones hiapi pour transformer des images statiques que vous possédez déjà (par exemple des photos produit ou des portraits) en courts clips verticaux.
- Le fait clé qui décide de tout : ray-3.2 i2v n'a ni champ
aspect_rationi champduration. La forme du clip vient de l'image d'entrée, et sa durée est toujours d'environ 5 secondes. Pour obtenir un vertical 9:16, fournissez une image statique 9:16. Tout l'astuce est là. - Ce qui change par rapport à notre tutoriel précédent : le schéma accepte désormais un
end_image_urlfacultatif (image finale). Si vous utilisez la même image comme première et dernière image, vous obtenez un clip qui se termine là où il a commencé, exactement ce qu'il faut pour une boucle sans couture. - Vérification : chaque clip ci-dessous a été généré pour cet article dans un seul traitement fan-out par lots. Trois clips en 540p, $0.2145 chacun ($0.6435 au total), 41 à 58 secondes côté serveur chacun. Les trois sont revenus en MP4 540×960, 24 fps, 5,04 s, sans audio.
La plupart des équipes de short-form ne manquent pas d'idées. Elles ont une pile de photos produit, de visuels publicitaires et de portraits de créateurs, mais rien ne bouge jamais. L'image-vers-vidéo résout ce problème : votre visuel reste l'ancrage, et le modèle ajoute le mouvement. Ce guide couvre ce travail de bout en bout avec Ray 3.2 : préparer les images statiques, écrire les prompts de mouvement, traiter par lots, l'astuce de la boucle, et ce qu'il faut corriger au montage.
Image-vers-vidéo ou texte-vers-vidéo : lequel vous faut-il ?
Ray 3.2 dispose de deux endpoints distincts sur hiapi, adaptés à des tâches short-form différentes :
- Image-vers-vidéo (cette page) : vous avez déjà le visuel. Le modèle doit conserver votre produit, votre mannequin et votre lumière, et ne faire que les animer. Idéal pour les présentations produit, les passages du catalogue à Reels, les images statiques de créateurs, et tout clip où l'exactitude de la marque prime sur la nouveauté.
- Texte-vers-vidéo : vous avez une idée mais pas de matière. Le modèle compose tout le plan. Si c'est votre cas, notre workflow short-form texte-vers-vidéo Ray 3.2 couvre la génération de concepts par lots à partir du seul prompt.
Ces deux workflows sont réellement différents. En texte-vers-vidéo, vous choisissez le format vertical en passant aspect_ratio: "9:16". En image-vers-vidéo, ce champ n'existe pas, donc la composition se décide avant l'appel API, au moment de préparer l'image statique.
La requête : trois champs obligatoires ou courants, un nouveau champ facultatif
Nous avons vérifié le schéma champ par champ contre l'API en production le 2026-11-01. Il est fermé, donc les clés inconnues renvoient une erreur 400 :
| Champ | Obligatoire | Valeurs | Description |
|---|---|---|---|
prompt |
Oui | Texte | Décrivez le mouvement, pas la scène. La scène est déjà dans votre image |
image_url |
Oui | URL publique | Première image. Elle détermine le ratio d'aspect de la sortie |
resolution |
Non | 540p, 720p, 1080p |
La seule chose que vous payez (voir ci-dessous) |
end_image_url |
Non | URL publique | Image finale facultative. Ajoutée depuis la rédaction de notre guide pratique |
duration et aspect_ratio sont toujours rejetés directement (additional properties 'duration' not allowed). Les autres noms d'image finale que vous pourriez deviner, comme last_frame_url, tail_image_url ou end_frame_url, sont rejetés de la même manière. Le champ est end_image_url, rien d'autre.
Un seul clip vertical :
curl -s https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "ray-3.2/image-to-video",
"input": {
"prompt": "Slow cinematic push-in toward the serum bottle, a single water droplet slides down the amber glass...",
"image_url": "https://your-cdn.example.com/serum-9x16.jpg",
"resolution": "540p"
}
}'
Vous recevez data.taskId. Interrogez GET /v1/tasks/{taskId} jusqu'à ce que data.status vaille success (ou fail), puis téléchargez immédiatement output[0].url, car c'est un lien temporaire avec un expireAt. Le guide pratique contient le script Python complet de soumission/polling/téléchargement et les charges d'erreur, et le démarrage rapide couvre les clés et les bases de l'API de tâches.
Tarification : la résolution est le seul levier
Prix en vigueur de ray-3.2/image-to-video (d'après la tarification hiapi au moment de la rédaction ; revérifiez toujours sur place) :
| Résolution | Prix par clip |
|---|---|
| 540p | $0.2145 |
| 720p | $0.429 |
| 1080p | $1.7145 |
La durée du clip est fixe, le ratio d'aspect vient de votre image, donc vous ne payez jamais un supplément pour le vertical, et aucune option « clip plus long » ne vous permet de monter en gamme. Un clip en 1080p coûte l'équivalent de huit clips en 540p. Le schéma pour le short-form est donc le même que pour tout modèle vidéo facturé au clip : testez le mouvement en 540p, puis ne re-rendez en 720p ou 1080p que les combinaisons prompt + image statique retenues pour la version à publier. Pour le tableau complet des coûts Ray 3.2 sur les deux endpoints, consultez le détail de la tarification de l'API Ray 3.2.
Étape 1 : préparez une image statique 9:16 (c'est de là que vient le vertical)
Le modèle ne peut pas recomposer votre plan, donc l'image statique doit être correcte avant la soumission :
- Passez en 9:16. Nous avons utilisé des images statiques de 720×1280. En
540p, elles reviennent en 540×960, vertical natif, sans recadrage ultérieur. Une photo produit en paysage vous donnera un clip en paysage, donc recadrez-la ou étendez-la en 9:16 au préalable. - Laissez de la marge pour le mouvement. Les mouvements de caméra poussent dans le cadre. Notre image statique de sérum avait beaucoup de fond vide au-dessus du flacon, et le push-in a utilisé cet espace sans couper le bouchon.
- Placez l'accroche dans le visuel lui-même. La première image du clip est votre image, donc tout ce qui peut arrêter le défilement (produit, visage, lumière) doit déjà être dans l'image statique.
Les deux images statiques de cet article ont été générées avec gpt-image-2 en images 9:16 natives. En usage réel, vous mettrez vos propres photos produit ou portraits :

Étape 2 : décrivez le mouvement, pas la scène
L'image indique déjà ce qu'il y a dans le plan. Le prompt n'a besoin que de décrire comment cela bouge. Trois choses ont fonctionné dans ce lot :
- Spécifiez un mouvement de caméra (push-in, dérive douce, caméra fixe), et précisez ce qui doit rester immobile.
- Donnez au sujet un ou deux battements physiques, comme une goutte d'eau qui glisse, une lumière qui balaie ou des cheveux qui se soulèvent. C'est ce qui fait qu'un clip de 5 secondes paraît vivant plutôt qu'un simple panoramique Ken Burns.
- Choisissez un mouvement adapté au type de matière. Les produits demandent des variations de lumière lentes et maîtrisées. Les personnes supportent des mouvements plus amples et plus chaleureux.
Clip produit (le clip de couverture ci-dessus). Prompt :
Slow cinematic push-in toward the serum bottle, a single water droplet slides
down the amber glass, a band of warm light sweeps across the bottle from left
to right and makes the gold cap glint, the background stays dark and still,
premium skincare commercial
Le push-in et le balayage lumineux ont bien fonctionné, la forme du flacon et le bouchon doré ont été conservés. Une réserve honnête : lorsque la lumière balaie, la poire en caoutchouc noir du compte-gouttes est devenue plus claire, plus métallique. Pour un vrai SKU, c'est le genre de dérive de détail que les équipes de marque relèveront. Vérifiez les détails produit image par image avant publication, et si une pièce dérive systématiquement, essayez une instruction de balayage lumineux plus faible ou gardez le mouvement sur l'arrière-plan.
Portrait / image statique de créateur. Prompt :
The wind lifts her curls, she turns her head slightly toward the camera and
her half-smile widens into a warm smile, the golden-hour backlight flickers
through her hair, the camera holds steady with a very gentle drift, natural
lifestyle feel
Le visage, le pull et la lumière de l'heure dorée sont restés cohérents, et le mouvement de tête et le sourire étaient au rendez-vous. Cependant, le mouvement de caméra de Ray 3.2 est plus ample que ce que « très douce dérive » laissait entendre : à la dernière image, elle avait glissé de l'autre côté du cadre et la ligne d'horizon derrière elle avait bougé. Pour les plans de personnes, attendez-vous à ce que le modèle interprète votre prompt de mouvement avec largesse. Si vous avez besoin d'un cadre fixe, dites-le explicitement, comme nous l'avons fait dans le prompt de boucle ci-dessous.
Étape 3 : l'astuce de la boucle avec end_image_url
Les boucles fonctionnent très bien dans les flux short-form. Un clip qui redémarre sans couture sera rejoué, et il peut aussi servir d'arrière-plan pour des sous-titres ou des annotations produit. Le end_image_url facultatif de Ray 3.2 facilite cela : mettez la même image statique comme première et dernière image, et le modèle doit revenir au point de départ.
{
"model": "ray-3.2/image-to-video",
"input": {
"prompt": "Seamless loop: the warm light slowly brightens and dims across the serum bottle, water droplets glisten, a faint wisp of mist drifts past the stone and fades out, the camera stays locked off, the bottle does not move",
"image_url": "https://your-cdn.example.com/serum-9x16.jpg",
"end_image_url": "https://your-cdn.example.com/serum-9x16.jpg",
"resolution": "540p"
}
}
Nous avons mesuré plutôt qu'estimé à l'œil. Nous avons extrait la première et la dernière image de chaque clip et les avons comparées avec SSIM (1,0 signifie identiques) :
| Clip | end_image_url |
SSIM première/dernière image |
|---|---|---|
| Boucle (même image statique comme image finale) | Oui | 0,958 |
| Push-in produit | Non | 0,654 |
| Portrait | Non | 0,410 |
Avec une image finale fixée, le clip se termine presque exactement là où il a commencé, assez proche pour qu'une simple répétition dans l'éditeur ou la lecture automatique d'une plateforme ne produise aucun saut visible. Sans fixation, le clip se termine ailleurs, ce qui convient pour un montage mais pas pour une boucle. Deux choses à retenir :
- Gardez un mouvement de boucle cyclique. Une lumière qui s'intensifie puis s'atténue, une brume qui entre puis sort, une caméra fixe : tout cela fonctionne. Un push-in ne peut pas « revenir » de façon convaincante en cinq secondes.
- Nous n'avons testé que des boucles avec la même image. Fournir une image finale différente (par exemple, une boîte fermée en première image et une boîte ouverte en dernière image) est précisément l'usage prévu de ce champ, mais nous n'avons pas vérifié ces résultats ici, donc testez avant de bâtir une campagne dessus.
Étape 4 : traitement par lots : d'abord fan-out, ensuite collecte
L'API de tâches est asynchrone, donc ne rendez pas les clips un par un. Soumettez toutes les paires image statique + prompt d'abord, enregistrez chaque taskId sur disque dès que vous l'obtenez, puis interrogez :
for each (still, prompt) pair:
taskId = POST /v1/tasks (model=ray-3.2/image-to-video, input={...})
persist taskId immediately # the task is billed at submit
for each saved taskId:
poll GET /v1/tasks/{taskId} until status in ("success", "fail")
on success: download output[0].url now (it expires)
Notre lot de trois clips a été soumis en continu, avec des durées côté serveur de 44 s (produit), 41 s (boucle) et 58 s (portrait). Comme ils s'exécutent en parallèle, le lot entier a pris environ le temps du clip le plus lent, soit un peu plus d'une minute en incluant l'intervalle de polling de 8 s. Si un polling échoue à cause d'un incident réseau, réessayez avec le même id. Une nouvelle soumission crée et facture un second clip.
Étape 5 : finalisez dans l'éditeur
L'API vous donne des rushes, pas une publication finie :
- Pas d'audio. Les trois clips ne contiennent qu'un flux vidéo H.264, sans piste audio. Ajoutez un son tendance, une voix off ou des sous-titres dans l'éditeur.
- 5 secondes, c'est un battement. Empilez trois ou quatre clips (par exemple push-in produit → boucle en arrière-plan des sous-titres → réaction du créateur), montez une version de 15 à 20 secondes, et coupez franchement sur les temps forts.
- Mise à l'échelle des seuls gagnants. Relancez les images statiques + prompts retenus en 720p ou 1080p pour l'export final, plutôt que de rendre tout le lot en haute résolution.
FAQ
Comment obtenir un clip vertical 9:16 avec ray-3.2 image-vers-vidéo ? Fournissez une image d'entrée 9:16. Il n'y a pas de paramètre aspect_ratio, la sortie suit la forme de l'entrée. Une image statique de 720×1280 revient en clip 540×960 en 540p.
Puis-je faire un clip de plus de 5 secondes ? Pas avec cet endpoint. Il n'y a pas de champ duration, et l'envoyer renvoie une erreur 400. Chaque clip que nous avons généré fait 5,04 s (121 images à 24 fps). Empilez des clips au montage pour des versions plus longues.
Ray 3.2 i2v prend-il en charge une image finale ? Oui. Le champ facultatif end_image_url définit l'image finale. En passant la même image que pour image_url, on obtient un clip bouclable (SSIM première/dernière image de 0,958 dans notre test).
Génère-t-il du son ? Non, le MP4 de sortie est muet.
Conserve-t-il mon produit exactement tel quel ? Dans notre test, la forme, la couleur et la composition générale ont bien été conservées, mais de petits éléments peuvent dériver sous un fort mouvement lumineux (la couleur de notre poire de compte-gouttes a changé). Vérifiez les détails produit avant publication.
Combien coûte un lot ? La facturation dépend uniquement de la résolution et du nombre de clips : $0.2145 en 540p, $0.429 en 720p, $1.7145 en 1080p. Notre lot de test de trois clips a coûté $0.6435.
Commencez à animer vos images statiques
Ray 3.2 image-vers-vidéo est désormais disponible sur l'API de tâches asynchrones. Ouvrez la page du modèle ray-3.2/image-to-video pour voir les paramètres et tarifs actuels, puis prenez trois images statiques 9:16 existantes et lancez-les en 540p. Vous obtiendrez un lot de test pour bien moins d'un dollar. Vous comparez des modèles pour la même tâche ? Découvrez comment Kling 3.0 aborde le short-form image-vers-vidéo.
Articles similaires
Voir tous les articles →-
Guide d'utilisation
Qu'est-ce que GPT Image 2.6 ? L'édition par markup et les spécifications connues
Toutes les informations sur GPT Image 2.6 dans la spécification de l'API OpenAI, comment utiliser le nouveau paramètre d'édition markup, et ce qui n'a pas encore été annoncé.
-
Guide d'utilisation
Combien coûte l'API Vidu Q4 Preview ? 540p à 0,0515 $ par seconde
Les deux modes au même prix, comment est facturée chaque résolution sur cinq niveaux et de 3 à 16 secondes, combien de vidéos produire avec 10 $, et le comparatif de prix avec les autres modèles vidéo de la plateforme.
-
Guide d'utilisation
Recraft V4.1 Flash pour photos produit e-commerce : des visuels de catalogue en série à 0,01 $ pièce
Un véritable lot parallèle sur recraft-v4.1-flash/text-to-image : photos de fiche produit et mises en situation, blancheur du fond mesurée, temps d'exécution et script par lots.