导演台工作站 - Star7
A storyboard app wearing a ComfyUI node
- model
- clip
- video_vae
- audio_vae
- asset_library
- 运行报告
What you're actually looking at
Most custom nodes are a box with sockets. Star7DirectorDesk (导演台工作站 - Star7) is the other kind: a small application that registered itself as a node. Drop it on the canvas and instead of a widget column you get an iframe filling the node body - shot list, asset browser, generation queue, preview player, HD re-sample and face-refine toggles, export buttons. What it actually does on the backend is run one MiniMax H3 pipeline, per shot, in up to three stages.
Why you'd want that: generating one good five-second clip stopped being the hard part. Keeping shot 12 continuous with shot 11, re-rolling only the shot that came out wrong, and getting a merged MP4 out the far end - stock ComfyUI has no opinion about any of it. If you've read about LTX Director, this is the same shape of answer for a different model, and the same trade: Star7 is welded to MiniMax H3, so it isn't what you reach for on Wan or LTX.
How it works
The desk is an output node whose IS_CHANGED returns float("NaN") - the standard ComfyUI idiom for "must fire every run", since NaN never equals anything, itself included. It can never be skipped - which you want from something that owns a queue, and why it always looks busy when you hit Run.
Everything you type in that panel lives inside project_json: a required multiline string (default {"schema_version":"1.0","id":"project","assets":[],"shots":[]}) the frontend hides on purpose. On queue, generate() parses it, merges the asset library, checks the shot's keyframe timeline and continuity dependencies, then builds an internal graph from the pack's own pipeline.json - stock SamplerCustomAdvanced, BasicGuider, BasicScheduler, RandomNoise and KSamplerSelect, plus private Star7 nodes for conditioning, base-cache reuse, the HD pass, face refine, chunked decode and video save - and walks those links itself, stage by stage.
None of those nodes appear on your canvas, and the pack doesn't register them. This isn't core Subgraph; it's a pack running its own graph inside one node's execution - which is also why a failure comes back as one run report instead of a red box halfway across the graph.
The inputs that matter
Four sockets, all optional in the schema and all mandatory at runtime for generation: model, clip, video_vae, audio_vae. Miss one and the code raises outright. The "four" is the part people trip on - H3 generates native stereo audio, so a video VAE and an audio VAE are both required.
asset_library is where the other node in this pack plugs in. project_json stays hidden; the panel writes it for you.
The single output is 运行报告 (run report, a STRING) - wire it into a Show Text if you want stage timings on canvas.
One wrinkle: exporting or merging sends a project_json carrying an export action, and that path doesn't touch the four model inputs - you can export a finished project without the weights loaded.
Installing it
Manager, search star7-director, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/star7code/star7-director
cd star7-director
/path/to/ComfyUI/venv/bin/python -m pip install -r requirements.txt
Restart and hard-refresh the browser (Ctrl-Shift-R). A large share of this pack is front-end; a stale tab shows you something broken that isn't.
No weights ship in the repo. The author's example workflow (workflows/Star7导演台.json) expects ComfyUI core to already support MiniMax H3, and wires the model chain through the author's other pack, star7code/minimax-h3-chunk-star7, for Sigma Shift, VEDA and activation chunking. You supply the H3 weights, a qwen3-vl text encoder, both VAEs and optionally a turbo LoRA for the 4-step preset. That chain can be swapped for other compatible nodes, but the example is wired to it, so install it on day one.
Where people get burned
The four-input error on first run. Almost always the audio VAE, because audio feels like a post-process. It isn't.
requirements.txt is heavier than the node list suggests. Besides av, imageio-ffmpeg, safetensors, scipy, numpy, Pillow and aiohttp, it pins ultralytics>=8.3.162 and scenedetect>=0.7 - and in v0.3.0 nothing in the shipped Python imports either of them. Ultralytics is the one that drags a torchvision/opencv tail into your environment; on a portable build, run pip with ComfyUI's embedded Python.
Continuity prechecks are strict by design. Modes that continue from the previous shot read that shot's saved caches rather than falling back to the delivered MP4 - the README is blunt that it won't reverse-engineer lossless data out of a compressed video. "Cache missing" after an update means regenerate the prior shot once, and you have to switch to an idle project before clearing caches.
Keep data/. Projects, media and caches live in data/projects/<project id>/. Updating the code doesn't touch it; deleting it deletes your work. Finished videos land in output/Star7-Director/<date>/.
Last calibration: a single author, and v0.3.0 landed the day before this page was written. Labels are Chinese, log events English. Capable and young - pin the version you validated on.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| project_json | STRING | {"schema_version":"1.0","id":"project","assets":[],"shots":[]} | — |
| modelopt | MODEL | — | |
| clipopt | CLIP | — | |
| video_vaeopt | VAE | — | |
| audio_vaeopt | VAE | — | |
| asset_libraryopt | STAR7_DIRECTOR_ASSET_LIBRARY | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| 运行报告 | STRING | — |