MiniMax H3 提示词怎么写
模型页:MiniMax H3 API —— 价格、规格与在线体验
MiniMax H3 并不是直接读一段随手写的描述。在 MiniMax 自己的流程里,有一步叫 H3-Context-IR:先把你写的文字和参考图、参考视频、参考音频一起理解,改写成一份结构化描述,视频模型再照着它生成。MiniMax 说这一步「对最终质量至关重要」,并公开了这份结构,方便开发者自己照着写。
自己照着写,换来的是可控:什么时候切镜头、哪个角色说哪句台词、观众听到什么,都由你定,而不是交给自动改写去猜。一句话的普通描述照样能出片;当时间点、台词和声音必须准确落位时,这份结构才真正起作用。
下面的规则都来自 MiniMax 在 GitHub 仓库 MiniMax-AI/MiniMax-H3 里公开的 H3 提示词写作指南;示例提示词是我们按这套结构自己写的。
H3 提示词的三个字段
纯文字生成的 H3 提示词只有三个字段,顺序固定。画面里看得见、听得见的东西都写进第一个;后两个只管声音。
| 字段 | 写什么 | 要点 |
|---|---|---|
| integrated_multimodal_description | 时间线:风格和构图、人物、动作、镜头运动、切镜、说话人和台词、跟动作同步的声音 | 以 [Shot 1] 开头,先写整体风格,如 Live-action, cinematic |
| overall_soundscape | 整条片子的环境音、动作声、呼吸笑声这类非语言人声 | 1–4 句写成一段;台词不要在这里重复 |
| non_diegetic_music | 只有观众听得到的背景音乐 | 1–3 句写乐器、速度和强弱变化;没有就写 N/A |
镜头、切镜时间和运镜
镜头按顺序编号。第一个镜头不写时间;之后每个镜头开头写切镜时间(分:秒),时间严格递增、不能超出片长:「[Shot 2] At 00:05.000, the camera cuts to …」。切镜要带来新东西,新主体、新地点、新视角或新时刻;只是想推近一点、换个小角度,就用运镜,不要切。
运镜最多写三件事:怎么动、动多大、动多快,而且要写成镜头里的一句完整英文,不要在句末堆标签:「The camera pushes in with small amplitude at slow speed toward the letter in her hands.」想要中等幅度、正常速度时,幅度和速度可以省略不写。
| 英文写法 | 镜头实际怎么动 |
|---|---|
| Push In / Pull Out | 机位往前推、往后拉 |
| Zoom In / Zoom Out | 机位不动,只改焦距 |
| Pan Left / Right、Tilt Up / Down | 原地左右摇、上下摇 |
| Truck Left / Right、Pedestal Up / Down | 整机横移、整机升降 |
| Arc Shot、Tracking Shot | 绕着主体转、跟着运动的主体走 |
| Static Shot、POV | 固定机位、主观视角 |
| Shake Slightly / Strongly、Roll Clockwise / Counterclockwise | 轻微或强烈晃动、绕镜头轴旋转 |
| with small / large amplitude、at slow / fast speed | 幅度小或大、速度慢或快 |
台词、旁白和画面里的字
每个开口说话或唱歌的角色都给一个固定编号 (S1)、(S2),跨镜头保持不变;不出声的角色不编号。说话人的特征(年龄、嗓音、语气)写在台词标记外面,标记 <d> 里只放语言和原话:The baker with a raspy voice (S1) says: <d>[English] First batch of the morning.</d>。方括号里写台词的语言,MiniMax 官方示例用的是 [English];台词一律保留原文,不要翻译。
旁白要用固定说法「says in an off-screen voiceover」,并在台词后面紧跟一句画面中这个角色的嘴唇保持闭合。画面里要出现的招牌、标签、字幕、霓虹字,原文放进英文双引号里:A neon sign reading "营业中" glows above the door.
完整示例:8 秒、两个镜头、一句台词
下面是一条按官方结构写的纯文字提示词:深夜拉面店的厨师、一个慢推镜头、一句中文台词、第 5 秒切镜,墙上还有一张手写告示。调用时把 duration 设成 8,切镜时间才落在片长之内。
integrated_multimodal_description: [Shot 1] Live-action, cinematic, a medium shot frames a narrow late-night ramen bar where a cook in his fifties wipes the wooden counter as steam rises from the pots behind him. The camera pushes in with small amplitude at slow speed as the cook, a man with a low, gravelly voice (S1), looks up toward the door and says: <d>[Chinese] 最后一碗,给你留着呢。</d> [Shot 2] At 00:05.000, the camera cuts to a close-up of a bowl of ramen set down on the counter, chopsticks resting across the rim, with a handwritten sign reading "营业到两点" on the wall behind it. overall_soundscape: Broth bubbles in the pots under a low kitchen hum. The ceramic bowl clinks against the wood, and rain patters faintly outside the door. non_diegetic_music: N/A
实际请求里,三个字段之间各空一行,见下方调用示例。
同时传图片、视频或音频时怎么写
H3 有五种输入模式,提示词的第一行随模式变化。给首帧时,开头是一句固定的话,把 Picture 1 钉在第 0.00 秒,然后从这张图往后写接下来发生什么。给首尾帧时,写的是两帧之间的过渡路径,通常用一个镜头。给参考素材(人物、产品、要模仿的运镜、音色)时,官方指南把每份素材标成 <Subject N>、<Picture N>、<Video N> 或 <Audio N>,同一个标签在整条提示词里意思不变,并写清楚每份参考在时间线的哪个点出现。
在 apimodels.app 上,每种模式对应不同的模型名和字段。数组里的素材按你传入的顺序交给模型,提示词里就按这个顺序指代。
| 你手上有什么 | 官方模式 | 用哪个模型名、传哪些字段 |
|---|---|---|
| 只有文字 | T2VA | minimax-h3、minimax-h3-lite、minimax-h3-max-turbo、minimax-h3-rh-enhanced 都可以 |
| 一张首帧 | I2VA | minimax-h3-max-turbo 或 minimax-h3-rh-enhanced,传 first_frame_url |
| 首帧和尾帧 | FL2VA | minimax-h3-max-turbo、minimax-h3-rh-enhanced 或 minimax-h3-lite,传 first_frame_url + last_frame_url |
| 参考图、参考视频或参考音频 | Ref2VA | minimax-h3:images(最多 9 张)、video_list(最多 3 段)、audio_list(最多 3 段);minimax-h3-rh-enhanced:reference_image_urls(最多 9 张)、reference_video_urls(最多 3 段);minimax-h3-lite:images + audio_list |
最容易把 H3 片子写坏的几个错误
写剧情梗概,不写镜头。「孤独的厨师重新找到希望」没有给模型任何可拍的东西;要写镜头里看得见、听得见的内容,一个镜头一个镜头地写。
切镜时间超出片长。6 秒的视频写了 00:09.000 切镜,或者切镜时间前后颠倒。先定 duration(minimax-h3 是 5 到 15 整秒),再把切镜时间放进去。
声音放错字段。台词属于时间线,不要写进 overall_soundscape;房间里收音机放的歌是场景的一部分,只有角色听不到的配乐才放进 non_diegetic_music。
把台词翻译了。台词是中文就在 <d> 里保留中文;其余部分用英文写。
参考标签前后不一致。<Subject 1> 一开始指第一张图里的女人,整条提示词里就一直是她。
什么时候不必这么写
只是试试想法时,一句自然语言就够了;minimax-h3-max-turbo 还可以把 prompt_expansion_mode 设成 quality,让它替你把短提示词扩写开。想直接拿现成的,先去 MiniMax H3 提示词库挑一条,再改动作、运镜和台词。
调用示例
cURL
# 8 seconds, 768p, text only. In JSON the blank line between fields is \n\n.
curl -X POST https://api.apimodels.app/v1/video/generations \
-H "Authorization: Bearer $APIMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-h3",
"duration": 8,
"resolution": "768p",
"ratio": "16:9",
"prompt": "integrated_multimodal_description: [Shot 1] Live-action, cinematic, a medium shot frames a narrow late-night ramen bar where a cook in his fifties wipes the wooden counter as steam rises from the pots behind him. The camera pushes in with small amplitude at slow speed as the cook, a man with a low, gravelly voice (S1), looks up toward the door and says: <d>[Chinese] 最后一碗,给你留着呢。</d> [Shot 2] At 00:05.000, the camera cuts to a close-up of a bowl of ramen set down on the counter, chopsticks resting across the rim, with a handwritten sign reading \"营业到两点\" on the wall behind it.\n\noverall_soundscape: Broth bubbles in the pots under a low kitchen hum. The ceramic bowl clinks against the wood, and rain patters faintly outside the door.\n\nnon_diegetic_music: N/A"
}'
# → { "code": 200, "data": { "taskId": "...", "state": "pending" } }; poll GET /v1/video/generations?task_id=...Python
import os, requests
prompt = """integrated_multimodal_description: [Shot 1] Live-action, cinematic, a medium shot frames a narrow late-night ramen bar where a cook in his fifties wipes the wooden counter as steam rises from the pots behind him. The camera pushes in with small amplitude at slow speed as the cook, a man with a low, gravelly voice (S1), looks up toward the door and says: <d>[Chinese] 最后一碗,给你留着呢。</d> [Shot 2] At 00:05.000, the camera cuts to a close-up of a bowl of ramen set down on the counter, chopsticks resting across the rim, with a handwritten sign reading "营业到两点" on the wall behind it.
overall_soundscape: Broth bubbles in the pots under a low kitchen hum. The ceramic bowl clinks against the wood, and rain patters faintly outside the door.
non_diegetic_music: N/A"""
r = requests.post(
"https://api.apimodels.app/v1/video/generations",
headers={"Authorization": f"Bearer {os.environ['APIMODELS_API_KEY']}"},
json={"model": "minimax-h3", "duration": 8, "resolution": "768p", "ratio": "16:9", "prompt": prompt},
)
print(r.json()) # then poll GET /v1/video/generations?task_id=...常见问题
MiniMax H3 提示词要用英文写吗?
MiniMax 官方指南里,结构化提示词用英文写,但台词、歌词和画面里出现的文字保留原文。所以中文台词在 <d> 里照写中文,中文招牌在双引号里照写中文。
H3 怎么控制第几秒切镜头?
从第二个镜头开始,在开头写切镜时间,例如「[Shot 2] At 00:05.000, the camera cuts to …」。第一个镜头不写时间,切镜时间要递增,而且都要落在你请求的 duration 之内。
怎么让 H3 里的角色说指定的台词?
给角色一个说话人编号,<d> 里只放语言标签和原话:The woman (S1) says: <d>[English] I get off at the next station.</d>。嗓音和语气写在标记外面,同一个角色在每个镜头里都用同一个编号。
在 apimodels.app 上调用必须写成这种结构吗?
不必须。普通描述在每个 H3 模型名上都能用,这套结构是在需要精确控制时间点、台词和声音时用的。想让短提示词被自动扩写,可以用 minimax-h3-max-turbo 的 prompt_expansion_mode。
MiniMax 官方的 H3 提示词指南在哪?
在 GitHub 仓库 MiniMax-AI/MiniMax-H3 的 h3-prompt-writing 技能里,有两份:一份讲文字和关键帧模式,一份讲全参考模式。本页把两份的要点整理出来,并对应到 apimodels.app 上的模型名和字段。
