Wiggly / Format Lab /

soft-glow-filter

agent-ready
v1.0.0

Soft Glow Filter

Give one existing photo a realistic soft cinematic glow, gentle film texture, and a few restrained handwritten memory captions without changing the subject or scene.

One source image in. 1 inspected image out.

Download runnable kit

Gathered source proof

Judge source preservation, realistic soft glow, restrained blur and film grain, clean handwritten memory captions, readable placement, and natural photographic detail.

Make the format readable in one glance
GPT Image 2 · SKAI source

Make the format readable in one glance

  • The title and primary result explain the visual recipe immediately
  • The subject and mountain setting remain photographic
  • Soft texture and small handwritten notes preview the finished treatment
Turn a summit photo into a saved memory
GPT Image 2 · SKAI source

Turn a summit photo into a saved memory

  • The source inset proves the person, pose, clothing, and location stay recognizable
  • Glow and film softness change the mood without replacing the scene
  • Three short captions sit in readable areas and support the photograph
Let a wide landscape keep its scale
GPT Image 2 · SKAI source

Let a wide landscape keep its scale

  • The figure and ridge remain the same recognizable composition
  • Muted grain and haze feel like a film treatment instead of a new illustration
  • The sparse captions leave the landscape room to breathe
Keep a playful pose while softening the frame
GPT Image 2 · SKAI source

Keep a playful pose while softening the frame

  • Both people, their pose, and the open mountain background survive
  • The light remains believable beneath a gentle vintage finish
  • Caption placement avoids faces and the busiest parts of the image
Make a group ride feel archival
GPT Image 2 · SKAI source

Make a group ride feel archival

  • The riders, bikes, road, and mountain geometry remain intact
  • The softer palette carries a coherent memory-dump mood
  • Short notes and arrows stay readable without covering the group
Give a quiet forest stop a gentle glow
GPT Image 2 · SKAI source

Give a quiet forest stop a gentle glow

  • The seated person and wooded trail preserve their source relationship
  • Glow, grain, and subdued greens remain natural
  • Two restrained captions add context without turning into a poster
Keep texture alive in a darker scene
GPT Image 2 · SKAI source

Keep texture alive in a darker scene

  • The person, log, creek, and foliage remain recognizable
  • The vintage softness does not erase the environmental detail
  • Small pale captions hold up against a busier forest background

Exact gathered prompt

Edit this image with a soft cinematic mood, soft glow, gentle blur, dot-grain texture, and a little vintage film feel. Keep it realistic and natural, not AI-generated. Preserve the subject, face, pose, background, framing, and all key details. Add captions based on the mood of the image. Choose only 2–5 clean Gen Z handwritten captions,1–3words each, from this style: POV, Core Memory, Soft Life, No Rush, Found Peace, Good Energy, Touch Grass, Calm > Chaos, Worth It, Still Here, Green Escape, Hidden Gem ,In My Zone, Memory Saved, Out of Office, Better Outside, Lowkey, Slow Days, Stay Soft, Real Ones, Main Era, Safe Place, Just Existing, Tiny Moments, Feels Right, Day Well Spent, Archive This, Weekend Dump, Peak Mood. Place text only on readable background areas. Use thin pastel white, cream, or butter-yellow handwritten style with subtle sketch arrows. Avoid emojis, hashtags, long text, and cheesy quotes

Source: @skaigenerated · model shown: GPT Image 2

The official run

Prepare -> Validate -> Transform -> Inspect

  1. 1. prepare
    free

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

  2. 2. validate
    free

    The 3:4 image and prompt contract checked locally.

  3. 3. transform
    paid

    One realistic soft-glow film image with restrained handwritten captions from one approved prediction.

    Explicit approval required

  4. 4. inspect
    free

    Automatic file checks plus an actual visual review.

    Explicit approval required

Model routes

  • economy: Nano Banana 2 Lite · 3:4
  • default: Nano Banana 2 · 3:4
  • premium: Nano Banana Pro · 3:4

What prevents waste

  • The complete contract validates locally before spending.
  • Paid generation needs an explicit approval flag.
  • The prediction ID is saved before polling.
  • Interrupted jobs resume instead of duplicating.
  • Three attempts is the hard cap.

Repo files

Agent instructions SKILL.md
---
name: wiggly-soft-glow-filter
description: Give one existing 3:4 photo a realistic soft-glow film grade and restrained handwritten memory captions using the exact gathered SKAI prompt.
---

# Soft Glow Filter

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=soft-glow-filter
npm run format:skai-image -- smoke --format=soft-glow-filter
```

Ask one short question:

> Which 3:4 photo should I turn into a soft-glow memory?

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=soft-glow-filter --run=<id> --input=<absolute-image-path> [--model=<route>]
npm run format:skai-image -- validate --format=soft-glow-filter --run=<id>
npm run format:skai-image -- estimate --format=soft-glow-filter --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=soft-glow-filter --run=<id> --approve-paid
npm run format:skai-image -- inspect --format=soft-glow-filter --run=<id>
npm run format:skai-image -- inspect --format=soft-glow-filter --run=<id> --visual-pass --review-notes="<specific observations>"
npm run format:skai-image -- finalize --format=soft-glow-filter --run=<id> --approve-final
```

Hard rules:

- Preserve the subject, face, pose, background, framing, and all key details.
- Use a user-approved 3:4 input before validation so the fixed route can preserve composition honestly.
- 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.
- Add only 2–5 clean captions, each 1–3 words, chosen from the supplied list.
- Keep caption lettering thin, handwritten, and pastel white, cream, or butter yellow with only subtle sketch arrows.
- Keep the result realistic and natural; use restrained glow, blur, grain, and vintage film texture.
- Never add emojis, hashtags, long text, or cheesy quotes.
- 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 photo should I turn into a soft-glow memory?",
  "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 image and prompt contract checked locally.",
      "paid": false,
      "approvalRequired": false
    },
    {
      "id": "transform",
      "output": "One realistic soft-glow film image with restrained handwritten captions 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
Edit this image with a soft cinematic mood, soft glow, gentle blur, dot-grain texture, and a little vintage film feel. Keep it realistic and natural, not AI-generated. Preserve the subject, face, pose, background, framing, and all key details. Add captions based on the mood of the image. Choose only 2–5 clean Gen Z handwritten captions,1–3words each, from this style: POV, Core Memory, Soft Life, No Rush, Found Peace, Good Energy, Touch Grass, Calm > Chaos, Worth It, Still Here, Green Escape, Hidden Gem ,In My Zone, Memory Saved, Out of Office, Better Outside, Lowkey, Slow Days, Stay Soft, Real Ones, Main Era, Safe Place, Just Existing, Tiny Moments, Feels Right, Day Well Spent, Archive This, Weekend Dump, Peak Mood. Place text only on readable background areas. Use thin pastel white, cream, or butter-yellow handwritten style with subtle sketch arrows. Avoid emojis, hashtags, long text, and cheesy quotes
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 subject, face, pose, background, framing, and key details remain recognizable",
    "Soft glow, gentle blur, dot grain, and vintage film texture remain restrained and photographic",
    "The image contains only 2–5 clean handwritten captions of 1–3 words each",
    "Every caption comes from the supplied phrase list and sits on a readable background area",
    "Lettering is thin pastel white, cream, or butter yellow with only subtle sketch arrows",
    "There are no emojis, hashtags, long captions, cheesy quotes, or obviously synthetic details"
  ],
  "finalization": {
    "automaticPassRequired": true,
    "visualPassRequired": true,
    "reviewNotesRequired": true,
    "explicitApprovalFlag": "--approve-final"
  }
}