Curated Formatv1.0.0

Lord of the Rings

Give one existing photo an immersive, photoreal sunrise fantasy grade while preserving its subject, composition, clothing, pose, and background.

By Wiggly Studio · Updated July 2026

Cinematic fantasy grade: Turn an ordinary greenhouse into an epic sunrise

Shared recipe family

One family. 31 recipes.

Lord of the Rings 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

About $0.067 on the default route 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 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.

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 style reference

Creator style reference

The native cover already contains its own before-and-after comparison, so Discover must not add a second reference inset to it. The separately identified Wiggly proof uses its own fixture input for one additional truthful pair. The two CTA slides are intentionally excluded.

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 original composition, subject, pose, clothing, expression, and identity
  • The camera angle, perspective, framing, and crop
  • Every existing background element and object
  • A believable photographic rendering

What you bring

  • One 3:4 JPEG, PNG, or WebP photo 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.

Cinematic fantasy grade: Turn an ordinary greenhouse into an epic sunrise

Example 01 · Cinematic fantasy grade

Turn an ordinary greenhouse into an epic sunrise

Open finished ad
Wiggly proof: Keep the whole conservatory while changing the hourReference for Keep the whole conservatory while changing the hour

Example 02 · Wiggly proof

Keep the whole conservatory while changing the hour

Open finished ad
SKAI source example: Turn glasshouse water into a hidden valley

Example 03 · SKAI source example

Turn glasshouse water into a hidden valley

Open finished ad
SKAI source example: Make the path invite an adventure

Example 05 · SKAI source example

Make the path invite an adventure

Open finished ad
SKAI source example: Keep every flower while changing the hour

Example 06 · SKAI source example

Keep every flower while changing the hour

Open finished ad
SKAI source example: Carry a real person through the atmosphere

Example 07 · SKAI source example

Carry a real person through the atmosphere

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 source image, exact gathered prompt, and selected model route.

  2. Step 02

    Validate

    The 3:4 image and prompt contract checked locally.

  3. Step 03 · approval · provider

    Transform

    One photoreal cinematic fantasy sunrise grade 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 exact source preservation, believable upper-left sunrise light, natural fantasy atmosphere, restrained color grading, Smart HDR detail, and photographic realism.

The delivered Google Doc supplied the exact GPT Image 2 prompt. The Instagram carousel supplied one native before-and-after cover and five native 3:4 transformation outputs.

The native cover already contains its own before-and-after comparison, so Discover must not add a second reference inset to it. The separately identified Wiggly proof uses its own fixture input for one additional truthful pair. The two CTA slides are intentionally excluded.

Saved reference

See the complete transformation at a glance

  • The native cover keeps the before and after together in one honest frame
  • The subject, greenhouse composition, and point of view stay fixed
  • The warmer directional light immediately communicates the format

Saved reference

Prove an ordinary conservatory photo can hold the grade

  • The same traveler, clothing, pose, greenhouse structure, plants, rocks, and path remain recognizable
  • Upper-left sunlight, soft rays, and light haze reshape the mood without inventing a new setting
  • Deep greens and controlled gold highlights remain photographic rather than painterly

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 · 5 checks
  • 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 · 6 checks
  • The source subject, pose, clothing, composition, camera angle, perspective, framing, and background remain recognizable
  • A soft sunrise reads naturally from the upper left
  • God rays, volumetric light, mist, and lens flare remain subtle and physically plausible
  • Deep greens, warm highlights, clean blues, accurate skin tones, and neutral shadows avoid an orange or yellow cast
  • Dynamic range, local contrast, texture, and detail feel like a polished phone photograph
  • The result remains fully photorealistic instead of becoming costume art, a painting, or an obviously AI-generated fantasy scene
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 Lord of the Rings Format

This runnable Repo preserves the exact prompt delivered by @skaigenerated, the
native before-and-after carousel cover, and five native source examples. A
separate Wiggly proof uses one fixture image so agents can inspect a truthful
input and output without calling a paid provider.

Run from `v3`:

```bash
npm install
npm run format:skai-image -- check --format=lord-of-the-rings
npm run format:skai-image -- smoke --format=lord-of-the-rings
npm run format:skai-image -- init --format=lord-of-the-rings --run=my-lotr-grade --input=/absolute/path/to/3-by-4-image.jpg
npm run format:skai-image -- validate --format=lord-of-the-rings --run=my-lotr-grade
npm run format:skai-image -- estimate --format=lord-of-the-rings --run=my-lotr-grade
```

The input must already be 3:4 so the fixed output route can honor the prompt's
composition-preservation rule. Add `--model=nano-banana-2-lite` or
`--model=nano-banana-pro` to `init` to select the economy or premium route.

Generation requires `REPLICATE_API_TOKEN`. Stop after `estimate` and get the
user's explicit approval before supplying the paid flag:

```bash
npm run format:skai-image -- render --format=lord-of-the-rings --run=my-lotr-grade --approve-paid
```

No Replicate proof call was made while packaging this Repo.

- Economy: `google/nano-banana-2-lite`
- Default: `google/nano-banana-2`
- Premium: `google/nano-banana-pro`
- Model named in the source guide: `openai/gpt-image-2`

The source model is recorded for provenance. The runnable lanes use the
lower-cost Nano Banana routes requested for Wiggly and preserve the carousel's
3:4 output shape. Re-run `estimate` immediately before approval because
provider pricing can change.
SKILL.md
Open raw file ↗
---
name: wiggly-lord-of-the-rings
description: Give one existing photo a photoreal cinematic fantasy sunrise grade using the exact gathered SKAI prompt.
---

# Lord of the Rings

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=lord-of-the-rings
npm run format:skai-image -- smoke --format=lord-of-the-rings
```

Ask one short question:

> Which 3:4 photo should I give a cinematic Lord of the Rings sunrise grade?

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

Hard rules:

- Preserve the source composition, subject, pose, clothing, framing, perspective, and background elements.
- Use a user-approved 3:4 input before validation so the fixed 3:4 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.
- Keep the result photorealistic: this is a sunrise atmosphere and color-grade edit, not a costume or environment replacement.
- 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`.
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 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."
  ]
}
inputs.json
Open raw file ↗
{
  "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 give a cinematic Lord of the Rings sunrise grade?",
  "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"
}
pipeline.json
Open raw file ↗
{
  "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 photoreal cinematic fantasy sunrise grade 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/skaigenerated/p/Dbbkg5nilsa/",
    "resourceUrl": "https://docs.google.com/document/d/1oYM_XsA5XqdgKtm5cMbgs_0WYnoR7dD0LSdTIDicEvo/mobilebasic",
    "guide": "assets/source/guide.txt",
    "nativeHero": "assets/source/skai-hero.jpg",
    "referenceInset": "assets/source/reference-input.jpg",
    "verification": "The delivered Google Doc supplied the exact GPT Image 2 prompt. The Instagram carousel supplied one native before-and-after cover and five native 3:4 transformation outputs.",
    "referenceNote": "The native cover already contains its own before-and-after comparison, so Discover must not add a second reference inset to it. The separately identified Wiggly proof uses its own fixture input for one additional truthful pair. The two CTA slides are intentionally excluded."
  },
  "examples": [
    { "id": "native-hero", "path": "assets/source/skai-hero.jpg", "provenance": "@skaigenerated carousel before-and-after cover" },
    { "id": "wiggly-proof", "path": "assets/source/wiggly-proof.jpg", "provenance": "Wiggly built-in image-generation proof" },
    { "id": "waterfall-conservatory", "path": "assets/source/skai-example-01.jpg", "provenance": "@skaigenerated carousel" },
    { "id": "moss-garden", "path": "assets/source/skai-example-02.jpg", "provenance": "@skaigenerated carousel" },
    { "id": "forest-path", "path": "assets/source/skai-example-03.jpg", "provenance": "@skaigenerated carousel" },
    { "id": "glasshouse-garden", "path": "assets/source/skai-example-04.jpg", "provenance": "@skaigenerated carousel" },
    { "id": "stepping-stone-walk", "path": "assets/source/skai-example-05.jpg", "provenance": "@skaigenerated carousel" }
  ]
}
quality.json
Open raw file ↗
{
  "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 source subject, pose, clothing, composition, camera angle, perspective, framing, and background remain recognizable",
    "A soft sunrise reads naturally from the upper left",
    "God rays, volumetric light, mist, and lens flare remain subtle and physically plausible",
    "Deep greens, warm highlights, clean blues, accurate skin tones, and neutral shadows avoid an orange or yellow cast",
    "Dynamic range, local contrast, texture, and detail feel like a polished phone photograph",
    "The result remains fully photorealistic instead of becoming costume art, a painting, or an obviously AI-generated fantasy scene"
  ],
  "finalization": {
    "automaticPassRequired": true,
    "visualPassRequired": true,
    "reviewNotesRequired": true,
    "explicitApprovalFlag": "--approve-final"
  }
}
goldens.json
Open raw file ↗
{
  "purpose": "Judge exact source preservation, believable upper-left sunrise light, natural fantasy atmosphere, restrained color grading, Smart HDR detail, and photographic realism.",
  "examples": [
    {
      "id": "native-hero",
      "title": "See the complete transformation at a glance",
      "imagePath": "assets/source/skai-hero.jpg",
      "model": "GPT Image 2 · SKAI source",
      "whyItWorks": [
        "The native cover keeps the before and after together in one honest frame",
        "The subject, greenhouse composition, and point of view stay fixed",
        "The warmer directional light immediately communicates the format"
      ]
    },
    {
      "id": "wiggly-proof",
      "title": "Prove an ordinary conservatory photo can hold the grade",
      "imagePath": "assets/source/wiggly-proof.jpg",
      "model": "Wiggly built-in proof",
      "whyItWorks": [
        "The same traveler, clothing, pose, greenhouse structure, plants, rocks, and path remain recognizable",
        "Upper-left sunlight, soft rays, and light haze reshape the mood without inventing a new setting",
        "Deep greens and controlled gold highlights remain photographic rather than painterly"
      ]
    },
    {
      "id": "waterfall-conservatory",
      "title": "Turn glasshouse water into a hidden valley",
      "imagePath": "assets/source/skai-example-01.jpg",
      "model": "GPT Image 2 · SKAI source",
      "whyItWorks": [
        "The waterfall, pool, glass roof, and dense planting remain fully legible",
        "Directional rays create depth through the foliage",
        "Natural greens keep the frame grounded"
      ]
    },
    {
      "id": "moss-garden",
      "title": "Let a quiet garden feel mythic",
      "imagePath": "assets/source/skai-example-02.jpg",
      "model": "GPT Image 2 · SKAI source",
      "whyItWorks": [
        "The lantern, bridge, koi pond, and clipped shrubs preserve their exact garden logic",
        "Soft mist and sunrise light add atmosphere without replacing the location",
        "Warm highlights stay balanced by neutral shadows"
      ]
    },
    {
      "id": "forest-path",
      "title": "Make the path invite an adventure",
      "imagePath": "assets/source/skai-example-03.jpg",
      "model": "GPT Image 2 · SKAI source",
      "whyItWorks": [
        "The walkway and surrounding plants retain a convincing photographic structure",
        "God rays reveal depth instead of flattening the foliage",
        "The blue sky and deep greens avoid a heavy orange cast"
      ]
    },
    {
      "id": "glasshouse-garden",
      "title": "Keep every flower while changing the hour",
      "imagePath": "assets/source/skai-example-04.jpg",
      "model": "GPT Image 2 · SKAI source",
      "whyItWorks": [
        "The glasshouse, path, hydrangeas, and plant beds keep their detailed arrangement",
        "Low sunrise light adds cinematic contrast without crushing the shadows",
        "Fine texture survives the stronger dynamic range"
      ]
    },
    {
      "id": "stepping-stone-walk",
      "title": "Carry a real person through the atmosphere",
      "imagePath": "assets/source/skai-example-05.jpg",
      "model": "GPT Image 2 · SKAI source",
      "whyItWorks": [
        "The person, clothing, stepping stones, pond, and garden remain recognizable",
        "The light reads from the upper left and follows the scene naturally",
        "Subtle haze supports depth without making the photograph look synthetic"
      ]
    }
  ]
}
format.json
Open raw file ↗
{
  "id": "lord-of-the-rings",
  "version": "1.0.0",
  "title": "Lord of the Rings",
  "description": "Give one existing photo an immersive, photoreal sunrise fantasy grade while preserving its subject, composition, clothing, pose, and background.",
  "status": "agent-ready",
  "owner": "Wiggly Studio",
  "source": {
    "creator": "@skaigenerated",
    "postUrl": "https://www.instagram.com/skaigenerated/p/Dbbkg5nilsa/",
    "resourceUrl": "https://docs.google.com/document/d/1oYM_XsA5XqdgKtm5cMbgs_0WYnoR7dD0LSdTIDicEvo/mobilebasic",
    "ctaKeyword": "AI",
    "modelShown": "GPT Image 2"
  },
  "outputs": [
    "1 inspected 3:4 photoreal fantasy sunrise grade",
    "state.json with model and prediction provenance",
    "quality-report.json with automatic and visual inspection"
  ]
}
kit.package.json
Open raw file ↗
{
  "name": "wiggly-lord-of-the-rings-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=lord-of-the-rings && node kit-smoke.mjs"
  },
  "dependencies": {
    "image-size": "2.0.2",
    "replicate": "1.4.0",
    "tsx": "4.20.6"
  }
}
runtime.json
Open raw file ↗
{
  "slug": "lord-of-the-rings",
  "version": "1.0.0",
  "promptPath": "prompts/transform.txt",
  "input": {
    "mode": "image",
    "formats": ["jpg", "png", "webp"],
    "minimumWidth": 512,
    "minimumHeight": 512,
    "maximumBytes": 26214400,
    "aspectRatio": "3:4",
    "aspectRatioTolerance": 0.02
  },
  "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",
      "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": "3:4",
      "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": "3:4",
      "outputFormat": "jpg",
      "resolution": "1K",
      "costEstimate": "about $0.15 per 1K output image at the current listed rate",
      "timeEstimate": "usually 30-180 seconds"
    }
  },
  "expectedOutputs": 1,
  "maximumAttempts": 3,
  "smokeInputPath": "assets/source/reference-input.jpg",
  "smokeExamplePath": "assets/source/wiggly-proof.jpg",
  "minimumOutputWidth": 640,
  "minimumOutputHeight": 800,
  "minimumOutputBytes": 51200,
  "manualReview": [
    "recognizable source subject, pose, clothing, composition, and background",
    "soft upper-left sunrise with believable rays, mist, and lens flare",
    "deep natural greens and controlled warm highlights",
    "clean blues, accurate skin tones, and neutral shadows",
    "strong dynamic range and fine photographic texture",
    "fully photorealistic fantasy atmosphere without invented scene elements"
  ]
}
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 transformAbout $0.067 on the default 1K route · usually under 2 min
Inspect + finalizeFree · about 1 min

About $0.067 on the default route and usually 2-4 min

You provide

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

Output

One inspected 3:4 cinematic fantasy sunrise grade plus prediction and quality provenance