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 photograph into a minimalist hand-drawn doodle with wobbly black brush lines and playful simplicity.
By Wiggly Studio · Updated July 2026


Shared recipe family
Doodle Art 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 5 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.
Examples
5 saved examples for this recipe—not 5 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 Doodle Art illustration from one approved prediction.
Step 04 · approval
Automatic file checks plus an actual visual review.
Proof & quality
Judge subject and composition preservation, handmade brush-pen character, playful simplification, white-background discipline, and clean doodle readability.
The Instagram DM delivered the public Google Doc with the exact GPT Image 2 prompt. The original eight-slide carousel supplied its cover and five native output examples; two promotional slides were omitted.
The creator did not publish the original input photos. The packaged top-right reference insets are photorealistic reconstructions made from the five native doodles with Codex's built-in image generator. They are comparison stand-ins, not creator assets, and used no Replicate credits.
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 Doodle Art Format This runnable Repo preserves the exact gathered prompt, source notes, original carousel cover, and five native SKAI 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=doodle-art npm run format:skai-image -- smoke --format=doodle-art npm run format:skai-image -- init --format=doodle-art --run=my-photo --input=/absolute/path/to/photo.jpg npm run format:skai-image -- validate --format=doodle-art --run=my-photo npm run format:skai-image -- estimate --format=doodle-art --run=my-photo ``` Generation requires `REPLICATE_API_TOKEN` and explicit approval: ```bash npm run format:skai-image -- render --format=doodle-art --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 remains source provenance; the runnable kit uses Replicate-hosted Nano Banana 2 by default, Lite for economy, and Pro for premium. The creator did not publish the original input photos. The top-right comparison insets are documented photorealistic reconstructions made with Codex's built-in image generator. They are visual stand-ins, never represented as creator assets.
--- name: wiggly-doodle-art description: Apply the exact gathered SKAI Doodle Art prompt to one portrait. --- # Doodle Art 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 turn into Doodle Art? Then run: ```bash npm run format:skai-image -- init --format=doodle-art --run=<id> --input=<absolute-image-path> npm run format:skai-image -- validate --format=doodle-art --run=<id> npm run format:skai-image -- estimate --format=doodle-art --run=<id> npm run format:skai-image -- render --format=doodle-art --run=<id> --approve-paid npm run format:skai-image -- inspect --format=doodle-art --run=<id> npm run format:skai-image -- inspect --format=doodle-art --run=<id> --visual-pass --review-notes="<specific observations>" npm run format:skai-image -- finalize --format=doodle-art --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 guide labels its examples GPT Image 2. That remains source provenance; the packaged Replicate runtime uses Nano Banana 2 by default, Lite for economy, and Pro for premium.",
"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 turn into Doodle Art?",
"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 Doodle Art illustration 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/p/DbD26niikqG/",
"resourceTitle": "Doodle Art Prompt",
"guide": "assets/source/guide.txt",
"cover": "assets/source/cover.jpg",
"referenceInset": "assets/source/neon-fashion-reference.jpg",
"verification": "The Instagram DM delivered the public Google Doc with the exact GPT Image 2 prompt. The original eight-slide carousel supplied its cover and five native output examples; two promotional slides were omitted.",
"referenceNote": "The creator did not publish the original input photos. The packaged top-right reference insets are photorealistic reconstructions made from the five native doodles with Codex's built-in image generator. They are comparison stand-ins, not creator assets, and used no Replicate credits."
},
"examples": [
{
"id": "neon-fashion",
"path": "assets/source/neon-fashion-doodle.jpg",
"referencePath": "assets/source/neon-fashion-reference.jpg",
"referenceType": "reconstructed"
},
{
"id": "blue-glasses",
"path": "assets/source/blue-glasses-doodle.jpg",
"referencePath": "assets/source/blue-glasses-reference.jpg",
"referenceType": "reconstructed"
},
{
"id": "star-sticker",
"path": "assets/source/star-sticker-doodle.jpg",
"referencePath": "assets/source/star-sticker-reference.jpg",
"referenceType": "reconstructed"
},
{
"id": "couple",
"path": "assets/source/couple-doodle.jpg",
"referencePath": "assets/source/couple-reference.jpg",
"referenceType": "reconstructed"
},
{
"id": "popsicle",
"path": "assets/source/popsicle-doodle.jpg",
"referencePath": "assets/source/popsicle-reference.jpg",
"referenceType": "reconstructed"
}
]
}
{
"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 main subject, pose, composition, and key details remain recognizable",
"Simple black brush-pen outlines feel handmade, slightly wobbly, and intentionally imperfect",
"Complex details reduce into cute, childlike shapes without flattening the subject beyond recognition",
"The background stays clean white and the linework remains minimal",
"The illustration feels playful and polished without warped anatomy, stray text, logos, or watermarks"
],
"finalization": {
"automaticPassRequired": true,
"visualPassRequired": true,
"reviewNotesRequired": true,
"explicitApprovalFlag": "--approve-final"
}
}
{
"purpose": "Judge subject and composition preservation, handmade brush-pen character, playful simplification, white-background discipline, and clean doodle readability.",
"examples": [
{
"id": "neon-fashion",
"title": "Neon Fashion Doodle",
"imagePath": "assets/source/neon-fashion-doodle.jpg",
"referencePath": "assets/source/neon-fashion-reference.jpg",
"referenceType": "reconstructed",
"model": "GPT Image 2",
"whyItWorks": [
"The folded-arm pose, sunglasses, striped sweater, lime hair, and jewelry remain readable",
"Bold black brush-pen contours simplify the fashion portrait without losing its attitude",
"Sparse color accents pop against a clean white page"
]
},
{
"id": "blue-glasses",
"title": "Blue Glasses Crop",
"imagePath": "assets/source/blue-glasses-doodle.jpg",
"referencePath": "assets/source/blue-glasses-reference.jpg",
"referenceType": "reconstructed",
"model": "GPT Image 2",
"whyItWorks": [
"The extreme right-edge crop, blue hair, and oversized glasses survive the transformation",
"Wobbly outlines and crayon-like color feel handmade rather than vector-perfect",
"The broad white negative space stays part of the composition"
]
},
{
"id": "star-sticker",
"title": "Star Sticker Portrait",
"imagePath": "assets/source/star-sticker-doodle.jpg",
"referencePath": "assets/source/star-sticker-reference.jpg",
"referenceType": "reconstructed",
"model": "GPT Image 2",
"whyItWorks": [
"The centered face, tousled hair, expression, and star-sticker pattern remain recognizable",
"Minimal black linework reduces anatomy into playful childlike shapes",
"Small color details keep the illustration lively without clutter"
]
},
{
"id": "couple",
"title": "Couple Doodle",
"imagePath": "assets/source/couple-doodle.jpg",
"referencePath": "assets/source/couple-reference.jpg",
"referenceType": "reconstructed",
"model": "GPT Image 2",
"whyItWorks": [
"Both people, the close crop, long hair, curls, and affectionate pose remain legible",
"Simple brush lines turn a two-person portrait into one coherent sketch",
"The red lip accent and tiny heart add warmth without overpowering the drawing"
]
},
{
"id": "popsicle",
"title": "Popsicle Reaction",
"imagePath": "assets/source/popsicle-doodle.jpg",
"referencePath": "assets/source/popsicle-reference.jpg",
"referenceType": "reconstructed",
"model": "GPT Image 2",
"whyItWorks": [
"The closed eyes, open-mouth reaction, earrings, jersey, hand, and popsicle remain clear",
"Expressive black strokes exaggerate the moment without changing the composition",
"One orange accent carries the entire playful color story"
]
}
]
}
{
"id": "doodle-art",
"version": "1.0.0",
"title": "Doodle Art",
"description": "Turn one photograph into a minimalist hand-drawn doodle with wobbly black brush-pen lines, playful simplification, and a clean white background.",
"status": "agent-ready",
"owner": "Wiggly Studio",
"source": {
"creator": "@skaigenerated",
"postUrl": "https://www.instagram.com/p/DbD26niikqG/",
"resourceTitle": "Doodle Art Prompt",
"resourceAccess": "Instagram DM to public Google Doc",
"ctaKeyword": "AI",
"modelShown": "GPT Image 2"
},
"outputs": [
"1 inspected Doodle Art illustration",
"state.json with model and prediction provenance",
"quality-report.json with automatic and visual inspection"
]
}
{
"name": "wiggly-doodle-art-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=doodle-art && node kit-smoke.mjs"
},
"dependencies": {
"image-size": "2.0.2",
"replicate": "1.4.0",
"tsx": "4.20.6"
}
}
{
"slug": "doodle-art",
"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/neon-fashion-reference.jpg",
"smokeExamplePath": "assets/source/neon-fashion-doodle.jpg",
"minimumOutputWidth": 640,
"minimumOutputHeight": 800,
"minimumOutputBytes": 51200,
"manualReview": [
"the main subject, pose, composition, and recognizable details stay intact",
"simple black brush-pen outlines feel slightly wobbly and handmade",
"details reduce into cute, childlike shapes without losing the subject",
"the background remains clean white with minimal linework",
"the result feels playful and intentional without warped anatomy, stray text, or watermarks"
]
}
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 Doodle Art illustration plus prediction and quality provenance