Curated Formatv1.0.0

Light Silhouette

Turn only the subject into a glowing white silhouette while preserving the original pose, scene, and photographic detail.

By Wiggly Studio · Updated July 2026

Coastal portrait: Turn one quiet pose into a beacon

Shared recipe family

One family. 31 recipes.

Light Silhouette belongs to Image Filters. These recipes share a runtime; adjacent examples are not separate Repos. The download on this page packages this specific recipe.

See the full recipe family

Before you start

Services & costs

Replicate

google/nano-banana-2-lite · google/nano-banana-2 · google/nano-banana-pro

Generate the approved media in this recipe.

REPLICATE_API_TOKEN

Local runtime

Setup, validation & inspection

Node.js >=22 · npm

Typical run estimate

One Replicate image charge and usually 2-4 min

Estimates describe the saved recipe, not a price guarantee. Confirm current provider pricing and approve any spend before generation. Your coding agent may have its own fees or usage limits. Never paste API keys into chat.

Setup notes from requirements.json
  • All smoke and validation commands are local.
  • The creator guide labels its examples GPT Image 2. That remains source provenance; the packaged Replicate runtime uses Nano Banana 2 by default, Lite for economy, and Pro for premium.
  • No proof generation was purchased for this package.
  • One render attempt is one paid prediction.
  • Paid generation requires explicit approval and is capped at three attempts.

Included assets

The ingredients behind the format.

The published package includes its agent instructions, input contract, and quality rules, plus 7 viewable asset references below. Reference media teaches the recipe; it is not a new result for your input.

Recipe reference

Recipe reference

Supplied creator reference—not a new Wiggly-generated result.

Recipe reference

Recipe reference

Supplied creator reference—not a new Wiggly-generated result.

Recipe reference

Recipe reference

Supplied creator reference—not a new Wiggly-generated result.

Recipe reference

Recipe reference

Supplied creator reference—not a new Wiggly-generated result.

Recipe reference

Recipe reference

Supplied creator reference—not a new Wiggly-generated result.

Recipe reference

Recipe reference

Supplied creator reference—not a new Wiggly-generated result.

View all 7 asset references
Recipe reference

Recipe reference

Supplied creator reference—not a new Wiggly-generated result.

What stays consistent

  • The subject's exact pose and proportions
  • The original background, scenery, and perspective
  • The source lighting direction, shadows, and composition
  • A realistic photographic finish

What you bring

  • One JPEG, PNG, or WebP photograph at least 512px on both axes
  • A Replicate API token only when generation is approved
Read the included contracts and asset inventory ↓

Examples

Examples & references.

7 saved examples for this recipe—not 7 separate Repos. Each example keeps its original version and provenance.

Travel portrait: Keep the animal and transform only the person

Example 02 · Travel portrait

Keep the animal and transform only the person

Open finished ad
Urban portrait: Make the subject glow inside a dark commute

Example 03 · Urban portrait

Make the subject glow inside a dark commute

Open finished ad
Landscape portrait: Hold a tiny figure inside a huge landscape

Example 04 · Landscape portrait

Hold a tiny figure inside a huge landscape

Open finished ad
Action portrait: Preserve an impossible pose in full light

Example 05 · Action portrait

Preserve an impossible pose in full light

Open finished ad
Golden-hour portrait: Let the existing sun drive the effect

Example 06 · Golden-hour portrait

Let the existing sun drive the effect

Open finished ad
Nature portrait: Balance a warm silhouette against a cool valley

Example 07 · Nature portrait

Balance a warm silhouette against a cool valley

Open finished ad

From input to output

How the run works.

From the published pipeline.json. The agent follows the packaged runtime and its approval gates.

  1. Step 01

    Prepare

    One run pinned to the photo, exact gathered prompt, and selected model route.

  2. Step 02

    Validate

    The photo and prompt contract checked locally.

  3. Step 03 · approval · provider

    Transform

    One Light Silhouette photograph from one approved prediction.

  4. Step 04 · approval

    Inspect

    Automatic file checks plus an actual visual review.

Proof & quality

What a good result looks like.

Judge subject-only silhouette transformation, exact pose and scene preservation, premium glow behavior, cinematic depth, and natural photographic finish.

The Instagram DM delivered the public Google Doc with the exact GPT Image 2 prompt. The ten-slide carousel supplied one cover and seven native output examples; two promotional slides were omitted. Clean 1080x1440 creator files were recovered from Instagram's public embed data.

Each creator example already includes its original input photo in a rounded top-right inset. The separate reference files are direct crops of those published insets and are retained for provenance and runner smoke inputs.

Saved reference

Coastal Cliff

  • The relaxed standing pose, loose clothing, bag placement, coastline, and horizon stay fixed
  • The white silhouette remains readable against a detailed green and blue landscape
  • Warm glow and thin light trails add energy without replacing the scene

Saved reference

Desert Camel

  • The camel, reins, stance, dunes, and low horizon remain intact
  • The subject alone becomes luminous while the animal stays photographic
  • The warm desert palette naturally supports the golden aura

Quality gates

These are the acceptance criteria in quality.json—not a claim that every pictured example passed the current version. Inspect each new output before finalizing.

Automatic · 4 checks
  • 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 · 5 checks
  • Only the subject becomes a glowing white silhouette
  • The original pose, proportions, background, composition, and environment remain recognizable
  • Smooth edges, warm highlights, soft golden trails, and a subtle aura feel cinematic
  • The background has natural depth without looking artificial, painted, or over-blurred
  • The result remains premium and photographic without facial detail, warped anatomy, stray text, or watermarks
Finalization · 4 checks
  • Automatic Pass Required: true
  • Visual Pass Required: true
  • Review Notes Required: true
  • Explicit Approval Flag: --approve-final

Open the package

Readable Repo files.

Actual files from the published v1.0.0 package. Expand any file to inspect the instructions, requirements, or evidence before sending the Repo to your agent.

README.md
Open raw file ↗
# Wiggly Light Silhouette Format

This runnable Repo preserves the exact gathered prompt, source guide, original
carousel cover, and seven native SKAI examples. It uses the shared Wiggly image
runner so validation, paid approval, retry caps, and visual finalization stay
explicit.

Run from `v3`:

```bash
npm install
npm run format:skai-image -- check --format=light-silhouette
npm run format:skai-image -- smoke --format=light-silhouette
npm run format:skai-image -- init --format=light-silhouette --run=my-photo --input=/absolute/path/to/photo.jpg
npm run format:skai-image -- validate --format=light-silhouette --run=my-photo
npm run format:skai-image -- estimate --format=light-silhouette --run=my-photo
```

Generation requires `REPLICATE_API_TOKEN` and explicit approval:

```bash
npm run format:skai-image -- render --format=light-silhouette --run=my-photo --approve-paid
```

No Replicate proof call was made while packaging this Repo.

Model routes:

- Economy: `google/nano-banana-2-lite`
- Default: `google/nano-banana-2`
- Premium: `google/nano-banana-pro`

The creator guide labels its examples as GPT Image 2. That remains source
provenance; the runnable kit uses Replicate-hosted Nano Banana 2 by default,
Lite for economy, and Pro for premium.

Every native example already contains the creator-published original photo in a
rounded top-right inset. Separate reference files are direct crops of those
insets for provenance and local smoke validation.
SKILL.md
Open raw file ↗
---
name: wiggly-light-silhouette
description: Apply the exact gathered SKAI Light Silhouette prompt to one photograph.
---

# Light Silhouette

Use the packaged runner and exact prompt. Do not call Replicate separately or
create another render path.

Ask one short question:

> Which photo should I turn into a Light Silhouette?

Then run:

```bash
npm run format:skai-image -- init --format=light-silhouette --run=<id> --input=<absolute-image-path>
npm run format:skai-image -- validate --format=light-silhouette --run=<id>
npm run format:skai-image -- estimate --format=light-silhouette --run=<id>
npm run format:skai-image -- render --format=light-silhouette --run=<id> --approve-paid
npm run format:skai-image -- inspect --format=light-silhouette --run=<id>
npm run format:skai-image -- inspect --format=light-silhouette --run=<id> --visual-pass --review-notes="<specific observations>"
npm run format:skai-image -- finalize --format=light-silhouette --run=<id> --approve-final
```

Hard rules:

- 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.
- Treat GPT Image 2 as creator provenance, not as the packaged Replicate route.
- Validate before spending 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`.
requirements.json
Open raw file ↗
{
  "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 creator guide labels its examples GPT Image 2. That remains source provenance; the packaged Replicate runtime uses Nano Banana 2 by default, Lite for economy, and Pro for premium.",
    "No proof generation was purchased for this package.",
    "One render attempt is one paid prediction.",
    "Paid generation requires explicit approval and is capped at three attempts."
  ]
}
inputs.json
Open raw file ↗
{
  "required": [
    {
      "id": "photo",
      "type": "image",
      "formats": ["jpg", "png", "webp"],
      "minimumWidth": 512,
      "minimumHeight": 512,
      "maximumBytes": 26214400
    }
  ],
  "question": "Which photo should I turn into a Light Silhouette?",
  "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",
    "creatorShown": "GPT Image 2"
  }
}
pipeline.json
Open raw file ↗
{
  "progress": "Prepare -> Validate -> Transform -> Inspect",
  "attemptCap": 3,
  "stages": [
    {
      "id": "prepare",
      "output": "One run pinned to the photo, exact gathered prompt, and selected model route.",
      "paid": false,
      "approvalRequired": false
    },
    {
      "id": "validate",
      "output": "The photo and prompt contract checked locally.",
      "paid": false,
      "approvalRequired": false
    },
    {
      "id": "transform",
      "output": "One Light Silhouette photograph from one approved prediction.",
      "paid": true,
      "approvalRequired": true
    },
    {
      "id": "inspect",
      "output": "Automatic file checks plus an actual visual review.",
      "paid": false,
      "approvalRequired": true
    }
  ]
}
assets.json
Open raw file ↗
{
  "sourceReference": {
    "creator": "@skaigenerated",
    "postUrl": "https://www.instagram.com/p/Daxp6JYCvuf/",
    "resourceTitle": "Light Silhouette Prompt",
    "resourceUrl": "https://docs.google.com/document/d/1fkCvR3TDStmfpjo6ULhGmw-A2V2It-bulTVFNv-cISs",
    "guide": "assets/source/guide.txt",
    "cover": "assets/source/cover.jpg",
    "referenceInset": "assets/source/coastal-cliff-reference.jpg",
    "verification": "The Instagram DM delivered the public Google Doc with the exact GPT Image 2 prompt. The ten-slide carousel supplied one cover and seven native output examples; two promotional slides were omitted. Clean 1080x1440 creator files were recovered from Instagram's public embed data.",
    "referenceNote": "Each creator example already includes its original input photo in a rounded top-right inset. The separate reference files are direct crops of those published insets and are retained for provenance and runner smoke inputs."
  },
  "examples": [
    {
      "id": "coastal-cliff",
      "path": "assets/source/coastal-cliff.jpg",
      "referencePath": "assets/source/coastal-cliff-reference.jpg",
      "referenceType": "creator-published-inset"
    },
    {
      "id": "desert-camel",
      "path": "assets/source/desert-camel.jpg",
      "referencePath": "assets/source/desert-camel-reference.jpg",
      "referenceType": "creator-published-inset"
    },
    {
      "id": "subway-platform",
      "path": "assets/source/subway-platform.jpg",
      "referencePath": "assets/source/subway-platform-reference.jpg",
      "referenceType": "creator-published-inset"
    },
    {
      "id": "misty-hills",
      "path": "assets/source/misty-hills.jpg",
      "referencePath": "assets/source/misty-hills-reference.jpg",
      "referenceType": "creator-published-inset"
    },
    {
      "id": "pyramid-dance",
      "path": "assets/source/pyramid-dance.jpg",
      "referencePath": "assets/source/pyramid-dance-reference.jpg",
      "referenceType": "creator-published-inset"
    },
    {
      "id": "mountain-meadow",
      "path": "assets/source/mountain-meadow.jpg",
      "referencePath": "assets/source/mountain-meadow-reference.jpg",
      "referenceType": "creator-published-inset"
    },
    {
      "id": "lakeside-field",
      "path": "assets/source/lakeside-field.jpg",
      "referencePath": "assets/source/lakeside-field-reference.jpg",
      "referenceType": "creator-published-inset"
    }
  ]
}
quality.json
Open raw file ↗
{
  "automatic": [
    "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": [
    "Only the subject becomes a glowing white silhouette",
    "The original pose, proportions, background, composition, and environment remain recognizable",
    "Smooth edges, warm highlights, soft golden trails, and a subtle aura feel cinematic",
    "The background has natural depth without looking artificial, painted, or over-blurred",
    "The result remains premium and photographic without facial detail, warped anatomy, stray text, or watermarks"
  ],
  "finalization": {
    "automaticPassRequired": true,
    "visualPassRequired": true,
    "reviewNotesRequired": true,
    "explicitApprovalFlag": "--approve-final"
  }
}
goldens.json
Open raw file ↗
{
  "purpose": "Judge subject-only silhouette transformation, exact pose and scene preservation, premium glow behavior, cinematic depth, and natural photographic finish.",
  "examples": [
    {
      "id": "coastal-cliff",
      "title": "Coastal Cliff",
      "imagePath": "assets/source/coastal-cliff.jpg",
      "referencePath": "assets/source/coastal-cliff-reference.jpg",
      "referenceType": "creator-published-inset",
      "model": "GPT Image 2",
      "whyItWorks": [
        "The relaxed standing pose, loose clothing, bag placement, coastline, and horizon stay fixed",
        "The white silhouette remains readable against a detailed green and blue landscape",
        "Warm glow and thin light trails add energy without replacing the scene"
      ]
    },
    {
      "id": "desert-camel",
      "title": "Desert Camel",
      "imagePath": "assets/source/desert-camel.jpg",
      "referencePath": "assets/source/desert-camel-reference.jpg",
      "referenceType": "creator-published-inset",
      "model": "GPT Image 2",
      "whyItWorks": [
        "The camel, reins, stance, dunes, and low horizon remain intact",
        "The subject alone becomes luminous while the animal stays photographic",
        "The warm desert palette naturally supports the golden aura"
      ]
    },
    {
      "id": "subway-platform",
      "title": "Subway Platform",
      "imagePath": "assets/source/subway-platform.jpg",
      "referencePath": "assets/source/subway-platform-reference.jpg",
      "referenceType": "creator-published-inset",
      "model": "GPT Image 2",
      "whyItWorks": [
        "The crossed-leg lean, folded arms, pole, train, signage, and platform perspective all survive",
        "The bright figure reads clearly against the dark station",
        "Cinematic contrast heightens the scene without changing its geometry"
      ]
    },
    {
      "id": "misty-hills",
      "title": "Misty Hills",
      "imagePath": "assets/source/misty-hills.jpg",
      "referencePath": "assets/source/misty-hills-reference.jpg",
      "referenceType": "creator-published-inset",
      "model": "GPT Image 2",
      "whyItWorks": [
        "The small standing pose and layered green ridges remain in the same positions",
        "A restrained glow keeps the subject visible through soft mist",
        "The background gains gentle separation without losing natural detail"
      ]
    },
    {
      "id": "pyramid-dance",
      "title": "Pyramid Dance",
      "imagePath": "assets/source/pyramid-dance.jpg",
      "referencePath": "assets/source/pyramid-dance-reference.jpg",
      "referenceType": "creator-published-inset",
      "model": "GPT Image 2",
      "whyItWorks": [
        "The airborne dance pose, foreground sand, and pyramid scale stay recognizable",
        "Fine glow lines preserve the unusual limb shapes without adding facial detail",
        "The luminous figure remains distinct inside a bright desert scene"
      ]
    },
    {
      "id": "mountain-meadow",
      "title": "Mountain Meadow",
      "imagePath": "assets/source/mountain-meadow.jpg",
      "referencePath": "assets/source/mountain-meadow-reference.jpg",
      "referenceType": "creator-published-inset",
      "model": "GPT Image 2",
      "whyItWorks": [
        "The outstretched arms, body proportions, meadow, and mountain skyline stay locked",
        "Sunset backlight and the generated aura feel like one consistent light source",
        "The distant landscape keeps its photographic texture and depth"
      ]
    },
    {
      "id": "lakeside-field",
      "title": "Lakeside Field",
      "imagePath": "assets/source/lakeside-field.jpg",
      "referencePath": "assets/source/lakeside-field-reference.jpg",
      "referenceType": "creator-published-inset",
      "model": "GPT Image 2",
      "whyItWorks": [
        "The standing subject, grassy foreground, lake, and green valley remain unchanged",
        "The white silhouette stays legible against both water and grass",
        "Warm highlights balance the cool landscape without making it look synthetic"
      ]
    }
  ]
}
format.json
Open raw file ↗
{
  "id": "light-silhouette",
  "version": "1.0.0",
  "title": "Light Silhouette",
  "description": "Turn only the subject into a glowing white human silhouette while preserving the original pose, scene, lighting, shadows, and composition.",
  "status": "agent-ready",
  "owner": "Wiggly Studio",
  "source": {
    "creator": "@skaigenerated",
    "postUrl": "https://www.instagram.com/p/Daxp6JYCvuf/",
    "resourceTitle": "Light Silhouette Prompt",
    "resourceUrl": "https://docs.google.com/document/d/1fkCvR3TDStmfpjo6ULhGmw-A2V2It-bulTVFNv-cISs",
    "resourceAccess": "Instagram DM to public Google Doc",
    "ctaKeyword": "AI",
    "modelShown": "GPT Image 2"
  },
  "outputs": [
    "1 inspected Light Silhouette photograph",
    "state.json with model and prediction provenance",
    "quality-report.json with automatic and visual inspection"
  ]
}
kit.package.json
Open raw file ↗
{
  "name": "wiggly-light-silhouette-format-kit",
  "private": true,
  "version": "1.0.0",
  "type": "module",
  "engines": {
    "node": ">=22"
  },
  "scripts": {
    "check:kit": "node kit-smoke.mjs",
    "format:skai-image": "tsx scripts/skai-image-format.ts",
    "test": "tsx tests/skai-image-format-runner.test.ts --format=light-silhouette && node kit-smoke.mjs"
  },
  "dependencies": {
    "image-size": "2.0.2",
    "replicate": "1.4.0",
    "tsx": "4.20.6"
  }
}
runtime.json
Open raw file ↗
{
  "slug": "light-silhouette",
  "version": "1.0.0",
  "promptPath": "prompts/transform.txt",
  "input": {
    "mode": "image",
    "formats": ["jpg", "png", "webp"],
    "minimumWidth": 512,
    "minimumHeight": 512,
    "maximumBytes": 26214400
  },
  "defaultModel": "nano-banana-2",
  "modelRoutes": {
    "nano-banana-2-lite": {
      "label": "Nano Banana 2 Lite",
      "lane": "economy",
      "model": "google/nano-banana-2-lite",
      "family": "nano-banana",
      "aspectRatio": "3:4",
      "outputFormat": "jpg"
    },
    "nano-banana-2": {
      "label": "Nano Banana 2",
      "lane": "default",
      "model": "google/nano-banana-2",
      "family": "nano-banana",
      "aspectRatio": "3:4",
      "outputFormat": "jpg",
      "resolution": "1K"
    },
    "nano-banana-pro": {
      "label": "Nano Banana Pro",
      "lane": "premium",
      "model": "google/nano-banana-pro",
      "family": "nano-banana",
      "aspectRatio": "3:4",
      "outputFormat": "jpg",
      "resolution": "1K"
    }
  },
  "expectedOutputs": 1,
  "maximumAttempts": 3,
  "smokeInputPath": "assets/source/coastal-cliff-reference.jpg",
  "smokeExamplePath": "assets/source/coastal-cliff.jpg",
  "minimumOutputWidth": 640,
  "minimumOutputHeight": 800,
  "minimumOutputBytes": 51200,
  "manualReview": [
    "only the main subject becomes a glowing white human silhouette",
    "the exact pose, proportions, scene, shadows, composition, and environment remain intact",
    "the silhouette has smooth edges, no facial detail, soft golden light trails, and a restrained aura",
    "the background gains gentle cinematic depth without looking painted or over-blurred",
    "the result stays photographic and premium without stray text, warped anatomy, or watermarks"
  ]
}
Technical proof archive ↗

Run it with a coding agent

Know the run before you start.

The agent reads this version’s instructions, checks the requirements, and walks you through the approved workflow. Review the inputs and estimate before starting.

Typical run

Prepare + validateFree · under 1 min
One image transformCurrent Replicate model rate · usually under 2 min
Inspect + finalizeFree · about 1 min

One Replicate image charge and usually 2-4 min

You provide

One JPEG, PNG, or WebP photograph at least 512px on both axes · A Replicate API token only when generation is approved

Output

One inspected 3:4 Light Silhouette photograph plus prediction and quality provenance