项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 3876
使用教程
环境要求
- Node.js 环境与 yarn 包管理器(安装依赖用 yarn install)
- Docker 与 docker-compose(用于启动本地 PostgreSQL 和 maildev 邮件服务)
- Replicate 账号及 API Token(用于运行训练和生成模型)
- AWS S3 存储桶(用于存放用户上传的照片)
- Stripe 与 OpenAI 账号密钥(支付与提示词向导功能)
安装与启动步骤
-
1安装依赖
在项目根目录执行 yarn install 安装 Next.js、Chakra UI、Prisma 等全部依赖。
yarn install -
2启动本地服务
用 docker-compose 启动本地 PostgreSQL 数据库和 maildev 邮件服务,maildev 可在 http://localhost:1080 查看。
docker-compose up -d -
3创建环境变量文件
把示例配置复制为 .env.local,后续所有密钥都填在这个文件里。
cp .env.example .env.local -
4填写环境变量
按 README 表格逐项填写 DATABASE_URL、NEXTAUTH_URL、S3、Replicate、Stripe、OpenAI 等密钥。
-
5关闭 TLS 校验
如果使用自带的 docker-compose 数据库,需要在 .env.local 中追加 NODE_TLS_REJECT_UNAUTHORIZED = "0",否则连接会失败。
NODE_TLS_REJECT_UNAUTHORIZED = "0" -
6执行数据库迁移
运行 Prisma 迁移,在本地 PostgreSQL 中建好所需数据表。
yarn prisma:migrate:dev -
7启动开发服务器
启动 Next.js 开发服务器,浏览器访问 NEXTAUTH_URL 配置的地址即可打开应用。
npm run dev
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
DATABASE_URL | 是 | PostgreSQL 连接串,使用自带 docker 环境时固定如下值。 | postgresql://photoshot:photoshot@localhost:5432/photoshot |
NEXTAUTH_URL | 是 | Next.js 应用地址,NextAuth.js 认证使用。 | http://localhost:3000 |
REPLICATE_API_TOKEN | 是 | Replicate 平台 API Token,用于训练与生成模型。 | r8_xxxxxxxxxxxxxxxxxxxx |
REPLICATE_USERNAME | 是 | 你 Replicate 账号对应的用户名。 | your-replicate-username |
SECRET | 是 | NextAuth.js 认证用的随机字符串。 | a-random-secret-string |
NEXT_PUBLIC_REPLICATE_INSTANCE_TOKEN | 是 | 训练数据的唯一标识,建议为三个无空格的字符。 | cjw |
如何确认成功
yarn prisma:migrate:dev 无报错,npm run dev 启动成功后浏览器打开 NEXTAUTH_URL 指向的地址能看到首页;maildev 可在 http://localhost:1080 访问。
常见问题
Q:为什么必须设置 NODE_TLS_REJECT_UNAUTHORIZED?
A:README 指出使用项目自带的 docker-compose 数据库时,需要禁用 TLS 校验,在 .env.local 中加入 NODE_TLS_REJECT_UNAUTHORIZED = "0",否则连接数据库会失败。
Q:必须自己准备 AWS S3 吗?
A:是。S3_UPLOAD_KEY、S3_UPLOAD_SECRET、S3_UPLOAD_BUCKET、S3_UPLOAD_REGION 用于存放用户上传的照片,不配置则上传功能不可用。
Q:REPLICATE_MAX_TRAIN_STEPS 需要改吗?
A:不填则默认 3000 步,这是 Dreambooth 模型的最大训练步数,调小可节省费用但可能影响生成质量。
Q:NEXT_PUBLIC_REPLICATE_INSTANCE_TOKEN 怎么填?
A:填任意字符串即可作为训练数据标识,README 建议使用不含空格的三字符标识,例如 cjw,效果最好。
Q:Stripe 和 OpenAI 是必需的吗?
A:STRIPE_SECRET_KEY 等用于付费工作室功能,OPENAI_API_KEY 用于提示词向导,只做本地体验时可不填,但对应功能会不可用。
注意事项
- README 只给出开发模式启动方式,未提供生产构建与部署命令,正式上线需自行参考 Next.js 部署方案。
- 数据库、邮件服务依赖 docker-compose,请先确认 Docker 服务已启动再执行后续步骤。
- 涉及 Replicate、Stripe、OpenAI、S3 的多项密钥,建议不要把 .env.local 提交到 Git 仓库。
- 项目依赖第三方云服务(Replicate、Stripe、OpenAI、AWS S3),完整功能需要相应账号与额度。
核心亮点
- 基于 Dreambooth 实现个性化模型微调,头像风格还原度高
- 全栈 TypeScript + Next.js,代码结构清晰,易于二次开发
- 提供完整 Web 应用,含前端界面和后端训练流程,开箱即用
不足之处
- 依赖外部 AI 服务(如 Replicate),自部署需自行配置 API 密钥
- 文档和社区支持相对薄弱,高级定制需深入源码
适用场景
- 个人用户快速生成社交媒体头像
- 开发者学习 AI 应用全栈开发
- 企业搭建内部头像生成服务
替代项目
Avatarify、This Person Does Not Exist、Stable Diffusion WebUI
下一篇:zero123
同类项目推荐
digital-human-koubo
开源
一张照片,自动生成带包装的口播数字人视频
AI digital-human talking-head videos from one photo: Renoise MCP generation + 5 edit···
ASH
开源
用高斯泼溅技术,实现高效逼真的可驱动数字人渲染。
The Training and Demo code for: Ash: Animatable gaussian splats for efficient and ph···
sem2nerf
开源
一张语义图,直接生成可多视角观看的三维场景
[ECCV'22] Sem2NeRF: Converting Single-View Semantic Masks to NeRFs
Meow-Generator
开源
一键生成独一无二的 3D 猫咪,萌翻你的项目
A playful procedural 3D kitten generator built with Three.js.
3d-model-anything
开源
手机扫房间,浏览器里编辑三维模型
Capture iPhone LiDAR and photos, reconstruct editable Three.js rooms, and explore th···
ComfyUI-Hunyuan3d-2-1
开源
在ComfyUI里,一张图秒变带PBR材质的3D模型
ComfyUI Wrapper for Hunyuan3D v2.1 - From Images to High-Fidelity 3D Assets with Pro···
easi-tex
开源
单张图秒变 3D 纹理,边缘细节不糊掉
[SIGGRAPH 2024] "EASI-Tex: Edge-Aware Mesh Texturing from Single Image", ACM Transac···
banana-levelup
开源
输入文字,秒变可 360° 查看的 AI 角色头像
An interactive web demo for AI avatar creation — generate characters from a text pr···
Matrix-3D
开源
一张图或一句话,生成可漫游的 3D 全景场景
Generate large-scale explorable 3D scenes with high-quality panorama videos from a s···
