{"id":"88b9c711-15c5-4714-b408-3bffe97d9075","entityType":"agent","slug":"clawhub-pruna-ai-image-prompting","name":"image-prompting","canonicalUrl":"https://www.xpersona.co/agent/clawhub-pruna-ai-image-prompting","canonicalPath":"/agent/clawhub-pruna-ai-image-prompting","generatedAt":"2026-10-11T20:57:47.936Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T18:20:32.930Z","emptyReason":null},"description":"Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. Skill: image-prompting Owner: pruna-ai Summary: Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. 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:29:43.858Z | auto - Bumped version to 1.0.14 in SKILL.md metadata. - Removed the redundant skill-card.md file. - No functional or doc","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s173djpkkm1x4yfzg522h5vfp989mrn5:image-prompting","sourceUrl":"https://clawhub.ai/pruna-ai/image-prompting","homepage":"https://clawhub.ai/pruna-ai/skills/image-prompting","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/pruna-ai/image-prompting","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/pruna-ai/skills/image-prompting","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. Skill: image-prompting Own"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:20:32.930Z","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-11T18:20:32.930Z","emptyReason":null},"stars":null,"forks":null,"downloads":1010,"packageName":null,"latestVersion":"1.0.14","tractionLabel":"1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:20:32.858Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T18:20:32.930Z","lastCrawledAt":"2026-10-11T18:20:32.858Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T18:20:32.858Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.14","createdAt":"2026-09-29T15:29:43.858Z","changelog":"- Bumped version to 1.0.14 in SKILL.md metadata. - Removed the redundant skill-card.md file. - No functional or documentation changes to primary guidance or usage.","fileCount":15,"zipByteSize":28686},{"version":"1.0.13","createdAt":"2026-09-17T13:50:40.543Z","changelog":"- Version updated to 1.0.13 in SKILL.md metadata. - Removed redundant file: skill-card.md. - No functional or content changes in prompt or usage guidance.","fileCount":15,"zipByteSize":28768},{"version":"1.0.12","createdAt":"2026-09-10T13:48:30.379Z","changelog":"- Updated version to 1.0.12. - Documentation improvements in SKILL.md and reference guides for try-on, upscale, and photorealistic persona workflows. - Removed the redundant skill-card.md file.","fileCount":15,"zipByteSize":28978},{"version":"1.0.11","createdAt":"2026-09-03T14:04:57.474Z","changelog":"- Updated skill version to 1.0.11 in SKILL.md. - Removed redundant documentation file: skill-card.md. - No user-facing changes in usage or instructions.","fileCount":15,"zipByteSize":28705},{"version":"1.0.10","createdAt":"2026-08-28T07:51:24.420Z","changelog":"- Version bump to 1.0.10 in SKILL.md metadata. - Removed the file: skill-card.md. - No changes made to user-facing documentation or features.","fileCount":15,"zipByteSize":28994},{"version":"1.0.9","createdAt":"2026-08-04T06:15:55.578Z","changelog":"- Added explicit support and references for the new p-image-ideogram skill and controlled photo generation (text, JSON, hex/bbox). - Updated usage guidelines and clarified when to use or avoid p-image vs. p-image-ideogram for different workflows. - Refined \"When to use\" and \"When NOT to use\" sections to reflect feature differences and intended use cases. - Updated tool list and install instructions, removing outdated entries and improving clarity. - Removed the redundant skill-card.md documentation file.","fileCount":15,"zipByteSize":28790},{"version":"1.0.8","createdAt":"2026-07-28T17:18:08.260Z","changelog":"- Updated to version 1.0.8. - SKILL.md: Added guidance to open intake for aspect, resolution, or media source using **`generation-diversity`** clarification. - Minor text improvements for clarity in guide habit section. - Removed the file skill-card.md.","fileCount":15,"zipByteSize":28600},{"version":"1.0.7","createdAt":"2026-07-23T12:32:30.325Z","changelog":"- Improved documentation: clearer guidance on when and how to use `image-prompting` for still-image generation and editing. - Expanded practical examples and references for character sheets, edits, try-on, and photoreal personas. - Added compatibility details for Pruna, Flux, Midjourney, Ideogram, SDXL, and related models. - Updated install and usage instructions, including recommendations for complementary skills. - Clarified use cases and when to select a different skill for video, audio, or API tasks.","fileCount":15,"zipByteSize":28598}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s173djpkkm1x4yfzg522h5vfp989mrn5:image-prompting","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-image-prompting/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-image-prompting/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-image-prompting/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-image-prompting/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-image-prompting/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-image-prompting/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-11T20:57:47.931Z"}},"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-image-prompting/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-image-prompting/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-image-prompting/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-image-prompting/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-11T18:20:32.930Z","emptyReason":null},"readme":"Skill: image-prompting\n\nOwner: pruna-ai\n\nSummary: Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas.\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:29:43.858Z | auto\n\n- Bumped version to 1.0.14 in SKILL.md metadata.\n- Removed the redundant skill-card.md file.\n- No functional or documentation changes to primary guidance or usage.\n\nv1.0.13 | 2026-09-17T13:50:40.543Z | auto\n\n- Version updated to 1.0.13 in SKILL.md metadata.\n- Removed redundant file: skill-card.md.\n- No functional or content changes in prompt or usage guidance.\n\nv1.0.12 | 2026-09-10T13:48:30.379Z | auto\n\n- Updated version to 1.0.12.\n- Documentation improvements in SKILL.md and reference guides for try-on, upscale, and photorealistic persona workflows.\n- Removed the redundant skill-card.md file.\n\nv1.0.11 | 2026-09-03T14:04:57.474Z | auto\n\n- Updated skill version to 1.0.11 in SKILL.md.\n- Removed redundant documentation file: skill-card.md.\n- No user-facing changes in usage or instructions.\n\nv1.0.10 | 2026-08-28T07:51:24.420Z | auto\n\n- Version bump to 1.0.10 in SKILL.md metadata.\n- Removed the file: skill-card.md.\n- No changes made to user-facing documentation or features.\n\nv1.0.9 | 2026-08-04T06:15:55.578Z | auto\n\n- Added explicit support and references for the new p-image-ideogram skill and controlled photo generation (text, JSON, hex/bbox).\n- Updated usage guidelines and clarified when to use or avoid p-image vs. p-image-ideogram for different workflows.\n- Refined \"When to use\" and \"When NOT to use\" sections to reflect feature differences and intended use cases.\n- Updated tool list and install instructions, removing outdated entries and improving clarity.\n- Removed the redundant skill-card.md documentation file.\n\nv1.0.8 | 2026-07-28T17:18:08.260Z | auto\n\n- Updated to version 1.0.8.\n- SKILL.md: Added guidance to open intake for aspect, resolution, or media source using **`generation-diversity`** clarification.\n- Minor text improvements for clarity in guide habit section.\n- Removed the file skill-card.md.\n\nv1.0.7 | 2026-07-23T12:32:30.325Z | auto\n\n- Improved documentation: clearer guidance on when and how to use `image-prompting` for still-image generation and editing.\n- Expanded practical examples and references for character sheets, edits, try-on, and photoreal personas.\n- Added compatibility details for Pruna, Flux, Midjourney, Ideogram, SDXL, and related models.\n- Updated install and usage instructions, including recommendations for complementary skills.\n- Clarified use cases and when to select a different skill for video, audio, or API tasks.\n\nArchive index:\n\nArchive v1.0.14: 15 files, 28686 bytes\n\nFiles: references/character-turnaround-sheet.md (4272b), references/p-image-edit-prompting.md (3966b), references/p-image-edit-quality-checklist.md (1008b), references/p-image-quality-checklist.md (1973b), references/p-image-try-on-prompting.md (2060b), references/p-image-try-on-quality-checklist.md (3495b), references/p-image-upscale-guidance.md (1814b), references/p-image-upscale-quality-checklist.md (998b), references/prompt-golden-rules.md (5200b), references/realistic-persona-example-prompt.md (6298b), references/realistic-persona-showcase.md (20914b), skill-card.md (2307b), skill.manifest.json (439b), SKILL.md (5523b), _meta.json (135b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: image-prompting\ndescription: Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas.\nlicense: MIT\nmetadata:\n  version: \"1.0.14\"\n  package: pruna-skills\n---\n\n# Image prompting\n\nVendor-neutral craft for **still-image** generation and editing. Works with Pruna `p-image` family, Flux, Midjourney, Ideogram, Stable Diffusion, and similar APIs.\n\n## Install\n\n| Skill | Description | Install |\n| --- | --- | --- |\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| `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\n## When to use\n\n- Writing photo generation prompts\n- Building character identity / turnaround sheets\n- Surgical edits (change/keep discipline)\n- Virtual try-on garment prompts\n- Photoreal or stylized persona plates for avatars\n\n## Works with\n\nPruna `p-image` (simple quick photos), `p-image-ideogram` (controlled photo generation — text, JSON, hex/bbox), `p-image-edit` / `p-image-try-on` / `p-image-upscale`, Flux, Midjourney, Ideogram, SDXL, and other still models.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `video-prompting` | Use when crafting video or motion prompts for any generative model — dramaturgy, camera, physics-safe motion, frame anchors, and clip chaining. | `npx skills add PrunaAI/pruna-skills@video-prompting -y` |\n| `audio-prompting` | Use when crafting TTS, music, or bed prompts for any generative audio model — director style, song structure, and post-production layering. | `npx skills add PrunaAI/pruna-skills@audio-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| `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\n## Guide habit\n\nIn the **first reply**, name `` `image-prompting` `` in backticks. When aspect, resolution, or media source are open, open intake → **`generation-diversity`** clarification intake. For Pruna still calls, cite the reading order: `generation-diversity` (ritual + **still-image prompt flow** reference) → golden rules → model-specific reference below.\n\n## Before generating\n\n1. Follow `generation-diversity` first — for `p-image-ideogram` / `p-image` / `p-image-edit`, run **still-image prompt flow** (brief lock → ritual → draft → fidelity check).\n2. **[Prompt golden rules](./references/prompt-golden-rules.md)** — positive framing, no banned filler, params outside the prompt string.\n3. Same character across shots → [character-turnaround-sheet.md](./references/character-turnaround-sheet.md).\n4. Edits → [p-image-edit-prompting.md](./references/p-image-edit-prompting.md).\n5. Try-on → [p-image-try-on-prompting.md](./references/p-image-try-on-prompting.md).\n6. Upscale params → [p-image-upscale-guidance.md](./references/p-image-upscale-guidance.md).\n7. Photoreal personas → [realistic-persona-showcase.md](./references/realistic-persona-showcase.md) · [realistic-persona-example-prompt.md](./references/realistic-persona-example-prompt.md).\n8. Validate with the matching `*-quality-checklist.md` in `./references/`.\n\nComplex edits and multi-ref composition: see **Worked example — three-reference composite** in [p-image-edit-prompting.md](./references/p-image-edit-prompting.md).\n\n## Pruna tools\n\nMatching install for every model named above. Pick what you need:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image-ideogram` | Use when photo generation needs more control — photoreal results, text in the image, or structured JSON with hex colors and bounding boxes. Simpler photo generation, edits, and video use other skills in the suite. | `npx skills add PrunaAI/pruna-skills@p-image-ideogram -y` |\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| `p-image-try-on` | Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce. | `npx skills add PrunaAI/pruna-skills@p-image-try-on -y` |\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| `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\nFile v1.0.14:_meta.json\n\n{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"image-prompting\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1790695783858\n}\n\nFile v1.0.14:references/character-turnaround-sheet.md\n\n# Character turnaround sheet (`p-image` → I2V)\n\nReusable identity plates before scene stills and video. Use when the brief needs the **same character** across multiple shots, not a one-off hero.\n\nTalking-head cast ledgers and voice locks stay in avatar-multi-scene prompt-templates (`avatar-multi-scene`) and [realistic-persona-showcase.md](./realistic-persona-showcase.md). This page is the **visual turnaround** handoff.\n\n**Sources:** patterns adapted from [Square-Zero-Labs/video-prompting-skill](https://github.com/Square-Zero-Labs/video-prompting-skill) (Apache-2.0); rewritten for Pruna.\n\n## Handoff order\n\n```text\n1. Character turnaround sheet  (p-image or multi-panel edit)\n2. Scene stills                (p-image-edit from sheet / hero)\n3. Video                       (p-video pair/triple — motion only)\n```\n\nDo not invent a new face in step 2. Lock identity from the sheet (or a single approved hero plate) and change only pose, camera, wardrobe state, or background beat.\n\n## Sheet types\n\n| Type | When | Prompt focus |\n|------|------|--------------|\n| **Turnaround** | Stylized or invented characters | Front, 3⁄4, profile, back — same outfit, neutral studio |\n| **Expression row** | Performance / avatar prep | Same face + lighting; **distinct** emotions; include open-mouth for lip-sync |\n| **Photoreal identity** | Real-person consistency | Same person photographed repeatedly; keep asymmetry, pores, age cues |\n| **Wardrobe update** | Outfit change only | Same face/session framing; change clothes only |\n\n## Turnaround prompt skeleton\n\n```text\nCharacter turnaround sheet of [named character], [age/build/species], wearing [exact outfit].\nFour panels on one image: front view, three-quarter view, side profile, back view.\nIdentical face and costume in every panel. Neutral seamless studio backdrop #c8c8c8,\neven softbox lighting, no story background, no props that change between panels.\n[render style — e.g. documentary photoreal / cel-shaded anime]. Exact same character in every panel.\n```\n\n### Expression sheet add-on\n\n```text\nExpression row below: neutral, warm smile, concerned frown, surprised open mouth ready to speak.\nEach expression clearly different. Mouth visible in every panel. Same lighting and camera height.\n```\n\n### Photoreal identity sheet\n\n```text\nPhotoreal identity reference sheet of the same person photographed repeatedly in a studio.\nPreserve freckles, asymmetric smile, skin texture, and eye color exactly.\nFront and three-quarter views, soft window light, plain backdrop, no beauty retouching.\n```\n\n## Rules\n\n1. **Neutral backdrop** — no narrative locations on the sheet (story backgrounds come in scene stills).\n2. **Exact same character** language every time — models drift identity without it.\n3. **Distinct expressions** — “slightly different smiles” collapses; name emotion + mouth state.\n4. **One `style_bible`** — append the same medium/palette lock used in downstream edits and video.\n5. **Params outside prompt** — aspect ratio and model stay in API `input`, not the text.\n6. **Edit, don’t re-roll** — wardrobe or hair tweaks via `p-image-edit` from the locked sheet URL.\n\n## Scene stills from the sheet\n\n| Still | Source | Notes |\n|-------|--------|-------|\n| Hero / start | Sheet panel or locked hero URL | Match scene-anchor (`video-prompting`) OPENING composition |\n| End | Start + `last_frame_edit_prompt` | Same subject in frame; physically reachable pose |\n| Video | Motion-only `video_prompt` | Do not redescribe the face — see `video-prompting` |\n\nIdentity lock line for edits:\n\n```text\nsame [character name], identical face and costume, do not change species or age\n```\n\n## Anti-patterns\n\n| Avoid | Why |\n|-------|-----|\n| Story background on the sheet | Locks the character into one location |\n| Vague “consistent character” with no views | Model invents a new face per shot |\n| Same expression labeled three ways | No usable performance range |\n| Regenerating the photo each scene | Identity drift |\n| Mixing photoreal sheet with anime scene stills | Medium break mid-pipeline |\n\n## Related\n\n- Still craft: [prompt-golden-rules.md](./prompt-golden-rules.md)\n- Pair / triple stills: `video-prompting`, `video-prompting`\n- Avatar multi-scene cast table: `avatar-multi-scene`\n\nFile v1.0.14:references/p-image-edit-prompting.md\n\n# p-image-edit prompting\n\nSurgical edit prompts for `p-image-edit`. Shared still craft: [prompt-golden-rules.md](./prompt-golden-rules.md). Identity sheets: [character-turnaround-sheet.md](./character-turnaround-sheet.md).\n\n## Core formula\n\n```text\nChange [specific thing]. Keep [identity / medium / lighting era] identical.\n```\n\n| Do | Don't |\n|----|-------|\n| `Change background to soft #e8e4dc gradient, keep subject identical` | `Make it better` |\n| `Same woman, identical face and coat; turn torso 30° toward camera` | `Regenerate in a new pose` (prefer edit from locked URL) |\n| Name which ref: `face from image 1, outfit from image 2` | Vague `combine these images` |\n\n## Identity lock (required when subject continues)\n\nAppend when the person/product must survive the edit:\n\n```text\nsame [subject], identical face/uniform, do not remove the person, do not change species or age\n```\n\nPrefer editing a locked photo or turnaround plate over running photo generation again.\n\n## Typography edits\n\nChange readable copy on a surface — not spoken dialogue (that is `p-video` Mode A). Full still rules: [prompt-golden-rules.md](./prompt-golden-rules.md) §5.\n\n```text\nChange [surface] text to \"[EXACT STRING]\" in [weight], [placement]. Keep subject and lighting identical.\n```\n\nQuote the exact string; name surface + placement. Do not use Gemini TTS `[tags]` here.\n\n## Scene-anchor stills (pair / triple)\n\n| Plan field | Prefix | Role |\n|------------|--------|------|\n| `edit_prompt` | `OPENING:` or `OPEN:` | Start composition |\n| `last_frame_edit_prompt` | `CLOSING:` or `CLOSE:` | End composition — physically reachable from start |\n\nRules: `video-prompting` · `video-prompting`.\n\n- Subject must appear in **both** stills when the beat follows that subject.\n- Change only pose, camera, background beat, or prop state — not medium mid-scene.\n- Append the shared `style_bible` to every edit.\n\n## Multi-reference composition\n\nIndex refs by role:\n\n```text\nUse face and hair from image 1. Outfit from image 2. Place subject in the cafe interior from image 3.\nMatch lighting to image 3. Keep face identical to image 1.\n```\n\nMax 5 images on `p-image-edit`.\n\n## Turbo\n\n| Setting | When |\n|---------|------|\n| `turbo: true` (default) | Simple background / color / light tweaks |\n| `turbo: false` | Hard identity preserves, multi-ref composites, scene-anchor CLOSING plates that drop subjects |\n\n## Edit, don't re-roll\n\nIf the still is ~80% right, edit surgically. Regenerating the photo drifts identity and wastes the approved plate.\n\n## Worked example — three-reference composite\n\nUser lock: face from portrait ref, navy blazer from product flat-lay, cafe interior from location still. Keep face identical.\n\n```text\nUse face and hair from image 1. Outfit from image 2 (navy blazer, white tee). Place subject seated at the window table from image 3.\nMatch warm afternoon lighting to image 3. Keep face identical to image 1; same woman, do not change age or species.\nChange nothing except outfit and background — keep pose from image 1.\n```\n\n`turbo: false` — hard multi-ref composite. Upload all three via `POST /v1/files` before `POST /v1/predictions`.\n\n## Good / bad\n\n**Good**\n\n```text\nOPENING: Wide alley, same courier in rain jacket small in frame, neon kanji, wet asphalt — style lock appended\n```\n\n```text\nCLOSING: Same courier, identical face and jacket, closer in frame, hand on railing, do not remove the person\n```\n\n**Bad**\n\n```text\nMake it more cinematic and epic\n```\n\n```text\nCLOSING: Empty rooftop view at night\n```\n(drops subject)\n\n## Pre-send checklist\n\n- [ ] Golden rules applied (positive framing, no banned filler)\n- [ ] Change + keep clauses present\n- [ ] Identity lock when continuity matters\n- [ ] OPENING/CLOSING prefixes for anchor stills\n- [ ] `turbo` chosen for edit difficulty\n- [ ] Params (`aspect_ratio`, etc.) outside the prompt string\n\nValidate outputs: [p-image-edit-quality-checklist.md](./p-image-edit-quality-checklist.md).\n\nFile v1.0.14:references/p-image-edit-quality-checklist.md\n\n# p-image-edit quality checklist\n\nAfter each `p-image-edit` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Edit intent and preservation\n\n- Requested change is present and obvious.\n- Locked regions remain stable (identity, product geometry, key wardrobe/details).\n- \"Change only X\" constraints are respected; unrelated regions do not drift.\n\n## Multi-image composition (when used)\n\n- Source images blend coherently (lighting, scale, perspective).\n- Subject edges are clean (no obvious cutout seams or ghosting).\n- Final composition reads as one scene, not pasted layers.\n\n## Technical and handoff checks\n\n- Output dimensions and `aspect_ratio` match target use.\n- Artifacts introduced by edit are absent (smears, repeated textures, malformed hands/faces).\n- Result is ready for downstream `p-video` / `p-video-avatar`, or flagged for another pass.\n\nFile v1.0.14:references/p-image-quality-checklist.md\n\n# p-image quality checklist\n\nAfter each `p-image` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Composition and prompt fidelity\n\n- Main subject and action match the prompt intent.\n- Framing and `aspect_ratio` fit destination (`9:16`, `16:9`, etc.).\n- Style bible is present and respected (no unrequested style drift).\n\n## Persona plates (avatar / try-on / showcase)\n\nWhen the output feeds **`p-video-avatar`**, **`p-image-try-on`**, or a public example set:\n\n- **Style tagged** — matches planned `visual_style_tag` / `render_medium_tag` (photoreal, cel anime, clay, etc.).\n- **Photoreal intent** (when photoreal) — natural skin texture; not waxy CGI unless stylized brief.\n- **Cast specificity** — matches planned age, ethnicity, archetype — not generic “model”.\n- **Dynamic world** — unique `setting_tag`; named lighting; **distinct `camera_tag`**; **distinct `aspect_ratio`** in multi-example batches — not default MC facing camera every row.\n- **Avatar-ready** (when lip-sync next) — face large; mouth clearly visible; hands not covering mouth.\n- **Try-on-ready** (when dressing next) — body regions for garment types visible (full-body, feet, head as needed).\n- **`seed`** recorded when identity continues downstream.\n\nScenario matrix and style ladders: [realistic-persona-showcase.md](./realistic-persona-showcase.md).\n\n## Visual integrity\n\n- No major anatomy defects (extra fingers, warped limbs, broken symmetry where it matters).\n- No obvious rendering artifacts (mush textures, duplicated objects, clipped elements).\n- Background supports the scene and does not distract from the subject.\n\n## Cleanliness and delivery\n\n- No accidental logos, watermarks, UI elements, or stray text unless requested.\n- Image is acceptable as-is or marked for `p-image-edit` / `p-image-upscale` next.\n\nFile v1.0.14:references/p-image-try-on-prompting.md\n\n# p-image-try-on prompting\n\nWhen and how to use the experimental **`prompt`** on `p-image-try-on`. Upstream person plates: [realistic-persona-showcase.md](./realistic-persona-showcase.md). QA: [p-image-try-on-quality-checklist.md](./p-image-try-on-quality-checklist.md).\n\n## Default: leave `prompt` empty\n\n| Garment input | `prompt` |\n|---------------|----------|\n| Flat-lay / packshot (one clear item) | **Omit** — best default |\n| Single clear garment on white | **Omit** |\n| On-model / lifestyle / multi-item frame | **Set** — disambiguate which garment |\n| Multiple garments in one image | **Set** — name items + image index |\n\nTry-on is **image-led**. The prompt does not invent fashion — it only points at which garment from which ref.\n\n## Disambiguation patterns\n\n```text\nthe green t-shirt from image 1 and the trousers from image 2\n```\n\n```text\nthe black leather jacket worn by the model in image 1 — ignore the jeans\n```\n\n```text\nonly the red sneakers from image 2\n```\n\nRules:\n\n- Index refs the same way the API lists `garment_images` (image 1 = first URL).\n- Name **color + garment type**; avoid marketing adjectives (`iconic`, `premium`).\n- Do not write full scene/fashion-editorial prompts here — that belongs on the person plate (`p-image`).\n\n## Upstream plate caps quality\n\nBad person plates → bad try-on. Fix with photoreal `p-image-ideogram` (golden rules + persona showcase), then try-on, then optional upscale/avatar.\n\nAnti-slop: no white-background-only demos, no mushy CGI faces, rotate cast/settings per generation-diversity.md#visual-variety (`generation-diversity`).\n\n## `reference_pose`\n\nOptional second person URL — output pose follows that reference. Keep `prompt` focused on **garment choice**, not pose description.\n\n## Pre-send checklist\n\n- [ ] Flat-lay? Prompt empty\n- [ ] Multi-item or on-model? Prompt names color + item + image index\n- [ ] Person plate approved (mouth/body region visible for garment type)\n- [ ] Garment count within multi-garment limits (≤6 finals)\n- [ ] No creative scene prose in `prompt`\n\nFile v1.0.14:references/p-image-try-on-quality-checklist.md\n\n# p-image-try-on quality checklist\n\nAfter each `p-image-try-on` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Scene preservation (garment-only edit)\n\nThe model should change **clothing only**. Fail if the plate’s world drifted:\n\n- Face structure, skin tone, and expression match **`person_image`**.\n- Hair length, color, and style unchanged (unless headwear was requested).\n- Background, props, and scene geometry preserved (floor texture, street context) — **except** mirror reflections, which often keep the base outfit while the subject updates; reject mirror plates for try-on marketing.\n- Lighting direction and shadow mood consistent with the plate.\n- Pose and limb positions preserved (or match **`reference_pose`** when set).\n\nSee [realistic-persona-showcase.md](./realistic-persona-showcase.md#preservation-checklist-the-models-differentiator). Quality bar: [p-image-try-on-quality-checklist.md](./p-image-try-on-quality-checklist.md).\n\n## Garment fit and identity\n\n- Each requested garment appears on the person (correct category — see supported types in `p-image-try-on`).\n- **One item per body spot:** competing garments on the same region (socks + shoes) — only one expected; flag if the wrong one won.\n- Unsupported / omitted garment types were not silently dropped without the user knowing (check logs / re-run with supported refs only).\n- Garment color, pattern, logos, and key details match the reference (within reasonable lighting variance).\n- **Complex garments:** patchwork panels, collaged prints, pleats, and color-blocks align at seams — no smeared or melted panels.\n- Fit looks natural at shoulders, waist, sleeves, and hem — no obvious floating or clipping.\n\n## Upstream person plate (before try-on)\n\nIf **`person_image`** was generated with **`p-image`**, confirm [p-image-quality-checklist.md](./p-image-quality-checklist.md) passed first — mushy or synthetic plates produce mushy try-ons.\n\n- Photoreal editorial intent (not generic “fashion model white background” unless requested).\n- Cast and setting match the showcase brief when building public examples — generation-diversity.md#visual-variety (`generation-diversity`).\n\n## Pose and composition\n\n- When `reference_pose` was set, the output pose matches the reference closely enough for the use case.\n- When `reference_pose` was omitted, the person remains in a plausible stance for the garment type.\n- Framing and `preserve_input_size` behavior match the destination (PDP crop, full-body, etc.).\n\n## Turbo vs normal mode\n\n- If **`turbo: true`**, re-check every garment slot — turbo can miss items; retry in normal mode for final assets. Sweet spot **~4 pieces** in turbo.\n- With **more than 6 garments**, verify none were dropped or merged incorrectly; **7–8** is the upper reliable band before drop risk rises.\n\n## Non-flatlay / prompt (EXPERIMENTAL)\n\n- When `prompt` was used, only the named garments from the named images were applied.\n- No stray garments from multi-item reference photos leaked into the result.\n\n## Technical and handoff checks\n\n- Output dimensions and format match target use (`output_format`, `output_quality`).\n- No major artifacts (smears, duplicated limbs, warped fabric textures).\n- Result is ready for downstream `p-image-upscale`, `p-video`, or ecommerce handoff — or flagged for another pass.\n\nFile v1.0.14:references/p-image-upscale-guidance.md\n\n# p-image-upscale guidance\n\n`p-image-upscale` is **not** a creative prompt model. There is no text prompt — quality comes from the **source still** and param choices.\n\nQA: [p-image-upscale-quality-checklist.md](./p-image-upscale-quality-checklist.md).\n\n## Param craft\n\n| Field | Guidance |\n|-------|----------|\n| `target` | Megapixels 1–**128**. Print/billboard: 8–128. Mood boards: 4–16. Confirm cost/latency with the user. |\n| `enhance_details` | Sharpens micro-detail. Use when the plate is already clean. |\n| `enhance_realism` | Pushes photoreal texture. Can amplify plastic skin if the source is sloppy. |\n| `output_format` | Match delivery (`png` for lossless pipeline steps, `jpg` when size matters). |\n\n## When enhance helps vs hurts\n\n| Source | Enhance | Outcome |\n|--------|---------|---------|\n| Approved photoreal hero, pores visible | `enhance_details` on | Cleaner print plate |\n| Mushy CGI / AI-slop face | Either enhance flag | **Amplifies slop** — regenerate hero first |\n| Stylized anime / flat cel | Prefer details off or light | Avoid forcing photoreal pores on cel art |\n\n**Never** upscale to “fix” a rejected hero. Regenerate or edit, then upscale.\n\n## Pipeline placement\n\n| Workflow | Upscale? |\n|----------|----------|\n| Avatar / motion-transfer / replace | **No** unless user asks for print-scale stills — feed approved `p-image-ideogram` / `p-image` / edit URLs after slop gate |\n| Print, billboard, extreme crop | **Yes** — confirm `target` |\n| Before/after slider demos | Optional helper scripts — not a creative step |\n\n## Pre-send checklist\n\n- [ ] Source still already passed slop gate\n- [ ] `target` MP matches destination (not default-max “just in case”)\n- [ ] Enhance flags match medium (photoreal vs stylized)\n- [ ] User confirmed cost for high MP targets\n\nFile v1.0.14:references/p-image-upscale-quality-checklist.md\n\n# p-image-upscale quality checklist\n\nAfter each `p-image-upscale` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Resolution and detail\n\n- Effective detail increased versus source (not just larger dimensions).\n- Important features remain sharp (eyes, logos, product edges, text if intentionally present).\n- Chosen `target` MP is appropriate for destination (avatar plate ~4 MP; print up to 128 MP).\n\n## Fidelity to source\n\n- Geometry and identity are preserved (no face/product drift).\n- Colors and contrast stay within acceptable variance.\n- `enhance_realism` did not introduce unwanted style or texture changes.\n\n## Artifact scan\n\n- No haloing, ringing, oversharpening, or waxy/plastic skin textures.\n- No checkerboard/noise amplification in flat regions.\n- Output format and quality settings (`png`/`jpg`/`webp`) match delivery needs.\n\nFile v1.0.14:references/prompt-golden-rules.md\n\n# Image prompt golden rules (`p-image` / `p-image-edit`)\n\nProduction-grade still prompts for Pruna. **`p-image` has no prompt upsampling** — concrete language is the whole craft.\n\nTag structure, ritual seed, and diversity axes stay in `generation-diversity`. This page is the creative-director layer on top.\n\n**Sources:** patterns adapted from [smixs/visual-skills](https://github.com/smixs/visual-skills) (MIT) and [higgsfield-ai/skills](https://github.com/higgsfield-ai/skills) (MIT); rewritten for Pruna.\n\n## Before writing any prompt\n\n1. Complete the random seed ritual (`generation-diversity`) (SSoT).\n2. Name at least four clauses from explicit prompt structure (`generation-diversity`).\n3. Apply the rules below — then confirm `prompt` + `aspect_ratio` with the user.\n\n## Golden rules\n\n### 1. Lead with concrete subject + action\n\nName who/what and a frozen verb. Avoid mood-only openers.\n\n| Bad | Good |\n|-----|------|\n| `cool cyberpunk vibe, neon` | `Courier in rain-slick jacket vaults a puddle under kanji neon, wet asphalt reflections` |\n\n### 2. Positive framing only\n\nDescribe presence, not absence. Negation often invokes the thing you forbid.\n\n| Want | Write | Avoid |\n|------|-------|-------|\n| Empty street | `empty street, wide wet asphalt` | `street with no cars` |\n| Clean wall | `plain unmarked wall, matte paint` | `no text, no signs` |\n| Solo subject | `solo portrait, one person` | `no other people` |\n\nFull text hygiene: generation-diversity — text & typography (`generation-diversity`).\n\n### 3. Natural sentences over tag soup\n\n| Bad | Good |\n|-----|------|\n| `car, neon, city, night, 8k, masterpiece` | `Wide shot of a sports coupe speeding through a rainy Tokyo side street at night; neon reflecting on wet pavement and metal` |\n\n### 4. Be specific (hex, materials, placement)\n\n| Element | Vague | Specific |\n|---------|-------|----------|\n| Subject | `a woman` | `elderly jazz singer in a sequined shawl, mid-laugh` |\n| Material | `shiny` | `brushed steel with matte black grips` |\n| Color | `dark green` | `#0d3d2d deep emerald` |\n| Placement | `on the right` | `right third of frame, subject bleeding off edge` |\n\n### 5. Typography on surfaces\n\nReadable copy is **static text on a surface** — not spoken dialogue (that is `p-video` Mode A → `video-prompting`).\n\n**Template** (placeholders in square brackets are docs notation, not prompt syntax):\n\n```text\nTypography:\n[surface]: \"[EXACT STRING]\" in [weight], [color or hex], [placement in frame]\n```\n\nRules:\n\n- Put exact copy in **double quotes** — never paraphrase\n- Always name **surface** + **placement** (upper third, lower right of display, centered on label)\n- Add weight/color when it matters (bold condensed sans, cream #hex)\n- One primary text element per still unless the user wants a layout brief\n- Default: no readable copy — generation-diversity text hygiene (`generation-diversity`)\n- Prefer scenes without dense typography — `p-image` is weak at multi-line UI copy\n- **Not** spoken dialogue (`[subject] says \"…\"`) — use `p-video` Mode A\n- **Not** square-bracket `[tags]` — those are Gemini TTS performance tags only; stills use quoted strings\n\n### 6. Params stay outside the prompt\n\nNever put model name, `aspect_ratio`, resolution, duration, or API field names in the prompt string. Those belong in `input` JSON.\n\n### 7. Edit, don't re-roll\n\nIf a still is ~80% right, use `p-image-edit` with a surgical change (`Change background to soft #e8e4dc gradient, keep subject identical`) instead of regenerating from scratch.\n\n### 8. One world / genre anchor max\n\nUse **one** high-level anchor, then concrete details:\n\n| Type | Example |\n|------|---------|\n| Era + place | `Havana, 1957` + linen suit, harsh noon sun under awning |\n| Cultural / style | `Studio Ghibli mood` + moss stones, morning mist, monk sweeping |\n| Genre look | `documentary portrait, natural skin pores` |\n\nDo **not** stack genre anchors (`Wes Anderson + Lindbergh + Ghibli` → mush).\n\n## Banned filler (strip before send)\n\nThese add heat without rendering: `masterpiece`, `best quality`, `8k`, `4k`, `ultra detailed`, `stunning`, `epic`, `beautiful lighting`, bare `cinematic` with no camera/light nouns.\n\nReplace with concrete camera + light from `video-prompting` or diversity `camera_tag` / `lighting_tag`.\n\nPhotoreal anti-slop lock when needed: generation-diversity — photoreal anti-slop (`generation-diversity`).\n\n## Continuity handoffs\n\n| Goal | Path |\n|------|------|\n| Same face across many stills | [character-turnaround-sheet.md](./character-turnaround-sheet.md) → scene stills → I2V |\n| Talking-head / avatar cast | [realistic-persona-showcase.md](./realistic-persona-showcase.md) + avatar prompt templates |\n| Start/end plates for video | `video-prompting` / `video-prompting` |\n\n## Pre-send checklist\n\n- [ ] Ritual seed stated; axes logged\n- [ ] Subject + action + setting named (no mood-only prompt)\n- [ ] Positive framing; no `no text` / `without X`\n- [ ] Hex or named materials where color matters\n- [ ] On-image copy: quoted string + surface + placement (if any)\n- [ ] No API params inside the prompt string\n- [ ] At most one genre/era anchor + concrete details\n- [ ] No banned filler words\n\nFile v1.0.14:references/realistic-persona-example-prompt.md\n\n# Dynamic persona — example prompts\n\nCross-model examples for **`p-image`** scenario plates → optional **`p-image-try-on`** → **`p-video-avatar`**.\n\n**Before every curl:** random seed ritual (`generation-diversity`) (SSoT) + `generation-diversity` — state ritual string and derive axes; **omit API `seed`** unless user sets `api_seed`.\n\nFull ladders and 8-slot matrix: [realistic-persona-showcase.md](./realistic-persona-showcase.md).\n\n## 1. Photoreal documentary (`p-image`) — avatar-ready\n\n```bash\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 '{\n    \"input\": {\n      \"prompt\": \"Photorealistic documentary portrait photograph of a real person, not CGI. Man early 30s Black, short fade haircut, charcoal henley, creative loft exposed brick and teal window bokeh, slight low angle chest-up, soft overcast daylight, mouth clearly visible ready to speak, natural skin pores, horizontal wide framing, single subject one frame\",\n      \"aspect_ratio\": \"16:9\"\n    }\n  }'\n```\n\nPlan fields: `render_medium_tag: photoreal`, `visual_style_tag: documentary`, `camera_tag: low_angle_mc`, `setting_tag: loft_brick`.\n\n## 2. Premium cinematic cel anime (`p-image`) — avatar host\n\n```bash\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 '{\n    \"input\": {\n      \"prompt\": \"Premium anime cinematic young woman hero, cel-shaded film look, violet hair, iridescent jacket, cherry-blossom rooftop at dusk with neon color bokeh, low heroic angle from the side, mouth visible mid-speech, bright clear evening atmosphere, classic portrait framing, single character one frame\",\n      \"aspect_ratio\": \"4:3\"    }\n  }'\n```\n\nPlan fields: `render_medium_tag: cel_anime_2d`, `visual_style_tag: anime_cinematic`, `camera_tag: low_angle_hero`, `setting_tag: rooftop_dusk`.\n\n## 3. Claymation presenter (`p-image`)\n\n```text\nStop-motion claymation character woman presenter, visible clay texture, chunky knit scarf, round glasses,\nminiature handmade cozy living room set with tiny lamp and bookshelf, medium close-up,\nmouth sculpted for speech, warm practical stop-motion desk-lamp lighting, single character one frame.\n```\n\nPlan fields: `render_medium_tag: stop_motion_3d`, `visual_style_tag: clay_stop_motion`, `setting_tag: clay_living_room`.\n\n## 4. High-angle editorial fashion (`p-image`) — try-on canvas\n\n```text\nPhotoreal fashion lookbook, man early 30s East Asian, short styled hair, shirtless,\nstanding hands in pockets, seamless off-white studio floor, high angle from above,\neven soft studio light, full body head to shoes visible, single subject one frame.\n```\n\nUse as **`person_image`** for complex suit try-on — see [p-image-try-on-quality-checklist.md](p-image-try-on-quality-checklist.md).\n\n## 5. Scene variant (`p-image-edit`) — same identity, new angle + world\n\n```text\nUsing the attached reference as identity — keep exact same person, face, skin texture, photoreal quality.\nRooftop at dusk, city lights bokeh, side angle chest-up, mouth unobstructed, cobalt hoodie,\nclosed hardcover notebook at chest, warm golden rim light on hair, 9:16 single subject one frame.\n```\n\nChange **only** `setting_tag`, `camera_tag`, and wardrobe delta — not identity.\n\n## 6. Dynamic avatar — photoreal UGC\n\nReuse **approved hero plate URL**. Unique **`video_prompt`** per scene.\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-video-avatar' \\\n  -d '{\n    \"input\": {\n      \"image\": \"https://api.pruna.ai/v1/files/APPROVED_STILL_ID\",\n      \"voice_script\": \"Hey — we put the patchwork set on a real street plate, not a white studio. Face and background stayed put.\",\n      \"voice\": \"Puck (Male)\",\n      \"voice_language\": \"English (US)\",\n      \"voice_prompt\": \"Natural UGC creator tone, relaxed pacing, honest not salesy.\",\n      \"video_prompt\": \"Low angle handheld sway, subtle arc left, glance to notebook then back to lens\",\n      \"resolution\": \"720p\"    }\n  }'\n```\n\n## 7. Dynamic avatar — cinematic cel host\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-video-avatar' \\\n  -d '{\n    \"input\": {\n      \"image\": \"https://api.pruna.ai/v1/files/ANIME_STILL_ID\",\n      \"voice_script\": \"So — same motion grammar, totally different world. That is the point of planning each scene.\",\n      \"voice\": \"Zephyr (Female)\",\n      \"voice_language\": \"English (US)\",\n      \"voice_prompt\": \"Warm anime protagonist delivery, expressive but natural, not exaggerated dub energy.\",\n      \"video_prompt\": \"Low heroic angle, subtle head tilt, confident smile building mid-line\",\n      \"resolution\": \"720p\"    }\n  }'\n```\n\n## 8. Fashion try-on → avatar (three-step)\n\n| Step | Action |\n|------|--------|\n| A | **`p-image`** full-body street plate |\n| B | **`p-image-try-on`** patchwork stack, `turbo: false` |\n| C | **`p-video-avatar`** — script references outfit naturally |\n\n## 9. Eight-slot scenario matrix (playground gallery)\n\nWhen publishing a public set, cover **medium × angle × setting × aspect_ratio** — not one look:\n\n| Slot | Medium | Style | Camera | Setting | `aspect_ratio` |\n|------|--------|-------|--------|---------|----------------|\n| 1 | photoreal | documentary | low_angle_mc | loft_brick | `2:3` |\n| 2 | photoreal | editorial_fashion | high_angle_full | plaster_floor | `16:9` |\n| 3 | photoreal | street_ugc | side_angle | mirror_selfie_night | `9:16` |\n| 4 | cel_anime_2d | anime_cinematic | low_angle_hero | rooftop_dusk | `4:3` |\n| 5 | cel_anime_2d | cyberpunk_anime | side_angle | neon_alley | `3:4` |\n| 6 | stop_motion_3d | clay_stop_motion | medium_cu | clay_living_room | `1:1` |\n| 7 | cg_3d_film | fairy_tale_3d | medium_cu | enchanted_garden | `3:2` |\n| 8 | photoreal | cinematic_film | extreme_cu | golden_hour_field | `2:3` |\n\nEach slot: distinct **`cast_descriptor`** and **`aspect_ratio`**. Avatar slots: unique **`video_prompt`**.\n\nFull rules: [realistic-persona-showcase.md](./realistic-persona-showcase.md) · generation-diversity.md#visual-variety (`generation-diversity`).\n\nArchive v1.0.13: 15 files, 28768 bytes\n\nFiles: references/character-turnaround-sheet.md (4272b), references/p-image-edit-prompting.md (3966b), references/p-image-edit-quality-checklist.md (1008b), references/p-image-quality-checklist.md (1973b), references/p-image-try-on-prompting.md (2060b), references/p-image-try-on-quality-checklist.md (3495b), references/p-image-upscale-guidance.md (1814b), references/p-image-upscale-quality-checklist.md (998b), references/prompt-golden-rules.md (5200b), references/realistic-persona-example-prompt.md (6298b), references/realistic-persona-showcase.md (20914b), skill-card.md (2767b), skill.manifest.json (439b), SKILL.md (5523b), _meta.json (135b)\n\nFile v1.0.13:SKILL.md\n\n---\nname: image-prompting\ndescription: Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas.\nlicense: MIT\nmetadata:\n  version: \"1.0.13\"\n  package: pruna-skills\n---\n\n# Image prompting\n\nVendor-neutral craft for **still-image** generation and editing. Works with Pruna `p-image` family, Flux, Midjourney, Ideogram, Stable Diffusion, and similar APIs.\n\n## Install\n\n| Skill | Description | Install |\n| --- | --- | --- |\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| `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\n## When to use\n\n- Writing photo generation prompts\n- Building character identity / turnaround sheets\n- Surgical edits (change/keep discipline)\n- Virtual try-on garment prompts\n- Photoreal or stylized persona plates for avatars\n\n## Works with\n\nPruna `p-image` (simple quick photos), `p-image-ideogram` (controlled photo generation — text, JSON, hex/bbox), `p-image-edit` / `p-image-try-on` / `p-image-upscale`, Flux, Midjourney, Ideogram, SDXL, and other still models.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `video-prompting` | Use when crafting video or motion prompts for any generative model — dramaturgy, camera, physics-safe motion, frame anchors, and clip chaining. | `npx skills add PrunaAI/pruna-skills@video-prompting -y` |\n| `audio-prompting` | Use when crafting TTS, music, or bed prompts for any generative audio model — director style, song structure, and post-production layering. | `npx skills add PrunaAI/pruna-skills@audio-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| `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\n## Guide habit\n\nIn the **first reply**, name `` `image-prompting` `` in backticks. When aspect, resolution, or media source are open, open intake → **`generation-diversity`** clarification intake. For Pruna still calls, cite the reading order: `generation-diversity` (ritual + **still-image prompt flow** reference) → golden rules → model-specific reference below.\n\n## Before generating\n\n1. Follow `generation-diversity` first — for `p-image-ideogram` / `p-image` / `p-image-edit`, run **still-image prompt flow** (brief lock → ritual → draft → fidelity check).\n2. **[Prompt golden rules](./references/prompt-golden-rules.md)** — positive framing, no banned filler, params outside the prompt string.\n3. Same character across shots → [character-turnaround-sheet.md](./references/character-turnaround-sheet.md).\n4. Edits → [p-image-edit-prompting.md](./references/p-image-edit-prompting.md).\n5. Try-on → [p-image-try-on-prompting.md](./references/p-image-try-on-prompting.md).\n6. Upscale params → [p-image-upscale-guidance.md](./references/p-image-upscale-guidance.md).\n7. Photoreal personas → [realistic-persona-showcase.md](./references/realistic-persona-showcase.md) · [realistic-persona-example-prompt.md](./references/realistic-persona-example-prompt.md).\n8. Validate with the matching `*-quality-checklist.md` in `./references/`.\n\nComplex edits and multi-ref composition: see **Worked example — three-reference composite** in [p-image-edit-prompting.md](./references/p-image-edit-prompting.md).\n\n## Pruna tools\n\nMatching install for every model named above. Pick what you need:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image-ideogram` | Use when photo generation needs more control — photoreal results, text in the image, or structured JSON with hex colors and bounding boxes. Simpler photo generation, edits, and video use other skills in the suite. | `npx skills add PrunaAI/pruna-skills@p-image-ideogram -y` |\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| `p-image-try-on` | Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce. | `npx skills add PrunaAI/pruna-skills@p-image-try-on -y` |\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| `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\nFile v1.0.13:_meta.json\n\n{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"image-prompting\",\n  \"version\": \"1.0.13\",\n  \"publishedAt\": 1789653040543\n}\n\nFile v1.0.13:references/character-turnaround-sheet.md\n\n# Character turnaround sheet (`p-image` → I2V)\n\nReusable identity plates before scene stills and video. Use when the brief needs the **same character** across multiple shots, not a one-off hero.\n\nTalking-head cast ledgers and voice locks stay in avatar-multi-scene prompt-templates (`avatar-multi-scene`) and [realistic-persona-showcase.md](./realistic-persona-showcase.md). This page is the **visual turnaround** handoff.\n\n**Sources:** patterns adapted from [Square-Zero-Labs/video-prompting-skill](https://github.com/Square-Zero-Labs/video-prompting-skill) (Apache-2.0); rewritten for Pruna.\n\n## Handoff order\n\n```text\n1. Character turnaround sheet  (p-image or multi-panel edit)\n2. Scene stills                (p-image-edit from sheet / hero)\n3. Video                       (p-video pair/triple — motion only)\n```\n\nDo not invent a new face in step 2. Lock identity from the sheet (or a single approved hero plate) and change only pose, camera, wardrobe state, or background beat.\n\n## Sheet types\n\n| Type | When | Prompt focus |\n|------|------|--------------|\n| **Turnaround** | Stylized or invented characters | Front, 3⁄4, profile, back — same outfit, neutral studio |\n| **Expression row** | Performance / avatar prep | Same face + lighting; **distinct** emotions; include open-mouth for lip-sync |\n| **Photoreal identity** | Real-person consistency | Same person photographed repeatedly; keep asymmetry, pores, age cues |\n| **Wardrobe update** | Outfit change only | Same face/session framing; change clothes only |\n\n## Turnaround prompt skeleton\n\n```text\nCharacter turnaround sheet of [named character], [age/build/species], wearing [exact outfit].\nFour panels on one image: front view, three-quarter view, side profile, back view.\nIdentical face and costume in every panel. Neutral seamless studio backdrop #c8c8c8,\neven softbox lighting, no story background, no props that change between panels.\n[render style — e.g. documentary photoreal / cel-shaded anime]. Exact same character in every panel.\n```\n\n### Expression sheet add-on\n\n```text\nExpression row below: neutral, warm smile, concerned frown, surprised open mouth ready to speak.\nEach expression clearly different. Mouth visible in every panel. Same lighting and camera height.\n```\n\n### Photoreal identity sheet\n\n```text\nPhotoreal identity reference sheet of the same person photographed repeatedly in a studio.\nPreserve freckles, asymmetric smile, skin texture, and eye color exactly.\nFront and three-quarter views, soft window light, plain backdrop, no beauty retouching.\n```\n\n## Rules\n\n1. **Neutral backdrop** — no narrative locations on the sheet (story backgrounds come in scene stills).\n2. **Exact same character** language every time — models drift identity without it.\n3. **Distinct expressions** — “slightly different smiles” collapses; name emotion + mouth state.\n4. **One `style_bible`** — append the same medium/palette lock used in downstream edits and video.\n5. **Params outside prompt** — aspect ratio and model stay in API `input`, not the text.\n6. **Edit, don’t re-roll** — wardrobe or hair tweaks via `p-image-edit` from the locked sheet URL.\n\n## Scene stills from the sheet\n\n| Still | Source | Notes |\n|-------|--------|-------|\n| Hero / start | Sheet panel or locked hero URL | Match scene-anchor (`video-prompting`) OPENING composition |\n| End | Start + `last_frame_edit_prompt` | Same subject in frame; physically reachable pose |\n| Video | Motion-only `video_prompt` | Do not redescribe the face — see `video-prompting` |\n\nIdentity lock line for edits:\n\n```text\nsame [character name], identical face and costume, do not change species or age\n```\n\n## Anti-patterns\n\n| Avoid | Why |\n|-------|-----|\n| Story background on the sheet | Locks the character into one location |\n| Vague “consistent character” with no views | Model invents a new face per shot |\n| Same expression labeled three ways | No usable performance range |\n| Regenerating the photo each scene | Identity drift |\n| Mixing photoreal sheet with anime scene stills | Medium break mid-pipeline |\n\n## Related\n\n- Still craft: [prompt-golden-rules.md](./prompt-golden-rules.md)\n- Pair / triple stills: `video-prompting`, `video-prompting`\n- Avatar multi-scene cast table: `avatar-multi-scene`\n\nFile v1.0.13:references/p-image-edit-prompting.md\n\n# p-image-edit prompting\n\nSurgical edit prompts for `p-image-edit`. Shared still craft: [prompt-golden-rules.md](./prompt-golden-rules.md). Identity sheets: [character-turnaround-sheet.md](./character-turnaround-sheet.md).\n\n## Core formula\n\n```text\nChange [specific thing]. Keep [identity / medium / lighting era] identical.\n```\n\n| Do | Don't |\n|----|-------|\n| `Change background to soft #e8e4dc gradient, keep subject identical` | `Make it better` |\n| `Same woman, identical face and coat; turn torso 30° toward camera` | `Regenerate in a new pose` (prefer edit from locked URL) |\n| Name which ref: `face from image 1, outfit from image 2` | Vague `combine these images` |\n\n## Identity lock (required when subject continues)\n\nAppend when the person/product must survive the edit:\n\n```text\nsame [subject], identical face/uniform, do not remove the person, do not change species or age\n```\n\nPrefer editing a locked photo or turnaround plate over running photo generation again.\n\n## Typography edits\n\nChange readable copy on a surface — not spoken dialogue (that is `p-video` Mode A). Full still rules: [prompt-golden-rules.md](./prompt-golden-rules.md) §5.\n\n```text\nChange [surface] text to \"[EXACT STRING]\" in [weight], [placement]. Keep subject and lighting identical.\n```\n\nQuote the exact string; name surface + placement. Do not use Gemini TTS `[tags]` here.\n\n## Scene-anchor stills (pair / triple)\n\n| Plan field | Prefix | Role |\n|------------|--------|------|\n| `edit_prompt` | `OPENING:` or `OPEN:` | Start composition |\n| `last_frame_edit_prompt` | `CLOSING:` or `CLOSE:` | End composition — physically reachable from start |\n\nRules: `video-prompting` · `video-prompting`.\n\n- Subject must appear in **both** stills when the beat follows that subject.\n- Change only pose, camera, background beat, or prop state — not medium mid-scene.\n- Append the shared `style_bible` to every edit.\n\n## Multi-reference composition\n\nIndex refs by role:\n\n```text\nUse face and hair from image 1. Outfit from image 2. Place subject in the cafe interior from image 3.\nMatch lighting to image 3. Keep face identical to image 1.\n```\n\nMax 5 images on `p-image-edit`.\n\n## Turbo\n\n| Setting | When |\n|---------|------|\n| `turbo: true` (default) | Simple background / color / light tweaks |\n| `turbo: false` | Hard identity preserves, multi-ref composites, scene-anchor CLOSING plates that drop subjects |\n\n## Edit, don't re-roll\n\nIf the still is ~80% right, edit surgically. Regenerating the photo drifts identity and wastes the approved plate.\n\n## Worked example — three-reference composite\n\nUser lock: face from portrait ref, navy blazer from product flat-lay, cafe interior from location still. Keep face identical.\n\n```text\nUse face and hair from image 1. Outfit from image 2 (navy blazer, white tee). Place subject seated at the window table from image 3.\nMatch warm afternoon lighting to image 3. Keep face identical to image 1; same woman, do not change age or species.\nChange nothing except outfit and background — keep pose from image 1.\n```\n\n`turbo: false` — hard multi-ref composite. Upload all three via `POST /v1/files` before `POST /v1/predictions`.\n\n## Good / bad\n\n**Good**\n\n```text\nOPENING: Wide alley, same courier in rain jacket small in frame, neon kanji, wet asphalt — style lock appended\n```\n\n```text\nCLOSING: Same courier, identical face and jacket, closer in frame, hand on railing, do not remove the person\n```\n\n**Bad**\n\n```text\nMake it more cinematic and epic\n```\n\n```text\nCLOSING: Empty rooftop view at night\n```\n(drops subject)\n\n## Pre-send checklist\n\n- [ ] Golden rules applied (positive framing, no banned filler)\n- [ ] Change + keep clauses present\n- [ ] Identity lock when continuity matters\n- [ ] OPENING/CLOSING prefixes for anchor stills\n- [ ] `turbo` chosen for edit difficulty\n- [ ] Params (`aspect_ratio`, etc.) outside the prompt string\n\nValidate outputs: [p-image-edit-quality-checklist.md](./p-image-edit-quality-checklist.md).\n\nFile v1.0.13:references/p-image-edit-quality-checklist.md\n\n# p-image-edit quality checklist\n\nAfter each `p-image-edit` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Edit intent and preservation\n\n- Requested change is present and obvious.\n- Locked regions remain stable (identity, product geometry, key wardrobe/details).\n- \"Change only X\" constraints are respected; unrelated regions do not drift.\n\n## Multi-image composition (when used)\n\n- Source images blend coherently (lighting, scale, perspective).\n- Subject edges are clean (no obvious cutout seams or ghosting).\n- Final composition reads as one scene, not pasted layers.\n\n## Technical and handoff checks\n\n- Output dimensions and `aspect_ratio` match target use.\n- Artifacts introduced by edit are absent (smears, repeated textures, malformed hands/faces).\n- Result is ready for downstream `p-video` / `p-video-avatar`, or flagged for another pass.\n\nFile v1.0.13:references/p-image-quality-checklist.md\n\n# p-image quality checklist\n\nAfter each `p-image` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Composition and prompt fidelity\n\n- Main subject and action match the prompt intent.\n- Framing and `aspect_ratio` fit destination (`9:16`, `16:9`, etc.).\n- Style bible is present and respected (no unrequested style drift).\n\n## Persona plates (avatar / try-on / showcase)\n\nWhen the output feeds **`p-video-avatar`**, **`p-image-try-on`**, or a public example set:\n\n- **Style tagged** — matches planned `visual_style_tag` / `render_medium_tag` (photoreal, cel anime, clay, etc.).\n- **Photoreal intent** (when photoreal) — natural skin texture; not waxy CGI unless stylized brief.\n- **Cast specificity** — matches planned age, ethnicity, archetype — not generic “model”.\n- **Dynamic world** — unique `setting_tag`; named lighting; **distinct `camera_tag`**; **distinct `aspect_ratio`** in multi-example batches — not default MC facing camera every row.\n- **Avatar-ready** (when lip-sync next) — face large; mouth clearly visible; hands not covering mouth.\n- **Try-on-ready** (when dressing next) — body regions for garment types visible (full-body, feet, head as needed).\n- **`seed`** recorded when identity continues downstream.\n\nScenario matrix and style ladders: [realistic-persona-showcase.md](./realistic-persona-showcase.md).\n\n## Visual integrity\n\n- No major anatomy defects (extra fingers, warped limbs, broken symmetry where it matters).\n- No obvious rendering artifacts (mush textures, duplicated objects, clipped elements).\n- Background supports the scene and does not distract from the subject.\n\n## Cleanliness and delivery\n\n- No accidental logos, watermarks, UI elements, or stray text unless requested.\n- Image is acceptable as-is or marked for `p-image-edit` / `p-image-upscale` next.\n\nFile v1.0.13:references/p-image-try-on-prompting.md\n\n# p-image-try-on prompting\n\nWhen and how to use the experimental **`prompt`** on `p-image-try-on`. Upstream person plates: [realistic-persona-showcase.md](./realistic-persona-showcase.md). QA: [p-image-try-on-quality-checklist.md](./p-image-try-on-quality-checklist.md).\n\n## Default: leave `prompt` empty\n\n| Garment input | `prompt` |\n|---------------|----------|\n| Flat-lay / packshot (one clear item) | **Omit** — best default |\n| Single clear garment on white | **Omit** |\n| On-model / lifestyle / multi-item frame | **Set** — disambiguate which garment |\n| Multiple garments in one image | **Set** — name items + image index |\n\nTry-on is **image-led**. The prompt does not invent fashion — it only points at which garment from which ref.\n\n## Disambiguation patterns\n\n```text\nthe green t-shirt from image 1 and the trousers from image 2\n```\n\n```text\nthe black leather jacket worn by the model in image 1 — ignore the jeans\n```\n\n```text\nonly the red sneakers from image 2\n```\n\nRules:\n\n- Index refs the same way the API lists `garment_images` (image 1 = first URL).\n- Name **color + garment type**; avoid marketing adjectives (`iconic`, `premium`).\n- Do not write full scene/fashion-editorial prompts here — that belongs on the person plate (`p-image`).\n\n## Upstream plate caps quality\n\nBad person plates → bad try-on. Fix with photoreal `p-image-ideogram` (golden rules + persona showcase), then try-on, then optional upscale/avatar.\n\nAnti-slop: no white-background-only demos, no mushy CGI faces, rotate cast/settings per generation-diversity.md#visual-variety (`generation-diversity`).\n\n## `reference_pose`\n\nOptional second person URL — output pose follows that reference. Keep `prompt` focused on **garment choice**, not pose description.\n\n## Pre-send checklist\n\n- [ ] Flat-lay? Prompt empty\n- [ ] Multi-item or on-model? Prompt names color + item + image index\n- [ ] Person plate approved (mouth/body region visible for garment type)\n- [ ] Garment count within multi-garment limits (≤6 finals)\n- [ ] No creative scene prose in `prompt`\n\nFile v1.0.13:references/p-image-try-on-quality-checklist.md\n\n# p-image-try-on quality checklist\n\nAfter each `p-image-try-on` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Scene preservation (garment-only edit)\n\nThe model should change **clothing only**. Fail if the plate’s world drifted:\n\n- Face structure, skin tone, and expression match **`person_image`**.\n- Hair length, color, and style unchanged (unless headwear was requested).\n- Background, props, and scene geometry preserved (floor texture, street context) — **except** mirror reflections, which often keep the base outfit while the subject updates; reject mirror plates for try-on marketing.\n- Lighting direction and shadow mood consistent with the plate.\n- Pose and limb positions preserved (or match **`reference_pose`** when set).\n\nSee [realistic-persona-showcase.md](./realistic-persona-showcase.md#preservation-checklist-the-models-differentiator). Quality bar: [p-image-try-on-quality-checklist.md](./p-image-try-on-quality-checklist.md).\n\n## Garment fit and identity\n\n- Each requested garment appears on the person (correct category — see supported types in `p-image-try-on`).\n- **One item per body spot:** competing garments on the same region (socks + shoes) — only one expected; flag if the wrong one won.\n- Unsupported / omitted garment types were not silently dropped without the user knowing (check logs / re-run with supported refs only).\n- Garment color, pattern, logos, and key details match the reference (within reasonable lighting variance).\n- **Complex garments:** patchwork panels, collaged prints, pleats, and color-blocks align at seams — no smeared or melted panels.\n- Fit looks natural at shoulders, waist, sleeves, and hem — no obvious floating or clipping.\n\n## Upstream person plate (before try-on)\n\nIf **`person_image`** was generated with **`p-image`**, confirm [p-image-quality-checklist.md](./p-image-quality-checklist.md) passed first — mushy or synthetic plates produce mushy try-ons.\n\n- Photoreal editorial intent (not generic “fashion model white background” unless requested).\n- Cast and setting match the showcase brief when building public examples — generation-diversity.md#visual-variety (`generation-diversity`).\n\n## Pose and composition\n\n- When `reference_pose` was set, the output pose matches the reference closely enough for the use case.\n- When `reference_pose` was omitted, the person remains in a plausible stance for the garment type.\n- Framing and `preserve_input_size` behavior match the destination (PDP crop, full-body, etc.).\n\n## Turbo vs normal mode\n\n- If **`turbo: true`**, re-check every garment slot — turbo can miss items; retry in normal mode for final assets. Sweet spot **~4 pieces** in turbo.\n- With **more than 6 garments**, verify none were dropped or merged incorrectly; **7–8** is the upper reliable band before drop risk rises.\n\n## Non-flatlay / prompt (EXPERIMENTAL)\n\n- When `prompt` was used, only the named garments from the named images were applied.\n- No stray garments from multi-item reference photos leaked into the result.\n\n## Technical and handoff checks\n\n- Output dimensions and format match target use (`output_format`, `output_quality`).\n- No major artifacts (smears, duplicated limbs, warped fabric textures).\n- Result is ready for downstream `p-image-upscale`, `p-video`, or ecommerce handoff — or flagged for another pass.\n\nFile v1.0.13:references/p-image-upscale-guidance.md\n\n# p-image-upscale guidance\n\n`p-image-upscale` is **not** a creative prompt model. There is no text prompt — quality comes from the **source still** and param choices.\n\nQA: [p-image-upscale-quality-checklist.md](./p-image-upscale-quality-checklist.md).\n\n## Param craft\n\n| Field | Guidance |\n|-------|----------|\n| `target` | Megapixels 1–**128**. Print/billboard: 8–128. Mood boards: 4–16. Confirm cost/latency with the user. |\n| `enhance_details` | Sharpens micro-detail. Use when the plate is already clean. |\n| `enhance_realism` | Pushes photoreal texture. Can amplify plastic skin if the source is sloppy. |\n| `output_format` | Match delivery (`png` for lossless pipeline steps, `jpg` when size matters). |\n\n## When enhance helps vs hurts\n\n| Source | Enhance | Outcome |\n|--------|---------|---------|\n| Approved photoreal hero, pores visible | `enhance_details` on | Cleaner print plate |\n| Mushy CGI / AI-slop face | Either enhance flag | **Amplifies slop** — regenerate hero first |\n| Stylized anime / flat cel | Prefer details off or light | Avoid forcing photoreal pores on cel art |\n\n**Never** upscale to “fix” a rejected hero. Regenerate or edit, then upscale.\n\n## Pipeline placement\n\n| Workflow | Upscale? |\n|----------|----------|\n| Avatar / motion-transfer / replace | **No** unless user asks for print-scale stills — feed approved `p-image-ideogram` / `p-image` / edit URLs after slop gate |\n| Print, billboard, extreme crop | **Yes** — confirm `target` |\n| Before/after slider demos | Optional helper scripts — not a creative step |\n\n## Pre-send checklist\n\n- [ ] Source still already passed slop gate\n- [ ] `target` MP matches destination (not default-max “just in case”)\n- [ ] Enhance flags match medium (photoreal vs stylized)\n- [ ] User confirmed cost for high MP targets\n\nFile v1.0.13:references/p-image-upscale-quality-checklist.md\n\n# p-image-upscale quality checklist\n\nAfter each `p-image-upscale` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Resolution and detail\n\n- Effective detail increased versus source (not just larger dimensions).\n- Important features remain sharp (eyes, logos, product edges, text if intentionally present).\n- Chosen `target` MP is appropriate for destination (avatar plate ~4 MP; print up to 128 MP).\n\n## Fidelity to source\n\n- Geometry and identity are preserved (no face/product drift).\n- Colors and contrast stay within acceptable variance.\n- `enhance_realism` did not introduce unwanted style or texture changes.\n\n## Artifact scan\n\n- No haloing, ringing, oversharpening, or waxy/plastic skin textures.\n- No checkerboard/noise amplification in flat regions.\n- Output format and quality settings (`png`/`jpg`/`webp`) match delivery needs.\n\nFile v1.0.13:references/prompt-golden-rules.md\n\n# Image prompt golden rules (`p-image` / `p-image-edit`)\n\nProduction-grade still prompts for Pruna. **`p-image` has no prompt upsampling** — concrete language is the whole craft.\n\nTag structure, ritual seed, and diversity axes stay in `generation-diversity`. This page is the creative-director layer on top.\n\n**Sources:** patterns adapted from [smixs/visual-skills](https://github.com/smixs/visual-skills) (MIT) and [higgsfield-ai/skills](https://github.com/higgsfield-ai/skills) (MIT); rewritten for Pruna.\n\n## Before writing any prompt\n\n1. Complete the random seed ritual (`generation-diversity`) (SSoT).\n2. Name at least four clauses from explicit prompt structure (`generation-diversity`).\n3. Apply the rules below — then confirm `prompt` + `aspect_ratio` with the user.\n\n## Golden rules\n\n### 1. Lead with concrete subject + action\n\nName who/what and a frozen verb. Avoid mood-only openers.\n\n| Bad | Good |\n|-----|------|\n| `cool cyberpunk vibe, neon` | `Courier in rain-slick jacket vaults a puddle under kanji neon, wet asphalt reflections` |\n\n### 2. Positive framing only\n\nDescribe presence, not absence. Negation often invokes the thing you forbid.\n\n| Want | Write | Avoid |\n|------|-------|-------|\n| Empty street | `empty street, wide wet asphalt` | `street with no cars` |\n| Clean wall | `plain unmarked wall, matte paint` | `no text, no signs` |\n| Solo subject | `solo portrait, one person` | `no other people` |\n\nFull text hygiene: generation-diversity — text & typography (`generation-diversity`).\n\n### 3. Natural sentences over tag soup\n\n| Bad | Good |\n|-----|------|\n| `car, neon, city, night, 8k, masterpiece` | `Wide shot of a sports coupe speeding through a rainy Tokyo side street at night; neon reflecting on wet pavement and metal` |\n\n### 4. Be specific (hex, materials, placement)\n\n| Element | Vague | Specific |\n|---------|-------|----------|\n| Subject | `a woman` | `elderly jazz singer in a sequined shawl, mid-laugh` |\n| Material | `shiny` | `brushed steel with matte black grips` |\n| Color | `dark green` | `#0d3d2d deep emerald` |\n| Placement | `on the right` | `right third of frame, subject bleeding off edge` |\n\n### 5. Typography on surfaces\n\nReadable copy is **static text on a surface** — not spoken dialogue (that is `p-video` Mode A → `video-prompting`).\n\n**Template** (placeholders in square brackets are docs notation, not prompt syntax):\n\n```text\nTypography:\n[surface]: \"[EXACT STRING]\" in [weight], [color or hex], [placement in frame]\n```\n\nRules:\n\n- Put exact copy in **double quotes** — never paraphrase\n- Always name **surface** + **placement** (upper third, lower right of display, centered on label)\n- Add weight/color when it matters (bold condensed sans, cream #hex)\n- One primary text element per still unless the user wants a layout brief\n- Default: no readable copy — generation-diversity text hygiene (`generation-diversity`)\n- Prefer scenes without dense typography — `p-image` is weak at multi-line UI copy\n- **Not** spoken dialogue (`[subject] says \"…\"`) — use `p-video` Mode A\n- **Not** square-bracket `[tags]` — those are Gemini TTS performance tags only; stills use quoted strings\n\n### 6. Params stay outside the prompt\n\nNever put model name, `aspect_ratio`, resolution, duration, or API field names in the prompt string. Those belong in `input` JSON.\n\n### 7. Edit, don't re-roll\n\nIf a still is ~80% right, use `p-image-edit` with a surgical change (`Change background to soft #e8e4dc gradient, keep subject identical`) instead of regenerating from scratch.\n\n### 8. One world / genre anchor max\n\nUse **one** high-level anchor, then concrete details:\n\n| Type | Example |\n|------|---------|\n| Era + place | `Havana, 1957` + linen suit, harsh noon sun under awning |\n| Cultural / style | `Studio Ghibli mood` + moss stones, morning mist, monk sweeping |\n| Genre look | `documentary portrait, natural skin pores` |\n\nDo **not** stack genre anchors (`Wes Anderson + Lindbergh + Ghibli` → mush).\n\n## Banned filler (strip before send)\n\nThese add heat without rendering: `masterpiece`, `best quality`, `8k`, `4k`, `ultra detailed`, `stunning`, `epic`, `beautiful lighting`, bare `cinematic` with no camera/light nouns.\n\nReplace with concrete camera + light from `video-prompting` or diversity `camera_tag` / `lighting_tag`.\n\nPhotoreal anti-slop lock when needed: generation-diversity — photoreal anti-slop (`generation-diversity`).\n\n## Continuity handoffs\n\n| Goal | Path |\n|------|------|\n| Same face across many stills | [character-turnaround-sheet.md](./character-turnaround-sheet.md) → scene stills → I2V |\n| Talking-head / avatar cast | [realistic-persona-showcase.md](./realistic-persona-showcase.md) + avatar prompt templates |\n| Start/end plates for video | `video-prompting` / `video-prompting` |\n\n## Pre-send checklist\n\n- [ ] Ritual seed stated; axes logged\n- [ ] Subject + action + setting named (no mood-only prompt)\n- [ ] Positive framing; no `no text` / `without X`\n- [ ] Hex or named materials where color matters\n- [ ] On-image copy: quoted string + surface + placement (if any)\n- [ ] No API params inside the prompt string\n- [ ] At most one genre/era anchor + concrete details\n- [ ] No banned filler words\n\nFile v1.0.13:references/realistic-persona-example-prompt.md\n\n# Dynamic persona — example prompts\n\nCross-model examples for **`p-image`** scenario plates → optional **`p-image-try-on`** → **`p-video-avatar`**.\n\n**Before every curl:** random seed ritual (`generation-diversity`) (SSoT) + `generation-diversity` — state ritual string and derive axes; **omit API `seed`** unless user sets `api_seed`.\n\nFull ladders and 8-slot matrix: [realistic-persona-showcase.md](./realistic-persona-showcase.md).\n\n## 1. Photoreal documentary (`p-image`) — avatar-ready\n\n```bash\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 '{\n    \"input\": {\n      \"prompt\": \"Photorealistic documentary portrait photograph of a real person, not CGI. Man early 30s Black, short fade haircut, charcoal henley, creative loft exposed brick and teal window bokeh, slight low angle chest-up, soft overcast daylight, mouth clearly visible ready to speak, natural skin pores, horizontal wide framing, single subject one frame\",\n      \"aspect_ratio\": \"16:9\"\n    }\n  }'\n```\n\nPlan fields: `render_medium_tag: photoreal`, `visual_style_tag: documentary`, `camera_tag: low_angle_mc`, `setting_tag: loft_brick`.\n\n## 2. Premium cinematic cel anime (`p-image`) — avatar host\n\n```bash\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 '{\n    \"input\": {\n      \"prompt\": \"Premium anime cinematic young woman hero, cel-shaded film look, violet hair, iridescent jacket, cherry-blossom rooftop at dusk with neon color bokeh, low heroic angle from the side, mouth visible mid-speech, bright clear evening atmosphere, classic portrait framing, single character one frame\",\n      \"aspect_ratio\": \"4:3\"    }\n  }'\n```\n\nPlan fields: `render_medium_tag: cel_anime_2d`, `visual_style_tag: anime_cinematic`, `camera_tag: low_angle_hero`, `setting_tag: rooftop_dusk`.\n\n## 3. Claymation presenter (`p-image`)\n\n```text\nStop-motion claymation character woman presenter, visible clay texture, chunky knit scarf, round glasses,\nminiature handmade cozy living room set with tiny lamp and bookshelf, medium close-up,\nmouth sculpted for speech, warm practical stop-motion desk-lamp lighting, single character one frame.\n```\n\nPlan fields: `render_medium_tag: stop_motion_3d`, `visual_style_tag: clay_stop_motion`, `setting_tag: clay_living_room`.\n\n## 4. High-angle editorial fashion (`p-image`) — try-on canvas\n\n```text\nPhotoreal fashion lookbook, man early 30s East Asian, short styled hair, shirtless,\nstanding hands in pockets, seamless off-white studio floor, high angle from above,\neven soft studio light, full body head to shoes visible, single subject one frame.\n```\n\nUse as **`person_image`** for complex suit try-on — see [p-image-try-on-quality-checklist.md](p-image-try-on-quality-checklist.md).\n\n## 5. Scene variant (`p-image-edit`) — same identity, new angle + world\n\n```text\nUsing the attached reference as identity — keep exact same person, face, skin texture, photoreal quality.\nRooftop at dusk, city lights bokeh, side angle chest-up, mouth unobstructed, cobalt hoodie,\nclosed hardcover notebook at chest, warm golden rim light on hair, 9:16 single subject one frame.\n```\n\nChange **only** `setting_tag`, `camera_tag`, and wardrobe delta — not identity.\n\n## 6. Dynamic avatar — photoreal UGC\n\nReuse **approved hero plate URL**. Unique **`video_prompt`** per scene.\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-video-avatar' \\\n  -d '{\n    \"input\": {\n      \"image\": \"https://api.pruna.ai/v1/files/APPROVED_STILL_ID\",\n      \"voice_script\": \"Hey — we put the patchwork set on a real street plate, not a white studio. Face and background stayed put.\",\n      \"voice\": \"Puck (Male)\",\n      \"voice_language\": \"English (US)\",\n      \"voice_prompt\": \"Natural UGC creator tone, relaxed pacing, honest not salesy.\",\n      \"video_prompt\": \"Low angle handheld sway, subtle arc left, glance to notebook then back to lens\",\n      \"resolution\": \"720p\"    }\n  }'\n```\n\n## 7. Dynamic avatar — cinematic cel host\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-video-avatar' \\\n  -d '{\n    \"input\": {\n      \"image\": \"https://api.pruna.ai/v1/files/ANIME_STILL_ID\",\n      \"voice_script\": \"So — same motion grammar, totally different world. That is the point of planning each scene.\",\n      \"voice\": \"Zephyr (Female)\",\n      \"voice_language\": \"English (US)\",\n      \"voice_prompt\": \"Warm anime protagonist delivery, expressive but natural, not exaggerated dub energy.\",\n      \"video_prompt\": \"Low heroic angle, subtle head tilt, confident smile building mid-line\",\n      \"resolution\": \"720p\"    }\n  }'\n```\n\n## 8. Fashion try-on → avatar (three-step)\n\n| Step | Action |\n|------|--------|\n| A | **`p-image`** full-body street plate |\n| B | **`p-image-try-on`** patchwork stack, `turbo: false` |\n| C | **`p-video-avatar`** — script references outfit naturally |\n\n## 9. Eight-slot scenario matrix (playground gallery)\n\nWhen publishing a public set, cover **medium × angle × setting × aspect_ratio** — not one look:\n\n| Slot | Medium | Style | Camera | Setting | `aspect_ratio` |\n|------|--------|-------|--------|---------|----------------|\n| 1 | photoreal | documentary | low_angle_mc | loft_brick | `2:3` |\n| 2 | photoreal | editorial_fashion | high_angle_full | plaster_floor | `16:9` |\n| 3 | photoreal | street_ugc | side_angle | mirror_selfie_night | `9:16` |\n| 4 | cel_anime_2d | anime_cinematic | low_angle_hero | rooftop_dusk | `4:3` |\n| 5 | cel_anime_2d | cyberpunk_anime | side_angle | neon_alley | `3:4` |\n| 6 | stop_motion_3d | clay_stop_motion | medium_cu | clay_living_room | `1:1` |\n| 7 | cg_3d_film | fairy_tale_3d | medium_cu | enchanted_garden | `3:2` |\n| 8 | photoreal | cinematic_film | extreme_cu | golden_hour_field | `2:3` |\n\nEach slot: distinct **`cast_descriptor`** and **`aspect_ratio`**. Avatar slots: unique **`video_prompt`**.\n\nFull rules: [realistic-persona-showcase.md](./realistic-persona-showcase.md) · generation-diversity.md#visual-variety (`generation-diversity`).\n\nArchive v1.0.12: 15 files, 28978 bytes\n\nFiles: references/character-turnaround-sheet.md (4272b), references/p-image-edit-prompting.md (3966b), references/p-image-edit-quality-checklist.md (1008b), references/p-image-quality-checklist.md (1973b), references/p-image-try-on-prompting.md (2060b), references/p-image-try-on-quality-checklist.md (3495b), references/p-image-upscale-guidance.md (1814b), references/p-image-upscale-quality-checklist.md (998b), references/prompt-golden-rules.md (5200b), references/realistic-persona-example-prompt.md (6298b), references/realistic-persona-showcase.md (20914b), skill-card.md (3328b), skill.manifest.json (439b), SKILL.md (5523b), _meta.json (135b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: image-prompting\ndescription: Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas.\nlicense: MIT\nmetadata:\n  version: \"1.0.12\"\n  package: pruna-skills\n---\n\n# Image prompting\n\nVendor-neutral craft for **still-image** generation and editing. Works with Pruna `p-image` family, Flux, Midjourney, Ideogram, Stable Diffusion, and similar APIs.\n\n## Install\n\n| Skill | Description | Install |\n| --- | --- | --- |\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| `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\n## When to use\n\n- Writing photo generation prompts\n- Building character identity / turnaround sheets\n- Surgical edits (change/keep discipline)\n- Virtual try-on garment prompts\n- Photoreal or stylized persona plates for avatars\n\n## Works with\n\nPruna `p-image` (simple quick photos), `p-image-ideogram` (controlled photo generation — text, JSON, hex/bbox), `p-image-edit` / `p-image-try-on` / `p-image-upscale`, Flux, Midjourney, Ideogram, SDXL, and other still models.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `video-prompting` | Use when crafting video or motion prompts for any generative model — dramaturgy, camera, physics-safe motion, frame anchors, and clip chaining. | `npx skills add PrunaAI/pruna-skills@video-prompting -y` |\n| `audio-prompting` | Use when crafting TTS, music, or bed prompts for any generative audio model — director style, song structure, and post-production layering. | `npx skills add PrunaAI/pruna-skills@audio-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| `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\n## Guide habit\n\nIn the **first reply**, name `` `image-prompting` `` in backticks. When aspect, resolution, or media source are open, open intake → **`generation-diversity`** clarification intake. For Pruna still calls, cite the reading order: `generation-diversity` (ritual + **still-image prompt flow** reference) → golden rules → model-specific reference below.\n\n## Before generating\n\n1. Follow `generation-diversity` first — for `p-image-ideogram` / `p-image` / `p-image-edit`, run **still-image prompt flow** (brief lock → ritual → draft → fidelity check).\n2. **[Prompt golden rules](./references/prompt-golden-rules.md)** — positive framing, no banned filler, params outside the prompt string.\n3. Same character across shots → [character-turnaround-sheet.md](./references/character-turnaround-sheet.md).\n4. Edits → [p-image-edit-prompting.md](./references/p-image-edit-prompting.md).\n5. Try-on → [p-image-try-on-prompting.md](./references/p-image-try-on-prompting.md).\n6. Upscale params → [p-image-upscale-guidance.md](./references/p-image-upscale-guidance.md).\n7. Photoreal personas → [realistic-persona-showcase.md](./references/realistic-persona-showcase.md) · [realistic-persona-example-prompt.md](./references/realistic-persona-example-prompt.md).\n8. Validate with the matching `*-quality-checklist.md` in `./references/`.\n\nComplex edits and multi-ref composition: see **Worked example — three-reference composite** in [p-image-edit-prompting.md](./references/p-image-edit-prompting.md).\n\n## Pruna tools\n\nMatching install for every model named above. Pick what you need:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image-ideogram` | Use when photo generation needs more control — photoreal results, text in the image, or structured JSON with hex colors and bounding boxes. Simpler photo generation, edits, and video use other skills in the suite. | `npx skills add PrunaAI/pruna-skills@p-image-ideogram -y` |\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| `p-image-try-on` | Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce. | `npx skills add PrunaAI/pruna-skills@p-image-try-on -y` |\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| `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\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"image-prompting\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1789048110379\n}\n\nFile v1.0.12:references/character-turnaround-sheet.md\n\n# Character turnaround sheet (`p-image` → I2V)\n\nReusable identity plates before scene stills and video. Use when the brief needs the **same character** across multiple shots, not a one-off hero.\n\nTalking-head cast ledgers and voice locks stay in avatar-multi-scene prompt-templates (`avatar-multi-scene`) and [realistic-persona-showcase.md](./realistic-persona-showcase.md). This page is the **visual turnaround** handoff.\n\n**Sources:** patterns adapted from [Square-Zero-Labs/video-prompting-skill](https://github.com/Square-Zero-Labs/video-prompting-skill) (Apache-2.0); rewritten for Pruna.\n\n## Handoff order\n\n```text\n1. Character turnaround sheet  (p-image or multi-panel edit)\n2. Scene stills                (p-image-edit from sheet / hero)\n3. Video                       (p-video pair/triple — motion only)\n```\n\nDo not invent a new face in step 2. Lock identity from the sheet (or a single approved hero plate) and change only pose, camera, wardrobe state, or background beat.\n\n## Sheet types\n\n| Type | When | Prompt focus |\n|------|------|--------------|\n| **Turnaround** | Stylized or invented characters | Front, 3⁄4, profile, back — same outfit, neutral studio |\n| **Expression row** | Performance / avatar prep | Same face + lighting; **distinct** emotions; include open-mouth for lip-sync |\n| **Photoreal identity** | Real-person consistency | Same person photographed repeatedly; keep asymmetry, pores, age cues |\n| **Wardrobe update** | Outfit change only | Same face/session framing; change clothes only |\n\n## Turnaround prompt skeleton\n\n```text\nCharacter turnaround sheet of [named character], [age/build/species], wearing [exact outfit].\nFour panels on one image: front view, three-quarter view, side profile, back view.\nIdentical face and costume in every panel. Neutral seamless studio backdrop #c8c8c8,\neven softbox lighting, no story background, no props that change between panels.\n[render style — e.g. documentary photoreal / cel-shaded anime]. Exact same character in every panel.\n```\n\n### Expression sheet add-on\n\n```text\nExpression row below: neutral, warm smile, concerned frown, surprised open mouth ready to speak.\nEach expression clearly different. Mouth visible in every panel. Same lighting and camera height.\n```\n\n### Photoreal identity sheet\n\n```text\nPhotoreal identity reference sheet of the same person photographed repeatedly in a studio.\nPreserve freckles, asymmetric smile, skin texture, and eye color exactly.\nFront and three-quarter views, soft window light, plain backdrop, no beauty retouching.\n```\n\n## Rules\n\n1. **Neutral backdrop** — no narrative locations on the sheet (story backgrounds come in scene stills).\n2. **Exact same character** language every time — models drift identity without it.\n3. **Distinct expressions** — “slightly different smiles” collapses; name emotion + mouth state.\n4. **One `style_bible`** — append the same medium/palette lock used in downstream edits and video.\n5. **Params outside prompt** — aspect ratio and model stay in API `input`, not the text.\n6. **Edit, don’t re-roll** — wardrobe or hair tweaks via `p-image-edit` from the locked sheet URL.\n\n## Scene stills from the sheet\n\n| Still | Source | Notes |\n|-------|--------|-------|\n| Hero / start | Sheet panel or locked hero URL | Match scene-anchor (`video-prompting`) OPENING composition |\n| End | Start + `last_frame_edit_prompt` | Same subject in frame; physically reachable pose |\n| Video | Motion-only `video_prompt` | Do not redescribe the face — see `video-prompting` |\n\nIdentity lock line for edits:\n\n```text\nsame [character name], identical face and costume, do not change species or age\n```\n\n## Anti-patterns\n\n| Avoid | Why |\n|-------|-----|\n| Story background on the sheet | Locks the character into one location |\n| Vague “consistent character” with no views | Model invents a new face per shot |\n| Same expression labeled three ways | No usable performance range |\n| Regenerating the photo each scene | Identity drift |\n| Mixing photoreal sheet with anime scene stills | Medium break mid-pipeline |\n\n## Related\n\n- Still craft: [prompt-golden-rules.md](./prompt-golden-rules.md)\n- Pair / triple stills: `video-prompting`, `video-prompting`\n- Avatar multi-scene cast table: `avatar-multi-scene`\n\nFile v1.0.12:references/p-image-edit-prompting.md\n\n# p-image-edit prompting\n\nSurgical edit prompts for `p-image-edit`. Shared still craft: [prompt-golden-rules.md](./prompt-golden-rules.md). Identity sheets: [character-turnaround-sheet.md](./character-turnaround-sheet.md).\n\n## Core formula\n\n```text\nChange [specific thing]. Keep [identity / medium / lighting era] identical.\n```\n\n| Do | Don't |\n|----|-------|\n| `Change background to soft #e8e4dc gradient, keep subject identical` | `Make it better` |\n| `Same woman, identical face and coat; turn torso 30° toward camera` | `Regenerate in a new pose` (prefer edit from locked URL) |\n| Name which ref: `face from image 1, outfit from image 2` | Vague `combine these images` |\n\n## Identity lock (required when subject continues)\n\nAppend when the person/product must survive the edit:\n\n```text\nsame [subject], identical face/uniform, do not remove the person, do not change species or age\n```\n\nPrefer editing a locked photo or turnaround plate over running photo generation again.\n\n## Typography edits\n\nChange readable copy on a surface — not spoken dialogue (that is `p-video` Mode A). Full still rules: [prompt-golden-rules.md](./prompt-golden-rules.md) §5.\n\n```text\nChange [surface] text to \"[EXACT STRING]\" in [weight], [placement]. Keep subject and lighting identical.\n```\n\nQuote the exact string; name surface + placement. Do not use Gemini TTS `[tags]` here.\n\n## Scene-anchor stills (pair / triple)\n\n| Plan field | Prefix | Role |\n|------------|--------|------|\n| `edit_prompt` | `OPENING:` or `OPEN:` | Start composition |\n| `last_frame_edit_prompt` | `CLOSING:` or `CLOSE:` | End composition — physically reachable from start |\n\nRules: `video-prompting` · `video-prompting`.\n\n- Subject must appear in **both** stills when the beat follows that subject.\n- Change only pose, camera, background beat, or prop state — not medium mid-scene.\n- Append the shared `style_bible` to every edit.\n\n## Multi-reference composition\n\nIndex refs by role:\n\n```text\nUse face and hair from image 1. Outfit from image 2. Place subject in the cafe interior from image 3.\nMatch lighting to image 3. Keep face identical to image 1.\n```\n\nMax 5 images on `p-image-edit`.\n\n## Turbo\n\n| Setting | When |\n|---------|------|\n| `turbo: true` (default) | Simple background / color / light tweaks |\n| `turbo: false` | Hard identity preserves, multi-ref composites, scene-anchor CLOSING plates that drop subjects |\n\n## Edit, don't re-roll\n\nIf the still is ~80% right, edit surgically. Regenerating the photo drifts identity and wastes the approved plate.\n\n## Worked example — three-reference composite\n\nUser lock: face from portrait ref, navy blazer from product flat-lay, cafe interior from location still. Keep face identical.\n\n```text\nUse face and hair from image 1. Outfit from image 2 (navy blazer, white tee). Place subject seated at the window table from image 3.\nMatch warm afternoon lighting to image 3. Keep face identical to image 1; same woman, do not change age or species.\nChange nothing except outfit and background — keep pose from image 1.\n```\n\n`turbo: false` — hard multi-ref composite. Upload all three via `POST /v1/files` before `POST /v1/predictions`.\n\n## Good / bad\n\n**Good**\n\n```text\nOPENING: Wide alley, same courier in rain jacket small in frame, neon kanji, wet asphalt — style lock appended\n```\n\n```text\nCLOSING: Same courier, identical face and jacket, closer in frame, hand on railing, do not remove the person\n```\n\n**Bad**\n\n```text\nMake it more cinematic and epic\n```\n\n```text\nCLOSING: Empty rooftop view at night\n```\n(drops subject)\n\n## Pre-send checklist\n\n- [ ] Golden rules applied (positive framing, no banned filler)\n- [ ] Change + keep clauses present\n- [ ] Identity lock when continuity matters\n- [ ] OPENING/CLOSING prefixes for anchor stills\n- [ ] `turbo` chosen for edit difficulty\n- [ ] Params (`aspect_ratio`, etc.) outside the prompt string\n\nValidate outputs: [p-image-edit-quality-checklist.md](./p-image-edit-quality-checklist.md).\n\nFile v1.0.12:references/p-image-edit-quality-checklist.md\n\n# p-image-edit quality checklist\n\nAfter each `p-image-edit` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Edit intent and preservation\n\n- Requested change is present and obvious.\n- Locked regions remain stable (identity, product geometry, key wardrobe/details).\n- \"Change only X\" constraints are respected; unrelated regions do not drift.\n\n## Multi-image composition (when used)\n\n- Source images blend coherently (lighting, scale, perspective).\n- Subject edges are clean (no obvious cutout seams or ghosting).\n- Final composition reads as one scene, not pasted layers.\n\n## Technical and handoff checks\n\n- Output dimensions and `aspect_ratio` match target use.\n- Artifacts introduced by edit are absent (smears, repeated textures, malformed hands/faces).\n- Result is ready for downstream `p-video` / `p-video-avatar`, or flagged for another pass.\n\nFile v1.0.12:references/p-image-quality-checklist.md\n\n# p-image quality checklist\n\nAfter each `p-image` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Composition and prompt fidelity\n\n- Main subject and action match the prompt intent.\n- Framing and `aspect_ratio` fit destination (`9:16`, `16:9`, etc.).\n- Style bible is present and respected (no unrequested style drift).\n\n## Persona plates (avatar / try-on / showcase)\n\nWhen the output feeds **`p-video-avatar`**, **`p-image-try-on`**, or a public example set:\n\n- **Style tagged** — matches planned `visual_style_tag` / `render_medium_tag` (photoreal, cel anime, clay, etc.).\n- **Photoreal intent** (when photoreal) — natural skin texture; not waxy CGI unless stylized brief.\n- **Cast specificity** — matches planned age, ethnicity, archetype — not generic “model”.\n- **Dynamic world** — unique `setting_tag`; named lighting; **distinct `camera_tag`**; **distinct `aspect_ratio`** in multi-example batches — not default MC facing camera every row.\n- **Avatar-ready** (when lip-sync next) — face large; mouth clearly visible; hands not covering mouth.\n- **Try-on-ready** (when dressing next) — body regions for garment types visible (full-body, feet, head as needed).\n- **`seed`** recorded when identity continues downstream.\n\nScenario matrix and style ladders: [realistic-persona-showcase.md](./realistic-persona-showcase.md).\n\n## Visual integrity\n\n- No major anatomy defects (extra fingers, warped limbs, broken symmetry where it matters).\n- No obvious rendering artifacts (mush textures, duplicated objects, clipped elements).\n- Background supports the scene and does not distract from the subject.\n\n## Cleanliness and delivery\n\n- No accidental logos, watermarks, UI elements, or stray text unless requested.\n- Image is acceptable as-is or marked for `p-image-edit` / `p-image-upscale` next.\n\nFile v1.0.12:references/p-image-try-on-prompting.md\n\n# p-image-try-on prompting\n\nWhen and how to use the experimental **`prompt`** on `p-image-try-on`. Upstream person plates: [realistic-persona-showcase.md](./realistic-persona-showcase.md). QA: [p-image-try-on-quality-checklist.md](./p-image-try-on-quality-checklist.md).\n\n## Default: leave `prompt` empty\n\n| Garment input | `prompt` |\n|---------------|----------|\n| Flat-lay / packshot (one clear item) | **Omit** — best default |\n| Single clear garment on white | **Omit** |\n| On-model / lifestyle / multi-item frame | **Set** — disambiguate which garment |\n| Multiple garments in one image | **Set** — name items + image index |\n\nTry-on is **image-led**. The prompt does not invent fashion — it only points at which garment from which ref.\n\n## Disambiguation patterns\n\n```text\nthe green t-shirt from image 1 and the trousers from image 2\n```\n\n```text\nthe black leather jacket worn by the model in image 1 — ignore the jeans\n```\n\n```text\nonly the red sneakers from image 2\n```\n\nRules:\n\n- Index refs the same way the API lists `garment_images` (image 1 = first URL).\n- Name **color + garment type**; avoid marketing adjectives (`iconic`, `premium`).\n- Do not write full scene/fashion-editorial prompts here — that belongs on the person plate (`p-image`).\n\n## Upstream plate caps quality\n\nBad person plates → bad try-on. Fix with photoreal `p-image-ideogram` (golden rules + persona showcase), then try-on, then optional upscale/avatar.\n\nAnti-slop: no white-background-only demos, no mushy CGI faces, rotate cast/settings per generation-diversity.md#visual-variety (`generation-diversity`).\n\n## `reference_pose`\n\nOptional second person URL — output pose follows that reference. Keep `prompt` focused on **garment choice**, not pose description.\n\n## Pre-send checklist\n\n- [ ] Flat-lay? Prompt empty\n- [ ] Multi-item or on-model? Prompt names color + item + image index\n- [ ] Person plate approved (mouth/body region visible for garment type)\n- [ ] Garment count within multi-garment limits (≤6 finals)\n- [ ] No creative scene prose in `prompt`\n\nFile v1.0.12:references/p-image-try-on-quality-checklist.md\n\n# p-image-try-on quality checklist\n\nAfter each `p-image-try-on` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Scene preservation (garment-only edit)\n\nThe model should change **clothing only**. Fail if the plate’s world drifted:\n\n- Face structure, skin tone, and expression match **`person_image`**.\n- Hair length, color, and style unchanged (unless headwear was requested).\n- Background, props, and scene geometry preserved (floor texture, street context) — **except** mirror reflections, which often keep the base outfit while the subject updates; reject mirror plates for try-on marketing.\n- Lighting direction and shadow mood consistent with the plate.\n- Pose and limb positions preserved (or match **`reference_pose`** when set).\n\nSee [realistic-persona-showcase.md](./realistic-persona-showcase.md#preservation-checklist-the-models-differentiator). Quality bar: [p-image-try-on-quality-checklist.md](./p-image-try-on-quality-checklist.md).\n\n## Garment fit and identity\n\n- Each requested garment appears on the person (correct category — see supported types in `p-image-try-on`).\n- **One item per body spot:** competing garments on the same region (socks + shoes) — only one expected; flag if the wrong one won.\n- Unsupported / omitted garment types were not silently dropped without the user knowing (check logs / re-run with supported refs only).\n- Garment color, pattern, logos, and key details match the reference (within reasonable lighting variance).\n- **Complex garments:** patchwork panels, collaged prints, pleats, and color-blocks align at seams — no smeared or melted panels.\n- Fit looks natural at shoulders, waist, sleeves, and hem — no obvious floating or clipping.\n\n## Upstream person plate (before try-on)\n\nIf **`person_image`** was generated with **`p-image`**, confirm [p-image-quality-checklist.md](./p-image-quality-checklist.md) passed first — mushy or synthetic plates produce mushy try-ons.\n\n- Photoreal editorial intent (not generic “fashion model white background” unless requested).\n- Cast and setting match the showcase brief when building public examples — generation-diversity.md#visual-variety (`generation-diversity`).\n\n## Pose and composition\n\n- When `reference_pose` was set, the output pose matches the reference closely enough for the use case.\n- When `reference_pose` was omitted, the person remains in a plausible stance for the garment type.\n- Framing and `preserve_input_size` behavior match the destination (PDP crop, full-body, etc.).\n\n## Turbo vs normal mode\n\n- If **`turbo: true`**, re-check every garment slot — turbo can miss items; retry in normal mode for final assets. Sweet spot **~4 pieces** in turbo.\n- With **more than 6 garments**, verify none were dropped or merged incorrectly; **7–8** is the upper reliable band before drop risk rises.\n\n## Non-flatlay / prompt (EXPERIMENTAL)\n\n- When `prompt` was used, only the named garments from the named images were applied.\n- No stray garments from multi-item reference photos leaked into the result.\n\n## Technical and handoff checks\n\n- Output dimensions and format match target use (`output_format`, `output_quality`).\n- No major artifacts (smears, duplicated limbs, warped fabric textures).\n- Result is ready for downstream `p-image-upscale`, `p-video`, or ecommerce handoff — or flagged for another pass.\n\nFile v1.0.12:references/p-image-upscale-guidance.md\n\n# p-image-upscale guidance\n\n`p-image-upscale` is **not** a creative prompt model. There is no text prompt — quality comes from the **source still** and param choices.\n\nQA: [p-image-upscale-quality-checklist.md](./p-image-upscale-quality-checklist.md).\n\n## Param craft\n\n| Field | Guidance |\n|-------|----------|\n| `target` | Megapixels 1–**128**. Print/billboard: 8–128. Mood boards: 4–16. Confirm cost/latency with the user. |\n| `enhance_details` | Sharpens micro-detail. Use when the plate is already clean. |\n| `enhance_realism` | Pushes photoreal texture. Can amplify plastic skin if the source is sloppy. |\n| `output_format` | Match delivery (`png` for lossless pipeline steps, `jpg` when size matters). |\n\n## When enhance helps vs hurts\n\n| Source | Enhance | Outcome |\n|--------|---------|---------|\n| Approved photoreal hero, pores visible | `enhance_details` on | Cleaner print plate |\n| Mushy CGI / AI-slop face | Either enhance flag | **Amplifies slop** — regenerate hero first |\n| Stylized anime / flat cel | Prefer details off or light | Avoid forcing photoreal pores on cel art |\n\n**Never** upscale to “fix” a rejected hero. Regenerate or edit, then upscale.\n\n## Pipeline placement\n\n| Workflow | Upscale? |\n|----------|----------|\n| Avatar / motion-transfer / replace | **No** unless user asks for print-scale stills — feed approved `p-image-ideogram` / `p-image` / edit URLs after slop gate |\n| Print, billboard, extreme crop | **Yes** — confirm `target` |\n| Before/after slider demos | Optional helper scripts — not a creative step |\n\n## Pre-send checklist\n\n- [ ] Source still already passed slop gate\n- [ ] `target` MP matches destination (not default-max “just in case”)\n- [ ] Enhance flags match medium (photoreal vs stylized)\n- [ ] User confirmed cost for high MP targets\n\nFile v1.0.12:references/p-image-upscale-quality-checklist.md\n\n# p-image-upscale quality checklist\n\nAfter each `p-image-upscale` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Resolution and detail\n\n- Effective detail increased versus source (not just larger dimensions).\n- Important features remain sharp (eyes, logos, product edges, text if intentionally present).\n- Chosen `target` MP is appropriate for destination (avatar plate ~4 MP; print up to 128 MP).\n\n## Fidelity to source\n\n- Geometry and identity are preserved (no face/product drift).\n- Colors and contrast stay within acceptable variance.\n- `enhance_realism` did not introduce unwanted style or texture changes.\n\n## Artifact scan\n\n- No haloing, ringing, oversharpening, or waxy/plastic skin textures.\n- No checkerboard/noise amplification in flat regions.\n- Output format and quality settings (`png`/`jpg`/`webp`) match delivery needs.\n\nFile v1.0.12:references/prompt-golden-rules.md\n\n# Image prompt golden rules (`p-image` / `p-image-edit`)\n\nProduction-grade still prompts for Pruna. **`p-image` has no prompt upsampling** — concrete language is the whole craft.\n\nTag structure, ritual seed, and diversity axes stay in `generation-diversity`. This page is the creative-director layer on top.\n\n**Sources:** patterns adapted from [smixs/visual-skills](https://github.com/smixs/visual-skills) (MIT) and [higgsfield-ai/skills](https://github.com/higgsfield-ai/skills) (MIT); rewritten for Pruna.\n\n## Before writing any prompt\n\n1. Complete the random seed ritual (`generation-diversity`) (SSoT).\n2. Name at least four clauses from explicit prompt structure (`generation-diversity`).\n3. Apply the rules below — then confirm `prompt` + `aspect_ratio` with the user.\n\n## Golden rules\n\n### 1. Lead with concrete subject + action\n\nName who/what and a frozen verb. Avoid mood-only openers.\n\n| Bad | Good |\n|-----|------|\n| `cool cyberpunk vibe, neon` | `Courier in rain-slick jacket vaults a puddle under kanji neon, wet asphalt reflections` |\n\n### 2. Positive framing only\n\nDescribe presence, not absence. Negation often invokes the thing you forbid.\n\n| Want | Write | Avoid |\n|------|-------|-------|\n| Empty street | `empty street, wide wet asphalt` | `street with no cars` |\n| Clean wall | `plain unmarked wall, matte paint` | `no text, no signs` |\n| Solo subject | `solo portrait, one person` | `no other people` |\n\nFull text hygiene: generation-diversity — text & typography (`generation-diversity`).\n\n### 3. Natural sentences over tag soup\n\n| Bad | Good |\n|-----|------|\n| `car, neon, city, night, 8k, masterpiece` | `Wide shot of a sports coupe speeding through a rainy Tokyo side street at night; neon reflecting on wet pavement and metal` |\n\n### 4. Be specific (hex, materials, placement)\n\n| Element | Vague | Specific |\n|---------|-------|----------|\n| Subject | `a woman` | `elderly jazz singer in a sequined shawl, mid-laugh` |\n| Material | `shiny` | `brushed steel with matte black grips` |\n| Color | `dark green` | `#0d3d2d deep emerald` |\n| Placement | `on the right` | `right third of frame, subject bleeding off edge` |\n\n### 5. Typography on surfaces\n\nReadable copy is **static text on a surface** — not spoken dialogue (that is `p-video` Mode A → `video-prompting`).\n\n**Template** (placeholders in square brackets are docs notation, not prompt syntax):\n\n```text\nTypography:\n[surface]: \"[EXACT STRING]\" in [weight], [color or hex], [placement in frame]\n```\n\nRules:\n\n- Put exact copy in **double quotes** — never paraphrase\n- Always name **surface** + **placement** (upper third, lower right of display, centered on label)\n- Add weight/color when it matters (bold condensed sans, cream #hex)\n- One primary text element per still unless the user wants a layout brief\n- Default: no readable copy — generation-diversity text hygiene (`generation-diversity`)\n- Prefer scenes without dense typography — `p-image` is weak at multi-line UI copy\n- **Not** spoken dialogue (`[subject] says \"…\"`) — use `p-video` Mode A\n- **Not** square-bracket `[tags]` — those are Gemini TTS performance tags only; stills use quoted strings\n\n### 6. Params stay outside the prompt\n\nNever put model name, `aspect_ratio`, resolution, duration, or API field names in the prompt string. Those belong in `input` JSON.\n\n### 7. Edit, don't re-roll\n\nIf a still is ~80% right, use `p-image-edit` with a surgical change (`Change background to soft #e8e4dc gradient, keep subject identical`) instead of regenerating from scratch.\n\n### 8. One world / genre anchor max\n\nUse **one** high-level anchor, then concrete details:\n\n| Type | Example |\n|------|---------|\n| Era + place | `Havana, 1957` + linen suit, harsh noon sun under awning |\n| Cultural / style | `Studio Ghibli mood` + moss stones, morning mist, monk sweeping |\n| Genre look | `documentary portrait, natural skin pores` |\n\nDo **not** stack genre anchors (`Wes Anderson + Lindbergh + Ghibli` → mush).\n\n## Banned filler (strip before send)\n\nThese add heat without rendering: `masterpiece`, `best quality`, `8k`, `4k`, `ultra detailed`, `stunning`, `epic`, `beautiful lighting`, bare `cinematic` with no camera/light nouns.\n\nReplace with concrete camera + light from `video-prompting` or diversity `camera_tag` / `lighting_tag`.\n\nPhotoreal anti-slop lock when needed: generation-diversity — photoreal anti-slop (`generation-diversity`).\n\n## Continuity handoffs\n\n| Goal | Path |\n|------|------|\n| Same face across many stills | [character-turnaround-sheet.md](./character-turnaround-sheet.md) → scene stills → I2V |\n| Talking-head / avatar cast | [realistic-persona-showcase.md](./realistic-persona-showcase.md) + avatar prompt templates |\n| Start/end plates for video | `video-prompting` / `video-prompting` |\n\n## Pre-send checklist\n\n- [ ] Ritual seed stated; axes logged\n- [ ] Subject + action + setting named (no mood-only prompt)\n- [ ] Positive framing; no `no text` / `without X`\n- [ ] Hex or named materials where color matters\n- [ ] On-image copy: quoted string + surface + placement (if any)\n- [ ] No API params inside the prompt string\n- [ ] At most one genre/era anchor + concrete details\n- [ ] No banned filler words\n\nFile v1.0.12:references/realistic-persona-example-prompt.md\n\n# Dynamic persona — example prompts\n\nCross-model examples for **`p-image`** scenario plates → optional **`p-image-try-on`** → **`p-video-avatar`**.\n\n**Before every curl:** random seed ritual (`generation-diversity`) (SSoT) + `generation-diversity` — state ritual string and derive axes; **omit API `seed`** unless user sets `api_seed`.\n\nFull ladders and 8-slot matrix: [realistic-persona-showcase.md](./realistic-persona-showcase.md).\n\n## 1. Photoreal documentary (`p-image`) — avatar-ready\n\n```bash\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 '{\n    \"input\": {\n      \"prompt\": \"Photorealistic documentary portrait photograph of a real person, not CGI. Man early 30s Black, short fade haircut, charcoal henley, creative loft exposed brick and teal window bokeh, slight low angle chest-up, soft overcast daylight, mouth clearly visible ready to speak, natural skin pores, horizontal wide framing, single subject one frame\",\n      \"aspect_ratio\": \"16:9\"\n    }\n  }'\n```\n\nPlan fields: `render_medium_tag: photoreal`, `visual_style_tag: documentary`, `camera_tag: low_angle_mc`, `setting_tag: loft_brick`.\n\n## 2. Premium cinematic cel anime (`p-image`) — avatar host\n\n```bash\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 '{\n    \"input\": {\n      \"prompt\": \"Premium anime cinematic young woman hero, cel-shaded film look, violet hair, iridescent jacket, cherry-blossom rooftop at dusk with neon color bokeh, low heroic angle from the side, mouth visible mid-speech, bright clear evening atmosphere, classic portrait framing, single character one frame\",\n      \"aspect_ratio\": \"4:3\"    }\n  }'\n```\n\nPlan fields: `render_medium_tag: cel_anime_2d`, `visual_style_tag: anime_cinematic`, `camera_tag: low_angle_hero`, `setting_tag: rooftop_dusk`.\n\n## 3. Claymation presenter (`p-image`)\n\n```text\nStop-motion claymation character woman presenter, visible clay texture, chunky knit scarf, round glasses,\nminiature handmade cozy living room set with tiny lamp and bookshelf, medium close-up,\nmouth sculpted for speech, warm practical stop-motion desk-lamp lighting, single character one frame.\n```\n\nPlan fields: `render_medium_tag: stop_motion_3d`, `visual_style_tag: clay_stop_motion`, `setting_tag: clay_living_room`.\n\n## 4. High-angle editorial fashion (`p-image`) — try-on canvas\n\n```text\nPhotoreal fashion lookbook, man early 30s East Asian, short styled hair, shirtless,\nstanding hands in pockets, seamless off-white studio floor, high angle from above,\neven soft studio light, full body head to shoes visible, single subject one frame.\n```\n\nUse as **`person_image`** for complex suit try-on — see [p-image-try-on-quality-checklist.md](p-image-try-on-quality-checklist.md).\n\n## 5. Scene variant (`p-image-edit`) — same identity, new angle + world\n\n```text\nUsing the attached reference as identity — keep exact same person, face, skin texture, photoreal quality.\nRooftop at dusk, city lights bokeh, side angle chest-up, mouth unobstructed, cobalt hoodie,\nclosed hardcover notebook at chest, warm golden rim light on hair, 9:16 single subject one frame.\n```\n\nChange **only** `setting_tag`, `camera_tag`, and wardrobe delta — not identity.\n\n## 6. Dynamic avatar — photoreal UGC\n\nReuse **approved hero plate URL**. Unique **`video_prompt`** per scene.\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-video-avatar' \\\n  -d '{\n    \"input\": {\n      \"image\": \"https://api.pruna.ai/v1/files/APPROVED_STILL_ID\",\n      \"voice_script\": \"Hey — we put the patchwork set on a real street plate, not a white studio. Face and background stayed put.\",\n      \"voice\": \"Puck (Male)\",\n      \"voice_language\": \"English (US)\",\n      \"voice_prompt\": \"Natural UGC creator tone, relaxed pacing, honest not salesy.\",\n      \"video_prompt\": \"Low angle handheld sway, subtle arc left, glance to notebook then back to lens\",\n      \"resolution\": \"720p\"    }\n  }'\n```\n\n## 7. Dynamic avatar — cinematic cel host\n\n```bash\ncurl -X POST 'https://api.pruna.ai/v1/predictions' \\\n  -H 'Content-Type: application/json' -H \"apikey: ${PRUNA_API_KEY}\" \\\n  -H 'Model: p-video-avatar' \\\n  -d '{\n    \"input\": {\n      \"image\": \"https://api.pruna.ai/v1/files/ANIME_STILL_ID\",\n      \"voice_script\": \"So — same motion grammar, totally different world. That is the point of planning each scene.\",\n      \"voice\": \"Zephyr (Female)\",\n      \"voice_language\": \"English (US)\",\n      \"voice_prompt\": \"Warm anime protagonist delivery, expressive but natural, not exaggerated dub energy.\",\n      \"video_prompt\": \"Low heroic angle, subtle head tilt, confident smile building mid-line\",\n      \"resolution\": \"720p\"    }\n  }'\n```\n\n## 8. Fashion try-on → avatar (three-step)\n\n| Step | Action |\n|------|--------|\n| A | **`p-image`** full-body street plate |\n| B | **`p-image-try-on`** patchwork stack, `turbo: false` |\n| C | **`p-video-avatar`** — script references outfit naturally |\n\n## 9. Eight-slot scenario matrix (playground gallery)\n\nWhen publishing a public set, cover **medium × angle × setting × aspect_ratio** — not one look:\n\n| Slot | Medium | Style | Camera | Setting | `aspect_ratio` |\n|------|--------|-------|--------|---------|----------------|\n| 1 | photoreal | documentary | low_angle_mc | loft_brick | `2:3` |\n| 2 | photoreal | editorial_fashion | high_angle_full | plaster_floor | `16:9` |\n| 3 | photoreal | street_ugc | side_angle | mirror_selfie_night | `9:16` |\n| 4 | cel_anime_2d | anime_cinematic | low_angle_hero | rooftop_dusk | `4:3` |\n| 5 | cel_anime_2d | cyberpunk_anime | side_angle | neon_alley | `3:4` |\n| 6 | stop_motion_3d | clay_stop_motion | medium_cu | clay_living_room | `1:1` |\n| 7 | cg_3d_film | fairy_tale_3d | medium_cu | enchanted_garden | `3:2` |\n| 8 | photoreal | cinematic_film | extreme_cu | golden_hour_field | `2:3` |\n\nEach slot: distinct **`cast_descriptor`** and **`aspect_ratio`**. Avatar slots: unique **`video_prompt`**.\n\nFull rules: [realistic-persona-showcase.md](./realistic-persona-showcase.md) · generation-diversity.md#visual-variety (`generation-diversity`).\n\nArchive v1.0.11: 15 files, 28705 bytes\n\nFiles: references/character-turnaround-sheet.md (4272b), references/p-image-edit-prompting.md (3966b), references/p-image-edit-quality-checklist.md (1008b), references/p-image-quality-checklist.md (1973b), references/p-image-try-on-prompting.md (2051b), references/p-image-try-on-quality-checklist.md (3495b), references/p-image-upscale-guidance.md (1793b), references/p-image-upscale-quality-checklist.md (998b), references/prompt-golden-rules.md (5200b), references/realistic-persona-example-prompt.md (6298b), references/realistic-persona-showcase.md (20830b), skill-card.md (2745b), skill.manifest.json (439b), SKILL.md (5523b), _meta.json (135b)\n\nFile v1.0.11:SKILL.md\n\n---\nname: image-prompting\ndescription: Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas.\nlicense: MIT\nmetadata:\n  version: \"1.0.11\"\n  package: pruna-skills\n---\n\n# Image prompting\n\nVendor-neutral craft for **still-image** generation and editing. Works with Pruna `p-image` family, Flux, Midjourney, Ideogram, Stable Diffusion, and similar APIs.\n\n## Install\n\n| Skill | Description | Install |\n| --- | --- | --- |\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| `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\n## When to use\n\n- Writing photo generation prompts\n- Building character identity / turnaround sheets\n- Surgical edits (change/keep discipline)\n- Virtual try-on garment prompts\n- Photoreal or stylized persona plates for avatars\n\n## Works with\n\nPruna `p-image` (simple quick photos), `p-image-ideogram` (controlled photo generation — text, JSON, hex/bbox), `p-image-edit` / `p-image-try-on` / `p-image-upscale`, Flux, Midjourney, Ideogram, SDXL, and other still models.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `video-prompting` | Use when crafting video or motion prompts for any generative model — dramaturgy, camera, physics-safe motion, frame anchors, and clip chaining. | `npx skills add PrunaAI/pruna-skills@video-prompting -y` |\n| `audio-prompting` | Use when crafting TTS, music, or bed prompts for any generative audio model — director style, song structure, and post-production layering. | `npx skills add PrunaAI/pruna-skills@audio-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| `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\n## Guide habit\n\nIn the **first reply**, name `` `image-prompting` `` in backticks. When aspect, resolution, or media source are open, open intake → **`generation-diversity`** clarification intake. For Pruna still calls, cite the reading order: `generation-diversity` (ritual + **still-image prompt flow** reference) → golden rules → model-specific reference below.\n\n## Before generating\n\n1. Follow `generation-diversity` first — for `p-image-ideogram` / `p-image` / `p-image-edit`, run **still-image prompt flow** (brief lock → ritual → draft → fidelity check).\n2. **[Prompt golden rules](./references/prompt-golden-rules.md)** — positive framing, no banned filler, params outside the prompt string.\n3. Same character across shots → [character-turnaround-sheet.md](./references/character-turnaround-sheet.md).\n4. Edits → [p-image-edit-prompting.md](./references/p-image-edit-prompting.md).\n5. Try-on → [p-image-try-on-prompting.md](./references/p-image-try-on-prompting.md).\n6. Upscale params → [p-image-upscale-guidance.md](./references/p-image-upscale-guidance.md).\n7. Photoreal personas → [realistic-persona-showcase.md](./references/realistic-persona-showcase.md) · [realistic-persona-example-prompt.md](./references/realistic-persona-example-prompt.md).\n8. Validate with the matching `*-quality-checklist.md` in `./references/`.\n\nComplex edits and multi-ref composition: see **Worked example — three-reference composite** in [p-image-edit-prompting.md](./references/p-image-edit-prompting.md).\n\n## Pruna tools\n\nMatching install for every model named above. Pick what you need:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `p-image-ideogram` | Use when photo generation needs more control — photoreal results, text in the image, or structured JSON with hex colors and bounding boxes. Simpler photo generation, edits, and video use other skills in the suite. | `npx skills add PrunaAI/pruna-skills@p-image-ideogram -y` |\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| `p-image-try-on` | Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce. | `npx skills add PrunaAI/pruna-skills@p-image-try-on -y` |\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| `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\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"image-prompting\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1788444297474\n}\n\nFile v1.0.11:references/character-turnaround-sheet.md\n\n# Character turnaround sheet (`p-image` → I2V)\n\nReusable identity plates before scene stills and video. Use when the brief needs the **same character** across multiple shots, not a one-off hero.\n\nTalking-head cast ledgers and voice locks stay in avatar-multi-scene prompt-templates (`avatar-multi-scene`) and [realistic-persona-showcase.md](./realistic-persona-showcase.md). This page is the **visual turnaround** handoff.\n\n**Sources:** patterns adapted from [Square-Zero-Labs/video-prompting-skill](https://github.com/Square-Zero-Labs/video-prompting-skill) (Apache-2.0); rewritten for Pruna.\n\n## Handoff order\n\n```text\n1. Character turnaround sheet  (p-image or multi-panel edit)\n2. Scene stills                (p-image-edit from sheet / hero)\n3. Video                       (p-video pair/triple — motion only)\n```\n\nDo not invent a new face in step 2. Lock identity from the sheet (or a single approved hero plate) and change only pose, camera, wardrobe state, or background beat.\n\n## Sheet types\n\n| Type | When | Prompt focus |\n|------|------|--------------|\n| **Turnaround** | Stylized or invented characters | Front, 3⁄4, profile, back — same outfit, neutral studio |\n| **Expression row** | Performance / avatar prep | Same face + lighting; **distinct** emotions; include open-mouth for lip-sync |\n| **Photoreal identity** | Real-person consistency | Same person photographed repeatedly; keep asymmetry, pores, age cues |\n| **Wardrobe update** | Outfit change only | Same face/session framing; change clothes only |\n\n## Turnaround prompt skeleton\n\n```text\nCharacter turnaround sheet of [named character], [age/build/species], wearing [exact outfit].\nFour panels on one image: front view, three-quarter view, side profile, back view.\nIdentical face and costume in every panel. Neutral seamless studio backdrop #c8c8c8,\neven softbox lighting, no story background, no props that change between panels.\n[render style — e.g. documentary photoreal / cel-shaded anime]. Exact same character in every panel.\n```\n\n### Expression sheet add-on\n\n```text\nExpression row below: neutral, warm smile, concerned frown, surprised open mouth ready to speak.\nEach expression clearly different. Mouth visible in every panel. Same lighting and camera height.\n```\n\n### Photoreal identity sheet\n\n```text\nPhotoreal identity reference sheet of the same person photographed repeatedly in a studio.\nPreserve freckles, asymmetric smile, skin texture, and eye color exactly.\nFront and three-quarter views, soft window light, plain backdrop, no beauty retouching.\n```\n\n## Rules\n\n1. **Neutral backdrop** — no narrative locations on the sheet (story backgrounds come in scene stills).\n2. **Exact same character** language every time — models drift identity without it.\n3. **Distinct expressions** — “slightly different smiles” collapses; name emotion + mouth state.\n4. **One `style_bible`** — append the same medium/palette lock used in downstream edits and video.\n5. **Params outside prompt** — aspect ratio and model stay in API `input`, not the text.\n6. **Edit, don’t re-roll** — wardrobe or hair tweaks via `p-image-edit` from the locked sheet URL.\n\n## Scene stills from the sheet\n\n| Still | Source | Notes |\n|-------|--------|-------|\n| Hero / start | Sheet panel or locked hero URL | Match scene-anchor (`video-prompting`) OPENING composition |\n| End | Start + `last_frame_edit_prompt` | Same subject in frame; physically reachable pose |\n| Video | Motion-only `video_prompt` | Do not redescribe the face — see `video-prompting` |\n\nIdentity lock line for edits:\n\n```text\nsame [character name], identical face and costume, do not change species or age\n```\n\n## Anti-patterns\n\n| Avoid | Why |\n|-------|-----|\n| Story background on the sheet | Locks the character into one location |\n| Vague “consistent character” with no views | Model invents a new face per shot |\n| Same expression labeled three ways | No usable performance range |\n| Regenerating the photo each scene | Identity drift |\n| Mixing photoreal sheet with anime scene stills | Medium break mid-pipeline |\n\n## Related\n\n- Still craft: [prompt-golden-rules.md](./prompt-golden-rules.md)\n- Pair / triple stills: `video-prompting`, `video-prompting`\n- Avatar multi-scene cast table: `avatar-multi-scene`\n\nFile v1.0.11:references/p-image-edit-prompting.md\n\n# p-image-edit prompting\n\nSurgical edit prompts for `p-image-edit`. Shared still craft: [prompt-golden-rules.md](./prompt-golden-rules.md). Identity sheets: [character-turnaround-sheet.md](./character-turnaround-sheet.md).\n\n## Core formula\n\n```text\nChange [specific thing]. Keep [identity / medium / lighting era] identical.\n```\n\n| Do | Don't |\n|----|-------|\n| `Change background to soft #e8e4dc gradient, keep subject identical` | `Make it better` |\n| `Same woman, identical face and coat; turn torso 30° toward camera` | `Regenerate in a new pose` (prefer edit from locked URL) |\n| Name which ref: `face from image 1, outfit from image 2` | Vague `combine these images` |\n\n## Identity lock (required when subject continues)\n\nAppend when the person/product must survive the edit:\n\n```text\nsame [subject], identical face/uniform, do not remove the person, do not change species or age\n```\n\nPrefer editing a locked photo or turnaround plate over running photo generation again.\n\n## Typography edits\n\nChange readable copy on a surface — not spoken dialogue (that is `p-video` Mode A). Full still rules: [prompt-golden-rules.md](./prompt-golden-rules.md) §5.\n\n```text\nChange [surface] text to \"[EXACT STRING]\" in [weight], [placement]. Keep subject and lighting identical.\n```\n\nQuote the exact string; name surface + placement. Do not use Gemini TTS `[tags]` here.\n\n## Scene-anchor stills (pair / triple)\n\n| Plan field | Prefix | Role |\n|------------|--------|------|\n| `edit_prompt` | `OPENING:` or `OPEN:` | Start composition |\n| `last_frame_edit_prompt` | `CLOSING:` or `CLOSE:` | End composition — physically reachable from start |\n\nRules: `video-prompting` · `video-prompting`.\n\n- Subject must appear in **both** stills when the beat follows that subject.\n- Change only pose, camera, background beat, or prop state — not medium mid-scene.\n- Append the shared `style_bible` to every edit.\n\n## Multi-reference composition\n\nIndex refs by role:\n\n```text\nUse face and hair from image 1. Outfit from image 2. Place subject in the cafe interior from image 3.\nMatch lighting to image 3. Keep face identical to image 1.\n```\n\nMax 5 images on `p-image-edit`.\n\n## Turbo\n\n| Setting | When |\n|---------|------|\n| `turbo: true` (default) | Simple background / color / light tweaks |\n| `turbo: false` | Hard identity preserves, multi-ref composites, scene-anchor CLOSING plates that drop subjects |\n\n## Edit, don't re-roll\n\nIf the still is ~80% right, edit surgically. Regenerating the photo drifts identity and wastes the approved plate.\n\n## Worked example — three-reference composite\n\nUser lock: face from portrait ref, navy blazer from product flat-lay, cafe interior from location still. Keep face identical.\n\n```text\nUse face and hair from image 1. Outfit from image 2 (navy blazer, white tee). Place subject seated at the window table from image 3.\nMatch warm afternoon lighting to image 3. Keep face identical to image 1; same woman, do not change age or species.\nChange nothing except outfit and background — keep pose from image 1.\n```\n\n`turbo: false` — hard multi-ref composite. Upload all three via `POST /v1/files` before `POST /v1/predictions`.\n\n## Good / bad\n\n**Good**\n\n```text\nOPENING: Wide alley, same courier in rain jacket small in frame, neon kanji, wet asphalt — style lock appended\n```\n\n```text\nCLOSING: Same courier, identical face and jacket, closer in frame, hand on railing, do not remove the person\n```\n\n**Bad**\n\n```text\nMake it more cinematic and epic\n```\n\n```text\nCLOSING: Empty rooftop view at night\n```\n(drops subject)\n\n## Pre-send checklist\n\n- [ ] Golden rules applied (positive framing, no banned filler)\n- [ ] Change + keep clauses present\n- [ ] Identity lock when continuity matters\n- [ ] OPENING/CLOSING prefixes for anchor stills\n- [ ] `turbo` chosen for edit difficulty\n- [ ] Params (`aspect_ratio`, etc.) outside the prompt string\n\nValidate outputs: [p-image-edit-quality-checklist.md](./p-image-edit-quality-checklist.md).\n\nFile v1.0.11:references/p-image-edit-quality-checklist.md\n\n# p-image-edit quality checklist\n\nAfter each `p-image-edit` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Edit intent and preservation\n\n- Requested change is present and obvious.\n- Locked regions remain stable (identity, product geometry, key wardrobe/details).\n- \"Change only X\" constraints are respected; unrelated regions do not drift.\n\n## Multi-image composition (when used)\n\n- Source images blend coherently (lighting, scale, perspective).\n- Subject edges are clean (no obvious cutout seams or ghosting).\n- Final composition reads as one scene, not pasted layers.\n\n## Technical and handoff checks\n\n- Output dimensions and `aspect_ratio` match target use.\n- Artifacts introduced by edit are absent (smears, repeated textures, malformed hands/faces).\n- Result is ready for downstream `p-video` / `p-video-avatar`, or flagged for another pass.\n\nFile v1.0.11:references/p-image-quality-checklist.md\n\n# p-image quality checklist\n\nAfter each `p-image` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Composition and prompt fidelity\n\n- Main subject and action match the prompt intent.\n- Framing and `aspect_ratio` fit destination (`9:16`, `16:9`, etc.).\n- Style bible is present and respected (no unrequested style drift).\n\n## Persona plates (avatar / try-on / showcase)\n\nWhen the output feeds **`p-video-avatar`**, **`p-image-try-on`**, or a public example set:\n\n- **Style tagged** — matches planned `visual_style_tag` / `render_medium_tag` (photoreal, cel anime, clay, etc.).\n- **Photoreal intent** (when photoreal) — natural skin texture; not waxy CGI unless stylized brief.\n- **Cast specificity** — matches planned age, ethnicity, archetype — not generic “model”.\n- **Dynamic world** — unique `setting_tag`; named lighting; **distinct `camera_tag`**; **distinct `aspect_ratio`** in multi-example batches — not default MC facing camera every row.\n- **Avatar-ready** (when lip-sync next) — face large; mouth clearly visible; hands not covering mouth.\n- **Try-on-ready** (when dressing next) — body regions for garment types visible (full-body, feet, head as needed).\n- **`seed`** recorded when identity continues downstream.\n\nScenario matrix and style ladders: [realistic-persona-showcase.md](./realistic-persona-showcase.md).\n\n## Visual integrity\n\n- No major anatomy defects (extra fingers, warped limbs, broken symmetry where it matters).\n- No obvious rendering artifacts (mush textures, duplicated objects, clipped elements).\n- Background supports the scene and does not distract from the subject.\n\n## Cleanliness and delivery\n\n- No accidental logos, watermarks, UI elements, or stray text unless requested.\n- Image is acceptable as-is or marked for `p-image-edit` / `p-image-upscale` next.\n\nFile v1.0.11:references/p-image-try-on-prompting.md\n\n# p-image-try-on prompting\n\nWhen and how to use the experimental **`prompt`** on `p-image-try-on`. Upstream person plates: [realistic-persona-showcase.md](./realistic-persona-showcase.md). QA: [p-image-try-on-quality-checklist.md](./p-image-try-on-quality-checklist.md).\n\n## Default: leave `prompt` empty\n\n| Garment input | `prompt` |\n|---------------|----------|\n| Flat-lay / packshot (one clear item) | **Omit** — best default |\n| Single clear garment on white | **Omit** |\n| On-model / lifestyle / multi-item frame | **Set** — disambiguate which garment |\n| Multiple garments in one image | **Set** — name items + image index |\n\nTry-on is **image-led**. The prompt does not invent fashion — it only points at which garment from which ref.\n\n## Disambiguation patterns\n\n```text\nthe green t-shirt from image 1 and the trousers from image 2\n```\n\n```text\nthe black leather jacket worn by the model in image 1 — ignore the jeans\n```\n\n```text\nonly the red sneakers from image 2\n```\n\nRules:\n\n- Index refs the same way the API lists `garment_images` (image 1 = first URL).\n- Name **color + garment type**; avoid marketing adjectives (`iconic`, `premium`).\n- Do not write full scene/fashion-editorial prompts here — that belongs on the person plate (`p-image`).\n\n## Upstream plate caps quality\n\nBad person plates → bad try-on. Fix with photoreal `p-image` (golden rules + persona showcase), then try-on, then optional upscale/avatar.\n\nAnti-slop: no white-background-only demos, no mushy CGI faces, rotate cast/settings per generation-diversity.md#visual-variety (`generation-diversity`).\n\n## `reference_pose`\n\nOptional second person URL — output pose follows that reference. Keep `prompt` focused on **garment choice**, not pose description.\n\n## Pre-send checklist\n\n- [ ] Flat-lay? Prompt empty\n- [ ] Multi-item or on-model? Prompt names color + item + image index\n- [ ] Person plate approved (mouth/body region visible for garment type)\n- [ ] Garment count within multi-garment limits (≤6 finals)\n- [ ] No creative scene prose in `prompt`\n\nFile v1.0.11:references/p-image-try-on-quality-checklist.md\n\n# p-image-try-on quality checklist\n\nAfter each `p-image-try-on` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Scene preservation (garment-only edit)\n\nThe model should change **clothing only**. Fail if the plate’s world drifted:\n\n- Face structure, skin tone, and expression match **`person_image`**.\n- Hair length, color, and style unchanged (unless headwear was requested).\n- Background, props, and scene geometry preserved (floor texture, street context) — **except** mirror reflections, which often keep the base outfit while the subject updates; reject mirror plates for try-on marketing.\n- Lighting direction and shadow mood consistent with the plate.\n- Pose and limb positions preserved (or match **`reference_pose`** when set).\n\nSee [realistic-persona-showcase.md](./realistic-persona-showcase.md#preservation-checklist-the-models-differentiator). Quality bar: [p-image-try-on-quality-checklist.md](./p-image-try-on-quality-checklist.md).\n\n## Garment fit and identity\n\n- Each requested garment appears on the person (correct category — see supported types in `p-image-try-on`).\n- **One item per body spot:** competing garments on the same region (socks + shoes) — only one expected; flag if the wrong one won.\n- Unsupported / omitted garment types were not silently dropped without the user knowing (check logs / re-run with supported refs only).\n- Garment color, pattern, logos, and key details match the reference (within reasonable lighting variance).\n- **Complex garments:** patchwork panels, collaged prints, pleats, and color-blocks align at seams — no smeared or melted panels.\n- Fit looks natural at shoulders, waist, sleeves, and hem — no obvious floating or clipping.\n\n## Upstream person plate (before try-on)\n\nIf **`person_image`** was generated with **`p-image`**, confirm [p-image-quality-checklist.md](./p-image-quality-checklist.md) passed first — mushy or synthetic plates produce mushy try-ons.\n\n- Photoreal editorial intent (not generic “fashion model white background” unless requested).\n- Cast and setting match the showcase brief when building public examples — generation-diversity.md#visual-variety (`generation-diversity`).\n\n## Pose and composition\n\n- When `reference_pose` was set, the output pose matches the reference closely enough for the use case.\n- When `reference_pose` was omitted, the person remains in a plausible stance for the garment type.\n- Framing and `preserve_input_size` behavior match the destination (PDP crop, full-body, etc.).\n\n## Turbo vs normal mode\n\n- If **`turbo: true`**, re-check every garment slot — turbo can miss items; retry in normal mode for final assets. Sweet spot **~4 pieces** in turbo.\n- With **more than 6 garments**, verify none were dropped or merged incorrectly; **7–8** is the upper reliable band before drop risk rises.\n\n## Non-flatlay / prompt (EXPERIMENTAL)\n\n- When `prompt` was used, only the named garments from the named images were applied.\n- No stray garments from multi-item reference photos leaked into the result.\n\n## Technical and handoff checks\n\n- Output dimensions and format match target use (`output_format`, `output_quality`).\n- No major artifacts (smears, duplicated limbs, warped fabric textures).\n- Result is ready for downstream `p-image-upscale`, `p-video`, or ecommerce handoff — or flagged for another pass.\n\nFile v1.0.11:references/p-image-upscale-guidance.md\n\n# p-image-upscale guidance\n\n`p-image-upscale` is **not** a creative prompt model. There is no text prompt — quality comes from the **source still** and param choices.\n\nQA: [p-image-upscale-quality-checklist.md](./p-image-upscale-quality-checklist.md).\n\n## Param craft\n\n| Field | Guidance |\n|-------|----------|\n| `target` | Megapixels 1–**128**. Print/billboard: 8–128. Mood boards: 4–16. Confirm cost/latency with the user. |\n| `enhance_details` | Sharpens micro-detail. Use when the plate is already clean. |\n| `enhance_realism` | Pushes photoreal texture. Can amplify plastic skin if the source is sloppy. |\n| `output_format` | Match delivery (`png` for lossless pipeline steps, `jpg` when size matters). |\n\n## When enhance helps vs hurts\n\n| Source | Enhance | Outcome |\n|--------|---------|---------|\n| Approved photoreal hero, pores visible | `enhance_details` on | Cleaner print plate |\n| Mushy CGI / AI-slop face | Either enhance flag | **Amplifies slop** — regenerate hero first |\n| Stylized anime / flat cel | Prefer details off or light | Avoid forcing photoreal pores on cel art |\n\n**Never** upscale to “fix” a rejected hero. Regenerate or edit, then upscale.\n\n## Pipeline placement\n\n| Workflow | Upscale? |\n|----------|----------|\n| Avatar / motion-transfer / replace | **No** unless user asks for print-scale stills — feed approved `p-image` / edit URLs after slop gate |\n| Print, billboard, extreme crop | **Yes** — confirm `target` |\n| Before/after slider demos | Optional helper scripts — not a creative step |\n\n## Pre-send checklist\n\n- [ ] Source still already passed slop gate\n- [ ] `target` MP matches destination (not default-max “just in case”)\n- [ ] Enhance flags match medium (photoreal vs stylized)\n- [ ] User confirmed cost for high MP targets\n\nFile v1.0.11:references/p-image-upscale-quality-checklist.md\n\n# p-image-upscale quality checklist\n\nAfter each `p-image-upscale` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Resolution and detail\n\n- Effective detail increased versus source (not just larger dimensions).\n- Important features remain sharp (eyes, logos, product edges, text if intentionally present).\n- Chosen `target` MP is appropriate for destination (avatar plate ~4 MP; print up to 128 MP).\n\n## Fidelity to source\n\n- Geometry and identity are preserved (no face/product drift).\n- Colors and contrast stay within acceptable variance.\n- `enhance_realism` did not introduce unwanted style or texture changes.\n\n## Artifact scan\n\n- No haloing, ringing, oversharpening, or waxy/plastic skin textures.\n- No checkerboard/noise amplification in flat regions.\n- Output format and quality settings (`png`/`jpg`/`webp`) match delivery needs.\n\nFile v1.0.11:references/prompt-golden-rules.md\n\n# Image prompt golden rules (`p-image` / `p-image-edit`)\n\nProduction-grade still prompts for Pruna. **`p-image` has no prompt upsampling** — concrete language is the whole craft.\n\nTag structure, ritual seed, and diversity axes stay in `generation-diversity`. This page is the creative-director layer on top.\n\n**Sources:** patterns adapted from [smixs/visual-skills](https://github.com/smixs/visual-skills) (MIT) and [higgsfield-ai/skills](https://github.com/higgsfield-ai/skills) (MIT); rewritten for Pruna.\n\n## Before writing any prompt\n\n1. Complete the random seed ritual (`generation-diversity`) (SSoT).\n2. Name at least four clauses from explicit prompt structure (`generation-diversity`).\n3. Apply the rules below — then confirm `prompt` + `aspect_ratio` with the user.\n\n## Golden rules\n\n### 1. Lead with concrete subject + action\n\nName who/what and a frozen verb. Avoid mood-only openers.\n\n| Bad | Good |\n|-----|------|\n| `cool cyberpunk vibe, neon` | `Courier in rain-slick jacket vaults a puddle under kanji neon, wet asphalt reflections` |\n\n### 2. Positive framing only\n\nDescribe presence, not absence. Negation often invokes the thing you forbid.\n\n| Want | Write | Avoid |\n|------|-------|-------|\n| Empty street | `empty street, wide wet asphalt` | `street with no cars` |\n| Clean wall | `plain unmarked wall, matte paint` | `no text, no signs` |\n| Solo subject | `solo portrait, one person` | `no other people` |\n\nFull text hygiene: generation-diversity — text & typography (`generation-diversity`).\n\n### 3. Natural sentences over tag soup\n\n| Bad | Good |\n|-----|------|\n| `car, neon, city, night, 8k, masterpiece` | `Wide shot of a sports coupe speeding through a rainy Tokyo side street at night; neon reflecting on wet pavement and metal` |\n\n### 4. Be specific (hex, materials, placement)\n\n| Element | Vague | Specific |\n|---------|-------|----------|\n| Subject | `a woman` | `elderly jazz singer in a sequined shawl, mid-laugh` |\n| Material | `shiny` | `brushed steel with matte black grips` |\n| Color | `dark green` | `#0d3d2d deep emerald` |\n| Placement | `on the right` | `right third of frame, subject bleeding off edge` |\n\n### 5. Typography on surfaces\n\nReadable copy is **static text on a surface** — not spoken dialogue (that is `p-video` Mode A → `video-prompting`).\n\n**Template** (placeholders in square brackets are docs notation, not prompt syntax):\n\n```text\nTypography:\n[surface]: \"[EXACT STRING]\" in [weight], [color or hex], [placement in frame]\n```\n\nRules:\n\n- Put exact copy in **double quotes** — never paraphrase\n- Always name **surface** + **placement** (upper third, lower right of display, centered on label)\n- Add weight/color when it matters (bold condensed sans, cream #hex)\n- One primary text element per still unless the user wants a layout brief\n- Default: no readable copy — generation-diversity text hygiene (`generation-diversity`)\n- Prefer scenes without dense typography — `p-image` is weak at multi-line UI copy\n- **Not** spoken dialogue (`[subject] says \"…\"`) — use `p-video` Mode A\n- **Not** square-bracket `[tags]` — those are Gemini TTS performance tags only; stills use quoted strings\n\n### 6. Params stay outside the prompt\n\nNever put model name, `aspect_ratio`, resolution, duration, or API field names in the prompt string. Those belong in `input` JSON.\n\n### 7. Edit, don't re-roll\n\nIf a still is ~80% right, use `p-image-edit` with a surgical change (`Change background to soft #e8e4dc gradient, keep subject identical`) instead of regenerating from scratch.\n\n### 8. One world / genre anchor max\n\nUse **one** high-level anchor, then concrete details:\n\n| Type | Example |\n|------|---------|\n| Era + place | `Havana, 1957` + linen suit, harsh noon sun under awning |\n| Cultural / style | `Studio Ghibli mood` + moss stones, morning mist, monk sweeping |\n| Genre look | `documentary portrait, natural skin pores` |\n\nDo **not** stack genre anchors (`Wes Anderson + Lindbergh + Ghibli` → mush).\n\n## Banned filler (strip before send)\n\nThese add heat without rendering: `masterpiece`, `best quality`, `8k`, `4k`, `ultra detailed`, `stunning`, `epic`, `beautiful lighting`, bare `cinematic` with no camera/light nouns.\n\nReplace with concrete camera + light from `video-prompting` or diversity `camera_tag` / `lighting_tag`.\n\nPhotoreal anti-slop lock when needed: generation-diversity — photoreal anti-slop (`generation-diversity`).\n\n## Continuity handoffs\n\n| Goal | Path |\n|------|------|\n| Same face across many stills | [character-turnaround-sheet.md](./character-turnaround-sheet.md) → scene stills → I2V |\n| Talking-head / avatar cast | [realistic-persona-showcase.md](./realistic-persona-showcase.md) + avatar prompt templates |\n| Start/end plates for video | `video-prompting` / `video-prompting` |\n\n## Pre-send checklist\n\n- [ ] Ritual seed stated; axes logged\n- [ ] Subject + action + setting named (no mood-only prompt)\n- [ ] Positive framing; no `no text` / `without X`\n- [ ] Hex or named materials where color matters\n- [ ] On-image copy: quoted string + surface + placement (if any)\n- [ ] No API params inside the prompt string\n- [ ] At most one genre/era anchor + concrete details\n- [ ] No banned filler words\n\nFile v1.0.11:references/realistic-persona-example-prompt.md\n\n# Dynamic persona — example prompts\n\nCross-model examples for **`p-image`** scenario plates → optional **`p-image-try-on`** → **`p-video-avatar`**.\n\n**Before every curl:** random seed ritual (`generation-diversity`) (SSoT) + `generation-diversity` — state ritual string and derive axes; **omit API `seed`** unless user sets `api_seed`.\n\nFull ladders and 8-slot matrix: [realistic-persona-showcase.md](./realistic-persona-showcase.md).\n\n## 1. Photoreal documentary (`p-ima\n\nArchive v1.0.10: 15 files, 28994 bytes\n\nFiles: references/character-turnaround-sheet.md (4272b), references/p-image-edit-prompting.md (3966b), references/p-image-edit-quality-checklist.md (1008b), references/p-image-quality-checklist.md (1973b), references/p-image-try-on-prompting.md (2051b), references/p-image-try-on-quality-checklist.md (3495b), references/p-image-upscale-guidance.md (1793b), references/p-image-upscale-quality-checklist.md (998b), references/prompt-golden-rules.md (5200b), references/realistic-persona-example-prompt.md (6298b), references/realistic-persona-showcase.md (20830b), skill-card.md (3334b), skill.manifest.json (439b), SKILL.md (5523b), _meta.json (135b)\n\nArchive v1.0.9: 15 files, 28790 bytes\n\nFiles: references/character-turnaround-sheet.md (4272b), references/p-image-edit-prompting.md (3966b), references/p-image-edit-quality-checklist.md (1008b), references/p-image-quality-checklist.md (1973b), references/p-image-try-on-prompting.md (2051b), references/p-image-try-on-quality-checklist.md (3495b), references/p-image-upscale-guidance.md (1793b), references/p-image-upscale-quality-checklist.md (998b), references/prompt-golden-rules.md (5200b), references/realistic-persona-example-prompt.md (6298b), references/realistic-persona-showcase.md (20830b), skill-card.md (3177b), skill.manifest.json (439b), SKILL.md (5522b), _meta.json (134b)\n\nArchive v1.0.8: 15 files, 28600 bytes\n\nFiles: references/character-turnaround-sheet.md (4277b), references/p-image-edit-prompting.md (3955b), references/p-image-edit-quality-checklist.md (1008b), references/p-image-quality-checklist.md (1973b), references/p-image-try-on-prompting.md (2051b), references/p-image-try-on-quality-checklist.md (3495b), references/p-image-upscale-guidance.md (1793b), references/p-image-upscale-quality-checklist.md (998b), references/prompt-golden-rules.md (5200b), references/realistic-persona-example-prompt.md (6298b), references/realistic-persona-showcase.md (20830b), skill-card.md (3068b), skill.manifest.json (439b), SKILL.md (4973b), _meta.json (134b)\n\nArchive v1.0.7: 15 files, 28598 bytes\n\nFiles: references/character-turnaround-sheet.md (4277b), references/p-image-edit-prompting.md (3955b), references/p-image-edit-quality-checklist.md (1008b), references/p-image-quality-checklist.md (1973b), references/p-image-try-on-prompting.md (2051b), references/p-image-try-on-quality-checklist.md (3495b), references/p-image-upscale-guidance.md (1793b), references/p-image-upscale-quality-checklist.md (998b), references/prompt-golden-rules.md (5200b), references/realistic-persona-example-prompt.md (6298b), references/realistic-persona-showcase.md (20830b), skill-card.md (3110b), skill.manifest.json (439b), SKILL.md (4857b), _meta.json (134b)","readmeExcerpt":"Skill: image-prompting Owner: pruna-ai Summary: Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. 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:29:43.858Z | auto - Bumped version to 1.0.14 in SKILL.md metadata. - Removed the redundant skill-card.md file. - No functional or doc","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"1. Character turnaround sheet  (p-image or multi-panel edit)\n2. Scene stills                (p-image-edit from sheet / hero)\n3. Video                       (p-video pair/triple — motion only)"},{"language":"text","snippet":"Character turnaround sheet of [named character], [age/build/species], wearing [exact outfit].\nFour panels on one image: front view, three-quarter view, side profile, back view.\nIdentical face and costume in every panel. Neutral seamless studio backdrop #c8c8c8,\neven softbox lighting, no story background, no props that change between panels.\n[render style — e.g. documentary photoreal / cel-shaded anime]. Exact same character in every panel."},{"language":"text","snippet":"Expression row below: neutral, warm smile, concerned frown, surprised open mouth ready to speak.\nEach expression clearly different. Mouth visible in every panel. Same lighting and camera height."},{"language":"text","snippet":"Photoreal identity reference sheet of the same person photographed repeatedly in a studio.\nPreserve freckles, asymmetric smile, skin texture, and eye color exactly.\nFront and three-quarter views, soft window light, plain backdrop, no beauty retouching."},{"language":"text","snippet":"same [character name], identical face and costume, do not change species or age"},{"language":"text","snippet":"Change [specific thing]. Keep [identity / medium / lighting era] identical."}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: image-prompting\ndescription: Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas.\nlicense: MIT\nmetadata:\n  version: \"1.0.14\"\n  package: pruna-skills\n---\n\n# Image prompting\n\nVendor-neutral craft for **still-image** generation and editing. Works with Pruna `p-image` family, Flux, Midjourney, Ideogram, Stable Diffusion, and similar APIs.\n\n## Install\n\n| Skill | Description | Install |\n| --- | --- | --- |\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| `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\n## When to use\n\n- Writing photo generation prompts\n- Building character identity / turnaround sheets\n- Surgical edits (change/keep discipline)\n- Virtual try-on garment prompts\n- Photoreal or stylized persona plates for avatars\n\n## Works with\n\nPruna `p-image` (simple quick photos), `p-image-ideogram` (controlled photo generation — text, JSON, hex/bbox), `p-image-edit` / `p-image-try-on` / `p-image-upscale`, Flux, Midjourney, Ideogram, SDXL, and other still models.\n\n## When NOT to use\n\nUse a different skill instead:\n\n| Skill | Description | Install |\n| --- | --- | --- |\n| `video-prompting` | Use when crafting video or motion prompts for any generative model — dramaturgy, camera, physics-safe motion, frame anchors, and clip chaining. | `npx skills add PrunaAI/pruna-skills@video-prompting -y` |\n| `audio-prompting` | Use when crafting TTS, music, or bed prompts for any generative audio model — director style, song structure, and post-production layering. | `npx skills add PrunaAI/pruna-skills@audio-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| `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\n## Guide habit\n\nIn the **first reply**, name `` `image-prompting` `` in backticks. When aspect, resolution, or media source are open, open intake → **`generation-diversity`** clarification intake. For Pruna still calls, cite the reading order: `generation-diversity` (ritual + **still-image prompt flow** reference) → golden rules → model-specific reference below.\n\n## Before generating\n\n1. Follow `generation-diversity` first — for `p-image-ideogram` / `p-image` / `p-image-edit`, run **still-image prompt flow** (brief lock → ritual → draft → fidelity check).\n2. **[Prompt golden rules](./references/"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7cagwf7q3t0cxrgteb7xk0bh81j0eb\",\n  \"slug\": \"image-prompting\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1790695783858\n}"},{"path":"references/character-turnaround-sheet.md","content":"# Character turnaround sheet (`p-image` → I2V)\n\nReusable identity plates before scene stills and video. Use when the brief needs the **same character** across multiple shots, not a one-off hero.\n\nTalking-head cast ledgers and voice locks stay in avatar-multi-scene prompt-templates (`avatar-multi-scene`) and [realistic-persona-showcase.md](./realistic-persona-showcase.md). This page is the **visual turnaround** handoff.\n\n**Sources:** patterns adapted from [Square-Zero-Labs/video-prompting-skill](https://github.com/Square-Zero-Labs/video-prompting-skill) (Apache-2.0); rewritten for Pruna.\n\n## Handoff order\n\n```text\n1. Character turnaround sheet  (p-image or multi-panel edit)\n2. Scene stills                (p-image-edit from sheet / hero)\n3. Video                       (p-video pair/triple — motion only)\n```\n\nDo not invent a new face in step 2. Lock identity from the sheet (or a single approved hero plate) and change only pose, camera, wardrobe state, or background beat.\n\n## Sheet types\n\n| Type | When | Prompt focus |\n|------|------|--------------|\n| **Turnaround** | Stylized or invented characters | Front, 3⁄4, profile, back — same outfit, neutral studio |\n| **Expression row** | Performance / avatar prep | Same face + lighting; **distinct** emotions; include open-mouth for lip-sync |\n| **Photoreal identity** | Real-person consistency | Same person photographed repeatedly; keep asymmetry, pores, age cues |\n| **Wardrobe update** | Outfit change only | Same face/session framing; change clothes only |\n\n## Turnaround prompt skeleton\n\n```text\nCharacter turnaround sheet of [named character], [age/build/species], wearing [exact outfit].\nFour panels on one image: front view, three-quarter view, side profile, back view.\nIdentical face and costume in every panel. Neutral seamless studio backdrop #c8c8c8,\neven softbox lighting, no story background, no props that change between panels.\n[render style — e.g. documentary photoreal / cel-shaded anime]. Exact same character in every panel.\n```\n\n### Expression sheet add-on\n\n```text\nExpression row below: neutral, warm smile, concerned frown, surprised open mouth ready to speak.\nEach expression clearly different. Mouth visible in every panel. Same lighting and camera height.\n```\n\n### Photoreal identity sheet\n\n```text\nPhotoreal identity reference sheet of the same person photographed repeatedly in a studio.\nPreserve freckles, asymmetric smile, skin texture, and eye color exactly.\nFront and three-quarter views, soft window light, plain backdrop, no beauty retouching.\n```\n\n## Rules\n\n1. **Neutral backdrop** — no narrative locations on the sheet (story backgrounds come in scene stills).\n2. **Exact same character** language every time — models drift identity without it.\n3. **Distinct expressions** — “slightly different smiles” collapses; name emotion + mouth state.\n4. **One `style_bible`** — append the same medium/palette lock used in downstream edits and video.\n5. **Params outside prompt** — aspect ratio and model stay in A"},{"path":"references/p-image-edit-prompting.md","content":"# p-image-edit prompting\n\nSurgical edit prompts for `p-image-edit`. Shared still craft: [prompt-golden-rules.md](./prompt-golden-rules.md). Identity sheets: [character-turnaround-sheet.md](./character-turnaround-sheet.md).\n\n## Core formula\n\n```text\nChange [specific thing]. Keep [identity / medium / lighting era] identical.\n```\n\n| Do | Don't |\n|----|-------|\n| `Change background to soft #e8e4dc gradient, keep subject identical` | `Make it better` |\n| `Same woman, identical face and coat; turn torso 30° toward camera` | `Regenerate in a new pose` (prefer edit from locked URL) |\n| Name which ref: `face from image 1, outfit from image 2` | Vague `combine these images` |\n\n## Identity lock (required when subject continues)\n\nAppend when the person/product must survive the edit:\n\n```text\nsame [subject], identical face/uniform, do not remove the person, do not change species or age\n```\n\nPrefer editing a locked photo or turnaround plate over running photo generation again.\n\n## Typography edits\n\nChange readable copy on a surface — not spoken dialogue (that is `p-video` Mode A). Full still rules: [prompt-golden-rules.md](./prompt-golden-rules.md) §5.\n\n```text\nChange [surface] text to \"[EXACT STRING]\" in [weight], [placement]. Keep subject and lighting identical.\n```\n\nQuote the exact string; name surface + placement. Do not use Gemini TTS `[tags]` here.\n\n## Scene-anchor stills (pair / triple)\n\n| Plan field | Prefix | Role |\n|------------|--------|------|\n| `edit_prompt` | `OPENING:` or `OPEN:` | Start composition |\n| `last_frame_edit_prompt` | `CLOSING:` or `CLOSE:` | End composition — physically reachable from start |\n\nRules: `video-prompting` · `video-prompting`.\n\n- Subject must appear in **both** stills when the beat follows that subject.\n- Change only pose, camera, background beat, or prop state — not medium mid-scene.\n- Append the shared `style_bible` to every edit.\n\n## Multi-reference composition\n\nIndex refs by role:\n\n```text\nUse face and hair from image 1. Outfit from image 2. Place subject in the cafe interior from image 3.\nMatch lighting to image 3. Keep face identical to image 1.\n```\n\nMax 5 images on `p-image-edit`.\n\n## Turbo\n\n| Setting | When |\n|---------|------|\n| `turbo: true` (default) | Simple background / color / light tweaks |\n| `turbo: false` | Hard identity preserves, multi-ref composites, scene-anchor CLOSING plates that drop subjects |\n\n## Edit, don't re-roll\n\nIf the still is ~80% right, edit surgically. Regenerating the photo drifts identity and wastes the approved plate.\n\n## Worked example — three-reference composite\n\nUser lock: face from portrait ref, navy blazer from product flat-lay, cafe interior from location still. Keep face identical.\n\n```text\nUse face and hair from image 1. Outfit from image 2 (navy blazer, white tee). Place subject seated at the window table from image 3.\nMatch warm afternoon lighting to image 3. Keep face identical to image 1; same woman, do not change age or species.\nChange nothing except outfit and backgroun"},{"path":"references/p-image-edit-quality-checklist.md","content":"# p-image-edit quality checklist\n\nAfter each `p-image-edit` output is saved, **open the file and review it visually** against this checklist (agent vision review — see `generation-diversity`).\n\n## Applies to\n\nSee the canonical mapping in `generation-diversity`.\n\n## Edit intent and preservation\n\n- Requested change is present and obvious.\n- Locked regions remain stable (identity, product geometry, key wardrobe/details).\n- \"Change only X\" constraints are respected; unrelated regions do not drift.\n\n## Multi-image composition (when used)\n\n- Source images blend coherently (lighting, scale, perspective).\n- Subject edges are clean (no obvious cutout seams or ghosting).\n- Final composition reads as one scene, not pasted layers.\n\n## Technical and handoff checks\n\n- Output dimensions and `aspect_ratio` match target use.\n- Artifacts introduced by edit are absent (smears, repeated textures, malformed hands/faces).\n- Result is ready for downstream `p-video` / `p-video-avatar`, or flagged for another pass."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. Skill: image-prompting Owner: pruna-ai Summary: Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. 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:29:43.858Z | auto - Bumped version to 1.0.14 in SKILL.md metadata. - Removed the redundant skill-card.md file. - No functional or doc","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1778,"uniquenessScore":45,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T18:20:32.930Z","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-11T18:20:32.930Z","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-11T20:57:47.936Z","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"}]}}}