Canonsheet

Consistent prompts for one human character across image and video models. Paid per call, x402.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
88%
Calidad de los nombres
100%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,150Tokens (definiciones de herramientas)
~13.3 KBTamaño de respuesta típico
Impacto moderado en la atención (0.90% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "canonsheet": {
      "url": "https://canonsheet.kaneky.dev/mcp"
    }
  }
}

Puntos de conexión remotos

https://canonsheet.kaneky.dev/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (1)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟡build_character_prompts(appearance, choices, custom_traits, has_reference, name, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "appearance": {
      "additionalProperties": false,
      "description": "The canon. Every prompt carries it verbatim. At least one field, or a trait, is required.",
      "properties": {
        "build": {
          "description": "height, frame, posture",
          "type": "string"
        },
        "distinguishing": {
          "description": "the one detail someone would describe first",
          "type": "string"
        },
        "eyes": {
          "description": "colour, shape, anything unusual",
          "type": "string"
        },
        "face": {
          "description": "features, apparent age, how they hold their expression",
          "type": "string"
        },
        "hair": {
          "description": "colour, length, style",
          "type": "string"
        },
        "held": {
          "description": "bag, phone, cup, tool — what the hands actually hold",
          "type": "string"
        },
        "outfit": {
          "description": "materials, colours, silhouette",
          "type": "string"
        },
        "skin": {
          "description": "tone, texture, freckles, scars, lines",
          "type": "string"
        }
      },
      "type": "object"
    },
    "choices": {
      "additionalProperties": false,
      "description": "The shot. Unset axes use neutral defaults.",
      "properties": {
        "action": {
          "description": "Action. One of: standing, squared, walking, turning, over-shoulder, seated, leaning, arms-crossed, reaching, crouched, speaking, still-profile, sitting-desk, hands-pockets, laughing — or free text of your own.",
          "type": "string"
        },
        "angle": {
          "description": "Camera angle. One of: eye, low, high, three-quarter-turn, profile, none",
          "enum": [
            "eye",
            "low",
            "high",
            "three-quarter-turn",
            "profile",
            "none"
          ],
          "type": "string"
        },
        "environment": {
          "description": "Environment. One of: seamless, neutral, interior, street, landscape, none — or free text of your own.",
          "type": "string"
        },
        "lens": {
          "description": "Lens. One of: 35, 50, 85, 135, none",
          "enum": [
            "35",
            "50",
            "85",
            "135",
            "none"
          ],
          "type": "string"
        },
        "lighting": {
          "description": "Lighting. One of: soft-key, rim, golden, overcast, low-key, practical, none",
          "enum": [
            "soft-key",
            "rim",
            "golden",
            "overcast",
            "low-key",
            "practical",
            "none"
          ],
          "type": "string"
        },
        "seed": {
          "description": "Hold it across a set; a contact sheet is only comparable with the seed fixed.",
          "type": "string"
        },
        "shot": {
          "description": "Shot size. One of: full, three-quarter, medium, close, extreme-close",
          "enum": [
            "full",
            "three-quarter",
            "medium",
            "close",
            "extreme-close"
          ],
          "type": "string"
        },
        "style": {
          "description": "Render style. One of: photo, cinematic, illustration, painterly, render3d, anime",
          "enum": [
            "photo",
            "cinematic",
            "illustration",
            "painterly",
            "render3d",
            "anime"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "custom_traits": {
      "items": {
        "additionalProperties": false,
        "description": "A trait not in the list.",
        "properties": {
          "description": {
            "description": "e.g. Red knit scarf, wrapped twice",
            "type": "string"
          },
          "name": {
            "description": "e.g. Scarf",
            "type": "string"
          }
        },
        "type": "object"
      },
      "maxItems": 6,
      "type": "array"
    },
    "has_reference": {
      "description": "True when a canonical image will be attached; the prompts then defer the face to it.",
      "type": "boolean"
    },
    "name": {
      "description": "What to call the character in the prompt. Optional.",
      "type": "string"
    },
    "traits": {
      "additionalProperties": false,
      "description": "Details models tend to drop. Include a key only if the character has it.",
      "properties": {
        "facial-hair": {
          "description": "style, length, how grey. Adds a negative prompt that stops it disappearing between generations.",
          "type": "string"
        },
        "glasses": {
          "description": "frame shape, colour, thickness, tint. Adds a negative prompt that stops it disappearing between generations.",
          "type": "string"
        },
        "headwear": {
          "description": "what it is, how it sits, how much hair it covers. Adds a negative prompt that stops it disappearing between generations.",
          "type": "string"
        },
        "ink": {
          "description": "where they are, what they show, how visible under clothing. Adds a negative prompt that stops it disappearing between generations.",
          "type": "string"
        },
        "mobility": {
          "description": "wheelchair, cane, crutches, prosthesis — type, material, which side. Adds a negative prompt that stops it disappearing between generations.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "video": {
      "additionalProperties": false,
      "description": "The clip.",
      "properties": {
        "ambient": {
          "description": "Ambient",
          "enum": [
            "still",
            "breeze",
            "dust",
            "flicker"
          ],
          "type": "string"
        },
        "camera": {
          "description": "Camera move",
          "enum": [
            "locked",
            "push-in",
            "push-out",
            "orbit"
          ],
          "type": "string"
        },
        "motion": {
          "description": "Motion",
          "enum": [
            "blink",
            "breathe",
            "weight",
            "turn-to",
            "look-away",
            "smile",
            "step",
            "speak",
            "hair"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "walk_axis": {
      "description": "Return a contact sheet: one prompt per option of this axis, everything else held.",
      "enum": [
        "action",
        "shot",
        "angle",
        "lens",
        "lighting",
        "environment",
        "style"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada1 herramientas