本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
我的帖子已经打上 开源推广 标签: 是
我的开源项目完整开源,无未开源部分: 是
我的开源项目已链接认可 LINUX DO 社区: 是
我帖子内的项目介绍,AI 生成、润色内容部分已截图发出: 是
以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI 生成、润色内容已使用截图方式发出
更新说明:本帖原为 VOZEB PRO v0.0.1 的项目介绍,现已按照 v0.0.6 的实际功能、流程图、部署方式和界面截图完整更新。旧版独立图片/视频工作台、五阶段短剧导航、模型能力检测和旧部署变量不再代表当前版本。
面向统一创作 Agent、Canvas 和短剧生产的开源 AI 创作平台。文字问答、图片、视频和音频创作已经统一进入 /create,并与 Canvas、短剧项目、素材库、作品发布和商业运营后台共用服务端数据与生成任务链路。
项目地址:
GitHub - csyqlz/VOZEB-PRO: VOZEB PRO:从创作简报、视觉方向、物料规划到一致性生成与自动视觉复盘的 AI 创作工作台。
VOZEB PRO:从创作简报、视觉方向、物料规划到一致性生成与自动视觉复盘的 AI 创作工作台。
更新重点
首页 :重做公开首页首屏、导航、输入体验和作品展示;作品区域读取作品广场中的真实图片与视频,并适配手机端和浅深主题。
统一创作 :统一 /create 的 Agent、图片、视频和音频入口,保留附件、Skill、智能规划、逻辑模型和生成参数,完善素材引用、历史恢复和失败重试。
Canvas :升级自研画布、节点编辑、连线、框选、项目保存与 Agent 协作,补齐素材引用、视频首尾帧和服务端持久化。
短剧 :将单集生产收敛为剧本、内容审核、分镜和镜头生成四个阶段,角色、场景、道具和线索统一进入项目资产管理。
生成任务 :完善文本、图片、视频和音频任务状态、上游协议和异常处理,支持多结果,避免重复生成和重复扣费。
商业后台 :优化模型渠道、生成运维、成本保护、数据维护、支付、经营看板、权限和移动端布局。
安全 :新增管理员 TOTP MFA、注册协议确认、请求级 CSP nonce 与脱敏审计,强化账户、媒体、备份和部署安全边界。
性能 :优化 Worker 调度、服务端分页、PostgreSQL 定向查询和长会话加载,减少后台和创作页面的无效请求。
项目功能流程
所有流程图默认折叠,点击对应标题后即可查看,不会一次展示全部内容。
01|公开页面与登录注册流程
flowchart LR
HOME["首页 /<br/>产品介绍、功能入口、公告"] --> ACTION{"访客选择"}
ACTION --> ANN["公告中心 /announcements<br/>查看置顶公告和平台通知"]
ACTION --> GALLERY["作品广场 /gallery<br/>浏览、检索和查看公开作品"]
ACTION --> LOGIN["登录 /login<br/>账号密码校验"]
ACTION --> REGISTER["注册 /register<br/>注册策略与可选邮箱验证码"]
ACTION --> FORGOT["找回密码 /forgot-password<br/>邮箱验证码与密码重置"]
ACTION --> PRIVACY["隐私政策 /privacy"]
ACTION --> TERMS["服务条款 /terms"]
GALLERY --> SHARE["作品详情 /share/:slug<br/>预览、点赞、关注和举报"]
SHARE --> CREATOR["作者主页 /u/:username<br/>查看公开作品"]
REGISTER --> LOGIN
FORGOT --> LOGIN
LOGIN --> SESSION["创建登录 Session"]
SESSION --> ROLE{"账号角色"}
ROLE -->|普通用户| USER["用户工作区"]
ROLE -->|管理员| ADMIN["商业 SaaS 管理后台"]
INSTALL["安装向导 /install"] --> CHECK["检查运行环境和 PostgreSQL"]
CHECK --> SCHEMA["初始化数据库表结构"]
SCHEMA --> FIRST_ADMIN["创建首个管理员"]
FIRST_ADMIN --> ADMIN
02|用户工作区页面导航
flowchart TB
USER["用户工作区<br/>加载用户、积分、模型和站点配置"]
USER --> CREATE["统一创作 Agent /create<br/>文本、图片、视频、音频与服务端会话"]
USER --> CANVAS["Canvas 项目 /canvas<br/>创建、搜索、重命名和删除"]
CANVAS --> CANVAS_ID["Canvas 编辑器 /canvas/:id"]
USER --> DRAMA["短剧项目 /drama<br/>项目和生产进度管理"]
DRAMA --> DRAMA_ID["短剧编辑器 /drama/:id"]
USER --> PROMPTS["公共提示词 /prompts"]
USER --> MY_PROMPTS["我的提示词 /my-prompts"]
USER --> ASSETS["我的素材 /assets"]
USER --> HELP["帮助中心 /help"]
USER --> PROFILE["个人中心 /profile"]
USER --> BILLING["充值中心 /billing"]
PROMPTS --> CREATE
MY_PROMPTS --> CREATE
ASSETS --> CREATE
ASSETS --> CANVAS_ID
ASSETS --> DRAMA_ID
03|统一创作 Agent 生成流程
flowchart TB
START["用户输入文字或参考素材"] --> AGENT["统一创作 Agent /create"]
AGENT --> CONTROL["选择 Skill、智能规划或逻辑模型"]
CONTROL --> PARAM["设置图片、视频或音频生成偏好"]
PARAM --> CHECK["能力、素材、参数与积分校验"]
CHECK --> ROUTER["逻辑模型路由"]
ROUTER --> CREATE_TASK["创建幂等生成任务"]
CREATE_TASK --> PROVIDER["调用文本、图片、视频或音频上游"]
PROVIDER --> POLL["查询同一个上游任务"]
POLL --> RESULT{"任务结果"}
RESULT -->|成功| NORMALIZE["下载并规范化媒体"]
RESULT -->|失败| FAILED["保留失败记录并退款"]
FAILED --> RETRY["用户主动点击重试"]
RETRY --> CREATE_TASK
NORMALIZE --> SAVE["登记媒体归属和稳定地址"]
SAVE --> MESSAGE["返回当前创作会话"]
MESSAGE --> OPERATE["预览、下载、保存素材或继续创作"]
04|Canvas 创作流程
flowchart LR
LIST["Canvas 项目 /canvas"] --> CREATE["创建画布"]
LIST --> SEARCH["搜索项目"]
LIST --> RENAME["重命名项目"]
LIST --> DELETE["删除项目"]
LIST --> OPEN["打开项目"]
CREATE --> EDITOR["Canvas 编辑器 /canvas/:id"]
OPEN --> EDITOR
EDITOR --> NODE{"添加节点"}
NODE --> TEXT["文本节点"]
NODE --> IMAGE["图片节点"]
NODE --> VIDEO["视频节点"]
NODE --> AUDIO["音频节点"]
NODE --> GENERATE["生成节点"]
TEXT --> CONNECT["拖拽、缩放和节点连线"]
IMAGE --> CONNECT
VIDEO --> CONNECT
AUDIO --> CONNECT
GENERATE --> CONNECT
CONNECT --> AGENT["启动 Canvas Agent Run"]
AGENT --> PLAN["分析节点和连接关系"]
PLAN --> TASK["创建图片、视频或音频子任务"]
TASK --> RESULT["结果写回对应节点"]
RESULT --> HISTORY["撤销、重做和历史记录"]
HISTORY --> SAVE["自动保存到服务器"]
SAVE --> EDITOR
05|短剧生产流程
flowchart LR
LIST["短剧项目 /drama"] --> CREATE["创建短剧项目"]
CREATE --> CONFIG["设置剧集数、画幅和镜头"]
CONFIG --> EDITOR["短剧编辑器 /drama/:id"]
EDITOR --> SCRIPT["第一阶段:生成或编辑剧本"]
SCRIPT --> REVIEW["第二阶段:内容审核和人工确认"]
REVIEW --> STORYBOARD["第三阶段:分镜和镜头设计"]
STORYBOARD --> SHOTS["第四阶段:生成镜头图片和视频"]
SHOTS --> AUDIO["生成配音、音效和背景音乐"]
AUDIO --> SUBTITLE["生成并校对字幕"]
SUBTITLE --> VERSION["保存剧本、分镜和媒体版本"]
VERSION --> COMPOSE["使用 FFmpeg 合成成片"]
COMPOSE --> CHECK{"合成结果"}
CHECK -->|成功| EXPORT["预览并导出成片"]
CHECK -->|失败| FIX["定位失败镜头或音频"]
FIX --> SHOTS
06|提示词、素材、账户和支付流程
flowchart TB
PROMPTS["公共提示词 /prompts"] --> FIND["分类、标签和关键词检索"]
FIND --> USE["用于统一 Agent 创作"]
MY["我的提示词 /my-prompts"] --> MANAGE["创建、编辑、分类、标签和删除"]
MANAGE --> SAVE_ASSET["保存为文本素材"]
MANAGE --> USE
ASSETS["我的素材 /assets"] --> FILTER["按图片、视频、音频和文本筛选"]
FILTER --> PREVIEW["预览或下载"]
FILTER --> CONTINUE["发送到 Agent、Canvas 或短剧"]
FILTER --> DELETE["检查业务引用后删除"]
HELP["帮助中心 /help"] --> GUIDE["查看 Agent、图片、视频、Canvas、短剧和账户说明"]
PROFILE["个人中心 /profile"] --> INFO["修改资料和密码"]
PROFILE --> RIGHTS["查看积分、套餐、订单和消费记录"]
PROFILE --> EXPORT["导出个人数据"]
PROFILE --> CANCEL_ACCOUNT["提交账号注销申请"]
CANCEL_ACCOUNT --> ADMIN_REVIEW["管理员受理或拒绝"]
BILLING["充值中心 /billing"] --> PRODUCT["选择套餐或积分商品"]
PRODUCT --> ORDER["创建待支付订单"]
ORDER --> CHECKOUT["订单支付 /billing/checkout"]
CHECKOUT --> CHANNEL["选择可用支付渠道"]
CHANNEL --> PAY{"支付结果"}
PAY -->|成功| SUCCESS["支付成功 /billing/success"]
SUCCESS --> CONFIRM["确认支付回调和订单状态"]
CONFIRM --> GRANT["套餐或积分入账"]
GRANT --> REFRESH["刷新用户余额和订单记录"]
PAY -->|取消或失败| CANCEL["支付取消 /billing/cancel"]
CANCEL --> CHOICE{"订单处理"}
CHOICE -->|继续支付| CHECKOUT
CHOICE -->|放弃支付| CLOSE["关闭或保留待支付订单"]
07|商业 SaaS 后台经营和财务流程
flowchart TB
ADMIN["管理后台 /admin"] --> ANALYSIS["经营分析"]
ADMIN --> PRODUCT["商品运营"]
ADMIN --> FINANCE["财务管理"]
ANALYSIS --> OVERVIEW["经营看板<br/>用户、收入、积分负债、订单和生成指标"]
ANALYSIS --> USERS["用户运营<br/>创建用户、角色、状态、套餐和积分"]
ANALYSIS --> LOGS["调用记录<br/>用户、入口、模型、状态和失败原因"]
ANALYSIS --> GENERATION["生成运营<br/>任务查询、取消、失败记录和重试"]
PRODUCT --> PRODUCTS["套餐管理<br/>商品价格、权益、支付类型和上下架"]
PRODUCT --> ORDERS["订单管理<br/>查询、人工完成、关闭和退款"]
FINANCE --> POINTS["积分规则<br/>免费额度、模型单价和参数倍率"]
FINANCE --> PAYMENTS["支付渠道<br/>商户配置、回调地址和启停"]
FINANCE --> CDK["CDK 兑换<br/>批量生成、筛选、停用和兑换追踪"]
FINANCE --> WALLET["财务流水<br/>充值、扣费、退款和余额变化"]
BILLING_ADMIN["财务运营 /admin/billing"] --> ORDERS
BILLING_ADMIN --> PRODUCTS
BILLING_ADMIN --> PAYMENTS
PRODUCTS --> USER_BUY["用户选择商品"]
USER_BUY --> ORDERS
ORDERS --> PAYMENTS
PAYMENTS --> PAY_RESULT{"支付结果"}
PAY_RESULT -->|成功| WALLET
PAY_RESULT -->|失败| REFUND["关闭订单或执行退款"]
REFUND --> WALLET
POINTS --> GENERATION
GENERATION --> WALLET
08|后台模型、系统、存储和内容管理
flowchart TB
ADMIN["管理后台 /admin"] --> UPSTREAM["上游配置"]
ADMIN --> SYSTEM["系统管理"]
ADMIN --> STORAGE["存储与备份"]
ADMIN --> CONTENT["内容运营"]
UPSTREAM --> CHANNELS["模型渠道<br/>协议、Base URL、API Key 和模型目录"]
CHANNELS --> LOGICAL["同步逻辑模型、优先级和默认模型"]
LOGICAL --> VERIFY["在统一 Agent、Canvas 或短剧入口发起真实业务请求"]
UPSTREAM --> SKILLS["Agent Skills<br/>分类、触发规则、能力约束和启停"]
SYSTEM --> SITE["站点资料<br/>名称、Logo、SEO、首页内容和友情链接"]
SYSTEM --> SETTINGS["基础设置<br/>注册、SMTP、默认参数、并发和安全"]
SYSTEM --> DELETION["注销申请<br/>筛选、受理、拒绝和处理备注"]
SYSTEM --> UPDATES["版本更新<br/>当前版本、Release、日志和升级检查"]
STORAGE --> LOCAL["本地媒体<br/>分类、归属、期限和引用保护删除"]
STORAGE --> S3["外部存储<br/>S3 配置、连接检测、对象管理和迁移"]
STORAGE --> BACKUP["数据备份<br/>导入导出和完整备份边界"]
CONTENT --> ANNOUNCEMENT["公告管理<br/>创建、编辑、置顶、发布和下线"]
CONTENT --> PROMPT["提示词管理<br/>搜索、分类、标签和展示状态"]
SETUP["初始化配置 /admin/setup"] --> SITE
SETUP --> CHANNELS
SETUP --> SETTINGS
SETUP --> PRODUCTS["套餐商品"]
SETUP --> PAYMENTS["支付渠道"]
SETUP --> S3
SETUP --> BACKUP
ANNOUNCEMENT --> PUBLIC_ANN["用户公告中心"]
PROMPT --> PUBLIC_PROMPT["用户公共提示词库"]
LOGICAL --> GENERATION["用户生成任务"]
SKILLS --> GENERATION
09|全平台服务端数据流程
flowchart LR
PAGE["所有用户页和管理页"] --> CLIENT["前端 API Service"]
CLIENT --> ROUTE["Next.js Route Handler"]
ROUTE --> AUTH["Session、用户归属和角色鉴权"]
AUTH --> SERVICE["业务服务和任务编排"]
SERVICE --> REPO["Repository<br/>参数化查询和事务"]
REPO --> PG[("PostgreSQL 16")]
SERVICE --> ROUTER["逻辑模型路由"]
ROUTER --> PROVIDER["外部 AI 模型"]
PROVIDER --> TASK["幂等任务和状态轮询"]
TASK --> BILLING["积分扣费和套餐用量"]
BILLING --> PG
TASK -->|失败或取消| REFUND["幂等退款"]
REFUND --> PG
TASK --> MEDIA["媒体下载、规范化和登记"]
MEDIA --> SWITCH{"存储位置"}
SWITCH -->|本地| LOCAL["服务器数据目录"]
SWITCH -->|外部| S3["S3 兼容对象存储"]
MEDIA --> PG
PG --> RESPONSE["统一返回 code / data / msg"]
LOCAL --> RESPONSE
S3 --> RESPONSE
RESPONSE --> PAGE
用户创作端
统一创作 Agent
统一创作支持文字与图片、视频、音频参考素材,支持普通参考、视频首帧和首尾帧、Skill、智能规划、手动逻辑模型、比例、画质、清晰度、时长、数量和自定义像素。会话和生成记录保存在服务端,刷新或更换设备后可以继续恢复。
Canvas 编辑器
Canvas 支持文本、图片、视频、音频、生成配置、创作简报和品牌规范节点,并提供拖拽、连线、框选、多选、缩放、小地图、撤销重做和导入导出。Canvas Agent 可以读取当前画布和选区,规划多物料依赖并把结果写回节点。
短剧生产线
短剧模块按照剧本、内容审核、分镜和镜头生成四个单集阶段组织生产;角色、场景、道具和线索属于整个项目,通过独立的项目资产入口管理。模块还支持配音、字幕、版本快照、失败镜头重试、剪映草稿和 FFmpeg 合成。
作品广场
个人主页
展开素材与提示词截图
我的素材
公共提示词
商业化 SaaS 管理后台
管理员可以统一管理:
经营看板、用户运营、调用记录和生成运营
套餐商品、促销、优惠券、邀请奖励、积分和 CDK
订单、支付渠道、退款、对账和财务流水
模型渠道、协议中心、真实模型、逻辑模型和 Agent Skills
站点资料、注册、SMTP、管理员职责和 TOTP MFA
本地媒体、S3 兼容对象存储、对象迁移和业务备份
作品、公告、公共提示词和内容治理
经营看板
模型渠道管理
模型渠道页用于维护协议、Base URL、凭据、模型目录、真实模型和逻辑模型绑定。渠道启用后
生成运营
展开更多 SaaS 后台截图
商品与套餐
支付渠道
财务流水
Agent Skills
外部存储
技术栈
Next.js 16 App Router
React 19 + TypeScript
Ant Design 6 + Tailwind CSS
Zustand
Next.js Route Handler
PostgreSQL 16
S3 兼容对象存储
独立生成 Worker
Docker Compose
FFmpeg / FFprobe
模型密钥、支付密钥、数据库操作、业务规则、模型路由、计费和媒体权限全部在服务端处理。浏览器只保存页面瞬时状态和极少量偏好,不使用 localStorage、IndexedDB 或大 JSON 持久化业务列表与生成记录。
杂说
这个项目从最开始的 v0.0.1 一直做到现在,花的时间比我当初预想的多很多。中间也有过想停下来的时候,毕竟现在关注项目的人还不多,帖子热度也一直比较低,有时候确实会怀疑是不是自己做的方向太小众了。
不过这个项目我自己还在用,也还有很多想继续补的地方,所以暂时还不会停。