# CanonSheet Character Prompt Builder

> CanonSheet Character Prompt Builder is a paid API for AI agents from canonsheet.kaneky.dev, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-11).

Generates a consistent, labeled prompt set for a single human character—including canonical image prompt, negative prompts, video prompt, and optional contact-sheet walk—for use with any image or video generation model.

## Facts

- Endpoint: POST https://canonsheet.kaneky.dev/api/build_character_prompts?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/canonsheet-character-prompt-builder-1cc291ca
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_AaO_IeW5h6uaGhiH7WVFC

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability canonsheet-character-prompt-builder-1cc291ca -d '<json body>'
```

Example prompt: Build a consistent character prompt set for Elena, a 30s woman with warm brown skin, amber eyes, short natural hair, a tailored burgundy blazer, and wire-rimmed glasses — she should be in a medium shot at eye level with soft-key lighting in a library environment; also generate negative prompts so her glasses never disappear, and include a video prompt with a breathe motion and a locked camera.

## When to prefer this

Choose this endpoint when you need to lock a character's appearance across multiple AI-generated images or video clips and prevent trait drift — especially when the character has distinctive features like glasses, facial hair, a mobility aid, or tattoos that tend to disappear between generations. It is purpose-built for prompt engineering workflows rather than direct image generation, so prefer it when your downstream tool is any image or video model and you want a reusable, labeled prompt corpus rather than a one-off image. Prefer it over generic prompt templates when you need structured negative prompts and optional contact-sheet enumeration.

## Known failure modes

- Invalid enum value for choices/shot, angle, lens, lighting, style, or video fields — request refused before payment with a 400-level error
- Missing or malformed required fields — rejected prior to charging
- HTTP 402 returned on first call with pricing information (expected behavior, not a true failure — retry with payment)
- Payment not completed or x402 flow not followed — no prompts returned
- Exceeding maxItems 6 on custom_traits — request refused

## How this service works

Build a consistent prompt set for one human character: a canonical image prompt with every appearance fact labelled, negative prompts that stop traits like glasses or a cane from vanishing, a video prompt, and optionally a contact sheet that holds everything fixed and walks one axis. Works with any image or video model. Text keeps wardrobe and framing stable; for the same FACE across images, generate the canonical frame once and pass it back as a reference image (has_reference). Paid per call over x402: the first attempt answers HTTP 402 with the price. Invalid arguments are refused before any payment.

## Output

Returns a structured prompt set containing: a canonical image prompt with every appearance detail explicitly labeled, one or more negative prompts preventing trait drift (e.g. glasses, mobility aids, tattoos), a video prompt with camera and motion settings, and optionally a series of contact-sheet prompts that hold all variables fixed while stepping through one chosen axis (such as style, lighting, or shot size).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "name": {
   "type": "string"
  },
  "video": {
   "type": "object",
   "properties": {
    "camera": {
     "enum": [
      "locked",
      "push-in",
      "push-out",
      "orbit"
     ],
     "type": "string"
    },
    "motion": {
     "enum": [
      "blink",
      "breathe",
      "weight",
      "turn-to",
      "look-away",
      "smile",
      "step",
      "speak",
      "hair"
     ],
     "type": "string"
    },
    "ambient": {
     "enum": [
      "still",
      "breeze",
      "dust",
      "flicker"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "traits": {
   "type": "object",
   "properties": {
    "ink": {
     "type": "string"
    },
    "glasses": {
     "type": "string"
    },
    "headwear": {
     "type": "string"
    },
    "mobility": {
     "type": "string"
    },
    "facial-hair": {
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "choices": {
   "type": "object",
   "properties": {
    "lens": {
     "enum": [
      "35",
      "50",
      "85",
      "135",
      "none"
     ],
     "type": "string"
    },
    "seed": {
     "type": "string"
    },
    "shot": {
     "enum": [
      "full",
      "three-quarter",
      "medium",
      "close",
      "extreme-close"
     ],
     "type": "string"
    },
    "angle": {
     "enum": [
      "eye",
      "low",
      "high",
      "three-quarter-turn",
      "profile",
      "none"
     ],
     "type": "string"
    },
    "style": {
     "enum": [
      "photo",
      "cinematic",
      "illustration",
      "painterly",
      "render3d",
      "anime"
     ],
     "type": "string"
    },
    "action": {
     "type": "string"
    },
    "lighting": {
     "enum": [
      "soft-key",
      "rim",
      "golden",
      "overcast",
      "low-key",
      "practical",
      "none"
     ],
     "type": "string"
    },
    "environment": {
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "walk_axis": {
   "enum": [
    "action",
    "shot",
    "angle",
    "lens",
    "lighting",
    "environment",
    "style"
   ],
   "type": "string"
  },
  "appearance": {
   "type": "object",
   "properties": {
    "eyes": {
     "type": "string"
    },
    "face": {
     "type": "string"
    },
    "hair": {
     "type": "string"
    },
    "held": {
     "type": "string"
    },
    "skin": {
     "type": "string"
    },
    "build": {
     "type": "string"
    },
    "outf
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/canonsheet-character-prompt-builder-1cc291ca/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from canonsheet.kaneky.dev](https://www.zero.xyz/host/canonsheet.kaneky.dev/llms.txt)
