Nodes/Difforum/Difforum · Shot Script (timeline from text)
ComfyUI Node

Difforum · Shot Script (timeline from text)

Write the Director timeline from text instead of drawing it. One beat per line: `TIME | MOOD | CAMERA | PROMPT` (`0s | calm | dolly_in slow | misty forest`), `4s | key: the light breaks` for a key marker, or just prompts without times (spread evenly). A CSV with a header row (`time,mood,camera,prompt,key,energy`) or a Director JSON works too. The text can come from the box, from a `.txt` / `.csv` / `.json` file in ComfyUI's input folder (re-read when it changes; `examples/01_infinite_zoom.txt` and the other shipped scripts work too), or from any node that outputs a STRING - an LLM node, a text loader, a spreadsheet export - into `script_in`. Wire `timeline` into the Director's `timeline_in`. `llm_instructions` is a ready prompt that asks an LLM for this format.

By chillithebillis·Created 4 months ago·Updated a day ago· 9
Difforum · Shot Script (timeline from text)
  • params
  • timeline
  • llm_instructions
  • info
◄script# TIME | MOOD | CAMERA | PROMPT (one beat per line, # comments) 0s | calm | dolly_in slow small | misty ancient forest at dawn, light shafts through the canopy 2s | build | orbit_left | glowing moss and roots in the foreground 3.5s | key: the light breaks 4s | resolve | crane_up slow | the canopy opens to a pale sky►
◄file►
◄script_in—►
CategoryDifforum/2 · Direction

Inputs (4)

NameTypeDefaultDescription
scriptSTRING# TIME | MOOD | CAMERA | PROMPT (one beat per line, # comments) 0s | calm | dolly_in slow small | misty ancient forest at dawn, light shafts through the canopy 2s | build | orbit_left | glowing moss and roots in the foreground 3.5s | key: the light breaks 4s | resolve | crane_up slow | the canopy opens to a pale skyOne beat per line: TIME | MOOD | CAMERA | PROMPT. TIME 0s, 4.5s, 00:09 or f96. CAMERA a move (dolly_in, orbit_left, crane_up...) plus slow / fast, small / large, 35mm, an easing. '4s | key: label' adds a key. Lines without a time are spread evenly.
fileSTRINGA .txt / .csv / .json in ComfyUI/input (e.g. shots/scene01.txt), or a shipped example: examples/01_infinite_zoom.txt. Re-read whenever it changes. Overrides the box.
paramsoptDIFFORUM_PARAMSFrom Setup: converts seconds to frames and flags beats past the end.
script_inoptSTRINGText from another node (an LLM, a text file loader, a spreadsheet export). Overrides the box and the file. Feed the llm_instructions output to the LLM as its prompt.

Outputs (3)

NameTypeDescription
timelineSTRING—
llm_instructionsSTRING—
infoSTRING—