📈 GH Trending Explorer 🎲 Surprise me

← all repos

lonely-dance-lab / cover-studio

git clone https://github.com/lonely-dance-lab/cover-studio.git

AI 生图、图片拆层与图层编辑工作台,支持封面、小红书和电商海报创作,可本地运行或部署到 Cloudflare。

—
stars, 24h
+67
stars, 7 days · #745
+67
stars, 30 days · #3,972
67
★ total · +67% this week
13
forks · 0 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageJavaScript
License—
Created2026-10-15 (5d ago)
Last push5d ago
Watchers0
OwnerUser

Links

README excerpt
# Cover Studio
**从一个想法,到每一个图层。**
一个集 AI 生图、图片拆层和图层编辑于一体的轻量网页工作台。
**在线访问:https://cover.aigce.com/**
在线体验 · 快速开始 · Cloudflare 部署 · 数据与隐私
---
输入提示词生成封面或海报,将图片拆成透明图层,再拖动、缩放、调整叠放顺序,导出最终作品。支持 Python 本地运行与 Cloudflare Workers 部署,无需前端构建。
> 不填写 API Key 也可以点击「载入示例」,体验已有海报的 7 个图层。生成新图或重新拆层需要具备对应模型权限的蚂蚁数科 MaaS API Key。
## 功能特性
- **四个创作板块**:封面图、小红书、电商海报、自由创作,各自保留独立提示词与设置。
- **风格与模板**:集成 Punk 封面风格规则与 PONYO 小红书封面模板,支持查看、修改编译后的提示词。
- **生成与拆层**:从文字生成图片,或上传 PNG、JPEG、WebP 图片进行拆层,上传上限为 20 MB。
- **图层编辑**:拖动、等比缩放、显示与隐藏、锁定、重命名、拖拽排序,以及撤销和重做。
- **多比例导出**:支持原图、合成 PNG、单层 PNG 和原始图层 ZIP 下载。
- **素材库**:保存生成与拆层结果,支持筛选、重新载入、删除及当前页面撤销删除。
- **两种运行方式**:本地 Python 服务,或 Cloudflare Workers + Static Assets。
## 作品示例
仓库内附有这张海报及对应的 7 个拆分图层。载入后即可体验组合预览、拖动和导出,无需调用模型。
## 快速开始
### 环境要求
| 环境 | 用途 |
| --- | --- |
| Python 3.10+ | 本地服务,仅使用标准库,无需安装 Python 依赖 |
| Node.js 20+ 与 npm | 运行 JavaScript 检查及 Wrangler 部署 |
| MaaS API Key | 调用生图与拆层模型;查看内置示例无需 Key |
### 本地运行
下载仓库并解压,进入项目目录后执行:
 [code] 
打开 http://127.0.0.1:8765,在右上角「API 设置」填写自己的 Key。
自动打开浏览器,或指定其他端口:
 [code] 
macOS 也可以双击仓库内的 `启动.command`。本地服务仅监听 `127.0.0.1`,公网部署请使用下面的 Workers 方案。
### 使用流程
1. **生成**:选择创作品类,填写提示词或载入预设,选择比例后生成图片。
2. **拆解**:点击「继续拆解图层」,也可以上传已有图片;确认图层规划后开始拆解。
3. **编辑**:在画布中选择图层,拖动位置、缩放大小,在右侧调整显隐和叠放顺序。
4. **导出**:下载原图、编辑后的合成 PNG、单层 PNG,或原始图层 ZIP。
## 图层操作
| 操作 | 使用方式 |
| --- | --- |
| 选择图层 | 点击画布中的元素,或右侧图层行 |
| 移动 | 拖动画布中的图层;按住 Alt 可关闭原位吸附 |
| 微调 | 方向键移动 1 px,Shift + 方向键移动 10 px |
| 缩放 | 拖动选框角点,或输入 10%–400% 的缩放比例 |
| 调整叠放 | 拖动图层行左侧手柄;右键菜单支持置顶、上移、下移和置底 |
| 显隐与锁定 | 点击图层行的眼睛或锁图标;Delete 可隐藏选中图层 |
| 撤销 / 重做 | macOS:⌘Z / ⇧⌘Z;Windows:Ctrl+Z / Ctrl+Shift+Z |
| 复位 | 使用「复位选中」或「全部复位」恢复位置与大小 |
图层列表上方覆盖下方。完整背景默认锁定,解锁后可以移动。导出合成图使用当前编辑状态,原始图层 ZIP 保留模型输出。
支持 `1:1`、`9:16`、`16:9`、`5:2`、`4:3`、`3:4` 等比例。切换导出比例会等比适配完整画面,比例不一致时留白,不拉伸图片。
## Cloudflare 部署
使用 **Workers + Static Assets** 同时提供网页与 API 转发。仅上传静态文件不能提供生图和拆层接口。
### 1. 登录并预览
在项目根目录执行:
 [code] 
### 2. 发布
 [code] 
发布完成后,通过终端返回的地址访问。每位使用者在网页内填写自己的 MaaS Key,无需在 Worker 中配置统一的站长 Key。
### 3. 可选:指定账户与自定义域名
仓库中的 `wrangler.jsonc` 不包含个人账户或域名绑定。登录了多个账户时,添加自己的 `account_id`;需要绑定域名时,在原配置中添加:
 [code] 
域名需要由所选 Cloudflare 账户管理。修改后重新运行 `npx wrangler deploy`。
## 数据与隐私
| 项目 | Python 本地模式 | Cloudflare 模式 |
| --- | --- | --- |
| API Key | 当前页面内存;可从本机 `.local-key` 载入 | 当前页面内存,刷新后需要重新填写 |
| 模型请求 | 由本地 Python 服务转发给 MaaS | 由 Worker 转发给 MaaS |
| 作品与任务记录 | 项目目录下的 `output/` | 当前浏览器的 IndexedDB |
| 跨设备同步 | 不支持 | 不支持 |
- API Key 不写入素材记录。Worker 不保存或回显 Key,仓库默认关闭 Worker 可观测日志。
- `.local-key`、`output/`、`.env` 和 `.dev.vars` 等本地文件已加入 `.gitignore`,不要将真实凭据提交到仓库。
- 线上作品没有设置自动到期时间。清理网站数据、使用其他浏览器或更换设备后,无法读取原浏览器中的作品;重要作品请及时下载。
- 素材库保存模型原始输出,拖动、缩放和显隐等编辑状态暂不自动保存到历史。请导出合成 PNG 保存编辑结果。
- 本地作品不会随部署上传到线上,浏览器素材库也不会自动同步到服务器。
## 模型接入
当前接入蚂蚁数科 MaaS 的两个图片模型:
| 能力 | 模型 | 上游接口 |
| --- | --- | --- |
| 文字生图 | `ming-image-0.1-design` | `POST /v1/images/generations` |
| 图片拆层 | `ming-image-0.1-design-layer` | `POST /v1/images/edits` |
接口地址为 `https://maas-api.antdigital.com`。本地实现位于 `server.py`,Cloudflare 实现位于 `cloudflare/worker.mjs`。更换服务商需要同时适配请求和响应格式。
生成和重新拆层会调用 M