Skip to content

路易吉 AI 短剧制作过程,及关于 AI 编剧工作流的初步思考

约 3514 字大约 12 分钟

编剧路易吉AI编剧AI写作

2025-02-22

为了测试大模型的编剧能力,我用Deepseek写了个短片路易吉版《十二怒汉》,在这里分享一下制作过程、思路,以及对AI编剧工作流的初步思考,欢迎探讨

结论

  • 这个小项目验证了我在《AI编剧史》中提出的一些预测,有兴趣的可以参考这篇逐字稿
  • 好消息:现在的大模型已经完全达到生产需求,可显著提升编剧的工作效率,且成本极低
  • 坏消息(其实还是好消息):到目前为止,要用 AI 编剧,还是得是会编剧的人才行。烂片写手用了 AI 还是烂片。
  • 通用大模型的训练数据污染严重,并不是这种专项工作的最佳选择,专用模型会更好
  • 从成片来看,台词质量是可以的,但 AI 对结构缺乏良好的理解。这还只是个短片,指望现阶段的 AI 自动生成有良好结构的长篇作品,可能性约等于零
  • 纯AI生成恐怕达不到“降本增效”的目的(除非做烂片流水线)—— 为了让这段4分钟的台词达到勉强堪用的程度,我花了超过一周时间。这说明 ——
  • 以人类为主导AI接入本地工作流担任助手,仍然是最优解,效率应该会比纯AI生成高很多(我将另找时间验证)
  • 全民创造力的时代已经来临

制作经过

看到这个开放式结局,你就应该知道,所有台词完全是由AI生成的 —— 如果是我写,结局肯定是无罪释放。

不过这一过程并没有看起来那么简单 —— 断断续续花了一周多的时间生成了38句台词,最后一晚熬了整夜,到早上七点半才完成终稿,很多人纯手写大概会更快……所以码字记录一下过程。

这个项目旨在验证AI的创作能力。

所以,在本次实验中,我给自己的限制是:不可以直接修改 AI 生成的内容,但可以诱导它提供选项,也可以通过提问暗示不合理的部分。

作为对比,我也用GPT做了类似操作,两边是独立的,互不影响。

最小干预

第一部由人工智能编写的电影剧本(《Sunspring》,2016)的生成几乎没有人为干预。所以,一开始我也采取同样的策略,跟 DeepSeek 说的第一句话只有三个字:

写剧本

它给出了一段剧本,两个年轻人在咖啡馆里对话,小李焦虑于裁员,小张鼓励他创业。

在现在的经济局势下,小张的台词有种违和感,但比起《Sunspring》肯定是通顺多了(不过,一年前试过用 GravityWrite 生成短剧本,效果要更好些)。

我的思路是:

  1. 先观察 AI 在零提示的情况下能写出什么。
  2. 根据反馈逐步增加提示,看干预到什么程度,剧本才能达到可用。

选中深度思考,再次输入:写剧本

这次,它写了一段女主角收拾旧物,意外发现已故父亲曾经出轨的剧情,对话非常狗血……

B站视频 —— 触发烂梗开关

我换了个角度,说我想让你写个剧本出来,你认为最好的工作方式是?

它给出一个不明觉厉的流程:

  1. 核心定位会议
  2. 角色基因工程
  3. 冲突沙盘推演
  4. 台词压力测试
  5. 视觉锚点植入
  6. 互动共创模式

我想起一些喜欢挂行业黑话、其实根本不知道自己在干什么的人。

我告诉它,这个剧本要做成视频发在B站。

这个关键词触发了某种奇怪的开关,它开始狂输出各种 B 站烂梗,有一多半的梗连我这个 B 站老用户都没听说过。

作为 UP 主,本来看 B 站评论就有些信息过载,它的回复让我血压飙升,我反复调整互动方式,结果始终如此。最后我意识到,它对 B 站用户有强烈的刻板印象。

我怀疑“B站”这个词是某种中心节点,会激发一连串的烂梗联想,且无法通过对话纠正,最后只好放弃B站这个关键词从头开始。

顺便说一下,很多人喜欢让 DS 模仿贴吧老哥或 B 站评论区的风格喷人,以为这能证明大模型的语言能力。但我看了只觉得烦,这些融合了互联网烂梗的喷子言论有效信息非常稀薄。这种语言风格之所以风靡,本身就是随着互联网的发展,人类语言在压缩中变得越来越模糊的结果。

这一赛博 Cosplay 是如此惟妙惟肖,恰恰反映了某种数据污染,会导致其在专业领域的能力严重下降。

最糟糕的是,这些语料被喂给 AI ,AI 再反馈给人,形成循环,这会导致越来越多的抑郁症少年痴呆未成年人受到的影响尤其明显。

广播剧

从成本角度考虑,我决定放弃视觉,改成广播剧。但和 B 站类似,一旦提示词涉及“广播剧”,选题范围就非常狭窄,而且会出现一定程度的降智,怎么调整都不行,最后只能放弃。

我猜是因为训练数据不足,导致 AI 对广播剧的理解极其狭隘。

与之相对的是,提示词涉及电影编剧时,从其深度思考的方式来看,它对编剧术语的理解很模糊,而且在不同的对话中对同一术语的理解会出现偏差,我猜这反而是因为训练数据太多,缺乏取舍(这个领域的垃圾教材实在是太多了)。

路易吉版《十二怒汉》

考虑到前面让它自己选题的效果很差,我自己定了“路易吉”这个题目。

经过互动,发现了它容易出现的一些错误,据此整合出提示词,开一个对话重来,再整合一次,并让它自己整理成衔接AI语音生成工作流的提示词

我发现它很喜欢篡改事实 —— 即便要求它严格以现实事件为背景(一开始让它自己搜索,后来我也指定了几个网页),它还是经常做出改动,光是路易吉的职业就变了好几次,没有一次是对的……其他错误也不计其数,越改越错。

用GPT也是这样。

一个发现是,不能强调不要怎么做

比如,我要求 AI 遵循现实世界的陪审团筛选规则,避免某些职业、利益相关者、明显导致偏见的背景,这个环节非常耗时,每次回复都很降智。

有次我没忍住直接给出了明确的否定,打破了规则。还有一次跟 GPT 说了一句:

Are you fucking kidding me !

我猜这是因为否定式的指令反而会让 AI 触发相关联想,导致生成更多错误(这一点跟人类倒是很像)。加上我没有给出明确的指示缩小范围,也造成了进一步的混乱。

最后它们各自整合了一套提示词,思路是能一次性输入,创作分为几个环节,每个环节要等待我确认才能进入下一步。

因为 DS 和 GPT 的特点和易犯错误的区别,这两套提示词差异非常大。中英文我都试了几轮。

最后这一设计思路失败了,也是各有各的问题。

DS总是直接给出所有环节的答案,必须每次都重复提醒。生成内容的效果也不好,最后只好重开对话。改成手动分步骤输入,一层一层敲定信息。

具体工作流取决于项目,两个模型适合的工作流也不一样。

我约束了时长和角色数量,让DS在前两步敲定人设与论点,后面逐步给出梗概、大纲乃至单页剧本等。

它经常给出动作设计和声音设计,考虑到我没时间配音效,我让它都去掉了。

剧本格式

在语音生成方面,它们给出了一些工具,且告诉我可以用 SSML 格式(可以为每句话规定情感、语速、音调等),所以 DS 写的第一版剧本是这样的(奇怪的是,它俩给出的语法还不一样):

XML
<surf:script>
  <!-- Scene 1: Opening Statements -->
  <surf:scene id="opening" bgm="courtroom_ambience.mp3">
    <character ref="Juror1" voice="en-US-Wavenet-A" pitch="+5%">
      <prosody rate="medium">Alright, let’s get started. We have a serious case here, and we need to focus on the facts.</prosody>
    </character>
    <character ref="Juror4" voice="en-US-Wavenet-C" pitch="-10%">
      <break time="300ms"/>But the facts are already tainted. The blood vial broke during the helicopter transport. <audio src="sfx:blood_vial_break"/>
    </character>
  </surf:scene>
</surf:script>

这个格式改过几次,实际测试时,Murf.ai 并不支持该格式(这里是我欠考虑了,应该先测试语音生成再写剧本的)。

尝试了几种其他产品,也没有特别合适的,亚马逊倒是支持SSML,但中国地区用户不能使用神经选项,只有标准选项(这脖子也他妈值得卡吗?),放弃了。

如果在 Murf.ai 网页版录入剧本,每句话都要手动设置角色、情感、语速、音调等,为了批量生成,最后只好看Murf官网文档,第一次学会了使用API;这里需要写代码(当然也是 AI 代劳),官网给出的示例似乎没有考虑过多角色的情况,各种报错,折腾了很久,后来我竟然能勉强看懂代码了……

最后生成时用的是这种格式:

import requests
import json

url = ""

fixed_params = {
    "sampleRate": 48000,
    "format": "WAV",
    "channelType": "MONO",
    "pronunciationDictionary": {},
    "encodeAsBase64": False,
    "variation": 1,
    "audioDuration": 0,
    "modelVersion": "GEN2",
    "multiNativeLocale": "en-US"
}

script = [
    {   # Juror 1 (Julia)
        "voiceId": "en-US-julia",
        "style": "Conversational",
        "text": "But why parade him in cuffs? To make us feel like justice is done. What if the real crime is the system he's fighting?",
        "rate": -5,
        "pitch": 2,
        "output_file": "0001julia.WAV"
    },

text 是台词,其它是为每句话单独配置的语音角色、情感、速度、音高,本来还可以调节单个词汇的发音,实际用时会报错就删掉了。另外,结尾要添加保存文件的代码。

Murf.ai 能调用的角色、情感、口音都严重不足,年龄、族裔等设定,在成片里都没有体现。我也查看了其他十余个网站,试用了其中几个,有两三个是有更多口音的的,比较贵。DS也给过一个复合方案,据说效果更好,但实在是太复杂了。

话说,敲定这个选题前,我想到的第一种方案是自己配音,用软件转换音色(笑),以后有机会再尝试。

总结

主要工作是发布前熬了整夜做出来的,像开光了一样一直没卡,可能 ds 知道我在给路易吉加无罪 buff,被感动到了

视频同时触发了两个油土鳖限流词汇 —— #deepseek & #luigi (笑),好在做这个也没考虑流量,都是用小号发的。

前两天B站推荐国产电影《胜券在握》,点击量挺高,评论区好评如潮,就看了一段……负责任地说,这部短片的台词比这种国产烂片高出至少3个档次。

查了一下,胜券在握的成本是1.5亿。

这个短片全靠白嫖。

综合质量与成本,说AI已经达到生产标准是没问题的。

DS 给我的大部分回复是“服务器繁忙,请稍后再试”,探索还不够深入。

GPT 很快,一开始的表现更好,但说多了就非常降智,且很多时候推理不像真的推理。

DS 也是,上下文过长会注意力涣散,说车轱辘话,还完全忘记前面的设定。

经过反复调节提示词,成片选的是相对较好的版本,但台词还是出现了重复,对话的自然程度也不够。

如果继续尝试,相信还能做到更好,但没必要了,这项工作比我想象中更加费时,我的猜想之一是:生成浑然一体的作品要耗费的时间会超过手工写作。不过我不打算验证这一点。

接入本地工作流,以人类为主导,可以避免前述的种种缺陷(当然,前提是编剧本身就有有效的工作流,了解故事创作)。下次我将直接尝试人机协作而非纯AI生成。

现在已经有整合了 AI 的编剧软件出现(参见AI编剧史),这方面的网站也比去年更多了。

我的工作流是自己独立设计的,无法依赖已有的数据。如果有条件本地部署,自己写规则,自己训练,乃至用 AI 编写适合自己需求的软件可能是更好的选择(当然,暂时也只能想想)。

最后还是,如果你对这个话题感兴趣 ➨ 欢迎交流