AgentSkillsCN

Shot Image Generator

镜头图像生成器

SKILL.md

Shot Image Generator Skill

Purpose

Generate final shot images by combining reference images with shot specifications to produce consistent, production-ready frames.

Trigger

SHOT_LIST_EP{{XX}}.json exists and all references are complete.

Inputs Required

  • SHOT_LIST_EP{{XX}}.json
  • CANON_DB.json (with all reference paths)
  • STYLEGUIDE_VISUAL.md
  • CHARACTER_REFS/*/refs/*.png
  • LOCATION_REFS/*/refs/*.png
  • PROP_REFS/*/refs/*.png (if needed)

Outputs Produced

  • SHOTS_EP{{XX}}/{shot_id}.png - Generated shot images
  • Updated SHOT_LIST_EP{{XX}}.json (with generation status)
  • GENERATION_LOG_EP{{XX}}.json - Generation attempts and results

Process

Step 1: Load Shot Specification

Read shot from SHOT_LIST:

json
{
  "shot_id": "EP01_SC03_SH02",
  "description": "...",
  "characters": [...],
  "location": "...",
  "references": {
    "character_refs": [...],
    "location_ref": "..."
  },
  "camera": {...},
  "composition": {...}
}

Step 2: Gather Reference Images

Load all required references:

  • Character reference(s) matching pose/expression
  • Location reference matching area/time
  • Prop references if specified

Verify all files exist before proceeding.

Step 3: Construct Prompt

Build prompt from shot specification:

code
{{LOCATION_DESCRIPTION}}, {{TIME_OF_DAY}} lighting,
{{CHARACTER_1_DESCRIPTION}} {{CHARACTER_1_ACTION}} in {{POSITION_1}},
{{CHARACTER_2_DESCRIPTION}} {{CHARACTER_2_ACTION}} in {{POSITION_2}},
{{CAMERA_SHOT_TYPE}}, {{COMPOSITION_NOTES}},
{{LIGHTING_DESCRIPTION}}, {{MOOD}},
{{STYLE_KEYWORDS}}

Add negative prompts:

  • Global negatives from STYLEGUIDE
  • Character-specific negatives from CANON_DB
  • Shot-type specific negatives

Step 4: Configure API Call

From config/fal_api_settings.json:

json
{
  "endpoint": "fal-ai/recraft-v3",
  "params": {
    "image_size": {"width": 1920, "height": 1080},
    "num_inference_steps": 28,
    "guidance_scale": 3.5
  },
  "reference_images": [...],
  "reference_weights": {
    "character": 0.95,
    "location": 0.85
  }
}

Step 5: Generate Image

Make API call with:

  • Constructed prompt
  • Reference images
  • Appropriate weights
  • Shot-specific aspect ratio

Step 6: Save and Log

Save generated image:

code
SHOTS_EP{{XX}}/EP01_SC03_SH02.png

Update shot in SHOT_LIST:

json
{
  "generation": {
    "prompt": "{{FULL_PROMPT}}",
    "status": "generated",
    "attempts": 1,
    "output_path": "SHOTS_EP01/EP01_SC03_SH02.png",
    "timestamp": "2026-01-25T10:30:00Z"
  }
}

Log to GENERATION_LOG:

json
{
  "shot_id": "EP01_SC03_SH02",
  "timestamp": "...",
  "prompt": "...",
  "references_used": [...],
  "params": {...},
  "success": true,
  "notes": ""
}

Step 7: Quality Check (Automated + Claude Review)

Automated checks:

  • Image generated successfully
  • Correct dimensions
  • File size reasonable
  • No obvious errors (black image, etc.)

Claude review (REQUIRED before proceeding to video):

Invoke shot-quality-validator skill for each generated frame:

  1. Single moment check - No composite/multi-state images
  2. Character consistency - Matches identity sheet
  3. Technical quality - No artifacts, correct resolution
  4. Composition - Matches shot type specification

CRITICAL: Single Moment Rule

Frame prompts must produce a single clean moment. Watch for:

  • Multiple versions of same character (before/after states)
  • Split-screen or triptych compositions
  • Motion blur suggesting multiple moments

Common cause: Transitional language in prompts like "expression shifts from X to Y" causes models to render BOTH states in one image.

Fix: Keep frame prompts static. Move transitions to VIDEO prompts only.

Frame Prompt (BAD)Frame Prompt (GOOD)
"Her expression shifts from determination to horror""Her expression is focused determination"
"He turns and walks away""He stands facing the door, hand on handle"
"The sun sets on the horizon""Golden sunset light on the horizon"

Flag for manual review if:

  • Multiple characters present
  • Complex composition
  • First shot of a new character/location
  • Any composite/multi-moment images detected

Step 8: Handle Failures

If generation fails:

  1. Log error
  2. Retry with adjusted parameters (max 3 attempts)
  3. If still failing, flag for manual intervention

Retry adjustments:

  • Lower reference weight
  • Simplify prompt
  • Change seed
  • Adjust guidance

Step 9: Batch Processing

For efficiency, process shots in batches:

Batch by Scene:

  • All shots in a scene share location reference
  • Load location once, generate all scene shots

Batch by Character:

  • Solo scenes with same character
  • Load character refs once

Parallel Processing:

  • Independent shots can generate simultaneously
  • Respect API rate limits

Prompt Construction Templates

Single Character Shot

code
{{LOCATION}}, {{TIME}} lighting, {{CHARACTER}} {{ACTION}},
{{SHOT_TYPE}} shot, {{COMPOSITION}}, {{STYLE}}

Two Character Shot

code
{{LOCATION}}, {{TIME}} lighting,
{{CHAR_1}} {{ACTION_1}} {{POSITION_1}},
{{CHAR_2}} {{ACTION_2}} {{POSITION_2}},
{{SHOT_TYPE}} shot, {{COMPOSITION}}, {{STYLE}}

Insert/Detail Shot

code
{{OBJECT_DESCRIPTION}}, close-up detail shot,
{{CONTEXT}}, {{LIGHTING}}, {{STYLE}}

Establishing Shot

code
{{LOCATION_FULL_DESCRIPTION}}, wide establishing shot,
{{TIME}} lighting, {{ATMOSPHERE}}, cinematic, {{STYLE}}

Reference Weight Guidelines

ContentCharacter WeightLocation Weight
Close-up single0.950.70
Medium single0.900.80
Two-shot0.850.80
Wide with figures0.800.85
Establishing (no figures)N/A0.90
Insert/detailVariesVaries

Error Handling

Common Issues

Character Drift:

  • Increase character reference weight
  • Use more specific character description
  • Simplify pose requirements

Location Inconsistency:

  • Increase location reference weight
  • Be more specific about camera position
  • Reference specific location area

Wrong Composition:

  • More explicit position instructions
  • Simplify to fewer elements
  • Generate separately and composite (advanced)

Lighting Mismatch:

  • Explicit lighting description
  • Match time of day references
  • Adjust mood keywords

Batch Generation Workflow

code
1. Load SHOT_LIST
2. Group shots by scene
3. For each scene:
   a. Load location reference
   b. Load character references for scene
   c. For each shot:
      i. Construct prompt
      ii. Generate image
      iii. Save and log
      iv. Update status
4. Generate summary report
5. Flag shots needing review

Notes

  • This is the most API-intensive skill
  • Reference images are critical for consistency
  • Start with simple shots before complex ones
  • Build confidence in reference system
  • Log everything for debugging
  • Manual review is part of the process
  • Regeneration is expected and planned for