Photoshot:开源AI头像生成Web应用,集成付费体系与Flux图像生成能力

AI新闻 人工智能研究所
65

Photoshot是什么

Photoshot 是一款采用 MIT开源协议 的全栈Web应用,专门用于制作AI个性化头像,普通用户上传数张个人照片,系统借助DreamBooth对人物特征做微调训练,生成专属人物模型,再调用图像大模型批量产出不同风格的AI头像作品。

该项目是一套完整可私有化部署的商业级原型,自带用户登录、图片存储、付费计费、提示词优化全套业务模块,不是单纯的绘图脚本。底层模型已从早期Stable Diffusion升级至Flux,兼顾出图速度与人脸还原度,开发者可以直接二次改造搭建私有AI头像服务。

Photoshot(图1)

功能特色

  1. 专属人物模型训练:上传多张人物实拍照片,通过DreamBooth微调训练专属人物LoRA模型,保留五官、面部特征,避免人物面目全非。

  2. 多风格AI头像生成:训练完成后,输入简单描述词,即可生成证件风、艺术风、卡通、写实、复古等多种风格头像。

  3. AI提示词智能优化:对接OpenAI接口,把用户简单口语化描述自动转化为专业绘图Prompt,降低普通用户使用门槛。

  4. 图像高清放大增强:内置超分放大模型,对生成头像做高清修复,提升图片细节清晰度。

  5. 完整用户系统:基于NextAuth实现账号登录,管理上传素材、训练任务、历史生成图片记录。

  6. 商业化付费体系:内置Stripe支付,可配置套餐额度,限制用户训练次数、图片生成数量,适合直接搭建付费业务。

  7. 任务队列处理:训练、出图任务异步处理,适配云端AI算力接口,避免前端长时间阻塞等待。

  8. 图片资源持久存储:对接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、站点域名六大组,缺少对应密钥则对应功能失效。

应用场景

  1. 个人使用:私有化部署给自己使用,批量生成个人社交账号、自媒体账号的AI头像。

  2. ToC小工具创业:二次封装搭建面向普通用户的AI头像付费网页工具,对外提供头像生成服务。

  3. 企业内部工具:企业内部批量生成员工虚拟形象、数字人头像,用于内部系统、虚拟会议形象。

  4. 学习参考案例:学习全栈AI Web产品开发,参考AI任务队列、第三方API对接、AI产品商业化整套代码实现。

  5. 定制化SaaS开发:基于该项目代码二次开发垂直人物图像生成SaaS平台。

使用方法

普通用户(线上演示站)

  1. 访问官方演示网站photoshot.app,注册登录账号。

  2. 上传同一个人的多张不同角度照片作为训练素材。

  3. 选择付费套餐获取训练与生成额度,提交人物模型训练任务,等待云端完成DreamBooth训练。

  4. 训练完成,输入想要的头像风格描述,AI优化提示词,设置参数,执行生成。

  5. 获取多组AI头像,可调用高清放大功能,下载成品图片。

开发者本地部署使用

  1. 本地准备Node、Yarn、Docker运行环境。

  2. 克隆项目代码仓库,执行yarn install安装全部依赖。

  3. 执行docker‑compose up -d启动PostgreSQL数据库与邮件调试服务。

  4. 复制.env.example.env.local,填写Replicate、S3、OpenAI、Stripe等密钥参数。

  5. 运行yarn prisma:migrate:dev执行数据库迁移初始化数据表。

  6. yarn dev启动开发服务,浏览器访问http://localhost:3000进入系统。

  7. 按页面流程上传图片、发起训练任务,完成头像生成。

竞品对比

选取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的模型下载接口。

相关链接

总结

Photoshot是一套完成度很高的MIT协议开源AI头像Web项目,整合人物DreamBooth模型训练、Flux图像生成、用户账号管理、对象存储以及付费计费的整套业务流程,无需从零搭建AI头像产品,既可供开发者学习AI Web产品开发,也能够经过简单二次修改之后搭建私有化AI头像服务原型,全部AI算力依赖Replicate云端API,适合希望快速落地AI头像业务的开发人员。

打赏
THE END
作者头像
人工智能研究所
发现AI神器,探索AI技术!