Nodes/Kinburg-Nodes/Morpheus Dream Board πŸŒ™
ComfyUI Node

Morpheus Dream Board πŸŒ™

Storyboard your video by chatting to an LLM

By KinburgΒ·Created 3 months agoΒ·Updated 6 days agoΒ· 1
Morpheus Dream Board πŸŒ™
    • shots
    • keyframes
    • beats
    • durations
    • links
    • shot_count
    • report
    β—„board_stateβ–Ί

    Storyboarding a video in ComfyUI is normally an act of assembly: you write each shot's description, pick keyframes, line up durations, and hope the lists stay in sync. The Morpheus Dream Board replaces the assembly with a conversation. You chat with the pack's Local LLM about the video you want to make, you pick pictures out of the conversation to anchor shots, and the board turns the whole thing into a storyboard - the pictures you picked become shot boundaries, and the messages between them become each shot's direction.

    The trick is that it's a board, not just a parser. There's an interactive UI (the pack ships web extensions for it) where you manage the conversation and choose which images become keyframes; the board_state input is the snapshot of that conversation-and-your-choices, managed by the board itself. You don't edit that string by hand - you work in the UI and the state rides through the node. The one required input is exactly that board_state, and its own tooltip warns you: "managed by the board. You don't edit this directly."

    What comes out is the full shot list in one place:

    • shots - the whole storyboard as one chain, wired into Morpheus Storyboard's shots input. Each shot carries its own keyframes, length, link mode and direction, and an empty prompt - which is what tells Storyboard to write the direction for you. One wire instead of four lists that only line up by position.
    • keyframes - the picked pictures in conversation order, wired into Storyboard's keyframes as shot boundaries.
    • beats - one line per shot in Storyboard's beats format, if you want to read or hand-edit the directions (route it through a Show Text node first).
    • durations, links, shot_count - per-shot seconds, link mode (continue inherits the previous shot's last frame, cut starts fresh from text), and how many shots the board came to.
    • report - the shot table: which pictures bound which shots, how many messages went in, anything that was dropped or cropped.

    Wiring it all to Morpheus Storyboard is the intended end state: the board produces the plan, Storyboard writes the directions, the Morpheus sampler renders. This is the LLM-as-tool pattern from the pack's own docs - the language model is upstream of generation, shaping what gets made rather than being encoded into it.

    Installing

    Ships in Kinburg-Nodes: ComfyUI Manager β†’ search "Kinburg-Nodes", or clone into custom_nodes and restart. This one sits on the pack's local-LLM chat infrastructure, so you need llama-cpp-python (installed automatically by install.py, which Manager runs) and a GGUF chat model configured in the Local LLM Settings node. The board UI is a browser-side extension that ships with the pack - no separate install.

    Gotchas

    If you wire shots to Storyboard, leave Storyboard's own keyframes/durations/links/shot_count alone - the chain carries them and they only conflict if you override. And shot_count is the one value worth wiring even when you feel like you have enough connections: Storyboard's own default would stop at the keyframes, so the text-only shots at the end of a board don't get written unless you tell it the real count.

    CategoryKinburg-Nodes/Bestiary/Morpheus

    Inputs (1)

    NameTypeDefaultDescription
    board_stateSTRINGThe snapshot of the conversation and what you picked from it, managed by the board. You don't edit this directly.

    Outputs (7)

    NameTypeDescription
    shotsKINBURG_MORPHEUS_SHOTThe whole storyboard as one chain β€” wire it into Storyboard's 'shots' and leave its keyframes / durations / links / shot_count alone. Each shot carries its own keyframes, length, link mode and direction, and an EMPTY prompt, which is what tells Storyboard to write it. One wire instead of four lists that only line up by position. Route 'beats' into a Show Text as well if you want to read or hand-edit the directions β€” Storyboard's 'beats' input overrides what is in the chain, line by line.
    keyframesIMAGEThe picked pictures in conversation order β€” wire into Storyboard's 'keyframes'. They are consumed there as shot boundaries, which is exactly the order they are in here. None when you picked no pictures, which Storyboard reads as a text-only chain.
    beatsSTRINGOne line per shot, in Storyboard's 'beats' format. Route it through a 'Show Text' node first if you want to read or hand-edit it before it is written up.
    durationsSTRINGPer-shot seconds for Storyboard's 'durations'.
    linksSTRINGPer-shot link mode for Storyboard's 'links' β€” what a shot with no start keyframe does: 'continue' inherits the previous shot's last frame, 'cut' starts fresh from text.
    shot_countINTHow many shots the board came to β€” wire into Storyboard's 'shot_count' so the text-only shots at the end are written too (its own default would stop at the keyframes).
    reportSTRINGThe shot table: which pictures bound each shot, how many messages went in, and anything that was dropped or cropped.