No description
  • TypeScript 96.5%
  • HTML 3.3%
  • CSS 0.1%
  • JavaScript 0.1%
Find a file
2026-08-10 22:55:10 +08:00
.superpowers/brainstorm/1170693-1780491168 fix: 1:1 replicate image-provenance frequency analysis pipeline 2026-06-04 02:36:13 +08:00
data/uploads feat: move upload storage out of public/ and add image serving API 2026-05-01 17:29:08 +08:00
docs/superpowers feat: 1:1 replicate image-provenance empty state and file info card 2026-06-04 03:33:40 +08:00
prisma fix(inspiration): 修复灵感创作服装替换与构图保真 2026-08-04 00:53:25 +08:00
public test: add reproducers for 1K-only resolution, drag-drop upload, and prompt preservation 2026-05-21 18:06:34 +08:00
scripts feat: 用户认证系统 + Live 图生成 + 管理后台 2026-07-27 20:18:45 +08:00
src feat(api): branch fission prompts on fissionCategory (model/product) 2026-08-10 22:42:26 +08:00
.env.example Switch Live photo generation to MiniMax H3 2026-08-06 14:01:00 +08:00
.env.local.example Switch Live photo generation to MiniMax H3 2026-08-06 14:01:00 +08:00
.gitignore feat: 用户认证系统 + Live 图生成 + 管理后台 2026-07-27 20:18:45 +08:00
next.config.ts Switch Live photo generation to MiniMax H3 2026-08-06 14:01:00 +08:00
package-lock.json Switch Live photo generation to MiniMax H3 2026-08-06 14:01:00 +08:00
package.json Switch Live photo generation to MiniMax H3 2026-08-06 14:01:00 +08:00
postcss.config.mjs feat: initial Lum Image - GPT-Image-2 AI image generation tool 2026-05-01 03:51:46 +08:00
prisma.config.ts feat: 用户认证系统 + Live 图生成 + 管理后台 2026-07-27 20:18:45 +08:00
README.md docs: 端口号改回 3030 2026-07-28 10:40:23 +08:00
tailwind.config.ts feat: initial Lum Image - GPT-Image-2 AI image generation tool 2026-05-01 03:51:46 +08:00
tsconfig.json feat: initial Lum Image - GPT-Image-2 AI image generation tool 2026-05-01 03:51:46 +08:00
vitest.config.ts fix: strip data URL prefix from reference images for API compatibility 2026-05-01 12:45:36 +08:00

Lum Image — AI 生图后端服务

东溪淼选生图助手后端提供图片生成、图片分析、Live 图生成、用户管理等功能。

技术栈

  • 框架: Next.js 16 (App Router)
  • ORM: Prisma 7 + SQLite (better-sqlite3)
  • 认证: bcryptjs + jsonwebtoken
  • AI 模型: Lumorian API (gpt-image-2, mimo-v2.5)、DashScope API (happyhorse-1.1-i2v)
  • 转换工具: ffmpeg客户端本地运行

快速开始

npm install
npx prisma migrate dev    # 初始化数据库
npx tsx scripts/seed.ts   # 创建管理员账号
npm run dev               # 启动开发服务器 (port 3030)

管理员后台

首次访问 http://localhost:3030/admin,使用默认账号登录:

账号 密码
admin admin123456

首次登录强制修改密码,修改后方可进入管理后台。

管理后台功能

  • 仪表盘: 调用统计(按服务/用户)
  • 用户管理: 创建/编辑/删除用户分配功能权限灵感创作、裂变、文案仿写、自由创作、Live 图)
  • API Key 管理: 配置各服务的 API Key 和自定义 Base URL

API Key 配置说明

API Key 由管理员在后台统一配置,存储于数据库中。用户在前端无需手动输入 Key。

服务 用途 Base URL 示例
lumorian 图片生成、灵感创作、图片分析 https://api.lumorian.org
dashscope Live 图视频生成 https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
openai 备用

Base URL 为可选字段留空则使用默认值Lumorian: NEXT_PUBLIC_API_BASE_URLDashScope: dashscope.aliyuncs.com/...)。百炼用户需填写包含 WorkspaceId 的完整地址。

API 端点

认证

方法 端点 说明
POST /api/auth/login 账号密码登录,返回 JWT
GET /api/auth/me 获取当前用户信息与权限
POST /api/auth/change-password 修改密码

Live 图生成

方法 端点 说明
POST /api/live-photo/generate 提交 Live 图生成SSE 流式进度)
GET /api/live-photo/status 查询任务状态
GET /api/live-photo/download/[taskId] 获取下载信息

Live 图生成需用户登录且拥有 livephoto 权限API Key 和 Base URL 由服务端从数据库读取。

图片生成

方法 端点 说明
POST /api/upload 上传图片
POST /api/analyze 分析参考图片(使用 Lumorian API
POST /api/generate-structured-sse 图片生成 SSE 流式(使用 Lumorian API
POST /api/generate-structured 灵感创作 / 风格裂变 / 自由创作
POST /api/generate 图片生成简化版

以上接口的 API Key 由服务端从数据库读取,前端无需传递 x-api-key

管理 API需 admin 权限)

方法 端点 说明
GET/POST /api/admin/users 用户列表 / 新建
PATCH/DELETE /api/admin/users/[id] 编辑 / 删除用户
GET/PUT /api/admin/api-keys API Key 查看 / 保存
GET /api/admin/usage 用量统计

环境变量

变量 说明 默认值
JWT_SECRET JWT 签名密钥 lum-jwt-secret-...(生产必须更换)
ADMIN_USERNAME 默认管理员账号 admin
ADMIN_PASSWORD 默认管理员密码 admin123456
NEXT_PUBLIC_API_BASE_URL Lumorian API 默认地址(管理员可在后台按服务覆盖) https://api.lumorian.org
NEXT_PUBLIC_IMAGE_BASE_URL 图片服务地址 https://image.lumorian.org

API Key 和 Base URL 现在通过管理后台配置并存储于数据库,不再依赖 DASHSCOPE_ENDPOINT 等环境变量硬编码。

Live 图生成流程

用户提交 (prompt + image_url + resolution + duration)
  → 后端调用 DashScope API异步
  → 轮询任务状态
  → 获取视频 URL → 返回给客户端
  → 客户端Electron本地运行 ffmpeg 转换
  → 输出 Apple Live Photo (.heic + .mov)

数据库

SQLite 数据库位于 data/lum.db,包含以下表:

说明
users 用户账号、密码哈希、功能权限、日限额
api_keys 后端统一管理的 API Key支持自定义 baseUrl
usage_logs 每次 API 调用的记录
live_photo_tasks Live 图生成任务记录

目录结构

src/
├── app/
│   ├── admin/          # 管理后台 Web 界面
│   ├── api/
│   │   ├── auth/       # 登录、修改密码
│   │   ├── admin/      # 用户管理、API Key、用量统计
│   │   ├── live-photo/ # Live 图生成、状态、下载
│   │   └── ...          # 原有生成/分析/上传端点
│   └── detect/         # 图片检测工具
├── lib/
│   ├── auth/           # JWT 认证、API Key 管理、种子脚本
│   ├── livephoto/      # DashScope 集成、视频转换
│   ├── prompts/        # 生图 prompt 模板
│   └── db.ts           # Prisma 客户端单例
└── components/         # Web UI 组件