HiAPI
Blog

Guide d'utilisation

Veo 3.1 Lite image-vers-vidéo : transformer une photo en clip vidéo via l'API hiapi

Un workflow image-vers-vidéo étape par étape, la tarification réelle et un exemple d'API directement exécutable.

Sep 6, 2026
Veo 3.1 Lite image-vers-vidéo : transformer une photo en clip vidéo via l'API hiapi

En bref

  • De quoi s'agit-il : un workflow réel et de bout en bout qui transforme une seule photo statique en un court clip vertical avec audio natif, à l'aide de veo-3.1-lite/image-to-video sur l'API hiapi. Chaque image, chaque prompt et chaque appel d'API sur cette page est la sortie réelle des requêtes présentées.
  • Pourquoi l'image-vers-vidéo convient au contenu court : vous gardez le contrôle total de la composition, de l'image de marque et du cadrage produit sur l'image statique, puis vous laissez le modèle ajouter le mouvement et l'ambiance sonore — sans espérer qu'un prompt texte-vers-vidéo produise par hasard le plan souhaité.
  • Faits vérifiés sur l'API : la tâche accepte exactement cinq champs d'entrée — prompt, image_url (une seule URL publique, pas un tableau), duration (4, 6 ou 8 secondes), resolution (720p ou 1080p) et generate_audio (booléen). Le schéma est strict — tout autre champ est rejeté.
  • Coût réel : un clip de 4 secondes en 720p avec audio natif coûte 0,40 $ (0,10 $/seconde) ; sans audio, il descend à 0,24 $ (0,06 $/seconde). Consultez les tarifs actuels sur pricing.
  • Temps de rendu réel : le clip de 4 secondes intégré ci-dessous a pris environ 55 secondes entre la soumission de la tâche et le fichier téléchargeable.

Pourquoi l'image-vers-vidéo convient au contenu court

Les clips de style TikTok et Reels se jouent sur la première image — la vignette sur laquelle les gens décident de cliquer. Le texte-vers-vidéo est un pari sur la composition : vous décrivez une scène en espérant que le modèle la cadre comme vous le souhaitez. L'image-vers-vidéo inverse la logique. Vous fixez d'abord le plan exact avec une image statique — disposition du produit, lumière, format d'image — puis vous confiez au modèle uniquement le mouvement : ce qui doit flotter, fumer, onduler ou bouger légèrement pendant que la caméra reste immobile.

Cette répartition est précisément l'usage de veo-3.1-lite/image-to-video : donnez-lui une photo et un prompt de mouvement, et il renvoie un MP4 en 9:16 natif avec audio synchronisé, sans toucher à un logiciel de montage.

Démonstration : une photo statique, puis l'animation

Pour rendre les choses concrètes, nous avons déroulé tout le processus nous-mêmes avec un sujet simple : un latte matcha glacé, cadré comme le ferait un compte de boissons ou de café pour un fil vertical.

Étape 1 — la photo source

Cette image statique a été générée avec gpt-image-2/text-to-image au format 9:16, à l'aide de ce prompt exact :

A vertical 9:16 studio product photograph of an iced matcha latte in a clear glass
on a white marble countertop, visible ice cubes and vivid green matcha layered against
milk, soft warm morning sunlight streaming in from the left casting a long soft shadow,
a small bamboo matcha whisk and a light wooden scoop with loose matcha powder resting
beside the glass, fine condensation droplets on the glass exterior, a blurred
cream-and-beige kitchen background with shallow depth of field, warm natural color
grade, high-resolution commercial beverage photography, no text, no watermark,
no hands, no logos

N'importe quelle image statique fonctionne tant qu'elle est accessible via une URL publique — une vraie photo produit, une capture d'écran ou, comme ici, une image statique générée par IA.

Étape 2 — l'animer

Voici la sortie réelle — un MP4 de 4 secondes en 720p, 9:16, avec audio synchronisé, généré à partir de l'image statique ci-dessus et du prompt de mouvement suivant :

Camera holds a slow, steady static shot with no camera movement or zoom. Gentle
wisps of steam rise from the iced matcha latte, fine condensation droplets slowly
trickle down the glass, and the ice cubes shift subtly with a soft clink. Warm
morning sunlight flickers gently as if from a light breeze outside a nearby window.
Soft ambient cafe background sound with a faint ceramic clink and quiet room tone.

Remarquez que ce prompt ne décrit presque pas le sujet lui-même — la photo s'en charge déjà. Il décrit uniquement ce qui doit bouger et ce qui doit être entendu, et c'est tout l'intérêt d'utiliser l'image-vers-vidéo plutôt que le texte-vers-vidéo sur un plan déjà composé.

Lancer l'appel d'API

Sous le capot, chaque modèle sur hiapi — image ou vidéo — suit le même schéma de tâche asynchrone : soumettre, interroger, télécharger. Pour veo-3.1-lite/image-to-video, la requête ressemble à ceci :

curl -s -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-lite/image-to-video",
    "input": {
      "prompt": "Camera holds a slow, steady static shot with no camera movement or zoom. Gentle wisps of steam rise from the iced matcha latte...",
      "image_url": "https://your-cdn.example.com/still.jpg",
      "duration": 4,
      "resolution": "720p",
      "generate_audio": true
    }
  }'

Cela renvoie immédiatement un taskId. Interrogez-le jusqu'à ce que le statut passe à success, puis récupérez le fichier depuis output[0].url — ce lien expire, donc téléchargez-le tout de suite plutôt que de le lier directement :

import subprocess, json, time

def animate_still(token, image_url, prompt, duration=4, resolution="720p", audio=True):
    def curl(args):
        r = subprocess.run(
            ["curl", "-s", "--max-time", "60", *args,
             "-H", f"Authorization: Bearer {token}"],
            capture_output=True, check=True,
        )
        return json.loads(r.stdout)

    payload = {
        "model": "veo-3.1-lite/image-to-video",
        "input": {
            "prompt": prompt,
            "image_url": image_url,
            "duration": duration,
            "resolution": resolution,
            "generate_audio": audio,
        },
    }
    task = curl(["-X", "POST", "https://api.hiapi.ai/v1/tasks",
                 "-H", "Content-Type: application/json",
                 "-d", json.dumps(payload)])
    task_id = task["data"]["taskId"]

    while True:
        status = curl([f"https://api.hiapi.ai/v1/tasks/{task_id}"])["data"]
        if status["status"] in ("success", "fail"):
            break
        time.sleep(5)

    if status["status"] != "success":
        raise RuntimeError(status.get("error"))
    return status["output"][0]["url"]  # download immediately — this link expires

C'est le même schéma que celui documenté pour tout modèle basé sur des tâches sur hiapi, et c'est celui que nous avons utilisé pour rendre le clip ci-dessus.

Ce que le schéma accepte réellement

Nous l'avons vérifié manuellement sur le point de terminaison en direct, alors considérez-le comme un fait et non une supposition :

  • prompt — chaîne de caractères décrivant le mouvement (et le son si generate_audio est activé).
  • image_url — une seule URL publique. Ce n'est pas un tableau comme pour certains autres modèles i2v de la plateforme — passer une liste ici échoue.
  • duration — entier, uniquement 4, 6 ou 8 secondes. Aucune autre valeur n'est acceptée.
  • resolution — "720p" ou "1080p".
  • generate_audio — booléen. Active ou désactive l'audio natif synchronisé.
  • Le schéma est strict : si vous envoyez un champ non reconnu, la requête est rejetée immédiatement au lieu d'être ignorée silencieusement.

Combien coûte réellement un clip

La tarification est calculée à la seconde de sortie et dépend de la résolution et de l'activation de l'audio (à jour en septembre 2026 — consultez la page de tarification en direct avant de budgétiser à grande échelle) :

  • 720p avec audio : 0,10 $/seconde — soit 0,40 $ pour un clip de 4 secondes.
  • 720p sans audio : 0,06 $/seconde — le même clip tombe à 0,24 $.
  • 1080p avec audio : 0,14 $/seconde.
  • 1080p sans audio : 0,10 $/seconde.

Pour un calendrier de contenu court, c'est là que se joue le vrai levier : un lot de dix clips de 4 secondes en 720p avec audio coûte environ 4,00 $ ; le même lot sans audio revient à 2,40 $. Si la conception sonore compte pour la publication (bruit de fond de café, cliquetis tactile du produit, bruits de pas), laissez l'audio activé — c'est la différence entre un clip de démonstration et une œuvre qui semble tournée sur place.

Si vous avez besoin de plus de 8 secondes par clip, ou d'un contrôle indépendant du mouvement de caméra sur des durées plus longues, hiapi propose aussi veo-3.1-fast (fidélité supérieure, à partir de 0,25 $/seconde) et le palier phare veo-3.1 (à partir de 0,57 $/seconde) — les deux prennent en charge le texte-vers-vidéo et l'image-vers-vidéo. Pour la plupart des montages sociaux courts, cependant, lite reste le choix par défaut : le coût n'est qu'une fraction, et la sortie est déjà calibrée pour des clips verticaux de moins de 10 secondes.

Pour une autre approche du même problème du contenu court — des clips plus longs, plus de contrôle manuel sur la première et la dernière image — nous avons aussi calculé le budget d'un workflow de contenu court avec seedance-2.0-mini, qui échange la génération d'audio natif à partir d'une photo contre une durée allant jusqu'à 15 secondes et un tarif par seconde plus bas.

Questions fréquentes

veo-3.1-lite/image-to-video accepte-t-il plusieurs images de référence ? Non. image_url n'accepte qu'une seule URL publique. Si vous avez besoin d'un modèle capable de fusionner plusieurs images de référence, c'est un autre appel — consultez la page propre à ce modèle pour connaître son schéma d'entrée exact avant de supposer qu'il fonctionne comme ici.

Peut-on obtenir un clip de plus de 8 secondes en un seul appel ? Pas avec lite. Le champ duration n'accepte que 4, 6 ou 8. Pour des vidéos uniques plus longues, consultez les autres modèles vidéo de la collection d'API vidéo de la plateforme, dont plusieurs prennent en charge des durées supérieures à 15 secondes.

La sortie inclut-elle déjà l'audio natif, ou dois-je ajouter le son en post-production ? Si generate_audio vaut true, le MP4 renvoyé contient déjà une piste AAC synchronisée — aucune étape de conception sonore séparée n'est nécessaire. Si vous prévoyez de sonoriser le clip vous-même ou si vous n'avez pas besoin d'ambiance, mettez-le à false.

Ai-je vraiment besoin d'un modèle vidéo, ou la sortie de gpt-image-2 est-elle déjà publiable ? De nombreux fils de contenu court mélangent statique et animé, donc une image statique générée par gpt-image-2/text-to-image constitue déjà une bonne publication en soi. L'image-vers-vidéo sert quand la plateforme (ou le moment) réclame du mouvement — détails produit, avant/après subtils, boucles — sans re-tournage.

Que se passe-t-il si je passe une duration invalide (par exemple 5) ? La requête est rejetée avant la création de toute tâche — vous recevez immédiatement une erreur de schéma au lieu de gaspiller un rendu.

Prêt à essayer ? La page du modèle veo-3.1-lite/image-to-video dispose d'un playground en direct où vous pouvez déposer votre propre photo et votre prompt avant même d'écrire une seule ligne de code.

Articles similaires

Voir tous les articles →

Commencez avec des artefacts IA persistants

Obtenez votre clé API et appelez des modèles d'image, de vidéo et d'audio via une API unique basée sur les tasks.

Lire la documentation de l'API