XXT基于 MiniMax H3

MiniMax H3 两人对话:说错人、对错口型、自动出字幕怎么办

把每个说话的人建成角色、各配一个声音,再用 --line "名字:动作=台词" 按说话顺序一句一句写清楚谁说哪句,模型就知道该谁张嘴。镜头对着正在说话的人;场景写全(景别、陈设、光线、站位、衣服),最后一句台词后面再加一个不说话的收尾动作,台词就不容易被烧成字幕。写「no subtitles」没用。

为什么会说错人

MiniMax H3 是画面和声音一起生成的。画面里有两张脸、台词又没说是谁的,模型只能猜该哪张嘴动,猜错的次数多到足以毁掉一场戏:听的人在对口型、两个人同时张嘴,或者这句话用了另一个人的声音。海螺 App 里,以及大多数能出对白的 AI 视频模型,都有这个问题。

大部分情况三件事就能解决:每个说话的人有自己的长相和声音;明确告诉模型谁说哪句;构图让说话的人一看就是该说话的那个。

第一步:每个说话的人建成带声音的角色

角色里存着几张脸部照片和一个声音。每个说话的人都要有声音;没有声音的角色可以出镜,但不能说话。两个人的声音在年龄、音色、语速里至少两项不同,画面再含糊,观众也听得出是谁在说。

h3 character create --name 小美 \
  --photo front=mia_front.jpg --photo three_quarter_left=mia_left.jpg \
  --description "二十八九岁的女生,黑色齐肩发" \
  --voice-description "二十八岁左右的女声,音色温暖、略带气声,音调中等偏低,语速中等,语气轻松"
h3 character create --name 老王 \
  --photo front=wang_front.jpg --photo side=wang_side.jpg \
  --description "四十多岁的男人,灰色短发,留着胡子" \
  --voice-description "四十多岁的男声,低沉、略带沙哑,语速偏慢,语气温和"

开拍前先听一遍声音(h3 character voice 小美 给出试听链接)。照片和声音的更多讲究见人物一致性。

第二步:一句台词对一个人,按顺序写

每句台词用一个 --line,按说话顺序写:--line "名字=台词",或者 --line "名字:动作=台词" 顺便写说这句时在做什么。这是最管用的一招:平台会把每句台词绑到这个角色的脸和声音上。

h3 submit --mode ref2v --aspect 16:9 --seconds 8 \
  --character 小美 --character 老王 \
  --prompt "A medium shot frames a small kitchen at night, warm light from a pendant lamp over a wooden table. 老王, in a dark blue sweater, stands at the stove stirring a pot; 小美, in a grey hoodie, sits at the table with a laptop. The camera holds a static shot." \
  --line "小美:从电脑前抬起头=饭好了没?" \
  --line "老王:从灶台边转过身笑了笑=再等五分钟。" \
  --wait --out ./out
  • 一镜最多 3 个人说话、最多 10 句台词。
  • 动作不写主语:写「从灶台边转过身笑了笑」,不写「他转过身」。
  • 每句台词用句号、问号这类收尾的标点结尾,否则说完了嘴还容易接着嘟囔。
  • 台词也可以直接写在描述里,用引号括起来、前面写上说话人的名字,平台会拆出来。自己用 --line 拆更准。

第三步:镜头对着正在说话的人

  • 构图对准说话的人。 说话的人朝镜头、听的人侧身或背对,几乎不会错;两张正脸并排是最难的情况。
  • 台词绑动作,不绑时间点。「小美抬起头问……」比「第 3 秒小美说……」好用。
  • 给听的人一个不出声的动作:听着、点头、搅锅。台词以外别写 talk、chat、argue 这类说话的词,否则会冒出多余的人声。
  • 重要的对手戏分镜拍:一句台词拍一条,每条对准说这句的人,最后拼起来。电影里的对话本来就是这么剪的,模型也不用猜了。拼接见长视频。只有一句台词的一条也偶尔会自己切到听的人,每条都要看。
  • 留意模型自己切的近景。 我们实测下来,台词落到错的人身上,多数不是嘴对调了,而是模型自己切到一个没在说话的人的近景(有时直接把这个角色的参考照片整张贴进来),下一句台词就配在这张脸上。两个人站着的静止双人镜头很少这样;三个人围一张桌子,一半以上的版本出现过。
  • 三个人同框,给每个人写上站位。 每个角色都加 --position(比如 --position 小美=左边的年轻女人),提示词里就会按站位介绍每个人、每句用站位点名说话的人、按先后排好,并让说完的人闭嘴、其他人闭嘴听。我们的三人饭桌测试里,同样的种子,写了站位 40 句台词有 36 句对上嘴,不写是 32 句。网页上在选角色处每个人下面的「站在哪」里写。详见角色库说明(英文)第 6 节。

台词为什么会变成字幕,怎么避免

模型有时会把台词当成字幕烧进画面。我们实测过两人对话:场景只写一两句,台词常常变成字幕;场景写全、最后一句台词后加一个收尾动作,就没再出现。

  • 场景写全:景别和机位、地点和陈设、光线、每个人站在哪、穿什么、开口前在做什么。
  • 最后一句台词之后,加一个不说话的收尾动作,比如 小美合上电脑站了起来。
  • 带台词的自由镜头(ref2v),平台会自动把太短的场景补全、加上收尾动作,但补的不一定是你想要的;自己写全最稳。
  • 别写「no subtitles」「不要字幕」。MiniMax H3 没有负面提示词,写出来反而容易招来。
  • 还是出字幕,就换一个 --seed 重新提交,或者剪辑时裁掉、遮掉。

台词长度要配得上时长

台词比时长长,嘴就会赶、字就会糊。中文每秒不超过约 7 个字;英文的话,8 秒一镜每人一短句就够了。对话长,就分到几个镜头里,别都塞进一条。

从自己的首帧开始拍对话

已经有一张两个人的图,就用首帧生视频,选上两个角色,--line 照样写。场景由首帧定,平台不会补全,动作和运镜要自己写。

h3 submit --mode i2v --first-frame kitchen.png --aspect 16:9 --seconds 8 \
  --character 小美=front,three_quarter_left --character 老王=front,side \
  --prompt "小美 sits at the kitchen table with her laptop while 老王 stands at the stove. The camera pushes in with small amplitude at slow speed toward 小美. After the last line, 老王 turns back to the stove and keeps stirring." \
  --line "小美:从电脑前抬起头=饭好了没?" \
  --line "老王:回头看了一眼=再等五分钟。" \
  --wait --out ./out

想完全控制谁在什么时候说哪句(包括画外音),可以加 --raw 自己写完整的 MiniMax H3 提示词,格式见提示词说明。

对症改法

症状改法
听的人在对口型用 --line 写明说话人;构图让说话的人朝镜头、听的人侧身
台词响着,镜头却切到了没说话的人出两版(--segments 2)挑;三个人给每人写上站位(--position);再不行换种子
两个人同时张嘴一句一个 --line,按顺序;给听的人一个不出声的动作
声音串到另一个人身上确认每个说话的人都是带声音的角色,而且两人的年龄、音色、语速有差别
台词变成字幕场景写全,最后一句后加收尾动作;还不行换种子
嘴赶不上、字糊台词改短,或者把时长加长
多出人声、嘟囔台词以外不写说话的词;每句台词以句号结尾

要花多少

角色、声音、台词都不另外收费;试音免费,每天 20 次。视频按秒计:夜里(新加坡时间 22:00–10:00)每秒 ¥0.06,白天每秒 ¥0.09。重要的对话镜头出两版(--segments 2,积分两倍),挑张嘴的人对的那版。

成片、歌曲和上传的素材在任务结束后保存 8 小时,之后自动删除,请及时下载。

常见问题

AI 视频里为什么张嘴的是不该说话的人?

模型是画面和声音一起出的,每句台词配哪张嘴得靠猜。告诉它就行:每个说话的人建成带声音的角色,每句台词写明说话人,构图让说话的人一看就是该说话的那个。

MiniMax H3 一个镜头里能有几个人说话?

在 XXT 上一镜最多 3 个人说话、10 句台词。两个人最稳;对话长就分到几个镜头里。

怎么让 AI 视频的对话不自动出字幕?

场景写全,最后一句台词后加一个不说话的收尾动作。写「no subtitles」没用。还是出字幕就换个种子。

两个角色能说不同的语言吗?

能。每句台词原文照放、不翻译,按写的文字标上语言:中文、日文、韩文或英文。建角色时用 --language 设好这个角色说哪种语言。

相关教程