Low-code Front-end Design & Development Platform
Front-end development platform, with a visual builder and headless content modelling capabilities. Static website creation, and UI development tools.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证A simplified AIGC workbench for image, 3D, and video generation.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
AIGC Studio 是给设计师和美术同学使用的 AIGC 作品网站。使用者用 GitHub 登录(优先) 或 Google / Gmail 登录,选择图片、3D、视频入口,填写文字描述,然后在个人作品库查看云端生成的结果。 提交后,任务记录会先写进数据库,再交给部署同学选定的云端生成服务。使用者重新打开网站时会检查自己的任务;两条 Vercel Cron 每天分别做任务对账与删除队列清理。作品只有成功保存到 Cloudflare R2 后,才会出现在个人作品库。 1. 配置 GitHub 与 Google / Gmail 登录 登录由 Supabase Auth 统一处理。GitHub 是页面第一入口;Google / Gmail 是备用入口,二者没有自动切换关系。查看完整 README ↗
AIGC Studio 是给设计师和美术同学使用的 AIGC 作品网站。使用者用 GitHub 登录(优先) 或 Google / Gmail 登录,选择图片、3D、视频入口,填写文字描述,然后在个人作品库查看云端生成的结果。
术语说明:
- AIGC:用 AI 生成图片、3D 模型、视频等内容。
- prompt:给 AI 的文字描述,例如“赛博朋克风格的狐狸角色设定图”。
- 工作流:预设好的创作方法;使用者只选名称,不需要接触底层工具。
GitHub 登录(优先)/ Google-Gmail 登录
→ 图片 / 3D / 视频三入口
→ 选择预设工作流并填写 prompt
→ 云端服务器后台生成
→ 网站检查任务状态
→ 完成作品进入个人作品库
提交后,任务记录会先写进数据库,再交给部署同学选定的云端生成服务。使用者重新打开网站时会检查自己的任务;两条 Vercel Cron 每天分别做任务对账与删除队列清理。作品只有成功保存到 Cloudflare R2 后,才会出现在个人作品库。
| 角色 | 负责什么 | 不需要做什么 |
|---|---|---|
| 部署 / 运营同学 | 配置 Supabase 登录、Vercel、R2、生成服务与后台检查 | 不把任何密钥发给普通用户 |
| 美术 / 设计使用同学 | 登录、选择入口和工作流、填写 prompt、查看作品 | 不安装底层生成工具,不配置后台参数 |
浏览器
├─ GitHub / Google 登录
│ → Supabase Auth
│ → /api/auth/callback
└─ /portal 创作工作台
├─ 图片 → 部署者选定的图片服务
├─ 3D / 视频 → fal 或 Modal Bridge(部署者选)
├─ 任务状态 → Supabase
└─ 个人作品库 → Cloudflare R2
Vercel Cron
├─ 每天 03:30 /api/jobs/reconcile 检查未完成任务
└─ 每天 04:00 /api/assets/cleanup 清理删除队列
登录由 Supabase Auth 统一处理。GitHub 是页面第一入口;Google / Gmail 是备用入口,二者没有自动切换关系。
https://studio.example.com;https://你的域名/api/auth/callback。本地开发另加 http://localhost:3000/api/auth/callback。https://<你的 Supabase Project Ref>.supabase.co/auth/v1/callback。同一个人若分别用 GitHub 和 Google 登录,Supabase 默认会把它们视为两个账号、两个作品库。团队应统一优先使用 GitHub;Google / Gmail 只作为备用登录方法。
官方说明:GitHub 登录、Google 登录、回调地址。
生产环境在 Vercel Project → Settings → Environment Variables 配置。本地可运行 bash scripts/setup-env.sh 写入 .env.local;脚本不会替你写线上变量。真实密钥不能提交到 git、截图或对话记录。
| 变量 | 用途 |
|---|---|
NEXT_PUBLIC_SITE_URL | 稳定网站地址,例如 https://studio.example.com |
NEXT_PUBLIC_SUPABASE_URL | Supabase Project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase 登录所需的公开 anon key;不是 service role key |
SUPABASE_SERVICE_ROLE_KEY | 仅服务端访问任务与作品表的密钥 |
CRON_SECRET | 每天后台检查任务的专用口令 |
R2_ACCOUNT_ID / R2_ACCESS_KEY_ID / R2_SECRET_ACCESS_KEY / R2_BUCKET | Cloudflare R2 私有作品库 |
AIGC_IMAGE_PROVIDER | 图片服务开关:modal-bridge / modal / openrouter / fal / comfyui |
AIGC_VIDEO_PROVIDER / AIGC_MODEL3D_PROVIDER | 视频 / 3D 服务开关:fal(默认)或 modal-bridge |
MODAL_BRIDGE_ENDPOINT_BASE / MODAL_BRIDGE_API_KEY / BRIDGE_DELIVERY_TOKEN_SECRET | 选 modal-bridge 时填写(comfyui_modal_bridge 的 aigc-r2 交付) |
VERCEL_AUTOMATION_BYPASS_SECRET | 可选;生产域名开 Deployment Protection 时,让 Bridge 回调内部 endpoint |
MODAL_ENDPOINT_BASE / MODAL_KEY / MODAL_SECRET | 遗留 modal 图片服务时填写 |
OPENROUTER_API_KEY / OPENROUTER_IMAGE_MODEL | 图片服务选择 OpenRouter 时填写 |
FAL_KEY | 视频/3D 默认后端;图片服务选择 fal 时也使用 |
FAL_IMAGE_ENDPOINT | 图片服务选择 fal 时填写 endpoint 路径 |
COMFYUI_BASE_URL | 图片服务选择自建 ComfyUI 时填写服务地址 |
COMFY_ORG_API_KEY | 工作流含 ComfyUI 付费 API 节点时填写;只在服务端传给 ComfyUI(Bridge 侧对应 Modal Secret 的 COMFY_API_KEY_COMFY_ORG) |
AIGC_IMAGE_PROVIDER 是部署者的快速切换开关。当前推荐顺序是 OpenRouter → fal,但它不是自动备用:切换后要重新部署,并保留旧服务的配置直到旧任务全部结束。
新建数据库在 Supabase SQL Editor 依次执行:
supabase/migrations/0001_gallery_items.sql
supabase/migrations/0002_aigc_jobs_generations_assets.sql
supabase/migrations/0003_rename_legacy_user_columns.sql
supabase/migrations/0004_aigc_job_uploads.sql
supabase/migrations/0005_finalize_job_assets.sql
supabase/migrations/0006_harden_finalize_job_assets.sql
supabase/migrations/0007_pin_workflow_job_revision.sql
supabase/migrations/0008_require_workflow_job_snapshot.sql
supabase/migrations/0009_aigc_asset_deletion.sql
supabase/migrations/0010_asset_delete_operations.sql
当前流程使用 aigc_jobs、aigc_generations、aigc_assets 三张表,以 Supabase 登录用户的 user_id 做作品归属;0004 增加上传台账,0005-0006 增加并加固原子 finalize RPC,0007-0008 固定并强制 Job workflow snapshot,0009 增加原子作品 tombstone 与 fenced R2 删除队列,0010 增加仅运维可用的死信重驱动、不可变审计与聚合 backlog。已有旧版数据库不要重新执行历史 migration;先备份,只补执行未跑过的 migration,具体滚动顺序和上线门禁见 docs/HANDOFF.md。
Cloudflare R2 是正式作品库。生成服务返回的文件会先安全地存入 R2,再进入个人作品库。图片可选 Modal、OpenRouter、fal 或自建 ComfyUI;3D 与视频使用 fal。普通使用者不会看到、更不能选择这些服务。
NEXT_PUBLIC_SITE_URL、两项 Supabase key、R2 与 CRON_SECRET。0001→0010;旧库按 docs/HANDOFF.md 的滚动顺序升级。vercel.json 有两个适配 Vercel Hobby 的每日 Cron:03:30 /api/jobs/reconcile 与 04:00 /api/assets/cleanup。| 路由 | 说明 |
|---|---|
GET /api/auth/github/login | 开始 GitHub 登录 |
GET /api/auth/google/login | 开始 Google / Gmail 登录 |
GET /api/auth/callback | 完成 Supabase 登录并进入作品门户 |
POST /api/auth/logout | 退出登录 |
POST /api/generate/image / model3d / video | 提交生成任务 |
GET /api/jobs / GET /api/jobs/[id] | 读取当前用户自己的任务与状态 |
GET /api/assets/cleanup | Cron-only 清理用户删除后的 R2 资产队列,需要 CRON_SECRET |
GET /api/library | 读取当前用户自己的个人作品库 |
DELETE /api/library/[id] | owner-only 隐藏作品并把 R2 资产送入 fenced 删除队列 |
user_id 过滤。SUPABASE_SERVICE_ROLE_KEY、R2、生成服务与 CRON_SECRET 只在服务端使用。| 状态 | 含义 |
|---|---|
| 排队中 | 已提交,等待云端服务器处理 |
| 生成中 | 云端服务器正在生成 |
| 已完成 | 作品已保存到个人作品库 |
| 失败 | 保存截图、入口类型、prompt 和时间,交给部署 / 运营同学排查 |
使用同学不需要安装或打开任何底层工具,也不需要知道服务商、密钥或后台配置。
截图和验收材料统一放在:/workspace/documents/screenshot。