HiAPI
博客

教程

Seedance 2.0 Ext 2D 贴纸合成提示词:完整拆解

2026年11月3日
Seedance 2.0 Ext 2D 贴纸合成提示词:完整拆解

一只手从地铁站长椅上的托特包里拎起一件素灰色防晒衣——这本身没什么稀奇。让这段 10 秒短片出彩的,是画面上方像贴纸一样贴着的扁平 2D 卡通太阳:开场时它弹跳着、热得发烫;当防晒衣的 UPF 面料被展示出来时,它惊慌失措;到最后一个节拍,它已经完全冷却成淡蓝色,闭着眼睛满足地抱着一块 2D 冰块,贴在防晒衣的帽兜旁。整个笑点建立在一套用于 Seedance 2.0 Ext 的双参考图提示词结构上,值得拆解,因为这套技巧几乎可以推广到任何「真实产品 + 卡通吉祥物反应」的广告。

完整提示词

这就是我们用来生成该短片的提示词,完整翻译如下(原始生成使用中文;以下内容未做任何简化或概括):

场景:真实生活、手持拍摄风格。在城市地铁站入口前,一只手把一件浅灰色 UPF
防晒衣举在放在长椅上的黑色托特包上方。自然日光,真实街头
氛围,实拍画面本身不做任何风格化处理。

合成一个 2D 扁平卡通太阳角色(角色设计见 @image1——
不要改变其比例、配色或线条
粗细)。该角色像贴纸一样贴在实拍画面上:
它必须始终保持完美的平面 2D,忽略周围真实世界的
光照和阴影,绝不能沾染实拍画面中的任何 3D 明暗、反射或
透视畸变。

@image1——仅锁定角色的产品设计(太阳图标的形状、
面部、颜色阶段、比例)。不要从该参考图中获取场景、背景、手或
防晒衣的细节。
@image2——仅锁定实拍场景以及防晒衣的
穿着/持握方式(手的位置、长椅、地铁入口、镜头构图)。不要
从该参考图中获取角色设计。

时间节点(4 个喜剧节拍,与画面中真实的手部动作同步):
1. 0-2s:太阳角色呈现明亮的黄橙色,带着
   夸张的「热」能量弹跳,位于折叠好的防晒衣上方。
2. 3-5s:手提起防晒衣展示面料;角色做出
   夸张的惊慌反应,冒出漫画式的汗滴,颜色转向
   橙红色。
3. 6-8s:手将防晒衣完全展开朝向镜头;角色
   明显冷却,颜色从红色褪为淡蓝色,动作放缓。
4. 8-10s:高潮/揭晓——角色此时已完全变成淡蓝色,抱着一块 2D 扁平
   冰块(冰块同样适用扁平贴纸规则),心满意足地
   依偎在防晒衣的帽兜旁,闭着眼睛,彻底清凉下来。

声音设计:角色第一次弹跳时配一声轻快的喜剧「boing」,
出汗节拍中配卡通式的嘶嘶/蒸汽声,最后一次冷却拥抱时配一声轻柔的
「啊」呼气加一声温和的铃声。全程保留真实世界的环境
地铁/街道声——不要把实拍音频静音。

避免:画面中任何位置都不得出现可读文字、价格标签、UI 元素、字幕、
说明文字或水印。@image1/@image2 中的中文或其他文字不得
渗入最终合成画面。任何时刻都不得给贴纸角色添加 3D 明暗或
重新打光。

为什么这样奏效

两张参考图,两个完全不同的职责。@image1 是太阳角色美术的干净多角度图——仅此而已。@image2 是真实场景的画面(或类似画面的参考图):手、防晒衣、长椅、地铁入口。这样拆分可以防止模型用场景光照「污染」卡通角色,或把场景物体拖进角色参考中。在 API 层面,这直接对应 Seedance 2.0 Ext 的 reference_image_urls 数组中的两个条目——提示词中的 @image1/@image2 占位符就是该数组中从 1 开始计数的位置(reference_image_urls[0]、reference_image_urls[1])。

贴纸规则就是整个笑点所在。要求模型让角色保持「完美的平面 2D」、绝不沾染真实世界明暗,正是这个段子成立的关键——角色看起来像是有人把贴纸贴到了实拍画面上,而不是插入场景的 CG 物体。去掉这个约束,角色就会开始沾染地铁入口的环境光和阴影,这个梗就不好笑了。

喜剧节奏绑定在画面中真实的物理动作上,而不是随意的时间戳:弹跳 → 展示面料 → 冷却 → 抱冰块。因为每个节拍都锚定在画面中手实际在做的事情上,卡通反应看起来就像是对产品的直接回应,而不是并行播放的装饰。

负面清单确实在起作用。「不得出现可读文字/价格/UI/字幕/水印」和「参考图中的文字不得渗入最终合成画面」这两条都必不可少,因为如此具体的参考图(影棚产品照、街头摄影)常常带有零散招牌、价格贴纸或包装文字,模型否则会乐于把它们合成进最终画面。

自己复现:/v1/tasks 调用

Seedance 2.0 Ext 的 schema 很严格(未知字段会被直接拒绝),所以以下是请求的确切要求——prompt、aspect_ratio 和 duration 为必填;resolution、reference_image_urls 和 generate_audio 为可选:

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0@ext",
    "input": {
      "prompt": "<the full prompt above>",
      "aspect_ratio": "9:16",
      "duration": 10,
      "resolution": "1080p",
      "reference_image_urls": [
        "https://your-cdn.example.com/sun-character-turnaround.jpg",
        "https://your-cdn.example.com/jacket-scene-reference.jpg"
      ],
      "generate_audio": true
    }
  }'

轮询返回的 taskId,直到其达到终态:

curl -s https://api.hiapi.ai/v1/tasks/{taskId} \
  -H "Authorization: Bearer $HIAPI_API_KEY"

reference_image_urls 最多支持 9 个条目——这段短片只需要 2 个。在 1080p 档位,Seedance 2.0 Ext 按每秒 $0.373 计费,所以像这样一段 10 秒短片总计 $3.73(当前费率始终见定价页面)。

常见问题

Seedance 2.0 的默认路由和 @ext 路由有什么区别? @ext 是同一模型上的独立路由(seedance-2.0@ext 对普通 seedance-2.0),有自己的 schema 和自己的定价档位。ext 路由才是接受 reference_image_urls 的那一个,也正是它让本提示词中的双参考技巧成为可能。完整的逐字段拆解见 Seedance 2.0 文档。

我必须正好提供两张参考图吗? 不必——该字段最多接受 9 张。这个提示词用两张正合适,因为恰好有两个需要独立锁定的东西(角色设计、场景/穿着风格)。如果你的吉祥物需要第三张参考图(比如特定的姿势表),加第三个条目,并在提示词中以 @image3 引用它。

为什么贴纸角色从来不会看起来被场景「打光」? 因为提示词明确禁止了这一点。没有这条指令,模型常常会试图「帮忙」,把角色融入场景光照,从而毁掉贴纸效果。要直接写明约束,而不是指望模型自行保持扁平风格。

我可以把它用在我已有的产品照片上吗? 可以——这正是拆分参考图的意义。用你的吉祥物/角色的干净照片或多角度图作为 @image1,用产品在自然场景中的真实照片或视频帧作为 @image2。模型会把前者合成到后者上。

generate_audio 会额外收费吗? 当前定价中没有单独列项——无论是否生成音频,上述每秒费率都已反映 1080p 档位。批量运行前请务必重新核对实时定价,因为档位确实会变化。


如果你想在自己的产品照上尝试这种合成风格,Seedance 2.0 Ext 模型页面有当前 schema 和定价,快速入门文档能让你在几分钟内从 API key 走到第一个任务。

立即开始构建持久 AI 产物

获取 API 密钥,通过一个基于任务(task)的 API 调用图像、视频和音频模型。

阅读 API 文档