核心功能模块
覆盖「文案 → 分镜 → 图片 → 配音 → 字幕 → 成片」的完整创作链路,每一步都有明确的输入、输出与技术实现。
文案分析与智能拆句
输入:项目原始中文文案。输出:主题/受众/语气/情绪曲线 + 可口播短句列表。按 。!?!?;; 与换行切分,单段超限按 ,、 二次切分并贪心合并,单句硬性 ≤20 汉字;边界用例(超长无标点句/连续标点/中英混排/空串)已由单元测试覆盖。
主题 / 情绪分析与「今日话题」钩子
输入:文案原文。输出:主题、受众、语气、情绪曲线与开场钩子。由 AI 服务 director 生成「今日话题:……」式钩子,第一秒抓人,落到首个镜头与首句旁白。
人物档案 Character Bible
输入:角色设定。输出:全字段档案并落库 character_profile 表。character_id 贯穿全部分镜,配合 consistency_lock 与 reference_image_url 锁住脸型、发型、服装、年龄、体态,保证全片人物一致。
分镜 JSON 生成(符合 Schema)
输入:拆句结果 + 人物档案 + max_chars。输出:符合 storyboard.schema.json 的分镜结构 {project_id, hook, shots:[...]},每个镜头含旁白、时长、情绪、镜头运动、正负 Prompt,并随项目落库 storyboard 表。
关键帧图片生成(人物一致)
输入:镜头 image_prompt / negative_prompt。输出:1080×1920 竖屏关键帧。Prompt 按 [人物档案]+[动作]+[场景]+[隐喻]+[构图]+[镜头]+[灯光]+[色彩]+[日系手绘电影感]+[暗调光影] 标准化组装;提供 MockImageProvider(生成真实暗调 PNG)+ 真实 ImageProvider 适配接口。
情绪 → 镜头运动映射
输入:镜头情绪。输出:确定的运镜类型。紧张→快速推进、孤独→缓慢拉远、希望→由暗向亮推进、回忆→轻微慢推+柔焦、平静→极慢推镜,默认按推进/放大/拉远/横移交替,避免随机运镜。
逐句配音(含时间轴)
输入:镜头旁白。输出:audio_url、duration_sec 与 timeline[{text,start,end}] 逐字时间轴(语速 0.95、句间停顿 350ms)。提供 MockTTSProvider(静音 WAV + 时间轴)+ 真实 TTSProvider 适配接口。
ASS / SRT 字幕生成
输入:TTS 逐句时间轴。输出:ASS 与 SRT 双格式字幕,与口播严格同步。ASS 字体走 SUBTITLE_FONT(默认 Microsoft YaHei,Windows 自带),上下各留约 10% 字幕安全区。
BGM 与环境音混音
输入:旁白音频 + BGM 素材。输出:混音音轨。BGM 低于人声约 12~18 dB(以听感校准为准),保证人声清晰、无爆音、停顿自然。提供 MockMusicProvider + 真实 MusicProvider 适配接口。
FFmpeg 渲染流水线(Ken Burns)
输入:关键帧 + 音频 + 字幕。输出:H.264/AAC final.mp4。图片 → 单镜头 mp4(zoompan 做 Ken Burns,按音频时长截取)→ concat 合并 → 叠加 ASS/SRT 字幕 → 混合旁白/BGM/环境音。命令由 Python worker 以 subprocess 参数列表方式生成(shell=False),从根上杜绝命令注入。
任务状态机与任务中心
输入:渲染/生成任务。输出:任务进度与状态。CREATED → PARSED → STORYBOARDED → IMAGE_GENERATING → IMAGE_REVIEW → AUDIO_GENERATING → SUBTITLE_READY → RENDERING → COMPLETED;失败分支 FAILED_IMAGE / FAILED_AUDIO / FAILED_RENDER。前端任务中心轮询进度、支持重试与取消,长任务经 RabbitMQ 异步执行。
单镜头重生成
输入:镜头 ID 与编辑后的镜头参数。输出:更新后的单镜头。时间线上可单独编辑旁白/情绪/场景/动作/构图/灯光/镜头/时长/正负 Prompt,并通过 POST /api/shots/{id}/image、POST /api/shots/{id}/voice 单独重生成图片或配音,无需整片重跑。
技术架构(三端分离 + 适配层)
🖥️ 前端 · Vue 3 创作工作台
- · Vue 3 + TypeScript + Vite 5
- · vue-router 4 / pinia 2 / axios 统一封装
- · 8 个页面:项目首页 / 新建视频 / 分镜编辑器 / 人物管理 / 素材管理 / 任务中心 / 视频预览 / 模板管理
- · 6 个重点组件:ScriptEditor / StoryboardTimeline / CharacterPanel / ShotEditor / RenderProgress / VideoPreview
- · 暗调视觉基调(深蓝/墨绿/深灰 + 局部暖光),TypeScript 类型检查与生产构建通过
⚙️ 业务后端 · Spring Boot 3.5.3
- · Spring Boot 3.5.3 + Java 17
- · web / validation / data-jpa / amqp / data-redis / security
- · 项目·分镜·任务·素材·人物·鉴权·API 聚合
- · 统一响应体
{code,message,data}与全局异常 - · 18 个接口 + Swagger UI(springdoc-openapi)
- · 全局 SNAKE_CASE 字段口径
🤖 AI 服务 · FastAPI
- · FastAPI + Python 3.11 + Pydantic v2
- · AI 导演 · 媒体编排 · 渲染计划
- · 五类 Provider 适配层:LLM / Image / TTS / Music / Video
- · 拆句引擎(含单元测试)· 情绪映射 · Prompt 组装 · 字幕引擎 · 渲染 Worker
- · 7 个接口,关键字段双向别名兼容(text/original_text 等)
- · 默认全部 mock,真实模型通过 AI_PROVIDER 环境变量切换
🗄️ 数据与部署
- · MySQL 8.4(utf8mb4,8 张业务表)
- · Redis 7(缓存 / 任务短期状态)
- · RabbitMQ 4(异步长任务)
- · MinIO(S3 兼容对象存储)+ FFmpeg(视频合成)
- · docker-compose 一键拉起基础设施
- · 存储可切换:
local(默认)或minio,一行配置切换
常见问题
关于 AI 文案暗调动画短视频系统(AIDarkVideo)的常见疑问与解答
AIDarkVideo 和通用 AI 视频生成工具有什么区别?
通用 AI 视频工具大多只做「文字配随机图」。AIDarkVideo 以「语义对应」为核心:先做文案理解与智能拆句(单句硬性 ≤20 汉字),再做主题/受众/语气/情绪分析、人物档案(Character Bible)与符合 Schema 的分镜设计,为每一句旁白生成能解释该句的具体画面,并通过情绪→镜头运动映射保证全片人物一致、场景连续、运镜与情绪匹配,最终自动合成 1080×1920 竖屏 MP4。
是否需要 GPU 与真实大模型?
不需要。系统默认全部走 mock 实现,无需 GPU 与真实大模型即可本地端到端跑通:MockLLMProvider 用规则引擎产出真实可用的分镜,MockImageProvider 生成真实 1080×1920 暗调 PNG,MockTTSProvider 生成音频与逐字时间轴。图片、配音、BGM 均提供 mock 实现 + 真实模型适配接口(LLM/Image/TTS/Music/Video 五类 Provider),接入真实模型时新增子类并通过 AI_PROVIDER 环境变量切换即可,代码内不硬编码任何 API Key。
部署环境要求是什么?
业务后端为 Spring Boot 3.5.3 + Java 17,AI 服务为 FastAPI + Python,前端为 Vue 3 + TypeScript + Vite 5。数据与基础设施为 MySQL 8.4 / Redis 7 / RabbitMQ 4 / MinIO / FFmpeg,提供 docker-compose 一键拉起。普通服务器即可运行,无需 GPU;渲染执行依赖 FFmpeg,未安装时系统仍可正常返回渲染计划(ffmpeg_available 为 false)。
能否只重生成单个镜头?
可以。分镜生成后可在创作工作台的时间线上单独编辑某一镜头(旁白/情绪/场景/动作/构图/灯光/镜头/时长/正负 Prompt),并通过 POST /api/shots/{id}/image 与 POST /api/shots/{id}/voice 单独重生成该镜头的图片或配音,无需整片重跑。
部署方案与价格
私有化部署,数据不出企业;默认 mock 本地可跑,真实模型按需接入
标准部署版
适合个人创作者与中小团队快速上线短视频量产
- ✔ 三端完整部署(Vue3 工作台 + Spring Boot 后端 + FastAPI AI 服务)
- ✔ 12 步全流程自动化:拆句 / 分镜 / 图片 / 配音 / 字幕 / BGM / MP4 合成
- ✔ 后端 18 + AI 服务 7 共 25 个接口全量开放
- ✔ docker-compose 基础设施一键拉起(MySQL/Redis/RabbitMQ/MinIO)
- ✔ 默认 mock 本地可跑 + 部署指导与 1 年免费 Bug 修复
含源码私有化版
适合需要二次开发、接自有模型与深度定制的企业
- ✔ 含标准部署版全部内容
- ✔ 三端全部源码交付(backend-java / ai-service-python / frontend-vue)
- ✔ 五类 Provider(LLM/Image/TTS/Music/Video)真实模型接入改造指导
- ✔ 数据库 schema.sql、分镜 JSON Schema、Prompt 定稿与渲染流水线文档交付
- ✔ 部署文档 + 代码讲解 + 1 年技术支持
以上均为私有化部署一次性报价;SaaS 订阅、模型定制与 GPU 算力环境另议。