Prérequis
Installez et chargez ces compétences avant de générer (ignorez si déjà dans le contexte via @pruna) :
| Compétence | Description | Installation |
|---|---|---|
generation-diversity | À utiliser lors de la rédaction de tout prompt génératif — seed rituel, 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 |
image-prompting | À utiliser lors de la création de prompts d'image fixe pour tout modèle génératif — composition, fiches d'identité, éditions, essayage et personnages photoréalistes. | npx skills add PrunaAI/pruna-skills@image-prompting -y |
pruna-api | À utiliser avant tout appel HTTP à Pruna ou Replicate — identifiants, upload/poll/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 / élaboration de chaque compétence — ne reformulez pas le contenu du guide ici.
Habitude de l'agent
Dans la première réponse, nommez `p-image-try-on` entre guillemets inverses, confirmez PRUNA_API_KEY, puis demandez person_image + garment_images. Ouverture d'un entretien → clarification d'entretien generation-diversity en cas de silence. Lorsque les références nécessitent une désambiguïsation, rédigez avec Élaboration du prompt (dynamique + fidèle) — ne collez pas d'exemples de la compétence. Redirigez les tâches sans fond / sans vêtement vers p-image-edit.
Élaboration du prompt (dynamique + fidèle)
L'identité et les vêtements proviennent de person_image + garment_images[]. Le prompt optionnel désambiguïse uniquement les références — il n'invente pas une nouvelle personne ou tenue.
| À faire | À ne pas faire |
|---|---|
Verrouiller d'abord l'URL de person_image et de chaque garment_images[] ; omettre prompt pour les flat-lay propres | Décrire une nouvelle scène, un nouveau mannequin ou un vêtement que l'utilisateur n'a pas fourni |
Quand les références sont ambiguës : le t-shirt vert de l'image 1 et le pantalon de l'image 2 (élaboration d'essayage image-prompting) | Prompts uniquement d'ambiance (vibe éditorial mode) ou copier l'exemple étendu de cette compétence quand les références diffèrent |
| Seed rituel avant de rédiger la formulation de désambiguïsation ; varier les formulations lorsqu'il existe plusieurs correspondances valides | Utiliser prompt pour des échanges d'arrière-plan — rediriger vers p-image-edit |
Afficher prompt (si nécessaire) avant POST quand les références sont ambiguës | Essayage silencieux qui modifie la pose, le visage ou les vêtements au-delà de la consigne |
Vérification de fidélité (avant paiement) : la sortie doit toujours être la personne de l'utilisateur dans le(s) vêtement(s) de l'utilisateur. Si prompt pourrait s'appliquer à un autre ensemble de références, réécrivez la désambiguïsation.
Quand NE PAS utiliser
Utilisez une autre compétence à la place :
| Compétence | Description | Installation |
|---|---|---|
p-image | À utiliser lorsque quelqu'un demande explicitement la génération de photos la plus rapide et la moins chère — mood boards, panneaux en vrac ou itérations rapides — pas lorsqu'un contrôle photoréaliste ou du texte dans l'image est nécessaire. | npx skills add PrunaAI/pruna-skills@p-image -y |
p-image-edit | À utiliser lorsque quelqu'un souhaite modifier une photo existante — changer de tenue ou d'arrière-plan, composer à partir d'images de référence, ou appliquer des modifications guidées par prompt. | npx skills add PrunaAI/pruna-skills@p-image-edit -y |
Tarification
Par génération (identique pour les modes normal et turbo) :
- 0,015 $ pour le premier vêtement
- 0,008 $ pour chaque vêtement supplémentaire
Exemple : 3 vêtements → 0,015 $ + 2 × 0,008 $ = 0,031 $.
Structure de la requête
Une person_image, une entrée garment_images[] par pièce (jusqu'à 11), reference_pose optionnelle. Le modèle classifie automatiquement chaque vêtement — l'ordre du tableau n'a pas d'importance. Les catégories mélangées vont dans un seul appel.
prompt— uniquement lorsqu'une référence montre plusieurs vêtements ou est portée sur un mannequin ; les flat-lay propres n'ont pas besoin de prompt.preserve_input_size: true(par défaut) — les dimensions de sortie suivent l'image de la personne.
Correspondance des champs Runware : person → person_image, garment → garment_images[], pose → reference_pose, positivePrompt → prompt, settings.turbo → turbo.
HTTP (curl)
Télécharger des images
curl -X POST "https://api.pruna.ai/v1/files" \
-H "apikey: ${PRUNA_API_KEY}" \
-F "content=@/path/to/person.jpg"
curl -X POST "https://api.pruna.ai/v1/files" \
-H "apikey: ${PRUNA_API_KEY}" \
-F "content=@/path/to/garment.png"
Utilisez chaque urls.get de la réponse dans input.person_image et input.garment_images[]. Optionnel : reference_pose.
Créer (asynchrone — recommandé)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-image-try-on' \
-d '{
"input": {
"person_image": "https://api.pruna.ai/v1/files/PERSON_FILE_ID",
"garment_images": ["https://api.pruna.ai/v1/files/GARMENT_FILE_ID"]
}
}'
Interrogez et téléchargez : suivez pruna-api.
Effectuez le rituel du seed aléatoire de generation-diversity avant d'écrire les prompts — ne passez pas la chaîne rituelle comme seed de l'API.
Créer (synchrone — 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-image-try-on' \
-H 'Try-Sync: true' \
-d '{
"input": {
"person_image": "https://api.pruna.ai/v1/files/PERSON_FILE_ID",
"garment_images": ["https://api.pruna.ai/v1/files/GARMENT_FILE_ID"]
}
}'
Entrée étendue (turbo + pose + prompt)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-image-try-on' \
-d '{
"input": {
"person_image": "https://api.pruna.ai/v1/files/PERSON_FILE_ID",
"garment_images": [
"https://api.pruna.ai/v1/files/MULTI_GARMENT_SHOT_ID",
"https://api.pruna.ai/v1/files/BOTTOM_ID"
],
"reference_pose": "https://api.pruna.ai/v1/files/POSE_REF_ID",
"prompt": "le t-shirt vert de l'image 1 et le pantalon de l'image 2",
"turbo": true,
"output_format": "jpg",
"output_quality": 95,
"preserve_input_size": true
}
}'
Avant de générer
- Suivez l'ordre de lecture des guides de prérequis (
generation-diversity→ élaboration d'essayageimage-prompting). - Seed rituel → rédigez le
promptoptionnel de désambiguïsation dynamique + fidèle (section ci-dessus) → confirmezperson_image,garment_images(≤6 pour les finales ; 7–8 aboutissent généralement ; 9–11 peuvent abandonner les derniers éléments), et les optionsturbo/reference_pose/prompt. - Notes Pruna : un élément par zone corporelle (chaussettes + chaussures → généralement les chaussures l'emportent).
turbo(~2,5–3,5 s) est désactivé par défaut — déconseillé au-dessus d'environ 4 vêtements pour les finales. Les recadrages en pied ou trois-quarts fonctionnent le mieux. Omettre les gants, moufles, accessoires tenus à la main, pochettes de costume, bretelles, broches degarment_images[].
Entrée requise
person_image(URL de chaîne)garment_images(tableau d'URL de chaînes, jusqu'à 11)
Champs optionnels courants
seed,output_format(webp/jpg/png, défautjpg),output_quality(0–100, défaut 95)preserve_input_size(booléen, défauttrue)turbo(booléen, défautfalse)reference_pose(URL d'image de personne)prompt(EXPÉRIMENTAL — désambiguïser les références non flat-lay / multi-vêtements)
Étapes suivantes typiques
Suites courantes après cette compétence :
| Compétence | Description | Installation |
|---|---|---|
p-image-upscale | À utiliser lorsque quelqu'un souhaite upscaler ou affiner une image existante pour l'impression, de grands recadrages ou une livraison de meilleure qualité. | npx skills add PrunaAI/pruna-skills@p-image-upscale -y |
p-video-2-pro | À utiliser lorsque quelqu'un souhaite un clip cinématographique à partir de texte ou d'images de début/fin — publicités produit, plans documentaires ou dialogues avec audio généré. Pas pour du 1080p, des pistes audio importées ou des présentateurs tête parlante uniquement. | npx skills add PrunaAI/pruna-skills@p-video-2-pro -y |
p-video-2 | À utiliser lorsque quelqu'un souhaite un clip court et soigné à partir de texte, d'images ou d'audio importé — B-roll 1080p, animation d'images de début/fin ou plan en mouvement avec une piste mixte. Pas pour des clips avec audio généré cinématographique ou des présentateurs tête parlante uniquement. | npx skills add PrunaAI/pruna-skills@p-video-2 -y |
p-video | À utiliser lorsque quelqu'un souhaite un clip court simple à partir de texte ou d'images — B-roll rapide, brouillons ou animation d'images de début/fin. Pas lorsque le brief nécessite une génération cinématographique, la meilleure 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 souhaite une personne devant une caméra lisant un script — présentateur lip-syncé, porte-parole ou avatar narré à partir d'une photo de portrait. | npx skills add PrunaAI/pruna-skills@p-video-avatar -y |