Replicate
google/nano-banana-2-lite · google/nano-banana-2 · google/nano-banana-pro
Generate the approved media in this recipe.
REPLICATE_API_TOKENTurn one portrait into eight believable lifestyle posts that look like a full social calendar rather than an AI demo.
By Wiggly Studio · Updated July 2026


Shared recipe family
Fake It Till You Make It 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 prediction per selected scene; the complete set is eight predictions
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 8 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.

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

Supplied creator reference—not a new Wiggly-generated result.
Examples
8 saved examples for this recipe—not 8 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 portrait, selected lifestyle prompt, and model route.
Step 02
The portrait and exact selected prompt checked locally.
Step 03 · approval · provider
One selected scene per paid prediction; repeat only for approved variants.
Step 04 · approval
Automatic file checks plus an actual visual review for every scene.
Proof & quality
Judge identity continuity, believable lifestyle styling, natural smartphone framing, prop geometry, and photographic realism across all eight gathered scenes.
The delivered Google Doc supplied Nano Banana Pro and eight exact prompts. The Instagram carousel supplied the eight matching source outputs.
The creator did not publish a separate original input, so the clean sheet-mask carousel scene is reused only as Wiggly's visual identity anchor.
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 Fake It Till You Make It Format This runnable Repo preserves the eight exact prompts and eight native carousel examples gathered from @skaigenerated. Each selected scene is one independent Replicate prediction so cost and retries stay visible. Run from `v3`: ```bash npm install npm run format:skai-image -- check --format=fake-it-till-you-make-it npm run format:skai-image -- smoke --format=fake-it-till-you-make-it npm run format:skai-image -- init --format=fake-it-till-you-make-it --run=my-selfie --variant=yellow-pirelli-cap --input=/absolute/path/to/portrait.jpg npm run format:skai-image -- validate --format=fake-it-till-you-make-it --run=my-selfie npm run format:skai-image -- estimate --format=fake-it-till-you-make-it --run=my-selfie ``` Generation requires `REPLICATE_API_TOKEN` and explicit approval: ```bash npm run format:skai-image -- render --format=fake-it-till-you-make-it --run=my-selfie --approve-paid ``` Use one run per selected variant. A complete eight-image set uses eight paid predictions. No Replicate proof call was made while packaging this Repo. Model routes: - Economy: `google/nano-banana-2-lite` - Default: `google/nano-banana-2` - Premium/source: `google/nano-banana-pro`
--- name: wiggly-fake-it-till-you-make-it description: Turn one portrait into up to eight believable lifestyle posts using the exact gathered SKAI prompts. --- # Fake It Till You Make It Use the packaged runner and prompt variants. Do not call Replicate separately or create another render path. Ask one short question at a time: 1. Which portrait should I use? 2. Do you want one scene or the complete eight-image set? Variants: `sheet-mask-mirror`, `luxury-bathroom`, `shooting-range`, `yellow-pirelli-cap`, `tropical-hat`, `nyc-bench`, `concrete-cafe`, `bed-mask` For each selected variant, use a unique run id: ```bash npm run format:skai-image -- init --format=fake-it-till-you-make-it --run=<id> --variant=<variant> --input=<absolute-image-path> npm run format:skai-image -- validate --format=fake-it-till-you-make-it --run=<id> npm run format:skai-image -- estimate --format=fake-it-till-you-make-it --run=<id> npm run format:skai-image -- render --format=fake-it-till-you-make-it --run=<id> --approve-paid npm run format:skai-image -- inspect --format=fake-it-till-you-make-it --run=<id> npm run format:skai-image -- inspect --format=fake-it-till-you-make-it --run=<id> --visual-pass --review-notes="<specific observations>" npm run format:skai-image -- finalize --format=fake-it-till-you-make-it --run=<id> --approve-final ``` Hard rules: - Preserve the reference identity unless the user explicitly requests a new subject. - Keep the selected gathered prompt exact. - State that one scene is one paid prediction; all eight means eight predictions. - Validate every run before spending. - Never generate without `--approve-paid`. - Persist and resume each prediction id. - Never exceed three attempts for any scene. - View every output and record scene-specific 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.",
"No proof generation was purchased for this package.",
"Each selected scene is one independent paid prediction.",
"The complete eight-image set therefore uses eight predictions.",
"Paid generation requires explicit approval and is capped at three attempts per scene."
]
}
{
"required": [
{
"id": "portrait",
"type": "image",
"formats": ["jpg", "png", "webp"],
"minimumWidth": 512,
"minimumHeight": 512,
"maximumBytes": 26214400
}
],
"question": "Which portrait should I use, and do you want one scene or the complete eight-image set?",
"variants": [
"sheet-mask-mirror",
"luxury-bathroom",
"shooting-range",
"yellow-pirelli-cap",
"tropical-hat",
"nyc-bench",
"concrete-cafe",
"bed-mask"
],
"defaults": {
"model": "nano-banana-2",
"variant": "yellow-pirelli-cap",
"aspectRatio": "3:4",
"outputCountPerRun": 1
},
"modelRoutes": {
"economy": "google/nano-banana-2-lite",
"default": "google/nano-banana-2",
"premium": "google/nano-banana-pro"
}
}
{
"progress": "Prepare -> Validate -> Transform -> Inspect",
"attemptCapPerScene": 3,
"stages": [
{
"id": "prepare",
"output": "One run pinned to the portrait, selected lifestyle prompt, and model route.",
"paid": false,
"approvalRequired": false
},
{
"id": "validate",
"output": "The portrait and exact selected prompt checked locally.",
"paid": false,
"approvalRequired": false
},
{
"id": "transform",
"output": "One selected scene per paid prediction; repeat only for approved variants.",
"paid": true,
"approvalRequired": true
},
{
"id": "inspect",
"output": "Automatic file checks plus an actual visual review for every scene.",
"paid": false,
"approvalRequired": true
}
]
}
{
"sourceReference": {
"creator": "@skaigenerated",
"postUrl": "https://www.instagram.com/skaigenerated/p/Da8Wg1QFpAd/",
"resourceUrl": "https://docs.google.com/document/d/1ZxKvu3LJSc83TRrpYfxQlLTK8-o5Skt8FRvlF4UBrUU/edit",
"guide": "assets/source/guide.pdf",
"referenceInset": "assets/source/reference-input.jpg",
"verification": "The delivered Google Doc supplied Nano Banana Pro and eight exact prompts. The Instagram carousel supplied the eight matching source outputs.",
"referenceNote": "The creator did not publish a separate original input, so the clean sheet-mask carousel scene is reused only as Wiggly's visual identity anchor."
},
"examples": [
{ "variant": "sheet-mask-mirror", "path": "assets/source/sheet-mask-mirror.jpg" },
{ "variant": "luxury-bathroom", "path": "assets/source/luxury-bathroom.jpg" },
{ "variant": "shooting-range", "path": "assets/source/shooting-range.jpg" },
{ "variant": "yellow-pirelli-cap", "path": "assets/source/yellow-pirelli-cap.jpg" },
{ "variant": "tropical-hat", "path": "assets/source/tropical-hat.jpg" },
{ "variant": "nyc-bench", "path": "assets/source/nyc-bench.jpg" },
{ "variant": "concrete-cafe", "path": "assets/source/concrete-cafe.jpg" },
{ "variant": "bed-mask", "path": "assets/source/bed-mask.jpg" }
]
}
{
"automatic": [
"Exactly 1 decodable JPG, PNG, or WebP output per run",
"At least 640x800 pixels",
"Aspect ratio within 0.02 of 3:4",
"At least 50 KB"
],
"visual": [
"The reference identity remains recognizable unless the user explicitly requests a new subject",
"The selected scene matches its exact packaged prompt",
"Faces, hands, clothing, phones, glasses, and scene props have coherent geometry",
"The framing feels like a believable smartphone or candid lifestyle photograph",
"The result is photorealistic rather than CGI or illustration"
],
"finalization": {
"automaticPassRequired": true,
"visualPassRequired": true,
"reviewNotesRequired": true,
"explicitApprovalFlag": "--approve-final"
}
}
{
"purpose": "Judge identity continuity, believable lifestyle styling, natural smartphone framing, prop geometry, and photographic realism across all eight gathered scenes.",
"examples": [
{
"id": "yellow-pirelli-cap",
"title": "Yellow Pirelli Cap Mirror Selfie",
"imagePath": "assets/source/yellow-pirelli-cap.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"The bright shirt, cap embroidery, jewelry, and phone stay crisp",
"Flat daylight keeps the mirror selfie casual",
"The playful expression prevents the frame from feeling over-directed"
]
},
{
"id": "luxury-bathroom",
"title": "Luxury Bathroom Streetwear",
"imagePath": "assets/source/luxury-bathroom.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"Layered streetwear remains readable inside the dark tiled room",
"The raised cocktail glass creates a convincing candid action",
"Warm hotel light balances the cool mirror reflection"
]
},
{
"id": "shooting-range",
"title": "Leather Vest Shooting Range",
"imagePath": "assets/source/shooting-range.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"The three-quarter angle makes the stance easy to read",
"Safety gear, lane number, target, and handgun retain useful detail",
"Hard fluorescent light supports the gritty candid look"
]
},
{
"id": "sheet-mask-mirror",
"title": "Sheet Mask Bathroom Mirror Selfie",
"imagePath": "assets/source/sheet-mask-mirror.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"The crinkled translucent mask looks physically worn",
"Wet hair and dim stone surfaces sell the private bathroom moment",
"The loose pose feels unfiltered rather than editorial"
]
},
{
"id": "tropical-hat",
"title": "Tropical Sky Hat Selfie",
"imagePath": "assets/source/tropical-hat.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"The extreme low angle turns the blue sky into clean negative space",
"Frayed canvas, mirrored lenses, beads, and mesh retain tactile texture",
"Hard midday light feels true to a spontaneous vacation selfie"
]
},
{
"id": "nyc-bench",
"title": "NYC Street Bench",
"imagePath": "assets/source/nyc-bench.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"Both full-body outfits remain distinct and readable",
"Iced drinks and deadpan expressions keep the frame casually social",
"Dappled street light avoids a studio-polished finish"
]
},
{
"id": "concrete-cafe",
"title": "Raw Concrete Café",
"imagePath": "assets/source/concrete-cafe.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"Golden window light builds strong cinematic contrast",
"Leather, satin, concrete, and wood keep separate material textures",
"The reclined posture creates a quiet unbothered mood"
]
},
{
"id": "bed-mask",
"title": "Lying in Bed With a Sheet Mask",
"imagePath": "assets/source/bed-mask.jpg",
"model": "Nano Banana Pro",
"whyItWorks": [
"The overhead crop feels intimate and accidental",
"Mask wrinkles, earbuds, tattoos, and bedding retain realistic detail",
"Warm side light preserves the raw phone-photo character"
]
}
]
}
{
"id": "fake-it-till-you-make-it",
"version": "1.0.0",
"title": "Fake It Till You Make It",
"description": "Turn one reference portrait into eight believable lifestyle posts spanning mirrors, streetwear, travel, nightlife, and quiet candid moments.",
"status": "agent-ready",
"owner": "Wiggly Studio",
"source": {
"creator": "@skaigenerated",
"postUrl": "https://www.instagram.com/skaigenerated/p/Da8Wg1QFpAd/",
"resourceUrl": "https://docs.google.com/document/d/1ZxKvu3LJSc83TRrpYfxQlLTK8-o5Skt8FRvlF4UBrUU/edit",
"ctaKeyword": "AI",
"modelShown": "Nano Banana Pro"
},
"outputs": [
"1 inspected 3:4 image per selected lifestyle scene",
"up to 8 finalized scene runs for the complete set",
"state.json and quality-report.json for every scene"
]
}
{
"name": "wiggly-fake-it-till-you-make-it-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=fake-it-till-you-make-it && node kit-smoke.mjs"
},
"dependencies": {
"image-size": "2.0.2",
"replicate": "1.4.0",
"tsx": "4.20.6"
}
}
{
"slug": "fake-it-till-you-make-it",
"version": "1.0.0",
"promptPath": "prompts/yellow-pirelli-cap.txt",
"promptVariants": {
"sheet-mask-mirror": "prompts/sheet-mask-mirror.txt",
"luxury-bathroom": "prompts/luxury-bathroom.txt",
"shooting-range": "prompts/shooting-range.txt",
"yellow-pirelli-cap": "prompts/yellow-pirelli-cap.txt",
"tropical-hat": "prompts/tropical-hat.txt",
"nyc-bench": "prompts/nyc-bench.txt",
"concrete-cafe": "prompts/concrete-cafe.txt",
"bed-mask": "prompts/bed-mask.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 / source model",
"model": "google/nano-banana-pro",
"family": "nano-banana",
"aspectRatio": "3:4",
"outputFormat": "jpg",
"resolution": "1K"
}
},
"expectedOutputs": 1,
"maximumAttempts": 3,
"smokeInputPath": "assets/source/reference-input.jpg",
"smokeExamplePath": "assets/source/yellow-pirelli-cap.jpg",
"minimumOutputWidth": 640,
"minimumOutputHeight": 800,
"minimumOutputBytes": 51200,
"manualReview": [
"recognizable reference identity",
"selected lifestyle scene fidelity",
"believable face, hands, clothing, and props",
"natural smartphone framing",
"photographic realism"
]
}
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 prediction per selected scene; the complete set is eight predictions
You provide
One JPEG, PNG, or WebP portrait at least 512px on both axes · One scene or the complete eight-image set · A Replicate API token only when generation is approved
Output
One inspected 3:4 JPG per selected scene, with run and quality provenance