AI ScriptCrafter 03 (Bible) v16.8 - Akki
A screenplay writer with a Fountain-format enforcer
- llm_model
- screenplay
- scene_breakdown
- full_llm_process_log
The AI ScriptCrafter 03 (Screenplay) v16.8 is the flagship node of the AkkiNodes narrative phase, and the version number isn't marketing - it's the product of a long fight with the single most annoying thing about LLM output: formatting. Raw models write screenplays with inconsistent sluglines, misaligned dialogue blocks, and headers that don't match. This node writes the screenplay and then runs a "Hybrid Heuristic Parser" over it to guarantee the result is properly structured and machine-readable. The author calls it "creative draft + parser," and that parser is the reason the downstream Cinematographer can actually read what it's given.
How it works
A three-stage LLM pipeline fed by everything the pipeline has built so far:
- A creative draft stage writes the screenplay from
story_text,world_bible,character_bible, andbeat_sheet. - Refinement stages clean it up.
- The Master Post-Processor kicks in - deterministic Python that isolates the screenplay content from the first "FADE IN:" onward and rebuilds it with a heuristic parser, fixing the typos and structural slip-ups LLMs always make. This is the "code is law" principle in action: the model creates, the code enforces.
The prompt stage selectors (prompt_stage_1, prompt_stage_2, prompt_stage_3) pick from prompt text files shipped in the pack's _prompts folder, and you can swap in your own - the drop-down reads whatever .txt files are in those directories. That's a genuinely useful escape hatch for power users who want to change the house style.
Inputs and outputs
Required: llm_model, story_text, world_bible, character_bible, beat_sheet, the three prompt selectors, and cinematic_style - a plain text field with a gritty-and-realistic default. This is where you set the tone of the whole script, so make it count.
Outputs:
screenplay- the final, formatted script. This is what feeds the AI Cinematographer in Phase 2, and what you save with a file node.scene_breakdown- per-scene structure, useful for reference and for checking that every scene parsed correctly.full_llm_process_log- the whole pipeline, for debugging.
Install and practical notes
Pack install: ComfyUI Manager search "AkkiNodes LLM Suite", or git clone https://github.com/routhakash/AkkiNodes-LLM-Suite-for-ComfyUI into custom_nodes, install.bat as admin, GGUF into ComfyUI/models/llms/, restart.
Note the max_tokens default is 8192 here - this is the biggest generation in the whole pipeline, and it needs the headroom. If your screenplay comes back cut off mid-scene, that's the first dial to check. And a practical workflow tip: this node expects clean upstream bibles and a real beat sheet, so don't skip ScriptCrafter 01 and 02 to save time. The parser fixes formatting, not storytelling - garbage in, well-formatted garbage out.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| llm_model | LLM_MODEL | — | |
| story_text | STRING | — | |
| world_bible | STRING | — | |
| character_bible | STRING | — | |
| beat_sheet | STRING | — | |
| prompt_stage_1 | COMBO | 1 options: Stage 1 v5.txt | |
| prompt_stage_2 | COMBO | 1 options: Stage 2 v2.txt | |
| prompt_stage_3 | COMBO | 1 options: Stage 3 v2.txt | |
| cinematic_style | STRING | Gritty and realistic with handheld camera work | — |
| max_tokens | INT | 81921024–16384 | — |
| temperature | FLOAT | 0.70 | — |
| top_p | FLOAT | 0.95 | — |
| top_k | INT | 40 | — |
| seed | INT | 1234 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| screenplay | STRING | — |
| scene_breakdown | STRING | — |
| full_llm_process_log | STRING | — |