Indigo Nebula AI — 漫剧一键生成平台开发记录
技术栈 FastAPI Vue3 Redis MySQL Docker Compose。 开发周期2026 年暑期项目实训。一、项目概述Indigo Nebula AI 是一个面向短视频创作者的AI 漫剧制作平台目标是把灵感→小说→角色→分镜→图片→视频→配音→成片这七步流程全部用一个大模型工作流串起来实现一句话生成短视频。1.1 业务背景传统短视频生产里编剧、分镜、美术、剪辑、配音往往需要多人协作而这个项目试图让个人创作者只输入一段故事灵感或主题系统就能自动生成小说大纲与章节从小说中抽取角色把小说拆成分镜脚本根据分镜生成图片把图片生成视频片段给视频配上 AI 语音最终合成 MP4 成片。1.2 核心体验全流程覆盖7 步工作流在一个平台闭环完成可编辑可干预每一环节的 AI 产出都能人工修改、重生成、上下文联调模型可替换用户可在后台配置自己的大模型 API Key智谱、阿里、OpenAI 兼容等。二、技术选型2.1 后端技术用途说明FastAPIWeb 框架异步接口、自动 OpenAPI 文档MySQL主数据库用户、作品、角色、分镜、历史记录等Redis队列 缓存小说生成队列、任务进度SQLAlchemy裸 SQL 连接池数据访问用 pymysql DBUtils 做连接池python-jose / passlibJWT 密码加密用户鉴权python-multipart文件上传素材上传imageio-ffmpeg视频合成后端自带 ffmpeg 二进制无需系统安装edge-ttsAI 配音微软 Edge 神经语音免费可用2.2 前端技术用途Vue 3 Vite单页应用TypeScript类型安全Pinia状态管理Tailwind CSS 3.4原子化样式Sass全局主题变量Material Symbols图标系统2.3 部署技术用途Docker容器化Docker Compose四服务编排MySQL / Redis / Backend / FrontendNginx前端静态服务 反代/api、/static三、系统架构3.1 后端模块划分app/api路由层按业务模块拆分app/services业务逻辑层app/repositories数据访问层裸 SQLapp/providers外部 AI 服务抽象文本生成、文生图、视频、TTSapp/workers异步任务工作线程小说生成队列、导出守护进程。3.2 前端目录结构src/views页面src/components组件布局 UI 业务src/storesPinia 状态src/features按业务域拆分的状态与逻辑。四、核心功能实现4.1 小说生成步骤 1早期前端写死走了本地 mock生成的章节内容全是水稿同一段话重复 N 次。后来改成真实调用后端POST /api/novel/create后端用 Redis 队列排队worker 线程逐章调用智谱 GLM-4-Flash生成真实小说内容。关键修改点前端stores/novel.ts新增真实生成与轮询进度后端NovelCreateRequest的枚举与前端 6 个风格选项对齐prompt 中约束标题不再带第 X 章前缀避免章节名重复。4.2 角色管理步骤 2用智谱 GLM-4-Flash 从小说正文中抽取角色名、外貌、性格、声线等字段。抽取后人工可编辑保存到角色库。4.3 分镜设计步骤 3把小说章节按场景拆成若干 shot镜头。每个 shot 包含场景描述、台词、运镜、画面描述、时长。支持批量出图、批量出视频。4.4 图片生成步骤 4默认走阿里通义千问 qwen-image-2.0-pro候选智谱 CogView-3。根据 shot 的画面描述生成对应图片并回写到 shot 上。4.5 视频生成步骤 5默认走智谱 CogVideoX-Flash免费通道。把图片 prompt 送进视频模型生成短视频片段。这个环节是性能瓶颈单镜生成可能耗时 30s ~ 180s早期是同步 HTTP 阻塞后续已识别为需异步队列改造。4.6 配音剪辑步骤 6用edge-tts把台词转成 MP3按 shot 顺序拼接音频再与视频片段对齐合成。4.7 预览导出步骤 7用FFmpeg把音频、视频片段、转场合成为最终 MP4存放在/app/static/exports通过 Nginx/static路径对外访问。五、部署方案Docker Compose 全栈为了把项目搬到腾讯云服务器2C2G / 40G SSD / Ubuntu 24.04 / Docker 27.5.1我编写了一整套 Docker Compose 部署配置。5.1 生成的部署文件文件说明docker-compose.yml/compose.yaml四服务编排MySQL / Redis / backend / frontendbackend/Dockerfilepython:3.12-slim非 root 用户阿里云 PyPI 镜像front-end/Dockerfilenode:22-alpine 多阶段构建front-end/nginx.confnginx-main.confNginx 反代/api、/staticSPA 回退mysql-init/01-create-databases.sql自动创建ai_studio库.env.example部署变量模板docs/Docker Compose 部署教程.md完整操作教程5.2 资源限制服务器只有 2GB 内存Compose 里对每个服务做了mem_limit和cpus限制并加了 Redis 内存上限。2GB 机器上建议额外创建 2GB Swap否则同时构建前后端会 OOM。5.3 构建顺序同时构建前后端容易把内存吃满教程建议5.4 安全与凭证.env已加入.gitignore用户自管 API Key 用 Fernet 加密落库MySQL 端口只绑127.0.0.1公网只暴露 80/443。六、前端 iOS 风格重构最近一轮把前端从 Material Design 3 全面切换为iOS 原生设计语言但功能与页面结构完全不变。6.1 设计 Token 替换没有改 Tailwind 类的名字否则全站几十处视图要重写而是把 token 的值全部替换成 iOS 系统值主色#007AFFsystemBlue背景#F2F2F7systemGroupedBackground卡片#FFFFFF 圆角 16px / 20px字体-apple-system/SF Pro Text/Display阴影iOS 三级轻阴影毛玻璃backdrop-filter: blur(20px)bg-white/706.2 布局改造侧栏 → 底部 Tab Bar毛玻璃、图标 文字、选中 systemBlue、底部安全区顶栏 → iOS 大标题导航栏34px 大标题 滚动收缩为 17px inline卡片 → 分组列表/圆角卡片更轻量、留白更大。6.3 组件层改造了 5 个基础组件并新增 5 个 iOS 组件已有组件改造新增 iOS 组件BaseButtonGroupedListBaseCardListRowBaseModalIosSwitchBaseEmptyStateIosNavBarBaseSpinnerSegmentedControlPullToRefresh6.4 下拉刷新Pull-to-Refresh针对素材资源库视图接入了 iOS 风格下拉刷新阻尼 0.5、阈值 64px、顶部下拉触发、松手回弹。该组件为通用组件其它列表页直接包裹即可复用。七、遇到的问题与解决方案7.1 前端生成的是水稿内容重复现象小说正文生成把同一段话重复 N 遍。根因前端stores/novel.ts写死走了本地 mock且调用的后端接口不存在404 后回退 mock。解决前端改为真实调用POST /api/novel/create并轮询进度后端补齐枚举对齐与 prompt 约束。7.2 requirements.txt 依赖缺失现象本地能跑但 Docker 容器启动后报ModuleNotFoundError。根因原requirements.txt只列了 9 个包缺python-dotenv、cryptographyFernet 加密、DBUtils连接池、pydantic、edge-tts、pillow。解决补全依赖容器构建与运行全部通过。7.3 vite 8 / rolldown 实验版的 SFC 解析 bug现象本地npm run build报错main.css:114:16等但 CSS 和 SFC 结构完全合法。根因项目原用vite ^8rolldown 实验版解析含style的 Vue SFC 时会错乱地把 script 内容当 CSS 解析。解决把package.json中的 vite 降级到稳定版^5.4.10配套vitejs/plugin-vue ^5、vue-tsc ^2、typescript ^5.6容器内全新安装后构建正常。7.4 容器内权限问题现象后端容器用非 root 用户启动后应用无法创建/app/runtime目录。根因Dockerfile中/app目录仍属 root非 root 用户无写权限。解决Dockerfile 里chown -R app:app /app确保运行时目录、静态目录、缓存目录均可写。7.5 导出 URL 与静态资源路径现象配音/成片文件能生成但前端播放时 URL 404。根因后端用EXPORT_PUBLIC_BASE_URL拼接成片 URL需要与 Nginx 的/static/反代路径一致。解决.env中设EXPORT_PUBLIC_BASE_URLhttp://114.132.239.20Nginx 把/static反代到后端后端静态目录挂持久卷。八、项目现状与下一步8.1 已就绪✅ 小说、角色、分镜、图片、视频、配音、导出 7 步主链路跑通✅ 后端 Docker 化 依赖补全✅ 前端 iOS 设计语言全面替换 下拉刷新组件✅ Docker Compose 全栈部署配置与教程8.2 仍需优化视频生成异步化当前单镜出视频仍是同步 HTTP需改成任务队列 持久化作业表解决超时、并发、断点续跑。续写 / 单章重生成后端暂无对应接口仍走前端 mock。图片出图参数尺寸、数量、风格强度等 UI 已画但后端未真正读取。HTTPS 域名目前用公网 IP后续可配 Nginx SSL 证书。九、总结这个项目让我完整走了一次AI 产品从业务设计到部署上线的链路。最深的体会是AI 项目难的不是调模型而是把模型的不确定性封装成稳定的工程流程。小说生成、视频生成、TTS、FFmpeg 合成每一个环节都可能因为 API 超时、格式不兼容、资源不足而卡住真正要做的是队列、重试、状态机、资源隔离。前端方面不改类名、只换 token 值是我做的最正确的设计决策它让 iOS 重构在几天内覆盖全站而不是逐页重写。这也说明好的设计系统Design System是重构的前提。如果你也在做类似的 AI 内容生成平台欢迎在评论区交流模型选型、队列设计、前端组件化、Docker 部署都可以聊。

相关新闻

孩子指甲总长白点要不要考虑给他补锌?2026年8款在园娃横评榜单

孩子指甲总长白点要不要考虑给他补锌?2026年8款在园娃横评榜单

一、指甲上的白点,到底是缺锌还是吓自己 前阵子给娃剪指甲,发现他好几个指甲盖上有小白点,心里咯噔一下——是不是缺锌?群里一问,十个人八个都说"补点锌吧"。但我查了下才发现,指甲白点成因挺杂的…

2026/8/16 5:51:39 阅读更多 →
CSRF攻击原理与防御实战指南

CSRF攻击原理与防御实战指南

1. CSRF攻击的本质与运作机制跨站请求伪造(CSRF)就像有人偷偷拿着你的家门钥匙。假设你在银行网站保持登录状态时,访问了恶意网站,这个网站可以悄悄用你的身份发起转账请求。因为浏览器会自动带上cookie等凭证,服务器无…

2026/8/16 5:50:39 阅读更多 →
机器学习中的范数:从L1、L2到L2,1,理解正则化与稀疏性的核心原理

机器学习中的范数:从L1、L2到L2,1,理解正则化与稀疏性的核心原理

1. 从“距离”到“规则”:范数到底是什么?刚入行做机器学习或者优化相关项目时,你肯定被各种“范数”绕晕过。模型损失函数里加个L1、L2正则项,论文里动不动就提矩阵的F范数、核范数,还有像L2,1这种看起来像“混血”的…

2026/8/16 5:50:39 阅读更多 →

最新新闻

临汾建房场景怎么排查

临汾建房场景怎么排查

本文的核心主题是“建房场景:适用边界、风险识别与替代方案,说明企业服务能力、适用场景、使用条件和已知边界(场景故事与执行路径)”,下文只围绕该问题的事实背景、实施方法、验证标准和适用边界展开。现场勘查、设计…

2026/8/16 7:27:15 阅读更多 →
基于ssm的网上蛋糕商城系统的设计与实现(源码+讲解视频+LW)

基于ssm的网上蛋糕商城系统的设计与实现(源码+讲解视频+LW)

联系博主 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 …

2026/8/16 7:27:15 阅读更多 →
RTOS线程切换和线程栈

RTOS线程切换和线程栈

以CortexM RTThread为例 线程栈初始化 线程创建函数 一个线程最重要的就是线程栈,函数调用、局部变量分配都需要用到线程栈。在线程创建的时候,线程栈的初始化尤为重要。 rt_err_t rt_thread_init(struct rt_thread *thread,const char *name,void…

2026/8/16 7:27:15 阅读更多 →
Windows CMD中Python多版本切换与管理实战指南

Windows CMD中Python多版本切换与管理实战指南

1. 项目概述:为什么我们需要在Windows CMD中切换Python版本?如果你在Windows上用Python做过稍微复杂一点的项目,或者尝试过运行不同来源的代码,大概率遇到过版本冲突的烦恼。比如,你刚用pip install装好一个包&#xf…

2026/8/16 7:27:15 阅读更多 →
Grok Bot插件生态解析:从核心架构到实战开发与集成

Grok Bot插件生态解析:从核心架构到实战开发与集成

在AI助手竞争日益激烈的今天,功能单一、场景受限的聊天机器人已难以满足开发者和用户的深度需求。Grok Bot 近期宣布支持超过150款插件,这一重大更新标志着其从一个单纯的对话模型,向一个开放、可扩展的AI应用平台迈出了关键一步。对于开发者…

2026/8/16 7:27:15 阅读更多 →
双键盘远程联机方案:用Parsec与AntiMicroX实现异地同屏游戏

双键盘远程联机方案:用Parsec与AntiMicroX实现异地同屏游戏

1. 项目概述:双键盘远程联机的核心价值与挑战想和朋友一起玩本地双人游戏,但一个在城东,一个在城西,怎么办?或者,你有一台性能强劲的台式机,但朋友只有一台轻薄本,如何一起畅玩那些不…

2026/8/16 7:26:15 阅读更多 →

日新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →