Replicate
google/nano-banana-2-lite · google/nano-banana-2 · google/nano-banana-pro
Generate the approved media in this recipe.
REPLICATE_API_TOKENSurround one existing fashion photo with physically integrated liquid-chrome sculpture while preserving the person, outfit, pose, camera, and original color.
By Wiggly Studio · Updated July 2026


Shared recipe family
Chrome Void 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 7 viewable asset references below. Reference media teaches the recipe; it is not a new result for your input.

The exact prompt, Nano Banana Pro label, guide, six examples, and before/after proof were gathered through the creator's Android Instagram comment and DM flow and visually checked. The reference fixture is cropped directly from the creator's before inset for the matching red-jacket example; no provider generation was run.

The exact prompt, Nano Banana Pro label, guide, six examples, and before/after proof were gathered through the creator's Android Instagram comment and DM flow and visually checked. The reference fixture is cropped directly from the creator's before inset for the matching red-jacket example; no provider generation was run.

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
6 saved examples for this recipe—not 6 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
A run pinned to the source photo, exact gathered prompt, and chosen model route.
Step 02
The image and complete provider contract checked locally.
Step 03 · approval · provider
One identity-preserving liquid-chrome fashion editorial image from the selected Replicate model.
Step 04 · approval
Automatic file checks plus an actual visual review.
Proof & quality
Judge identity and outfit preservation, physically integrated liquid chrome, believable reflections, clean subject visibility, and premium fashion-editorial finish against six gathered examples.
The exact prompt, Nano Banana Pro label, guide, six examples, and before/after proof were gathered through the creator's Android Instagram comment and DM flow and visually checked. The reference fixture is cropped directly from the creator's before inset for the matching red-jacket example; no provider generation was run.
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 Chrome Void Format This runnable Repo preserves the exact prompt and six transformation examples gathered from @skaigenerated. It surrounds one existing fashion photo with photoreal liquid-chrome sculpture while preserving the person, outfit, pose, camera, and original color through Replicate. Run from `v3`: ```bash npm install npm run format:skai-image -- smoke --format=chrome-void npm run format:skai-image -- init --format=chrome-void --run=my-chrome-void --input=/absolute/path/to/photo.jpg npm run format:skai-image -- validate --format=chrome-void --run=my-chrome-void npm run format:skai-image -- estimate --format=chrome-void --run=my-chrome-void ``` Generation requires `REPLICATE_API_TOKEN` and explicit approval: ```bash npm run format:skai-image -- render --format=chrome-void --run=my-chrome-void --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 and source model: `google/nano-banana-pro` No Replicate proof call was made while packaging this Repo. The six included source examples and guide are the proof artifacts.
--- name: wiggly-chrome-void description: Surround one fashion photo with photoreal liquid-chrome sculpture while preserving the subject, outfit, pose, camera, and original color using the exact gathered SKAI prompt. --- # Chrome Void Use the packaged runner and prompt. Do not call Replicate separately or create another render path. Ask one short question first: > Which photo should I surround with the Chrome Void? Use Nano Banana 2 by default, Nano Banana 2 Lite for economy, or Nano Banana Pro for the premium or source-model route. ```bash npm run format:skai-image -- check --format=chrome-void npm run format:skai-image -- init --format=chrome-void --run=<id> --input=<absolute-image-path> npm run format:skai-image -- validate --format=chrome-void --run=<id> npm run format:skai-image -- estimate --format=chrome-void --run=<id> npm run format:skai-image -- render --format=chrome-void --run=<id> --approve-paid npm run format:skai-image -- inspect --format=chrome-void --run=<id> npm run format:skai-image -- inspect --format=chrome-void --run=<id> --visual-pass --review-notes="<specific observations>" npm run format:skai-image -- finalize --format=chrome-void --run=<id> --approve-final ``` Hard rules: - Preserve identity, facial features, hair, skin tone, outfit, pose, body proportions, camera angle, and original colors. - Surround the subject with organic liquid-chrome structures without covering the face or important body parts. - Require believable reflections, contact shadows, depth, perspective, soft daylight, and premium fashion-editorial finish. - 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`.
{
"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.",
"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."
]
}
{
"required": [
{
"id": "photo",
"type": "image",
"formats": ["jpg", "png", "webp"],
"minimumWidth": 512,
"minimumHeight": 512,
"maximumBytes": 26214400
}
],
"question": "Which photo should I surround with the Chrome Void?",
"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": "google/nano-banana-pro"
}
}
{
"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 identity-preserving liquid-chrome fashion 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
}
]
}
{
"sourceReference": {
"creator": "@skaigenerated",
"postUrl": "https://www.instagram.com/p/DbYeeVCCjws/",
"resourceUrl": "https://docs.google.com/document/d/1i1jOJCSLtq7wsmWAlOTH6rG3LelgjbGvFlxjthdiF5k/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, Nano Banana Pro label, guide, six examples, and before/after proof were gathered through the creator's Android Instagram comment and DM flow and visually checked. The reference fixture is cropped directly from the creator's before inset for the matching red-jacket example; no provider generation was run."
},
"fixture": {
"path": "assets/source/reference-input.jpg",
"purpose": "Creator-provided before inset used for local validation, hero comparison, and free smoke input only; no provider call was made."
}
}
{
"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's identity, facial features, hairstyle, skin tone, outfit, pose, proportions, and camera angle remain recognizable",
"Liquid-chrome structures surround the subject without covering the face or important body parts",
"Reflections, contact shadows, depth, and perspective make the chrome feel physically present",
"Original clothing and skin colors remain intact under soft daylight and cinematic contrast",
"The result feels like a premium photoreal fashion campaign rather than a pasted effect or synthetic sculpture render"
],
"finalization": {
"automaticPassRequired": true,
"visualPassRequired": true,
"reviewNotesRequired": true,
"explicitApprovalFlag": "--approve-final"
}
}
{
"purpose": "Judge identity and outfit preservation, physically integrated liquid chrome, believable reflections, clean subject visibility, and premium fashion-editorial finish against six gathered examples.",
"examples": [
{
"id": "red-jacket-street",
"title": "Liquid chrome turns one street portrait into a campaign",
"imagePath": "assets/source/hero-with-reference.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"The red jacket, denim, hood, pose, and street camera remain recognizable",
"Chrome ribbons cast believable reflections and wrap around the scene without covering the subject"
]
},
{
"id": "boutique-mirror",
"title": "A mirror selfie keeps its clothes and casual posture",
"imagePath": "assets/source/example-02.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"The phone, shopping bag, layered outfit, cap, and proportions survive the transformation",
"Liquid-metal sculpture grows through the boutique with useful depth and contact shadows"
]
},
{
"id": "green-knit",
"title": "Soft knit texture stays legible beside hard chrome",
"imagePath": "assets/source/example-03.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"The green dress, boots, bag, crossed arms, and face stay clear",
"Chrome branches curve behind and around the body instead of flattening into a backdrop"
]
},
{
"id": "layered-mini",
"title": "A layered fashion look survives the surreal set",
"imagePath": "assets/source/example-04.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"Hair, shoulder pose, mini dress, bag, and tall boots keep their original color and shape",
"Foreground and background chrome create real depth without swallowing the person"
]
},
{
"id": "city-layers",
"title": "Busy city context still reads through the effect",
"imagePath": "assets/source/example-05.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"The cap, layered jacket, jewelry, jeans, backpack straps, and gaze remain intact",
"Reflections and occlusion place the chrome sculpture convincingly on the sidewalk"
]
},
{
"id": "graphic-knit",
"title": "Graphic clothing and accessories stay untouched",
"imagePath": "assets/source/example-06.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"The glasses, cup, knit graphics, baggy pants, shoes, and full pose remain recognizable",
"The metallic forms add spectacle without replacing the original street portrait"
]
}
]
}
{
"id": "chrome-void",
"version": "1.0.0",
"title": "Chrome Void",
"description": "Turn one portrait into a premium surreal fashion editorial surrounded by flowing liquid-chrome sculpture while preserving identity, outfit, pose, and color.",
"status": "agent-ready",
"owner": "Wiggly Studio",
"source": {
"creator": "@skaigenerated",
"postUrl": "https://www.instagram.com/p/DbYeeVCCjws/",
"resourceUrl": "https://docs.google.com/document/d/1i1jOJCSLtq7wsmWAlOTH6rG3LelgjbGvFlxjthdiF5k/edit",
"ctaKeyword": "AI",
"modelShown": "Nano Banana Pro"
},
"outputs": [
"1 surreal liquid-chrome fashion editorial image",
"state.json with model and prediction provenance",
"quality-report.json with automatic and visual inspection"
]
}
{
"name": "wiggly-chrome-void-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=chrome-void && node kit-smoke.mjs"
},
"dependencies": {
"image-size": "2.0.2",
"replicate": "1.4.0",
"tsx": "4.20.6"
}
}
{
"slug": "chrome-void",
"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",
"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"
},
"source-model": {
"label": "Nano Banana Pro",
"lane": "source model",
"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/example-output.jpg",
"minimumOutputWidth": 640,
"minimumOutputHeight": 800,
"minimumOutputBytes": 51200,
"manualReview": [
"recognizable identity, outfit, pose, and camera angle",
"liquid chrome does not cover the face or important body parts",
"physically believable reflections, shadows, depth, and perspective",
"preserved clothing and skin colors",
"premium photoreal fashion-editorial finish"
]
}
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 fashion or lifestyle photo at least 512px on both axes · A Replicate API token only when generation is approved
Output
One inspected liquid-chrome fashion editorial plus prediction and quality provenance