Prerequisites
Install and load these skills before generating (skip if already in context via @pruna):
| Skill |
Description |
Install |
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 |
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 |
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 |
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 |
Or install the full suite once: npx skills add PrunaAI/pruna-skills@pruna -y
Follow each skill's Before generating / craft sections — do not restate guide content here.
Agent habit
In the first reply, name `p-image-edit` in backticks, confirm PRUNA_API_KEY, then ask for the source photo (and edit brief). Open intake → generation-diversity clarification intake when needed. Draft edits with Prompt craft (dynamic + faithful). Redirect to p-image-try-on when the job is garment fit from packshots.
Prompt craft (dynamic + faithful)
Edit prompts are surgical and request-locked. Change only what the user asked; keep everything else identical. Diversity applies to how you phrase the change — not to inventing a new scene.
| Do |
Don't |
Formula: Change [specific thing]. Keep [identity / pose / lighting / background] identical. (image-prompting edit craft) |
Make it better / mood-only rewrites that ignore the brief |
| Name every must-keep from the user (face, outfit, pose, background, product) |
Drop keep-clauses and hope the model preserves them |
Fresh ritual seed from generation-diversity before drafting; vary free wording (materials, hex, camera nuance) when the brief allows |
Copy this skill’s sample (soft gradient) when the user asked for something else |
Point at refs when composing: face from image 1, outfit from image 2 |
Vague combine these images |
Show the edit prompt before POST when wording is not locked |
Silent edit that changes subject, species, age, or unrequested regions |
Fidelity check (before pay): the prompt must still satisfy the user’s change and every stated keep. If a keep is missing, add it. Do not “spice” the background/cast when they asked for a background-only swap.
When NOT to use
Use a different skill instead:
| Skill |
Description |
Install |
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 |
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 |
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 |
HTTP (curl)
Upload references
curl -X POST "https://api.pruna.ai/v1/files" \
-H "apikey: ${PRUNA_API_KEY}" \
-F "content=@/path/to/reference.png"
Use each response urls.get in input.images.
Create (async — recommended)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-image-edit' \
-d '{
"input": {
"prompt": "Change background to soft gradient, keep subject identical",
"images": ["https://api.pruna.ai/v1/files/FILE_ID"],
"aspect_ratio": "9:16"
}
}'
Poll and download: follow pruna-api.
Complete the random seed ritual from generation-diversity before writing prompts — do not pass the ritual string as API seed. Optional seed only when the user requests reproducibility.
Create (sync — quick test only)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-image-edit' \
-H 'Try-Sync: true' \
-d '{
"input": {
"prompt": "Change background to soft gradient, keep subject identical",
"images": ["https://api.pruna.ai/v1/files/FILE_ID"],
"aspect_ratio": "9:16"
}
}'
Edit flow
Follow generation-diversity still-image prompt flow (edit section):
- Lock change + keeps — user’s surgical ask; formula in Prompt craft (dynamic + faithful).
- Upload refs —
POST /v1/files; urls.get → input.images (1–5). Never invent file URLs.
- Ritual seed → draft edit prompt (
image-prompting edit craft) → fidelity check (every keep clause present).
- Confirm —
prompt, refs, aspect_ratio, turbo (off for hard edits).
- POST — async curl below; checklist before upscale/video.
Aspect ratio: prefer match_input_image for edits; output should keep the plate aspect — if drift occurs, retry with the same ref URL and explicit keep clauses.
Pruna note: avatar pipelines — edit from locked upscaled hero URL; upscale again before p-video* — never pass raw edit URLs to video models.
Not edit: new subject from scratch → p-image. Garment fit from packshots → p-image-try-on.
Multi-reference (up to 5): index refs by role — e.g. three-reference composite: face from image 1, outfit from image 2, cafe from image 3; turbo: false for hard composites. Full pattern in image-prompting p-image-edit-prompting.
Required input
prompt (string)
images (array of 1–5 URLs, typically https://api.pruna.ai/v1/files/{id})
Common optional fields
aspect_ratio: match_input_image, 1:1, 16:9, 9:16, etc.
turbo (boolean, default true; turn off for harder edits)
seed, disable_safety_checker
Typical next steps
Common follow-ons after this skill:
| Skill |
Description |
Install |
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 |
p-video-2 |
Use when someone wants the best-quality short clip from text, images, or audio — polished B-roll, start/end frame animation, or a motion shot with stronger lip-sync. Not for full multi-scene films or talking-head-only hosts. |
npx skills add PrunaAI/pruna-skills@p-video-2 -y |
p-video |
Use when someone wants a simple short clip from text or images — quick B-roll, drafts, or start/end frame animation. Not when the brief needs the highest quality or tight lip-sync. |
npx skills add PrunaAI/pruna-skills@p-video -y |
p-video-edit |
Use when someone wants to edit an existing video with a text instruction — recolor, restyle, remove or add objects, change environment or lighting, update on-screen text, or apply optional reference-guided product and accessory edits. Not for a new clip from scratch or ffmpeg assembly. |
npx skills add PrunaAI/pruna-skills@p-video-edit -y |
p-video-avatar |
Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. |
npx skills add PrunaAI/pruna-skills@p-video-avatar -y |
avatar-multi-scene |
Use when someone wants the same person hosting several clips — multi-segment UGC, comparison reels, or mixed speaking and animated scenes with continuity. |
npx skills add PrunaAI/pruna-skills@avatar-multi-scene -y |
narrated-multi-scene |
Use when someone wants a multi-part story with voiceover — episodic B-roll, chaptered promo, or several linked video scenes without on-camera dialogue. |
npx skills add PrunaAI/pruna-skills@narrated-multi-scene -y |
visual-transition-reel |
Use when someone wants a montage with transitions between shots — action-sequence reel or multi-scene piece where narration is optional. |
npx skills add PrunaAI/pruna-skills@visual-transition-reel -y |
1---2name: p-image-edit3description: Use when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits.4license: MIT5---67## Prerequisites89Install and load these skills before generating (skip if already in context via `@pruna`):1011| Skill | Description | Install |12| --- | --- | --- |13| `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` |14| `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` |15| `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` |16| `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` |1718Or install the full suite once: `npx skills add PrunaAI/pruna-skills@pruna -y`1920Follow each skill's **Before generating** / craft sections — do not restate guide content here.2122## Agent habit2324In the **first reply**, name `` `p-image-edit` `` in backticks, confirm `PRUNA_API_KEY`, then ask for the source photo (and edit brief). Open intake → **`generation-diversity`** clarification intake when needed. Draft edits with **Prompt craft (dynamic + faithful)**. Redirect to `p-image-try-on` when the job is garment fit from packshots.2526## Prompt craft (dynamic + faithful)2728Edit prompts are **surgical** and **request-locked**. Change only what the user asked; keep everything else identical. Diversity applies to *how* you phrase the change — not to inventing a new scene.2930| Do | Don't |31| --- | --- |32| Formula: `Change [specific thing]. Keep [identity / pose / lighting / background] identical.` (`image-prompting` edit craft) | `Make it better` / mood-only rewrites that ignore the brief |33| Name every **must-keep** from the user (face, outfit, pose, background, product) | Drop keep-clauses and hope the model preserves them |34| Fresh ritual seed from `generation-diversity` before drafting; vary free wording (materials, hex, camera nuance) when the brief allows | Copy this skill’s sample (`soft gradient`) when the user asked for something else |35| Point at refs when composing: `face from image 1, outfit from image 2` | Vague `combine these images` |36| Show the edit prompt before `POST` when wording is not locked | Silent edit that changes subject, species, age, or unrequested regions |3738**Fidelity check (before pay):** the prompt must still satisfy the user’s change **and** every stated keep. If a keep is missing, add it. Do not “spice” the background/cast when they asked for a background-only swap.3940## When NOT to use4142Use a different skill instead:4344| Skill | Description | Install |45| --- | --- | --- |46| `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` |47| `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` |48| `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` |4950## HTTP (curl)5152### Upload references5354```bash55curl -X POST "https://api.pruna.ai/v1/files" \56 -H "apikey: ${PRUNA_API_KEY}" \57 -F "content=@/path/to/reference.png"58```5960Use each response `urls.get` in `input.images`.6162### Create (async — recommended)6364```bash65curl -X POST 'https://api.pruna.ai/v1/predictions' \66 -H 'Content-Type: application/json' \67 -H "apikey: ${PRUNA_API_KEY}" \68 -H 'Model: p-image-edit' \69 -d '{70 "input": {71 "prompt": "Change background to soft gradient, keep subject identical",72 "images": ["https://api.pruna.ai/v1/files/FILE_ID"],73 "aspect_ratio": "9:16"74 }75 }'76```7778Poll and download: follow `pruna-api`.7980Complete the random seed ritual from `generation-diversity` before writing prompts — **do not** pass the ritual string as API `seed`. Optional `seed` only when the user requests reproducibility.8182### Create (sync — quick test only)8384```bash85curl -X POST 'https://api.pruna.ai/v1/predictions' \86 -H 'Content-Type: application/json' \87 -H "apikey: ${PRUNA_API_KEY}" \88 -H 'Model: p-image-edit' \89 -H 'Try-Sync: true' \90 -d '{91 "input": {92 "prompt": "Change background to soft gradient, keep subject identical",93 "images": ["https://api.pruna.ai/v1/files/FILE_ID"],94 "aspect_ratio": "9:16"95 }96 }'97```9899## Edit flow100101Follow `generation-diversity` **still-image prompt flow** (edit section):1021031. **Lock change + keeps** — user’s surgical ask; formula in **Prompt craft (dynamic + faithful)**.1042. **Upload refs** — `POST /v1/files`; `urls.get` → `input.images` (1–5). Never invent file URLs.1053. **Ritual seed** → draft edit prompt (`image-prompting` edit craft) → **fidelity check** (every keep clause present).1064. **Confirm** — `prompt`, refs, **`aspect_ratio`**, **`turbo`** (off for hard edits).1075. **POST** — async curl below; checklist before upscale/video.108109**Aspect ratio:** prefer `match_input_image` for edits; output should keep the plate aspect — if drift occurs, retry with the same ref URL and explicit keep clauses.110111**Pruna note:** avatar pipelines — edit from locked **upscaled** hero URL; upscale again before `p-video*` — never pass raw edit URLs to video models.112113**Not edit:** new subject from scratch → `p-image`. Garment fit from packshots → `p-image-try-on`.114115**Multi-reference (up to 5):** index refs by role — e.g. three-reference composite: face from image 1, outfit from image 2, cafe from image 3; `turbo: false` for hard composites. Full pattern in `image-prompting` **p-image-edit-prompting**.116117## Required input118119- `prompt` (string)120- `images` (array of 1–5 URLs, typically `https://api.pruna.ai/v1/files/{id}`)121122## Common optional fields123124- `aspect_ratio`: `match_input_image`, `1:1`, `16:9`, `9:16`, etc.125- `turbo` (boolean, default true; turn off for harder edits)126- `seed`, `disable_safety_checker`127128## Typical next steps129130Common follow-ons after this skill:131132| Skill | Description | Install |133| --- | --- | --- |134| `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` |135| `p-video-2` | Use when someone wants the best-quality short clip from text, images, or audio — polished B-roll, start/end frame animation, or a motion shot with stronger lip-sync. Not for full multi-scene films or talking-head-only hosts. | `npx skills add PrunaAI/pruna-skills@p-video-2 -y` |136| `p-video` | Use when someone wants a simple short clip from text or images — quick B-roll, drafts, or start/end frame animation. Not when the brief needs the highest quality or tight lip-sync. | `npx skills add PrunaAI/pruna-skills@p-video -y` |137| `p-video-edit` | Use when someone wants to edit an existing video with a text instruction — recolor, restyle, remove or add objects, change environment or lighting, update on-screen text, or apply optional reference-guided product and accessory edits. Not for a new clip from scratch or ffmpeg assembly. | `npx skills add PrunaAI/pruna-skills@p-video-edit -y` |138| `p-video-avatar` | Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. | `npx skills add PrunaAI/pruna-skills@p-video-avatar -y` |139| `avatar-multi-scene` | Use when someone wants the same person hosting several clips — multi-segment UGC, comparison reels, or mixed speaking and animated scenes with continuity. | `npx skills add PrunaAI/pruna-skills@avatar-multi-scene -y` |140| `narrated-multi-scene` | Use when someone wants a multi-part story with voiceover — episodic B-roll, chaptered promo, or several linked video scenes without on-camera dialogue. | `npx skills add PrunaAI/pruna-skills@narrated-multi-scene -y` |141| `visual-transition-reel` | Use when someone wants a montage with transitions between shots — action-sequence reel or multi-scene piece where narration is optional. | `npx skills add PrunaAI/pruna-skills@visual-transition-reel -y` |142