{"id":"46292c37-cf66-4a45-8453-5d47a2531df8","entityType":"agent","slug":"clawhub-pruna-ai-p-image-try-on","name":"p-image-try-on","canonicalUrl":"https://www.xpersona.co/agent/clawhub-pruna-ai-p-image-try-on","canonicalPath":"/agent/clawhub-pruna-ai-p-image-try-on","generatedAt":"2026-10-10T11:52:09.444Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T09:25:14.948Z","emptyReason":null},"description":"Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce. Skill: p-image-try-on Owner: pruna-ai Summary: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce. Tags: ai:1.0.14, generative:1.0.14, latest:1.0.14, pruna:1.0.14 Version history: v1.0.14 | 2026-09-29T15:34:10.080Z | auto - Version bump to 1.0.14 in metadata. - Removed the redundant skill-card.md file. - No functional or usage changes to skill logic or doc","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s173djpkkm1x4yfzg522h5vfp989mrn5:p-image-try-on","sourceUrl":"https://clawhub.ai/pruna-ai/p-image-try-on","homepage":"https://clawhub.ai/pruna-ai/skills/p-image-try-on","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/pruna-ai/p-image-try-on","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/pruna-ai/skills/p-image-try-on","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":64,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce. Skill: p-image-try-on Owner: pruna-ai Summary:"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T09:25:14.948Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T09:25:14.948Z","emptyReason":null},"stars":null,"forks":null,"downloads":1526,"packageName":null,"latestVersion":"1.0.14","tractionLabel":"1.5K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T09:25:14.948Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T09:25:14.948Z","lastCrawledAt":"2026-10-10T09:25:14.948Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T09:25:14.948Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.14","createdAt":"2026-09-29T15:34:10.080Z","changelog":"- Version bump to 1.0.14 in metadata. - Removed the redundant skill-card.md file. - No functional or usage changes to skill logic or documentation content.","fileCount":5,"zipByteSize":6818},{"version":"1.0.13","createdAt":"2026-09-17T13:56:29.577Z","changelog":"p-image-try-on version 1.0.13 - Updated SKILL.md to version 1.0.13 with no major content changes. - Removed skill-card.md file. - Minor maintenance and metadata version bump. - No changes to APIs, functionality, or user-facing behaviors.","fileCount":5,"zipByteSize":7177},{"version":"1.0.12","createdAt":"2026-09-10T13:55:06.148Z","changelog":"**p-image-try-on 1.0.12** - Updated skill documentation (SKILL.md) to reflect version 1.0.12. - Refined language and examples for clarity in HTTP section and next steps. - Adjusted instructions and descriptions for video output in \"Typical next steps\" for better accuracy. - Removed the outdated skill-card.md file.","fileCount":5,"zipByteSize":6967},{"version":"1.0.11","createdAt":"2026-09-03T14:09:56.017Z","changelog":"- Updated version metadata to 1.0.11 in SKILL.md. - Removed the file: skill-card.md. - No changes to functionality or usage instructions.","fileCount":5,"zipByteSize":7081},{"version":"1.0.10","createdAt":"2026-08-28T07:56:06.864Z","changelog":"p-image-try-on 1.0.10 - Updated version to 1.0.10 in SKILL.md. - Removed deprecated skill-card.md file. - No changes to functionality or the interface.","fileCount":5,"zipByteSize":6950},{"version":"1.0.9","createdAt":"2026-08-04T06:17:28.988Z","changelog":"- Updated version to 1.0.9 in SKILL.md. - Clarified when to use `p-image` vs. `p-image-edit` in the \"When NOT to use\" section. - Removed the file: skill-card.md. - No changes to request shape, pricing, or workflow.","fileCount":5,"zipByteSize":6927},{"version":"1.0.8","createdAt":"2026-07-28T17:19:36.123Z","changelog":"p-image-try-on 1.0.8 - Clarified agent intake procedure: now explicitly open **generation-diversity** clarification intake when user input is silent. - Updated \"Agent habit\" step for improved intake guidance and prompt handling. - Removed the redundant skill-card.md file. - Minor text cleanup to improve instruction clarity and flow.","fileCount":5,"zipByteSize":6976},{"version":"1.0.7","createdAt":"2026-07-23T12:34:26.163Z","changelog":"**Summary: This release simplifies documentation, emphasizes modular skill prerequisites, and refines usage instructions.** - Modularizes required skills: now lists and links necessary companion skills (`generation-diversity`, `image-prompting`, `pruna-api`) under clear Prerequisites. - Agent usage clarified: first reply guidance and redirection for non-try-on cases; new prompt craftsmanship section to ensure faithful, reference-based generation. - Removes and consolidates documentation: eliminates 11 auxiliary/ref files, streamlining references to companion skills. - Polishes API examples and guidance: HTTP/curl sections condensed, dynamic prompt crafting procedure separated, and typical next-step skills added. - Updates and simplifies input requirements, usage notes, and request field descriptions for clarity and ease of use.","fileCount":5,"zipByteSize":6690}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s173djpkkm1x4yfzg522h5vfp989mrn5:p-image-try-on","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-p-image-try-on/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-p-image-try-on/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-p-image-try-on/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-p-image-try-on/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-p-image-try-on/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-p-image-try-on/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T11:52:09.441Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-p-image-try-on/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-p-image-try-on/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-p-image-try-on/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-p-image-try-on/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T09:25:14.948Z","emptyReason":null},"readme":"Skill: p-image-try-on\n\nOwner: pruna-ai\n\nSummary: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce.\n\nTags: ai:1.0.14, generative:1.0.14, latest:1.0.14, pruna:1.0.14\n\nVersion history:\n\nv1.0.14 | 2026-09-29T15:34:10.080Z | auto\n\n- Version bump to 1.0.14 in metadata.\n- Removed the redundant skill-card.md file.\n- No functional or usage changes to skill logic or documentation content.\n\nv1.0.13 | 2026-09-17T13:56:29.577Z | auto\n\np-image-try-on version 1.0.13\n\n- Updated SKILL.md to version 1.0.13 with no major content changes.\n- Removed skill-card.md file.\n- Minor maintenance and metadata version bump.\n- No changes to APIs, functionality, or user-facing behaviors.\n\nv1.0.12 | 2026-09-10T13:55:06.148Z | auto\n\n**p-image-try-on 1.0.12**\n\n- Updated skill documentation (SKILL.md) to reflect version 1.0.12.\n- Refined language and examples for clarity in HTTP section and next steps.\n- Adjusted instructions and descriptions for video output in \"Typical next steps\" for better accuracy.\n- Removed the outdated skill-card.md file.\n\nv1.0.11 | 2026-09-03T14:09:56.017Z | auto\n\n- Updated version metadata to 1.0.11 in SKILL.md.\n- Removed the file: skill-card.md.\n- No changes to functionality or usage instructions.\n\nv1.0.10 | 2026-08-28T07:56:06.864Z | auto\n\np-image-try-on 1.0.10\n\n- Updated version to 1.0.10 in SKILL.md.\n- Removed deprecated skill-card.md file.\n- No changes to functionality or the interface.\n\nv1.0.9 | 2026-08-04T06:17:28.988Z | auto\n\n- Updated version to 1.0.9 in SKILL.md.\n- Clarified when to use `p-image` vs. `p-image-edit` in the \"When NOT to use\" section.\n- Removed the file: skill-card.md.\n- No changes to request shape, pricing, or workflow.\n\nv1.0.8 | 2026-07-28T17:19:36.123Z | auto\n\np-image-try-on 1.0.8\n\n- Clarified agent intake procedure: now explicitly open **generation-diversity** clarification intake when user input is silent.\n- Updated \"Agent habit\" step for improved intake guidance and prompt handling.\n- Removed the redundant skill-card.md file.\n- Minor text cleanup to improve instruction clarity and flow.\n\nv1.0.7 | 2026-07-23T12:34:26.163Z | auto\n\n**Summary: This release simplifies documentation, emphasizes modular skill prerequisites, and refines usage instructions.**\n\n- Modularizes required skills: now lists and links necessary companion skills (`generation-diversity`, `image-prompting`, `pruna-api`) under clear Prerequisites.\n- Agent usage clarified: first reply guidance and redirection for non-try-on cases; new prompt craftsmanship section to ensure faithful, reference-based generation.\n- Removes and consolidates documentation: eliminates 11 auxiliary/ref files, streamlining references to companion skills.\n- Polishes API examples and guidance: HTTP/curl sections condensed, dynamic prompt crafting procedure separated, and typical next-step skills added.\n- Updates and simplifies input requirements, usage notes, and request field descriptions for clarity and ease of use.\n\nv1.0.6 | 2026-07-16T20:59:05.584Z | auto\n\n**Changelog for p-image-try-on v1.0.6**\n\n- Updated SKILL.md to v1.0.6 with clearer instructions and enhanced shared generation policy.\n- Added explicit references to diversity, quality checklist, and seed rituals before generation.\n- Improved and clarified documentation links, especially to showcase and policy references.\n- Polished request shape and parameter tables for better clarity.\n- Removed obsolete file: skill-card.md.\n- Refined and condensed descriptions throughout documentation for easier onboarding.\n\nv1.0.2 | 2026-07-16T13:26:55.038Z | auto\n\nVersion 1.0.2\n\n- Updated model version metadata to 1.0.2.\n- Removed obsolete file: skill-card.md.\n- Documentation updates across reference and guide files.\n- No changes to API interface or user workflow.\n\nv1.0.1 | 2026-07-14T15:47:40.076Z | auto\n\np-image-try-on 1.0.1\n\n- Updated to version 1.0.1 in manifest and docs.\n- Reorganized and improved documentation for clarity and accuracy.\n- Corrected and consolidated references and links, especially to quality checklists and examples.\n- Added example prompt documentation.\n- Removed legacy and duplicate files for a cleaner structure.\n\nv0.0.1 | 2026-07-14T15:04:06.342Z | auto\n\nInitial release of p-image-try-on (v0.0.1):\n\n- Enables virtual try-on with garment compositing for editorial and ecommerce scenarios.\n- Supports up to 11 garments per request (≤6 recommended for most reliable results).\n- Maintains person identity, background, and pose; focus is on garment-only editing.\n- Offers optional pose reference and prompt for complex/multi-garment images.\n- Pricing: $0.015 per generation + $0.008 per additional garment.\n- Detailed API usage instructions and quality checklists provided.\n\nv1.0.0 | 2026-06-30T14:59:25.664Z | auto\n\nInitial release of p-image-try-on.\n\n- Enables virtual try-on and garment fitting onto person photos for fashion and ecommerce.\n- Supports multiple garments, complex prints, accessories, and mixed categories in one call.\n- Preserves person identity, pose, hair, and background for high-quality editorial results.\n- Flexible input options: accepts flat-lay, on-model, or multi-garment images.\n- Detailed API reference, usage examples, HTTP request patterns, and production quality guidelines included.\n\nArchive index:\n\nArchive v1.0.14: 5 files, 6818 bytes\n\nFiles: example-prompt.md (3895b), skill-card.md (1675b), skill.manifest.json (23b), SKILL.md (8894b), _meta.json (134b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: p-image-try-on\ndescription: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce.\nlicense: MIT\nmetadata:\n  version: \"1.0.14\"\n  package: pruna-skills\n  pruna_model: p-image-try-on\n---\n\n## Prerequisites\n\nInstall and load these skills before generating (skip if already in context via `@pruna`):\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `generation-diversity` | Use when writing any generative prompt — ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. | `npx skills add PrunaAI/pruna-skills@generation-diversity -y` |\n| `image-prompting` | Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. | `npx skills add PrunaAI/pruna-skills@image-prompting -y` |\n| `pruna-api` | Use before any Pruna or Replicate HTTP call — credentials, upload/poll/download, parallel batches, and agent safety. | `npx skills add PrunaAI/pruna-skills@pruna-api -y` |\n\nOr install the full suite once: `npx skills add PrunaAI/pruna-skills@pruna -y`\n\nFollow each skill's **Before generating** / craft sections — do not restate guide content here.\n\n## Agent habit\n\nIn the **first reply**, name `` `p-image-try-on` `` in backticks, confirm `PRUNA_API_KEY`, then ask for `person_image` + `garment_images`. Open intake → **`generation-diversity`** clarification intake when silent. When refs need disambiguation, draft with **Prompt craft (dynamic + faithful)** — do not paste skill examples. Redirect background-only / no-garment jobs to `p-image-edit`.\n\n## Prompt craft (dynamic + faithful)\n\nIdentity and garments come from **`person_image`** + **`garment_images[]`**. Optional **`prompt`** only **disambiguates refs** — it does not invent a new person or outfit.\n\n| Do | Don't |\n| --- | --- |\n| Lock **`person_image`** and every **`garment_images[]`** URL first; omit **`prompt`** on clean flat-lays | Describe a new scene, model, or garment the user did not supply |\n| When refs are ambiguous: `the green t-shirt from image 1 and the trousers from image 2` (`image-prompting` try-on craft) | Mood-only prompts (`fashion editorial vibe`) or copy this skill's extended example when refs differ |\n| Ritual seed before drafting disambiguation wording; vary phrasing when multiple valid mappings exist | Use **`prompt`** for background swaps — redirect to `p-image-edit` |\n| Show **`prompt`** (if needed) before `POST` when refs are ambiguous | Silent try-on that changes pose, face, or garments beyond the brief |\n\n**Fidelity check (before pay):** output must still be the user's person in the user's garment(s). If **`prompt`** could apply to a different ref set, rewrite the disambiguation.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image` | Use when someone explicitly wants the fastest, cheapest photo generation — mood boards, bulk panels, or quick iterations — not when controlled photoreal or in-image text is needed. | `npx skills add PrunaAI/pruna-skills@p-image -y` |\n| `p-image-edit` | Use when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits. | `npx skills add PrunaAI/pruna-skills@p-image-edit -y` |\n\n## Pricing\n\nPer generation (same for normal and turbo mode):\n\n- **$0.015** for the first garment\n- **$0.008** for each additional garment\n\nExample: 3 garments → $0.015 + 2 × $0.008 = **$0.031**.\n\n## Request shape\n\nOne **`person_image`**, one **`garment_images[]` entry per piece** (up to 11), optional **`reference_pose`**. The model auto-classifies each garment — **array order does not matter**. Mixed categories belong in **one call**.\n\n- **`prompt`** — only when a reference shows multiple garments or is worn on-model; clean flat-lays need no prompt.\n- **`preserve_input_size: true`** (default) — output dimensions follow the **person** image.\n\nRunware field map: `person` → `person_image`, `garment` → `garment_images[]`, `pose` → `reference_pose`, `positivePrompt` → `prompt`, `settings.turbo` → `turbo`.\n\n## HTTP (curl)\n\n### Upload images\n\n```bash\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/person.jpg\"\n\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/garment.png\"\n```\n\nUse each response `urls.get` in `input.person_image` and `input.garment_images[]`. Optional: `reference_pose`.\n\n### Create (async — recommended)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\nPoll and download: follow `pruna-api`.\n\nComplete the random seed ritual from `generation-diversity` before writing prompts — **do not** pass the ritual string as API `seed`.\n\n### Create (sync — quick test only)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -H 'Try-Sync: true' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\n### Extended input (turbo + pose + prompt)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\n        \"https://api.pruna.ai/v1/files/MULTI_GARMENT_SHOT_ID\",\n        \"https://api.pruna.ai/v1/files/BOTTOM_ID\"\n      ],\n      \"reference_pose\": \"https://api.pruna.ai/v1/files/POSE_REF_ID\",\n      \"prompt\": \"the green t-shirt from image 1 and the trousers from image 2\",\n      \"turbo\": true,\n      \"output_format\": \"jpg\",\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\n## Before generating\n\n1. Complete Prerequisites guide reading order (`generation-diversity` → `image-prompting` try-on craft).\n2. Ritual seed → draft optional **dynamic + faithful** disambiguation **`prompt`** (section above) → confirm **`person_image`**, **`garment_images`** (≤6 for finals; 7–8 usually lands; 9–11 may drop last items), and optional **`turbo`** / **`reference_pose`** / **`prompt`**.\n3. **Pruna notes:** one item per body spot (socks + shoes → usually shoes win). **`turbo`** (~2.5–3.5 s) is off by default — not recommended above ~4 garments for finals. Full-body or three-quarter person crops work best. Omit gloves, mittens, handheld props, pocket squares, suspenders, brooches from `garment_images[]`.\n\n## Required input\n\n- `person_image` (string URL)\n- `garment_images` (array of string URLs, up to **11**)\n\n## Common optional fields\n\n- `seed`, `output_format` (`webp` / `jpg` / `png`, default `jpg`), `output_quality` (0–100, default 95)\n- `preserve_input_size` (boolean, default `true`)\n- `turbo` (boolean, default `false`)\n- `reference_pose` (person image URL)\n- `prompt` (EXPERIMENTAL — disambiguate non-flatlay / multi-garment refs)\n\n## Typical next steps\n\nCommon follow-ons after this skill:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image-upscale` | Use when someone wants to upscale or sharpen an existing image for print, large crops, or higher-quality delivery. | `npx skills add PrunaAI/pruna-skills@p-image-upscale -y` |\n| `p-video-2-pro` | Use when someone wants a cinematic clip from text or start/end frames — product ads, documentary shots, or dialogue with generated audio. Not for 1080p, imported audio tracks, or talking-head-only hosts. | `npx skills add PrunaAI/pruna-skills@p-video-2-pro -y` |\n| `p-video-2` | Use when someone wants a polished short clip from text, images, or imported audio — 1080p B-roll, start/end frame animation, or a motion shot with a mixed track. Not for cinematic generated-audio clips or talking-head-only hosts. | `npx skills add PrunaAI/pruna-skills@p-video-2 -y` |\n| `p-video` | Use when someone wants a simple short clip from text or images — quick B-roll, drafts, or start/end frame animation. Not when the brief needs cinematic generation, highest quality, tight lip-sync, or imported audio at 1080p. | `npx skills add PrunaAI/pruna-skills@p-video -y` |\n| `p-video-avatar` | Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. | `npx skills add PrunaAI/pruna-skills@p-video-avatar -y` |\n\nFile v1.0.14:_meta.json\n\n{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"p-image-try-on\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1790696050080\n}\n\nFile v1.0.14:example-prompt.md\n\n# p-image-try-on — example prompts\n\n**Before every job:** random seed ritual (`generation-diversity`).\n\nTry-on scenario briefs and Replicate reference links. **Cross-model persona + avatar examples:** `image-prompting`.\n\nStarter plates aligned with `image-prompting` and `image-prompting`.\n\n## Canonical reference outputs\n\nQuality bar (Replicate playground candidates):\n\n1. [Editorial seated + artistic shirt](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n2. [Complex collaged suit, high angle](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8)\n3. [Mirror selfie + cap + logo tee](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0)\n4. [Multi-garment streetwear stack](https://replicate.com/p/bak21xr79srmr0cyt52tap1nw8)\n5. [Pleated blouse, golden-hour portrait](https://replicate.com/p/g9hd22x26drmr0cytmtsx11c5g)\n\n## Person plate → try-on (minimal curl flow)\n\n```bash\nexport PRUNA_API_KEY=\"your_key\"\n\n# 1) Generate photoreal plate (or upload your own)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image' \\\n  -d '{\"input\":{\"prompt\":\"Photoreal editorial fashion photograph, woman mid-20s South Asian, seated on weathered wood floor against textured plaster wall, soft window daylight, 3:4, natural skin, single subject one frame\",\"aspect_ratio\":\"3:4\"}}'\n\n# Complete random seed ritual (SSoT) before writing prompts — do not pass ritual string as API seed\n\n# 2) Upload person + garment refs → /v1/files, then try-on (normal mode for finals)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_ID\"],\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\nRun the slop gate on the person plate before step 2. Run `image-prompting` on the output.\n\n## Scenario briefs\n\n### Complex collaged suit (tier D)\n\n**Person plate:** high-angle full-body studio, shirtless male model, hands in pockets — see showcase doc.\n\n**Garments:** two refs (blazer + trousers) or one on-model lifestyle ref with:\n\n```json\n\"prompt\": \"the artistic collaged blazer from image 1 and the matching patchwork trousers from image 2\"\n```\n\n**Settings:** `turbo: false`, up to 2–4 garment URLs.\n\n### Streetwear stack (tier D, multi-garment)\n\n**Person plate:** full-body asphalt, prop in frame (bat, bag) — preserve props in output.\n\n**Garments:** jacket, tee, pants as separate packshots **or** one stack photo + prompt:\n\n```json\n\"prompt\": \"the patchwork jacket from image 1, the yellow logo tee from image 2, and the patchwork pants from image 3\"\n```\n\n### Accessories in-scene (tier E)\n\n**Person plate:** mirror selfie or street portrait with visible head/shoulders.\n\n**Garments:** cap ref + tee ref (≤6 total). Verify hat brim and logo placement in checklist.\n\n### Golden-hour texture (tier D + lifestyle)\n\n**Person plate:** cinematic portrait, shallow DOF — pleated or crinkled fabric refs show best here.\n\n**Optional next step:** `p-image-upscale` → `p-video-avatar` for ecommerce VO.\n\n## Diversity rotation (five public examples)\n\nWhen publishing a set, avoid five identical “white studio + plain tee” rows:\n\n| Slot | Cast shift | Setting shift | Garment shift |\n|------|------------|---------------|---------------|\n| 1 | Woman, Mediterranean | Editorial floor | Artistic print shirt |\n| 2 | Man, East Asian | High-angle studio | Collaged suit |\n| 3 | Woman, East Asian | Night street mirror | Cap + logo tee |\n| 4 | Woman, East Asian | Open asphalt | Patchwork stack |\n| 5 | Woman, ambiguous | Golden-hour field | Pleated blouse |\n\nSee generation-diversity.md#visual-variety (`generation-diversity`) for cast ledger fields.\n\nFile v1.0.14:skill-card.md\n\n## Description:\n\nUse when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[pruna-ai](https://clawhub.ai/user/pruna-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nFashion and ecommerce creators use this skill to guide virtual try-on of a supplied person image with supplied garment photos.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Required external skills are installed from unpinned targets that may change after review.\n\nMitigation: Review or pin the referenced Pruna skills before installing.\n\nRisk: Personal images are uploaded to Pruna and API access uses a credential.\n\nMitigation: Upload only images you are comfortable sharing with Pruna; keep PRUNA_API_KEY scoped and protected.\n\n## Reference(s):\n\n- [p-image-try-on on ClawHub](https://clawhub.ai/pruna-ai/skills/p-image-try-on)\n- [Example virtual try-on output](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands]\n\n**Output Format:** [Markdown with curl examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Guides image uploads and virtual try-on requests using supplied person and garment references.]\n\n## Skill Version(s):\n\n1.0.14 (source: frontmatter and release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.14:skill.manifest.json\n\n{\n  \"references\": []\n}\n\nArchive v1.0.13: 5 files, 7177 bytes\n\nFiles: example-prompt.md (3895b), skill-card.md (2596b), skill.manifest.json (23b), SKILL.md (8894b), _meta.json (134b)\n\nFile v1.0.13:SKILL.md\n\n---\nname: p-image-try-on\ndescription: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce.\nlicense: MIT\nmetadata:\n  version: \"1.0.13\"\n  package: pruna-skills\n  pruna_model: p-image-try-on\n---\n\n## Prerequisites\n\nInstall and load these skills before generating (skip if already in context via `@pruna`):\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `generation-diversity` | Use when writing any generative prompt — ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. | `npx skills add PrunaAI/pruna-skills@generation-diversity -y` |\n| `image-prompting` | Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. | `npx skills add PrunaAI/pruna-skills@image-prompting -y` |\n| `pruna-api` | Use before any Pruna or Replicate HTTP call — credentials, upload/poll/download, parallel batches, and agent safety. | `npx skills add PrunaAI/pruna-skills@pruna-api -y` |\n\nOr install the full suite once: `npx skills add PrunaAI/pruna-skills@pruna -y`\n\nFollow each skill's **Before generating** / craft sections — do not restate guide content here.\n\n## Agent habit\n\nIn the **first reply**, name `` `p-image-try-on` `` in backticks, confirm `PRUNA_API_KEY`, then ask for `person_image` + `garment_images`. Open intake → **`generation-diversity`** clarification intake when silent. When refs need disambiguation, draft with **Prompt craft (dynamic + faithful)** — do not paste skill examples. Redirect background-only / no-garment jobs to `p-image-edit`.\n\n## Prompt craft (dynamic + faithful)\n\nIdentity and garments come from **`person_image`** + **`garment_images[]`**. Optional **`prompt`** only **disambiguates refs** — it does not invent a new person or outfit.\n\n| Do | Don't |\n| --- | --- |\n| Lock **`person_image`** and every **`garment_images[]`** URL first; omit **`prompt`** on clean flat-lays | Describe a new scene, model, or garment the user did not supply |\n| When refs are ambiguous: `the green t-shirt from image 1 and the trousers from image 2` (`image-prompting` try-on craft) | Mood-only prompts (`fashion editorial vibe`) or copy this skill's extended example when refs differ |\n| Ritual seed before drafting disambiguation wording; vary phrasing when multiple valid mappings exist | Use **`prompt`** for background swaps — redirect to `p-image-edit` |\n| Show **`prompt`** (if needed) before `POST` when refs are ambiguous | Silent try-on that changes pose, face, or garments beyond the brief |\n\n**Fidelity check (before pay):** output must still be the user's person in the user's garment(s). If **`prompt`** could apply to a different ref set, rewrite the disambiguation.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image` | Use when someone explicitly wants the fastest, cheapest photo generation — mood boards, bulk panels, or quick iterations — not when controlled photoreal or in-image text is needed. | `npx skills add PrunaAI/pruna-skills@p-image -y` |\n| `p-image-edit` | Use when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits. | `npx skills add PrunaAI/pruna-skills@p-image-edit -y` |\n\n## Pricing\n\nPer generation (same for normal and turbo mode):\n\n- **$0.015** for the first garment\n- **$0.008** for each additional garment\n\nExample: 3 garments → $0.015 + 2 × $0.008 = **$0.031**.\n\n## Request shape\n\nOne **`person_image`**, one **`garment_images[]` entry per piece** (up to 11), optional **`reference_pose`**. The model auto-classifies each garment — **array order does not matter**. Mixed categories belong in **one call**.\n\n- **`prompt`** — only when a reference shows multiple garments or is worn on-model; clean flat-lays need no prompt.\n- **`preserve_input_size: true`** (default) — output dimensions follow the **person** image.\n\nRunware field map: `person` → `person_image`, `garment` → `garment_images[]`, `pose` → `reference_pose`, `positivePrompt` → `prompt`, `settings.turbo` → `turbo`.\n\n## HTTP (curl)\n\n### Upload images\n\n```bash\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/person.jpg\"\n\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/garment.png\"\n```\n\nUse each response `urls.get` in `input.person_image` and `input.garment_images[]`. Optional: `reference_pose`.\n\n### Create (async — recommended)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\nPoll and download: follow `pruna-api`.\n\nComplete the random seed ritual from `generation-diversity` before writing prompts — **do not** pass the ritual string as API `seed`.\n\n### Create (sync — quick test only)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -H 'Try-Sync: true' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\n### Extended input (turbo + pose + prompt)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\n        \"https://api.pruna.ai/v1/files/MULTI_GARMENT_SHOT_ID\",\n        \"https://api.pruna.ai/v1/files/BOTTOM_ID\"\n      ],\n      \"reference_pose\": \"https://api.pruna.ai/v1/files/POSE_REF_ID\",\n      \"prompt\": \"the green t-shirt from image 1 and the trousers from image 2\",\n      \"turbo\": true,\n      \"output_format\": \"jpg\",\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\n## Before generating\n\n1. Complete Prerequisites guide reading order (`generation-diversity` → `image-prompting` try-on craft).\n2. Ritual seed → draft optional **dynamic + faithful** disambiguation **`prompt`** (section above) → confirm **`person_image`**, **`garment_images`** (≤6 for finals; 7–8 usually lands; 9–11 may drop last items), and optional **`turbo`** / **`reference_pose`** / **`prompt`**.\n3. **Pruna notes:** one item per body spot (socks + shoes → usually shoes win). **`turbo`** (~2.5–3.5 s) is off by default — not recommended above ~4 garments for finals. Full-body or three-quarter person crops work best. Omit gloves, mittens, handheld props, pocket squares, suspenders, brooches from `garment_images[]`.\n\n## Required input\n\n- `person_image` (string URL)\n- `garment_images` (array of string URLs, up to **11**)\n\n## Common optional fields\n\n- `seed`, `output_format` (`webp` / `jpg` / `png`, default `jpg`), `output_quality` (0–100, default 95)\n- `preserve_input_size` (boolean, default `true`)\n- `turbo` (boolean, default `false`)\n- `reference_pose` (person image URL)\n- `prompt` (EXPERIMENTAL — disambiguate non-flatlay / multi-garment refs)\n\n## Typical next steps\n\nCommon follow-ons after this skill:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image-upscale` | Use when someone wants to upscale or sharpen an existing image for print, large crops, or higher-quality delivery. | `npx skills add PrunaAI/pruna-skills@p-image-upscale -y` |\n| `p-video-2-pro` | Use when someone wants a cinematic clip from text or start/end frames — product ads, documentary shots, or dialogue with generated audio. Not for 1080p, imported audio tracks, or talking-head-only hosts. | `npx skills add PrunaAI/pruna-skills@p-video-2-pro -y` |\n| `p-video-2` | Use when someone wants a polished short clip from text, images, or imported audio — 1080p B-roll, start/end frame animation, or a motion shot with a mixed track. Not for cinematic generated-audio clips or talking-head-only hosts. | `npx skills add PrunaAI/pruna-skills@p-video-2 -y` |\n| `p-video` | Use when someone wants a simple short clip from text or images — quick B-roll, drafts, or start/end frame animation. Not when the brief needs cinematic generation, highest quality, tight lip-sync, or imported audio at 1080p. | `npx skills add PrunaAI/pruna-skills@p-video -y` |\n| `p-video-avatar` | Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. | `npx skills add PrunaAI/pruna-skills@p-video-avatar -y` |\n\nFile v1.0.13:_meta.json\n\n{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"p-image-try-on\",\n  \"version\": \"1.0.13\",\n  \"publishedAt\": 1789653389577\n}\n\nFile v1.0.13:example-prompt.md\n\n# p-image-try-on — example prompts\n\n**Before every job:** random seed ritual (`generation-diversity`).\n\nTry-on scenario briefs and Replicate reference links. **Cross-model persona + avatar examples:** `image-prompting`.\n\nStarter plates aligned with `image-prompting` and `image-prompting`.\n\n## Canonical reference outputs\n\nQuality bar (Replicate playground candidates):\n\n1. [Editorial seated + artistic shirt](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n2. [Complex collaged suit, high angle](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8)\n3. [Mirror selfie + cap + logo tee](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0)\n4. [Multi-garment streetwear stack](https://replicate.com/p/bak21xr79srmr0cyt52tap1nw8)\n5. [Pleated blouse, golden-hour portrait](https://replicate.com/p/g9hd22x26drmr0cytmtsx11c5g)\n\n## Person plate → try-on (minimal curl flow)\n\n```bash\nexport PRUNA_API_KEY=\"your_key\"\n\n# 1) Generate photoreal plate (or upload your own)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image' \\\n  -d '{\"input\":{\"prompt\":\"Photoreal editorial fashion photograph, woman mid-20s South Asian, seated on weathered wood floor against textured plaster wall, soft window daylight, 3:4, natural skin, single subject one frame\",\"aspect_ratio\":\"3:4\"}}'\n\n# Complete random seed ritual (SSoT) before writing prompts — do not pass ritual string as API seed\n\n# 2) Upload person + garment refs → /v1/files, then try-on (normal mode for finals)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_ID\"],\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\nRun the slop gate on the person plate before step 2. Run `image-prompting` on the output.\n\n## Scenario briefs\n\n### Complex collaged suit (tier D)\n\n**Person plate:** high-angle full-body studio, shirtless male model, hands in pockets — see showcase doc.\n\n**Garments:** two refs (blazer + trousers) or one on-model lifestyle ref with:\n\n```json\n\"prompt\": \"the artistic collaged blazer from image 1 and the matching patchwork trousers from image 2\"\n```\n\n**Settings:** `turbo: false`, up to 2–4 garment URLs.\n\n### Streetwear stack (tier D, multi-garment)\n\n**Person plate:** full-body asphalt, prop in frame (bat, bag) — preserve props in output.\n\n**Garments:** jacket, tee, pants as separate packshots **or** one stack photo + prompt:\n\n```json\n\"prompt\": \"the patchwork jacket from image 1, the yellow logo tee from image 2, and the patchwork pants from image 3\"\n```\n\n### Accessories in-scene (tier E)\n\n**Person plate:** mirror selfie or street portrait with visible head/shoulders.\n\n**Garments:** cap ref + tee ref (≤6 total). Verify hat brim and logo placement in checklist.\n\n### Golden-hour texture (tier D + lifestyle)\n\n**Person plate:** cinematic portrait, shallow DOF — pleated or crinkled fabric refs show best here.\n\n**Optional next step:** `p-image-upscale` → `p-video-avatar` for ecommerce VO.\n\n## Diversity rotation (five public examples)\n\nWhen publishing a set, avoid five identical “white studio + plain tee” rows:\n\n| Slot | Cast shift | Setting shift | Garment shift |\n|------|------------|---------------|---------------|\n| 1 | Woman, Mediterranean | Editorial floor | Artistic print shirt |\n| 2 | Man, East Asian | High-angle studio | Collaged suit |\n| 3 | Woman, East Asian | Night street mirror | Cap + logo tee |\n| 4 | Woman, East Asian | Open asphalt | Patchwork stack |\n| 5 | Woman, ambiguous | Golden-hour field | Pleated blouse |\n\nSee generation-diversity.md#visual-variety (`generation-diversity`) for cast ledger fields.\n\nFile v1.0.13:skill-card.md\n\n## Description:\n\nUse when someone wants virtual try-on: dress a person in clothes from reference photos for fashion or ecommerce.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[pruna-ai](https://clawhub.ai/user/pruna-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, fashion teams, ecommerce creators, and developers use this skill to prepare Pruna API calls that place supplied garments onto a supplied person image while preserving the person's identity and the referenced clothing.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill sends person and garment images to Pruna's external API.\n\nMitigation: Confirm rights and consent for all uploaded images, avoid unnecessary sensitive details, and use the Pruna API only when this data handling is acceptable.\n\nRisk: The skill references companion skills through broad install commands that are not pinned to exact reviewed versions.\n\nMitigation: Use reviewed or pinned companion skill versions in controlled environments.\n\nRisk: Ambiguous garment references or prompts can change the intended person, garment, pose, or scene.\n\nMitigation: Confirm person_image, garment_images, optional prompt, and any pose reference before paid API calls, and keep prompts limited to reference disambiguation.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/pruna-ai/skills/p-image-try-on)\n- [Pruna files API endpoint](https://api.pruna.ai/v1/files)\n- [Pruna predictions API endpoint](https://api.pruna.ai/v1/predictions)\n- [Editorial seated and artistic shirt reference output](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n- [Complex collaged suit reference output](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8)\n- [Mirror selfie and cap reference output](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, shell commands, configuration, markdown]\n\n**Output Format:** [Markdown with curl commands and JSON request examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Guides API usage for person_image, garment_images, optional reference_pose, prompt, turbo, output_format, output_quality, and preserve_input_size.]\n\n## Skill Version(s):\n\n1.0.13 (source: server release evidence and SKILL.md metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.13:skill.manifest.json\n\n{\n  \"references\": []\n}\n\nArchive v1.0.12: 5 files, 6967 bytes\n\nFiles: example-prompt.md (3895b), skill-card.md (2455b), skill.manifest.json (23b), SKILL.md (8262b), _meta.json (134b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: p-image-try-on\ndescription: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce.\nlicense: MIT\nmetadata:\n  version: \"1.0.12\"\n  package: pruna-skills\n  pruna_model: p-image-try-on\n---\n\n## Prerequisites\n\nInstall and load these skills before generating (skip if already in context via `@pruna`):\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `generation-diversity` | Use when writing any generative prompt — ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. | `npx skills add PrunaAI/pruna-skills@generation-diversity -y` |\n| `image-prompting` | Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. | `npx skills add PrunaAI/pruna-skills@image-prompting -y` |\n| `pruna-api` | Use before any Pruna or Replicate HTTP call — credentials, upload/poll/download, parallel batches, and agent safety. | `npx skills add PrunaAI/pruna-skills@pruna-api -y` |\n\nOr install the full suite once: `npx skills add PrunaAI/pruna-skills@pruna -y`\n\nFollow each skill's **Before generating** / craft sections — do not restate guide content here.\n\n## Agent habit\n\nIn the **first reply**, name `` `p-image-try-on` `` in backticks, confirm `PRUNA_API_KEY`, then ask for `person_image` + `garment_images`. Open intake → **`generation-diversity`** clarification intake when silent. When refs need disambiguation, draft with **Prompt craft (dynamic + faithful)** — do not paste skill examples. Redirect background-only / no-garment jobs to `p-image-edit`.\n\n## Prompt craft (dynamic + faithful)\n\nIdentity and garments come from **`person_image`** + **`garment_images[]`**. Optional **`prompt`** only **disambiguates refs** — it does not invent a new person or outfit.\n\n| Do | Don't |\n| --- | --- |\n| Lock **`person_image`** and every **`garment_images[]`** URL first; omit **`prompt`** on clean flat-lays | Describe a new scene, model, or garment the user did not supply |\n| When refs are ambiguous: `the green t-shirt from image 1 and the trousers from image 2` (`image-prompting` try-on craft) | Mood-only prompts (`fashion editorial vibe`) or copy this skill's extended example when refs differ |\n| Ritual seed before drafting disambiguation wording; vary phrasing when multiple valid mappings exist | Use **`prompt`** for background swaps — redirect to `p-image-edit` |\n| Show **`prompt`** (if needed) before `POST` when refs are ambiguous | Silent try-on that changes pose, face, or garments beyond the brief |\n\n**Fidelity check (before pay):** output must still be the user's person in the user's garment(s). If **`prompt`** could apply to a different ref set, rewrite the disambiguation.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image` | Use when someone explicitly wants the fastest, cheapest photo generation — mood boards, bulk panels, or quick iterations — not when controlled photoreal or in-image text is needed. | `npx skills add PrunaAI/pruna-skills@p-image -y` |\n| `p-image-edit` | Use when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits. | `npx skills add PrunaAI/pruna-skills@p-image-edit -y` |\n\n## Pricing\n\nPer generation (same for normal and turbo mode):\n\n- **$0.015** for the first garment\n- **$0.008** for each additional garment\n\nExample: 3 garments → $0.015 + 2 × $0.008 = **$0.031**.\n\n## Request shape\n\nOne **`person_image`**, one **`garment_images[]` entry per piece** (up to 11), optional **`reference_pose`**. The model auto-classifies each garment — **array order does not matter**. Mixed categories belong in **one call**.\n\n- **`prompt`** — only when a reference shows multiple garments or is worn on-model; clean flat-lays need no prompt.\n- **`preserve_input_size: true`** (default) — output dimensions follow the **person** image.\n\nRunware field map: `person` → `person_image`, `garment` → `garment_images[]`, `pose` → `reference_pose`, `positivePrompt` → `prompt`, `settings.turbo` → `turbo`.\n\n## HTTP (curl)\n\n### Upload images\n\n```bash\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/person.jpg\"\n\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/garment.png\"\n```\n\nUse each response `urls.get` in `input.person_image` and `input.garment_images[]`. Optional: `reference_pose`.\n\n### Create (async — recommended)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\nPoll and download: follow `pruna-api`.\n\nComplete the random seed ritual from `generation-diversity` before writing prompts — **do not** pass the ritual string as API `seed`.\n\n### Create (sync — quick test only)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -H 'Try-Sync: true' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\n### Extended input (turbo + pose + prompt)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\n        \"https://api.pruna.ai/v1/files/MULTI_GARMENT_SHOT_ID\",\n        \"https://api.pruna.ai/v1/files/BOTTOM_ID\"\n      ],\n      \"reference_pose\": \"https://api.pruna.ai/v1/files/POSE_REF_ID\",\n      \"prompt\": \"the green t-shirt from image 1 and the trousers from image 2\",\n      \"turbo\": true,\n      \"output_format\": \"jpg\",\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\n## Before generating\n\n1. Complete Prerequisites guide reading order (`generation-diversity` → `image-prompting` try-on craft).\n2. Ritual seed → draft optional **dynamic + faithful** disambiguation **`prompt`** (section above) → confirm **`person_image`**, **`garment_images`** (≤6 for finals; 7–8 usually lands; 9–11 may drop last items), and optional **`turbo`** / **`reference_pose`** / **`prompt`**.\n3. **Pruna notes:** one item per body spot (socks + shoes → usually shoes win). **`turbo`** (~2.5–3.5 s) is off by default — not recommended above ~4 garments for finals. Full-body or three-quarter person crops work best. Omit gloves, mittens, handheld props, pocket squares, suspenders, brooches from `garment_images[]`.\n\n## Required input\n\n- `person_image` (string URL)\n- `garment_images` (array of string URLs, up to **11**)\n\n## Common optional fields\n\n- `seed`, `output_format` (`webp` / `jpg` / `png`, default `jpg`), `output_quality` (0–100, default 95)\n- `preserve_input_size` (boolean, default `true`)\n- `turbo` (boolean, default `false`)\n- `reference_pose` (person image URL)\n- `prompt` (EXPERIMENTAL — disambiguate non-flatlay / multi-garment refs)\n\n## Typical next steps\n\nCommon follow-ons after this skill:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image-upscale` | Use when someone wants to upscale or sharpen an existing image for print, large crops, or higher-quality delivery. | `npx skills add PrunaAI/pruna-skills@p-image-upscale -y` |\n| `p-video` | Use when someone wants a simple short clip from text or images — quick B-roll, drafts, or start/end frame animation. Not when the brief needs the highest quality or tight lip-sync. | `npx skills add PrunaAI/pruna-skills@p-video -y` |\n| `p-video-avatar` | Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. | `npx skills add PrunaAI/pruna-skills@p-video-avatar -y` |\n\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"p-image-try-on\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1789048506148\n}\n\nFile v1.0.12:example-prompt.md\n\n# p-image-try-on — example prompts\n\n**Before every job:** random seed ritual (`generation-diversity`).\n\nTry-on scenario briefs and Replicate reference links. **Cross-model persona + avatar examples:** `image-prompting`.\n\nStarter plates aligned with `image-prompting` and `image-prompting`.\n\n## Canonical reference outputs\n\nQuality bar (Replicate playground candidates):\n\n1. [Editorial seated + artistic shirt](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n2. [Complex collaged suit, high angle](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8)\n3. [Mirror selfie + cap + logo tee](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0)\n4. [Multi-garment streetwear stack](https://replicate.com/p/bak21xr79srmr0cyt52tap1nw8)\n5. [Pleated blouse, golden-hour portrait](https://replicate.com/p/g9hd22x26drmr0cytmtsx11c5g)\n\n## Person plate → try-on (minimal curl flow)\n\n```bash\nexport PRUNA_API_KEY=\"your_key\"\n\n# 1) Generate photoreal plate (or upload your own)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image' \\\n  -d '{\"input\":{\"prompt\":\"Photoreal editorial fashion photograph, woman mid-20s South Asian, seated on weathered wood floor against textured plaster wall, soft window daylight, 3:4, natural skin, single subject one frame\",\"aspect_ratio\":\"3:4\"}}'\n\n# Complete random seed ritual (SSoT) before writing prompts — do not pass ritual string as API seed\n\n# 2) Upload person + garment refs → /v1/files, then try-on (normal mode for finals)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_ID\"],\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\nRun the slop gate on the person plate before step 2. Run `image-prompting` on the output.\n\n## Scenario briefs\n\n### Complex collaged suit (tier D)\n\n**Person plate:** high-angle full-body studio, shirtless male model, hands in pockets — see showcase doc.\n\n**Garments:** two refs (blazer + trousers) or one on-model lifestyle ref with:\n\n```json\n\"prompt\": \"the artistic collaged blazer from image 1 and the matching patchwork trousers from image 2\"\n```\n\n**Settings:** `turbo: false`, up to 2–4 garment URLs.\n\n### Streetwear stack (tier D, multi-garment)\n\n**Person plate:** full-body asphalt, prop in frame (bat, bag) — preserve props in output.\n\n**Garments:** jacket, tee, pants as separate packshots **or** one stack photo + prompt:\n\n```json\n\"prompt\": \"the patchwork jacket from image 1, the yellow logo tee from image 2, and the patchwork pants from image 3\"\n```\n\n### Accessories in-scene (tier E)\n\n**Person plate:** mirror selfie or street portrait with visible head/shoulders.\n\n**Garments:** cap ref + tee ref (≤6 total). Verify hat brim and logo placement in checklist.\n\n### Golden-hour texture (tier D + lifestyle)\n\n**Person plate:** cinematic portrait, shallow DOF — pleated or crinkled fabric refs show best here.\n\n**Optional next step:** `p-image-upscale` → `p-video-avatar` for ecommerce VO.\n\n## Diversity rotation (five public examples)\n\nWhen publishing a set, avoid five identical “white studio + plain tee” rows:\n\n| Slot | Cast shift | Setting shift | Garment shift |\n|------|------------|---------------|---------------|\n| 1 | Woman, Mediterranean | Editorial floor | Artistic print shirt |\n| 2 | Man, East Asian | High-angle studio | Collaged suit |\n| 3 | Woman, East Asian | Night street mirror | Cap + logo tee |\n| 4 | Woman, East Asian | Open asphalt | Patchwork stack |\n| 5 | Woman, ambiguous | Golden-hour field | Pleated blouse |\n\nSee generation-diversity.md#visual-variety (`generation-diversity`) for cast ledger fields.\n\nFile v1.0.12:skill-card.md\n\n## Description:\n\nHelps agents guide virtual try-on workflows that dress a provided person image in garments from reference photos for fashion or ecommerce.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[pruna-ai](https://clawhub.ai/user/pruna-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, ecommerce teams, and developers use this skill to prepare Pruna virtual try-on requests from a person image and garment reference images. It helps clarify required inputs, optional pose and prompt fields, pricing, and follow-on image or video workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The workflow can send personal images to a third-party API.\n\nMitigation: Review Pruna API privacy and retention terms before use, and avoid sensitive or non-consensual person images.\n\nRisk: The skill requires PRUNA_API_KEY for API calls.\n\nMitigation: Store the key securely, avoid exposing it in prompts or logs, and rotate it if disclosure is suspected.\n\nRisk: The artifact recommends unpinned external skill installation commands.\n\nMitigation: Prefer pinned versions or manual review before installing or auto-approving npx skill commands.\n\n## Reference(s):\n\n- [ClawHub skill release page](https://clawhub.ai/pruna-ai/skills/p-image-try-on)\n- [Editorial seated reference output](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n- [Complex collaged suit reference output](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8)\n- [Mirror selfie reference output](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0)\n- [Multi-garment streetwear reference output](https://replicate.com/p/bak21xr79srmr0cyt52tap1nw8)\n- [Pleated blouse reference output](https://replicate.com/p/g9hd22x26drmr0cytmtsx11c5g)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with JSON request examples and curl commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires PRUNA_API_KEY and user-supplied person and garment image URLs.]\n\n## Skill Version(s):\n\n1.0.12 (source: server release metadata and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.12:skill.manifest.json\n\n{\n  \"references\": []\n}\n\nArchive v1.0.11: 5 files, 7081 bytes\n\nFiles: example-prompt.md (3895b), skill-card.md (2688b), skill.manifest.json (23b), SKILL.md (8258b), _meta.json (134b)\n\nFile v1.0.11:SKILL.md\n\n---\nname: p-image-try-on\ndescription: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce.\nlicense: MIT\nmetadata:\n  version: \"1.0.11\"\n  package: pruna-skills\n  pruna_model: p-image-try-on\n---\n\n## Prerequisites\n\nInstall and load these skills before generating (skip if already in context via `@pruna`):\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `generation-diversity` | Use when writing any generative prompt — ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. | `npx skills add PrunaAI/pruna-skills@generation-diversity -y` |\n| `image-prompting` | Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. | `npx skills add PrunaAI/pruna-skills@image-prompting -y` |\n| `pruna-api` | Use before any Pruna or Replicate HTTP call — credentials, upload/poll/download, parallel batches, and agent safety. | `npx skills add PrunaAI/pruna-skills@pruna-api -y` |\n\nOr install the full suite once: `npx skills add PrunaAI/pruna-skills@pruna -y`\n\nFollow each skill's **Before generating** / craft sections — do not restate guide content here.\n\n## Agent habit\n\nIn the **first reply**, name `` `p-image-try-on` `` in backticks, confirm `PRUNA_API_KEY`, then ask for `person_image` + `garment_images`. Open intake → **`generation-diversity`** clarification intake when silent. When refs need disambiguation, draft with **Prompt craft (dynamic + faithful)** — do not paste skill examples. Redirect background-only / no-garment jobs to `p-image-edit`.\n\n## Prompt craft (dynamic + faithful)\n\nIdentity and garments come from **`person_image`** + **`garment_images[]`**. Optional **`prompt`** only **disambiguates refs** — it does not invent a new person or outfit.\n\n| Do | Don't |\n| --- | --- |\n| Lock **`person_image`** and every **`garment_images[]`** URL first; omit **`prompt`** on clean flat-lays | Describe a new scene, model, or garment the user did not supply |\n| When refs are ambiguous: `the green t-shirt from image 1 and the trousers from image 2` (`image-prompting` try-on craft) | Mood-only prompts (`fashion editorial vibe`) or copy this skill's extended example when refs differ |\n| Ritual seed before drafting disambiguation wording; vary phrasing when multiple valid mappings exist | Use **`prompt`** for background swaps — redirect to `p-image-edit` |\n| Show **`prompt`** (if needed) before `POST` when refs are ambiguous | Silent try-on that changes pose, face, or garments beyond the brief |\n\n**Fidelity check (before pay):** output must still be the user's person in the user's garment(s). If **`prompt`** could apply to a different ref set, rewrite the disambiguation.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image` | Use when someone explicitly wants the fastest, cheapest photo generation — mood boards, bulk panels, or quick iterations — not when controlled photoreal or in-image text is needed. | `npx skills add PrunaAI/pruna-skills@p-image -y` |\n| `p-image-edit` | Use when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits. | `npx skills add PrunaAI/pruna-skills@p-image-edit -y` |\n\n## Pricing\n\nPer generation (same for normal and turbo mode):\n\n- **$0.015** for the first garment\n- **$0.008** for each additional garment\n\nExample: 3 garments → $0.015 + 2 × $0.008 = **$0.031**.\n\n## Request shape\n\nOne **`person_image`**, one **`garment_images[]` entry per piece** (up to 11), optional **`reference_pose`**. The model auto-classifies each garment — **array order does not matter**. Mixed categories belong in **one call**.\n\n- **`prompt`** — only when a reference shows multiple garments or is worn on-model; clean flat-lays need no prompt.\n- **`preserve_input_size: true`** (default) — output dimensions follow the **person** image.\n\nRunware field map: `person` → `person_image`, `garment` → `garment_images[]`, `pose` → `reference_pose`, `positivePrompt` → `prompt`, `settings.turbo` → `turbo`.\n\n## HTTP (curl)\n\n### Upload images\n\n```bash\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/person.jpg\"\n\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/garment.png\"\n```\n\nUse each response `urls.get` in `input.person_image` and `input.garment_images[]`. Optional: `reference_pose`.\n\n### Create (async — recommended)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\nPoll and download: follow `pruna-api`.\n\nComplete the random seed ritual from `generation-diversity` before writing prompts — **do not** pass the ritual string as API `seed`.\n\n### Create (sync — quick test only)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -H 'Try-Sync: true' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\n### Extended input (turbo + pose + prompt)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\n        \"https://api.pruna.ai/v1/files/MULTI_GARMENT_SHOT_ID\",\n        \"https://api.pruna.ai/v1/files/BOTTOM_ID\"\n      ],\n      \"reference_pose\": \"https://api.pruna.ai/v1/files/POSE_REF_ID\",\n      \"prompt\": \"the green t-shirt from image 1 and the trousers from image 2\",\n      \"turbo\": true,\n      \"output_format\": \"jpg\",\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\n## Before generating\n\n1. Complete Prerequisites guide reading order (`generation-diversity` → `image-prompting` try-on craft).\n2. Ritual seed → draft optional **dynamic + faithful** disambiguation **`prompt`** (section above) → confirm **`person_image`**, **`garment_images`** (≤6 for finals; 7–8 usually lands; 9–11 may drop last items), and optional **`turbo`** / **`reference_pose`** / **`prompt`**.\n3. **Pruna notes:** one item per body spot (socks + shoes → usually shoes win). **`turbo`** (~2.5–3.5 s) is off by default — not recommended above ~4 garments for finals. Full-body or three-quarter person crops work best. Omit gloves, mittens, handheld props, pocket squares, suspenders, brooches from `garment_images[]`.\n\n## Required input\n\n- `person_image` (string URL)\n- `garment_images` (array of string URLs, up to **11**)\n\n## Common optional fields\n\n- `seed`, `output_format` (`webp` / `jpg` / `png`, default `jpg`), `output_quality` (0–100, default 95)\n- `preserve_input_size` (boolean, default `true`)\n- `turbo` (boolean, default `false`)\n- `reference_pose` (person image URL)\n- `prompt` (EXPERIMENTAL — disambiguate non-flatlay / multi-garment refs)\n\n## Typical next steps\n\nCommon follow-ons after this skill:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image-upscale` | Use when someone wants to upscale or sharpen an existing image for print, large crops, or higher-quality delivery. | `npx skills add PrunaAI/pruna-skills@p-image-upscale -y` |\n| `p-video` | Use when someone wants one short video clip from text or images — B-roll, start/end frame animation, or a quick motion shot. Not for full multi-scene films or lip-synced hosts. | `npx skills add PrunaAI/pruna-skills@p-video -y` |\n| `p-video-avatar` | Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. | `npx skills add PrunaAI/pruna-skills@p-video-avatar -y` |\n\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"p-image-try-on\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1788444596017\n}\n\nFile v1.0.11:example-prompt.md\n\n# p-image-try-on — example prompts\n\n**Before every job:** random seed ritual (`generation-diversity`).\n\nTry-on scenario briefs and Replicate reference links. **Cross-model persona + avatar examples:** `image-prompting`.\n\nStarter plates aligned with `image-prompting` and `image-prompting`.\n\n## Canonical reference outputs\n\nQuality bar (Replicate playground candidates):\n\n1. [Editorial seated + artistic shirt](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n2. [Complex collaged suit, high angle](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8)\n3. [Mirror selfie + cap + logo tee](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0)\n4. [Multi-garment streetwear stack](https://replicate.com/p/bak21xr79srmr0cyt52tap1nw8)\n5. [Pleated blouse, golden-hour portrait](https://replicate.com/p/g9hd22x26drmr0cytmtsx11c5g)\n\n## Person plate → try-on (minimal curl flow)\n\n```bash\nexport PRUNA_API_KEY=\"your_key\"\n\n# 1) Generate photoreal plate (or upload your own)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image' \\\n  -d '{\"input\":{\"prompt\":\"Photoreal editorial fashion photograph, woman mid-20s South Asian, seated on weathered wood floor against textured plaster wall, soft window daylight, 3:4, natural skin, single subject one frame\",\"aspect_ratio\":\"3:4\"}}'\n\n# Complete random seed ritual (SSoT) before writing prompts — do not pass ritual string as API seed\n\n# 2) Upload person + garment refs → /v1/files, then try-on (normal mode for finals)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_ID\"],\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\nRun the slop gate on the person plate before step 2. Run `image-prompting` on the output.\n\n## Scenario briefs\n\n### Complex collaged suit (tier D)\n\n**Person plate:** high-angle full-body studio, shirtless male model, hands in pockets — see showcase doc.\n\n**Garments:** two refs (blazer + trousers) or one on-model lifestyle ref with:\n\n```json\n\"prompt\": \"the artistic collaged blazer from image 1 and the matching patchwork trousers from image 2\"\n```\n\n**Settings:** `turbo: false`, up to 2–4 garment URLs.\n\n### Streetwear stack (tier D, multi-garment)\n\n**Person plate:** full-body asphalt, prop in frame (bat, bag) — preserve props in output.\n\n**Garments:** jacket, tee, pants as separate packshots **or** one stack photo + prompt:\n\n```json\n\"prompt\": \"the patchwork jacket from image 1, the yellow logo tee from image 2, and the patchwork pants from image 3\"\n```\n\n### Accessories in-scene (tier E)\n\n**Person plate:** mirror selfie or street portrait with visible head/shoulders.\n\n**Garments:** cap ref + tee ref (≤6 total). Verify hat brim and logo placement in checklist.\n\n### Golden-hour texture (tier D + lifestyle)\n\n**Person plate:** cinematic portrait, shallow DOF — pleated or crinkled fabric refs show best here.\n\n**Optional next step:** `p-image-upscale` → `p-video-avatar` for ecommerce VO.\n\n## Diversity rotation (five public examples)\n\nWhen publishing a set, avoid five identical “white studio + plain tee” rows:\n\n| Slot | Cast shift | Setting shift | Garment shift |\n|------|------------|---------------|---------------|\n| 1 | Woman, Mediterranean | Editorial floor | Artistic print shirt |\n| 2 | Man, East Asian | High-angle studio | Collaged suit |\n| 3 | Woman, East Asian | Night street mirror | Cap + logo tee |\n| 4 | Woman, East Asian | Open asphalt | Patchwork stack |\n| 5 | Woman, ambiguous | Golden-hour field | Pleated blouse |\n\nSee generation-diversity.md#visual-variety (`generation-diversity`) for cast ledger fields.\n\nFile v1.0.11:skill-card.md\n\n## Description:\n\nUse when someone wants virtual try-on: dress a person in clothes from reference photos for fashion or ecommerce.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[pruna-ai](https://clawhub.ai/user/pruna-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to generate virtual try-on images for fashion or ecommerce by applying reference garments to a provided person image through Pruna.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The workflow uploads person and garment images to Pruna-hosted endpoints, which may involve personal photos or sensitive visual data.\n\nMitigation: Use only images the user has rights and consent to process, avoid sensitive or minor images unless safeguards are in place, and review Pruna privacy and retention terms before use.\n\nRisk: Installing the full Pruna skill suite expands the trusted dependency surface beyond this try-on workflow.\n\nMitigation: Install only the Pruna dependency skills needed for this workflow unless the broader package set has been reviewed and trusted.\n\nRisk: Ambiguous garment references or prompts can cause the output to alter the intended person, garment, or pose.\n\nMitigation: Confirm person_image, garment_images, optional prompt, and optional reference_pose before paid generation; use the prompt only to disambiguate supplied references.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/pruna-ai/skills/p-image-try-on)\n- [Editorial seated and artistic shirt reference output](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n- [Complex collaged suit reference output](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8)\n- [Mirror selfie and cap reference output](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0)\n- [Multi-garment streetwear stack reference output](https://replicate.com/p/bak21xr79srmr0cyt52tap1nw8)\n- [Pleated blouse golden-hour reference output](https://replicate.com/p/g9hd22x26drmr0cytmtsx11c5g)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, shell commands, configuration, code]\n\n**Output Format:** [Markdown guidance with curl commands and JSON request bodies]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires PRUNA_API_KEY plus user-provided person and garment image URLs.]\n\n## Skill Version(s):\n\n1.0.11 (source: release evidence and SKILL.md metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.11:skill.manifest.json\n\n{\n  \"references\": []\n}\n\nArchive v1.0.10: 5 files, 6950 bytes\n\nFiles: example-prompt.md (3895b), skill-card.md (2395b), skill.manifest.json (23b), SKILL.md (8258b), _meta.json (134b)\n\nFile v1.0.10:SKILL.md\n\n---\nname: p-image-try-on\ndescription: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce.\nlicense: MIT\nmetadata:\n  version: \"1.0.10\"\n  package: pruna-skills\n  pruna_model: p-image-try-on\n---\n\n## Prerequisites\n\nInstall and load these skills before generating (skip if already in context via `@pruna`):\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `generation-diversity` | Use when writing any generative prompt — ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. | `npx skills add PrunaAI/pruna-skills@generation-diversity -y` |\n| `image-prompting` | Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. | `npx skills add PrunaAI/pruna-skills@image-prompting -y` |\n| `pruna-api` | Use before any Pruna or Replicate HTTP call — credentials, upload/poll/download, parallel batches, and agent safety. | `npx skills add PrunaAI/pruna-skills@pruna-api -y` |\n\nOr install the full suite once: `npx skills add PrunaAI/pruna-skills@pruna -y`\n\nFollow each skill's **Before generating** / craft sections — do not restate guide content here.\n\n## Agent habit\n\nIn the **first reply**, name `` `p-image-try-on` `` in backticks, confirm `PRUNA_API_KEY`, then ask for `person_image` + `garment_images`. Open intake → **`generation-diversity`** clarification intake when silent. When refs need disambiguation, draft with **Prompt craft (dynamic + faithful)** — do not paste skill examples. Redirect background-only / no-garment jobs to `p-image-edit`.\n\n## Prompt craft (dynamic + faithful)\n\nIdentity and garments come from **`person_image`** + **`garment_images[]`**. Optional **`prompt`** only **disambiguates refs** — it does not invent a new person or outfit.\n\n| Do | Don't |\n| --- | --- |\n| Lock **`person_image`** and every **`garment_images[]`** URL first; omit **`prompt`** on clean flat-lays | Describe a new scene, model, or garment the user did not supply |\n| When refs are ambiguous: `the green t-shirt from image 1 and the trousers from image 2` (`image-prompting` try-on craft) | Mood-only prompts (`fashion editorial vibe`) or copy this skill's extended example when refs differ |\n| Ritual seed before drafting disambiguation wording; vary phrasing when multiple valid mappings exist | Use **`prompt`** for background swaps — redirect to `p-image-edit` |\n| Show **`prompt`** (if needed) before `POST` when refs are ambiguous | Silent try-on that changes pose, face, or garments beyond the brief |\n\n**Fidelity check (before pay):** output must still be the user's person in the user's garment(s). If **`prompt`** could apply to a different ref set, rewrite the disambiguation.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image` | Use when someone explicitly wants the fastest, cheapest photo generation — mood boards, bulk panels, or quick iterations — not when controlled photoreal or in-image text is needed. | `npx skills add PrunaAI/pruna-skills@p-image -y` |\n| `p-image-edit` | Use when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits. | `npx skills add PrunaAI/pruna-skills@p-image-edit -y` |\n\n## Pricing\n\nPer generation (same for normal and turbo mode):\n\n- **$0.015** for the first garment\n- **$0.008** for each additional garment\n\nExample: 3 garments → $0.015 + 2 × $0.008 = **$0.031**.\n\n## Request shape\n\nOne **`person_image`**, one **`garment_images[]` entry per piece** (up to 11), optional **`reference_pose`**. The model auto-classifies each garment — **array order does not matter**. Mixed categories belong in **one call**.\n\n- **`prompt`** — only when a reference shows multiple garments or is worn on-model; clean flat-lays need no prompt.\n- **`preserve_input_size: true`** (default) — output dimensions follow the **person** image.\n\nRunware field map: `person` → `person_image`, `garment` → `garment_images[]`, `pose` → `reference_pose`, `positivePrompt` → `prompt`, `settings.turbo` → `turbo`.\n\n## HTTP (curl)\n\n### Upload images\n\n```bash\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/person.jpg\"\n\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/garment.png\"\n```\n\nUse each response `urls.get` in `input.person_image` and `input.garment_images[]`. Optional: `reference_pose`.\n\n### Create (async — recommended)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\nPoll and download: follow `pruna-api`.\n\nComplete the random seed ritual from `generation-diversity` before writing prompts — **do not** pass the ritual string as API `seed`.\n\n### Create (sync — quick test only)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -H 'Try-Sync: true' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\n### Extended input (turbo + pose + prompt)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\n        \"https://api.pruna.ai/v1/files/MULTI_GARMENT_SHOT_ID\",\n        \"https://api.pruna.ai/v1/files/BOTTOM_ID\"\n      ],\n      \"reference_pose\": \"https://api.pruna.ai/v1/files/POSE_REF_ID\",\n      \"prompt\": \"the green t-shirt from image 1 and the trousers from image 2\",\n      \"turbo\": true,\n      \"output_format\": \"jpg\",\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\n## Before generating\n\n1. Complete Prerequisites guide reading order (`generation-diversity` → `image-prompting` try-on craft).\n2. Ritual seed → draft optional **dynamic + faithful** disambiguation **`prompt`** (section above) → confirm **`person_image`**, **`garment_images`** (≤6 for finals; 7–8 usually lands; 9–11 may drop last items), and optional **`turbo`** / **`reference_pose`** / **`prompt`**.\n3. **Pruna notes:** one item per body spot (socks + shoes → usually shoes win). **`turbo`** (~2.5–3.5 s) is off by default — not recommended above ~4 garments for finals. Full-body or three-quarter person crops work best. Omit gloves, mittens, handheld props, pocket squares, suspenders, brooches from `garment_images[]`.\n\n## Required input\n\n- `person_image` (string URL)\n- `garment_images` (array of string URLs, up to **11**)\n\n## Common optional fields\n\n- `seed`, `output_format` (`webp` / `jpg` / `png`, default `jpg`), `output_quality` (0–100, default 95)\n- `preserve_input_size` (boolean, default `true`)\n- `turbo` (boolean, default `false`)\n- `reference_pose` (person image URL)\n- `prompt` (EXPERIMENTAL — disambiguate non-flatlay / multi-garment refs)\n\n## Typical next steps\n\nCommon follow-ons after this skill:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image-upscale` | Use when someone wants to upscale or sharpen an existing image for print, large crops, or higher-quality delivery. | `npx skills add PrunaAI/pruna-skills@p-image-upscale -y` |\n| `p-video` | Use when someone wants one short video clip from text or images — B-roll, start/end frame animation, or a quick motion shot. Not for full multi-scene films or lip-synced hosts. | `npx skills add PrunaAI/pruna-skills@p-video -y` |\n| `p-video-avatar` | Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. | `npx skills add PrunaAI/pruna-skills@p-video-avatar -y` |\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"p-image-try-on\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1787903766864\n}\n\nFile v1.0.10:example-prompt.md\n\n# p-image-try-on — example prompts\n\n**Before every job:** random seed ritual (`generation-diversity`).\n\nTry-on scenario briefs and Replicate reference links. **Cross-model persona + avatar examples:** `image-prompting`.\n\nStarter plates aligned with `image-prompting` and `image-prompting`.\n\n## Canonical reference outputs\n\nQuality bar (Replicate playground candidates):\n\n1. [Editorial seated + artistic shirt](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n2. [Complex collaged suit, high angle](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8)\n3. [Mirror selfie + cap + logo tee](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0)\n4. [Multi-garment streetwear stack](https://replicate.com/p/bak21xr79srmr0cyt52tap1nw8)\n5. [Pleated blouse, golden-hour portrait](https://replicate.com/p/g9hd22x26drmr0cytmtsx11c5g)\n\n## Person plate → try-on (minimal curl flow)\n\n```bash\nexport PRUNA_API_KEY=\"your_key\"\n\n# 1) Generate photoreal plate (or upload your own)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image' \\\n  -d '{\"input\":{\"prompt\":\"Photoreal editorial fashion photograph, woman mid-20s South Asian, seated on weathered wood floor against textured plaster wall, soft window daylight, 3:4, natural skin, single subject one frame\",\"aspect_ratio\":\"3:4\"}}'\n\n# Complete random seed ritual (SSoT) before writing prompts — do not pass ritual string as API seed\n\n# 2) Upload person + garment refs → /v1/files, then try-on (normal mode for finals)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_ID\"],\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\nRun the slop gate on the person plate before step 2. Run `image-prompting` on the output.\n\n## Scenario briefs\n\n### Complex collaged suit (tier D)\n\n**Person plate:** high-angle full-body studio, shirtless male model, hands in pockets — see showcase doc.\n\n**Garments:** two refs (blazer + trousers) or one on-model lifestyle ref with:\n\n```json\n\"prompt\": \"the artistic collaged blazer from image 1 and the matching patchwork trousers from image 2\"\n```\n\n**Settings:** `turbo: false`, up to 2–4 garment URLs.\n\n### Streetwear stack (tier D, multi-garment)\n\n**Person plate:** full-body asphalt, prop in frame (bat, bag) — preserve props in output.\n\n**Garments:** jacket, tee, pants as separate packshots **or** one stack photo + prompt:\n\n```json\n\"prompt\": \"the patchwork jacket from image 1, the yellow logo tee from image 2, and the patchwork pants from image 3\"\n```\n\n### Accessories in-scene (tier E)\n\n**Person plate:** mirror selfie or street portrait with visible head/shoulders.\n\n**Garments:** cap ref + tee ref (≤6 total). Verify hat brim and logo placement in checklist.\n\n### Golden-hour texture (tier D + lifestyle)\n\n**Person plate:** cinematic portrait, shallow DOF — pleated or crinkled fabric refs show best here.\n\n**Optional next step:** `p-image-upscale` → `p-video-avatar` for ecommerce VO.\n\n## Diversity rotation (five public examples)\n\nWhen publishing a set, avoid five identical “white studio + plain tee” rows:\n\n| Slot | Cast shift | Setting shift | Garment shift |\n|------|------------|---------------|---------------|\n| 1 | Woman, Mediterranean | Editorial floor | Artistic print shirt |\n| 2 | Man, East Asian | High-angle studio | Collaged suit |\n| 3 | Woman, East Asian | Night street mirror | Cap + logo tee |\n| 4 | Woman, East Asian | Open asphalt | Patchwork stack |\n| 5 | Woman, ambiguous | Golden-hour field | Pleated blouse |\n\nSee generation-diversity.md#visual-variety (`generation-diversity`) for cast ledger fields.\n\nFile v1.0.10:skill-card.md\n\n## Description:\n\nUse when someone wants virtual try-on -- dress a person in clothes from reference photos for fashion or ecommerce.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[pruna-ai](https://clawhub.ai/user/pruna-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to guide virtual try-on requests that place garments from reference photos onto a provided person image for fashion or ecommerce workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill sends person photos, garment images, pose references, and prompts to Pruna's external API for processing.\n\nMitigation: Confirm the user has rights and consent to upload the images, avoid sensitive or regulated photos, and proceed only when the remote-service data flow is acceptable.\n\nRisk: The skill recommends prerequisite skill installation commands before generation.\n\nMitigation: Review the related Pruna prerequisite skills and the suggested npx installs before allowing them in an agent environment.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/pruna-ai/skills/p-image-try-on)\n- [Editorial seated + artistic shirt reference output](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n- [Complex collaged suit reference output](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8)\n- [Mirror selfie + cap + logo tee reference output](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0)\n- [Multi-garment streetwear stack reference output](https://replicate.com/p/bak21xr79srmr0cyt52tap1nw8)\n- [Pleated blouse, golden-hour portrait reference output](https://replicate.com/p/g9hd22x26drmr0cytmtsx11c5g)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, shell commands, configuration]\n\n**Output Format:** [Markdown with inline bash and JSON examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Guidance covers required image URLs, optional try-on parameters, prompt disambiguation, upload/create calls, and follow-on skill choices.]\n\n## Skill Version(s):\n\n1.0.10 (source: server release metadata, SKILL.md metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.10:skill.manifest.json\n\n{\n  \"references\": []\n}\n\nArchive v1.0.9: 5 files, 6927 bytes\n\nFiles: example-prompt.md (3895b), skill-card.md (2402b), skill.manifest.json (23b), SKILL.md (8257b), _meta.json (133b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: p-image-try-on\ndescription: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce.\nlicense: MIT\nmetadata:\n  version: \"1.0.9\"\n  package: pruna-skills\n  pruna_model: p-image-try-on\n---\n\n## Prerequisites\n\nInstall and load these skills before generating (skip if already in context via `@pruna`):\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `generation-diversity` | Use when writing any generative prompt — ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. | `npx skills add PrunaAI/pruna-skills@generation-diversity -y` |\n| `image-prompting` | Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. | `npx skills add PrunaAI/pruna-skills@image-prompting -y` |\n| `pruna-api` | Use before any Pruna or Replicate HTTP call — credentials, upload/poll/download, parallel batches, and agent safety. | `npx skills add PrunaAI/pruna-skills@pruna-api -y` |\n\nOr install the full suite once: `npx skills add PrunaAI/pruna-skills@pruna -y`\n\nFollow each skill's **Before generating** / craft sections — do not restate guide content here.\n\n## Agent habit\n\nIn the **first reply**, name `` `p-image-try-on` `` in backticks, confirm `PRUNA_API_KEY`, then ask for `person_image` + `garment_images`. Open intake → **`generation-diversity`** clarification intake when silent. When refs need disambiguation, draft with **Prompt craft (dynamic + faithful)** — do not paste skill examples. Redirect background-only / no-garment jobs to `p-image-edit`.\n\n## Prompt craft (dynamic + faithful)\n\nIdentity and garments come from **`person_image`** + **`garment_images[]`**. Optional **`prompt`** only **disambiguates refs** — it does not invent a new person or outfit.\n\n| Do | Don't |\n| --- | --- |\n| Lock **`person_image`** and every **`garment_images[]`** URL first; omit **`prompt`** on clean flat-lays | Describe a new scene, model, or garment the user did not supply |\n| When refs are ambiguous: `the green t-shirt from image 1 and the trousers from image 2` (`image-prompting` try-on craft) | Mood-only prompts (`fashion editorial vibe`) or copy this skill's extended example when refs differ |\n| Ritual seed before drafting disambiguation wording; vary phrasing when multiple valid mappings exist | Use **`prompt`** for background swaps — redirect to `p-image-edit` |\n| Show **`prompt`** (if needed) before `POST` when refs are ambiguous | Silent try-on that changes pose, face, or garments beyond the brief |\n\n**Fidelity check (before pay):** output must still be the user's person in the user's garment(s). If **`prompt`** could apply to a different ref set, rewrite the disambiguation.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image` | Use when someone explicitly wants the fastest, cheapest photo generation — mood boards, bulk panels, or quick iterations — not when controlled photoreal or in-image text is needed. | `npx skills add PrunaAI/pruna-skills@p-image -y` |\n| `p-image-edit` | Use when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits. | `npx skills add PrunaAI/pruna-skills@p-image-edit -y` |\n\n## Pricing\n\nPer generation (same for normal and turbo mode):\n\n- **$0.015** for the first garment\n- **$0.008** for each additional garment\n\nExample: 3 garments → $0.015 + 2 × $0.008 = **$0.031**.\n\n## Request shape\n\nOne **`person_image`**, one **`garment_images[]` entry per piece** (up to 11), optional **`reference_pose`**. The model auto-classifies each garment — **array order does not matter**. Mixed categories belong in **one call**.\n\n- **`prompt`** — only when a reference shows multiple garments or is worn on-model; clean flat-lays need no prompt.\n- **`preserve_input_size: true`** (default) — output dimensions follow the **person** image.\n\nRunware field map: `person` → `person_image`, `garment` → `garment_images[]`, `pose` → `reference_pose`, `positivePrompt` → `prompt`, `settings.turbo` → `turbo`.\n\n## HTTP (curl)\n\n### Upload images\n\n```bash\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/person.jpg\"\n\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/garment.png\"\n```\n\nUse each response `urls.get` in `input.person_image` and `input.garment_images[]`. Optional: `reference_pose`.\n\n### Create (async — recommended)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\nPoll and download: follow `pruna-api`.\n\nComplete the random seed ritual from `generation-diversity` before writing prompts — **do not** pass the ritual string as API `seed`.\n\n### Create (sync — quick test only)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -H 'Try-Sync: true' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\n### Extended input (turbo + pose + prompt)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\n        \"https://api.pruna.ai/v1/files/MULTI_GARMENT_SHOT_ID\",\n        \"https://api.pruna.ai/v1/files/BOTTOM_ID\"\n      ],\n      \"reference_pose\": \"https://api.pruna.ai/v1/files/POSE_REF_ID\",\n      \"prompt\": \"the green t-shirt from image 1 and the trousers from image 2\",\n      \"turbo\": true,\n      \"output_format\": \"jpg\",\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\n## Before generating\n\n1. Complete Prerequisites guide reading order (`generation-diversity` → `image-prompting` try-on craft).\n2. Ritual seed → draft optional **dynamic + faithful** disambiguation **`prompt`** (section above) → confirm **`person_image`**, **`garment_images`** (≤6 for finals; 7–8 usually lands; 9–11 may drop last items), and optional **`turbo`** / **`reference_pose`** / **`prompt`**.\n3. **Pruna notes:** one item per body spot (socks + shoes → usually shoes win). **`turbo`** (~2.5–3.5 s) is off by default — not recommended above ~4 garments for finals. Full-body or three-quarter person crops work best. Omit gloves, mittens, handheld props, pocket squares, suspenders, brooches from `garment_images[]`.\n\n## Required input\n\n- `person_image` (string URL)\n- `garment_images` (array of string URLs, up to **11**)\n\n## Common optional fields\n\n- `seed`, `output_format` (`webp` / `jpg` / `png`, default `jpg`), `output_quality` (0–100, default 95)\n- `preserve_input_size` (boolean, default `true`)\n- `turbo` (boolean, default `false`)\n- `reference_pose` (person image URL)\n- `prompt` (EXPERIMENTAL — disambiguate non-flatlay / multi-garment refs)\n\n## Typical next steps\n\nCommon follow-ons after this skill:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image-upscale` | Use when someone wants to upscale or sharpen an existing image for print, large crops, or higher-quality delivery. | `npx skills add PrunaAI/pruna-skills@p-image-upscale -y` |\n| `p-video` | Use when someone wants one short video clip from text or images — B-roll, start/end frame animation, or a quick motion shot. Not for full multi-scene films or lip-synced hosts. | `npx skills add PrunaAI/pruna-skills@p-video -y` |\n| `p-video-avatar` | Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. | `npx skills add PrunaAI/pruna-skills@p-video-avatar -y` |\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"p-image-try-on\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1785824248988\n}\n\nFile v1.0.9:example-prompt.md\n\n# p-image-try-on — example prompts\n\n**Before every job:** random seed ritual (`generation-diversity`).\n\nTry-on scenario briefs and Replicate reference links. **Cross-model persona + avatar examples:** `image-prompting`.\n\nStarter plates aligned with `image-prompting` and `image-prompting`.\n\n## Canonical reference outputs\n\nQuality bar (Replicate playground candidates):\n\n1. [Editorial seated + artistic shirt](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n2. [Complex collaged suit, high angle](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8)\n3. [Mirror selfie + cap + logo tee](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0)\n4. [Multi-garment streetwear stack](https://replicate.com/p/bak21xr79srmr0cyt52tap1nw8)\n5. [Pleated blouse, golden-hour portrait](https://replicate.com/p/g9hd22x26drmr0cytmtsx11c5g)\n\n## Person plate → try-on (minimal curl flow)\n\n```bash\nexport PRUNA_API_KEY=\"your_key\"\n\n# 1) Generate photoreal plate (or upload your own)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image' \\\n  -d '{\"input\":{\"prompt\":\"Photoreal editorial fashion photograph, woman mid-20s South Asian, seated on weathered wood floor against textured plaster wall, soft window daylight, 3:4, natural skin, single subject one frame\",\"aspect_ratio\":\"3:4\"}}'\n\n# Complete random seed ritual (SSoT) before writing prompts — do not pass ritual string as API seed\n\n# 2) Upload person + garment refs → /v1/files, then try-on (normal mode for finals)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_ID\"],\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\nRun the slop gate on the person plate before step 2. Run `image-prompting` on the output.\n\n## Scenario briefs\n\n### Complex collaged suit (tier D)\n\n**Person plate:** high-angle full-body studio, shirtless male model, hands in pockets — see showcase doc.\n\n**Garments:** two refs (blazer + trousers) or one on-model lifestyle ref with:\n\n```json\n\"prompt\": \"the artistic collaged blazer from image 1 and the matching patchwork trousers from image 2\"\n```\n\n**Settings:** `turbo: false`, up to 2–4 garment URLs.\n\n### Streetwear stack (tier D, multi-garment)\n\n**Person plate:** full-body asphalt, prop in frame (bat, bag) — preserve props in output.\n\n**Garments:** jacket, tee, pants as separate packshots **or** one stack photo + prompt:\n\n```json\n\"prompt\": \"the patchwork jacket from image 1, the yellow logo tee from image 2, and the patchwork pants from image 3\"\n```\n\n### Accessories in-scene (tier E)\n\n**Person plate:** mirror selfie or street portrait with visible head/shoulders.\n\n**Garments:** cap ref + tee ref (≤6 total). Verify hat brim and logo placement in checklist.\n\n### Golden-hour texture (tier D + lifestyle)\n\n**Person plate:** cinematic portrait, shallow DOF — pleated or crinkled fabric refs show best here.\n\n**Optional next step:** `p-image-upscale` → `p-video-avatar` for ecommerce VO.\n\n## Diversity rotation (five public examples)\n\nWhen publishing a set, avoid five identical “white studio + plain tee” rows:\n\n| Slot | Cast shift | Setting shift | Garment shift |\n|------|------------|---------------|---------------|\n| 1 | Woman, Mediterranean | Editorial floor | Artistic print shirt |\n| 2 | Man, East Asian | High-angle studio | Collaged suit |\n| 3 | Woman, East Asian | Night street mirror | Cap + logo tee |\n| 4 | Woman, East Asian | Open asphalt | Patchwork stack |\n| 5 | Woman, ambiguous | Golden-hour field | Pleated blouse |\n\nSee generation-diversity.md#visual-variety (`generation-diversity`) for cast ledger fields.\n\nFile v1.0.9:skill-card.md\n\n## Description: <br>\nUse when someone wants virtual try-on: dress a person in clothes from reference photos for fashion or ecommerce. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[pruna-ai](https://clawhub.ai/user/pruna-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to guide Pruna virtual try-on jobs that place supplied garment references onto a supplied person image for fashion or ecommerce workflows. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Person, garment, and optional pose images may be uploaded to Pruna's API. <br>\nMitigation: Use images you have rights and consent to process, avoid sensitive content, and confirm that Pruna API processing is appropriate for the use case. <br>\nRisk: API calls require PRUNA_API_KEY and may incur per-generation costs. <br>\nMitigation: Confirm credentials, input images, garment count, and documented pricing before making paid generation requests. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/pruna-ai/skills/p-image-try-on) <br>\n- [Editorial seated and artistic shirt example](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4) <br>\n- [Complex collaged suit example](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8) <br>\n- [Mirror selfie and logo tee example](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0) <br>\n- [Multi-garment streetwear stack example](https://replicate.com/p/bak21xr79srmr0cyt52tap1nw8) <br>\n- [Pleated blouse golden-hour portrait example](https://replicate.com/p/g9hd22x26drmr0cytmtsx11c5g) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, shell commands, configuration] <br>\n**Output Format:** [Markdown with inline JSON and bash code blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Produces Pruna API request guidance, prompt-disambiguation guidance, pricing notes, and upload/create/poll workflow commands.] <br>\n\n## Skill Version(s): <br>\n1.0.9 (source: server evidence and SKILL.md metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.9:skill.manifest.json\n\n{\n  \"references\": []\n}\n\nArchive v1.0.8: 5 files, 6976 bytes\n\nFiles: example-prompt.md (3895b), skill-card.md (2651b), skill.manifest.json (23b), SKILL.md (8193b), _meta.json (133b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: p-image-try-on\ndescription: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce.\nlicense: MIT\nmetadata:\n  version: \"1.0.8\"\n  package: pruna-skills\n  pruna_model: p-image-try-on\n---\n\n## Prerequisites\n\nInstall and load these skills before generating (skip if already in context via `@pruna`):\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `generation-diversity` | Use when writing any generative prompt — ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. | `npx skills add PrunaAI/pruna-skills@generation-diversity -y` |\n| `image-prompting` | Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. | `npx skills add PrunaAI/pruna-skills@image-prompting -y` |\n| `pruna-api` | Use before any Pruna or Replicate HTTP call — credentials, upload/poll/download, parallel batches, and agent safety. | `npx skills add PrunaAI/pruna-skills@pruna-api -y` |\n\nOr install the full suite once: `npx skills add PrunaAI/pruna-skills@pruna -y`\n\nFollow each skill's **Before generating** / craft sections — do not restate guide content here.\n\n## Agent habit\n\nIn the **first reply**, name `` `p-image-try-on` `` in backticks, confirm `PRUNA_API_KEY`, then ask for `person_image` + `garment_images`. Open intake → **`generation-diversity`** clarification intake when silent. When refs need disambiguation, draft with **Prompt craft (dynamic + faithful)** — do not paste skill examples. Redirect background-only / no-garment jobs to `p-image-edit`.\n\n## Prompt craft (dynamic + faithful)\n\nIdentity and garments come from **`person_image`** + **`garment_images[]`**. Optional **`prompt`** only **disambiguates refs** — it does not invent a new person or outfit.\n\n| Do | Don't |\n| --- | --- |\n| Lock **`person_image`** and every **`garment_images[]`** URL first; omit **`prompt`** on clean flat-lays | Describe a new scene, model, or garment the user did not supply |\n| When refs are ambiguous: `the green t-shirt from image 1 and the trousers from image 2` (`image-prompting` try-on craft) | Mood-only prompts (`fashion editorial vibe`) or copy this skill's extended example when refs differ |\n| Ritual seed before drafting disambiguation wording; vary phrasing when multiple valid mappings exist | Use **`prompt`** for background swaps — redirect to `p-image-edit` |\n| Show **`prompt`** (if needed) before `POST` when refs are ambiguous | Silent try-on that changes pose, face, or garments beyond the brief |\n\n**Fidelity check (before pay):** output must still be the user's person in the user's garment(s). If **`prompt`** could apply to a different ref set, rewrite the disambiguation.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image` | Use when someone wants a fast AI image — product shots, hero visuals, mood boards, or draft photos from a text prompt. | `npx skills add PrunaAI/pruna-skills@p-image -y` |\n| `p-image-edit` | Use when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits. | `npx skills add PrunaAI/pruna-skills@p-image-edit -y` |\n\n## Pricing\n\nPer generation (same for normal and turbo mode):\n\n- **$0.015** for the first garment\n- **$0.008** for each additional garment\n\nExample: 3 garments → $0.015 + 2 × $0.008 = **$0.031**.\n\n## Request shape\n\nOne **`person_image`**, one **`garment_images[]` entry per piece** (up to 11), optional **`reference_pose`**. The model auto-classifies each garment — **array order does not matter**. Mixed categories belong in **one call**.\n\n- **`prompt`** — only when a reference shows multiple garments or is worn on-model; clean flat-lays need no prompt.\n- **`preserve_input_size: true`** (default) — output dimensions follow the **person** image.\n\nRunware field map: `person` → `person_image`, `garment` → `garment_images[]`, `pose` → `reference_pose`, `positivePrompt` → `prompt`, `settings.turbo` → `turbo`.\n\n## HTTP (curl)\n\n### Upload images\n\n```bash\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/person.jpg\"\n\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/garment.png\"\n```\n\nUse each response `urls.get` in `input.person_image` and `input.garment_images[]`. Optional: `reference_pose`.\n\n### Create (async — recommended)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\nPoll and download: follow `pruna-api`.\n\nComplete the random seed ritual from `generation-diversity` before writing prompts — **do not** pass the ritual string as API `seed`.\n\n### Create (sync — quick test only)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -H 'Try-Sync: true' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\n### Extended input (turbo + pose + prompt)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\n        \"https://api.pruna.ai/v1/files/MULTI_GARMENT_SHOT_ID\",\n        \"https://api.pruna.ai/v1/files/BOTTOM_ID\"\n      ],\n      \"reference_pose\": \"https://api.pruna.ai/v1/files/POSE_REF_ID\",\n      \"prompt\": \"the green t-shirt from image 1 and the trousers from image 2\",\n      \"turbo\": true,\n      \"output_format\": \"jpg\",\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\n## Before generating\n\n1. Complete Prerequisites guide reading order (`generation-diversity` → `image-prompting` try-on craft).\n2. Ritual seed → draft optional **dynamic + faithful** disambiguation **`prompt`** (section above) → confirm **`person_image`**, **`garment_images`** (≤6 for finals; 7–8 usually lands; 9–11 may drop last items), and optional **`turbo`** / **`reference_pose`** / **`prompt`**.\n3. **Pruna notes:** one item per body spot (socks + shoes → usually shoes win). **`turbo`** (~2.5–3.5 s) is off by default — not recommended above ~4 garments for finals. Full-body or three-quarter person crops work best. Omit gloves, mittens, handheld props, pocket squares, suspenders, brooches from `garment_images[]`.\n\n## Required input\n\n- `person_image` (string URL)\n- `garment_images` (array of string URLs, up to **11**)\n\n## Common optional fields\n\n- `seed`, `output_format` (`webp` / `jpg` / `png`, default `jpg`), `output_quality` (0–100, default 95)\n- `preserve_input_size` (boolean, default `true`)\n- `turbo` (boolean, default `false`)\n- `reference_pose` (person image URL)\n- `prompt` (EXPERIMENTAL — disambiguate non-flatlay / multi-garment refs)\n\n## Typical next steps\n\nCommon follow-ons after this skill:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image-upscale` | Use when someone wants to upscale or sharpen an existing image for print, large crops, or higher-quality delivery. | `npx skills add PrunaAI/pruna-skills@p-image-upscale -y` |\n| `p-video` | Use when someone wants one short video clip from text or images — B-roll, start/end frame animation, or a quick motion shot. Not for full multi-scene films or lip-synced hosts. | `npx skills add PrunaAI/pruna-skills@p-video -y` |\n| `p-video-avatar` | Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. | `npx skills add PrunaAI/pruna-skills@p-video-avatar -y` |\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"p-image-try-on\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1785259176123\n}\n\nFile v1.0.8:example-prompt.md\n\n# p-image-try-on — example prompts\n\n**Before every job:** random seed ritual (`generation-diversity`).\n\nTry-on scenario briefs and Replicate reference links. **Cross-model persona + avatar examples:** `image-prompting`.\n\nStarter plates aligned with `image-prompting` and `image-prompting`.\n\n## Canonical reference outputs\n\nQuality bar (Replicate playground candidates):\n\n1. [Editorial seated + artistic shirt](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n2. [Complex collaged suit, high angle](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8)\n3. [Mirror selfie + cap + logo tee](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0)\n4. [Multi-garment streetwear stack](https://replicate.com/p/bak21xr79srmr0cyt52tap1nw8)\n5. [Pleated blouse, golden-hour portrait](https://replicate.com/p/g9hd22x26drmr0cytmtsx11c5g)\n\n## Person plate → try-on (minimal curl flow)\n\n```bash\nexport PRUNA_API_KEY=\"your_key\"\n\n# 1) Generate photoreal plate (or upload your own)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image' \\\n  -d '{\"input\":{\"prompt\":\"Photoreal editorial fashion photograph, woman mid-20s South Asian, seated on weathered wood floor against textured plaster wall, soft window daylight, 3:4, natural skin, single subject one frame\",\"aspect_ratio\":\"3:4\"}}'\n\n# Complete random seed ritual (SSoT) before writing prompts — do not pass ritual string as API seed\n\n# 2) Upload person + garment refs → /v1/files, then try-on (normal mode for finals)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_ID\"],\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\nRun the slop gate on the person plate before step 2. Run `image-prompting` on the output.\n\n## Scenario briefs\n\n### Complex collaged suit (tier D)\n\n**Person plate:** high-angle full-body studio, shirtless male model, hands in pockets — see showcase doc.\n\n**Garments:** two refs (blazer + trousers) or one on-model lifestyle ref with:\n\n```json\n\"prompt\": \"the artistic collaged blazer from image 1 and the matching patchwork trousers from image 2\"\n```\n\n**Settings:** `turbo: false`, up to 2–4 garment URLs.\n\n### Streetwear stack (tier D, multi-garment)\n\n**Person plate:** full-body asphalt, prop in frame (bat, bag) — preserve props in output.\n\n**Garments:** jacket, tee, pants as separate packshots **or** one stack photo + prompt:\n\n```json\n\"prompt\": \"the patchwork jacket from image 1, the yellow logo tee from image 2, and the patchwork pants from image 3\"\n```\n\n### Accessories in-scene (tier E)\n\n**Person plate:** mirror selfie or street portrait with visible head/shoulders.\n\n**Garments:** cap ref + tee ref (≤6 total). Verify hat brim and logo placement in checklist.\n\n### Golden-hour texture (tier D + lifestyle)\n\n**Person plate:** cinematic portrait, shallow DOF — pleated or crinkled fabric refs show best here.\n\n**Optional next step:** `p-image-upscale` → `p-video-avatar` for ecommerce VO.\n\n## Diversity rotation (five public examples)\n\nWhen publishing a set, avoid five identical “white studio + plain tee” rows:\n\n| Slot | Cast shift | Setting shift | Garment shift |\n|------|------------|---------------|---------------|\n| 1 | Woman, Mediterranean | Editorial floor | Artistic print shirt |\n| 2 | Man, East Asian | High-angle studio | Collaged suit |\n| 3 | Woman, East Asian | Night street mirror | Cap + logo tee |\n| 4 | Woman, East Asian | Open asphalt | Patchwork stack |\n| 5 | Woman, ambiguous | Golden-hour field | Pleated blouse |\n\nSee generation-diversity.md#visual-variety (`generation-diversity`) for cast ledger fields.\n\nFile v1.0.8:skill-card.md\n\n## Description: <br>\nUse when someone wants virtual try-on - dress a person in clothes from reference photos for fashion or ecommerce. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[pruna-ai](https://clawhub.ai/user/pruna-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agents use this skill to prepare virtual try-on requests for Pruna's hosted p-image-try-on API, including collecting person and garment image URLs, disambiguating garment references, and generating upload and prediction commands. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Person photos, garment photos, prompts, and API credentials are sent to Pruna's hosted API. <br>\nMitigation: Confirm consent and data-handling approval before use, avoid private or sensitive images unless approved, and keep PRUNA_API_KEY out of shared outputs and logs. <br>\nRisk: Ambiguous garment references or broad prompts can cause the generated image to drift from the supplied person or garments. <br>\nMitigation: Use prompt text only to disambiguate supplied references, show it before the API call when references are ambiguous, and run the skill's fidelity check before paid generation. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/pruna-ai/skills/p-image-try-on) <br>\n- [Pruna file upload API endpoint](https://api.pruna.ai/v1/files) <br>\n- [Pruna predictions API endpoint](https://api.pruna.ai/v1/predictions) <br>\n- [Canonical reference output: editorial seated and artistic shirt](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4) <br>\n- [Canonical reference output: complex collaged suit](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8) <br>\n- [Canonical reference output: mirror selfie and cap](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, shell commands, configuration, code] <br>\n**Output Format:** [Markdown with JSON and bash code blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Produces Pruna API request guidance for person_image, garment_images, optional prompt, reference_pose, turbo, output_format, output_quality, and preserve_input_size.] <br>\n\n## Skill Version(s): <br>\n1.0.8 (source: server evidence and skill frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.8:skill.manifest.json\n\n{\n  \"references\": []\n}\n\nArchive v1.0.7: 5 files, 6690 bytes\n\nFiles: example-prompt.md (3895b), skill-card.md (2095b), skill.manifest.json (23b), SKILL.md (8116b), _meta.json (133b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: p-image-try-on\ndescription: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce.\nlicense: MIT\nmetadata:\n  version: \"1.0.7\"\n  package: pruna-skills\n  pruna_model: p-image-try-on\n---\n\n## Prerequisites\n\nInstall and load these skills before generating (skip if already in context via `@pruna`):\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `generation-diversity` | Use when writing any generative prompt — ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. | `npx skills add PrunaAI/pruna-skills@generation-diversity -y` |\n| `image-prompting` | Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. | `npx skills add PrunaAI/pruna-skills@image-prompting -y` |\n| `pruna-api` | Use before any Pruna or Replicate HTTP call — credentials, upload/poll/download, parallel batches, and agent safety. | `npx skills add PrunaAI/pruna-skills@pruna-api -y` |\n\nOr install the full suite once: `npx skills add PrunaAI/pruna-skills@pruna -y`\n\nFollow each skill's **Before generating** / craft sections — do not restate guide content here.\n\n## Agent habit\n\nIn the **first reply**, name `` `p-image-try-on` `` in backticks, confirm `PRUNA_API_KEY`, then ask for `person_image` + `garment_images`. When refs need disambiguation, draft with **Prompt craft (dynamic + faithful)** — do not paste skill examples. Redirect background-only / no-garment jobs to `p-image-edit`.\n\n## Prompt craft (dynamic + faithful)\n\nIdentity and garments come from **`person_image`** + **`garment_images[]`**. Optional **`prompt`** only **disambiguates refs** — it does not invent a new person or outfit.\n\n| Do | Don't |\n| --- | --- |\n| Lock **`person_image`** and every **`garment_images[]`** URL first; omit **`prompt`** on clean flat-lays | Describe a new scene, model, or garment the user did not supply |\n| When refs are ambiguous: `the green t-shirt from image 1 and the trousers from image 2` (`image-prompting` try-on craft) | Mood-only prompts (`fashion editorial vibe`) or copy this skill's extended example when refs differ |\n| Ritual seed before drafting disambiguation wording; vary phrasing when multiple valid mappings exist | Use **`prompt`** for background swaps — redirect to `p-image-edit` |\n| Show **`prompt`** (if needed) before `POST` when refs are ambiguous | Silent try-on that changes pose, face, or garments beyond the brief |\n\n**Fidelity check (before pay):** output must still be the user's person in the user's garment(s). If **`prompt`** could apply to a different ref set, rewrite the disambiguation.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image` | Use when someone wants a fast AI image — product shots, hero visuals, mood boards, or draft photos from a text prompt. | `npx skills add PrunaAI/pruna-skills@p-image -y` |\n| `p-image-edit` | Use when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits. | `npx skills add PrunaAI/pruna-skills@p-image-edit -y` |\n\n## Pricing\n\nPer generation (same for normal and turbo mode):\n\n- **$0.015** for the first garment\n- **$0.008** for each additional garment\n\nExample: 3 garments → $0.015 + 2 × $0.008 = **$0.031**.\n\n## Request shape\n\nOne **`person_image`**, one **`garment_images[]` entry per piece** (up to 11), optional **`reference_pose`**. The model auto-classifies each garment — **array order does not matter**. Mixed categories belong in **one call**.\n\n- **`prompt`** — only when a reference shows multiple garments or is worn on-model; clean flat-lays need no prompt.\n- **`preserve_input_size: true`** (default) — output dimensions follow the **person** image.\n\nRunware field map: `person` → `person_image`, `garment` → `garment_images[]`, `pose` → `reference_pose`, `positivePrompt` → `prompt`, `settings.turbo` → `turbo`.\n\n## HTTP (curl)\n\n### Upload images\n\n```bash\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/person.jpg\"\n\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/garment.png\"\n```\n\nUse each response `urls.get` in `input.person_image` and `input.garment_images[]`. Optional: `reference_pose`.\n\n### Create (async — recommended)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\nPoll and download: follow `pruna-api`.\n\nComplete the random seed ritual from `generation-diversity` before writing prompts — **do not** pass the ritual string as API `seed`.\n\n### Create (sync — quick test only)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -H 'Try-Sync: true' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\n### Extended input (turbo + pose + prompt)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\n        \"https://api.pruna.ai/v1/files/MULTI_GARMENT_SHOT_ID\",\n        \"https://api.pruna.ai/v1/files/BOTTOM_ID\"\n      ],\n      \"reference_pose\": \"https://api.pruna.ai/v1/files/POSE_REF_ID\",\n      \"prompt\": \"the green t-shirt from image 1 and the trousers from image 2\",\n      \"turbo\": true,\n      \"output_format\": \"jpg\",\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\n## Before generating\n\n1. Complete Prerequisites guide reading order (`generation-diversity` → `image-prompting` try-on craft).\n2. Ritual seed → draft optional **dynamic + faithful** disambiguation **`prompt`** (section above) → confirm **`person_image`**, **`garment_images`** (≤6 for finals; 7–8 usually lands; 9–11 may drop last items), and optional **`turbo`** / **`reference_pose`** / **`prompt`**.\n3. **Pruna notes:** one item per body spot (socks + shoes → usually shoes win). **`turbo`** (~2.5–3.5 s) is off by default — not recommended above ~4 garments for finals. Full-body or three-quarter person crops work best. Omit gloves, mittens, handheld props, pocket squares, suspenders, brooches from `garment_images[]`.\n\n## Required input\n\n- `person_image` (string URL)\n- `garment_images` (array of string URLs, up to **11**)\n\n## Common optional fields\n\n- `seed`, `output_format` (`webp` / `jpg` / `png`, default `jpg`), `output_quality` (0–100, default 95)\n- `preserve_input_size` (boolean, default `true`)\n- `turbo` (boolean, default `false`)\n- `reference_pose` (person image URL)\n- `prompt` (EXPERIMENTAL — disambiguate non-flatlay / multi-garment refs)\n\n## Typical next steps\n\nCommon follow-ons after this skill:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image-upscale` | Use when someone wants to upscale or sharpen an existing image for print, large crops, or higher-quality delivery. | `npx skills add PrunaAI/pruna-skills@p-image-upscale -y` |\n| `p-video` | Use when someone wants one short video clip from text or images — B-roll, start/end frame animation, or a quick motion shot. Not for full multi-scene films or lip-synced hosts. | `npx skills add PrunaAI/pruna-skills@p-video -y` |\n| `p-video-avatar` | Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. | `npx skills add PrunaAI/pruna-skills@p-video-avatar -y` |\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"p-image-try-on\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1784810066163\n}\n\nFile v1.0.7:example-prompt.md\n\n# p-image-try-on — example prompts\n\n**Before every job:** random seed ritual (`generation-diversity`).\n\nTry-on scenario briefs and Replicate reference links. **Cross-model persona + avatar examples:** `image-prompting`.\n\nStarter plates aligned with `image-prompting` and `image-prompting`.\n\n## Canonical reference outputs\n\nQuality bar (Replicate playground candidates):\n\n1. [Editorial seated + artistic shirt](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n2. [Complex collaged suit, high angle](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8)\n3. [Mirror selfie + cap + logo tee](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0)\n4. [Multi-garment streetwear stack](https://replicate.com/p/bak21xr79srmr0cyt52tap1nw8)\n5. [Pleated blouse, golden-hour portrait](https://replicate.com/p/g9hd22x26drmr0cytmtsx11c5g)\n\n## Person plate → try-on (minimal curl flow)\n\n```bash\nexport PRUNA_API_KEY=\"your_key\"\n\n# 1) Generate photoreal plate (or upload your own)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image' \\\n  -d '{\"input\":{\"prompt\":\"Photoreal editorial fashion photograph, woman mid-20s South Asian, seated on weathered wood floor against textured plaster wall, soft window daylight, 3:4, natural skin, single subject one frame\",\"aspect_ratio\":\"3:4\"}}'\n\n# Complete random seed ritual (SSoT) before writing prompts — do not pass ritual string as API seed\n\n# 2) Upload person + garment refs → /v1/files, then try-on (normal mode for finals)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_ID\"],\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\nRun the slop gate on the person plate before step 2. Run `image-prompting` on the output.\n\n## Scenario briefs\n\n### Complex collaged suit (tier D)\n\n**Person plate:** high-angle full-body studio, shirtless male model, hands in pockets — see showcase doc.\n\n**Garments:** two refs (blazer + trousers) or one on-model lifestyle ref with:\n\n```json\n\"prompt\": \"the artistic collaged blazer from image 1 and the matching patchwork trousers from image 2\"\n```\n\n**Settings:** `turbo: false`, up to 2–4 garment URLs.\n\n### Streetwear stack (tier D, multi-garment)\n\n**Person plate:** full-body asphalt, prop in frame (bat, bag) — preserve props in output.\n\n**Garments:** jacket, tee, pants as separate packshots **or** one stack photo + prompt:\n\n```json\n\"prompt\": \"the patchwork jacket from image 1, the yellow logo tee from image 2, and the patchwork pants from image 3\"\n```\n\n### Accessories in-scene (tier E)\n\n**Person plate:** mirror selfie or street portrait with visible head/shoulders.\n\n**Garments:** cap ref + tee ref (≤6 total). Verify hat brim and logo placement in checklist.\n\n### Golden-hour texture (tier D + lifestyle)\n\n**Person plate:** cinematic portrait, shallow DOF — pleated or crinkled fabric refs show best here.\n\n**Optional next step:** `p-image-upscale` → `p-video-avatar` for ecommerce VO.\n\n## Diversity rotation (five public examples)\n\nWhen publishing a set, avoid five identical “white studio + plain tee” rows:\n\n| Slot | Cast shift | Setting shift | Garment shift |\n|------|------------|---------------|---------------|\n| 1 | Woman, Mediterranean | Editorial floor | Artistic print shirt |\n| 2 | Man, East Asian | High-angle studio | Collaged suit |\n| 3 | Woman, East Asian | Night street mirror | Cap + logo tee |\n| 4 | Woman, East Asian | Open asphalt | Patchwork stack |\n| 5 | Woman, ambiguous | Golden-hour field | Pleated blouse |\n\nSee generation-diversity.md#visual-variety (`generation-diversity`) for cast ledger fields.\n\nFile v1.0.7:skill-card.md\n\n## Description: <br>\nUse when someone wants virtual try-on: dress a person in clothes from reference photos for fashion or ecommerce. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[pruna-ai](https://clawhub.ai/user/pruna-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to prepare Pruna virtual try-on requests from a person image, garment reference images, and optional pose or disambiguation inputs. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Selected person, garment, and optional pose images are sent to Pruna's external service using PRUNA_API_KEY. <br>\nMitigation: Use only approved images, avoid sensitive photos unless needed, and confirm cost and inputs before generation. <br>\nRisk: Ambiguous garment references can produce incorrect try-on outputs or unintended changes to the person, pose, or garments. <br>\nMitigation: Confirm person_image and garment_images before API calls and show the optional disambiguation prompt when references are ambiguous. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/pruna-ai/skills/p-image-try-on) <br>\n- [Pruna file upload API](https://api.pruna.ai/v1/files) <br>\n- [Pruna predictions API](https://api.pruna.ai/v1/predictions) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, shell commands, configuration, API calls] <br>\n**Output Format:** [Markdown with bash and JSON examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires PRUNA_API_KEY and user-selected image URLs; may produce Pruna API request guidance and generation commands.] <br>\n\n## Skill Version(s): <br>\n1.0.7 (source: server evidence and artifact frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.7:skill.manifest.json\n\n{\n  \"references\": []\n}\n\nArchive v1.0.6: 15 files, 50666 bytes\n\nFiles: example-prompt.md (4404b), README-INSTALL.md (934b), references/api-credentials.md (3128b), references/generation-diversity.md (25978b), references/generation-quality-checklists.md (10198b), references/p-image-try-on-quality-checklist.md (3940b), references/pruna-api.md (5074b), references/random-seed-ritual.md (4011b), references/realistic-persona-example-prompt.md (6724b), references/realistic-persona-showcase.md (22499b), references/visual-variety-bible.md (21746b), skill-card.md (2896b), skill.manifest.json (278b), SKILL.md (12744b), _meta.json (133b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: p-image-try-on\ndescription: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce.\nlicense: MIT\nmetadata:\n  version: \"1.0.6\"\n  pruna_model: p-image-try-on\n---\n\n## Shared generation policy\n\n<!-- shared-generation-policy -->\n\nBefore any paid `POST /v1/predictions`:\n\n1. **[Random seed ritual](./references/random-seed-ritual.md)** — always first; derive axes via sum-mod.\n2. **[Generation diversity](./references/generation-diversity.md)** — explicit prompts; rotate ≥2 scenario axes per session.\n3. **[Quality checklists](./references/generation-quality-checklists.md)** — open output files and judge pass/fail before advancing.\n\n# p-image-try-on (Pruna)\n\nVirtually fit one or more garments onto a person's photo. **Rate limit:** 500 requests/minute · **Category:** Image Editing.\n\nThe model's strength is **garment-only editing** — identity, pose, hair, background, and scene props stay intact. That supports **editorial fashion**, **complex prints / patchwork**, and **multi-garment stacks**, not just simple flat-lay tee swaps.\n\nCanonical API reference: [p-image-try-on model docs](https://docs.api.pruna.ai/guides/models/p-image-try-on) · operational guide (Runware host): [virtual try-on](https://runware.ai/docs/models/prunaai-p-image-try-on/guides/virtual-try-on)\n\n**Showcase quality bar:** [realistic-persona-showcase.md](https://github.com/PrunaAI/pruna-skills/tree/main/references/policies/realistic-persona-showcase.md) · try-on checklist: [p-image-try-on-quality-checklist.md](./references/p-image-try-on-quality-checklist.md) · examples: [example-prompt.md](./example-prompt.md)\n\nShared HTTP patterns: [pruna-api.md](https://github.com/PrunaAI/pruna-skills/tree/main/references/policies/pruna-api.md) (upload, [poll](#poll), [download](#download))\n\n## Pricing\n\nPer generation (same for normal and turbo mode):\n\n- **$0.015** for the first garment\n- **$0.008** for each additional garment\n\nExample: 3 garments → $0.015 + 2 × $0.008 = **$0.031**.\n\n## Request shape\n\nOne **`person_image`**, one **`garment_images[]` entry per piece** (up to 11), optional **`reference_pose`**. The model auto-classifies each garment — **array order does not matter** and you do not tag hat vs shoe. No composite garment image required; mixed categories (headwear + top + shoes + bag) belong in **one call**.\n\n- **`prompt`** — only when a reference shows multiple garments or is worn on-model; clean flat-lays need no prompt.\n- **`preserve_input_size: true`** (default) — output dimensions follow the **person** image.\n\nRunware field map (same model, different host): `person` → `person_image`, `garment` → `garment_images[]`, `pose` → `reference_pose`, `positivePrompt` → `prompt`, `settings.turbo` → `turbo`.\n\n## HTTP (curl)\n\nFollow the [official quickstart](https://docs.api.pruna.ai/guides/models/p-image-try-on#quickstart): upload files, then call `POST /v1/predictions` with `Model: p-image-try-on`.\n\n### Start with uploading your images\n\n```bash\n# Upload person photo\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/person.jpg\"\n\n# Upload garment image (repeat for each garment file)\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/garment.png\"\n```\n\nUse `-F` (form) with `@` to upload from disk. Use each response `urls.get` in `input.person_image` and `input.garment_images[]`.\n\nOptional uploads for extended fields: `reference_pose` (pose reference person image).\n\n### Try On (Synchronous)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -H 'Try-Sync: true' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\n### Try On (Asynchronous)\n\nOmit `Try-Sync` for production reliability; poll until `succeeded`:\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'\n```\n\nPoll and download: [pruna-api.md](https://github.com/PrunaAI/pruna-skills/tree/main/references/policies/pruna-api.md#poll).\n\n## Parameters\n\nTables follow the [official model page](https://docs.api.pruna.ai/guides/models/p-image-try-on#parameters). Extended fields (`turbo`, `reference_pose`, `prompt`) are listed below.\n\n### Required\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `person_image` | string | Image URL of the person to edit |\n| `garment_images` | array of string | Up to **11** garment refs; **≤6** for reliable finals, **7–8** often lands all pieces, **9–11** may drop the last item(s); extra URLs beyond 11 are ignored |\n\n### Optional\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `seed` | integer | — | Random seed. Leave blank for a random seed. |\n| `output_format` | string | `jpg` | Format of the saved output image (`webp`, `jpg`, `png`). |\n| `output_quality` | integer | `95` | Quality for jpg/webp outputs from 0 to 100. |\n| `preserve_input_size` | boolean | `true` | Output matches **person_image** dimensions (model resizes internally). |\n\n### Extended optional fields\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `turbo` | boolean | `false` | Faster multi-garment pass (~2.5–3.5 s); see [Turbo mode](#turbo-mode) |\n| `reference_pose` | string | — | Optional person image URL; output pose matches this reference |\n| `prompt` | string | — | **EXPERIMENTAL.** For non-flatlay garment images; names which garment to use from which image, e.g. `\"the green t-shirt from image 1 and the trousers from image 2\"` |\n\n## Before generating\n\n1. **[Generation diversity](https://github.com/PrunaAI/pruna-skills/tree/main/references/policies/generation-diversity.md)** — random seed ritual (SSoT) + axis rotation before each try-on job (reuse approved hero plate URL when dressing an approved plate).\n2. Confirm with the user:\n\n- **`person_image`** — person photo with clear visibility of the body region to dress\n- **`garment_images`** — up to **11** refs (**≤6** finals; **7–8** reliable; one item per body spot — see [Multi-garment limits](#multi-garment-limits))\n- **`turbo`**, **`reference_pose`**, **`prompt`** when relevant (see sections below)\n- **`seed`**, **`output_format`**, **`output_quality`**, **`preserve_input_size`** when delivery format matters\n\nRun [p-image-try-on-quality-checklist.md](./references/p-image-try-on-quality-checklist.md) on outputs before downstream steps.\n\n## Production quality (not basic demos)\n\n**Upstream person plate:** try-on fidelity is capped by **`person_image`**. Follow [realistic-persona-showcase.md](https://github.com/PrunaAI/pruna-skills/tree/main/references/policies/realistic-persona-showcase.md) for photoreal **`p-image`** plates — not generic catalog mannequins. Garment tiers: see **Showcase tiers** below and [p-image-try-on-quality-checklist.md](./references/p-image-try-on-quality-checklist.md).\n\n**Showcase tiers to plan for:**\n\n| Tier | Example capability |\n|------|-------------------|\n| Editorial still | Artistic prints, color-block sleeves, seated lifestyle poses |\n| Complex garments | Collaged / patchwork suits, fine pleats, multi-panel streetwear |\n| In-scene accessories | Hats, logo tees, glasses — mirror/street compositions preserved |\n| Multi-garment stack | Jacket + tee + pants + hat + shoes in one pass (normal mode; plan ≤6 for finals) |\n\n**Anti-slop:** avoid white-background-only demos, mushy AI person plates, turbo-only finals on complex stacks, and repeating one default face across examples. Rotate cast and settings per [visual-variety-bible.md](https://github.com/PrunaAI/pruna-skills/tree/main/references/policies/visual-variety-bible.md).\n\n**Replicate playground:** diversify pinned examples on [p-image-try-on](https://replicate.com/prunaai/p-image-try-on) per [realistic-persona-showcase.md](https://github.com/PrunaAI/pruna-skills/tree/main/references/policies/realistic-persona-showcase.md).\n\n## Garment inputs\n\nThe model accepts a broader range of garment images than flat-lay packshots alone:\n\n| Input type | Notes |\n|------------|--------|\n| **Flat-lay / packshot** | Best default; no `prompt` needed |\n| **On-model / lifestyle** | Supported; use `prompt` to identify the garment |\n| **Multi-garment in one image** | Supported; use `prompt` to pick which items to apply |\n\nWhen a garment image shows multiple items or the garment is worn by someone else, set **`prompt`** to disambiguate (EXPERIMENTAL).\n\n## Multi-garment limits\n\n| Rule | Guidance |\n|------|----------|\n| **One item per body spot** | Socks + shoes on the feet → expect **one** winner (usually shoes). Send socks alone if you need them. |\n| **Reliable count** | **≤6** for delivery assets; **7–8** usually lands; **9–11** treat extras as bonus — last pieces not guaranteed. |\n| **Restyling** | Fix person + base garments; swap **one** `garment_images[]` URL and rerun for variant tops (catalog A/B). |\n\n**Person image:** full-body or three-quarter works best — the model needs the body region to dress. Tight crops can artifact.\n\n## Garment categories\n\nThe model auto-classifies each garment image. Misclassified or unsupported refs may be **skipped** (run can still succeed) — **omit** known-bad types from `garment_images[]` rather than hoping they drop.\n\n**Works well:** tops and shirts; sweaters, hoodies, and blazers; pants, jeans, shorts, and skirts; dresses, jumpsuits, and rompers; jackets and coats; underwear and swimwear; **footwear** (shoes, boots, sandals, socks — person photo must show feet); **headwear** (hats, caps, beanies, sunglasses, eyeglasses); **neckwear** (scarves, ties, necklaces); **bags** (handbags, totes, backpacks); **select jewelry** (watches, bracelets, rings, earrings).\n\n**Omit from request:** gloves and mittens; arm warmers; handheld props (phones, wallets, umbrellas, cups, keychains); pocket squares, suspenders, and brooches.\n\n## Turbo mode\n\nTurbo applies multiple garment edits in **one larger edit** instead of processing garments separately.\n\n| | Normal (default) | Turbo (`turbo: true`) |\n|--|------------------|------------------------|\n| **Speed** | Scales with garment count | ~**2.5–3.5 s** regardless of garment count |\n| **Quality** | Highest fidelity | May be slightly lower; some garments may not apply correctly |\n| **Pricing** | Per-garment table above | **Same** pricing |\n| **Best for** | Final assets, **5+ garments** | Previews, batch catalogs, speed-critical flows (**~4 pieces** sweet spot) |\n\n**Guidance:**\n\n- Turbo is **disabled by default** — enable explicitly when the user prioritizes latency.\n- Same price as normal; works with `reference_pose`, `prompt`, etc.\n- Pruna docs: **not recommended above ~4 garments** in turbo — use normal mode for larger stacks and final delivery.\n\n## Example: extended input (turbo + pose + prompt)\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\n        \"https://api.pruna.ai/v1/files/MULTI_GARMENT_SHOT_ID\",\n        \"https://api.pruna.ai/v1/files/BOTTOM_ID\"\n      ],\n      \"reference_pose\": \"https://api.pruna.ai/v1/files/POSE_REF_ID\",\n      \"prompt\": \"the green t-shirt from image 1 and the trousers from image 2\",\n      \"turbo\": true,\n      \"output_format\": \"jpg\",\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\n## Typical next steps\n\n- **Restyle one piece:** keep `person_image` + unchanged garments; swap a single `garment_images[]` URL per variant.\n- Upscale for delivery: [p-image-upscale](https://github.com/PrunaAI/pruna-skills/tree/main/plugins/p-image-upscale/skills/p-image-upscale/SKILL.md)\n- Animate try-on still: [p-video](https://github.com/PrunaAI/pruna-skills/tree/main/plugins/p-video/skills/p-video/SKILL.md) (I2V) or [p-video-avatar](https://github.com/PrunaAI/pruna-skills/tree/main/plugins/p-video-avatar/skills/p-video-avatar/SKILL.md)\n- Ecommerce pack workflows: [pruna-generative-pipeline](https://github.com/PrunaAI/pruna-skills/tree/main/docs/WORKFLOW-RECIPES.md) recipe K\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"p-image-try-on\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1784235545584\n}\n\nFile v1.0.6:references/api-credentials.md\n\n# API credentials (Pruna + Replicate)\n\n**Agent rule:** Before any `POST /v1/predictions`, Replicate prediction, or paid runner — check env vars. If a required key is **missing or empty**, **stop** and tell the user how to sign up. Do not guess, mock, or skip with placeholder keys.\n\n## Pruna P-API\n\n| | |\n|--|--|\n| **Env var** | `PRUNA_API_KEY` |\n| **Header** | `apikey: ${PRUNA_API_KEY}` (not `Authorization: Bearer`) |\n| **Sign up / get key** | [Pruna dashboard](https://dashboard.pruna.ai/) |\n| **Docs** | [Quickstart](https://docs.api.pruna.ai/guides/quickstart) · [pruna-api.md](./pruna-api.md) |\n\n**Used by:** all `p-image*`, `p-video*` tool skills and Pruna workflow runners.\n\n### If `PRUNA_API_KEY` is missing — agent message template\n\n> Pruna generation needs an API key. Sign up or sign in at **[dashboard.pruna.ai](https://dashboard.pruna.ai/)**, create an API key, then set:\n>\n> ```bash\n> export PRUNA_API_KEY=\"your_key_here\"\n> ```\n>\n> Add that to your shell profile or project `.env` (never commit the key). Reply when it’s set and we can continue.\n\n## Replicate\n\n| | |\n|--|--|\n| **Env var** | `REPLICATE_API_TOKEN` |\n| **Header** | `Authorization: Bearer ${REPLICATE_API_TOKEN}` |\n| **Sign up / get token** | [Replicate API tokens](https://replicate.com/account/api-tokens) ([sign in](https://replicate.com/signin) first if needed) |\n| **Docs** | [replicate-api.md](https://github.com/PrunaAI/pruna-skills/tree/main/workflows/replicate-api/SKILL.md) |\n\n**Used by:** `music-2.5`, `gemini-3.1-flash-tts`, `stable-audio-2.5`, `whisperx`, and workflow beds/TTS/song phases.\n\n### If `REPLICATE_API_TOKEN` is missing — agent message template\n\n> This step uses Replicate (song, TTS, transcription, or background bed). Create a token at **[replicate.com/account/api-tokens](https://replicate.com/account/api-tokens)**, then set:\n>\n> ```bash\n> export REPLICATE_API_TOKEN=\"r8_...\"\n> ```\n>\n> Reply when it’s set and we can continue.\n\n## Which key does this job need?\n\n| Task | Keys required |\n|------|----------------|\n| `p-image`, `p-image-edit`, `p-image-upscale`, `p-image-try-on` | `PRUNA_API_KEY` |\n| `p-video`, `p-video-avatar`, `p-video-animate`, `p-video-replace` | `PRUNA_API_KEY` |\n| Music 2.5 song generation | `REPLICATE_API_TOKEN` |\n| Gemini TTS narration | `REPLICATE_API_TOKEN` |\n| Stable Audio background bed | `REPLICATE_API_TOKEN` |\n| WhisperX transcription | `REPLICATE_API_TOKEN` |\n| Music video / explainer (full pipeline) | **Both** — Pruna for stills/video; Replicate for song/TTS/bed as needed |\n\nWhen only one key is missing, suggest **only** that provider’s signup link — not both.\n\n## Security\n\n- Never print full keys in chat or commit them to git.\n- `.env` is gitignored; prefer env vars over hardcoding in plans or manifests.\n- Never embed keys in prompts, manifests, plan JSON, logs, or **subagent task text**.\n- Prefer the **parent agent** to own API calls; do not fan credentials across parallel subagents unless the host documents isolated secret injection.\n- Full rules: [agent-safety.md](https://github.com/PrunaAI/pruna-skills/tree/main/workflows/agent-safety/SKILL.md).\n\nFile v1.0.6:references/generation-diversity.md\n\n# Generation diversity (all models)\n\nOne checklist so **every** Pruna output — **`p-image`**, **`p-video`**, try-on, avatar, replace, animate — is as **diverse** as the brief allows. Details live in linked docs; this page is the agent shortcut.\n\nUse the **full** checklist here for every generation.\n\n## Contents\n\n- [Three steps (every job)](#three-steps-every-job)\n- [Explicit prompt structure](#explicit-prompt-structure-required)\n- [Text & typography by model](#text--typography-by-model)\n- [SSoT axis derivation](#ssot-axis-derivation-sum-mod)\n- [Scenario axes](#scenario-axes-rotate-across-outputs)\n- [Render categories](#render-categories)\n- [Crowded scenes](#crowded-scenes-p-image)\n- [Body type spread](#body-type-spread)\n- [Location-matched crowds](#location-matched-crowds)\n- [Group classes](#group-classes--courses)\n- [Framing & camera](#framing--camera)\n- [Scene spice](#scene-spice-when-it-fits)\n- [Photoreal anti-slop](#photoreal-anti-slop-neon--stylized-briefs)\n- [Aspect ratio](#aspect-ratio-multi-example-sets)\n- [By model](#by-model-minimum-diversity)\n- [When not to maximize diversity](#when-not-to-maximize-diversity)\n- [Anti-patterns](#anti-patterns)\n\n## Three steps (every job)\n\n1. **[Random seed ritual](./random-seed-ritual.md) (SSoT)** — **always first**, before the prompt. Generate a fresh random string, **state it in the turn**, derive axes via [sum-mod](#ssot-axis-derivation-sum-mod). **Do not** pass the ritual string to API `seed`. **One new ritual string per independent generation**; reuse only on same-brief slop retry.\n2. **Write an [explicit prompt](#explicit-prompt-structure-required)** — name specific people, animals, objects, actions, setting, and camera/light. Add text/typography only when the brief needs it — see [text rules by model](#text--typography-by-model).\n3. **Diversify the scenario row** — change at least **two axes** from the previous output in the same session (cast, setting, camera, **`render_category_tag`**, **aspect_ratio**, creatures, props, … — unless user asked for continuity).\n4. **Log** — `ritual_seed`, axes chosen, prediction id (manifest or turn text).\n\n## Explicit prompt structure (required)\n\n**Vague prompts produce generic AI slop.** After the ritual and axis picks, every still prompt must be **specific and dynamic** — concrete nouns, frozen actions, named places. Prefer playground/creative briefs over marketing abstractions.\n\n**Name at least four of these per prompt (log tags in manifest):**\n\n| Clause | Log as | Agent must specify |\n|--------|--------|-------------------|\n| **People** | `cast_descriptor` | Named role + age band + expression (`fearless grandmother in floral apron`, not `woman`) |\n| **Animals / creatures** | `creature_tag` | Species + attitude (`otter DJ`, `luna moth knight`, `VIP anglerfish`) |\n| **Objects** | `prop_tag` | Concrete props (`vinyl record`, `chrome rocket sled`, `velvet rope`, `tiny boombox`) |\n| **Action** | `action_tag` | Frozen mid-motion verb (`scratching vinyl`, `lassoing runaway taco truck`, `cape mid-swing`) |\n| **Duration** | `duration_tag` | When timing matters (`1970s`, `8PM`, `45-minute spin class`, `Saturday-morning cartoon`) |\n| **Setting** | `setting_tag` | Named place + era + materials (`packed 1970s roller rink`, `abyss-depth jellyfish nightclub`, `Monument Valley dust storm`) |\n| **Text / typography** | `text_spec` | Only when brief needs readable type — exact strings + surface (see [by model](#text--typography-by-model)) |\n| **Camera + light** | `camera_tag`, `lighting_tag` | `fish-eye lens`, `tilt-shift macro`, `teal-magenta cinematic`, `golden hour sparkle` |\n| **Style** | `render_category_tag` | Medium (`cel-shaded anime`, `baroque oil painting`, `ink-wash storybook`, `photoreal documentary`) |\n\n**Template:**\n\n```text\n{people and/or creatures} {action} with/at {specific objects} in {named setting},\n{style or era cues}, {camera_tag}, {lighting_tag}\n```\n\n**Good examples (dynamic / specific):**\n\n```text\nDisco ball reflections on an otter DJ scratching vinyl at a packed 1970s roller rink,\nfish-eye lens, glitter confetti mid-air, funky energy\n```\n\n```text\nBioluminescent jellyfish nightclub at abyss depth, VIP anglerfish in sunglasses at velvet rope,\nteal-magenta cinematic lighting\n```\n\n```text\nCorgi cowboy lassoing a runaway taco truck through Monument Valley dust storm,\npulp western poster energy, dynamic diagonal composition\n```\n\n**Anti-pattern:** `cool cyberpunk portrait, neon vibes` — no subject, no action, no place. **Right:** name who, what they're doing, where, with which props.\n\n## Text & typography by model\n\n**Never use negation to suppress text** — `no text`, `without signs`, `no typography` often **invoke** the thing you are trying to avoid. Describe surfaces positively when you want blank walls (`plain unmarked walls`, `matte unprinted props`).\n\n| Model | Prompt upsampling | Typography in prompt |\n|-------|-------------------|----------------------|\n| **`p-image`** | **No** effective prompt upsampling | **Avoid** dense readable-type requests unless user explicitly wants `text_rendering`. Short prompts; skip `readable`, `legible`, `headline`, multi-sign lists — they drift to gibberish. Collage triggers still apply: [interactive-explainer-prompts.md](https://github.com/PrunaAI/pruna-skills/tree/main/workflows/interactive-explainer-prompts.md) (`flat lay`, `grid`, `collage`, …). |\n\n**`p-image` text hygiene:** prefer scenes without copy. If a screen appears: `monitor soft colorful blur glow only` — not legible UI unless the user explicitly asked for readable text (then simplify the brief or drop copy).\n\n**Collage triggers (all T2I models):** still avoid `flat lay`, `packshot`, `grid`, `collage`, `montage`, `contact sheet`, `split`, `before and after` — use `single frame`, `one camera angle` instead. Full table: [interactive-explainer-prompts.md](https://github.com/PrunaAI/pruna-skills/tree/main/workflows/interactive-explainer-prompts.md).\n\n## SSoT axis derivation (sum-mod)\n\nAfter stating `ritual_seed` (random string), derive prompt choices — sum Unicode/ASCII char codes, mod list length:\n\n```text\nRATIOS = [\"1:1\", \"16:9\", \"9:16\", \"4:3\", \"3:4\", \"3:2\", \"2:3\"]\naspect_ratio  ← RATIOS[ sum(codes(ritual_seed)) % 7 ]\ncamera_tag    ← camera_tags[ sum(codes(ritual_seed[0:4])) % len(camera_tags) ]\nrender_tag    ← render_tags[ sum(codes(ritual_seed[4:8])) % len(render_tags) ]\n```\n\n`camera_tags` and `render_tags` — see [framing & camer\n\nArchive v1.0.2: 15 files, 50145 bytes\n\nFiles: example-prompt.md (4176b), README-INSTALL.md (373b), references/api-credentials.md (3138b), references/generation-diversity.md (25814b), references/generation-quality-checklists.md (10326b), references/p-image-try-on-quality-checklist.md (3941b), references/pruna-api.md (5049b), references/random-seed-ritual.md (4019b), references/realistic-persona-example-prompt.md (6714b), references/realistic-persona-showcase.md (22333b), references/visual-variety-bible.md (21693b), skill-card.md (2881b), skill.manifest.json (378b), SKILL.md (11961b), _meta.json (133b)","readmeExcerpt":"Skill: p-image-try-on Owner: pruna-ai Summary: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce. Tags: ai:1.0.14, generative:1.0.14, latest:1.0.14, pruna:1.0.14 Version history: v1.0.14 | 2026-09-29T15:34:10.080Z | auto - Version bump to 1.0.14 in metadata. - Removed the redundant skill-card.md file. - No functional or usage changes to skill logic or doc","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"curl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/person.jpg\""},{"language":"bash","snippet":"curl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/garment.png\""},{"language":"bash","snippet":"curl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/person.jpg\"\n\ncurl -X POST \"https://api.pruna.ai/v1/files\" \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -F \"content=@/path/to/garment.png\""},{"language":"bash","snippet":"curl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{"},{"language":"bash","snippet":"curl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_FILE_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_FILE_ID\"]\n    }\n  }'"},{"language":"bash","snippet":"curl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' \\\n  -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -H 'Try-Sync: true' \\\n  -d '{"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: p-image-try-on\ndescription: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce.\nlicense: MIT\nmetadata:\n  version: \"1.0.14\"\n  package: pruna-skills\n  pruna_model: p-image-try-on\n---\n\n## Prerequisites\n\nInstall and load these skills before generating (skip if already in context via `@pruna`):\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `generation-diversity` | Use when writing any generative prompt — ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. | `npx skills add PrunaAI/pruna-skills@generation-diversity -y` |\n| `image-prompting` | Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. | `npx skills add PrunaAI/pruna-skills@image-prompting -y` |\n| `pruna-api` | Use before any Pruna or Replicate HTTP call — credentials, upload/poll/download, parallel batches, and agent safety. | `npx skills add PrunaAI/pruna-skills@pruna-api -y` |\n\nOr install the full suite once: `npx skills add PrunaAI/pruna-skills@pruna -y`\n\nFollow each skill's **Before generating** / craft sections — do not restate guide content here.\n\n## Agent habit\n\nIn the **first reply**, name `` `p-image-try-on` `` in backticks, confirm `PRUNA_API_KEY`, then ask for `person_image` + `garment_images`. Open intake → **`generation-diversity`** clarification intake when silent. When refs need disambiguation, draft with **Prompt craft (dynamic + faithful)** — do not paste skill examples. Redirect background-only / no-garment jobs to `p-image-edit`.\n\n## Prompt craft (dynamic + faithful)\n\nIdentity and garments come from **`person_image`** + **`garment_images[]`**. Optional **`prompt`** only **disambiguates refs** — it does not invent a new person or outfit.\n\n| Do | Don't |\n| --- | --- |\n| Lock **`person_image`** and every **`garment_images[]`** URL first; omit **`prompt`** on clean flat-lays | Describe a new scene, model, or garment the user did not supply |\n| When refs are ambiguous: `the green t-shirt from image 1 and the trousers from image 2` (`image-prompting` try-on craft) | Mood-only prompts (`fashion editorial vibe`) or copy this skill's extended example when refs differ |\n| Ritual seed before drafting disambiguation wording; vary phrasing when multiple valid mappings exist | Use **`prompt`** for background swaps — redirect to `p-image-edit` |\n| Show **`prompt`** (if needed) before `POST` when refs are ambiguous | Silent try-on that changes pose, face, or garments beyond the brief |\n\n**Fidelity check (before pay):** output must still be the user's person in the user's garment(s). If **`prompt`** could apply to a different ref set, rewrite the disambiguation.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image` | Use when someone explicitly wants the fastest, cheapest photo generation — mood boards, bulk panels, or quick iter"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"p-image-try-on\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1790696050080\n}"},{"path":"example-prompt.md","content":"# p-image-try-on — example prompts\n\n**Before every job:** random seed ritual (`generation-diversity`).\n\nTry-on scenario briefs and Replicate reference links. **Cross-model persona + avatar examples:** `image-prompting`.\n\nStarter plates aligned with `image-prompting` and `image-prompting`.\n\n## Canonical reference outputs\n\nQuality bar (Replicate playground candidates):\n\n1. [Editorial seated + artistic shirt](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n2. [Complex collaged suit, high angle](https://replicate.com/p/tf7gqansnnrmt0cyt4j8mpx1c8)\n3. [Mirror selfie + cap + logo tee](https://replicate.com/p/hp60wyj355rmy0cyt4psnc2mh0)\n4. [Multi-garment streetwear stack](https://replicate.com/p/bak21xr79srmr0cyt52tap1nw8)\n5. [Pleated blouse, golden-hour portrait](https://replicate.com/p/g9hd22x26drmr0cytmtsx11c5g)\n\n## Person plate → try-on (minimal curl flow)\n\n```bash\nexport PRUNA_API_KEY=\"your_key\"\n\n# 1) Generate photoreal plate (or upload your own)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image' \\\n  -d '{\"input\":{\"prompt\":\"Photoreal editorial fashion photograph, woman mid-20s South Asian, seated on weathered wood floor against textured plaster wall, soft window daylight, 3:4, natural skin, single subject one frame\",\"aspect_ratio\":\"3:4\"}}'\n\n# Complete random seed ritual (SSoT) before writing prompts — do not pass ritual string as API seed\n\n# 2) Upload person + garment refs → /v1/files, then try-on (normal mode for finals)\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-image-try-on' \\\n  -d '{\n    \"input\": {\n      \"person_image\": \"https://api.pruna.ai/v1/files/PERSON_ID\",\n      \"garment_images\": [\"https://api.pruna.ai/v1/files/GARMENT_ID\"],\n      \"output_quality\": 95,\n      \"preserve_input_size\": true\n    }\n  }'\n```\n\nRun the slop gate on the person plate before step 2. Run `image-prompting` on the output.\n\n## Scenario briefs\n\n### Complex collaged suit (tier D)\n\n**Person plate:** high-angle full-body studio, shirtless male model, hands in pockets — see showcase doc.\n\n**Garments:** two refs (blazer + trousers) or one on-model lifestyle ref with:\n\n```json\n\"prompt\": \"the artistic collaged blazer from image 1 and the matching patchwork trousers from image 2\"\n```\n\n**Settings:** `turbo: false`, up to 2–4 garment URLs.\n\n### Streetwear stack (tier D, multi-garment)\n\n**Person plate:** full-body asphalt, prop in frame (bat, bag) — preserve props in output.\n\n**Garments:** jacket, tee, pants as separate packshots **or** one stack photo + prompt:\n\n```json\n\"prompt\": \"the patchwork jacket from image 1, the yellow logo tee from image 2, and the patchwork pants from image 3\"\n```\n\n### Accessories in-scene (tier E)\n\n**Person plate:** mirror selfie or street portrait with visible head/shoulders.\n\n**Garments:** cap ref + tee ref (≤6 total). Verify hat brim and logo placement in checklist"},{"path":"skill-card.md","content":"## Description:\n\nUse when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[pruna-ai](https://clawhub.ai/user/pruna-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nFashion and ecommerce creators use this skill to guide virtual try-on of a supplied person image with supplied garment photos.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Required external skills are installed from unpinned targets that may change after review.\n\nMitigation: Review or pin the referenced Pruna skills before installing.\n\nRisk: Personal images are uploaded to Pruna and API access uses a credential.\n\nMitigation: Upload only images you are comfortable sharing with Pruna; keep PRUNA_API_KEY scoped and protected.\n\n## Reference(s):\n\n- [p-image-try-on on ClawHub](https://clawhub.ai/pruna-ai/skills/p-image-try-on)\n- [Example virtual try-on output](https://replicate.com/p/p47vaj1f91rmw0cyt4er0z2zd4)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands]\n\n**Output Format:** [Markdown with curl examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Guides image uploads and virtual try-on requests using supplied person and garment references.]\n\n## Skill Version(s):\n\n1.0.14 (source: frontmatter and release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"skill.manifest.json","content":"{\n  \"references\": []\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce. Skill: p-image-try-on Owner: pruna-ai Summary: Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce. Tags: ai:1.0.14, generative:1.0.14, latest:1.0.14, pruna:1.0.14 Version history: v1.0.14 | 2026-09-29T15:34:10.080Z | auto - Version bump to 1.0.14 in metadata. - Removed the redundant skill-card.md file. - No functional or usage changes to skill logic or doc","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1571,"uniquenessScore":46,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T09:25:14.948Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T09:25:14.948Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T11:52:09.444Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}