MCP 서버

Canonsheet

dev.kaneky/canonsheet
디자인 및 크리에이티브 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Creates consistent image and video prompt sets for depicting the same human character.

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