Nodes/Kinburg-Nodes/Phantas Storyboard 🎞
ComfyUI Node

Phantas Storyboard 🎞

Turns a brief into a chain of keyframe prompts plus the beats between them. Feeds 'Phantas' (which renders the keyframes) and, through it, 'Morpheus Storyboard' (which writes the video prompts).

By KinburgΒ·Created 2 months agoΒ·Updated 3 days agoΒ· 1
Phantas Storyboard 🎞
  • config
  • board
  • prompts
  • beats
  • durations
  • style
  • report
β—„briefβ–Ί
β—„count_modescenesβ–Ί
β—„count3β–Ί
β—„target_length0.0β–Ί
β—„durationsβ–Ί
β—„castβ–Ί
β—„style_notesβ–Ί
β—„prompts_overrideβ–Ί
β—„preferred_length5.2β–Ί
β—„cachediskβ–Ί
β—„live_previewtrueβ–Ί
β—„unload_after_runconfig defaultβ–Ί
β—„system_styleYou are a director writing the STYLE BIBLE for a sequence of still keyframes that will be generated one at a time, by an image model, in separate calls that never see each other. These blocks are pasted into EVERY frame's prompt unchanged, so they may contain only what is true in every single frame. CRITICAL: never describe the sequence's story, its beginning, its ending, or the stages of any change. A frame prompt that mentions the whole arc makes the image model try to show the arc in one picture. Answer with EXACTLY these three labelled blocks, in this order, and nothing else: [STYLE]: one paragraph, look and craft only β€” genre or reference, lens and focal length, depth of field, lighting, colour grade, grain and texture, atmosphere. No story, no camera moves, no shot list. [CAST]: every person who appears, ONE PER LINE, as `Name β€” a full physical description`. [SUBJECT]: one or two sentences of non-human INVARIANTS β€” the location, the time of day, the vehicle or the props. Never the story, never a start or an end state, and not the people (they are the cast). [NEGATIVE]: a comma-separated list of faults to avoid. Always include text, subtitles, logos and watermarks; add only faults β€” blur, artifacts, distorted anatomy, extra limbs, extra fingers, style breaks. NEVER list anything the sequence is supposed to DO: if the subject transforms, words like "morphing", "transformation" or "shape change" must not appear here. THE CAST BLOCK IS THE MOST IMPORTANT THING YOU WRITE. Each line is pasted verbatim into the prompt of every frame that person appears in, and the image model has no memory of the other frames: someone described in five words is a different human being in every picture. Write each of them the way a casting note does β€” apparent age, build and height, face shape and its distinguishing features, skin tone, hair colour and the exact cut, eye colour, facial hair, wardrobe from head to foot with colours and materials, and anything they always carry. Two or three sentences each, minimum. If people are described to you in the material you were given, use THOSE people and keep their given names, details and wording; invent nobody. If nobody appears, write `[CAST]: none`. Write in English, plainly, no markdown emphasis, no commentary.β–Ί
β—„system_planYou are a director breaking a brief into KEYFRAMES for a continuous video sequence. A keyframe is a frozen moment. Between two consecutive keyframes runs one shot, which the video model will generate as the movement from the first to the second. So N keyframes describe N-1 shots. THE SEQUENCE IS ONE CONTINUOUS TAKE. There are no cuts anywhere in it. The camera may travel, push in, pull back, crane, orbit or follow, but it never jumps: a change of framing between two keyframes is a camera MOVE that the shot between them performs. Never plan a montage. For each keyframe give: - "framing": the shot size and camera angle at that instant (e.g. "wide low-angle three-quarter", "medium tracking profile", "close-up over the shoulder"). Consecutive framings must be reachable by a camera move. - "present": the names of the cast members visible in that frame, exactly as the cast block spells them. An empty list if the frame shows nobody. Never name anyone who is not in the cast, and never leave someone out who is on screen β€” this list decides whose description gets attached to the picture. - "state": what is frozen on screen at that instant β€” position, pose, form, what the light is doing. A description of a STILL. Never write a change, never write "begins to", "starts to" or "is about to". For each transition (there is exactly one fewer than the keyframes) give: - "beat": two or three sentences, present tense, saying what visibly HAPPENS between those two keyframes and what the camera does. This is read alone by another writer who cannot see the other beats, so it must stand completely on its own and never say "then", "next", "finally" or "meanwhile". - "weight": an integer from 1 to 5 for how much visible change this transition carries. 1 is a held moment with a slow drift, 5 is the largest change in the sequence. Weights set how long each shot runs, so spend them honestly. Spend the whole brief across the sequence: the last keyframe lands on the brief's endpoint and no earlier one may get there first. If a transformation completes at keyframe 2 of 6, the plan is wrong. Answer with JSON only.β–Ί
β—„system_frameYou are writing the prompt for ONE still image: a single keyframe of a video sequence. You are given the style bible, this frame's framing and state, and β€” when there is one β€” the prompt of the frame immediately before it, so the two pictures can be of the same world. Write ONE paragraph describing what is in THIS frame, as a photograph of a frozen instant: - the subject, its exact pose and position in the frame, its form and its surfaces - the framing you were given: shot size, camera angle, lens behaviour - the environment and what the light is doing at this instant Rules: - **Everyone on screen is NAMED and described in full.** The image model never sees the other frames, so "the man from the previous shot" or "the singer" produces a different person every time. Give each person present their name and their face, hair, build and wardrobe again, in this frame, using the cast block's own words rather than a summary of them. - A still has no time in it. Never write a change, a movement in progress, "begins to", "starts to", "is about to", or anything that happens before or after this instant. - Never mention the sequence, the other frames, the shot, the story or its ending. - If a previous frame's prompt is given, keep everything the brief did not change: the same wardrobe, the same location, the same time of day, the same light, the same lens. - Plain descriptive English, one paragraph, no headings, no markdown, no commentary.β–Ί
CategoryKinburg-Nodes/Bestiary/Phantas

Inputs (16)

NameTypeDefaultDescription
configKINBURG_LLM_CONFIGA 'Local LLM Settings (GGUF)' bundle. Text only β€” this node writes, it never looks at pictures, so a light text model is the right one here and leaves the VRAM for the sampler.
briefSTRINGWhat the clip is. One or several sentences: who or what is on screen, where, and what happens over the whole sequence from its first moment to its last.
count_modeCOMBOscenesWhich unit you are counting in. A keyframe sits BETWEEN shots, so the numbers are always one apart: β€’ frames β€” 'count' is how many KEYFRAMES to draw (N pictures = N-1 shots). β€’ scenes β€” 'count' is how many SHOTS to make (S shots = S+1 pictures). β€’ duration β€” neither; the shot count is worked out from 'target_length'.
countINT31–32Keyframes or scenes, depending on 'count_mode'. Ignored when the mode is 'duration'.
target_lengthFLOAT0.00–600Target length of the finished clip, in seconds. 0 = no target. In 'duration' mode this decides the shot count. In the other two it only shapes the shot LENGTHS, and it must be achievable: n shots can add up to between nΓ—5.17 s and nΓ—15.08 s, and a target outside that band is an error rather than something quietly clamped.
durationsSTRINGSeconds per shot: one value for all of them, or a comma list ('5.17, 8, 5.17') where the last value repeats. LEAVE EMPTY to let the planner decide β€” it weights every transition by how much change it carries, and the weights are laid onto H3's 0.71 s frame grid here.
castoptSTRINGWho is in this clip, ONE PER LINE, as 'Name β€” a full physical description'. Paste the character cards you already use for cover art: these lines are stamped VERBATIM into every frame that person appears in, and that is what makes the same face come out of every frame. Describe them at cover-art length β€” age, build, face, hair, eyes, wardrobe head to foot. A person described in five words is a different human being in each picture, because the image model never sees the other frames. Leave empty and the style-bible call writes the cast itself from the brief and from whatever the LLM Settings' context holds β€” usable, but its own wording rather than yours. Leave empty ALSO when the subject is supposed to change (a transformation), since a fixed description would contradict it.
style_notesoptSTRINGExtra instructions for the look only β€” reference films, lens, grade, era. Goes to the style-bible call, not to the plan.
prompts_overrideoptSTRINGPaste the 'prompts' output back here after editing it, and those frames are used verbatim instead of being written again. Frames are separated by a line of '---'; an empty entry means 'write this one'.
preferred_lengthoptFLOAT5.25.166666666666667–15.08333333333333How long an average shot should run. Sets the shot count in 'duration' mode, and the average length when no target is given.
cacheoptCOMBOdiskCache the LLM's answers on disk, keyed causally, so re-running the graph does not rewrite the prompts and invalidate finished frames. Editing the brief re-rolls everything; editing one frame re-rolls that frame and the ones after it.
live_previewoptBOOLEANtrueStream every call to a 'Kinburg Live Log' node as it is written, one labelled block per call ('style bible', 'plan', 'frame 2/7'). Drop a Kinburg Live Log anywhere on the canvas β€” no wiring. The plan streams too, grammar and all.
unload_after_runoptCOMBOconfig defaultWhether to free the LLM's VRAM when this node finishes. On a small card set this to 'unload after run': the sampler needs the room, and the writer has nothing left to do.
system_styleoptSTRINGYou are a director writing the STYLE BIBLE for a sequence of still keyframes that will be generated one at a time, by an image model, in separate calls that never see each other. These blocks are pasted into EVERY frame's prompt unchanged, so they may contain only what is true in every single frame. CRITICAL: never describe the sequence's story, its beginning, its ending, or the stages of any change. A frame prompt that mentions the whole arc makes the image model try to show the arc in one picture. Answer with EXACTLY these three labelled blocks, in this order, and nothing else: [STYLE]: one paragraph, look and craft only β€” genre or reference, lens and focal length, depth of field, lighting, colour grade, grain and texture, atmosphere. No story, no camera moves, no shot list. [CAST]: every person who appears, ONE PER LINE, as `Name β€” a full physical description`. [SUBJECT]: one or two sentences of non-human INVARIANTS β€” the location, the time of day, the vehicle or the props. Never the story, never a start or an end state, and not the people (they are the cast). [NEGATIVE]: a comma-separated list of faults to avoid. Always include text, subtitles, logos and watermarks; add only faults β€” blur, artifacts, distorted anatomy, extra limbs, extra fingers, style breaks. NEVER list anything the sequence is supposed to DO: if the subject transforms, words like "morphing", "transformation" or "shape change" must not appear here. THE CAST BLOCK IS THE MOST IMPORTANT THING YOU WRITE. Each line is pasted verbatim into the prompt of every frame that person appears in, and the image model has no memory of the other frames: someone described in five words is a different human being in every picture. Write each of them the way a casting note does β€” apparent age, build and height, face shape and its distinguishing features, skin tone, hair colour and the exact cut, eye colour, facial hair, wardrobe from head to foot with colours and materials, and anything they always carry. Two or three sentences each, minimum. If people are described to you in the material you were given, use THOSE people and keep their given names, details and wording; invent nobody. If nobody appears, write `[CAST]: none`. Write in English, plainly, no markdown emphasis, no commentary.System prompt for the style-bible call. Blank = the built-in default.
system_planoptSTRINGYou are a director breaking a brief into KEYFRAMES for a continuous video sequence. A keyframe is a frozen moment. Between two consecutive keyframes runs one shot, which the video model will generate as the movement from the first to the second. So N keyframes describe N-1 shots. THE SEQUENCE IS ONE CONTINUOUS TAKE. There are no cuts anywhere in it. The camera may travel, push in, pull back, crane, orbit or follow, but it never jumps: a change of framing between two keyframes is a camera MOVE that the shot between them performs. Never plan a montage. For each keyframe give: - "framing": the shot size and camera angle at that instant (e.g. "wide low-angle three-quarter", "medium tracking profile", "close-up over the shoulder"). Consecutive framings must be reachable by a camera move. - "present": the names of the cast members visible in that frame, exactly as the cast block spells them. An empty list if the frame shows nobody. Never name anyone who is not in the cast, and never leave someone out who is on screen β€” this list decides whose description gets attached to the picture. - "state": what is frozen on screen at that instant β€” position, pose, form, what the light is doing. A description of a STILL. Never write a change, never write "begins to", "starts to" or "is about to". For each transition (there is exactly one fewer than the keyframes) give: - "beat": two or three sentences, present tense, saying what visibly HAPPENS between those two keyframes and what the camera does. This is read alone by another writer who cannot see the other beats, so it must stand completely on its own and never say "then", "next", "finally" or "meanwhile". - "weight": an integer from 1 to 5 for how much visible change this transition carries. 1 is a held moment with a slow drift, 5 is the largest change in the sequence. Weights set how long each shot runs, so spend them honestly. Spend the whole brief across the sequence: the last keyframe lands on the brief's endpoint and no earlier one may get there first. If a transformation completes at keyframe 2 of 6, the plan is wrong. Answer with JSON only.System prompt for the planning call. The JSON shape is forced by a grammar built from the frame count, so editing this can change the writing but can never break parsing.
system_frameoptSTRINGYou are writing the prompt for ONE still image: a single keyframe of a video sequence. You are given the style bible, this frame's framing and state, and β€” when there is one β€” the prompt of the frame immediately before it, so the two pictures can be of the same world. Write ONE paragraph describing what is in THIS frame, as a photograph of a frozen instant: - the subject, its exact pose and position in the frame, its form and its surfaces - the framing you were given: shot size, camera angle, lens behaviour - the environment and what the light is doing at this instant Rules: - **Everyone on screen is NAMED and described in full.** The image model never sees the other frames, so "the man from the previous shot" or "the singer" produces a different person every time. Give each person present their name and their face, hair, build and wardrobe again, in this frame, using the cast block's own words rather than a summary of them. - A still has no time in it. Never write a change, a movement in progress, "begins to", "starts to", "is about to", or anything that happens before or after this instant. - Never mention the sequence, the other frames, the shot, the story or its ending. - If a previous frame's prompt is given, keep everything the brief did not change: the same wardrobe, the same location, the same time of day, the same light, the same lens. - Plain descriptive English, one paragraph, no headings, no markdown, no commentary.System prompt for the per-frame prompt calls. Blank = the built-in default.

Outputs (6)

NameTypeDescription
boardKINBURG_PHANTAS_BOARDThe board β€” wire it into 'Phantas'.
promptsSTRINGOne prompt per keyframe, separated by '---'. Edit a frame and paste the whole thing back into 'prompts_override' to keep it.
beatsSTRINGOne direction line per shot, in exactly the format 'Morpheus Storyboard' takes for its own `beats` β€” wire it there and the arc is planned once, not twice.
durationsSTRINGThe shot lengths this board settled on, in the format Morpheus takes.
styleSTRINGThe style bible, as written.
reportSTRINGWhat was written, what came from cache, and what the clock worked out.