Seedance 2.0 Prompt Enhancer (Cloud / Local GGUF)
Hand your Seedance 2.0 clip a prompt written by someone who read the docs
- first_frame
- last_frame
- reference_images
- reference_videos
- provider_config
- enhanced_prompt
Seedance 2.0 is a closed, paid video model, and like most of them it's extremely literal about its prompt grammar. Edit a clip and it wants @Video 1 references; generate between two frames and it wants first-frame plus last-frame wired in; describe an eight-shot sequence and it wants 镜头N ordering, not absolute timestamps. Get the intent phrasing wrong and the API charges you anyway. This node takes a sentence of what you want plus whatever media you've got, and returns a single enhanced_prompt STRING written to Seedance 2.0's official task vocabulary.
It's the second of the three core enhancers in T8mars' pack, sharing the exact same channel plumbing as the H3 node - the author's seedance.nz gateway by default, the t8star workshop, any OpenAI-compatible endpoint, or a fully offline local Qwen GGUF. The prompt protocols are kept completely separate, though: nothing H3-flavored leaks in here.
How it works
The node turns your intent into one of the official task types via task_intent: AUTO, T2V (text-to-video), I2V (first frame), FL-I2V (first + last frame), multimodal reference generation, video editing, video extension, track filling (bridging 2–3 clips), or combined tasks (edit one video while referencing another). In AUTO it reads your prompt and what's connected and picks. The media sockets follow the task - first_frame and last_frame for the frame tasks, reference_images and reference_videos for anything borrowing a subject or camera move.
The rest is Seedance-idiom control. complexity_mode decides between one tight paragraph (simple jobs) and explicit 镜头1 / 镜头2 / 镜头3 sequences (complex ones). reference_syntax picks the official Volcengine @图片N/@视频N style or Seedance.nz's English @Image N/@Video N. subtitle_policy and stability_constraints are exactly what they sound like, both AUTO by default. shot_count goes AUTO or a fixed 1–20, though high counts are a soft constraint - the upstream model may merge or drop shots and the node won't fail you for it. duration_seconds only shapes content density; nothing here fabricates per-shot second marks.
The inputs that matter
On a first pass you touch prompt (the only required field), task_intent (leave AUTO), and the media sockets for whatever you're doing. If the frames can't show a relationship or role, reference_roles lets you write things like @图片1=人物外观;@视频1=动作和运镜. reference_template migrates structure and rhythm only - never characters, props or plot. api_key here is again the prompt-enhancement LLM's key, not your Seedance 2.0 generation key.
Wire the enhanced_prompt output into your downstream Seedance 2.0 video node's prompt input, and you're done.
The audio boundary, stated plainly
Seedance 2.0 the model can handle audio. This node cannot analyze audio files, and the README is refreshingly blunt about why: a real capability probe on 2026-08-05 showed the default vision model rejecting OpenAI-compatible audio input outright ("audio input is not supported by this model"). So there's no AUDIO socket, and neither the cloud nor the local path claims to have heard your track. What you can do is describe dialogue, ambience and music in text, or keep text-only @音频N intent markers - they're understood as text, which is still useful.
Install and the gotchas
Same pack, same steps - Manager search "MiniMax H3 / Seedance 2.0 / Music 3 Prompt Enhancer (T8)", or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-prompt-enhancer-T8.git
Restart, Ctrl+F5. Cloud needs no extra deps; local mode pulls a ~16 GiB Qwen GGUF plus projector via python install_local_qwen.py and wants ~24 GB VRAM.
- Don't click "save to workflow" on the key before sharing a JSON.
- Cloud video uploads cap at 50 MB; local sampling is 2 fps visual frames only.
- Editing and combined tasks default to
@视频1as the edit target - if a different clip is the victim, say so inreference_roles. - Gateway 5xx/Cloudflare errors retry up to three times automatically; 401s and empty balances don't.
Inputs (39)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Normally this is the only text you need. Connected images/videos are analyzed by the LLM. | |
| task_intent | COMBO | AUTO(根据意图与素材判断) | 9 options: AUTO(根据意图与素材判断), T2V(文生视频), I2V(首帧图生视频), FL-I2V(首尾帧图生视频), 多模态参考生成(图片/视频), 视频编辑(增删改), +3 |
| complexity_mode | COMBO | AUTO(自动判断) | 3 options: AUTO(自动判断), 简单一段式, 复杂分镜式 |
| duration_seconds | COMBO | AUTO(模型智能选择) | AUTO 或 4-30 秒。只控制整体信息密度,不强制逐镜头秒数。 |
| shot_count | COMBO | AUTO(系统自动判断) | AUTO 或固定 1-20 个镜头;使用镜头N顺序,不生成绝对时间码。高镜头数可能被上游合并,不视为节点错误。 |
| rewrite_mode | COMBO | balanced | 3 options: strict, balanced, creative |
| output_detail | COMBO | AUTO(按内容判断) | 4 options: AUTO(按内容判断), 简洁, 标准, 详细 |
| output_language | COMBO | 中文 | 2 options: 中文, English |
| prompt_mode | COMBO | 官方优化 | 2 options: 官方优化, 参考模板融合 |
| case_template | COMBO | 无(不使用 T8 案例) | 选择后显示用途、输入格式、推荐示例、结构锚点和本地 GIF。迁移 Creative DNA 与因果节奏,不复制源人物、剧情、文案、镜头表或媒体。 |
| reference_syntax | COMBO | 火山官方(@图片N/@视频N/@音频N) | 2 options: 火山官方(@图片N/@视频N/@音频N), Seedance.nz API(@Image N/@Video N/@Audio N) |
| subtitle_policy | COMBO | AUTO(按用户意图) | 4 options: AUTO(按用户意图), 不要字幕, 需要字幕, 保留原要求 |
| stability_constraints | COMBO | AUTO(按场景添加) | 3 options: AUTO(按场景添加), 精简, 强约束 |
| api_mode | COMBO | 贞贞平价小屋(推荐) | 4 options: 贞贞平价小屋(推荐), 贞贞的AI工坊(图片/视频), OpenAI兼容接口(备用), 本地 GGUF(llama.cpp / Qwen,离线) |
| ai_workshop_model | COMBO | gemini-3.5-flash | 仅用于贞贞的AI工坊。默认 gemini-3.5-flash;选择 Custom 后填写下方模型 ID。 |
| first_frameopt | IMAGE | I2V / FL-I2V 的首帧。 | |
| last_frameopt | IMAGE | FL-I2V 的尾帧;不能单独使用。 | |
| reference_imagesopt | COMFY_AUTOGROW_V3 | — | |
| reference_videosopt | COMFY_AUTOGROW_V3 | — | |
| custom_length_targetopt | INT | 00–4000 | 0 使用详细度;非零是中文约数汉字或英文约数单词的软目标,不核验实际返回长度。 |
| reference_rolesopt | STRING | 例如:@图片1=角色外观;@视频1=动作和运镜。 | |
| reference_contextopt | STRING | 补充媒体无法可靠判断的身份、关系、品牌或剧情事实。 | |
| constraintsopt | STRING | 必须保留、禁止新增或禁止改变的内容。 | |
| api_keyopt | STRING | 可连接 STRING,或使用下方遮罩输入框;接线值优先。这是提示词增强 LLM 的 Key,不是视频生成 Key。 | |
| reference_templateopt | STRING | 只迁移结构、节奏、运镜、转场、风格和声音设计,不迁移人物与剧情事实。 | |
| custom_modelopt | STRING | OpenAI兼容模式必填;AI工坊选择 Custom 时使用。填写供应商模型列表中的完整 ID。 | |
| openai_base_urlopt | STRING | — | |
| openai_video_urlsopt | STRING | 每行一个,按已连接 VIDEO 顺序替代视频 Base64;未填写或未覆盖的视频仍以内联 Base64 发送。图片始终内联 Base64。 | |
| seedopt | INT | 00–18446744073709550000 | 控制 ComfyUI 缓存与 LLM 允许范围内的提示词变体,不是视频生成种子。 |
| local_modelopt | COMBO | Qwen3.8-27B-Q4_K_M.gguf | 递归扫描 ComfyUI/models/LLM 及其任意子目录。 |
| local_mmprojopt | COMBO | AUTO(自动匹配) | AUTO 会按 GGUF 元数据为当前主模型匹配视觉投影器。 |
| local_context_sizeopt | INT | 327688192–65536 | — |
| local_max_tokensopt | INT | 4096256–8192 | — |
| local_think_modeopt | COMBO | 关闭(推荐,速度优先) | 2 options: 关闭(推荐,速度优先), 开启(质量优先) |
| local_reasoning_effortopt | COMBO | medium | 3 options: low, medium, xhigh |
| local_video_sample_fpsopt | FLOAT | 2.000.25–8 | 本地模式只分析按真实时间戳采样的画面,不读取视频音轨。 |
| local_unload_policyopt | COMBO | 执行后卸载(推荐) | 3 options: 执行后卸载(推荐), 保持驻留, 空闲10分钟后卸载 |
| local_comfy_memory_policyopt | COMBO | AUTO(显存不足时释放) | 2 options: AUTO(显存不足时释放), 不主动释放 ComfyUI 模型 |
| provider_configopt | T8_LLM_PROVIDER_CONFIG | 不连接时完全使用本节点原有字段;连接后使用共享配置,断开即恢复。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| enhanced_prompt | STRING | — |