☰
不只是提示词:AI短视频内容工程与角色一致性流水线
2026/10/19 6:11:13 网站建设 项目流程

如果你以为做一条“雪糕看AI小视频”或者“小糖糕唐诗幽默重现江湖”这类AI短视频,只需要把一句提示词扔进文生视频模型,然后坐等成片,那么大概率会在更新到第三条时放弃。

原因很简单:这类栏目看起来是“AI生成”,实际上是一个内容工程。它有固定角色、连续剧情、幽默对白、唐诗文本改编,还要求能稳定更新。真正卡住你的不是某个模型效果不够好,而是几个环节之间没有打通:角色一致性怎么保证、脚本怎么批量产出、配音和图生视频怎么对齐、素材目录怎么管理。这篇文章不想泛泛讨论“AI视频有多厉害”,而是把一套从唐诗选题到成片的完整流水线拆开,给你一条可以照着落地执行的路径。

先给一个判断:像“雪糕看AI小视频”“小糖糕唐诗幽默”这类内容,本质上是“创意 IP + 内容工程”。如果只关注单次生成效果,你会一直困在抽卡里;如果先把流程搭出来,哪怕模型版本更新,你也能快速迁移。读完这篇文章,你能学会:用大模型把一首古诗改写成幽默分镜脚本,用固定角色参考图保证人物形象不漂移,再用图生视频、配音和剪辑工具合成一条完整短视频,并掌握最基本的排错手段。

1. 这篇文章真正要解决的问题

AI短视频最近非常火,但有一个现象很值得注意:大量账号发了几条“惊艳”作品之后就不再更新。原因不是创意枯竭,而是流程跑不通。创作者把太多精力放在“怎么生成一张好看的图”上,忽略了成片需要的是稳定、可复制、可排错的流水线。

“雪糕看AI小视频”“小糖糕唐诗幽默重现江湖”这类内容,表面上是把唐诗和幽默对白结合,实际上对生产流程提出了四个具体要求:

  1. 角色是连续 IP。雪糕、小糖糕不能这一集长一个样,下一集又换了发型。角色是观众记住这个栏目的核心。
  2. 剧本要可控。古诗不能乱改,尤其是大家耳熟能详的《静夜思》这类作品,既要保留原诗意境,又要制造反差笑点。
  3. 单条视频有完整叙事。不能只有画面奇观,还要有“起承转合”,配音、字幕、画面节奏必须对齐。
  4. 产量要能支撑更新。如果做一条片子要手工处理十几个文件,那每周更新就是灾难。

所以这篇文章解决的不是“怎么生成一段AI视频”,而是“怎么搭建一条可持续生产AI短片的流水线”。最应该看这篇文章的读者有三类:想认真做AI动画短视频账号的内容创作者;想用AIGC提升内容生产效率的开发者和产品运营;以及需要把“故事创意”转成“代码任务”的技术人。

2. 基础概念与核心原理:不是所有AI视频都是一个玩法

要理解这类项目,先要把几个容易混淆的概念分清。

2.1 文生视频、图生视频与视频驱动

文生视频是“文本直接出视频”。优点是零门槛,缺点是控制力弱。角色容易漂移,动作不稳定,很难做到一个人物从第一秒到最后一直保持同一种形象。

图生视频是把一张图片变成动态视频。这张图可以是角色定妆图,也可以是分镜图。图生视频更适合做角色IP短片,因为你可以先严格控制画面中的角色长什么样,再让模型去动。

视频驱动则是用一段视频素材去影响另一张图的动态,或者让人物图片开口说话。对“小糖糕唐诗幽默”这种以对白推进剧情的短片,口型驱动几乎是必须的。

2.2 角色一致性:这个栏目的生命线

“雪糕看AI小视频”里的雪糕,和“小糖糕唐诗幽默”里的小糖糕,如果形象不稳定,观众就会觉得陌生。角色一致性的常见实现路径有三种:

方案原理适合场景
固定参考图每张生成图都携带同一张角色定妆图快速验证创意,成本最低
LoRA角色模型用十几张角色图片训练一个小模型需要大量画面、追求风格统一
角色ID嵌入提示词用文字描述详细外貌特征没有参考图时兜底使用

对新手来说,最快上手的是“固定参考图”。先把雪糕和小糖糕的定妆图各做一张,之后所有画面都在提示词和图片参考中复用这两张图。对进阶玩家,LoRA能解决更多复杂问题,但训练数据要自己做,脏手和脏背景反而会让效果退化。

2.3 为什么不能完全依赖单模型出片

把“唐诗幽默”做成完整视频,中间的步骤至少有六个:选题拆解、脚本生成、角色定妆、分镜画面、配音和视频合成。没有任何一个模型能把六件事一次做到位。

如果强行用文生视频一条龙出片,你会遇到三个常见问题:

  • 画面里的文字不可控,可能出现乱码;
  • 人物说话内容与文本不一致,口型对不上;
  • 镜头一多,同一人物在前后镜头里长相完全不同。

因此,更合理的思路是“分工协作”:大模型负责文本,多模态模型负责画面,TTS负责配音,FFmpeg负责合成。这也是本文后面所有示例的设计基础。

2.4 从唐诗到短视频的核心创作逻辑

为什么“唐诗幽默重现江湖”这类内容能火?因为它把两个原本不搭的东西放进一个场景里:一个是有千年文化底蕴的唐诗,一个是现代人熟悉的吐槽口吻。雪糕可以扮演冷静的“吐槽担当”,小糖糕可以扮演天真的“行动担当”,一收一放,笑点自然出现。

但幽默不能伤害原诗的情感。写脚本时要注意“反差但不下沉”。以《静夜思》为例,原诗的情感是孤独和思乡,改编时可以让小糖糕把月光误当成“要命的加班灯光”,雪糕在旁边吐槽一句“那是月亮,不是甲方需求”。既有现代职场共鸣,又没有把李白写成小丑。

3. 环境准备与前置条件

开始写代码之前,先准备好环境。这里不绑定某一款具体产品,因为AI模型迭代太快,今天流行的工具可能下个月就改了。重点是理解每个环节你需要什么。

3.1 基础运行环境

  • 操作系统:Windows 10/11、macOS、Linux 均可。
  • Python:建议 3.10 或更高版本,主要用于写脚本调用模型接口。
  • FFmpeg:用于视频片段合并、音频合成、字幕烧录。建议 6.x 以上版本。
  • 内存:16GB 以上更稳妥,普通 8GB 也可以跑,但不要同时开太多本地模型。

3.2 模型与API服务

为了控制成本,建议采用“混合链路”:

环节推荐方式说明
脚本生成大模型API用文本模型生成分镜脚本
角色定妆图文生图模型生成角色标准参考图
分镜动态图生视频API将定妆图变成动态片段
配音TTS服务或本地开源模型按角色生成对白音频
字幕语音识别或人工校准中文短剧字幕必须人工检查

本地方案可以选用 Stable Diffusion WebUI 或 ComfyUI 做图像生成,如果要在本地训练角色 LoRA,建议使用 NVIDIA 显卡,显存 12GB 以上。如果电脑配置不够,直接用云端API按量付费更省心。

3.3 项目目录结构

建议新建一个项目目录,长期更新内容一定要从第一天就把目录规范起来:

tangshi_ai_video/ ├── poems/ # 原始唐诗文本 ├── scripts/ # 生成的分镜脚本 ├── characters/ # 角色定妆图 ├── scenes/ # 分镜图片和视频片段 ├── audio/ # 配音文件 ├── subtitle/ # 字幕文件 └── output/ # 最终成片

这样做的价值在于:后续如果要批量生产,你只需要按目录扫描素材,脚本能自动找到对应文件。

4. 核心流程拆解:从《静夜思》到一条30秒短片

整个拆解过程分为六步。为了讲清楚,本文以《静夜思》为例:

床前明月光,疑是地上霜。举头望明月,低头思故乡。

这首诗画面感强、情绪转折清晰,非常适合做成短剧情。

4.1 第一步:选题与情感拆解

选诗不是看哪首有名,而是看它能不能变成“场景+冲突+反转”。古诗要足够大众,画面感要强,情绪层次要适合改编。《静夜思》好改编,是因为它有三层结构:眼前细节、抬头动作、内心情绪。这三层正好对应短视频的起承转合。

选诗时不宜选太长、太晦涩的作品。短视频时长最好控制在30到60秒,一首绝句、一句名句就够。

4.2 第二步:角色设定

设定两张角色卡,固定下来后不要随意改动。

雪糕:冷静型吐槽角色,说话语速偏快,声音偏少年感。外形可以是高个子、冷色调、戴眼镜的卡通形象。在诗里负责“拆穿幻想”。

小糖糕:天真行动派,声音软萌,语速慢一点,外形偏圆润、暖色调。在诗里负责“认真执行错误理解”。

角色卡不仅服务于画面,还服务于配音。配音演员或TTS音色选择也要对应角色,否则观众会出戏。

4.3 第三步:脚本生成

这一步可以用大模型API完成。你需要把“角色设定、诗歌文本、分镜要求、输出格式”全部写进提示词,而不是只丢一句“帮我写脚本”。

一个可复用的提示词框架如下:

你是短视频编剧,擅长把古典诗歌改编成幽默但尊重原作的AI动画脚本。 角色设定: - 雪糕:冷静吐槽型,音色偏高冷,普通话标准。 - 小糖糕:天真行动派,音色软萌,语气夸张。 请根据以下唐诗生成5至7个镜头。每个镜头必须包含: - scene:画面内容 - shot:景别,如中景、近景、特写 - character:出现角色 - dialog:该镜头台词 - duration:镜头时长,单位秒 - visual_style:画面风格 要求: 1. 保留原诗情感,不得恶搞。 2. 反差幽默来自角色对诗句的错误理解。 3. 结尾收回到诗意本身。 诗歌原文:床前明月光,疑是地上霜。举头望明月,低头思故乡。

这个提示词模板可以存成文件,之后批量换诗歌内容即可。

4.4 第四步:分镜画面生成

根据脚本生成的镜头列表,逐镜生成图片。每一个镜头都要带上角色定妆图作为参考,并且在画面描述中写清楚“保持雪糕的冷色系设计”“保持小糖糕的圆润形象”。

每一个分镜图片不需要一次生成到完美。如果画面崩了,先检查是不是参考图权重设置太低;如果角色身体比例不对,可以在提示词里补充“全身、站姿、正视镜头”等约束。

4.5 第五步:图生视频与口型驱动

把分镜图片放进图生视频模型,让静态画面产生动作。这个环节的重点不是“动作越大越好”,而是“动作是否服务于台词”。一个人说话时,嘴部自然开合、身体轻微晃动就足够;不要每句话都让角色跳起来,那样反而显得诡异。

如果短视频以对白为主,建议先配音,再根据音频时长决定每个镜头的长度,最后生成视频片段。这样可以避免画面长于语音或语音长于画面。

4.6 第六步:配音、字幕与合成

配音建议按镜头逐句生成,而不是一次性合成一整段。逐句配音的好处是:某个镜头的语音不对,只需要重录这一句,不需要重新处理整条音频。

字幕不要直接信任自动识别结果。中文古诗里“明月光”“地上霜”这类词,语音识别很容易错。成片前必须人工校对字幕,否则一个错别字就让专业感大打折扣。

5. 完整示例与代码实现

下面给出三个可直接运行的脚本示例。它们不是某个平台的唯一写法,而是通用的参考框架。API地址、模型名称、参数名都需要根据你实际使用的服务商替换。

5.1 示例一:用大模型生成分镜脚本

# 文件路径:scripts/generate_script.py import os import json from openai import OpenAI client = OpenAI( api_key=os.getenv("LLM_API_KEY"), base_url=os.getenv("LLM_BASE_URL", "https://api.example.com/v1") ) def generate_script(poem_title: str, poem_text: str) -> dict: prompt = f""" 你是短视频编剧,擅长把古典诗歌改编成幽默但尊重原作的AI动画脚本。 角色设定: - 雪糕:冷静吐槽型,音色偏高冷,普通话标准。 - 小糖糕:天真行动派,音色软萌,语气夸张。 请根据以下唐诗生成5至7个镜头。每个镜头必须包含: - scene:画面内容 - shot:景别,如中景、近景、特写 - character:出现角色 - dialog:该镜头台词 - duration:镜头时长,单位秒 - visual_style:画面风格 要求: 1. 保留原诗情感,不得恶搞。 2. 反差幽默来自角色对诗句的错误理解。 3. 结尾收回到诗意本身。 诗歌标题:{poem_title} 诗歌原文:{poem_text} """ resp = client.chat.completions.create( model=os.getenv("LLM_MODEL", "gpt-4o-mini"), messages=[ {"role": "user", "content": prompt} ], response_format={"type": "json_object"}, temperature=0.8 ) return json.loads(resp.choices[0].message.content) if __name__ == "__main__": script = generate_script( poem_title="静夜思", poem_text="床前明月光,疑是地上霜。举头望明月,低头思故乡。" ) os.makedirs("scripts", exist_ok=True) with open("scripts/jingyesi.json", "w", encoding="utf-8") as f: json.dump(script, f, ensure_ascii=False, indent=2) print("脚本已保存到 scripts/jingyesi.json")

这段代码做了三件事:把角色设定写进提示词、要求模型输出JSON、把结果保存到本地文件。保存成JSON后,后面的分镜生成和配音步骤都可以直接读取同一个文件,不再需要手工抄写。

运行前先设置环境变量:

export LLM_API_KEY="你的API密钥" export LLM_BASE_URL="https://api.example.com/v1" export LLM_MODEL="gpt-4o-mini" python scripts/generate_script.py

注意,base_url示例地址不是真实服务。你要换成自己使用的模型服务商提供的地址和密钥。

5.2 示例二:用角色参考图生成分镜图片

不同文生图服务的接口差异很大,有的叫image,有的叫reference_image,有的需要先上传图片拿到图片ID。下面是通用思路的伪代码,重点在“参考图如何参与生成”:

# 文件路径:scripts/generate_image.py import os import base64 import requests api_key = os.getenv("IMAGE_API_KEY") url = os.getenv("IMAGE_API_URL", "https://api.example.com/v1/images/generations") def encode_image_to_base64(path: str) -> str: with open(path, "rb") as f: return base64.b64encode(f.read()).decode("utf-8") def generate_image(prompt: str, reference_image_path: str, out_path: str) -> None: payload = { "prompt": prompt, "size": "1024x576", "n": 1, "response_format": "url", # 下面这个参数是示意,具体名称以服务商文档为准 "reference_image": encode_image_to_base64(reference_image_path), } headers = {"Authorization": f"Bearer {api_key}"} resp = requests.post(url, json=payload, headers=headers, timeout=120) resp.raise_for_status() data = resp.json() image_url = data["data"][0]["url"] image_data = requests.get(image_url, timeout=60).content with open(out_path, "wb") as f: f.write(image_data) print("图片已保存:", out_path) if __name__ == "__main__": generate_image( prompt="雪糕站在窗前,月光洒进房间,表情冷静,夜景古风,动画风格", reference_image_path="characters/snow_stick.png", out_path="scenes/scene001.png" )

这个脚本的核心价值在于“锁定参考图”。如果去掉参考图,每次生成的雪糕都可能换一张脸。实际项目中,图片API的上传方式、大小限制、参考图数量都可能不同,你需要先阅读服务商文档,把参数名和格式替换成真实值。

5.3 示例三:用FFmpeg合成视频、音频和字幕

分镜图片生成后,先用图生视频服务把每张图变成视频片段,再把所有片段合成一条完整的短视频。

# 将分镜图片变成5秒视频片段 ffmpeg -loop 1 -t 5 -i scenes/scene001.png \ -vf "fps=25,format=yuv420p" scene001.mp4 # 生成视频片段列表,文件内容为: # file 'scene001.mp4' # file 'scene002.mp4' # file 'scene003.mp4' ffmpeg -f concat -safe 0 -i list.txt \ -i audio_final.mp3 \ -c:v libx264 -c:a aac -pix_fmt yuv420p \ -shortest output.mp4 # 给视频烧录字幕 ffmpeg -i output.mp4 \ -vf "subtitles=subtitle.srt:force_style='FontSize=20,PrimaryColour=&HFFFFFF'" \ final.mp4

命令解释:

  • -loop 1 -t 5:让图片循环播放5秒,适合把静态分镜变量成视频片段。
  • -f concat:按列表顺序拼接多个片段。
  • -shortest:视频和音频中较短的作为总时长,避免出现黑屏或静音。
  • subtitles:把SRT字幕烧录到画面里。

如果你用的是 Windows,字幕文件名路径要小心处理,建议把文件放到当前目录并简化文件名。中文字体问题也需要在系统里配置可用字体,否则烧录时可能不显示。

5.4 批量运行的最小执行顺序

实际生产时可以按顺序执行以下命令:

python scripts/generate_script.py python scripts/generate_image.py # 逐个镜头调图生视频API生成 video_scene001.mp4 # 用TTS逐句生成 audio_scene001.mp3 ... ffmpeg -f concat -safe 0 -i list.txt -i audio_final.mp3 -c:v libx264 -c:a aac -shortest output.mp4

先跑通“一首诗、一个脚本、一张图、一条视频”的最小闭环,再考虑批量。

6. 运行结果与效果验证

运行结果不是只看“有没有视频文件”,而是要看“这条视频能不能发”。

6.1 预期输出文件

跑完上面的命令后,你应该得到:

  • scripts/jingyesi.json:结构化的分镜脚本。
  • scenes/scene001.png等多张分镜图。
  • scene001.mp4等视频片段。
  • audio_final.mp3:对白音频。
  • subtitle.srt:字幕文件。
  • final.mp4:成片。

如果少任何一个文件,不要急着生成下一首唐诗,先检查流程断在哪一步。

6.2 成片验证清单

检查项通过标准不通过怎么处理
角色一致性雪糕和小糖糕在前后镜头中长得一样重新用定妆图参考生成
字幕准确字幕中没有错别字,时间轴不漂移人工修正SRT
语音与画面同步台词出现时角色口型已经张开,说完后闭嘴逐镜头剪辑或调节音频起止时间
节奏镜头不会持续超过5秒不说话缩短镜头或增加动作
诗意底色幽默之外,观众还能感受到原诗情绪修改脚本,调整结尾镜头

判断“成功”的标准很简单:如果去掉字幕,只看画面和听声音,观众依然能理解剧情逻辑,并且雪糕和小糖糕看起来是同两个人,这条片子就算基本合格。

7. 常见问题与排查思路

AI短视频生产最烦的不是“效果不好”,而是“不知道哪里出了问题”。下面按现象列出排查方向:

问题现象可能原因排查方式解决方案
同一角色在不同镜头长相突变生成时没带参考图,或提示词中角色特征描述不一致检查每个镜头的生成记录固定角色定妆图,统一提示词前缀
画面崩坏,手指、文字乱码生成分辨率较高但模型水平不足放大画面检查局部区域缩短镜头运动幅度,或使用局部重绘
视频动作太小,像PPT图生视频运动系数设置太低查看动作参数是否被模型转换调高运动强度,或在提示词中加动作动词
声音和画面不同步整段音频时长大于或小于视频长度查看每个镜头长度和音频段长度逐镜头配音,或剪辑音频对齐
字幕时间轴错位SRT是按脚本时间生成,但成片剪辑后时间变了用播放器对照字幕和口语用语音识别工具重新校准字幕
API反复超时或限流并发太高或套餐额度不足查看错误码和响应时间增加重试、指数退避、降低并发

这里要特别提醒:接口超时不是只有网络一个原因,也可能是生成队列太长。建议每调用一次大模型请求之间至少停1到2秒,不要写一个for循环瞬间发几十个请求。

8. 最佳实践与工程建议

8.1 把提示词当成代码管理

角色设定、分镜要求、画面风格都应该沉淀为模板,放进Git仓库管理。每次调整提示词后,记录改动原因。你可以在项目里维护一个prompts.yaml文件:

character_snow_stick: name: 雪糕 appearance: 冷色系、高个子、戴眼镜、动画风格 voice: 少年音、语速偏快 personality: 冷静吐槽 character_sugar_stick: name: 小糖糕 appearance: 暖色系、圆润身材、动作夸张、动画风格 voice: 软萌音、语气夸张 personality: 天真行动 script_rules: poem_emotion: 保留原诗情感,不恶搞 humor_style: 反差来自角色对诗句的错误理解 ending: 结尾收回到诗意

有了固定模板,模型输出的质量会稳定很多。

8.2 先小成本跑通,再规模化

不要一开始就追求高清、长视频、大量镜头。第一条片子控制在30秒左右,5个镜头,分辨率720P都足够。跑通之后再逐步提升画质和时长。如果一上来就同时处理大量素材,遇到问题时你会分不清是脚本问题、图片问题还是剪辑问题。

8.3 角色一致性优先于画面精致度

观众会原谅不够精致的动画,但很难接受“上一秒是这个角色,下一秒变另一个人”。所以所有画面生成步骤,都要围绕同一组定妆图来工作。换模型、换平台时,先重新验证角色一致性,不要只看单张图单独有多好看。

8.4 内容合规与安全边界

制作这类内容一定要注意合规:

  • 古诗文本大多属于公共领域,但翻译、白话改编版本要注意版权来源。
  • 角色形象最好是原创设计,不要使用真实人物肖像,也不要使用有清晰版权归属的知名动漫角色。
  • 内容不要过度低俗,尤其涉及未成年人或校园场景时,要避免不良暗示。
  • 发布AI生成内容时,遵守目标平台对“AI生成内容”的标识要求。

8.5 为批量生产留好接口

当一首诗的流程跑通后,批量生产就变成“换文本、跑脚本、扫目录、合成视频”四件事。建议把所有视频片段列表、音频对齐方式都做成配置文件,不要在每个镜头里手写绝对路径。目录结构越规范,自动化越容易。

9. 总结与后续学习方向

这篇文章从“为什么AI短视频账号容易断更”这个问题出发,拆解了“雪糕看AI小视频”“小糖糕唐诗幽默重现江湖”这类内容背后的完整生产链路。核心不是某一个大模型效果多强,而是把“创意 IP + 内容工程”结合成一条可复制的流水线。你学会了用大模型生成分镜脚本,用角色参考图和图生视频保持形象稳定,用FFmpeg完成最终合成,也知道了最常见的排查方向。

下一步建议分两条线走。如果你是内容创作者,先选三首画面感强的唐诗,用最小闭环各做一条30秒的短片,再对比数据效果;如果你是开发者,可以继续研究三个方向:本地部署开源图像生成模型并用LoRA锁定角色,为TTS配音搭建批量缓存机制,把整个流程封装成一个带任务队列的自动化工具。

最后给一个很实际的提醒:不要急着把所有环节都自动化。先手工跑通一条片,确认每个步骤的输出是你可控的,再写脚本去简化它。流程一旦稳定,你就有时间真正打磨剧情和幽默感,而这才是这类栏目能持续更新的关键。建议把文中代码和排查表收藏备用,做第一条片子时按清单逐项核对。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询