Prérequis
Installez et chargez ces skills avant la génération (ignorez s'ils sont déjà en contexte via @pruna) :
| Skill | Description | Installation |
|---|---|---|
generation-diversity | À utiliser lors de la rédaction de tout prompt génératif — rituel de seed, structure explicite, axes de scénario, et contrôles de qualité avant les appels API payants. | npx skills add PrunaAI/pruna-skills@generation-diversity -y |
video-prompting | À utiliser lors de la rédaction de prompts vidéo ou de mouvement pour tout modèle génératif — dramaturgie, caméra, mouvement physiquement plausible, ancres de plan, et enchaînement de clips. | npx skills add PrunaAI/pruna-skills@video-prompting -y |
audio-prompting | À utiliser lors de la rédaction de prompts TTS, musicaux ou d'ambiance pour tout modèle audio génératif — style de réalisateur, structure de chanson, et superposition de post-production. | npx skills add PrunaAI/pruna-skills@audio-prompting -y |
pruna-api | À utiliser avant tout appel HTTP à Pruna ou Replicate — identifiants, upload/polling/download, lots parallèles, et sécurité de l'agent. | npx skills add PrunaAI/pruna-skills@pruna-api -y |
Ou installez la suite complète en une fois : npx skills add PrunaAI/pruna-skills@pruna -y
Suivez les sections Avant de générer / craft de chaque skill — ne répétez pas le contenu du guide ici.
Habitude de l'agent
Routage : `p-video-2-pro` est le clip de génération cinématographique (texte / première image / première+dernière image) avec audio généré. Utilisez `p-video-2` lorsque le brief nécessite du 1080p, de l'audio importé, ou des aperçus brouillon. Utilisez `p-video` pour des brouillons moins chers et plus rapides. Uniquement plan fixe (pas d'audio de scène natif) → `p-video-avatar`. Édition par instructions d'un métrage existant → `p-video-edit`.
Dans la première réponse, nommez `p-video-2-pro` entre backticks, confirmez PRUNA_API_KEY (ou arrêtez avec des liens d'inscription depuis pruna-api), puis demandez les entrées requises. Accueil ouvert → formulaire de clarification generation-diversity avant le premier POST. Lors de la rédaction des prompts de mouvement, suivez Craft du prompt (dynamique + fidèle) et video-prompting (p-video-2-pro-prompting) — ne collez pas d'exemples du skill. Redirigez lorsque la Quand NE PAS utiliser correspond mieux.
Craft du prompt (dynamique + fidèle)
Chaque input.prompt doit être frais et spécifique, et doit correspondre au rythme de l'utilisateur. La diversité ne remplace jamais le brief. Deltas de craft vs p-video-2 : video-prompting (p-video-2-pro-prompting). Écrivez le son ou le dialogue dans le prompt — ce modèle n'a pas d'upload audio.
| À faire | À ne pas faire |
|---|---|
Exécutez le rituel de seed aléatoire generation-diversity ; mentionnez-le ; faites pivoter ≥2 axes libres (mouvement de caméra, changement d'éclairage, texture, rythme) lorsque le brief le permet | Copiez des exemples curl de ce skill (sports car, person turns, …) ou réutilisez le prompt d'une session précédente |
| Verrouillez d'abord les faits requis par l'utilisateur (sujet, action, scène ; OUVERTURE/MILIEU/FERMETURE lorsqu'ancré à un plan ; ligne parlée / SFX lorsque l'audio fait partie du brief) | Échangez le sujet ou le mouvement pour un clip "plus cool" qui ignore la demande |
Structurez avec la dramaturgie de video-prompting — sujet + action + scène ; ajoutez l'intention de caméra, d'éclairage, de style et d'audio pour des versions finales verrouillées | Chaînes vagues d'ambiance uniquement (cinematic vibe, neon energy) ou un prompt silencieux lorsque le brief demandait une parole ou une partition |
| Limitez les locuteurs à un ou deux ; nommez la ligne dans le prompt | Surchargez un clip avec 3+ visages parlants, ou envoyez audio / draft / fps (pas sur cette API) |
Montrez le prompt rédigé + mode / prompt_upsampler / duration / resolution avant le POST lorsque l'utilisateur n'a pas verrouillé le wording | Régénération silencieuse avec un sujet ou un rythme différent de celui approuvé |
Vérification de fidélité (avant paiement) : si vous supprimez le sujet/l'action/le décor nommé par l'utilisateur du prompt, le travail est faux — réécrivez. Les axes libres ne remplissent que ce que le brief a laissé ouvert.
Lors de l'affichage d'un prompt rédigé, nommez toujours `p-video-2-pro` (les guides aident au craft ; cet outil possède l'appel).
Périmètre du skill
Ce skill = une prédiction p-video-2-pro par invocation.
Hors périmètre (ne pas exécuter depuis ce skill) :
- Assemblage multi-scènes, concat, orchestration de sous-agents, ou lots parallèles de scènes
- Audio importé / VO mixée / 1080p / aperçus brouillon →
p-video-2 - Transfert de mouvement depuis une vidéo modèle →
p-video-animate - Présentateur uniquement en plan fixe / lip-sync sans audio de scène natif →
p-video-avatar - Édition par instructions d'un métrage existant →
p-video-edit
Si la demande dépasse un clip, arrêtez et recommandez : image-to-video (un seul plan), visual-transition-reel (multi-scènes visuel), ou narrated-multi-scene (multi-scènes + VO importée — ce chemin utilise p-video-2).
Quand NE PAS utiliser
Utilisez un autre skill à la place :
| Skill | Description | Installation |
|---|---|---|
p-video-2 | À utiliser lorsque quelqu'un veut un court clip soigné à partir de texte, d'images ou d'audio importé — B-roll 1080p, animation d'image de début/fin, ou un plan animé avec une piste mixée. Pas pour les clips audio générés cinématographiques ou les présentateurs uniquement en plan fixe. | npx skills add PrunaAI/pruna-skills@p-video-2 -y |
p-video | À utiliser lorsque quelqu'un veut un court clip simple à partir de texte ou d'images — B-roll rapide, brouillons, ou animation d'image de début/fin. Pas lorsque le brief nécessite une génération cinématographique, la plus haute qualité, un lip-sync serré, ou de l'audio importé en 1080p. | npx skills add PrunaAI/pruna-skills@p-video -y |
p-video-avatar | À utiliser lorsque quelqu'un veut une personne à l'écran récitant un script — présentateur lip-sync, porte-parole, ou avatar narré à partir d'une photo portrait. | npx skills add PrunaAI/pruna-skills@p-video-avatar -y |
p-video-animate | À utiliser lorsque quelqu'un veut qu'une photo bouge comme une autre vidéo — transfert de mouvement, remixes de danse, ou variations de performance à partir d'un clip modèle. | npx skills add PrunaAI/pruna-skills@p-video-animate -y |
p-video-replace | À utiliser lorsque quelqu'un veut remplacer une personne, une tenue ou un produit dans un métrage existant tout en conservant le mouvement de caméra et l'audio. | npx skills add PrunaAI/pruna-skills@p-video-replace -y |
p-video-edit | À utiliser lorsque quelqu'un veut éditer une vidéo existante avec une instruction textuelle — recolorer, restyler, supprimer ou ajouter des objets, changer l'environnement ou l'éclairage, mettre à jour le texte à l'écran, ou appliquer des modifications facultatives guidées par référence de produit et d'accessoire. Pas pour un nouveau clip à partir de zéro ou un assemblage ffmpeg. | npx skills add PrunaAI/pruna-skills@p-video-edit -y |
video-editing | À utiliser lors de l'assemblage ou du polissage de clips déjà rendus avec ffmpeg — concat, fondus enchaînés, légendes et sous-titres incrustés, superpositions de texte/logo, curseurs avant/après, pistes musicales d'ambiance, export pour plateforme — ou lors de la composition d'une vidéo combinée HTML multicouche avec Hyperframes. Pas pour la génération vidéo IA, le craft de prompts, ou les éditions vidéo basées sur modèle. | npx skills add PrunaAI/pruna-skills@video-editing -y |
HTTP (curl)
Upload pour image-vers-vidéo / ancres de plan
curl -X POST "https://api.pruna.ai/v1/files" \
-H "apikey: ${PRUNA_API_KEY}" \
-F "content=@/path/to/first-frame.png"
Passez urls.get comme input.image (première image) et/ou input.last_frame_image (dernière image). Ne téléchargez pas d'audio pour ce modèle.
Créer (async texte-vers-vidéo — recommandé)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-video-2-pro' \
-d '{
"input": {
"prompt": "A sports car drifting through a neon-lit city at night, cinematic aerial shot",
"duration": 5,
"resolution": "768p",
"aspect_ratio": "16:9"
}
}'
Polling et téléchargement : suivez pruna-api.
Effectuez le rituel de seed aléatoire de generation-diversity avant d'écrire les prompts — ne passez pas la chaîne du rituel comme seed de l'API.
La facturation se fait par seconde retournée (pas la duration demandée). Limite de débit : 250 requêtes par minute.
| Résolution | mode=cost | mode=speed (défaut) | mode=quality |
|---|---|---|---|
| 480p | 0,01 $ / s | 0,02 $ / s | 0,04 $ / s |
| 768p | 0,025 $ / s | 0,035 $ / s | 0,075 $ / s |
cost a la même qualité de sortie que speed, mais moins cher et plus lent. prompt_upsampler ne change pas le prix.
Image-vers-vidéo (première image)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-video-2-pro' \
-d '{
"input": {
"prompt": "The camera slowly pushes in, the person turns their head and smiles",
"image": "https://api.pruna.ai/v1/files/FIRST_ID",
"duration": 5,
"resolution": "768p"
}
}'
Première / dernière image (transition visuelle)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-video-2-pro' \
-d '{
"input": {
"prompt": "Start on the still product hero. The camera holds, then a slow push-in as light moves across the metal. End exactly on the last-frame packshot, label readable, no extra props.",
"image": "https://api.pruna.ai/v1/files/START_ID",
"last_frame_image": "https://api.pruna.ai/v1/files/END_ID",
"duration": 8,
"resolution": "768p",
"mode": "speed",
"prompt_upsampler": "turbo"
}
}'
Il n'y a pas de triple ancrage de scène sur ce modèle (audio n'est pas exposé). VO / musique importée → p-video-2.
Créer (sync — test rapide uniquement)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-video-2-pro' \
-H 'Try-Sync: true' \
-d '{
"input": {
"prompt": "A sports car drifting through a neon-lit city at night, cinematic aerial shot",
"duration": 5,
"resolution": "480p",
"mode": "cost"
}
}'
Avant de générer
- Terminez l'ordre de lecture des Prérequis (
generation-diversity→video-prompting). - Rituel de seed → rédigez un prompt de mouvement dynamique + fidèle (section ci-dessus) → confirmez le mode (T2V / I2V / paire d'images), la
duration(5–15 s, défaut 5), laresolution(480p / 768p), lemode(cost/speed/quality), leprompt_upsampler, et lepromptavec l'utilisateur. - Notes Pruna : lorsque
imageoulast_frame_imageest défini,aspect_ratioest ignoré (le cadre suit les images fixes). La sortie est 24 ips — n'envoyez pasfps. La sortie inclut l'audio généré ; écrivez le son ou le dialogue dans le prompt. N'envoyez pasaudio,draft,save_audio, ouprompt_upsampling. Itérez enmode: costlorsque le prix est prioritaire (même qualité quespeed, mais moins cher et plus lent) oumode: speedlorsque le temps réel compte (défaut) ; puis finalisez avecmode: qualitylorsque la fidélité compte. Si la demande est multi-scènes — arrêtez (voir Périmètre du skill). La 4K native n'est pas prise en charge. 1080p / audio importé / brouillon →p-video-2.
Entrée requise
prompt(chaîne)
Champs optionnels courants
| Champ | Rôle |
|---|---|
prompt_upsampler | Développe le prompt avant génération : off, turbo (défaut), ou max. Indépendant de mode |
image | Référence de première image ; lorsqu'elle est définie, aspect_ratio est ignoré (jpg, jpeg, png, webp) |
last_frame_image | Image fixe de fin facultative |
duration | 5–15 s (défaut 5) |
resolution | 768p (défaut) ou 480p |
mode | Recette de génération : cost (même qualité que speed, mais moins cher et plus lent), speed (défaut, plus rapide), ou quality (plus lent, meilleure fidélité) |
aspect_ratio | Lorsqu'aucune image de référence : 16:9 (défaut), 9:16, 4:3, 3:4, 3:2, 2:3, 1:1 |
seed | Entier pour une réexécution reproductible ; omettez pour aléatoire |
N'envoyez pas : audio, draft, fps, save_audio, prompt_upsampling.
Liés
Skills liés :
| Skill | Description | Installation |
|---|---|---|
p-video-2 | À utiliser lorsque quelqu'un veut un court clip soigné à partir de texte, d'images ou d'audio importé — B-roll 1080p, animation d'image de début/fin, ou un plan animé avec une piste mixée. Pas pour les clips audio générés cinématographiques ou les présentateurs uniquement en plan fixe. | npx skills add PrunaAI/pruna-skills@p-video-2 -y |
p-video | À utiliser lorsque quelqu'un veut un court clip simple à partir de texte ou d'images — B-roll rapide, brouillons, ou animation d'image de début/fin. Pas lorsque le brief nécessite une génération cinématographique, la plus haute qualité, un lip-sync serré, ou de l'audio importé en 1080p. | npx skills add PrunaAI/pruna-skills@p-video -y |
gemini-3.1-flash-tts | À utiliser lorsque quelqu'un a besoin d'une narration parlée ou d'une voix off — pistes explicatives, lignes documentaires, ou voix à associer à une vidéo générée. | npx skills add PrunaAI/[email protected] -y |
image-to-video | À utiliser lorsque quelqu'un veut un seul plan de court métrage à partir d'images — une scène narrée, un moment d'histoire, ou un B-roll cinématographique avec voix off facultative. | npx skills add PrunaAI/pruna-skills@image-to-video -y |
visual-transition-reel | À utiliser lorsque quelqu'un veut un montage avec des transitions entre les plans — bobine de séquence d'action ou pièce multi-scènes où la narration est facultative. | npx skills add PrunaAI/pruna-skills@visual-transition-reel -y |
narrated-multi-scene | À utiliser lorsque quelqu'un veut une histoire en plusieurs parties avec voix off — B-roll épisodique, promo chapitrée, ou plusieurs scènes vidéo liées sans dialogue à l'écran. | npx skills add PrunaAI/pruna-skills@narrated-multi-scene -y |
p-video-avatar | À utiliser lorsque quelqu'un veut une personne à l'écran récitant un script — présentateur lip-sync, porte-parole, ou avatar narré à partir d'une photo portrait. | npx skills add PrunaAI/pruna-skills@p-video-avatar -y |
p-video-animate | À utiliser lorsque quelqu'un veut qu'une photo bouge comme une autre vidéo — transfert de mouvement, remixes de danse, ou variations de performance à partir d'un clip modèle. | npx skills add PrunaAI/pruna-skills@p-video-animate -y |
video-editing | À utiliser lors de l'assemblage ou du polissage de clips déjà rendus avec ffmpeg — concat, fondus enchaînés, légendes et sous-titres incrustés, superpositions de texte/logo, curseurs avant/après, pistes musicales d'ambiance, export pour plateforme — ou lors de la composition d'une vidéo combinée HTML multicouche avec Hyperframes. Pas pour la génération vidéo IA, le craft de prompts, ou les éditions vidéo basées sur modèle. | npx skills add PrunaAI/pruna-skills@video-editing -y |