这次我们来看一个很典型的 AI 短剧创作案例:《数字生死簿》EP01。它的设定非常直接——善恶报应不再靠传统神明来裁决,而是交给一套算法系统来完成。标题里那句“你愿意吗”把观众拉到伦理争议里,配合“AI 全民制作人”的标签,本质上是一套用 AI 工具完成脚本、画面、配音、剪辑的短剧生产流程。
这个选题值得拆解,不是因为它剧情多复杂,而是它把“算法”这个抽象概念变成了具体的视觉叙事。如果你想搞清楚 AI 短剧到底怎么从零做出来,而不是只看成品,那这篇文章适合你。我会从世界观设定、分镜设计、提示词编写、图生视频、TTS 配音、字幕压制、批量出片、显存占用、接口调用和问题排查这些维度,完整拆一套可执行的 AI 创作工作流。
先给结论:这套流程的关键不是某一个“万能模型”,而是“脚本拆解 + 分镜提示词 + 图像生成 + 视频生成 + 语音合成 + 剪辑合成”的组合拳。下面开始讲具体怎么做。
1. 核心能力速览
| 能力项 | 说明 |
|---|---|
| 项目类型 | AI 短剧 / AI 漫剧 / 概念视频创作案例 |
| 核心主题 | 算法控制善恶报应,数字生死簿设定 |
| 适用工具 | 图像生成、图生视频、TTS 语音合成、剪辑软件的组合工作流 |
| 部署方式 | 可选用本地 ComfyUI 工作流,也可用云端工具完成 |
| 显存占用 | 需按实际模型与分辨率测试,不固定 |
| 建议显卡 | 本地生成推荐 8G 以上显存,低配可降低分辨率并优先用图生视频 |
| 是否支持 CPU | 部分图像生成支持 CPU,但视频生成建议用 GPU |
| 是否支持 API | 支持,接口路径需按实际工具确认 |
| 是否支持批量任务 | 支持,建议通过目录脚本或工作流队列实现 |
| 适合人群 | AI 短剧创作者、个人开发者、内容团队、想学习 AI 视频工作流的人 |
2. 适用场景与使用边界
《数字生死簿》这类内容适合谁去做?首先是 AI 短剧创作者,能通过这套工作流把抽象题材变成连续画面;其次是技术型内容生产者,想在脚本、提示词、模型组合之间建立完整生产链路;再次是团队里的视频策划,可以先跑通样片,再决定是否投入量产。
这套流程能解决的问题是:小团队一个人也能完成短剧的前期概念验证。你可以不请演员、不搭实景、不租摄影棚,用图像生成产出角色和场景,用图生视频生成动态片段,用 TTS 生成旁白,最后在剪辑软件里合成字幕和音效。
但不适合把它当作“真实系统”来理解。所谓“数字生死簿”是一个虚构理念,不是可以实际部署的软件。它可以作为一种视觉题材、剧情设定来创作,但不应被包装成现实存在的产品。使用边界必须明确:涉及拟人化角色、名人形象、真实人脸或真实声音时,需要获得授权;批量生成视频要考虑平台内容审核要求;不能把它用于编造事实、伪造证据或误导他人。
合规提醒有两条比较重要:第一,不要用 AI 生成涉及真人肖像的内容,除非有明确授权;第二,不要用 AI 生成包含违法、低俗、歧视或恶意攻击的内容。创作赛博题材可以,但底线是内容合法、来源合规、发布有度。
3. 环境准备与前置条件
本地跑通这套 AI 短剧工作流,主要涉及图像生成、视频生成、语音合成三类组件。建议先做一个环境检查,再装依赖。
操作系统:Windows 10/11、Ubuntu 20.04/22.04 都可以。Windows 下注意路径不要太深,不要有中文目录,否则部分模型加载容易报错。
Python 版本:很多 ComfyUI 插件和 AI 视频工具的依赖要求 Python 3.10 或 3.11,建议先用python --version检查。如果版本不对,考虑用虚拟环境管理工具,而不是直接改系统 Python。
显卡驱动和 CUDA:用 NVIDIA 显卡时,先看驱动版本是否够新。CUDA 版本由 PyTorch 决定,装 PyTorch 时选和驱动匹配的版本即可,不需要单独装完整的 CUDA Toolkit。
磁盘空间:图像大模型通常在 2G 到 7G,视频生成模型体积更大,可能在 5G 到 20G,TTS 模型一般在 1G 以内。建议至少预留 30G 空间。
端口占用:ComfyUI 默认端口是 8188,TTS 服务可能占用 8000 或 8080。如果端口冲突,可以改端口启动。
检查命令参考:
python --version nvidia-smi如果nvidia-smi能显示显存和驱动版本,说明 NVIDIA 环境可用。没有 NVIDIA 显卡时,部分图像生成工具能退到 CPU 模式,但速度会慢很多,视频生成会更吃力。
4. 安装部署与启动方式
以 ComfyUI 为例,这套工作流可以完全用 ComfyUI 完成图像生成和图生视频。下面给出通用启动流程,具体模型文件名以实际下载为准。
4.1 获取 ComfyUI 并安装依赖
git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI pip install -r requirements.txt如果网络环境受限,可以从可访问的镜像源获取依赖:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple4.2 启动 ComfyUI 服务
python main.py --listen 127.0.0.1 --port 8188启动后浏览器访问http://127.0.0.1:8188。如果能看到工作流编辑界面,说明服务已正常运行。
4.3 模型文件放置
ComfyUI 的模型目录结构大致如下:
ComfyUI/ models/ checkpoints/ # 基础图像模型 loras/ # 风格 LoRA vae/ # VAE 模型 controlnet/ # ControlNet 模型 videos/ # 部分视频模型 input/ # 输入图片 output/ # 输出图片和视频下载好的模型文件放到对应目录后,点击界面右上角的“刷新”按钮,才能在模型列表里看到新模型。
4.4 图像生成节点连接示例
在 ComfyUI 中搭建一个最简文生图流程:
- Load Checkpoint:选择图像模型
- CLIP Text Encode(正向提示词):输入画面内容
- CLIP Text Encode(负向提示词):输入不想出现的内容
- Empty Latent Image:设置宽高和 batch 数量
- KSampler:设置步数、CFG、采样器
- VAE Decode:将潜空间数据转回像素图
- Save Image:保存结果
这个流程是最小可运行框架,先跑通它,再往上加 ControlNet、LoRA 和视频生成节点。
4.5 图生视频节点加载
图生视频通常是在“图像生成”之后,把生成好的首帧或关键帧作为输入,再通过视频生成模型补足连续帧。ComfyUI 里加载对应的工作流 JSON 文件后,检查模型路径是否匹配。如果提示缺少节点,就装缺失的自定义节点:
cd ComfyUI/custom_nodes git clone <自定义节点仓库地址> pip install -r <节点目录>/requirements.txt然后重启 ComfyUI。
5. 功能测试与效果验证
《数字生死簿》这样的赛博题材,画面风格和角色一致性是核心。建议按下面的维度做功能测试。
5.1 题材画面风格测试
测试目的:确认图像模型能否稳定输出“赛博朋克+东方生死簿”风格。
输入提示词示例:
正:a futuristic digital ledger floating in cyberspace, holographic screens, neon blue and gold light, chinese mythology elements, dark atmosphere, cinematic lighting, high detail 负:blurry, low quality, watermark, distorted face, extra fingers操作步骤:设置 512x768 分辨率,步数 20,CFG 7,生成 4 张。
预期结果:画面包含数字屏幕、赛博都市、东方纹样等元素。
判断是否成功:整体风格统一,角色五官正常,文字没有乱码。如果文字乱码严重,可后续用局部重绘修复。
常见失败原因:模型不理解东方赛博风格,解决方法是加入 LoRA 或用图生图垫图。
5.2 角色一致性测试
测试目的:确认主角在不同分镜里保持同一张脸和同一套服装。
操作步骤:先用一张满意的角色正面图作为底图,再用图生图或 ControlNet 的 Canny 模式生成不同角度和场景。
输入示例:保持角色描述词一致,每次只改场景和动作。
预期结果:不同分镜里的角色脸型、发色、服装颜色基本一致。
判断是否成功:生成的角色在连续 3 张图中可以被认成同一个人。
常见失败原因:角色特征描述不固定。解决方法是把这套描述词复制到每一个生成节点里,不要手动修改。
5.3 图生视频测试
测试目的:验证静态画面能否生成可用的短动态片段。
操作步骤:生成一张主角面对数字生死簿的画面,作为图生视频的输入。视频模型设置通常包括帧数、步数、分辨率、运动强度。
预期结果:画面里数字屏幕有闪烁,粒子光效在流动,角色身体有轻微移动。
判断是否成功:视频没有明显的画面扭曲,运动速度可控。
常见失败原因:画面分辨率太高导致显存不足,可以降低到 512x768,或减少帧数。
5.4 TTS 配音测试
测试目的:验证旁白语音是否符合赛博风格。
操作步骤:准备一段旁白文本,例如:
善恶报应,从今天起,由算法系统判定。选择合适的 TTS 模型,生成语音,再听效果。
预期结果:语音清晰,语速符合纪录片节奏。
判断是否成功:文字没有被漏读或错读。多音字问题可以文本中加注音或用发音标记。
常见失败原因:TTS 默认发音太机械,可以换多音色模型或调节语速。
5.5 字幕与合成测试
测试目的:验证字幕、画面、配音能否对齐。
操作步骤:把视频片段导入剪辑工具,添加旁白音轨,根据语音生成字幕。
预期结果:字幕断句合理,关键台词和画面内容对应。
判断是否成功:整段样片播放一遍,没有明显的字幕延迟和错别字。
常见失败原因:字幕自动识别不准,可手动分段核对。
6. 接口 API 与批量任务
单张生成可以手动操作,量产短剧时一定要通过接口和批量任务来跑。不同工具的接口路径可能不同,但通用思路是一致的:先启动后端服务,再通过 HTTP 请求提交任务,轮询结果。
以 ComfyUI 为例,可以通过/prompt接口提交工作流 JSON 到队列:
curl -X POST http://127.0.0.1:8188/prompt \ -H "Content-Type: application/json" \ -d '{ "prompt": { "3": { "class_type": "KSampler", "inputs": { "seed": 42, "steps": 20, "cfg": 7, "sampler_name": "euler", "scheduler": "normal", "denoise": 1, "model": ["4", 0], "positive": ["6", 0], "negative": ["7", 0], "latent_image": ["5", 0] } } } }'这里的class_type和节点编号需要替换成实际工作流 JSON 里的内容。更稳妥的方式是在 ComfyUI 界面导出工作流 API 格式,再直接修改参数。
批量生成分镜时,可以写 Python 脚本遍历分镜目录:
import requests import json import time url = "http://127.0.0.1:8188/prompt" workflow = json.load(open("shot_api.json", encoding="utf-8")) shot_list = [ {"shot_id": "shot_001", "prompt": "主角站在数字生死簿前"}, {"shot_id": "shot_002", "prompt": "算法屏幕显示善恶分值"}, {"shot_id": "shot_003", "prompt": "城市上空的审判光线"} ] for shot in shot_list: workflow["6"]["inputs"]["text"] = shot["prompt"] response = requests.post(url, json={"prompt": workflow}, timeout=30) print(shot["shot_id"], response.status_code) time.sleep(3)批量任务建议加入日志和失败重试:
from pathlib import Path output_log = Path("batch_log.txt") def submit_shot(shot): try: response = requests.post(url, json={"prompt": workflow}, timeout=30) with output_log.open("a", encoding="utf-8") as f: f.write(f"{shot['shot_id']} {response.status_code}\n") return response.status_code == 200 except Exception as e: with output_log.open("a", encoding="utf-8") as f: f.write(f"{shot['shot_id']} ERROR {e}\n") return FalseTTS 服务的 API 调用通常也是 POST 方式,传文本和音色参数,返回音频文件地址。建议把生成结果统一放到output/audio/目录,方便后续剪辑时匹配。
7. 资源占用与性能观察
本地跑 AI 短剧流程,资源占用是重点。显存、内存、磁盘都会被同时消耗,需要知道怎么观察和优化。
显存观察:在生成任务执行时,另开终端运行:
nvidia-smi -l 2这样每 2 秒刷新一次显存占用。也可以写到文件里:
nvidia-smi -l 2 > gpu_log.txt从实际观察结果看,图像生成时显存占用波动明显,KSampler 采样阶段占用最高。视频生成通常比图像生成更耗显存,因为需要同时处理多帧隐空间数据。
分辨率与步数的影响:分辨率越高,显存占用越大。512x768 是一个比较稳妥的起步分辨率。步数从 20 提到 40,生成时间会明显增加,但画质不一定线性提升。批量数量直接决定显存峰值,建议批量数量先设 1。
降低显存的方法:
- 开启 FP16 或 BF16 精度,很多工具在低显存模式下会自动启用。
- 降低视频生成帧数,比如从 72 帧降到 48 帧。
- 使用低分辨率生成,再通过放大模型做后期放大。
- 避免同时开多个生成服务,ComfyUI 和 TTS 服务同时跑时注意端口和显存竞争。
CPU 推理:没有独立显卡时可以跑,但速度会慢很多。视频生成优先用 GPU,否则一长段素材可能要跑数小时,实际很难量产。
端口冲突与进程残留:服务启动后不要直接关终端,否则部分进程可能残留。端口被占用时可以查看:
netstat -ano | findstr 8188如果端口被占用,换端口启动:
python main.py --listen 127.0.0.1 --port 81898. 常见问题与排查方法
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| ComfyUI 页面打不开 | 服务未启动或端口被占用 | 检查终端日志和端口状态 | 替换端口或重启服务 |
| 模型列表为空 | 模型文件放错目录或未刷新 | 检查目录路径,点击刷新按钮 | 移到models/checkpoints等正确目录 |
| 生成时显存不足 | 分辨率高、批量大、模型过大 | 查看nvidia-smi日志 | 降低分辨率、减小 batch、切换低精度 |
| 视频生成卡住 | 视频模型节点依赖缺失 | 查看 Console 报错信息 | 安装自定义节点依赖并重启 |
| TTS 发音错误 | 默认音色不合适或多音字未处理 | 换音色或文本加注音 | 调整文本格式或换模型 |
| API 调用失败 | 请求 JSON 格式不对或服务未启动 | 先测试curl基本请求 | 用 GET 请求访问根路径检查服务状态 |
| 批量任务中途失败 | 网络波动或依赖服务崩溃 | 查看日志文件 | 加失败重试并只提交失败批次 |
| 画面风格不稳定 | 提示词不固定或 LoRA 权重不统一 | 对比多次生成的结果 | 固定角色描述词,统一 LoRA 权重 |
| 输出视频闪烁 | 帧间一致性不足 | 检查图生视频关键帧参数 | 使用首尾帧或增加 ControlNet 约束 |
9. 最佳实践与使用建议
做《数字生死簿》这类 AI 短剧,工作流比单个模型更重要。这里整理几条工程化建议。
脚本先行。不要先跑生成再写故事。先把每集剧情拆成“场景-动作-台词-情绪”,每一个场景对应一个分镜描述,这一步能直接决定批量生成的效率。脚本内容可以包含人物设定卡、场景设定卡、道具设定卡,方便后续提示词复用。
固定角色描述词。新建一个文档,记录主角的关键视觉特征,例如“银灰色头发、黑色长袍、金色瞳孔、左眼下方有数字纹样”。每次生成角色时,完整复制这段描述词,不要随手改词。角色一致性不足的问题,大部分可以通过固定描述词解决。
目录结构要清晰。建议按集数和镜头数组织文件:
digital_ledger/ scripts/ ep01_scene01.txt prompts/ ep01_shot_list.csv images/ ep01_shot001.png videos/ ep01_shot001.mp4 audio/ ep01_narrator.mp3 output/ ep01_final.mp4这样批量任务跑完,素材可以直接按镜头号合成。
批量任务必须加日志和重试。批量生成几十个分镜时,任何一个单镜头失败都会中断流程。日志里记录镜头号和状态,失败后单独补跑,比整个任务从头跑一遍更高效。
接口服务要限制访问范围。如果不了解服务安全配置,建议启动时只监听本机,不监听公网。尤其是开放 API 后,要确认服务不会暴露到公网环境。
涉及人脸、声音、版权素材时必须确认授权。生成角色如果是虚构形象问题不大,但涉及真实人物的肖像或声音,必须取得明确的合法授权。发布作品前也要对内容做一遍人工复核,确保没有侵犯他人权益,不传播误导性信息。
发布商用前做效果复核。AI 生成的文字、画面和语音都可能出现不可控的错误,比如屏幕文字乱码、多音字读错、角色手指变形。这些情况在批量任务里极容易出现,前期小批量测试比后期返工更省时间。
10. 总结与下一步
《数字生死簿》这个案例最值得尝试的点在于:它把一个高度抽象的“算法审判”概念,拆成了可以通过 AI 工具批量实现的画面单元。你不需要先掌握复杂的 3D 建模,也不需要一个几十人的制作团队,只要把脚本拆好、提示词固定好、批量工作流搭起来,一个人就可以先做出样片。
如果你打算自己动手做一集类似的 AI 短剧,最先应该验证三个功能:图像生成能否稳定产出赛博风格的角色和场景、图生视频能否让静态画面动起来、TTS 配音是否符合题材设定。这三个功能跑通,整个工作流的地基就稳了。
最容易踩的坑有两个。一个是角色一致性没有做好,不同分镜的主角长得完全不一样,观众根本没法带入剧情。另一个是批量任务没有加日志,任务做到一半失败,不知道具体是哪个分镜出了问题,只能排查半天甚至从头再来。
后续可以继续扩展的方向很多:加入 ControlNet 做更精确的构图控制,引入首尾帧让视频转场更自然,改进多音字处理让配音更准确,甚至把整套提示词和批量脚本整理成自己的模板库。做这种 AI 全民制作人内容,核心不是工具多新,而是把一套流程反复打磨,直到它可以稳定复现你想要的效果。建议先跑通一个最短的 10 到 15 秒样片,验证流程,再逐步扩大批量。