Une demande fréquente des personnes qui créent des démonstrations de produits, des introductions de cours et des clips pour les réseaux sociaux : « J’ai une photo du présentateur et une voix off que j’ai déjà enregistrée. Faites dire exactement cela à la personne sur la photo. » P-Video-2 Pro Reference de Pruna AI le fait en un seul appel API. Vous envoyez la photo comme référence, votre fichier audio et keep_audio: true ; le modèle génère la vidéo autour de votre piste, avec les mouvements des lèvres et de la tête qui suivent les paroles. Ce guide présente la requête exacte, son coût et un clip réel que nous avons généré pendant sa rédaction.
Ce que fait P-Video-2 Pro Reference
Il s’agit d’un modèle de référence vers vidéo. Au lieu de tout décrire dans un texte, vous lui fournissez des éléments sur lesquels travailler :
- Images de référence (jusqu’à 9) : l’apparence d’un personnage ou d’un produit, ou un style.
- Vidéos de référence (jusqu’à 3, de 2 à 15 secondes chacune, 15 secondes au total) : un mouvement ou une scène à suivre.
- Audio (jusqu’à 3 fichiers, 15 secondes au total).
- Un prompt textuel qui relie le tout : où se trouve la personne et ce qu’elle fait.
La sortie est un clip de 5 à 15 secondes avec son, en 480p ou 768p, en mode Speed ou Cost, avec des rapports d’aspect allant de 16:9 à 9:16, ou « adaptive » (suivant les références). Au moins une référence d’image ou de vidéo est requise.
keep_audio : votre voix, vos paroles
L’entrée audio peut avoir deux significations très différentes, et keep_audio permet de choisir entre les deux :
- Sans
keep_audio(valeur par défaut), l’audio est uniquement un échantillon. Le modèle imite la voix ou le son, mais votre fichier n’est pas intégré au clip et les paroles peuvent différer. - Avec
keep_audio: trueet exactement un fichier audio, ce fichier devient la bande sonore. Même voix, mêmes paroles ; la vidéo (mouvements, lèvres) est générée pour lui correspondre.
Voici comment la durée de la piste interagit avec duration : si votre audio est plus court que la durée, il est lu en premier et le modèle génère la suite ; s’il est plus long, il est coupé à la durée indiquée ; s’il se situe à moins d’une seconde de cette durée, le clip suit la longueur de l’audio. Choisissez donc une durée proche de celle de votre voix off. keep_audio ne modifie pas le prix.
Prix
Le clip est facturé par génération selon trois éléments : le nombre de secondes de sortie (en fonction du mode et de la résolution), ainsi que chaque image de référence et chaque seconde de vidéo et d’audio de référence. La combinaison la moins chère est 480p en mode Cost. Le tableau complet des tarifs se trouve sur la page du modèle P-Video-2 Pro Reference.
Comme le prix dépend de vos entrées exactes, demandez un devis avant de lancer la génération. Le point de terminaison de devis est gratuit et renvoie un quoteId que vous pouvez associer à la tâche :
curl https://getvibeapi.com/api/media/price \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d @request.json
# Notre devis du 22 octobre 2026 pour la requête ci-dessous
# (7 s, 480p, mode Cost, 1 photo, 1 piste audio, keep_audio):
{"ok":true,"priceUsd":0.165625,"isEstimate":false,"chargeBasis":"quote","quoteId":"mq_…","quoteTtlSeconds":900}
Le devis constitue un plafond : les références ne sont pas mesurées avant la soumission, il suppose donc l’utilisation de la capacité maximale autorisée (par exemple les 15 secondes complètes d’audio de référence dès qu’un fichier audio est envoyé). Notre tâche a été facturée exactement au montant indiqué dans le devis.
Étape par étape : photo + voix off → clip parlant
1. Préparez deux fichiers publics
Vous avez besoin d’une URL HTTPS publique pour le portrait (une photo nette, de face, montrant la tête et les épaules, donne les meilleurs résultats) et d’une autre pour la voix off (MP3 ou WAV). Pour notre test, nous avons généré un présentateur fictif avec Nano Banana 2.1 et une voix off en anglais de 7.3 secondes avec gpt-4o-mini-tts, tous deux via la même clé API. N’importe quel enregistrement de votre voix fonctionnera de la même manière.
2. Soumettez la tâche
import os, time, requests
API = "https://getvibeapi.com"
HEADERS = {"Authorization": f"Bearer {os.environ['GETVIBE_API_KEY']}"}
body = {
"model": "p-video-2-pro-reference",
"prompt": "La femme de la photo de référence parle chaleureusement à la caméra dans une boulangerie accueillante, "
"mouvements naturels de la tête, lèvres synchronisées avec la voix off",
"opts": {
"mode": "cost", # mode le moins cher ; "speed" est plus rapide
"resolution": "480p", # ou "768p"
"duration": "7", # proche de la durée de la voix off (7.3 s)
"aspect_ratio": "16:9",
"reference_image_urls": ["https://your-cdn.example/presenter.jpg"],
"reference_audio_urls": ["https://your-cdn.example/voiceover.mp3"],
"keep_audio": True, # utiliser cette piste comme bande sonore, et non comme échantillon
},
}
job = requests.post(f"{API}/api/media/generate", json=body, headers=HEADERS).json()
print(job["jobId"], job["status"], job["priceRub"])
Le champ s’appelle priceRub pour des raisons historiques ; sur getvibeapi.com, il contient des dollars américains, soit le même nombre que celui renvoyé par le devis.
3. Interrogez le résultat
while True:
r = requests.get(f"{API}/api/media/jobs/{job['jobId']}", headers=HEADERS).json()
if r["status"] in ("success", "fail"):
break
time.sleep(10)
print(r["status"], r["resultUrls"])
Pour les traitements par lots en production, utilisez un webhook plutôt que l’interrogation répétée ; consultez les webhooks média. Les liens vers les résultats expirent au bout d’environ une semaine ; copiez donc le fichier dans votre propre espace de stockage.
Ce que nous avons obtenu
Notre tâche s’est terminée en quelques minutes avec le statut success. Le résultat était un fichier MP4 : 832×480, 7.33 secondes, avec une piste audio. Voici les vérifications que nous avons effectuées :
- La voix est bien la nôtre. Nous avons comparé, échantillon par échantillon, la bande sonore du clip avec l’échantillon de voix off d’origine : corrélation de 0.99998 avec un décalage nul. Le modèle a conservé le fichier, plutôt que de produire une imitation avec une nouvelle voix.
- Le visage est conservé. Les images à 1, 3 et 5 secondes montrent la même femme que sur la photo de référence (cheveux, boucles d’oreilles, chemise en lin vert), désormais dans une boulangerie comme le demandait le prompt, avec des mouvements de bouche visibles pendant qu’elle parle.
- La durée suit celle de la piste. Une voix off de 7.3 secondes avec
duration: "7"a produit un clip de 7.33 secondes, comme le prévoit la règle d’une seconde d’écart maximum.
Le 480p en mode Cost convient aux aperçus et aux petits formats pour les réseaux sociaux. Pour la version finale, relancez la même requête en 768p une fois que le prompt vous convient.
Conseils et limites
- Envoyez exactement un fichier audio avec
keep_audio; avec deux ou trois fichiers, la requête est rejetée avec une erreur explicite. - Limitez la voix off à 15 secondes ou moins. Pour les scripts plus longs, divisez-les en plusieurs clips et assemblez-les.
- Chaque image de référence est facturée, y compris
first_frame_urletlast_frame_url. Un bon portrait suffit généralement. - Décrivez le décor et la manière de parler dans le prompt (« calme, explicatif », « souriant, énergique ») ; les paroles proviennent de votre audio.
- Utilisez uniquement des photos et des voix pour lesquelles vous disposez des droits nécessaires. N’imitez pas de personnes réelles sans leur consentement.
Les autres modèles vidéo, notamment les options de conversion texte-vidéo et image-vidéo, sont répertoriés sur la page des modèles, et la page image, vidéo et voix via une seule API explique de manière générale le fonctionnement des tâches média. Référence complète des requêtes : documentation sur la génération média.
Cas d’utilisation
Les clips parlants créés à partir d’une photo fixe et d’une voix off prête à l’emploi conviennent à tous les workflows où les paroles sont fixes et où le visage reste identique à chaque fois :
- Annonces de produits et de fonctionnalités. Enregistrez une fois un script de 10 secondes, puis faites-le présenter par votre intervenant devant différents arrière-plans en modifiant uniquement le prompt.
- Introductions de cours et d’intégration. Un hôte cohérent pour chaque leçon, sans réserver un studio pour chacune d’elles.
- Versions localisées. Enregistrez ou synthétisez la voix off dans une autre langue et générez un clip correspondant ; les lèvres suivent le nouvel audio.
- Extraits de support client. De courts clips expliquant « voici comment faire X », lorsque la précision des paroles compte davantage que les mouvements cinématographiques.
Deux choses que ce modèle ne fait pas : il ne s’agit pas d’un outil d’avatar long format (chaque génération dure au maximum 15 secondes) et il ne permet pas de modifier une vidéo existante. Pour modifier l’apparence d’une séquence que vous possédez déjà, consultez Kling 3.0 Omni Transformation.
FAQ
Puis-je faire parler une photo avec ma propre voix enregistrée ?
Oui. Envoyez la photo dans reference_image_urls, votre enregistrement comme seul élément de reference_audio_urls, ainsi que keep_audio: true. L’enregistrement devient la bande sonore du clip et les lèvres sont générées pour lui correspondre.
Que se passe-t-il sans keep_audio ?
L’audio est utilisé uniquement comme échantillon à imiter. Votre fichier n’apparaît pas dans la sortie et les paroles du clip peuvent être différentes.
Quelle peut être la durée du clip ?
De 5 à 15 secondes par génération. L’audio de référence est limité à 15 secondes au total.
Combien coûte un clip parlant ?
Le prix dépend de la durée, de la résolution, du mode et des références que vous envoyez. Obtenez un montant exact avec le point de terminaison gratuit /api/media/price avant la génération ; notre clip de 7 secondes en 480p, en mode Cost, avec une photo et une piste audio est présenté ci-dessus. Les tarifs actuels sont disponibles sur la page du modèle.
La sortie comporte-t-elle un filigrane ?
Nous n’avons vu aucun filigrane sur notre clip.
