prompt-templates.md 10 KB

提示词模板库

fmode-mv 各步骤实际使用的提示词模板,以及手工调优时可参考的写法。 代码侧的构建器在 lib/prompts.mjs;本文件是给人读、给人改的版本。


一、作曲填词

系统提示词(节选,见 scripts/lyrics.mjs)

你是资深华语流行音乐制作人兼作词人,为 AI 音乐生成模型(Suno 类)撰写可直接投喂的素材。
硬性要求:
1. 歌词必须自带结构标记,每段用方括号起头:[Intro] [Verse 1] [Pre-Chorus] [Chorus] [Bridge] [Outro]。
2. Chorus 要朗朗上口、有记忆点,副歌句尾押韵。
3. 只输出 JSON,不要任何解释文字、不要 markdown 代码围栏。
4. stylePrompt 用英文逗号短语描述曲风/编曲/情绪,供音乐模型直接使用。
5. 歌词内容必须为原创,不得抄袭任何已有歌曲的句子。

为什么强制原创:AI 音乐模型会因为训练数据里高度雷同的句子而"撞词", 一旦与已有歌曲雷同,商业发布有版权风险。这一条不能去掉。

用户提示词骨架

【主题】<用户输入>
【指定曲风】<genre>
【情绪基调】<mood>
【补充要求】<style>

要求:
- 歌词长度适合 2.5~3.5 分钟,段落完整(主歌2段、副歌2-3次、可含桥段)
- 副歌必须有记忆点,句尾尽量押韵
- 给出英文 stylePrompt(含曲风、乐器、速度、人声类型、混音质感)

stylePrompt 写法参考

维度 可用词
曲风 city pop / mandarin indie rock / chinese folk / synthwave / lo-fi hiphop
速度 92 bpm / mid-tempo / slow ballad 68 bpm
乐器 warm analog synth pads / electric piano / acoustic guitar arpeggio / guqin and strings
人声 female vocal, breathy intimate delivery / male vocal, raspy and warm / instrumental
混音 lush reverb / tape saturation / punchy modern mix / subtle vinyl noise

示例(实测产出的好例子):

city pop, 92 bpm, warm analog synth pads, electric piano chords, soft muted brass accents,
clean funky guitar, mellow round bass groove, laid-back brushed drums, female vocal,
breathy intimate delivery, lush reverb, tape saturation, subtle vinyl noise,
night city ambience, nostalgic yet comforting, melancholic but warm

二、分镜(产线 A)

用户提示词的关键约束

【镜头数量】N 个(必须控制在 N±2 个,这是硬性约束)
【单镜时长】每镜 6 秒左右,必须在 4~8 秒之间。
  注意:AI 图生视频单段现实上限约 8 秒,不要生成 20 秒、30 秒的镜头。

为什么要写死:实测中模型会按「歌长 180 秒 ÷ 想法数」自由发挥, 给出 30 个 36 秒的镜头 —— 这在图生视频里物理上不可生成。 约束写在提示词里 + normalizeStoryboard 二次夹取,双保险。

imagePrompt 的黄金结构

[主体] + [动作/状态] + [环境] + [光线] + [镜头语言(焦段/景别/角度)] + [风格] + [画质词]

含人物时:必须把 appearanceAnchor 的英文版原样复述在主体位置。

实例(本仓实测产出):

A 27-year-old East Asian man with slightly tousled medium-length black hair falling over his forehead,
thin silver-rimmed glasses, an unbuttoned charcoal-grey wool suit jacket over a wrinkled light-blue
dress shirt with a loosened dark navy tie, black slacks and scuffed leather shoes, a beige canvas tote
bag on his shoulder; quiet, gentle, worn-out but warm presence, calm cinematic stillness, face softly
lit by practical light
— sitting alone in an almost empty late-night subway carriage, temple resting against the cold window
glass, city lights streaking across his face in long horizontal smears, tie loosened, singing softly
— close-up to medium close-up, 85mm anamorphic lens, side profile, slightly low angle
— cyan interior carriage light against warm orange light streaks outside the glass, bokeh of empty seats
— City pop neo-noir realism, sodium orange and cyan teal palette, 35mm film grain, photoreal, 4K

注意分号分段:主体; 气质; 动作环境; 镜头语言; 光线氛围; 风格画质 —— 这个写法比逗号长串更稳定,模型不会把「气质」误读成「动作」。

videoPrompt 的写法

只写「怎么动」,不写「画的是什么」(内容来自关键帧):

Slow orbit around his head resting against the carriage window, city light streaks sliding across
his face, then a slight push-in as he turns his eyes to camera; barely-there handheld,
lips in sync at 92 BPM, complete within 6 seconds

常用运镜词:slow push-in / pull back / pan left / orbit / handheld drift / crane up / rack focus / dolly zoom。

必须写时长(complete within 6 seconds)——否则模型会设计出 6 秒内做不完的动作。


三、人物一致性(最容易翻车的地方)

原则

锚点不是「参考」,是「每镜头复述」。

appearanceAnchor 会被 buildKeyframePrompt() 拼进每个含人物镜头的 prompt。 不要指望模型「记得上一张图长什么样」——文生图是无状态的。

锚点该写什么

必写 作用
性别 + 大致年龄 最基础的身份
发型(长度/颜色/形态) 识别度最高的特征
服装(颜色 + 材质 + 款式,含配饰) 跨镜头的视觉锚
气质/神态 决定表演基调
(可选)标志性道具 如「米色帆布托特包」,强化连续性

好 / 坏对比例子

✅ 好(具体、可视觉化、无歧义):

A 27-year-old East Asian man with slightly tousled medium-length black hair falling over his forehead,
thin silver-rimmed glasses, an unbuttoned charcoal-grey wool suit jacket over a wrinkled light-blue
dress shirt with a loosened dark navy tie, black slacks and scuffed leather shoes, a beige canvas tote
bag on his shoulder; quiet, gentle, worn-out but warm presence

❌ 坏(抽象、模型每次理解都不同):

一个疲惫的都市男性    ← 没有发型/服装/年龄,每张图都会换人

强化一致性的三个技巧

  1. 固定镜头语言:锚点里带上 medium shot, eye level, 景别固定后模型更难"重新想象"这个人。
  2. 参考图(image-to-image):generateImage 支持 refImage 参数, 传第一张已确认的人物图,能显著提升一致性(需通道支持)。
  3. 风格词锁死:styleKeywords 里写死色调与质感 (sodium orange and cyan teal palette, 35mm film grain), 风格稳定会连带人物观感稳定。

四、空镜 / B-roll

原则

  • 不要人物,或人物仅为远景剪影/背影(seen from behind as a small distant figure)。
  • 主体明确:一个镜头一个视觉焦点,别堆三四个元素。
  • 强调"静物叙事":用细节物件代替人,情绪反而更强。

实例(本仓实测产出)

Extremely quiet 1AM subway platform still life, a lone glowing vending machine casting cold cyan light
on empty tiled floor, an abandoned folded newspaper lying on a vacant metal bench seat,
close-up of smudged fingerprints and dried sweat on a brushed stainless-steel handrail,
a fluorescent ceiling tube flickering once, distant dark tunnel mouth
— macro and detail shots, 85mm macro lens and 35mm wide, low eye-level angle
— high contrast cold cyan practical light with one warm sodium spill
— City pop neo-noir realism, 35mm film grain, photoreal, 4K

"still life"(静物)这个词很有用:它会让模型聚焦在物件与光影上, 而不是自作主张往画面里塞人。

无人物时的负面约束

在意画面干净就加上:

no people, no text, no signage, no watermark

实测:不写 no text 时,模型会往招牌/海报上写满乱码文字。 城市夜景类镜头尤其明显。


五、口播稿(产线 B)

结构模板

[0-3s]   钩子:提问 / 反常识 / 利益点
[3-15s]  问题:为什么这事值得听
[15-70s] 正文:2~4 个要点,每个要点配一个小结句
[70-85s] 落地:给具体建议(不要空泛)
[85-90s] CTA:一句行动号召

关键约束

【目标时长】约 90 秒(约 324 字,中文口播语速约 3.6 字/秒)

3.6 字/秒 是实测的中文 TTS 舒适语速(edge-tts 默认语速下)。 按这个估算:60s≈216字、90s≈324字、180s≈648字。

TTS 友好写法

写法 原因
短句为主(≤ 20 字) 长句 TTS 会断气、换气点奇怪
数字用中文读法 「30%」→「百分之三十」;「API」→「接口」
少用括号、引号、破折号 TTS 会念出来或停顿异常
避免中英混排 英文词读音不可控
段落之间留自然停顿 分镜按段落切画面更自然

六、通用画质词

直接追加到任何 imagePrompt 末尾:

cinematic still frame, high detail, film grain, color graded, 4k

按用途追加:

场景 追加词
电影感 cinematic, anamorphic lens flare, shallow depth of field
纪录片感 documentary photography, natural light, candid
概念图/图表 clean minimal infographic style, flat design, no text, white background
特写 macro shot, extreme detail, soft bokeh
竖屏短视频 (用 --aspect 9:16,并在 prompt 加 vertical composition, subject centered)

七、调优工作流

  1. 先 --dry-run:fmode-mv keyframe --from work/storyboard.json --dry-run 看技能准备发出去的完整 prompt。
  2. 改一处,比一次:手工编辑 work/storyboard.json 里某一镜的 imagePrompt, 然后 fmode-mv keyframe --from work/storyboard.json --shot N 单独重生成。
  3. 有效再推广:确认这镜的写法好,再把它固化进 styleKeywords 或锚点, 重跑全部分镜与关键帧。
  4. 别忘记录:work/frames/keyframes.json 存了每张图用的完整 prompt, 好的写法从那里捞回来复用。