在 AI 影视创作领域,提示词(Prompt)早已不再是简单的“一段话”,而是演变成了精密的“指令工程”。开源项目 moyin-creator 作为一款生产级的 AI 影视工具,其核心竞争力之一便是其自动化提示词编译器

本文将深入 src/packages/ai-core 目录,通过源码解读,揭秘其如何将复杂的“动作、镜头、唇形”三层逻辑融合为一套高度可执行的 AI 指令流。


一、 为什么需要“三层融合”?

在传统的视频生成(如 SVD, Kling 或 Luma)中,用户往往难以平衡角色一致性、动作流畅度与镜头美感。魔音漫创通过逻辑解耦,将视频提示词拆解为三个独立的维度:

  1. 动作层(Action Layer):描述角色的身体语言、表情变化及交互逻辑。

  2. 镜头层(Camera/Shot Layer):定义摄影机位(全景、特写)、运镜轨迹(推拉摇移)及光影构图。

  3. 唇形层(Lip Sync Layer):针对对白视频,将音频节奏与嘴部运动参数注入提示词。

这种分层设计的优势在于:可预测性。源码通过一套编译逻辑,确保这三层信息在发送给大模型(如 Seedance 2.0)之前,能够实现无缝的“语义重组”。


二、 源码核心路径:ai-core 编译引擎

在魔音漫创的架构设计中,所有的提示词处理逻辑都封装在 packages/ai-core 中。该模块不直接与 UI 耦合,而是通过 Zustand 状态库监听不同面板(脚本面板、角色面板、导演面板)的数据变化。

1. 动作层:基于“角色圣经”的身份锚点

源码中的 Character Bible(角色圣经)模块是动作层的基础。在编译时,编译器会通过正则表达式或特定的 @Reference 语法,自动收集当前分镜对应的角色描述。

// 伪代码示例:提取角色锚点
const compileAction = (roleId, baseAction) => {
  const roleAchor = roleStore.getAnchor(roleId); // 获取6层身份锚点信息
  return `${roleAchor}, ${baseAction}`;
};

2. 镜头层:导演意图的参数化

镜头语言(Camera Language)在源码中被处理为一组预设的 Token 库。当用户在“导演面板”选择“中景 + 环绕运镜”时,编译器会自动从 config/camera_presets.json 中调用专业的摄影术语,并计算权重。

3. 唇形层:多模态引用的注入

这是魔音漫创最硬核的部分。在支持 Seedance 2.0 的逻辑中,唇形不仅仅是描述,还涉及到多模态资产的引用(如 @Audio)。

源码通过 MultimodalScanner 扫描脚本中的对白,自动计算音频时长与视频帧率的对齐关系,并生成类似 (lip-sync:1.2, mouth_movement:high) 的编译指令。


三、 核心逻辑:PromptCompiler 的编译流程

魔音漫创的提示词编译逻辑遵循以下四个步骤:

第一步:语境解析(Context Parsing)

系统首先解析剧本中的“场景描述(Scene)”和“分镜对白(Shot Dialogue)”,识别出谁在说话、环境是什么、情绪基调如何。

第二步:三层模板融合(Template Fusion)

编译器使用动态模板引擎,将三层数据填入预定义的结构中。在 ai-core/compiler.ts 中,逻辑如下:

const finalPrompt = template
    .replace('{{ACTION}}', actionPrompt)
    .replace('{{CAMERA}}', cameraPrompt)
    .replace('{{DIALOGUE}}', lipSyncPrompt);

第三步:约束校验(Constraint Check)

针对 Seedance 2.0 等模型,源码内置了严格的约束校验逻辑:

  • 字数限制:提示词需控制在 5000 字符以内。

  • 资产引用限制:单次生成支持 ≤9 张参考图、≤3 段视频、≤3 段音频。

  • 非法词过滤:内置过滤引擎,防止敏感词导致 API 调用失败。

第四步:多模态资产网格化(N×N Strategy)

为了提高模型对角色一致性的认知,编译器会将角色参考图、首帧图等资产自动进行 N×N 的网格拼接处理,并在提示词中指引模型如何读取特定的网格坐标。


四、 实战案例:编译前后对比

  • 输入(用户自然语言)

    角色“小明”很生气地推开了门,镜头慢慢拉近到他的脸上,他说:“快走!”

  • 编译后(魔音漫创三层融合指令)

    [Action] Young man, short black hair, wearing a white shirt (Role: XiaoMing), angry expression, pushing the door forcefully.

    [Camera] Medium shot to extreme close-up, slow zoom-in, dynamic motion blur, high angle.

    [LipSync] @Audio_001.mp3, intense mouth movement, jaw tension, sync level: 0.95.

    [Context] Cinematic lighting, dramatic atmosphere, 8k resolution.


五、 总结与展望

moyin-creator 的源码展示了一个成熟的 AI 影视工具该如何处理人类意图与机器逻辑之间的鸿沟。通过自动三层融合逻辑,它将导演、演员、摄影师的工作在代码层面进行了高度集成。

对于开发者来说,这种解耦后的“编译器思想”非常值得借鉴:不要试图写一个万能的 Prompt,而要写一个能够根据不同维度参数自动生成 Prompt 的引擎

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐