Guide d'utilisation
Veo 3.1 image-vers-vidéo : transformer une image fixe en courte publicité vidéo via l'API
D'une image fixe de produit à 0,03 $ à une courte vidéo verticale 9:16 avec audio natif en seulement 115 secondes — exécutez le workflow complet veo-3.1/image-to-video sur l'API de tâches hiapi, avec des sorties réelles, une boucle de brouillons rapides et un pipeline par lots.
La vidéo courte pose un problème arithmétique de production impitoyable : TikTok et Reels récompensent le volume de publication, mais une seule publicité produit soignée peut engloutir un après-midi de tournage, de montage et de sound design. Le modèle image-vers-vidéo Veo 3.1 de Google (veo-3.1/image-to-video) compresse ce pipeline en deux appels API — une image fixe bon marché, une tâche vidéo — et renvoie une courte vidéo verticale déjà mixée avec un audio natif.
Voici la sortie complète générée par ce pipeline pour cet article. Une image source à 0,03 $, un appel API, 115 secondes d'attente :
Activez le son — le bruit sourd de l'atterrissage, la pulsation basse ambiante et le sifflement de la brume sont tous générés par le modèle. Rien ici n'a été monté, étalonné ou conçu manuellement. Dans ce guide, nous allons construire cette courte vidéo de bout en bout via l'API de tâches hiapi, puis étendre le même workflow en pipeline par lots pour produire des variantes courtes.
Pourquoi l'image-vers-vidéo est le bon outil pour le format court
Le texte-vers-vidéo est idéal pour l'exploration, mais le contenu commercial court part généralement d'éléments que vous maîtrisez déjà : photos de produit, visuels d'emballage, images d'affiche. L'image-vers-vidéo ajoute du mouvement tout en préservant cette identité visuelle. Pour le format TikTok/Reels, trois caractéristiques de veo-3.1/image-to-video sont particulièrement importantes :
- La sortie respecte le format de votre entrée. Il n'y a pas de paramètre
aspect_ratio— le modèle hérite de la composition de l'image que vous fournissez. Donnez-lui une image fixe verticale 9:16, vous obtenez une vidéo verticale 9:16. Les deux courtes vidéos de cet article sont sorties exactement en 1080×1920 et 720×1280, car les images fixes sources sont en 9:16. Votre décision de cadrage se prend une seule fois, à l'étape de l'image. - Audio natif. Chaque courte vidéo est accompagnée d'une piste audio AAC 48 kHz générée à partir de votre prompt — bruitages, ambiance et textures musicales. Pour le format court, l'autoplay silencieux convertit moins bien que le contenu sonore, et cela élimine toute une étape de montage.
- Résolutions adaptées aux plateformes.
720ppour les brouillons,1080ppour la qualité verticale des fils d'actualité,4kpour les courtes vidéos qui servent aussi de master pour d'autres placements.
Structure des paramètres d'entrée (vérifiée sur l'API en direct)
Avant de rédiger ce guide, nous avons sondé l'endpoint en direct. La structure des paramètres est stricte — les champs inconnus sont rejetés avec une erreur 400, donc ne devinez pas :
| Champ | Obligatoire | Type | Valeurs |
|---|---|---|---|
prompt |
Recommandé | string | Indications de mouvement, de caméra et d'audio |
image_url |
Oui | string | Une URL d'image accessible publiquement |
resolution |
Oui | string | 720p, 1080p, 4k |
duration |
Oui | integer | 4, 6 ou 8 (secondes) |
Deux points à connaître à l'avance : image_url est au singulier — c'est un modèle à référence unique, pas un mixeur multi-images — et l'URL doit être accessible publiquement (hébergée sur votre propre CDN ou stockage objet ; un lien signé localhost ne fonctionne pas).
Étape 1 — Générer l'image fixe source
N'importe quelle image 9:16 convient, y compris une vraie photo de produit. Nous avons généré notre image source avec gpt-image-2 pour 0,03 $, afin de garder tout le pipeline dans une seule API :

curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2/text-to-image",
"input": {
"prompt": "Vertical product hero shot of a chunky retro basketball sneaker in wolf-gray suede with volt yellow laces, floating at a slight tilt above a wet concrete pedestal, dramatic teal-to-amber gradient backdrop, fine mist and dust particles suspended in hard rim light, ultra-sharp commercial product photography, no text, no logos",
"aspect_ratio": "9:16",
"resolution": "1K"
}
}'
Les règles de composition pour une bonne image source i2v sont les mêmes que celles que vous donneriez à un photographe de nature morte, avec une règle supplémentaire : laissez de la marge pour le mouvement. Notre basket flotte au-dessus du socle précisément pour que le modèle vidéo ait une action physique évidente à réaliser — faire tomber la chaussure sur la pierre. Un sujet figé en pleine action raconte une histoire à Veo ; une image d'emballage statique et centrée ne lui donne rien, et vous n'obtiendrez qu'un plan de remplissage avec un mouvement de caméra.
Étape 2 — Soumettre la tâche vidéo
Même endpoint /v1/tasks, modèle différent. Le prompt doit guider trois canaux à la fois : le mouvement du sujet, la caméra et l'audio.
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1/image-to-video",
"input": {
"prompt": "The sneaker slowly rotates about 90 degrees as the camera pushes in from a low angle. Dust particles drift through the rim light. The shoe settles onto the wet stone pedestal with a deep, satisfying thud, sending a soft ring of mist rolling off the edges. A warm light sweep travels across the suede texture. Subtle bass-heavy electronic pulse builds in the background with a low whoosh on the landing. Cinematic product commercial, smooth stabilized motion, no text overlays.",
"image_url": "https://your-cdn.example.com/stills/sneaker-916.jpg",
"resolution": "1080p",
"duration": 6
}
}'
La réponse renvoie immédiatement un ID de tâche :
{"code": 200, "data": {"taskId": "tk-hiapi-01KXCTHP6F6VXQ9XZCSCCEEEMM"}, "message": "success"}
Remarquez que le prompt est écrit dans l'ordre de lecture de la courte vidéo : rotation → travelling avant → atterrissage → balayage lumineux, avec les indications audio attachées au moment où elles se produisent (le « bruit sourd » à l'atterrissage, la pulsation en dessous). Veo suit très littéralement l'ordre des événements dans le prompt — c'est précisément ce qui le rend scriptable.
Étape 3 — Interroger et télécharger
Les tâches vidéo sont asynchrones. Interrogez la tâche jusqu'à ce que status passe à success, puis téléchargez la sortie immédiatement — l'URL est un lien temporaire avec un horodatage expireAt, pas un stockage permanent :
import os, time, requests
API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}
def wait_and_download(task_id: str, out_path: str, timeout_s: int = 900):
deadline = time.time() + timeout_s
while time.time() < deadline:
task = requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
if task["status"] == "success":
url = task["output"][0]["url"] # temp link — expires!
clip = requests.get(url, timeout=120).content
with open(out_path, "wb") as f:
f.write(clip) # persist to your own storage now
return out_path
if task["status"] == "fail":
raise RuntimeError(task.get("error"))
time.sleep(10)
raise TimeoutError(task_id)
Lors de notre exécution, la courte vidéo 6 secondes 1080p a pris 115 secondes entre la soumission et l'achèvement. C'est assez rapide pour l'intégrer dans un pipeline de contenu sans file d'attente en amont.
Brouillon économique, finition soignée : workflow à deux niveaux
Veo 3.1 dispose d'un niveau rapide — veo-3.1-fast/image-to-video — avec exactement la même structure d'entrée et un prix par seconde inférieur de moitié. Cela permet un workflow inspiré de la photographie : prendre un polaroïd avant de brûler de la pellicule. Itérez votre prompt de mouvement sur le niveau rapide en 720p, puis ne re-rendez le prompt gagnant que sur le niveau standard.
Voici le brouillon rapide avec exactement le même prompt et la même image fixe source (6 secondes, 720p, 1,50 $, terminé en 58 secondes) :
Le brouillon capte les mêmes temps forts — rotation, atterrissage, brume — mais les détails de texture sont visiblement plus simples et le mixage audio plus plat. Pour l'itération de prompt, c'est tout ce dont vous avez besoin : vous vérifiez la mise en scène, pas la finition. Les deux courtes vidéos de cet article ont été tournées du premier coup ; le niveau rapide est votre moyen de vous assurer que la prise standard est la seule que vous payez.
Passer à la production par lots
La stratégie du format court est un jeu de volume — vous voulez 5 à 10 variantes par produit pour tester les accroches. Comme tout passe par un endpoint asynchrone, le traitement par lots n'est qu'une boucle : soumettez toutes les tâches, puis collectez.
STILLS = [
("sneaker-916.jpg", "rotates and lands on the pedestal with a deep thud..."),
("bottle-916.jpg", "condensation beads race down the glass as camera orbits..."),
("headphones-916.jpg","earcup unfolds in slow motion, soft click, synth swell..."),
]
task_ids = []
for still, motion in STILLS:
r = requests.post(API, headers=HEADERS, json={
"model": "veo-3.1-fast/image-to-video", # draft tier for the first sweep
"input": {
"prompt": motion,
"image_url": f"https://your-cdn.example.com/stills/{still}",
"resolution": "720p",
"duration": 6,
},
}, timeout=60).json()
task_ids.append(r["data"]["taskId"])
for i, tid in enumerate(task_ids):
wait_and_download(tid, f"draft-{i}.mp4")
Soumettre d'abord, collecter ensuite est essentiel : les courtes vidéos sont générées en parallèle côté plateforme, donc dix brouillons prennent environ le temps d'un seul brouillon, pas dix fois plus.
Combien ça coûte
Selon la tarification hiapi, les deux niveaux sont facturés à la seconde de vidéo produite :
| Modèle | Prix | Courte vidéo 4 s | Courte vidéo 6 s | Courte vidéo 8 s |
|---|---|---|---|---|
veo-3.1/image-to-video |
0,57 $/s | 2,28 $ | 3,42 $ | 4,56 $ |
veo-3.1-fast/image-to-video |
0,25 $/s | 1,00 $ | 1,50 $ | 2,00 $ |
Tout ce qui est montré dans cet article — une image fixe source, une image de couverture, un brouillon rapide et une version finale 1080p — a coûté 4,98 $ en API. Un workflow avec trois brouillons rapides et une finale standard coûte environ 8 $ par verticale finie, ce qui est d'un tout autre ordre de grandeur qu'une journée de tournage.
Questions fréquentes
Comment contrôler le rapport d'aspect ? Impossible — la sortie hérite du format de l'image d'entrée. Pour TikTok/Reels, générez ou recadrez l'image fixe source en 9:16 avant de soumettre. Notre image fixe 9:16 a produit exactement une sortie 1080×1920.
L'audio est-il vraiment généré ? Oui. Les deux courtes vidéos ci-dessus comportent une piste audio AAC 48 kHz générée par le modèle — bruitages (le bruit sourd de l'atterrissage), ambiance et textures musicales, le tout guidé par le prompt. Décrivez les sons dans le prompt au moment où ils doivent se produire.
Combien de temps prend la génération ? Dans nos exécutions mesurées : 58 secondes pour une courte vidéo 6 s/720p en niveau rapide, 115 secondes pour une courte vidéo 6 s/1080p en niveau standard. Prévoyez quelques minutes par courte vidéo, et utilisez le modèle tout-soumettre-puis-collecter pour les lots.
Peut-on utiliser une vraie photo de produit au lieu d'une image fixe générée ? Bien sûr — c'est le cas d'usage principal. L'image doit simplement être accessible publiquement via une URL. Gardez le sujet net, laissez de la marge pour le mouvement et décrivez le mouvement souhaité dans le prompt.
Quand faut-il payer pour le 4k ? Lorsque la verticale sert aussi d'actif master — recadrez la source 4k pour les placements en fil d'actualité, les visuels de site web et les unités payantes. Pour une diffusion uniquement en fil d'actualité, le 1080p est la résolution finale après transcodage par la plateforme.
Publiez votre première courte vidéo
Tout le pipeline tient en deux POST et une interrogation : une image fixe entre, une publicité verticale avec son sort, en environ deux minutes. Obtenez votre clé API, pointez les extraits de code ci-dessus vers votre meilleure photo de produit, exécutez un brouillon rapide 720p — 1,50 $ pour six secondes, c'est l'audition la moins chère que vous puissiez vous offrir. Les paramètres complets et des exemples en direct sont sur la page du modèle veo-3.1/image-to-video, et si vous comparez les moteurs i2v, nos recettes de prompts image-vers-vidéo Hailuo 2.3 se prêtent bien à une comparaison côte à côte.
Articles similaires
Voir tous les articles →-
Guide d'utilisation
Guide de démarrage pour seedream-5.0-pro/image-to-image : capacités, tarification et points d'intégration
Limites de capacité, mode de facturation et pratiques d'intégration technique du modèle d'édition d'image de ByteDance
-
Guide d'utilisation
Guide de prise en main de la génération d'images par texte avec seedream-5.0-pro : limites de capacités, intégration API et maîtrise des coûts
Point de vue pratique pour les développeurs : des points clés des paramètres à l'estimation du coût de 0,05 $ par image
-
Guide d'utilisation
Guide de prise en main de Hailuo 2.3 Fast image-to-video : limites de capacités, tarification et intégration pratique
Points clés pour les développeurs : choisir et intégrer le modèle image-to-video de MiniMax