表情包 AI 自动化生产线
参考图 → AI 生成 / 批量导入 → 自动标准化 → 一键下载 ZIP
快速开始 · 核心能力 · 支持平台 · AI 提供商 · 文档中心 · FAQ
做一套表情包,通常要经历「设计 → 切图 → 调尺寸 → 补封面/图标/横幅 → 写元数据 → 校验 → 打包」。 EasySticker 把这条流水线压缩成四步:选择平台 → 准备参考图 → 配置并生成 → 预览下载。
它面向自托管场景:参考图、生成结果和运营数据都留在你自己的服务器上。后端使用 Node.js + Fastify + Sharp,前端是 Vite 构建的轻量页面,可用 Docker 快速启动。
界面会随版本迭代。本文不嵌入截图,避免文档长期滞后;需要预览可本地启动,或查看 使用手册 了解完整功能流程。
AI 生成
- 图生图:上传角色参考图,按情绪批量生成整套表情;没有参考图时也支持纯文生图。
- AI 生成参考图:没有现成图片时,先用文字生成参考图(文生图),再据此生成整套;也支持「主底图 + 最多 3 张附加参考图」的图生图。
- 补齐:已经导入部分成品时,在统一流程里选择图片来源(包内已有图片 / 上传新图片)与处理方式(AI 生成 / 直接使用原图),补齐缺少的表情并追加到当前包,不覆盖原图。
- 多套内置风格与提示词预设,支持自定义追加或覆盖;预设可自带推荐风格与情绪集。 完整清单见 配置参考。
- 统一透明背景提示词,适配亮色 / 暗色主题。
- SSE 实时进度;单张失败可单独重生成,已成功的图不会丢。
导入与还原
- 批量导入 PNG / JPG / WebP / GIF,自动缩放、居中、补透明边并转换为平台规格。
- 导入本站导出的 ZIP 可读回提示词、风格、情绪、参考图与历史版本,继续编辑或补齐(AI / 上传)。
- 历史记录一键还原生成现场;已登录用户的历史按账号存服务端。
编辑与版本
- 任一已生成图片都能「编辑图片」:以当前图为源,只重做这一张,可再附一张参考图。
- 不满意的图片可直接「删除」,从当前包中移除并自动重排序号,方便筛选高质量作品。
- 每次编辑或重生成都会保留旧版本,可查看并回退到任意一版。
- 历史版本随 ZIP 一起导出,重新导入不会丢。
导出与校验
- 按平台自动转换尺寸与格式,WebP 自动控制体积,PNG 超限自动量化。
- 结构化 ZIP:主表情 + 封面 / 图标 / 横幅 + 参考图 +
metadata.json。 - 微信扩展资源(封面、图标、横幅、赞赏引导 / 答谢图)可勾选生成。
- 完整 OpenAPI 文档(
/docs)。
自托管与管理
- 素材只存一份,ZIP 按清单现场打包,不额外落盘。
- 每 6 小时自动巡检:压缩旧包、清孤儿素材、按保留期删包(默认 30 天,不追溯既往)。
- 管理后台:实时仪表盘、统计图表、用户与存储管理、告警规则与 Webhook。
- 公网服务器 / 本地 Docker 均可部署,数据目录可直接备份迁移。
| 平台 | 数量 | 交付规格 | 扩展资源 |
|---|---|---|---|
| 微信表情包 | 8–24 张 | 240 × 240 PNG | 封面 / 图标 / 横幅 / 赞赏图 |
| Telegram 静态贴纸 | 1–50 张 | ≤ 512 × 512 PNG | — |
| WhatsApp 贴纸 | 1–30 张 | 512 × 512 WebP | — |
平台差异只体现在尺寸、格式、数量与扩展资源;提示词本身是平台中立的。
# 1. 准备 compose 文件与环境变量模板
curl -O https://raw.githubusercontent.com/EasyIndie/EasySticker/main/docker-compose.image.yml
curl -o .env https://raw.githubusercontent.com/EasyIndie/EasySticker/main/.env.example
# 2. 至少填写 API_TOKEN / JWT_SECRET / ADMIN_PASSWORD
# 3. 启动
docker compose -f docker-compose.image.yml up -d打开 http://localhost:3000/。数据默认落在 ./data,升级只需:
docker compose -f docker-compose.image.yml pull
docker compose -f docker-compose.image.yml up -d镜像 ghcr.io/easyindie/easysticker 提供 linux/amd64 与 linux/arm64,
含 :latest 和版本 tag。锁版本可在 .env 中设置 EASYSTICKER_TAG=<版本号>。
git clone https://github.com/EasyIndie/EasySticker.git
cd EasySticker
npm install
cp .env.example .env # 本地开发可原样使用:development + Mock 模式
npm run dev # 后端 http://localhost:3000/
npm run web:dev # 前端 http://localhost:5173/(另开一个终端)生产模式:
npm run build && npm run web:build && npm run prod启动后选择「导入已有图片」,批量上传成品图即可完成标准化、补全扩展资源和打包, 不需要配置任何 AI 提供商。
不配置也能启动,但生成结果是 Mock 本地模拟图。启用真实模型只需两步:
-
在
prompt-config.json中指定默认提供商(只写要覆盖的字段):{ "ai": { "defaultProvider": "seedream" } } -
把密钥放进
.env(推荐,不要写进配置文件):AI_SEEDREAM_API_KEY=你的密钥
命名规则为 AI_<PROVIDER_ID>_API_KEY,环境变量优先于配置文件。
也可以运行 npm run setup 交互式向导,或启动后进入管理后台 → 设置 → AI 提供商
可视化编辑并测试连通。
完整配置项、提示词模板与合并规则见 配置参考。
所有真实生图统一走 OpenAI 兼容 Images API,通过 variant 切换参数画像:
| 提供商 | 类型 / variant | 说明 | 透明底 |
|---|---|---|---|
| OpenAI gpt-image | openai / gpt-image |
文生图、图生图、文字改图全覆盖 | 原生支持 |
| 豆包 Seedream(火山方舟) | openai / generic |
国内模型,支持支付宝 / 对公付费 | 实底 |
| 任意 OpenAI 兼容端点 | openai / generic |
换 baseUrl / model 即可接入(如硅基流动 FLUX) |
视模型 |
| 本地模拟(Mock) | mock |
无需 Key,用于开发与功能验证 | — |
新增提供商只需在 src/services/ai/providers/ 注册一个实现,详见
架构设计。
面向公网部署时,至少做到:
- 不要直接暴露 3000 端口,前面加一层 HTTPS 反向代理(Nginx / Caddy)。
- 固定设置
API_TOKEN、JWT_SECRET、ADMIN_PASSWORD。 - 反向代理下开启
server.security.trustProxy,让限流拿到真实 IP。 - 为 SSE 关闭代理缓冲,否则生成进度和后台实时指标会「卡住不动」。
完整的 Compose / 裸机 / 反向代理 / 升级与安全基线见 部署指南。
| 想了解 | 看这里 |
|---|---|
| 文档总览与阅读路径 | 文档中心 |
| 怎么使用各项功能 | 使用手册 |
| 怎么部署上线 | 部署指南 |
| 每个配置项 / 环境变量 | 配置参考 |
| 日志、备份、清理、排障 | 运维手册 |
| 本地开发与测试 | 开发指南 |
| 代码分层与设计决策 | 架构设计 |
| 后续演进计划 | 路线图 |
ZIP 与 metadata.json |
包格式 |
需要自己的 AI API Key 吗? 不需要也能启动(Mock 模式)。想要真实生成能力,配置一个 OpenAI 兼容提供商即可。
生成的图片存在哪里?怎么清理?
全部在服务器 data/ 目录。素材只存一份,ZIP 不落盘。服务端每 6 小时自动巡检,
也可手动 npm run gc(默认只体检,--apply 才执行)。不要用按 mtime 的
find data -delete 清理,会删坏包。详见 运维手册。
支持微信表情开放平台提审吗? 输出的 ZIP 符合上架规范,可直接提交审核;目前不做自动提审。
可以商用吗? 代码采用 Apache-2.0,可自由使用和修改。生成图片的版权取决于底层模型服务条款。
生成质量不满意怎么办? 调整提示词 / 风格 / 提供商;某张不满意就单张重生成或编辑,不必整包重跑。
很早以前导出的 ZIP 缺尺寸 / 提示词,能补回来吗?
可以,用 npm run repair-pack 就地升级到最新 schema。详见
运维手册。
Apache-2.0 © 2025-2026 EasySticker Contributors
第三方依赖与 LGPL(sharp / libvips)说明见 THIRD_PARTY_NOTICES.md。
Made with ❤️ for the sticker community