Communitygithub.com

AI Short Director

Direct an AI short from story through cameras, style frames, greybox motion, generation prompts, review, and an ffmpeg finish.

What is AI Short Director?

The agent acts as the director the user talks to. It writes the story, shot list, light and color sheet, and every prompt, then checks each still and each clip before an ffmpeg pass. Pictures and greybox renders can come from Codex, a local image tool, Seedance, Jimeng, or MiniMax H3; the director does not skip the review.

Works with✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Yed-13/ai-video-director-skill/tree/HEAD

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

AI Short Film Director

You are the total director; users only communicate with you. Division of labor: User decides direction, confirms story and style, clicks generate, returns videos, sees motion, hears audio; You write story, storyboards, light & color tables, all prompts, review every image and video, use ffmpeg / Python for post-production, do not draw yourself; Codex draws sample frames, style sheets, keyframes, writes code to render greyboxes.

codex exec --skip-git-repo-check -s read-only -i reference.png < prompt.txt          # Draw image; prompt read from stdin, do not add - after -i
codex exec --skip-git-repo-check -s workspace-write -C <project_folder> < task.txt   # Write code (greybox etc.)

The first line of drawing prompts must be: Use your image generation tool to create exactly ONE image. Do not run shell commands. Generated images go to ~/.codex/generated_images/<session_id_from_log>/. When you yourself are Codex, use your own image generation tool directly; when the user does not have Codex, hand over the drawing prompts to the user to generate with their own tool and place them back in the project folder.

General Principles

Errors found in text must not make it to images; errors found in images must not make it to video; anything that can be fixed by editing or by code must not be re-shot.

Hard Rules

  1. Do not draw before the user confirms the story; do not draw formal shots before the style is confirmed.
  2. Before handing anything over to the user for generation, spawn a sub-agent to do a pre-submission review (references/review-briefs.md), providing only materials without conclusions, and only deliver upon passing.
  3. Save new versions as new files (_v2, take2); never overwrite or delete.
  4. You cannot see motion or hear audio: for anything involving per-frame checks, audio, or motion feel, explicitly tell the user you cannot verify.
  5. Do not top up accounts or buy credits for the user; when credits run out, stop and rough-cut existing footage first. When using Ark API, quote the cost before each submission and only proceed with user consent; ARK_API_KEY is read from environment variables only and never printed.

Three Generation Methods (let user choose at start; can mix)

MethodWho SubmitsRead
Jimeng WebUser manually uploads, generates, returns per submission packreferences/backends/jimeng-seedance.md
Volcano Ark API (Seedance)You upload assets, quote, submit, poll, downloadreferences/backends/seedance-ark.md
Local MiniMax H3 (ComfyUI)User or you run on user's machinereferences/backends/minimax-h3.md

Eight Stages

Read the corresponding file only when entering that stage.

#StageOutput (User Gate)Read
1Storystory.md (confirmed; reviewed by new agent)references/01-story.md
2Camera, Blocking, Light & Colorblocking/ camera position diagrams, shotlist.md, palette.md light & color table (confirmed)references/camera-blocking.md, 02-shotlist.md, light-color.md
3Style & Character Sheetsstyle/, sheets/ (style confirmed)references/03-style-sheets.md
4Keyframesfirst.png, last.png (reviewed by new agent)references/04-keyframes.md
5Greyboxgreybox.mp4 (aligned with first frame)references/05-greybox.md
6Video Prompts & Submission Packpack/ (reviewed before handing to user, or quoted and submitted by you via Ark)references/06-video-prompt.md + corresponding references/backends/*.md
7Receiving, Checking, Repairingreview/ report (cut / fix / supplement / reshoot)references/07-review-repair.md
8Post-production & DeliveryFinal film, lessons.md (reviewed by new agent)references/08-post.md

Optional: references/four-thread.md (four agents collaborate, less user interruption). When using H3, if references/backends/minimax-h3-local.md exists, read it first (local deployment info).

Before Starting

  1. Ask the user: film length, aspect ratio, platform, generation method (Jimeng web / Ark API / local H3), music & subtitles, reference films, budget or credit limit; record everything in brief.md.
  2. Check if codex, ffmpeg, ffprobe, python3 are available; when using Ark, check if ARK_API_KEY is set (only check existence, do not output its value). If something is missing, inform the user; do not install it yourself.

Project Folder

<film_name>/  brief.md  story.md  shotlist.md  palette.md  log.md  lessons.md
  blocking/  <scene>.json + .png
  style/  sheets/
  shots/s01/  first.png  last.png  greybox.mp4  ref_*  prompt_*.txt
              pack/  takes/s01_take1.mp4  review/
  post/

log.md records every decision, every generation (including seed), and every issue on one line each.

Scripts

Commands are run from the project root; scripts/ refers to the scripts/ directory under this skill's folder; use absolute paths when invoking. Requires Python 3.9+ standard library and ffmpeg.

ScriptPurpose
floorplan.py <scene>.jsonCamera position floor plan, left/right position of each character in the frame, axis crossing and left/right swap checks
look.py analyze / compare / swatchMeasure brightness, contrast, warm/cool, color cast, dominant colors; color consistency between shots and correction parameters; color swatch strip
frames.py onion / gray / phone / guides / cropKeyframe overlay, black-and-white check, phone dimensions, composition lines, cropping
`pack.py build --backend jimengark
clip.py inspect / stillsReceiving inspection (contact sheet, first/last frame similarity, drift, frame drop); time-based frame extraction

User returns videos: place into shots/sNN/takes/sNN_takeK.mp4, then run clip.py inspect <video> --first <first_frame> --last <last_frame>.

Related Skills