简介:Seedance 2.0提示词指南可运行源码包,面向短视频创作者、AI视频爱好者及希望系统掌握即梦平台提示词工程的中高阶用户。内容涵盖从新手到AI导演的完整进阶路径,以五要素导演法为核心,分别从主体/角色、动作/剧情、镜头/运镜、场景/氛围/光影、风格/特效/音频五个维度拆解提示词组织逻辑,同时给出稳公式模板与@参考标签的实战用法。资源内含80余个可直接复制的提示词模板,覆盖基础参数设置、高阶玩法与负面提示关键项,并附避坑心法与精准控场技巧,帮助用户快速摆脱废片、稳定产出高质量视频。压缩包为zip格式,共3个文件、仅14KB,以可运行index.html为主体,配合.inscode与.gitignore文件便于直接在在线环境中启动与版本管理,轻量却高度浓缩,适合需要快速查阅和照抄调用提示词模板的创作者。目前已有971人学习下载,是上手Seedance 2.0提示词体系的实用速查手册。
1. Seedance 2.0提示词指南:先弄懂它"怎么看文字"
很多人拿到 Seedance 2.0 第一件事就是拿写 Midjourney 的那套短词去试试,结果发现出片质量完全是抽卡——同一个场景描述,换个措辞出来的画面能差一个量级。这其实不怪模型,而是大多数人还没意识到 Seedance 2.0 对文字的解析方式是「时序结构化」的:它不像文生图模型那样把提示词当静态标签集合,而是把整段文字当作一条带时间轴的分镜脚本去执行。也就是说,提示词里描述的顺序、动作的起始状态、镜头运动的方位词,都会被映射到视频帧序列上,哪个词先出现、哪个动作先发生,直接影响生成结果。
这份指南要解决的就是三件事:Seedance 2.0 到底偏好什么结构的提示词、怎么写才能稳定复现同一个画面风格、以及怎么用一套可运行的脚本把「写提示词→调接口→出视频」整条链路跑通。内容适合两类人:一类是短视频创作者,想用文本生成替代实拍分镜;另一类是产品 / 独立开发者,准备把视频生成能力接进自己的工具链。前者关注提示词怎么写,后者关注参数怎么调、批量怎么跑。下文所有写法都是可以直接抄作业的,包括最后踩坑部分,那些都是真金白银换来的教训。
2. Seedance 2.0 的提示词解析机制:为什么长文本反而更稳
2.1 时序优先:提示词顺序就是视频的时间轴
Seedance 2.0 的训练目标决定了它必须从一段连续文本中推断出「先发生什么、后发生什么」。这带来一个直接结论:提示词的书写顺序不能乱。常见做法是「场景打底 → 主体出现及属性 → 主体动作 → 镜头运动 → 光影与氛围 → 收尾约束」,这个顺序模仿的是分镜脚本的写作逻辑。如果你把镜头运动写在主体动作之前,模型偶尔会先执行镜头运动再生成主体动作,出来的画面就是运镜已经推近但人物还没入画,非常诡异。
另一个关键点是动作的时序描写要完整。「一个人从椅子上站起来走向窗边」比「起立,走到窗边」稳定得多,因为后者缺少了起始状态描述。Seedance 对「已完成的动作」和「正在进行的动作」区分得很清楚,建议所有动词都使用进行时,比如 walking、turning、picking,而不是 walked、turned。这是模型中英文训练语料里最常见的视频标注格式,顺着它写等于在降低解析成本。
2.2 属性密度:主体信息要一次性给全
Seedance 2.0 对主体属性的处理方式和多数视频生成模型类似:它倾向于在主体第一次出现的上下文窗口里提取属性。如果你在第 8 个词的位置写了一个穿红裙子的女孩,又隔了很多词补了一句红裙子是丝绸材质,模型大概率只记住「红色」而丢掉「丝绸」,因为此时注意力已经分散到后续动作上了。这是注意力机制的固有限制,不是玄学。
所以写主体的正确姿势是压缩信息密度:把服装、发型、年龄感、姿态、与周围环境的关系,全部揉进第一句。比如「一个二十多岁的亚洲女性,黑色短发,穿着深蓝色牛仔工装外套和白色运动鞋,站在旧书店门口翻书」——这句里包含七个属性,全部集中在一个主语之下。后续整个视频中模型都会围绕这个主体描述来维持一致性,后面不再追加新的属性词。
2.3 负面描述不如正面约束
视频生成模型的负向提示词机制普遍比图像生成模型弱,Seedance 2.0 也差不多。实测「不要出现模糊人影」的效果远不如「背景中空无一人」或「画面中只有这一个角色」。原因是负向指令需要模型在推理时额外构建一个「排斥目标」,这比直接给出「取而代之的画面内容」要难得多。推荐的写法是把所有不想要的东西反向写成想要的场景元素,塞进提示词末段作为约束句。
2.4 一个可以直接套用的提示词结构模板
综合上面的机制,我平时用的 Seedance 2.0 提示词结构是下面这套五段式,可以直接复制改造:
[场景与画幅]:傍晚时分的江南小镇街道,雨后积水反光,画面为 16:9 横构图 [主体与属性]:一位三十岁左右的男性,穿着米色风衣,戴黑框眼镜,手里拿着一把黑色长柄伞 [动作时序]:他正在沿着石板路缓步向前走,左顾右盼,似乎在找门牌号 [镜头语言]:镜头从背后中景跟拍,随后缓慢向前推进,同时轻微上摇,带出街道尽头的拱桥 [氛围与约束]:整体色调偏冷暖交融,路灯刚亮,水面倒影清晰,画面中不得出现其他行人,不得出现现代交通工具这个模板的逻辑是:场景决定生成背景,主体决定一致性核心,动作时序决定视频节奏,镜头语言决定调度方式,氛围与约束决定画风收尾。每次写提示词就按这五段往里填内容,顺序不要换。后期你会发现大多数翻车都可以归因到偷懒没写满五段,尤其是最后一段约束句被省略的时候。
3. 从口语脚本到 Seedance 分镜:一段提示词的逐句改造实录
3.1 先写口语脚本,再逐句翻译成镜头语言
拿到一个创作需求时我一般不会直接写提示词,而是先写一段口语化的分镜脚本,说明白画面里有什么、发生了什么。这个过程是给 Seedance 2.0 写提示词最容易忽略的前置步骤——没有脚本直接写出来的提示词往往前后信息互相干扰。比如口语脚本写着「女孩在小巷里跑,镜头跟着她」,翻译成 Seedance 提示词至少要拆成四件事:巷子是什么样、女孩长什么样、她为什么跑、镜头用什么方式跟。口语脚本是压缩过的想法,AI 需要的是展开后的描述。
下面是同一段内容的口语脚本和改造后的 Seedance 提示词对比:
口语脚本(原始): 雨夜,一个女孩在小巷里奔跑,镜头在后面追着她。她的头发湿了。巷子很窄。她想找一个亮灯的地方。 改造后的提示词: 雨夜的城市后巷,巷宽约两米,两侧是老旧居民楼外墙,墙上有空调外机和杂乱电线,地面湿漉漉反射霓虹灯光。 一个二十岁出头的亚洲女孩,齐肩黑发湿透贴着脸颊,穿着红色连帽运动外套和黑色短裤,白色运动鞋踩过水坑。 她正在小巷中向前快速奔跑,不时回头看向身后,神情紧张,呼吸急促,明显在逃离什么。 镜头从女孩背后 45 度角低机位跟拍,保持约两米距离,小幅上下颠簸模拟跑步视角,同时缓慢拉远,露出巷口外的街道灯光。 氛围紧张而压抑,色调以冷蓝为主,只有远处路灯和霓虹灯提供暖色光源,画面中不得出现其他人物,不得出现雨滴入镜遮挡镜头的效果。3.2 分镜编号:长视频必须拆段写
Seedance 2.0 单次生成有时长上限,这个上限内画面内容越多,每个元素的还原度越差。我习惯把超过 8 秒的脚本拆成多个分镜独立生成,每个分镜一条提示词,分镜之间用固定角色参考图或首帧画面衔接。每个分镜提示词仍然走五段式结构,但需要额外在开头加上「上一分镜的延续」描述,比如「场景延续上一段,同一女子在小巷出口停下,动作衔接为」——这种写法能显著提高多段生成之间的连续感。
分镜拆分的粒度参考:单个分镜控制在 4 秒左右、描述 2 到 3 个连续动作,超过这个负载就建议再拆。我踩过最深的坑是幻想一个 10 秒提示词能一次生成完整叙事,结果模型在前 3 秒就消耗完了全部细节,后半段画面基本是自由发挥。
3.3 中英文混写:Seedance 特有的优势
Seedance 2.0 对中文的语义理解明显好于多数同类模型,直接写中文提示词不会出现严重的语义丢失。但对运镜描述和风格词,我仍然建议保留英文原词,原因很朴素:训练数据的视频标注大多来自英文语料,push in(推进)、crane up(升降)、low angle tracking(低角度跟拍)这些词是模型见过的原始标签,解析最准。而场景、道具、人物状态这些语义性内容用中文写反而细节更丰富。最终提示词形态是中英混排,中文为主体叙述、英文做镜头调度关键词,各取所长。
3.4 不同提示词写法的效果对照
为了让你直观看到差距,我整理了一份对比表。同一个画面内容,分别用三种典型写法投给 Seedance 2.0,生成结果的稳定度差异非常明显:
| 写法类型 | 提示词示例 | 画面还原度 | 运镜准确度 | 主体一致性 |
|---|---|---|---|---|
| 短标签式 | 女孩,小巷,雨夜,奔跑 | 低,背景随机生成 | 无运镜,固定机位 | 较差,每帧可能换脸 |
| 口语段落式 | 一个女孩下雨天在小巷里跑,镜头在后面追她 | 中,场景能对上但细节丢失 | 模糊,镜头距离不稳定 | 中等,主体基本稳定 |
| 五段结构式中英混写 | 雨夜城市后巷…她正在快速奔跑…镜头从背后 45 度低机位跟拍… | 高,场景细节还原到位 | 精准执行推进与颠簸 | 好,跨帧属性保持稳定 |
这个表不是空谈——同样内容的提示词,第三种写法在运镜指令上的还原率比第二种高出一大截。原因就是第二段的「镜头在后面追她」是语义描述,模型要自己翻译成运镜指令;第三段直接给了 low angle tracking,模型不需要二次翻译。能直接给模型认识的关键词,就别让它做阅读理解,这是 Seedance 提示词的第一原则。
4. 可运行源码:搭建本地调用 Seedance 2.0 的最小工程
4.1 准备工作与请求链路
Seedance 2.0 的视频生成能力通过模型服务商的平台 API 开放,链路是:拿到 API Key → 提交生成任务 → 轮询任务状态 → 拿到视频地址下载。这套链路的典型特征是生成任务耗时较长,所以代码核心必须包含任务轮询逻辑。下面给出的是可以直接运行的最小工程,包含提示词构造、任务提交、状态轮询、结果下载四个环节。运行环境需要 Python 3.9+ 和 requests 库。
4.2 完整调用脚本:提示词模板 + 异步任务轮询
import requests import time import json import os # 配置区:从模型服务商控制台获取 API Key 与接入点地址 API_KEY = "your_api_key_here" BASE_URL = "https://your-service-endpoint.example.com/v1" HEADERS = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } def build_prompt(scene, subject, action, camera, mood): """ 五段式提示词模板:按 scene -> subject -> action -> camera -> mood 拼接 顺序不可调换,调换会导致镜头指令被提前解析 """ return f"""{scene} {subject} {action} {camera} {mood}""" def create_generation(prompt, duration=5, fps=24, seed=None, size="1920x1080"): """ 提交视频生成任务,返回任务ID - duration: 视频时长秒数,可选 5 或 10 - fps: 输出帧率,一般取 24 - seed: 固定随机种子,用于复现同一画面的生成结果 """ payload = { "model": "seedance-2.0", "prompt": prompt, "duration": duration, "fps": fps, "size": size, "watermark": False, "seed": seed } # 过滤掉值为 None 的参数,避免服务端报错 payload = {k: v for k, v in payload.items() if v is not None} resp = requests.post(f"{BASE_URL}/generations", json=payload, headers=HEADERS) resp.raise_for_status() return resp.json()["task_id"] def poll_generation(task_id, timeout=600, interval=10): """ 轮询生成任务状态 - timeout: 最长等待秒数,10秒视频生成可能超过5分钟 - interval: 轮询间隔,太短会触发接口限流,建议不少于5秒 """ start = time.time() while time.time() - start < timeout: resp = requests.get(f"{BASE_URL}/generations/{task_id}", headers=HEADERS) resp.raise_for_status() data = resp.json() status = data.get("status") if status == "succeeded": return data["video_url"] elif status == "failed": raise RuntimeError(f"生成失败: {data.get('error', '未知原因')}") time.sleep(interval) raise TimeoutError(f"任务 {task_id} 在 {timeout} 秒内未完成") def download_video(url, save_path): """ 下载生成的视频到本地 """ resp = requests.get(url, stream=True) resp.raise_for_status() with open(save_path, "wb") as f: for chunk in resp.iter_content(chunk_size=8192): f.write(chunk) print(f"视频已保存到: {save_path}") if __name__ == "__main__": # 示例:直接用五段式结构生成一段雨天小巷视频 prompt = build_prompt( scene="傍晚时分的江南小镇街道,雨后积水反光,16:9 横构图", subject="一位三十岁左右的男性,穿着米色风衣,戴黑框眼镜,手里拿着一把黑色长柄伞", action="他正在沿着石板路缓步向前走,左顾右盼,似乎在找门牌号", camera="镜头从背后中景跟拍,随后缓慢向前推进,同时轻微上摇,带出街道尽头的拱桥", mood="整体色调偏冷暖交融,路灯刚亮,水面倒影清晰,画面中不得出现其他行人" ) task_id = create_generation(prompt, duration=5, fps=24, seed=20240511) print(f"任务已提交: {task_id}") video_url = poll_generation(task_id) download_video(video_url, "./output_seedance_2.mp4")4.3 参数怎么调:五个关键配置项
模型参数这里单独拎出来说,因为它的调整逻辑和提示词同等重要。duration参数决定单次生成的视频长度,Seedance 2.0 一般提供 5 秒和 10 秒两档,建议新手从 5 秒起步。原因很实际:时长越长,模型对每个细节的还原度指数级下降;同一个提示词,5 秒版本能保证主体精确,10 秒版本画面信息密度会明显稀释。我的习惯是先跑 5 秒确认画面和运镜风格符合预期,再拆分成多段 5 秒分镜拼接。
seed参数是复现的后悔药。固定 seed 后,同样提示词每次生成的关键帧画面基本一致,只有微小的随机扰动。利用这个特性可以做「先低成本试菜再加大投入」:用 5 秒短时长 + 固定 seed 快速验证提示词效果,确认后再去跑 10 秒版本。没有固定 seed 的情况下,同样的提示词每次生成都是完全不同的画面,没法做 A/B 对比。
size和fps一般是预设枚举值。建议默认 1920x1080 与 24fps,社交媒体竖屏场景可以换 720x1280,但注意竖屏尺寸下主体占画面比例会变大,对提示词里场景描述的还原空间会被挤压。watermark建议关闭,一个是水印会影响后续剪辑,另一个是开启后部分画面上会有一层轻微模糊叠加,对画面的锐度有肉眼可见的影响。
4.4 批量生成:先跑队列再 人工筛选
单个提示词调通之后,批量生成是投入生产的必经之路。常见做法是维护一个提示词 JSON 文件,每条包含五段式元素、时长、seed,脚本批量提交后统一轮询。这里给一个批量核心思路:用 seed 递增(从 10001 开始每次加 1)的方式给同一条提示词生成 4 到 6 个候选,筛选出运镜最准、主体最稳的那一条用于交付。这个过程没有捷径,Seedance 2.0 的生成自带随机性,批量候选 + 人工挑选是保证出片下限最可靠的方式。
import json # 批量任务配置示例:每组提示词跑3个seed,各生成5秒短视频 tasks = [] for i, prompt_config in enumerate(json.load(open("./prompts.json", "r", encoding="utf-8"))): for j in range(3): tasks.append({ "task_id": create_generation( prompt=prompt_config["prompt"], duration=5, fps=24, seed=10001 + i * 10 + j ), "prompt_name": prompt_config["name"], "seed": 10001 + i * 10 + j })这段代码里 JSON 中每条记录包含 name 和 prompt 字段,name 用于结果文件名标识,prompt 是已经按五段式拼接好的完整提示词。跑完后写个简单脚本把成功任务返回的视频 URL 下载到以 seed 命名的目录里,人工过一遍。固定 seed 的好处在这里体现得最充分——看中了某一个候选,你随时可以用同 seed 重新生成更高参数版本,不用赌运气。
5. 避坑:Seedance 2.0 提示词最容易翻车的 5 个地方
5.1 动作状态词用了过去时,画面静态得像照片
现象:提示词写的是 "walked into the room",生成结果里人物是从房间里凭空出现的,或者干脆是定格画面。原因:Seedance 2.0 的训练数据把过去时动词关联到静态帧标注,模型倾向于在视频首帧就把动作当作已完成状态输出。解决:所有主体动作一律用现在进行时,walking、turning、picking up,动词后面补上动作承接对象。同时注意整段提示词只使用一种时态,时态混用在长提示词里会引发中段动作突变。
5.2 主体属性分散描述,生成到一半变脸
现象:提示词开头写了「穿红色连衣裙的女孩」,中间又补了一句「她戴着一顶草帽」,结果视频 2 秒后女孩的服装发生了微变,帽子出现但连衣裙的颜色开始漂移。原因:属性词被分散在多个句子中,模型在跨帧生成时对后出现的属性注意力不足。解决:所有属于主体本身的属性,压缩进同一句话里,宁可句子冗长也不要拆开。补充规则是「主体属性只写一次」,后续提到主体一律用主述(她/他)引导动作,不再追加任何外观词。
5.3 运镜词和主体动作词互相抢解析
现象:提示词里同时写了 push in(推进)和人物 running(奔跑),最终画面人物往左跑、镜头却从上方俯拍推进,运镜和动作完全脱节。原因:运镜词和动作词在解析时注意力竞争,模型没有能力同时严格执行两套指令,总有一个被弱化。解决:运镜优先原则——如果你想保留镜头的精确性,把动作描述的幅度降低,比如把「快速奔跑」改为「缓步前行」;反过来,想让动作表现优先时,运镜就写保守的 fixed shot 或 subtle handheld。两者都想要强烈的动态感,是提示词最容易翻车的组合。
5.4 提示词末尾的约束句子被直接忽略
现象:提示词里写「画面中不得出现任何文字」,但生成结果里墙上依然出现了招牌字。原因:Seedance 2.0 对否定前缀(不得、不能、禁止)的解析稳定性远低于对正面描述的解析。解决:把否定句改成正面指定句。「画面中不得出现任何文字」改成「所有墙面均为素面砖墙,无任何招牌或涂鸦字样」;「不要出现人物」改成「画面为空旷街道,一个人也没有」。改完之后你会发现约束执行力提升非常明显——模型天生就不理解「不」字,但它很擅长理解「是一个什么样子的画面」。
5.5 过度指定光线导致主体被淹没
现象:提示词对复杂夜景灯光进行了大篇幅描述(霓虹灯五颜六色 + 路灯 + 车灯),结果主体人物面部细节完全丢失,黑成一团。原因:视频生成模型对画面亮度和对比度的调配容易走极端——当场景光源描述密度过高时,它会优先保证光源的丰富度,牺牲主体的受光表现。解决:光源控制在两条以内,并且明确写出主体受光方向。比如「主体面部被左侧路灯照亮,右侧霓虹灯提供蓝色环境光」。让光线为主体服务,而不是让主体成为光线的陪衬。
6. 进阶技巧:用首帧参考图 + 关键词微调把出片上限再抬一截
纯文本提示词能做到的上限大约在 6 分左右,再往上就需要引入参考图了。Seedance 2.0 支持图生视频模式,也就是给一张首帧图 + 提示词,模型在此基础上延续运动。这个模式的提示词写法和文生视频完全不同——首帧里已经包含的主体外观信息,提示词里不要重复描述。重复描述会形成「文本属性 vs 图像属性」的冲突,模型会试图融合两者,结果两头不讨好。
图生视频模式的提示词重点放在三个维度:运动方向、镜头调度、环境变化。首帧是人物站在街道中央,提示词只需要写「人物向前走出画面,镜头从正面保持距离缓慢后退,街道两旁的灯光逐渐亮起」,人物的服装表情一个字都不要提。环境变化词则负责让画面动起来而不只是镜头在动,树叶摇动、水面涟漪、光线渐变这些细节词比主体动作词更能提升动态真实感。
最后一个建议:养一套自己的提示词模板库。我平时按场景类型维护了五六个模板——城市夜景、户外自然、室内人物、产品展示、国风古装,每个模板就是五段式结构的变体,写死了场景常驻词和约束句。接到新需求先想匹配哪个模板,然后只替换主体和动作部分,出片效率比每次都从头写提示词翻一倍以上。这套模板库配合固定 seed 验证流程,基本上能做到「存下来的提示词随时能复现」——这比任何一次偶发的惊艳出片都值钱。希望这次梳理的写法能帮到你,篇幅有限,剩下的好效果都是调出来的。
本文还有配套的精品资源,点击获取