Skip to main content

create-cast

Multi-round character casting orchestrator for the Horus movie pipeline. Extracts characters from scripts, discovers reference actors, generates identity images, and assigns voices. Runs as Phase 2.5 in create-movie.

ソース情報

リポジトリ
grahama1970/agent-stack-public
ソースの最終更新活動
2026年9月24日 15:51
検出された SKILL.md の言語
英語
スター
0
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
18 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
create-cast
description
Multi-round character casting orchestrator for the Horus movie pipeline. Extracts characters from scripts, discovers reference actors, generates identity images, and assigns voices. Runs as Phase 2.5 in create-movie.
triggers
["cast characters","create cast","character casting","identity pack","cast the movie","assign actors"]
allowed-tools
["Bash","Python"]
metadata
{"short-description":"Character casting with identity packs for Veo"}
provides
["create-cast"]
composes
["create-score","create-storyboard","create-sound-design","create-story","memory","task-monitor","agentic-evals"]
disciplines
["content-creation","persona-simulation"]
> STOP. READ THIS ENTIRE SKILL.MD BEFORE CALLING ANY ENDPOINT. # Create Cast Skill Multi-round collaborative workflow for casting characters in AI-generated movies. ## Quick Start ```bash cd .pi/skills/create-cast # Start a new casting session ./run.sh start path/to/script.json # Continue with answers to questions ./run.sh continue --session casting-20260204-abc123 --answers '{"q1": "approve"}' # Check session status ./run.sh status --session casting-20260204-abc123 # Export identity packs ./run.sh export --session casting-20260204-abc123 --output ./characters ``` ## Philosophy **Casting is collaborative.** The skill extracts characters, proposes specs, discovers reference actors, generates identity images, and assigns voices - but asks questions at each step to ensure alignment with the creator's vision. **Identity consistency is the goal.** The output is a set of "identity packs" that Veo can use to maintain character consistency across multiple shots. ## Casting Rounds ``` Round 1: Script Analysis ├── Parse script for character mentions ├── Extract dialogue to identify speakers ├── Infer physical descriptions from action text ├── Estimate screen time per character └── Questions: Confirm character list and traits Round 2: Reference Discovery (optional) ├── Call discover-talent for each main character ├── Build mood board of reference actors └── Questions: Select reference actors or skip Round 3: Identity Generation ├── Generate candidate looks via create-image ├── 3-5 options per character └── Questions: Select best look or iterate Round 4: Identity Pack Build ├── Generate front view (neutral lighting) ├── Generate 3/4 view (same lighting) ├── Generate full-body (outfit reference) └── Questions: Approve angles or regenerate Round 5: Voice Casting ├── Search existing voice models (learn-artist/tts-train) ├── Match voice type to available models └── Questions: Approve voice or queue training ``` ## Commands ### Start Casting Session ```bash ./run.sh start <script.json> [--json] [--auto-approve] ``` Begins a new casting session from a script file. Returns questions for Round 1. Options: - `--json`: Output structured JSON for agent parsing - `--auto-approve`: Skip questions and use defaults (for automation) ### Continue Session ```bash ./run.sh continue --session <ID> --answers '<JSON>' ``` Provide answers to questions and advance to the next round. The answers JSON maps question IDs to responses: ```json { "confirm_characters": "approve", "sarah_trait_age": "early 30s", "villain_reference": "skip" } ``` ### Check Status ```bash ./run.sh status --session <ID> [--json] ``` Get current session status: phase, pending questions, completed characters. ### Export Identity Packs ```bash ./run.sh export --session <ID> --output <directory> ``` Export completed identity packs to a directory: ``` characters/ ├── SARAH/ │ ├── identity_pack/ │ │ ├── front.png │ │ ├── three_quarter.png │ │ └── full_body.png │ ├── character_bible.yaml │ └── mood_board/ └── VILLAIN/ └── ... ``` ### List Sessions ```bash ./run.sh list ``` List all active and completed casting sessions. ## Character Spec Schema ```yaml name: SARAH role: protagonist screen_time_estimate: 45.0 # seconds physical: age_range: "early 30s" gender: "female" build: "athletic" hair: "short dark" distinguishing: "determined expression" personality: - determined - resourceful - guarded voice_type: "confident, measured" dialogue_count: 12 scenes: [1, 3, 5, 7] bridge_attributes: - Resilience - Precision ``` ## Identity Pack Schema ```yaml character_name: SARAH images: front: characters/SARAH/identity_pack/front.png three_quarter: characters/SARAH/identity_pack/three_quarter.png full_body: characters/SARAH/identity_pack/full_body.png prompt_descriptors: - "early 30s woman" - "athletic build" - "short dark hair" - "determined expression" - "wearing practical clothing" lighting_notes: "Neutral studio lighting for Veo reference" voice_model: "florence-pugh-rvc" created_at: "2026-02-04T12:34:56Z" ``` ## Integration with create-movie This skill runs as **Phase 2.5** in the create-movie pipeline: ``` Phase 2: Script (create-story) ↓ Phase 2.5: CASTING (create-cast) ← THIS SKILL ↓ Phase 3: Storyboard (create-storyboard) ``` The identity packs flow into Phase 4 (Generate) where Veo uses them for character consistency. ### Automatic Invocation ```python # In create-movie orchestrator (after script phase) from create_cast import run_casting_session casting_result = run_casting_session( script_path=script_file, output_dir=characters_dir, model=model, auto_approve=auto_approve, ) ``` ## Skill Dependencies | Skill | Purpose | Required | |-------|---------|----------| | discover-talent | Reference actor search | Optional | | create-image | Identity image generation | Required | | learn-artist | Voice/instrument model lookup | Optional | | tts-train | Voice model listing | Optional | | memory | Store learned preferences | Optional | ## Configuration Environment variables: ```bash TMDB_API_KEY=xxx # For discover-talent OPENAI_API_KEY=xxx # For create-image (if using DALL-E) FLUX_API_KEY=xxx # For create-image (if using FLUX) ``` ## Example Workflow ``` Agent: "./run.sh start script.json" Output: { "status": "needs_input", "phase": "ANALYSIS", "questions": [ { "id": "confirm_characters", "question": "I found 3 characters: SARAH (45s), VILLAIN (30s), GUARD (10s). Confirm?", "options": ["approve", "add_character", "remove_character"] }, { "id": "sarah_age", "question": "SARAH's age isn't specified. What age range?", "options": ["20s", "early 30s", "late 30s", "40s"] } ], "resume_command": "./run.sh continue --session casting-20260204-abc123 --answers '{...}'" } Agent: "./run.sh continue --session casting-20260204-abc123 --answers '{\"confirm_characters\": \"approve\", \"sarah_age\": \"early 30s\"}'" Output: { "status": "needs_input", "phase": "DISCOVERY", "questions": [ { "id": "sarah_reference", "question": "For SARAH, I found these reference actors: [Florence Pugh, Mackenzie Davis]. Select one or skip?", "options": ["Florence Pugh", "Mackenzie Davis", "skip_reference"] } ] } ``` ## Sanity Checks ```bash ./run.sh sanity # or ./sanity/sanity.sh ``` Verifies: 1. Python syntax for all modules 2. Imports work correctly 3. CLI help displays 4. Schema validation 5. discover-talent integration (if available)
GitHubで見る