news 2026/8/19 9:15:21

从 0 开始做一个 AI 漫剧平台:技术、踩坑和成长复盘

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从 0 开始做一个 AI 漫剧平台:技术、踩坑和成长复盘

> 这篇文章是我对「浮光造梦局 Dreamweaver Studio」的一次阶段性总结。它还不是一个完美项目,但它让我真实经历了一次从想法、原型、前后端、AI 接入、视频导出到工程整理的完整过程。

一、为什么想做这个项目

一开始我只是想做一个比较有意思的 AI 应用:用户输入一个故事创意,系统自动帮他生成剧本、分镜、画面、视频、配音和字幕,最后导出一条 1 到 3 分钟的漫剧短片。

刚开始想得很简单,好像只要有页面、有接口、有数据库,再接几个大模型 API,就能做出来。

真正做下来才发现,这不是一个简单的“调用 AI 生成文本”的项目,而是一条很长的生产流水线。每一步都要把上一阶段的数据接住,再传给下一阶段。只要中间某个环节的数据乱了,后面就会跟着乱。

这也是我在这个项目里学到的第一件事:AI 应用真正难的地方,不只是提示词,而是如何把不稳定的 AI 输出接进稳定的工程流程。

二、这个项目到底在做什么

简单说,我希望用户只需要输入一个创意,系统就能一步步帮他生成:


创意输入 ->Story Plan -> 剧本生成 ->Production Context -> 分镜拆解
-> 画面生成 -> 视频片段 -> 配音字幕 -> 时间线合成 -> FFmpeg导出 MP4

这里有几个词可以先用大白话解释一下:

  • Story Plan:故事策划稿,先把人物、场景、剧情大致定好。
  • Production Context:剧组设定本,后面的分镜、画面、配音都从这里取统一设定。
  • 分镜:把剧本拆成一个个镜头,比如谁出现、在哪个场景、镜头怎么拍。
  • 时间线:类似剪辑软件里的轨道,把视频、配音、字幕、BGM 按顺序排好。
  • FFmpeg:命令行里的视频剪辑合成工具,负责最后把素材合成 MP4。

三、我用了哪些技术

前端我用了 Vue 3、Vite、TypeScript、Element Plus、Pinia 和 Tailwind CSS。

Vue 3 可以理解成负责搭页面的“积木系统”;Vite 是前端开发启动器,优点是启动快、热更新快;TypeScript 是给 JavaScript 加一层类型说明,减少低级错误;Element Plus 提供现成的按钮、表单、弹窗、表格;Pinia 是前端状态仓库,用来保存登录状态、项目状态和编辑器状态。

后端我用了 FastAPI、SQLAlchemy、MySQL 和 Redis。

FastAPI 是 Python 里的后端接口框架,适合快速写 API;SQLAlchemy 可以理解成代码和数据库之间的翻译层;MySQL 是项目的正式账本,用户、项目、剧本、分镜、素材都存在这里;Redis 像一个高速临时记事本,适合做验证码频控、缓存和后续任务队列。

AI 和媒体处理方面,项目接入了 DeepSeek、豆包、智谱、Kimi 等文本模型,也接入了图片、视频和 TTS 配音相关能力。最后通过 FFmpeg 做成片合成和导出。

四、从原型到真实链路

项目早期更像一个前端原型,很多页面靠 mock 数据撑起来。

mock 数据可以理解成“假数据”。它很适合早期快速画页面,但如果长期依赖 mock,后面接真实接口的时候就会很痛苦。因为真实系统会有登录状态、接口失败、数据库保存、刷新恢复、权限校验、任务等待等问题。

我在项目里就经历过这个过程:页面看起来都能点,但真正接上登录、项目、AI 任务以后,问题才集中暴露出来。

比如未登录用户能不能进入创作页?刷新页面后当前项目还能不能恢复?AI 生成失败后任务状态怎么显示?剧本生成完成后,分镜页面应该从哪里读取数据?

这些问题都不是单个页面能解决的,而是需要前端、后端、数据库和状态管理一起配合。

五、几个最值得沉淀的经验

1. 不要让 mock 陪你走太久

mock 能帮你快速搭原型,但核心链路一定要尽早换成真实接口。真实接口会逼你面对登录、权限、错误处理、数据持久化和状态恢复。越晚接入,返工越重。

2. 长任务要有任务状态

AI 生成小说、分镜、图片、视频、配音、导出,这些都不是普通接口。它们可能要等很久,也可能失败。

所以我做了 AI 任务表。可以把它理解成“任务登记簿”:每次生成任务都会有一个 taskId,系统记录它是排队中、运行中、成功、失败还是取消。

目前项目里使用 FastAPI BackgroundTasks 做轻量后台任务。它适合开发和演示,但还不够生产级。后续应该升级成 Celery、RQ 或 Redis Streams 这类更可靠的任务队列。

任务队列可以理解成“排队叫号系统”:用户提交任务后不用一直等,后台按顺序处理,前端只需要查进度。

3. 稳定 ID 比名字可靠

早期很容易用角色名、场景名去串数据,比如“女主”“咖啡馆”。但项目复杂后会遇到改名、重名、歧义等问题。

后来我引入了 Production Context,让角色、场景、剧情节拍都有稳定的 key。这样后面的分镜、画面、配音不用靠猜,而是从同一份“设定本”里取数据。

这件事给我的启发很大:名字是给人看的,稳定 ID 才是给系统用的。

4. 文档是长期项目的地图

这个项目周期比较长,功能多,返工也多。中间如果没有文档,很容易忘记某个设计为什么这么做,也很难判断现在到底完成了什么。

后来我把文档整理成产品、设计、功能、历史、笔记几个目录,并维护了一份“当前实现状态”作为总入口。

这让我感受到:文档不是事后补作业,而是项目地图。

六、踩过的坑

第一个坑是 mock 数据。早期页面推进很快,但真实后端接入后,登录状态、路由守卫、项目恢复、接口错误都需要重新处理。

第二个坑是短信服务。普通短信服务往往涉及企业资质,个人开发者并不一定能顺利接入。最后项目里增加了开发模式和频控逻辑,先保证本地开发和演示流程能跑。

第三个坑是密钥安全。.env里可以放真实密钥,但.env.example不能放。日志、提交历史、示例配置都要检查,否则很容易把 AccessKey 暴露出去。

第四个坑是数据库迁移。现在项目还没有正式引入 Alembic。Alembic 可以理解成数据库表结构的版本管理工具。没有它,表结构一多,后续修改和回滚都会很麻烦。

第五个坑是 AI 输出不稳定。大模型不是传统函数,同样的输入不一定每次都返回完全一样的结构。所以后端必须做 JSON 约束、结果校验、失败重试和质量门禁。

质量门禁可以理解成“出厂检查”:AI 生成的内容不是直接进入下一步,而是先检查有没有缺字段、乱引用、占位文本或明显错误。

七、项目现在还不完美

我不想把这篇文章写成“项目已经大功告成”。

事实上,它还有很多问题。支付订阅、积分额度、作品社区、团队协作、内容安全检测还没有真正落地。AI 任务现在也还不是生产级任务队列,服务重启时后台任务存在丢失风险。数据库迁移、密钥扫描、监控告警、水印策略、多画幅导出,也都需要继续补。

但我觉得这正是这个项目的价值。它不是一个包装得很完美的展示品,而是一个真实项目在成长过程中的阶段性切片。

八、下一阶段准备怎么做

后续我会优先做几件事:

  1. 引入 Alembic,把数据库结构变更规范起来。
  2. 把 BackgroundTasks 升级成 Celery 或 RQ,让 AI 生成和视频导出任务更可靠。
  3. 补内容安全检测,尤其是文本、图片、视频导出前的审核。
  4. 继续完善积分、订阅、作品社区这些产品闭环。
  5. 整理文档、交付包和启动脚本,让别人能更容易理解和运行项目。

九、总结

做这个项目之前,我对“完整项目”的理解比较简单:页面能打开,接口能调用,数据库能存数据,就差不多了。

做完这个阶段后,我的理解变了。

一个完整项目不只是页面和接口,还包括数据流、状态恢复、权限控制、任务状态、错误处理、文档维护、安全意识和后续演进能力。

Vue、FastAPI、MySQL、Redis、AI 模型和 FFmpeg 这些技术本身并不神秘。真正重要的是,我通过这个项目理解了它们各自解决什么问题,以及哪些临时方案会在后面变成返工来源。

这个项目还不完美,但它是我从零开始认真拉通的一条完整链路。

这次复盘不是终点,更像是一个阶段性存档。后面我会继续把它往更工程化、更稳定、更接近真实产品的方向推进。
```

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 9:15:07

EmbodiedLGR:轻量级图表示与检索在机器人语义-空间记忆中的应用

1. 项目缘起:当机器人需要“记住”世界时,我们面临什么?让一个机器人记住它去过哪里、见过什么,并且能根据新的指令快速找到相关的位置或物体,听起来像是科幻电影里的标配。但在真实的机器人研发中,这恰恰是…

作者头像 李华
网站建设 2026/8/19 9:14:34

HC-SR04超声波传感器:从原理到实战,提升测距精度与稳定性

1. 从“盲人摸象”到“精准测距”:HC-SR04超声波传感器的核心价值 如果你玩过Arduino或者树莓派,大概率听说过HC-SR04这个模块。它可能是电子爱好者入门传感器世界时,接触到的第一个“非接触式”测量工具。一个黑色的小方块,前面有…

作者头像 李华
网站建设 2026/8/19 9:12:18

逆强化学习:从智能体行为反推其内在偏好与奖励函数

1. 引言:当智能体开始“学习”时,我们如何学习它?在人工智能和机器人学的世界里,我们常常训练一个“学习智能体”去完成特定任务。无论是让机械臂抓取物体,还是让虚拟角色在游戏中通关,核心都是我们为智能体…

作者头像 李华
网站建设 2026/8/19 9:11:44

拼多多地址核验「三件套」AI 生成器:核验图片 + 经营场所视频 + 商铺合同,一键全出

拼多多商家在开店、报白、地址核验等环节,常常需要一套「经营场所素材」:门头照、门牌号特写、临街环境照,外加一段经营场所视频和一份商铺承包合同。传统做法是找摄影师实拍、找人写合同,耗时又费钱,很多商家因此卡在核验环节迟迟无法通过。 今天分享一个我自己开发并日…

作者头像 李华
网站建设 2026/8/19 9:07:13

脱离Java 思维学 Go:go mod、切片、nil map、defer 那些容易忽略的问题

这周我额外学了一门 Go,把它当作后端岗的加分技能。Java 和 Go 看着都是写业务逻辑的语言,真上手才发现差别大得离谱:没有 class、没有 public/private 关键字、循环只剩一个 for。这篇是我第一周的学习复盘,把从环境到写出第一个…

作者头像 李华
网站建设 2026/8/19 9:03:59

树莓派GPIO转PMOD接口板设计:硬件原理、PCB布局与通信协议实战

1. 项目概述:为什么需要一块Raspberry Pi PMOD接口板? 如果你玩过树莓派,也接触过FPGA开发,那你大概率会对这两个生态的扩展接口感到头疼。树莓派引出了40个GPIO,功能强大但引脚定义灵活,新手容易接错线&am…

作者头像 李华