Wiggly / Format Lab /

cyanotype

agent-ready
v1.0.0

Cyanotype

Turn one image into a handcrafted Prussian-blue cyanotype contact print while preserving the original composition and subject.

One source image in. 1 inspected image out.

Download runnable kit

Gathered source proof

Judge subject and composition preservation, Prussian-blue tonality, real paper and chemistry texture, subtle X-ray detail when relevant, and an authentic analogue contact-print finish.

Prove a real portrait survives the chemistry
Wiggly built-in proof

Prove a real portrait survives the chemistry

  • The fixture identity, expression, clothing, and crop remain recognizable
  • Paper fibers and uneven exposure make the blue feel physically printed
  • The stationary portrait stays anatomically natural without an unnecessary skeleton
Layer the skull without losing the face
Nano Banana Pro · SKAI source

Layer the skull without losing the face

  • The sunglasses, chain, face, and hair remain legible
  • The skull reads as a translucent photographic exposure
  • Soft deckled edges keep the image handmade
Keep two personalities in one print
Nano Banana Pro · SKAI source

Keep two personalities in one print

  • Both the seated woman and dog remain immediately recognizable
  • The porch and plants retain spatial depth
  • The restrained skeletal layer supports rather than dominates the scene
Make texture survive a surreal embrace
Nano Banana Pro · SKAI source

Make texture survive a surreal embrace

  • Fur, fabric, and faces separate cleanly inside one blue palette
  • The unusual pose remains readable
  • Chemical variation gives the print real tactile character
Turn a beach snapshot into an exposure study
Nano Banana Pro · SKAI source

Turn a beach snapshot into an exposure study

  • The person, sunglasses, shoreline, and horizon stay recognizable
  • The torso skeleton blends into the existing body
  • White sky and deep-blue shadows preserve convincing tonal range
Let an animal portrait carry the X-ray idea
Nano Banana Pro · SKAI source

Let an animal portrait carry the X-ray idea

  • The cat and person remain distinct at a glance
  • Fine whiskers, hair, and jacket texture survive the print process
  • The skeletal detail feels delicate rather than medical
Use anatomy to amplify motion
Nano Banana Pro · SKAI source

Use anatomy to amplify motion

  • The gloves, trunks, stance, and arena remain intact
  • The moving body earns the strongest skeletal reveal
  • Cyanotype texture keeps the frame artistic instead of clinical

Exact gathered prompt

Transform the uploaded image into an authentic handcrafted cyanotype print while preserving the exact composition, framing, perspective, subject placement, proportions, and visual storytelling of the original image. X-ray aesthetic: If the uploaded image contains an animal or a person in motion, subtly reveal a semi-transparent skeletal structure inside the body, blended naturally into the cyanotype print. The bones should appear faint and artistic—not medical or graphic—matching the ethereal X-ray look seen in experimental cyanotype photography. Preserve anatomy accurately while keeping the overall image elegant and dreamlike. Recreate the image using the traditional 19th-century cyanotype photographic printing process with rich Prussian blue tones and soft white highlights. The artwork should look like a genuine contact print made on watercolor paper rather than a digital blue filter. Cyanotype characteristics: - Deep Prussian blue monochromatic palette - White to pale-blue highlights created naturally by the exposure - Soft tonal transitions with slightly reduced contrast - Fine watercolor paper texture visible throughout - Organic chemical staining, slight uneven coating, and subtle edge variations - Gentle pigment bleeding and handmade imperfections - Slight exposure falloff near the borders - Soft grain from the photographic emulsion - Natural analogue appearance with no artificial digital sharpening Subject preservation: - Keep every object, person, animal, building, vehicle, and environmental element recognizable. - Preserve facial features, clothing, expressions, poses, and anatomy. - Maintain all lighting direction and shadows from the original scene. - Retain depth, perspective, and composition exactly. - Preserve fine details while translating them into cyanotype tonal values. Artistic rendering: - Emphasize silhouettes, edges, and natural textures. - Convert colours into cyanotype luminance rather than simply tinting them blue. - Produce delicate highlight blooming characteristic of real cyanotype prints. - Slightly soften micro-details to emulate contact printing. - Maintain realistic tonal separation. Quality requirements: - Museum-quality fine art cyanotype - Ultra-high resolution - Authentic analogue chemistry - Handcrafted photographic print aesthetic - No modern digital effects - No artificial HDR - No oversaturation - No neon blues - No cartoon or painterly look - Preserve the original aspect ratio and composition exactly.

Source: @skaigenerated · model shown: Nano Banana Pro

The official run

Prepare -> Validate -> Transform -> Inspect

  1. 1. prepare
    free

    One run pinned to the source image, exact gathered prompt, and selected model route.

  2. 2. validate
    free

    The image and prompt contract checked locally.

  3. 3. transform
    paid

    One cyanotype print from one approved prediction.

    Explicit approval required

  4. 4. inspect
    free

    Automatic file checks plus an actual visual review.

    Explicit approval required

Model routes

  • economy: Nano Banana 2 Lite · 3:4
  • default: Nano Banana 2 · 3:4
  • premium and source: Nano Banana Pro · 3:4

What prevents waste

  • The complete contract validates locally before spending.
  • Paid generation needs an explicit approval flag.
  • The prediction ID is saved before polling.
  • Interrupted jobs resume instead of duplicating.
  • Three attempts is the hard cap.

Repo files

Agent instructions SKILL.md
---
name: wiggly-cyanotype
description: Turn one image into a handcrafted Prussian-blue contact print using the exact gathered SKAI cyanotype prompt.
---

# Cyanotype

Use the packaged runner and exact prompt. Do not call Replicate separately or
create another render path.

From the extracted kit's `v3` directory, prepare the local runner first:

```bash
npm install
npm run format:skai-image -- check --format=cyanotype
npm run format:skai-image -- smoke --format=cyanotype
```

Ask one short question:

> Which 3:4 image should I turn into a handcrafted cyanotype?

Then initialize the free run. Omit `--model` for Nano Banana 2, or add
`--model=nano-banana-2-lite` for economy or `--model=nano-banana-pro` for premium:

```bash
npm run format:skai-image -- init --format=cyanotype --run=<id> --input=<absolute-image-path> [--model=<route>]
npm run format:skai-image -- validate --format=cyanotype --run=<id>
npm run format:skai-image -- estimate --format=cyanotype --run=<id>
```

Stop after `estimate` and ask the user to approve the paid prediction. Only
after the user explicitly approves the cost should you supply `--approve-paid`:

```bash
npm run format:skai-image -- render --format=cyanotype --run=<id> --approve-paid
npm run format:skai-image -- inspect --format=cyanotype --run=<id>
npm run format:skai-image -- inspect --format=cyanotype --run=<id> --visual-pass --review-notes="<specific observations>"
npm run format:skai-image -- finalize --format=cyanotype --run=<id> --approve-final
```

Hard rules:

- Preserve the source subject and composition.
- Reject or crop to a user-approved 3:4 input before validation so the fixed 3:4 route can preserve composition honestly.
- 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 and the creator's source route.
- Add subtle skeletal detail only for a moving person or animal.
- Validate and estimate before spending, pause for explicit user approval, 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`.
Replicate BYOK requirements requirements.json
{
  "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 call was made for this package.",
    "One render attempt is one paid prediction.",
    "Paid generation requires explicit approval and is capped at three attempts."
  ]
}
Input contract and model routing inputs.json
{
  "required": [
    {
      "id": "image",
      "type": "image",
      "formats": ["jpg", "png", "webp"],
      "minimumWidth": 512,
      "minimumHeight": 512,
      "maximumBytes": 26214400,
      "aspectRatio": "3:4",
      "aspectRatioTolerance": 0.02
    }
  ],
  "question": "Which 3:4 image should I turn into a handcrafted cyanotype?",
  "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",
    "source": "google/nano-banana-pro"
  }
}
Paid-call and resume contract pipeline.json
{
  "progress": "Prepare -> Validate -> Transform -> Inspect",
  "attemptCap": 3,
  "stages": [
    {
      "id": "prepare",
      "output": "One run pinned to the source image, exact gathered prompt, and selected model route.",
      "paid": false,
      "approvalRequired": false
    },
    {
      "id": "validate",
      "output": "The image and prompt contract checked locally.",
      "paid": false,
      "approvalRequired": false
    },
    {
      "id": "transform",
      "output": "One cyanotype print from one approved prediction.",
      "paid": true,
      "approvalRequired": true
    },
    {
      "id": "inspect",
      "output": "Automatic file checks plus an actual visual review.",
      "paid": false,
      "approvalRequired": true
    }
  ]
}
Exact gathered prompt prompts/transform.txt
Transform the uploaded image into an authentic handcrafted cyanotype print while preserving the exact composition, framing, perspective, subject placement, proportions, and visual storytelling of the original image.

X-ray aesthetic:

If the uploaded image contains an animal or a person in motion, subtly reveal a semi-transparent skeletal structure inside the body, blended naturally into the cyanotype print. The bones should appear faint and artistic—not medical or graphic—matching the ethereal X-ray look seen in experimental cyanotype photography. Preserve anatomy accurately while keeping the overall image elegant and dreamlike.

Recreate the image using the traditional 19th-century cyanotype photographic printing process with rich Prussian blue tones and soft white highlights. The artwork should look like a genuine contact print made on watercolor paper rather than a digital blue filter.

Cyanotype characteristics:

- Deep Prussian blue monochromatic palette
- White to pale-blue highlights created naturally by the exposure
- Soft tonal transitions with slightly reduced contrast
- Fine watercolor paper texture visible throughout
- Organic chemical staining, slight uneven coating, and subtle edge variations
- Gentle pigment bleeding and handmade imperfections
- Slight exposure falloff near the borders
- Soft grain from the photographic emulsion
- Natural analogue appearance with no artificial digital sharpening

Subject preservation:

- Keep every object, person, animal, building, vehicle, and environmental element recognizable.
- Preserve facial features, clothing, expressions, poses, and anatomy.
- Maintain all lighting direction and shadows from the original scene.
- Retain depth, perspective, and composition exactly.
- Preserve fine details while translating them into cyanotype tonal values.

Artistic rendering:

- Emphasize silhouettes, edges, and natural textures.
- Convert colours into cyanotype luminance rather than simply tinting them blue.
- Produce delicate highlight blooming characteristic of real cyanotype prints.
- Slightly soften micro-details to emulate contact printing.
- Maintain realistic tonal separation.

Quality requirements:

- Museum-quality fine art cyanotype
- Ultra-high resolution
- Authentic analogue chemistry
- Handcrafted photographic print aesthetic
- No modern digital effects
- No artificial HDR
- No oversaturation
- No neon blues
- No cartoon or painterly look
- Preserve the original aspect ratio and composition exactly.
Automatic and visual gates quality.json
{
  "automatic": [
    "The source input is 3:4 within 0.02 so composition can be preserved",
    "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 source subject, framing, and perspective remain recognizable",
    "The palette is deep Prussian blue with soft natural highlights",
    "Watercolor paper, chemical staining, grain, and edge falloff feel physical",
    "Any skeletal reveal is anatomically plausible, subtle, and only used for a moving person or animal",
    "Tonal separation comes from luminance rather than a flat blue tint",
    "The result looks like an analogue contact print rather than a digital filter"
  ],
  "finalization": {
    "automaticPassRequired": true,
    "visualPassRequired": true,
    "reviewNotesRequired": true,
    "explicitApprovalFlag": "--approve-final"
  }
}