excel_video_assistant
A screenplay generator that has nothing to do with Excel
- script
The name is misleading - this node doesn't touch a spreadsheet, and it lives under the pack's prompt category, not its excel one. What it actually does is assemble a full video/drama script by filling a template with a stack of dropdown choices: genre, director style, theme, camera moves, lighting, visual style, sound mood, and a couple of output-format presets. Think mad-libs for short-form video prompts, in Chinese, built for the short-drama (短剧) production pipeline that's a real industry in China right now - feed the output into an LLM node or straight into your video-gen prompt and you've got a structured brief instead of a blank text box.
How it works
Pick a script_template from 11 genre presets - martial arts short, xianxia fantasy drama, sci-fi, mystery/deduction, romance, comedy, horror, documentary-style, animation, music short, or Custom - and every other field layers on top of it. director has 71 choices, each one a named-director aesthetic (sci-fi via Christopher Nolan, period drama via Zhang Yimou, arthouse via Wong Kar-wai, animation via Miyazaki or Shinkai, and so on), lighting has 67, video_theme 29, visual_style 21, camera_movement and sound 20 each. Every one of those dropdowns pairs with a _custom STRING field so you can type your own text instead. The order of precedence matters and it's not what you'd guess: the dropdown wins over the custom field. Each dropdown defaults to "自定义" (Custom), and only while it's left on that default does the node actually read your typed override - pick any specific option and your custom text for that field gets ignored. If you want your own wording to stick, leave the dropdown alone.
There's also a custom_template field that bypasses script_template entirely if you'd rather write the whole structure yourself, and a safety toggle that name-drops "Seedance安全机制" (Seedance's safety mechanism) - Seedance is ByteDance's closed video model, which tells you what pipeline this node was built to feed.
Inputs and output
- script_template (required) and custom_template (required) - the two fields that actually decide the shape of what you get. Everything else is optional flavor.
- The dropdown/
_custompairs (director, video_theme, camera_movement, lighting, visual_style, sound, safety, output_settings, dynamic_variable) - set the few you care about, leave the rest on default. - script (STRING, output) - the finished text with every variable substituted. Wire it to a text-display node to sanity-check it, or straight into whatever prompt/LLM input is next in your graph.
Installing it
Search ComfyUI-Apt_Preset in ComfyUI Manager and install, or do it by hand: cd ComfyUI/custom_nodes && git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git, then restart. The README's own dependency step is "double-click install.bat," which is a fair sign this pack was built Windows-first - there's no requirements.txt in view, so on Linux or Mac, open install.bat to see what it's actually installing and pip-install those yourself, or just let Manager's dependency resolution handle it. This particular node needs none of the pack's heavier extras (no GGUF loader, no ControlNet scheduler, no downloaded segmentation or Ollama models) - those are for other corners of this large pack.
Common issues
The obvious one first: every dropdown value is in Chinese, and there's no English toggle anywhere in the schema. If you don't read Chinese, don't fight the presets - set the dropdowns you don't understand back to their Custom default and write your own English text into the matching _custom field instead.
Second, remember the precedence rule above, because it bites in a specific way: if you leave a dropdown on Custom and leave its _custom field blank, that slot just goes into the script empty. There's no validation step here, so proofread the script output before sending it downstream - a half-filled template reads fine at a glance and produces garbage prompts.
This is also a huge, actively developed pack bundling loaders, sampler stacks, and dozens of utility nodes under one Python package - an import failure anywhere in it can take the whole pack down, and people have reported exactly that ("IMPORT FAILED") for ComfyUI-Apt_Preset in the wild. If the node doesn't show up after a restart, check the ComfyUI console at boot for the real traceback rather than guessing.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| script_template | COMBO | 11 options: 编剧-武术短片, 编剧-仙侠短剧, 编剧-科幻短片, 编剧-悬疑推理剧, 编剧-浪漫爱情剧, 编剧-喜剧短片, +5 | |
| custom_template | STRING | — | |
| directoropt | COMBO | 自定义 | 71 options: 科幻片-克里斯托弗·诺兰, 科幻片-丹尼斯·维伦纽瓦, 特效片-迈克尔·贝, 赛车片-林诣彬, 古装片-张艺谋, 文艺片-王家卫, +65 |
| director_customopt | STRING | — | |
| video_themeopt | COMBO | 自定义 | 29 options: 情感-遇见与救赎, 情感-错过与重逢, 情感-陪伴与告白, 情感-放手与成全, 悬疑-线索与真相, 悬疑-谎言与反转, +23 |
| video_theme_customopt | STRING | — | |
| camera_movementopt | COMBO | 自定义 | 20 options: 推镜头, 拉镜头, 摇镜头, 跟随镜头, 升降镜头, 特写镜头, +14 |
| camera_customopt | STRING | — | |
| lightingopt | COMBO | 自定义 | 67 options: 黄金时刻, 蓝色时刻, 霓虹 noir, 丁达尔效应, 剪影效果, 伦勃朗光, +61 |
| lighting_customopt | STRING | — | |
| visual_styleopt | COMBO | 自定义 | 21 options: 电影级写实, 3D写实国漫, 水墨国风, 油画质感, 复古怀旧, 日式动画, +15 |
| style_customopt | STRING | — | |
| soundopt | COMBO | 自定义 | 20 options: 紧张悬疑, 欢快轻松, 悲伤忧郁, 激烈动感, 宁静祥和, 史诗宏大, +14 |
| sound_customopt | STRING | — | |
| safetyopt | COMBO | 自定义 | 2 options: Seedance安全机制, 自定义 |
| safety_customopt | STRING | — | |
| output_settingsopt | COMBO | 自定义 | 16 options: 15秒产品展示, 20秒剧情片段, 30秒广告创意, 1分钟教学视频, 2分钟vlog片段, 3分钟纪录片节选, +10 |
| output_customopt | STRING | — | |
| dynamic_variableopt | COMBO | 自定义 | 2 options: 输出要求, 自定义 |
| dynamic_customopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| script | STRING | — |