Agent instructions SKILL.md
---
name: wiggly-paper-outfit
description: Turn only the clothing, bag, and shoes in one 3:4 fashion photo into handmade paper cutouts using the exact gathered SKAI prompt.
---
# Paper Outfit
Use the packaged runner and exact prompt. Do not call Replicate separately or
create another render path.
From the extracted kit's `v3` directory, prepare the local runner first:
```bash
npm install
npm run format:skai-image -- check --format=paper-outfit
npm run format:skai-image -- smoke --format=paper-outfit
```
Ask one short question:
> Which 3:4 fashion photo should I turn into a handmade paper-outfit editorial?
Then initialize the free run. Omit `--model` for Nano Banana 2, or add
`--model=nano-banana-2-lite` for economy or `--model=nano-banana-pro` for
premium:
```bash
npm run format:skai-image -- init --format=paper-outfit --run=<id> --input=<absolute-image-path> [--model=<route>]
npm run format:skai-image -- validate --format=paper-outfit --run=<id>
npm run format:skai-image -- estimate --format=paper-outfit --run=<id>
```
Stop after `estimate` and ask the user to approve the paid prediction. Only
after the user explicitly approves the cost should you supply `--approve-paid`:
```bash
npm run format:skai-image -- render --format=paper-outfit --run=<id> --approve-paid
npm run format:skai-image -- inspect --format=paper-outfit --run=<id>
npm run format:skai-image -- inspect --format=paper-outfit --run=<id> --visual-pass --review-notes="<specific observations>"
npm run format:skai-image -- finalize --format=paper-outfit --run=<id> --approve-final
```
Hard rules:
- Preserve the face, hair, skin, expression, makeup, body, pose, lighting, shadows, background, crop, and perspective.
- Apply the effect only to clothing, bag, and shoes.
- Make each transformed piece look like a physical white-paper cutout with visible colored pencil, paint marks, cut edges, and layered construction.
- Keep the person fully photographic; never turn the model into a drawing or apply a global digital filter.
- Use a user-approved 3:4 input before validation.
- Keep the exact gathered prompt unless the user explicitly requests a change.
- Use Nano Banana 2 by default, Lite for economy, or Pro for premium.
- Validate and estimate before spending, pause for explicit user approval, and never render without `--approve-paid`.
- Persist and resume the prediction id.
- Never exceed three attempts.
- View the output and record specific visual-review notes before finalizing.
- Never print, store, or commit `REPLICATE_API_TOKEN`.
Replicate BYOK requirements requirements.json
{
"runtime": {
"node": ">=22",
"commands": ["npm"]
},
"providers": [
{
"name": "Replicate",
"models": [
"google/nano-banana-2-lite",
"google/nano-banana-2",
"google/nano-banana-pro"
]
}
],
"environment": [
{
"name": "REPLICATE_API_TOKEN",
"secret": true,
"requiredFor": ["render", "resume"]
}
],
"notes": [
"All smoke and validation commands are local.",
"The source guide names GPT Image 2; Wiggly's runnable lanes use Nano Banana 2 Lite, Nano Banana 2, and Nano Banana Pro.",
"No Replicate proof call was made for this package.",
"One render attempt is one paid prediction.",
"Paid generation requires explicit approval and is capped at three attempts."
]
}
Input contract and model routing inputs.json
{
"required": [
{
"id": "image",
"type": "image",
"formats": ["jpg", "png", "webp"],
"minimumWidth": 512,
"minimumHeight": 512,
"maximumBytes": 26214400,
"aspectRatio": "3:4",
"aspectRatioTolerance": 0.02
}
],
"question": "Which 3:4 fashion photo should I turn into a handmade paper-outfit editorial?",
"defaults": {
"model": "nano-banana-2",
"aspectRatio": "3:4",
"outputCount": 1
},
"modelRoutes": {
"economy": "google/nano-banana-2-lite",
"default": "google/nano-banana-2",
"premium": "google/nano-banana-pro"
},
"sourceModel": "openai/gpt-image-2"
}
Paid-call and resume contract pipeline.json
{
"progress": "Prepare -> Validate -> Transform -> Inspect",
"attemptCap": 3,
"stages": [
{
"id": "prepare",
"output": "One run pinned to the source image, exact gathered prompt, and selected model route.",
"paid": false,
"approvalRequired": false
},
{
"id": "validate",
"output": "The 3:4 fashion photo and prompt contract checked locally.",
"paid": false,
"approvalRequired": false
},
{
"id": "transform",
"output": "One realistic fashion photo with clothing, bag, and shoes replaced by handmade paper cutouts from one approved prediction.",
"paid": true,
"approvalRequired": true
},
{
"id": "inspect",
"output": "Automatic file checks plus an actual visual review.",
"paid": false,
"approvalRequired": true
}
]
}
Exact gathered prompt prompts/transform.txt
Transforme esta foto em um editorial de moda estilo real photo with handmade paper clothing cutouts placed on top.
Mantenha a fotografia original completamente real:
o rosto, cabelo, pele, expressão, maquiagem, braços, mãos, pernas, corpo, iluminação, sombras e fundo devem permanecer exatamente fotográficos.
Não transforme a modelo em desenho.
Crie o efeito apenas nas peças do look:
roupas, bolsa e sapatos.
Imagine que essas peças foram removidas da fotografia original, redesenhadas manualmente em uma folha de papel, recortadas com tesoura e depois coladas novamente em cima da modelo.
As peças devem parecer objetos físicos de papel sobrepostos à foto, não um filtro digital.
Desenhe as roupas e acessórios com aparência propositalmente artesanal:
lápis de cor visível, textura de papel branco, riscos de pintura.
Automatic and visual gates quality.json
{
"automatic": [
"The source input is 3:4 within 0.02 so composition can be preserved",
"Exactly 1 decodable JPG, JPEG, PNG, or WebP output",
"At least 640x800 pixels",
"Aspect ratio matches the selected route within 0.02",
"At least 50 KB"
],
"visual": [
"The face, hair, skin, expression, makeup, body, pose, lighting, shadows, background, and crop remain photographic and recognizable",
"Only clothing, bag, and shoes receive the handmade paper-cutout treatment",
"The transformed pieces look like physical white paper drawn with visible colored pencil and paint marks",
"Cut edges, layered shapes, and attachment to the original silhouette feel intentional and coherent",
"The person is not turned into an illustration and the result does not resemble a global digital filter",
"There are no malformed hands, limbs, facial features, or obviously synthetic background details"
],
"finalization": {
"automaticPassRequired": true,
"visualPassRequired": true,
"reviewNotesRequired": true,
"explicitApprovalFlag": "--approve-final"
}
}