Pruna AI
P-Video 2 Pro Replace
p-video-2-pro-replace
Modèle vidéo de remplacement de personnage de Pruna AI : insère un personnage dans une vidéo existante à l'aide d'une ou deux images de référence, avec possibilité de remplacer jusqu'à deux personnes simultanément, tout en conservant le mouvement de caméra, la composition, l'arrière-plan et les actions de la vidéo d'origine, et en réutilisant éventuellement la piste audio source ; idéal pour les variantes publicitaires et les présentations localisées.
Essayer p-video-2-pro-replace
Entrée
Créations
Voir toutes les créationsSortie
videoTarifs
p-video-2-pro-replace per second
| Spécifications | Prix unitaire |
|---|---|
| 480P | $0.0358 |
| 768P | $0.0715 |
| 1080P | $0.0858 |
| 2K | $0.100 |
| 4K | $0.1286 |
Présentation
Il s'agit d'un outil de remplacement de personnages destiné à la post-production vidéo et à la création de contenus marketing : téléversez une vidéo source et une à deux images de référence de personnes, et l'outil intègre les personnes des images dans la scène de la vidéo d'origine, tout en conservant les mouvements de caméra, la composition, l'arrière-plan et le rythme des actions du clip original. Un prompt permet de préciser le mode de placement des personnages ; il peut aussi rester vide pour un rendu naturel conforme à la vidéo source. Idéal pour les variantes publicitaires, les versions localisées avec présentateur et le changement de personnage sur des contenus existants ; la sortie est un fichier vidéo livrable au format d'image de la source.
Points clés
- Remplacer les personnages en conservant la scène d'origine — après remplacement, les mouvements de caméra, la composition, l'arrière-plan et le rythme des actions de la vidéo source sont repris, ce qui réduit le travail de nouveau tournage et de nouvelle mise en scène.
- Un à deux visuels de référence pour définir les personnages — prend en charge une seule personne, ou deux personnes remplacées simultanément à l'aide d'une image chacune, idéal pour créer rapidement des variantes de contenus à deux présentateurs.
- Durée et format d'image hérités de la source — la durée de sortie suit la vidéo source et le format d'image est conservé, ce qui facilite la réutilisation des montages et des spécifications de diffusion existants.
Description des capacités
Remplacement de personnages par images de référence : fournissez une à deux images de personnes au format HTTPS pour intégrer les personnes des images dans la scène de la vidéo source ; les deux images correspondent respectivement à deux présentateurs, ce qui convient aux plans à deux personnes.
Prompt pour contrôler le placement : un prompt facultatif de 1000 caractères maximum permet de préciser comment intégrer les personnages dans la scène ; s'il est vide, le rendu suit la présentation d'origine de la vidéo source.
Contraintes sur la vidéo source : la vidéo source doit être une URL HTTPS au format MP4, MOV ou WebM, d'une durée de 2 à 30 secondes ; hors de cette plage, elle est refusée. La durée de sortie suit la vidéo source.
Choix de la résolution : sélectionnez une résolution de sortie parmi 480p, 768p, 1080p, 2k et 4k ; la valeur par défaut est 768p et le format d'image reprend celui de la vidéo source.
Reproductibilité par graine aléatoire : définissez une graine aléatoire de 0 à 2147483647 pour répéter la génération avec les mêmes contenus et paramètres, et comparer différents placements de personnages.
Cas d'usage
- Production en série de variantes avec présentateur par les équipes publicitaires — associez une même vidéo source à différentes images de référence de personnes pour produire plusieurs versions avec des personnages différents, destinées aux tests de diffusion et à la distribution multiplateforme.
- Remplacement du présentateur pour le marketing localisé — conservez la scène et le rythme d'origine, remplacez le présentateur par une figure du marché cible et obtenez une version localisée directement insérable dans le montage existant.
- Changement de personnage sur des contenus existants — remplacez le présentateur d'un contenu déjà tourné sans nouvelle mise en scène ni nouveau tournage, et obtenez un fichier vidéo prêt à être monté et livré.
- Remplacement simultané sur un plan à deux personnes — fournissez une image de référence pour chacune des deux personnes et générez en une fois une version à deux présentateurs, pour la création de contenus multi-personnages destinés aux vidéos courtes sociales.
Limites et conseils de sélection
Deux personnes au maximum peuvent être remplacées par génération ; la vidéo source doit durer de 2 à 30 secondes, sinon elle est refusée, et la durée de sortie suit la vidéo source. La vidéo source et au moins une image de référence doivent être fournies ; impossible de générer une vidéo à partir de zéro uniquement avec du texte. Si la conservation de l'audio source est désactivée, la piste audio d'origine n'est pas reprise ; il convient de vérifier soi-même le son de la version finale. Le résultat du remplacement dépend des images de référence et des conditions visuelles de la vidéo source ; l'apparence exacte des personnages n'est pas garantie.
Nouveautés
Voir le journal des modifications →- Nouveau modèle P-Video 2 Pro Replace est disponible : remplacez les personnes d'une vidéo avec 1 à 2 photos de personnes
Questions fréquentes
Voir toutes les questions →-
Combien de personnes peut-on remplacer dans une scène au maximum ?
Deux personnes au maximum. Placez 1 à 2 photos de personnes dans image_urls : une seule photo pour une personne, une photo par personne pour deux personnes. Vous pouvez utiliser le prompt pour préciser comment intégrer les personnes dans l'image.
-
Quelle est la durée autorisée pour la vidéo source ?
Seules les vidéos sources de 2 à 30 secondes sont acceptées pour le moment ; les requêtes en dehors de cette plage seront refusées. La durée de sortie est identique à celle de la vidéo source et ne peut pas être spécifiée autrement ; si le matériel est plus long, il faut d'abord le découper ou le segmenter soi-même, puis traiter chaque partie séparément.
-
Lors du remplacement, la caméra et l'arrière-plan changent-ils ?
Non, le mouvement de caméra, la composition, l'arrière-plan et le rythme temporel restent tous identiques à ceux de la vidéo source ; le modèle ne remplace que le personnage. Il ne permet pas non plus de modifier le mode de prise de vue via des paramètres ; pour obtenir un autre angle de caméra ou une autre scène, il faut utiliser une autre vidéo source.
-
Le son de la vidéo d'origine peut-il être conservé ?
Oui, conservé par défaut : keep_audio vaut true par défaut, la sortie contient la piste audio de la vidéo source. Si vous le définissez sur false, la sortie n'inclut pas l'audio d'origine.
Créer une tâche de génération
https://api.hiapi.ai/v1/tasks En-têtes
AuthorizationstringRequisClé API du compte. Requise sur chaque requête. Exemple : Bearer YOUR_HIAPI_API_KEY. Obtenir une clé API
Content-TypestringOptionnelLe corps de la requête est toujours analysé en JSON ; s'il est envoyé, seul application/json (charset facultatif) est accepté — toute autre valeur renvoie 415. Exemple : application/json.
Idempotency-KeystringOptionnelClé d'idempotence, jusqu'à 255 octets. Les reprises avec la même clé du même compte ne créent la tâche qu'une seule fois ; les rejeux renvoient le taskId d'origine.
En cas de timeout réseau ou de relance automatique du client, la même clé ne crée la tâche qu'une seule fois, sans double facturation (portée = le compte de la clé API). Utilisez un identifiant métier unique (ex. "order-42") ; les rejeux renvoient le taskId d'origine et les clés expirent 24 h après la première requête. La matrice complète des scénarios est dans la présentation de l'API asynchrone unifiée.
Corps
modelstringRequisValeur fixe actuelle : p-video-2-pro-replace
routestringOptionnelValeur fixe actuelle : default
inputobjectRequis
Objet de paramètres métier pour p-video-2-pro-replace et la route default — voir le tableau des paramètres ci-dessous.
seedintegerOptionnelmin 0max 2147483647Graine aléatoire, entier de 0 à 2147483647 ; fournir la même graine en gardant les autres entrées inchangées aide à reproduire le résultat ; si omise, la graine est aléatoire.
promptstringOptionnelmaxLength 1000Instruction facultative indiquant comment placer la personne de l'image de référence dans la scène ; si laissée vide, le contenu et la composition de la vidéo source sont suivis directement.
video_urlstringRequispattern ^https://URL HTTPS de la vidéo source, formats MP4, MOV, WebM pris en charge, durée obligatoire de 2 à 30 secondes, fournissant les mouvements, la scène, le cadrage et l'audio ; les requêtes dont la durée dépasse cette plage sont rejetées ; la durée de sortie est identique à celle de la vidéo source.
image_urlsarrayRequisminItems 1maxItems 2Tableau d'URL HTTPS des images d'identité des personnes à insérer dans la vidéo, formats jpg, jpeg, png, webp pris en charge ; fournir 1 à 2 images, pouvant correspondre à une seule personne ou à deux personnes, une image chacune.
Array [ string ]
keep_audiobooleanOptionnelDéfaut: trueIndique si l'audio de la vidéo source est conservé dans la sortie ; valeur booléenne, par défaut true.
resolutionstringOptionnelDéfaut: "768p"Résolution de sortie, valeurs possibles 480p, 768p, 1080p, 2k, 4k, par défaut 768p, en conservant le rapport largeur-hauteur de la vidéo source ; plus la résolution est élevée, plus le coût est important.
480p768p1080p2k4kcallbackobjectOptionnel
Configuration de notification d'état terminal. Sans elle, aucun callback — interrogez la tâche vous-même.
Fournissez callback.url à la création et HiAPI envoie un POST à votre service à l'état terminal — plus besoin de polling. Le corps du rappel reprend la structure du détail de tâche ; vérification de signature, relances et idempotence sont décrits dans la présentation de l'API asynchrone unifiée.
urlstringRequisObligatoire si callback est présent. Un POST est envoyé vers cette URL à l'état terminal ; doit être une URL http(s) valide.
whenstringOptionnelDéfaut: "final"Seul final est pris en charge pour l'instant — notifié sur success et fail.
finalstoragestringOptionnelDéfaut: "temp"Niveau de stockage des artefacts : temp (par défaut, ~7 jours) ou persistent (long terme, facturé au volume). Solde insuffisant ou dépassement de limite ⇒ rétrogradation silencieuse en temp ; le niveau effectif figure dans la réponse de détail.
temppersistentExemples de requête
# Soumet une tâche asynchrone ; renvoie immédiatement un taskId (n'attend pas la génération)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "p-video-2-pro-replace",
"input": {
"video_url": "…",
"image_urls": "…",
"keep_audio": true,
"resolution": "768p"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "p-video-2-pro-replace",
input: {
"video_url": "…",
"image_urls": "…",
"keep_audio": true,
"resolution": "768p"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "p-video-2-pro-replace",
"input": {
"video_url": "…",
"image_urls": "…",
"keep_audio": True,
"resolution": "768p"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Obtenir le détail de la tâche
https://api.hiapi.ai/v1/tasks/:id Champs de réponse
taskIdstringRequisIdentifiant de tâche, toujours préfixé tk-hiapi-.
modelstringRequisNom complet résolu du modèle. Les tâches envoyées avec le paramètre route renvoient base@route (ex. gpt-image-2/text-to-image@ext) ; sinon identique au nom fourni.
routestringOptionnelPrésent uniquement si le paramètre route explicite a été utilisé ; renvoie la valeur soumise.
statusstringRequisStatut de la tâche.
queued En file, pas encore démarrée.
handling En cours de traitement.
archiving Traitement terminé, préparation des artefacts.
success Terminal : terminé, artefacts disponibles (output renvoyé).
fail Terminal : échec (error renvoyé).
Après soumission, suivez status : success et fail sont terminaux, le reste non terminal. Interrogez toutes les 1–3 s jusqu'à l'état terminal. En cas de succès, téléchargez les artefacts via output[].url et transférez-les avant expireAt ; pour une conservation longue durée, indiquez storage: "persistent" à la création.
creatednumberRequisDate de création de la tâche (secondes Unix).
completednumberRequisSecondes Unix de l'état terminal ; 0 tant que non terminal.
outputarrayOptionnel
Présent uniquement si status == success. Liste d'artefacts — toujours un tableau ; une tâche peut renvoyer plusieurs types à la fois (ex. video + first_frame).
Array [ object ]
Éléments du tableau
urlstringRequisURL de l'artefact, téléchargeable directement.
typestringRequisValeurs possibles actuelles : video, image, audio, first_frame, last_frame, thumbnail ; d'autres pourront s'ajouter.
expireAtnumberRequisSecondes Unix de disponibilité de l'artefact ; téléchargez ou transférez avant l'expiration.
errorobjectOptionnel
Présent uniquement si status == fail.
codestringRequisCode d'erreur métier.
messagestringRequisDescription de l'erreur.
Exemples de réponse
Succès
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} En cours (non terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Échec
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
Voir tous les articles →Modèles associés
Voir tous les modèles →Même type
-
Ray 3.2 Luma $0.214 /vidéo -
P-Video 2 Pro Avatar Pruna AI $0.029 /seconde -
Kandinsky 6.0 Pro $1.93 /vidéo -
Veo 3.1 Fast Google $0.170 /seconde -
MiniMax H3 MiniMax $0.072 /seconde -
Veo 3.1 Google $0.290 /seconde -
OmniHuman 2.0 ByteDance $0.100 /seconde -
PixVerse V6 Max PixVerse $0.030 /seconde -
Muse Video 1.0 Meta $0.034 /vidéo -
Seedance 2.5 ByteDance $0.121 /seconde -
Wan 3.0 Video Alibaba $0.040 /seconde -
Kling 2.5 Kuaishou $0.090 /seconde
