AI Cinematographer (Pro) v3.9 - Akki
Turn a screenplay into a shot list, one scene at a time
- llm_model
- shot_breakdown_report
- full_llm_prompt
The AI Cinematographer (Pro) v3.9 is where your screenplay stops being words and starts being a production. It's the director's chair in the AkkiNodes "script to screen" pipeline: feed it a screenplay, and it returns a shot-by-shot breakdown - every shot with its framing, lens choice, characters, props, costumes, VFX, SFX, dialogue, and even a director's rationale. That report is what gets sanitized by the QC Supervisor, parsed into a CSV, and eventually turned into actual image prompts.
How it works
This is a single, enormous LLM call wrapped in a strict formatting mandate. The prompt template is the star of the show: it demands self-contained "shot blocks" delimited by //---SHOT_START---// and //---SHOT_END---// markers, with each shot described as KEY: Value lines. There are protocols baked in for the things LLMs get wrong:
- Auditory events - a voice-over must get a visual shot, not a "VOICE OVER" shot type.
- Factual fidelity - canonical details from the script (ages, physical traits) must carry through.
- Technical realism - no zooming with a prime lens; you get a dolly-in instead.
- Per-character asset fields -
PROPS (Character Name)andCOSTUMES (Character Name)for every character.
A deterministic Python helper then resolves pronouns against the screenplay context. That's the "hybrid AI + deterministic resolver" pattern this pack is built on: the LLM does the creative shot breakdown, code guarantees the structure holds.
Inputs and outputs
Inputs are sparse on purpose: llm_model, screenplay, and the usual sampling knobs - temperature (default 0.5, nice and low for a data-producing task), top_p 0.95, top_k 40, seed, and max_tokens defaulting to 4096. This is a long output, so don't crater max_tokens below ~2048 or the report will truncate mid-shot.
Two outputs:
shot_breakdown_report- the raw shot list. Wire this into the AI QC Supervisor (it exists to clean this output up, more on that there).full_llm_prompt- the entire prompt that was sent to the model. If you want to understand why a breakdown looks the way it does, this is required reading; it also teaches you a lot about how to structure your own agent prompts.
Install and gotchas
Standard pack install: ComfyUI Manager (search "AkkiNodes LLM Suite") or git clone https://github.com/routhakash/AkkiNodes-LLM-Suite-for-ComfyUI into custom_nodes, run install.bat as admin on Windows, drop a GGUF into ComfyUI/models/llms/, restart.
The gotcha is that this node is a scene interpreter in practice - the source splits the screenplay into individual scenes and processes each one. Feed it your whole feature-length script and expect a long run. And quality is entirely dependent on the GGUF you loaded: a weak model will ignore half the format mandates and give you a breakdown that looks fine and parses terribly. If the downstream parser chokes, the first thing to suspect is the model, not the node.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| llm_model | LLM_MODEL | — | |
| screenplay | STRING | — | |
| temperature | FLOAT | 0.50 | — |
| top_p | FLOAT | 0.95 | — |
| top_k | INT | 40 | — |
| seed | INT | 1234 | — |
| max_tokens | INT | 40961024–65536 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| shot_breakdown_report | STRING | — |
| full_llm_prompt | STRING | — |