Nodes/ComfyUI-Apt_Preset/excel_video_assistant
ComfyUI Node

excel_video_assistant

A screenplay generator that has nothing to do with Excel

By cardenluo·Created 2 years ago·Updated 22 days ago· 309
excel_video_assistant
    • script
    script_template
    custom_template
    director自定义
    director_custom
    video_theme自定义
    video_theme_custom
    camera_movement自定义
    camera_custom
    lighting自定义
    lighting_custom
    visual_style自定义
    style_custom
    sound自定义
    sound_custom
    safety自定义
    safety_custom
    output_settings自定义
    output_custom
    dynamic_variable自定义
    dynamic_custom

    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/_custom pairs (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.

    CategoryApt_Preset/prompt

    Inputs (20)

    NameTypeDefaultDescription
    script_templateCOMBO11 options: 编剧-武术短片, 编剧-仙侠短剧, 编剧-科幻短片, 编剧-悬疑推理剧, 编剧-浪漫爱情剧, 编剧-喜剧短片, +5
    custom_templateSTRING
    directoroptCOMBO自定义71 options: 科幻片-克里斯托弗·诺兰, 科幻片-丹尼斯·维伦纽瓦, 特效片-迈克尔·贝, 赛车片-林诣彬, 古装片-张艺谋, 文艺片-王家卫, +65
    director_customoptSTRING
    video_themeoptCOMBO自定义29 options: 情感-遇见与救赎, 情感-错过与重逢, 情感-陪伴与告白, 情感-放手与成全, 悬疑-线索与真相, 悬疑-谎言与反转, +23
    video_theme_customoptSTRING
    camera_movementoptCOMBO自定义20 options: 推镜头, 拉镜头, 摇镜头, 跟随镜头, 升降镜头, 特写镜头, +14
    camera_customoptSTRING
    lightingoptCOMBO自定义67 options: 黄金时刻, 蓝色时刻, 霓虹 noir, 丁达尔效应, 剪影效果, 伦勃朗光, +61
    lighting_customoptSTRING
    visual_styleoptCOMBO自定义21 options: 电影级写实, 3D写实国漫, 水墨国风, 油画质感, 复古怀旧, 日式动画, +15
    style_customoptSTRING
    soundoptCOMBO自定义20 options: 紧张悬疑, 欢快轻松, 悲伤忧郁, 激烈动感, 宁静祥和, 史诗宏大, +14
    sound_customoptSTRING
    safetyoptCOMBO自定义2 options: Seedance安全机制, 自定义
    safety_customoptSTRING
    output_settingsoptCOMBO自定义16 options: 15秒产品展示, 20秒剧情片段, 30秒广告创意, 1分钟教学视频, 2分钟vlog片段, 3分钟纪录片节选, +10
    output_customoptSTRING
    dynamic_variableoptCOMBO自定义2 options: 输出要求, 自定义
    dynamic_customoptSTRING

    Outputs (1)

    NameTypeDescription
    scriptSTRING