Curated Formatv1.0.0

Old Money Shot

Turn one portrait into a timeless black-and-white old-money editorial beside a classic roadster.

By Wiggly Studio · Updated July 2026

Old-money editorial: Turn a portrait into a timeless film stillReference for Turn a portrait into a timeless film still

Shared recipe family

One family. 31 recipes.

Old Money Shot 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 · openai/gpt-image-2

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.
  • No Replicate proof generation was purchased for this package.
  • The gathered source examples are the visual proof.
  • 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.

Creator example output

Creator example output

The exact prompt, GPT Image 2 label, guide, and six examples were gathered through the creator's Android Instagram comment and DM flow and visually checked. The guide did not include the raw input photo, so the inset and smoke fixture use a clearly documented representative Pexels portrait by Philip Boakye (photo 2698918); no provider generation was run.

Creator reference input

Creator reference input

The exact prompt, GPT Image 2 label, guide, and six examples were gathered through the creator's Android Instagram comment and DM flow and visually checked. The guide did not include the raw input photo, so the inset and smoke fixture use a clearly documented representative Pexels portrait by Philip Boakye (photo 2698918); no provider generation was run.

Creator reference 2

Creator reference 2

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

Creator reference 3

Creator reference 3

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

Creator reference 4

Creator reference 4

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

Creator reference 5

Creator reference 5

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

View all 7 asset references
Creator reference 6

Creator reference 6

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

What stays consistent

  • The subject's recognizable identity
  • A contemplative three-quarter gaze
  • A low editorial camera angle
  • The relaxed portrait energy

What you bring

  • One JPEG, PNG, or WebP portrait 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.

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

Old-money editorial: Turn a portrait into a timeless film stillReference for Turn a portrait into a timeless film still

Example 01 · Old-money editorial

Turn a portrait into a timeless film still

Open finished ad
Tailored portrait: A full stance keeps every detail readable

Example 03 · Tailored portrait

A full stance keeps every detail readable

Open finished ad
Roadside editorial: A seated portrait still feels cinematic

Example 04 · Roadside editorial

A seated portrait still feels cinematic

Open finished ad
Minimal styling: Simple styling lets the subject lead

Example 05 · Minimal styling

Simple styling lets the subject lead

Open finished ad
Accessory detail: Accessories survive the film recipe

Example 06 · Accessory detail

Accessories survive the film recipe

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

    A run pinned to the source photo, exact gathered prompt, and chosen model route.

  2. Step 02

    Validate

    The image and complete provider contract checked locally.

  3. Step 03 · approval · provider

    Transform

    One black-and-white old-money editorial image from the selected Replicate model.

  4. Step 04 · approval

    Inspect

    Automatic file checks plus an actual visual review.

Proof & quality

What a good result looks like.

Judge timeless black-and-white styling, low-angle portrait composition, classic-roadster detail, soft daylight, deep contrast, and tactile film grain against six gathered examples.

The exact prompt, GPT Image 2 label, guide, and six examples were gathered through the creator's Android Instagram comment and DM flow and visually checked. The guide did not include the raw input photo, so the inset and smoke fixture use a clearly documented representative Pexels portrait by Philip Boakye (photo 2698918); no provider generation was run.

Saved reference

A modern portrait becomes an old-money film still

  • The low camera angle, open shirt, tailored pants, and roadster create one coherent editorial scene
  • Soft daylight, deep contrast, and visible grain deliver the timeless monochrome finish

Saved reference

Wind and posture carry the editorial mood

  • The three-quarter gaze and windblown hair feel candid rather than posed
  • Shirt folds, skin, clouds, and polished car surfaces retain detail inside the monochrome grade

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, PNG, or WebP output
  • At least 640x800 pixels
  • Aspect ratio within 0.02 of the selected route
  • At least 50 KB
Visual · 5 checks
  • The subject remains recognizable in a contemplative three-quarter pose
  • The low camera angle, open-collar shirt, tailored pants, and classic roadster read clearly
  • Soft daylight and deep monochrome contrast preserve facial structure and fabric detail
  • Film grain feels tactile without muddying skin, hair, clothing, or car anatomy
  • The result feels timeless and editorial rather than glossy, modern, or cartoon-like
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 Old Money Shot Format

This runnable Repo preserves the exact prompt and six transformation examples
gathered from @skaigenerated. It turns one portrait into a timeless black-and-white
old-money editorial beside a classic roadster through Replicate.

Run from `v3`:

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

Generation requires `REPLICATE_API_TOKEN` and explicit approval:

```bash
npm run format:skai-image -- render --format=old-money-shot --run=my-old-money --approve-paid
```

View the output, record visual notes with
`inspect --visual-pass --review-notes="..."`, then use
`finalize --approve-final`.

Model routes:

- Economy: `google/nano-banana-2-lite`
- Default: `google/nano-banana-2`
- Premium alternative: `google/nano-banana-pro`
- Source model: `openai/gpt-image-2`

No Replicate proof call was made while packaging this Repo. The six included
source examples and guide are the proof artifacts.
SKILL.md
Open raw file ↗
---
name: wiggly-old-money-shot
description: Transform one portrait into a timeless black-and-white old-money editorial beside a classic roadster using the exact gathered SKAI prompt.
---

# Old Money Shot

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

Ask one short question first:

> Which portrait should I turn into an Old Money Shot?

Use Nano Banana 2 by default, Nano Banana 2 Lite for economy, or Nano Banana
Pro for a premium alternative. Use GPT Image 2 only when the user requests the
source-model route.

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

Hard rules:

- Preserve the subject's recognizable identity and contemplative three-quarter gaze.
- Keep the low camera angle, classic roadster, open-collar shirt, tailored pants, and relaxed styling.
- Keep the result monochrome, deeply contrasted, softly lit, visibly grainy, and editorial rather than glossy or modern.
- Validate before spending.
- Never generate without `--approve-paid`.
- Persist and resume the same prediction ID.
- Never exceed three attempts.
- View the actual output and record notes before `--approve-final`.
- 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",
        "openai/gpt-image-2"
      ]
    }
  ],
  "environment": [
    {
      "name": "REPLICATE_API_TOKEN",
      "secret": true,
      "requiredFor": ["render", "resume"]
    }
  ],
  "notes": [
    "All smoke and validation commands are local.",
    "No Replicate proof generation was purchased for this package.",
    "The gathered source examples are the visual proof.",
    "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 portrait should I turn into an Old Money Shot?",
  "defaults": {
    "model": "nano-banana-2",
    "aspectRatio": "4:5",
    "outputCount": 1
  },
  "modelRoutes": {
    "economy": "google/nano-banana-2-lite",
    "default": "google/nano-banana-2",
    "premium": "google/nano-banana-pro",
    "sourceModel": "openai/gpt-image-2"
  }
}
pipeline.json
Open raw file ↗
{
  "progress": "Prepare -> Validate -> Transform -> Inspect",
  "attemptCap": 3,
  "stages": [
    {
      "id": "prepare",
      "output": "A run pinned to the source photo, exact gathered prompt, and chosen model route.",
      "paid": false,
      "approvalRequired": false
    },
    {
      "id": "validate",
      "output": "The image and complete provider contract checked locally.",
      "paid": false,
      "approvalRequired": false
    },
    {
      "id": "transform",
      "output": "One black-and-white old-money editorial image from the selected Replicate model.",
      "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/DbTPupVipI5/",
    "resourceUrl": "https://docs.google.com/document/d/18-pvSPZjWPE_3QKgNP7tgrr7frX8tvAMgmP1zJjpoY4/edit",
    "guide": "assets/source/guide.pdf",
    "exampleOutput": "assets/source/example-output.jpg",
    "hero": "assets/source/hero-with-reference.jpg",
    "referenceInput": "assets/source/reference-input.jpg",
    "carouselExamples": [
      "assets/source/example-output.jpg",
      "assets/source/example-02.jpg",
      "assets/source/example-03.jpg",
      "assets/source/example-04.jpg",
      "assets/source/example-05.jpg",
      "assets/source/example-06.jpg"
    ],
    "promptPath": "prompts/transform.txt",
    "verification": "The exact prompt, GPT Image 2 label, guide, and six examples were gathered through the creator's Android Instagram comment and DM flow and visually checked. The guide did not include the raw input photo, so the inset and smoke fixture use a clearly documented representative Pexels portrait by Philip Boakye (photo 2698918); no provider generation was run."
  },
  "fixture": {
    "path": "assets/source/reference-input.jpg",
    "purpose": "Representative local validation and free smoke input only; it is not claimed as the unavailable original source photo and no provider call was made."
  }
}
quality.json
Open raw file ↗
{
  "automatic": [
    "Exactly 1 decodable JPG, PNG, or WebP output",
    "At least 640x800 pixels",
    "Aspect ratio within 0.02 of the selected route",
    "At least 50 KB"
  ],
  "visual": [
    "The subject remains recognizable in a contemplative three-quarter pose",
    "The low camera angle, open-collar shirt, tailored pants, and classic roadster read clearly",
    "Soft daylight and deep monochrome contrast preserve facial structure and fabric detail",
    "Film grain feels tactile without muddying skin, hair, clothing, or car anatomy",
    "The result feels timeless and editorial rather than glossy, modern, or cartoon-like"
  ],
  "finalization": {
    "automaticPassRequired": true,
    "visualPassRequired": true,
    "reviewNotesRequired": true,
    "explicitApprovalFlag": "--approve-final"
  }
}
goldens.json
Open raw file ↗
{
  "purpose": "Judge timeless black-and-white styling, low-angle portrait composition, classic-roadster detail, soft daylight, deep contrast, and tactile film grain against six gathered examples.",
  "examples": [
    {
      "id": "roadster-portrait",
      "title": "A modern portrait becomes an old-money film still",
      "imagePath": "assets/source/hero-with-reference.jpg",
      "model": "GPT Image 2",
      "whyItWorks": [
        "The low camera angle, open shirt, tailored pants, and roadster create one coherent editorial scene",
        "Soft daylight, deep contrast, and visible grain deliver the timeless monochrome finish"
      ]
    },
    {
      "id": "windblown",
      "title": "Wind and posture carry the editorial mood",
      "imagePath": "assets/source/example-02.jpg",
      "model": "GPT Image 2",
      "whyItWorks": [
        "The three-quarter gaze and windblown hair feel candid rather than posed",
        "Shirt folds, skin, clouds, and polished car surfaces retain detail inside the monochrome grade"
      ]
    },
    {
      "id": "roadster-stance",
      "title": "A full stance keeps the car and tailoring readable",
      "imagePath": "assets/source/example-03.jpg",
      "model": "GPT Image 2",
      "whyItWorks": [
        "The relaxed hand placement and high-waisted trousers sell the old-money silhouette",
        "Roadster chrome, grassland, and cloudy sky stay crisp without losing film softness"
      ]
    },
    {
      "id": "roadside-seat",
      "title": "A seated portrait still feels cinematic",
      "imagePath": "assets/source/example-04.jpg",
      "model": "GPT Image 2",
      "whyItWorks": [
        "The off-camera look and open collar keep the frame relaxed and self-possessed",
        "Deep blacks in the trousers and car balance the bright shirt and sky"
      ]
    },
    {
      "id": "field-roadster",
      "title": "Simple styling lets the subject lead",
      "imagePath": "assets/source/example-05.jpg",
      "model": "GPT Image 2",
      "whyItWorks": [
        "The clean shirt and tailored trousers create a timeless silhouette",
        "The field, roadster, and open sky provide quiet depth without distracting from the face"
      ]
    },
    {
      "id": "glasses",
      "title": "Accessories survive the monochrome recipe",
      "imagePath": "assets/source/example-06.jpg",
      "model": "GPT Image 2",
      "whyItWorks": [
        "Glasses, tousled hair, shirt texture, and the relaxed lean remain individually legible",
        "Soft daylight and grain unify the person, car, and landscape into one film still"
      ]
    }
  ]
}
format.json
Open raw file ↗
{
  "id": "old-money-shot",
  "version": "1.0.0",
  "title": "Old Money Shot",
  "description": "Turn one portrait into a timeless black-and-white editorial beside a classic roadster, with soft daylight, deep contrast, and tactile film grain.",
  "status": "agent-ready",
  "owner": "Wiggly Studio",
  "source": {
    "creator": "@skaigenerated",
    "postUrl": "https://www.instagram.com/p/DbTPupVipI5/",
    "resourceUrl": "https://docs.google.com/document/d/18-pvSPZjWPE_3QKgNP7tgrr7frX8tvAMgmP1zJjpoY4/edit",
    "ctaKeyword": "AI",
    "modelShown": "GPT Image 2"
  },
  "outputs": [
    "1 black-and-white old-money editorial image",
    "state.json with model and prediction provenance",
    "quality-report.json with automatic and visual inspection"
  ]
}
kit.package.json
Open raw file ↗
{
  "name": "wiggly-old-money-shot-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=old-money-shot && node kit-smoke.mjs"
  },
  "dependencies": {
    "image-size": "2.0.2",
    "replicate": "1.4.0",
    "tsx": "4.20.6"
  }
}
runtime.json
Open raw file ↗
{
  "slug": "old-money-shot",
  "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": "4:5",
      "outputFormat": "jpg",
      "costEstimate": "about $0.034 per output image at the current listed rate",
      "timeEstimate": "usually 5-60 seconds"
    },
    "nano-banana-2": {
      "label": "Nano Banana 2",
      "lane": "default",
      "model": "google/nano-banana-2",
      "family": "nano-banana",
      "aspectRatio": "4:5",
      "outputFormat": "jpg",
      "resolution": "1K",
      "costEstimate": "about $0.067 per 1K output image at the current listed rate",
      "timeEstimate": "usually 10-120 seconds"
    },
    "nano-banana-pro": {
      "label": "Nano Banana Pro",
      "lane": "premium",
      "model": "google/nano-banana-pro",
      "family": "nano-banana",
      "aspectRatio": "4:5",
      "outputFormat": "jpg",
      "resolution": "1K",
      "costEstimate": "about $0.15 per 1K output image at the current listed rate",
      "timeEstimate": "usually 30-180 seconds"
    },
    "gpt-image-2": {
      "label": "GPT Image 2",
      "lane": "source model",
      "model": "openai/gpt-image-2",
      "family": "gpt-image",
      "aspectRatio": "2:3",
      "outputFormat": "jpeg",
      "quality": "medium",
      "timeEstimate": "usually 20-120 seconds"
    }
  },
  "expectedOutputs": 1,
  "maximumAttempts": 3,
  "smokeInputPath": "assets/source/reference-input.jpg",
  "smokeExamplePath": "assets/source/example-output.jpg",
  "minimumOutputWidth": 640,
  "minimumOutputHeight": 800,
  "minimumOutputBytes": 51200,
  "manualReview": [
    "recognizable subject identity",
    "low-angle editorial composition",
    "classic roadster anatomy",
    "soft daylight and deep monochrome contrast",
    "tactile film grain without muddy detail"
  ]
}
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 portrait at least 512px on both axes · A Replicate API token only when generation is approved

Output

One inspected old-money editorial image plus prediction and quality provenance