Replicate
google/nano-banana-2-lite · google/nano-banana-2 · google/nano-banana-pro
Generate the approved media in this recipe.
REPLICATE_API_TOKENPreserve one photograph while adding natural crystal-like sparkles, warm golden-hour light, filmic color, and a premium in-camera finish.
By Wiggly Studio · Updated July 2026


Shared recipe family
Sparkling Effect 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 familyBefore you start
google/nano-banana-2-lite · google/nano-banana-2 · google/nano-banana-pro
Generate the approved media in this recipe.
REPLICATE_API_TOKENSetup, 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.
Included assets
The published package includes its agent instructions, input contract, and quality rules, plus 4 viewable asset references below. Reference media teaches the recipe; it is not a new result for your input.

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

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

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

Supplied creator reference—not a new Wiggly-generated result.
Examples
4 saved examples for this recipe—not 4 separate Repos. Each example keeps its original version and provenance.








From input to output
From the published pipeline.json. The agent follows the packaged runtime and its approval gates.
Step 01
One run pinned to the photo, exact gathered prompt, and selected model route.
Step 02
The photo and prompt contract checked locally.
Step 03 · approval · provider
One Sparkling Effect transform from one approved prediction.
Step 04 · approval
Automatic file checks plus an actual visual review.
Proof & quality
Judge strict source preservation, realistic sunlight-driven sparkles, warm cinematic light, filmic color, and a premium photographic finish.
The Instagram DM delivered the public Google Doc with the exact GPT Image 2 prompt. The original carousel supplied its cover and four complete native before-and-after examples.
Wiggly overlays each packaged original at the top right of its matching output on the consumer Format page.
Saved reference
Saved reference
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.
Open the package
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.
# Wiggly Sparkling Effect Format This runnable Repo preserves the exact gathered prompt, source notes, original carousel cover, and four native SKAI before-and-after 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=sparkling-effect npm run format:skai-image -- smoke --format=sparkling-effect npm run format:skai-image -- init --format=sparkling-effect --run=my-photo --input=/absolute/path/to/photo.jpg npm run format:skai-image -- validate --format=sparkling-effect --run=my-photo npm run format:skai-image -- estimate --format=sparkling-effect --run=my-photo ``` Generation requires `REPLICATE_API_TOKEN` and explicit approval: ```bash npm run format:skai-image -- render --format=sparkling-effect --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 source model is recorded as provenance; the runnable Wiggly routes use Replicate.
--- name: wiggly-sparkling-effect description: Apply the exact gathered SKAI Sparkling Effect prompt to one photograph. --- # Sparkling Effect 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 give the Sparkling Effect? Then run: ```bash npm run format:skai-image -- init --format=sparkling-effect --run=<id> --input=<absolute-image-path> npm run format:skai-image -- validate --format=sparkling-effect --run=<id> npm run format:skai-image -- estimate --format=sparkling-effect --run=<id> npm run format:skai-image -- render --format=sparkling-effect --run=<id> --approve-paid npm run format:skai-image -- inspect --format=sparkling-effect --run=<id> npm run format:skai-image -- inspect --format=sparkling-effect --run=<id> --visual-pass --review-notes="<specific observations>" npm run format:skai-image -- finalize --format=sparkling-effect --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`.
{
"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 examples were labeled GPT Image 2; the packaged Replicate runtime uses Nano Banana 2 routes.",
"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."
]
}
{
"required": [
{
"id": "photo",
"type": "image",
"formats": ["jpg", "png", "webp"],
"minimumWidth": 512,
"minimumHeight": 512,
"maximumBytes": 26214400
}
],
"question": "Which photo should I give the Sparkling Effect?",
"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"
}
}
{
"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 Sparkling Effect transform from one approved prediction.",
"paid": true,
"approvalRequired": true
},
{
"id": "inspect",
"output": "Automatic file checks plus an actual visual review.",
"paid": false,
"approvalRequired": true
}
]
}
{
"sourceReference": {
"creator": "@skaigenerated",
"postUrl": "https://www.instagram.com/skaigenerated/p/DbD3PtGitbO/",
"resourceTitle": "Sparkling Effect Prompt",
"guide": "assets/source/guide.txt",
"cover": "assets/source/cover.jpg",
"referenceInset": "assets/source/shoreline-bather-reference.jpg",
"verification": "The Instagram DM delivered the public Google Doc with the exact GPT Image 2 prompt. The original carousel supplied its cover and four complete native before-and-after examples.",
"referenceNote": "Wiggly overlays each packaged original at the top right of its matching output on the consumer Format page."
},
"examples": [
{
"id": "shoreline-bather",
"path": "assets/source/shoreline-bather.jpg",
"referencePath": "assets/source/shoreline-bather-reference.jpg"
},
{
"id": "seashells",
"path": "assets/source/seashells.jpg",
"referencePath": "assets/source/seashells-reference.jpg"
},
{
"id": "ocean-texture",
"path": "assets/source/ocean-texture.jpg",
"referencePath": "assets/source/ocean-texture-reference.jpg"
},
{
"id": "walking-beach",
"path": "assets/source/walking-beach.jpg",
"referencePath": "assets/source/walking-beach-reference.jpg"
}
]
}
{
"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": [
"The subject, face, hair, clothing, pose, composition, camera angle, background, and environment remain recognizable",
"Tiny crystal-like sparkles and diamond glints follow natural sunlight and illuminated areas",
"Sparkles blend into the photograph without looking magical, pasted on, or overdone",
"Warm golden-hour light, soft bloom, volumetric light, HDR, and tonal transitions remain believable",
"ARRI-inspired color, Portra-like warmth, gentle grain, and natural contrast feel premium",
"There are no obvious AI artifacts, warped details, logos, or watermarks"
],
"finalization": {
"automaticPassRequired": true,
"visualPassRequired": true,
"reviewNotesRequired": true,
"explicitApprovalFlag": "--approve-final"
}
}
{
"purpose": "Judge strict source preservation, realistic sunlight-driven sparkles, warm cinematic light, filmic color, and a premium photographic finish.",
"examples": [
{
"id": "shoreline-bather",
"title": "Sparkling Shoreline",
"imagePath": "assets/source/shoreline-bather.jpg",
"referencePath": "assets/source/shoreline-bather-reference.jpg",
"model": "GPT Image 2",
"whyItWorks": [
"The person, pose, shoreline, horizon, and camera angle stay recognizable",
"Tiny glints sit naturally on the water and illuminated areas",
"Warm light and color depth feel photographic instead of fantastical"
]
},
{
"id": "seashells",
"title": "Seashell Sparkle",
"imagePath": "assets/source/seashells.jpg",
"referencePath": "assets/source/seashells-reference.jpg",
"model": "GPT Image 2",
"whyItWorks": [
"Every shell, hand, bracelet, and crop remains intact",
"Sunlight reflections become soft micro sparkles without redrawing the scene",
"The warmer grade adds polish while preserving natural skin and shell color"
]
},
{
"id": "ocean-texture",
"title": "Sunlit Ocean Texture",
"imagePath": "assets/source/ocean-texture.jpg",
"referencePath": "assets/source/ocean-texture-reference.jpg",
"model": "GPT Image 2",
"whyItWorks": [
"The source wave pattern and close composition remain unchanged",
"Small diamond glints follow existing highlights on the water",
"Golden light adds depth without creating artificial fantasy particles"
]
},
{
"id": "walking-beach",
"title": "Golden Beach Walk",
"imagePath": "assets/source/walking-beach.jpg",
"referencePath": "assets/source/walking-beach-reference.jpg",
"model": "GPT Image 2",
"whyItWorks": [
"The person, clothing, walking pose, sea, and horizon stay recognizable",
"The scene shifts naturally toward golden hour with soft bloom",
"Sparkles remain concentrated where sunlight touches the water"
]
}
]
}
{
"id": "sparkling-effect",
"version": "1.0.0",
"title": "Sparkling Effect",
"description": "Preserve one photograph while adding natural crystal-like sparkles, golden-hour light, soft film grain, and a premium in-camera finish.",
"status": "agent-ready",
"owner": "Wiggly Studio",
"source": {
"creator": "@skaigenerated",
"postUrl": "https://www.instagram.com/skaigenerated/p/DbD3PtGitbO/",
"resourceTitle": "Sparkling Effect Prompt",
"resourceAccess": "Instagram DM to public Google Doc",
"ctaKeyword": "AI",
"modelShown": "GPT Image 2"
},
"outputs": [
"1 inspected Sparkling Effect photograph",
"state.json with model and prediction provenance",
"quality-report.json with automatic and visual inspection"
]
}
{
"name": "wiggly-sparkling-effect-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=sparkling-effect && node kit-smoke.mjs"
},
"dependencies": {
"image-size": "2.0.2",
"replicate": "1.4.0",
"tsx": "4.20.6"
}
}
{
"slug": "sparkling-effect",
"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/shoreline-bather-reference.jpg",
"smokeExamplePath": "assets/source/shoreline-bather.jpg",
"minimumOutputWidth": 640,
"minimumOutputHeight": 800,
"minimumOutputBytes": 51200,
"manualReview": [
"subject, pose, composition, camera angle, background, and environment stay recognizable",
"tiny realistic sparkles follow natural sunlight and illuminated areas",
"warm golden-hour light, soft bloom, gentle volumetric light, and smooth tonal transitions",
"premium filmic color, soft grain, natural contrast, and realistic dynamic range",
"photorealistic finish with no obvious AI artifacts"
]
}
Run it with a coding agent
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
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 Sparkling Effect photograph plus prediction and quality provenance