Curated Formatv1.0.0

GTA VI

Turn one portrait into a grounded, neon-lit character from a modern AAA open-world cutscene.

By Wiggly Studio · Updated July 2026

Portrait transformation: Vice City at street levelReference for Vice City at street level

Shared recipe family

One family. 31 recipes.

GTA VI 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

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.

Setup notes from requirements.json
  • All smoke and validation commands are local.
  • No proof generation was purchased for this package.
  • The gathered source example is the visual proof.
  • 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 2 viewable asset references below. Reference media teaches the recipe; it is not a new result for your input.

Creator example output

Creator example output

Prompt, model label, and embedded source image were fetched from the shared Google Doc and visually checked. The matching original portrait was recovered from the source Instagram carousel.

Creator reference input

Creator reference input

Prompt, model label, and embedded source image were fetched from the shared Google Doc and visually checked. The matching original portrait was recovered from the source Instagram carousel.

What stays consistent

  • The same recognizable subject
  • The original pose and expression
  • Grounded semi-realistic anatomy
  • A sharp AAA cutscene finish

What you bring

  • One JPEG, PNG, or WebP portrait 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.

1 saved examples for this recipe—not 1 separate Repos. Each example keeps its original version and provenance.

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

    A run pinned to the source portrait, exact gathered prompt, and chosen model route.

  2. Step 02

    Validate

    The image and complete provider contract checked locally.

  3. Step 03 · approval · provider

    Transform

    One GTA VI-inspired portrait from the selected Replicate model.

  4. Step 04 · approval

    Inspect

    Automatic file checks plus an actual visual review.

Proof & quality

What a good result looks like.

Judge subject identity, anatomy, grounded realism, Vice City color, and AAA cutscene finish against the gathered source example.

Prompt, model label, and embedded source image were fetched from the shared Google Doc and visually checked. The matching original portrait was recovered from the source Instagram carousel.

Saved reference

Neon Vice City source proof

  • The face and proportions stay grounded and realistic
  • Warm sunset and teal-magenta neon create a controlled Vice City palette
  • Wet streets, palms, and signage add atmosphere without swallowing the subject
  • Depth and sharpness read like a modern AAA cutscene

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 · 4 checks
  • 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 · 5 checks
  • The same person, pose, expression, and composition remain recognizable
  • Face, hands, clothing, and street geometry are coherent
  • The render is realistic rather than comic, cel-shaded, or GTA V-like
  • Warm highlights, teal shadows, and neon ambience stay controlled
  • The frame reads like a sharp modern AAA cutscene
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 GTA VI Format

This runnable Repo preserves the exact prompt and source example gathered from
@skaigenerated. It transforms one portrait into a grounded, cinematic
Vice City-inspired AAA game character through Replicate.

Run from `v3`:

```bash
npm install
npm run format:skai-image -- smoke --format=gta-vi
npm run format:skai-image -- init --format=gta-vi --run=my-character --input=/absolute/path/to/portrait.jpg
npm run format:skai-image -- validate --format=gta-vi --run=my-character
npm run format:skai-image -- estimate --format=gta-vi --run=my-character
```

Generation requires `REPLICATE_API_TOKEN` and explicit approval:

```bash
npm run format:skai-image -- render --format=gta-vi --run=my-character --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`
- Source/premium: `google/nano-banana-pro`

No Replicate proof call was made while packaging this Repo. The included source
output and guide are the proof artifacts.
SKILL.md
Open raw file ↗
---
name: wiggly-gta-vi
description: Transform one portrait into a grounded, cinematic GTA VI-inspired character using the exact gathered SKAI prompt.
---

# GTA VI

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 transform into a cinematic GTA VI-style character?

Use Nano Banana 2 by default, Nano Banana 2 Lite for economy, or Nano Banana
Pro only when the user requests the source/premium route.

```bash
npm run format:skai-image -- check --format=gta-vi
npm run format:skai-image -- init --format=gta-vi --run=<id> --input=<absolute-image-path>
npm run format:skai-image -- validate --format=gta-vi --run=<id>
npm run format:skai-image -- estimate --format=gta-vi --run=<id>
npm run format:skai-image -- render --format=gta-vi --run=<id> --approve-paid
npm run format:skai-image -- inspect --format=gta-vi --run=<id>
npm run format:skai-image -- inspect --format=gta-vi --run=<id> --visual-pass --review-notes="<specific observations>"
npm run format:skai-image -- finalize --format=gta-vi --run=<id> --approve-final
```

Hard rules:

- Preserve the subject, pose, expression, and composition.
- 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`.
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.",
    "No proof generation was purchased for this package.",
    "The gathered source example is the visual proof.",
    "Paid generation requires explicit approval and is capped at three attempts."
  ]
}
inputs.json
Open raw file ↗
{
  "required": [
    {
      "id": "portrait",
      "type": "image",
      "formats": ["jpg", "png", "webp"],
      "minimumWidth": 512,
      "minimumHeight": 512,
      "maximumBytes": 26214400
    }
  ],
  "question": "Which photo should I transform into a cinematic GTA VI-style character?",
  "defaults": {
    "model": "nano-banana-2",
    "aspectRatio": "3:4",
    "outputCount": 1
  },
  "modelRoutes": {
    "economy": "google/nano-banana-2-lite",
    "default": "google/nano-banana-2",
    "sourceModel": "google/nano-banana-pro"
  }
}
pipeline.json
Open raw file ↗
{
  "progress": "Prepare -> Validate -> Transform -> Inspect",
  "attemptCap": 3,
  "stages": [
    {
      "id": "prepare",
      "output": "A run pinned to the source portrait, 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 GTA VI-inspired portrait from the selected Replicate model.",
      "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/p/DbV-6dyDGNx/",
    "resourceUrl": "https://docs.google.com/document/d/1WjHyG4gPQcOGvHK6MDDCAX4XfhaA4PEqkWieoehTjeM/edit",
    "guide": "assets/source/guide.pdf",
    "exampleOutput": "assets/source/example-output.png",
    "referenceInput": "assets/source/reference-input.jpg",
    "promptPath": "prompts/transform.txt",
    "verification": "Prompt, model label, and embedded source image were fetched from the shared Google Doc and visually checked. The matching original portrait was recovered from the source Instagram carousel."
  },
  "fixture": {
    "path": "fixtures/input.jpg",
    "purpose": "Local validation and free smoke only; no provider call."
  }
}
quality.json
Open raw file ↗
{
  "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 same person, pose, expression, and composition remain recognizable",
    "Face, hands, clothing, and street geometry are coherent",
    "The render is realistic rather than comic, cel-shaded, or GTA V-like",
    "Warm highlights, teal shadows, and neon ambience stay controlled",
    "The frame reads like a sharp modern AAA cutscene"
  ],
  "finalization": {
    "automaticPassRequired": true,
    "visualPassRequired": true,
    "reviewNotesRequired": true,
    "explicitApprovalFlag": "--approve-final"
  }
}
goldens.json
Open raw file ↗
{
  "purpose": "Judge subject identity, anatomy, grounded realism, Vice City color, and AAA cutscene finish against the gathered source example.",
  "examples": [
    {
      "id": "skai-gta-vi",
      "type": "source-reference",
      "title": "Neon Vice City source proof",
      "inputPath": "assets/source/reference-input.jpg",
      "imagePath": "assets/source/example-output.png",
      "guidePath": "assets/source/guide.pdf",
      "sourceUrl": "https://www.instagram.com/p/DbV-6dyDGNx/",
      "model": "Nano Banana Pro",
      "whyItWorks": [
        "The face and proportions stay grounded and realistic",
        "Warm sunset and teal-magenta neon create a controlled Vice City palette",
        "Wet streets, palms, and signage add atmosphere without swallowing the subject",
        "Depth and sharpness read like a modern AAA cutscene"
      ]
    }
  ]
}
format.json
Open raw file ↗
{
  "id": "gta-vi",
  "version": "1.0.0",
  "title": "GTA VI",
  "description": "Turn one portrait into a grounded, neon-lit AAA open-world game character.",
  "status": "agent-ready",
  "owner": "Wiggly Studio",
  "source": {
    "creator": "@skaigenerated",
    "postUrl": "https://www.instagram.com/p/DbV-6dyDGNx/",
    "resourceUrl": "https://docs.google.com/document/d/1WjHyG4gPQcOGvHK6MDDCAX4XfhaA4PEqkWieoehTjeM/edit",
    "ctaKeyword": "AI",
    "modelShown": "Nano Banana Pro"
  },
  "outputs": [
    "1 portrait image",
    "state.json with model and prediction provenance",
    "quality-report.json with automatic and visual inspection"
  ]
}
kit.package.json
Open raw file ↗
{
  "name": "wiggly-gta-vi-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=gta-vi && node kit-smoke.mjs"
  },
  "dependencies": {
    "image-size": "2.0.2",
    "replicate": "1.4.0",
    "tsx": "4.20.6"
  }
}
runtime.json
Open raw file ↗
{
  "slug": "gta-vi",
  "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": "source model",
      "model": "google/nano-banana-pro",
      "family": "nano-banana",
      "aspectRatio": "3:4",
      "outputFormat": "jpg",
      "resolution": "1K"
    }
  },
  "expectedOutputs": 1,
  "maximumAttempts": 3,
  "smokeInputPath": "fixtures/input.jpg",
  "smokeExamplePath": "assets/source/example-output.png",
  "minimumOutputWidth": 640,
  "minimumOutputHeight": 800,
  "minimumOutputBytes": 51200,
  "manualReview": [
    "subject identity and pose",
    "face and hand anatomy",
    "grounded semi-realism",
    "Vice City color control",
    "AAA cutscene sharpness"
  ]
}
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 transformCurrent Replicate model rate · usually under 2 min
Inspect + finalizeFree · about 1 min

One Replicate image charge and usually 2-4 min

You provide

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

Output

One inspected 3:4 portrait plus prediction and quality provenance