发布时间:2026/8/16 5:51:21
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/16 5:46:20

免费3D模型资源库深度评测:10大网站授权协议与实战指南

1. 项目概述:为什么我们需要免费的3D模型资源库?作为一名在数字内容创作领域摸爬滚打了十多年的老手,我深知一个高质量的3D模型对于项目效率意味着什么。无论是游戏开发、影视动画、建筑可视化,还是产品设计、3D打印,甚…

2026/8/16 6:41:23

光子精密闪测仪在具身机器人灵巧手齿轮尺寸检测质量管控中的应用

​一、齿轮精度对灵巧手性能的决定性影响灵巧手减速箱的齿轮传动精度直接决定了整手系统的力控精度、回差和寿命。一枚齿轮的齿距偏差超出公差,传动系统就会产生异响和抖动;一个齿形误差偏大,齿轮啮合不良、加速磨损,整机寿命大幅…

2026/8/16 6:41:23

Obsidian插件打造个人工作台:集成任务日历与笔记的高效管理方案

这次我们来看一个能让 Obsidian 从笔记软件变身“个人工作台”的插件。对于很多用户来说,Obsidian 的核心价值在于其强大的链接和知识管理能力,但日常工作中涉及的待办、日历、项目管理、快速启动等需求,往往需要切换到其他工具,导…

2026/8/16 6:41:23

Java中的强引用与弱引用

在 Java 中,强引用、弱引用属于 JVM 垃圾回收(GC)中的概念,用来描述一个对象被引用的强弱程度,决定 GC 是否可以回收它。1.强引用我们平时写的代码99%都是强引用,例如:User user new User();这…

2026/8/16 6:41:23

抢抓柔性光伏发展机遇,ETFE光伏膜重塑轻质光伏组件解决方案

随着新型光伏技术迭代提速,柔性光伏、钙钛矿光伏、BIPV 光伏建筑一体化赛道持续升温。传统刚性玻璃光伏组件长期存在重量大、不可弯曲、对建筑承重要求高、异形场景难以落地等先天局限,严重制约光伏应用边界拓展。市场迫切需要轻量化、可弯折、耐候稳定的…

2026/8/16 6:36:23

CAN错误

错误种类1、位检测->位错误 位检测范围一直到EOF结束 检测到总线位状态与自身送出的位不同 仲裁或者ACK位期间送出“隐性”位除外 2、填充检测->填充错误 发送节点进行位填充,位填充编码是发送5个连续相同的极性位后,自动插入一个极性相反的的位。…

2026/8/16 0:00:35

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

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

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/16 0:00:35

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

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

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/15 9:46:39

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/15 4:56:16

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/15 9:46:30

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…