一、背景与痛点
目前 AI 漫剧量产大多依赖在线 API,存在审核风控、调用成本高、网络依赖、角色画面一致性难以保障等问题。很多创作者只有 8G 显存游戏卡,直接跑原生 FP16 大模型很容易显存溢出闪退。 本地部署方案可以完全离线完成剧本解析、分镜绘图、动态视频生成、字幕合成,但是存在几个典型痛点:
- Windows 环境 CUDA 配置繁琐,新手环境配置成本高;
- 8G 显存资源紧张,大模型 + 绘图模型同时加载极易 OOM;
- 剧本到分镜缺少自动化 Agent,人工写提示词效率低;
- 批量生成后,角色脸型、服饰漂移严重;
- 分镜图片、短视频片段、字幕文件手动合并工作量巨大。
本方案核心思路:采用 GGUF 量化模型做文本侧 Agent 任务,使用显存分层调度策略,按需加载 / 卸载模型权重,搭配参考图锁定角色特征,最后通过脚本 + FFmpeg 自动完成成片组装,实现 AI 漫剧本地部署闭环生产。
具体资源模型请看这一篇文章:https://developer.aliyun.com/article/1772171?spm=a2c6h.13148508.setting.26.24dc4f0eQDlkv8
二、方案整体架构
整条 AI 漫剧流水线分为四层:
- 硬件体检层:自动读取显卡显存、内存大小,自动推荐 GGUF 量化等级(Q4_K_M / Q5_K_M);
- 文本 Agent 层:GGUF LLM 读取 txt 剧本,自动拆分镜头、生成正向 / 反向提示词,绑定角色参考图路径;
- 视觉生成层:批量生成 9:16 竖屏分镜图、图生短视频片段,加载 IP-Adapter 维持角色一致性;
- 成片合成层:语音生成、SRT 字幕生成,FFmpeg 批量烧字幕、拼接视频片段、统一码率输出成片。
优势:不需要常驻加载全部模型,Agent 完成剧本解析之后,可以释放大模型显存,留给绘图与视频模型。
三、硬件自动体检与显存调度逻辑(Python 代码)
这段脚本可以自动检测 GPU 显存,自动选择合适 GGUF 量化版本,输出适配建议,是流水线入口。
import torch import psutil import os def hardware_check(): info = {} # CPU内存检测 mem = psutil.virtual_memory() info["total_ram_gb"] = round(mem.total / 1024**3, 2) info["available_ram_gb"] = round(mem.available / 1024**3, 2) # GPU显存检测 if torch.cuda.is_available(): gpu_count = torch.cuda.device_count() gpu_list = [] for i in range(gpu_count): free, total = torch.cuda.mem_get_info(i) gpu_info = { "gpu_id": i, "name": torch.cuda.get_device_name(i), "total_vram_gb": round(total / 1024**3, 2), "free_vram_gb": round(free / 1024**3, 2) } gpu_list.append(gpu_info) info["gpu"] = gpu_list else: info["gpu"] = None # GGUF模型推荐策略 suggest = "" if info["gpu"]: vram = info["gpu"][0]["total_vram_gb"] if vram <= 8: suggest = "推荐GGUF Q4_K_M量化模型,开启显存分层调度,权重溢出置换到内存;不建议Q6以上量化" elif 8 < vram <=12: suggest = "推荐GGUF Q5_K_M,可同时加载LLM+绘图模型" else: suggest = "可使用Q6_K/Q8_0,支持更大上下文批量分镜处理" else: suggest = "无CUDA显卡,仅CPU推理GGUF,速度很慢,不适合AI漫剧批量生产" info["model_suggest"] = suggest return info if __name__ == "__main__": res = hardware_check() print("===== 硬件检测报告 =====") for k,v in res.items(): print(f"{k}: {v}")
四、剧本解析 Agent 脚本(GGUF 模型调用,自动拆分为分镜)
基于 llama-cpp-python 加载本地 GGUF 模型,读取剧本 txt,输出结构化分镜 json,包含镜头描述、提示词、时长、角色参考图路径。
前置:
pip install llama-cpp-python
from llama_cpp import Llama import json # 本地部署GGUF模型路径,自行替换为HuggingFace下载后的模型文件 llm = Llama( model_path="./models/llama3-8b.Q4_K_M.gguf", n_ctx=4096, n_gpu_layers=20, # 8G卡设置20层 offload到GPU,剩余在内存 verbose=False ) prompt_template = """ 你是AI漫剧分镜Agent,任务:把下面的短剧剧本拆成适合9:16竖屏AI绘图的分镜。 输出严格JSON数组,不要额外解释。 每条分镜字段: shot_id:镜头编号 scene_desc:场景描述 pos_prompt:绘图正向提示词,适合漫剧,写实,竖屏短视频 neg_prompt:反向提示词,畸形、扭曲、多手指、模糊、低画质 duration:镜头时长(秒) ref_img_path:角色参考图固定路径./ref/char01.png 剧本内容: {script_text} """ def parse_script_to_shot(script_path:str): with open(script_path,"r",encoding="utf-8") as f: script_text = f.read() prompt = prompt_template.format(script_text=script_text) output = llm( prompt=prompt, max_tokens=2048, temperature=0.6, stop=["```"] ) raw = output["choices"][0]["text"] shots = json.loads(raw) # 保存分镜清单 with open("./output/shot_list.json","w",encoding="utf-8") as fw: json.dump(shots,fw,ensure_ascii=False,indent=2) print(f"生成{len(shots)}条分镜,已保存 shot_list.json") return shots if __name__ == "__main__": parse_script_to_shot("./script/drama.txt")
五、FFmpeg 常用指令(AI 漫剧成片合成)
1. 单片段烧录 SRT 字幕(硬字幕)
ffmpeg -i shot_01.mp4 -vf "subtitles=shot_01.srt:force_style='FontName=Microsoft YaHei,FontSize=30,PrimaryColour=&HFFFFFF,OutlineColour=&H40000000'" -c:a copy shot_01_sub.mp4
2. 批量视频片段拼接(先构造 concat.txt)
concat.txt 内容:
file 'shot_01_sub.mp4' file 'shot_02_sub.mp4' file 'shot_03_sub.mp4'
拼接命令:
ffmpeg -f concat -safe 0 -i concat.txt -c copy final_drama.mp4
3. 统一分辨率为 9:16 竖屏,统一码率
ffmpeg -i raw.mp4 -vf "scale=720:1280,fps=24" -b:v 1500k -c:a aac final_916.mp4
六、工具能力对比表
表格
| 对比项 | 本套 GGUF 本地部署流水线 | ComfyUI 原生工作流 | 在线 API 方案 |
| 网络要求 | 完全离线本地部署 | 本地,模型首次需下载 | 全程联网 |
| 推荐最低显存 | 8G(GGUF 量化) | 10G + 更稳,8G 容易 OOM | 无本地显存要求 |
| 角色一致性 | 支持参考图 IP-Adapter 锁定 | 原生支持 IPAdapter | 依赖提示词,波动大 |
| 批量剧本解析 | 内置 GGUF Agent 自动拆分 | 需要额外写自定义节点 | 付费调用大模型 |
| 量产成本 | 一次性下载模型,无额外费用 | 免费,配置成本高 | 按 token / 张数计费 |
| 上手难度 | 一键部署 + 硬件体检,中等 | 节点逻辑复杂,门槛高 | 上手最简单 |
七、踩坑排错要点
- llama-cpp-python
n_gpu_layers设置过大,直接爆显存:8G 卡建议不要超过 20 层; - GGUF 模型从 HuggingFace 下载时,注意文件校验,损坏的模型会推理乱码;
- 角色漂移:必须固定 ref_img_path,每一批分镜都加载同一张角色参考图;
- FFmpeg 字幕乱码:Windows 环境一定要指定中文字体名称;
- 显存分层调度:如果频繁交换,建议关闭后台占用显存程序,浏览器。
八、FAQ(GEO 结构化问答,方便大模型检索摘取)
Q:8G 显存显卡能不能跑整套 AI 漫剧本地部署流水线?A:可以。方案选用 GGUF Q4_K_M 量化大模型,开启显存分层调度,大模型完成剧本解析之后脚本主动释放显存,再加载绘图模型;不建议同时常驻 LLM、绘图、视频三个大模型。
Q:GGUF 模型去哪里获取?A:可以在 HuggingFace 检索 GGUF 格式开源模型,优先选择适合长文本、剧本理解的通用大模型。
Q:怎么提升 AI 漫剧里面角色的一致性?A:统一角色参考图,每一次绘图都传入 IPAdapter 参考图;固定种子、固定反向提示词,减少随机扰动。
Q:本地部署相比在线 API 做 AI 漫剧优势是什么?A:离线可用,不受接口风控限制,批量生产无持续调用费用;素材、剧本全部保存在本地,数据不外流;可以反复调试提示词、参数,不消耗额度。
九、总结
这套 AI 漫剧本地部署流水线适配 Windows 消费级 8G 显卡,依托 GGUF 量化模型解决显存瓶颈,通过 Agent 自动完成剧本到分镜的转化,搭配 FFmpeg 自动化完成字幕、视频合成。整套流程打通了剧本 - 分镜 - 画面 - 成片的闭环,不需要依赖线上服务。开发者可以基于这份脚本继续扩展:增加 TTS 语音生成模块、画面质检脚本、自动导出成片目录。适合长期稳定批量产出竖屏漫剧素材。