Photoshot:开源AI头像生成Web应用,集成付费体系与Flux图像生成能力
Photoshot是什么
Photoshot 是一款采用 MIT开源协议 的全栈Web应用,专门用于制作AI个性化头像,普通用户上传数张个人照片,系统借助DreamBooth对人物特征做微调训练,生成专属人物模型,再调用图像大模型批量产出不同风格的AI头像作品。
该项目是一套完整可私有化部署的商业级原型,自带用户登录、图片存储、付费计费、提示词优化全套业务模块,不是单纯的绘图脚本。底层模型已从早期Stable Diffusion升级至Flux,兼顾出图速度与人脸还原度,开发者可以直接二次改造搭建私有AI头像服务。

功能特色
专属人物模型训练:上传多张人物实拍照片,通过DreamBooth微调训练专属人物LoRA模型,保留五官、面部特征,避免人物面目全非。
多风格AI头像生成:训练完成后,输入简单描述词,即可生成证件风、艺术风、卡通、写实、复古等多种风格头像。
AI提示词智能优化:对接OpenAI接口,把用户简单口语化描述自动转化为专业绘图Prompt,降低普通用户使用门槛。
图像高清放大增强:内置超分放大模型,对生成头像做高清修复,提升图片细节清晰度。
完整用户系统:基于NextAuth实现账号登录,管理上传素材、训练任务、历史生成图片记录。
商业化付费体系:内置Stripe支付,可配置套餐额度,限制用户训练次数、图片生成数量,适合直接搭建付费业务。
任务队列处理:训练、出图任务异步处理,适配云端AI算力接口,避免前端长时间阻塞等待。
图片资源持久存储:对接S3对象存储,保存原始上传图片、训练素材、最终生成头像文件。
技术细节
整体架构
前后端一体化Next.js全栈项目,TypeScript开发,ORM采用Prisma,数据库使用PostgreSQL;AI推理与模型训练不跑本地GPU,依赖Replicate云端API完成DreamBooth训练与Flux图像生成。
核心技术组件
前端框架:Next.js,Chakra UI组件库,完成页面交互、任务状态展示
数据库层:PostgreSQL + Prisma,存储用户信息、订单、任务状态、配置参数
AI能力层:Replicate API,执行DreamBooth人物微调、Flux文生图、图像超分放大
提示词增强:OpenAI API,完成普通文本到绘图Prompt的改写优化(非必需,关闭则不使用该功能)
对象存储:AWS S3兼容存储,存储全部用户图片素材
身份认证:NextAuth.js,支持多方式账号登录
支付模块:Stripe,套餐购买、额度扣减、付费逻辑
本地调试组件:Docker Compose快速拉起PostgreSQL与Maildev邮件模拟服务,无需手动安装数据库
部署运行要点
项目不能完全离线本地GPU运行,AI训练与绘图全部调用Replicate远程算力。本地开发环境依靠Docker快速初始化数据库,复制.env.example生成环境变量配置文件,填入各平台密钥,执行数据库迁移后启动Next服务。
关键环境变量分为数据库、S3存储、Replicate、OpenAI、Stripe、站点域名六大组,缺少对应密钥则对应功能失效。
应用场景
个人使用:私有化部署给自己使用,批量生成个人社交账号、自媒体账号的AI头像。
ToC小工具创业:二次封装搭建面向普通用户的AI头像付费网页工具,对外提供头像生成服务。
企业内部工具:企业内部批量生成员工虚拟形象、数字人头像,用于内部系统、虚拟会议形象。
学习参考案例:学习全栈AI Web产品开发,参考AI任务队列、第三方API对接、AI产品商业化整套代码实现。
定制化SaaS开发:基于该项目代码二次开发垂直人物图像生成SaaS平台。
使用方法
普通用户(线上演示站)
访问官方演示网站photoshot.app,注册登录账号。
上传同一个人的多张不同角度照片作为训练素材。
选择付费套餐获取训练与生成额度,提交人物模型训练任务,等待云端完成DreamBooth训练。
训练完成,输入想要的头像风格描述,AI优化提示词,设置参数,执行生成。
获取多组AI头像,可调用高清放大功能,下载成品图片。
开发者本地部署使用
本地准备Node、Yarn、Docker运行环境。
克隆项目代码仓库,执行
yarn install安装全部依赖。执行
docker‑compose up -d启动PostgreSQL数据库与邮件调试服务。复制
.env.example为.env.local,填写Replicate、S3、OpenAI、Stripe等密钥参数。运行
yarn prisma:migrate:dev执行数据库迁移初始化数据表。yarn dev启动开发服务,浏览器访问http://localhost:3000进入系统。按页面流程上传图片、发起训练任务,完成头像生成。
竞品对比
选取2个同类开源/产品做对比,从部署模式、底层模型、商业化模块、训练方式几个维度对比。
| 产品名称 | Photoshot | AvatarAI(开源web头像项目) | Midjourney(在线商业头像工具) |
|---|---|---|---|
| 项目属性 | MIT开源全栈Web应用 | 开源Python后端,简易前端 | 闭源商业在线SaaS |
| 底层模型 | Flux(DreamBooth微调) | Stable Diffusion系列 | 自研闭源大模型 |
| 私有化部署 | ✅支持完整私有化部署 | ✅支持部署,缺少完整付费模块 | ❌不支持私有化部署 |
| 内置付费系统 | ✅Stripe付费套餐完整实现 | ❌无原生付费模块,需二次开发 | ✅内置付费订阅 |
| 人物训练方式 | DreamBooth云端API训练LoRA | 本地/云端DreamBooth训练 | 无用户自定义人物训练 |
| 存储方案 | S3对象存储 | 本地文件存储为主 | 云端服务商托管,用户不可控制 |
| 登录用户体系 | NextAuth完整账号系统 | 简易登录或无账号 | 账号系统由服务商托管 |
常见问题解答
Photoshot可以完全离线本地GPU运行吗?
不可以。人物DreamBooth训练、Flux图像生成逻辑全部调用Replicate云端API,项目代码本身不包含模型权重,必须联网调用第三方AI算力接口,无法脱离网络本地显卡完成全部AI运算。
必须配置OpenAI密钥才能使用Photoshot吗?
不是。OpenAI仅用于提示词智能优化,不配置该密钥,头像训练与图片生成的核心功能仍然可用,只是失去自动改写提示词的能力,需要用户自己编写绘图提示词。
S3存储必须使用AWS官方服务吗?
不需要。只要兼容S3协议的对象存储都可以填入配置,国内对象存储、自建S3兼容服务均可,用来存放用户上传和生成的图片。
Photoshot训练会消耗大量本地服务器资源吗?
不会。训练计算全部在Replicate平台执行,本地服务器只做Web服务、数据库、图片转发存储,对服务器GPU无要求,普通云服务器即可部署。
是否可以去掉Stripe付费模块,改成免费使用?
可以,代码层面可以注释、移除Stripe相关逻辑,修改数据库额度逻辑,关闭付费校验,实现全部功能免费使用,需要开发者做二次代码修改。
训练出来的人物模型可以导出LoRA文件本地使用吗?
原始项目没有提供LoRA模型文件导出接口,训练产出的模型保存在Replicate平台,想要导出模型文件需要自行二次开发对接Replicate的模型下载接口。
相关链接
在线演示站点:https://photoshot.app
总结
Photoshot是一套完成度很高的MIT协议开源AI头像Web项目,整合人物DreamBooth模型训练、Flux图像生成、用户账号管理、对象存储以及付费计费的整套业务流程,无需从零搭建AI头像产品,既可供开发者学习AI Web产品开发,也能够经过简单二次修改之后搭建私有化AI头像服务原型,全部AI算力依赖Replicate云端API,适合希望快速落地AI头像业务的开发人员。
版权及免责申明:本文由@人工智能研究所原创发布。该文章观点仅代表作者本人,不代表本站立场。本站不承担任何相关法律责任。
如若转载,请注明出处:https://www.aipuzi.cn/ai-news/photoshot.html

