photoshot
Photoshot 是一款开源的 AI 头像生成 Web 应用,旨在帮助用户轻松创建个性化的数字形象。只需上传少量照片,它就能利用先进的深度学习技术训练专属模型,生成风格多样且高度还原个人特征的头像图片,有效解决了传统修图软件操作复杂、效果生硬或定制成本高昂的问题。
这款工具特别适合开发者和技术爱好者使用。作为开源项目,Photoshot 提供了完整的代码实现和清晰的部署文档,用户不仅可以自行搭建服务,还能深入理解其背后的技术架构。对于希望快速构建类似 AI 应用的产品团队或个人开发者而言,它是一个极佳的参考范本。当然,普通用户也可以直接访问其在线版本体验便捷的头像制作服务。
在技术层面,Photoshot 展现了现代化的全栈开发能力。它基于 Next.js 框架构建前端,结合 Chakra UI 提供友好的交互界面,并使用 Prisma 管理数据。核心算法依托于 Replicate 云平台运行的 Flux 文生图模型,支持高质量的图像生成与高清修复。此外,项目还集成了 Stripe 支付系统和 AWS S3 存储服务,形成了一套从用户认证、模型训练到成果交付的完整闭环,体现了极高的工程完成度。
使用场景
一家初创电商团队急需为品牌官网打造一套风格统一且具辨识度的虚拟模特头像,以替代昂贵的真人拍摄方案。
没有 photoshot 时
- 成本高昂且周期长:聘请专业摄影师、模特及后期修图师,单次拍摄花费数千美元且需等待数周交付。
- 风格难以统一:不同批次拍摄的光影、妆容存在细微差异,导致网站视觉风格割裂,缺乏品牌一致性。
- 技术门槛极高:若尝试自建 AI 生成流程,团队需独自配置复杂的深度学习环境、调试 Dreambooth 模型并管理 GPU 资源。
- 迭代灵活性差:一旦需要调整角色发型或服饰细节,必须重新组织线下拍摄,无法快速响应运营需求。
使用 photoshot 后
- 大幅降低成本与时间:利用内置的 Flux 模型和 Replicate 云端算力,仅需上传少量参考图,几分钟内即可生成高质量头像,成本几乎为零。
- 确保视觉高度一致:通过微调训练锁定人物特征,批量生成的数百张头像在光影和画风上完美统一,强化品牌形象。
- 开箱即用的全栈方案:基于 Next.js 和 Chakra UI 构建的成熟 Web 应用,团队无需关心底层模型部署,直接聚焦业务逻辑集成。
- 实时灵活定制:运营人员可随时通过文本提示词调整生成结果(如更换背景或表情),瞬间获得新素材以适配营销活动。
photoshot 将原本高门槛的定制化 AI 头像生产流程,转化为低成本、可即时迭代的标准化服务,极大提升了数字内容的生产效率。
运行环境要求
- 未说明
本地运行无需 GPU(模型通过 Replicate 云平台运行)
未说明

快速开始
Photoshot
一款开源的AI头像生成Web应用
快来 photoshot.app 体验吧!
技术栈
- ▲ Next.js 用于构建Web应用
- 🖼 Chakra UI 用于UI组件
- 📦 Prisma 用于数据库
- 🧠 Replicate,一个在云端运行机器学习模型的平台
- 💰 Stripe 用于支付
- 👩🎨 Flux 一个开源的文字到图像生成模型
快速上手
安装依赖:
yarn install
你可以使用Docker来运行本地PostgreSQL数据库和Maildev服务器(可通过http://localhost:1080访问):
docker-compose up -d
创建.env.local文件:
cp .env.example .env.local
更新环境变量值:
| 环境变量 | 说明 |
|---|---|
| DATABASE_URL | 你的PostgreSQL数据库连接字符串。如果你使用的是提供的Docker配置,则为 postgresql://photoshot:photoshot@localhost:5432/photoshot。 |
| NEXTAUTH_URL | 你的Next.js应用的URL,用于与NextAuth.js进行身份验证。 |
| S3_UPLOAD_KEY | 用于存储图片的AWS S3存储桶的访问密钥。 |
| S3_UPLOAD_SECRET | 用于存储图片的AWS S3存储桶的秘密访问密钥。 |
| S3_UPLOAD_BUCKET | 用于存储图片的AWS S3存储桶名称。 |
| S3_UPLOAD_REGION | 你的S3存储桶所在的AWS区域。 |
| REPLICATE_API_TOKEN | Replicate的API令牌。 |
| REPLICATE_USERNAME | 与你的Replicate账户关联的用户名。 |
| REPLICATE_MAX_TRAIN_STEPS | Dreambooth AI模型的最大训练步数。默认值为 3000。 |
| REPLICATE_NEGATIVE_PROMPT | 用于Replicate AI模型中负面训练示例的提示词。默认值为 cropped face, cover face, cover visage, mutated hands |
| REPLICATE_HD_VERSION_MODEL_ID | 用于放大生成图像的模型版本。你可以在这里浏览此类模型 |
| NEXT_PUBLIC_REPLICATE_INSTANCE_TOKEN | 训练数据的唯一标识符。可以是任意字符串。为了获得最佳效果,建议使用包含三个Unicode字符且不含空格的标识符,例如 cjw |
| SECRET | 用于NextAuth.js身份验证的随机字符串。 |
| EMAIL_FROM | 发送邮件时使用的发件人邮箱地址。 |
| EMAIL_SERVER | 用于发送邮件的SMTP服务器URL。如果你使用的是提供的Docker配置,则为 http://localhost:25, |
| STRIPE_SECRET_KEY | 你的Stripe账户的API密钥。 |
| NEXT_PUBLIC_STRIPE_STUDIO_PRICE | 工作室的价格,单位为美分(例如,1000 = $10)。 |
| NEXT_PUBLIC_STUDIO_SHOT_AMOUNT | 每个工作室允许的最大拍摄次数。 |
| OPENAI_API_KEY | OpenAI API的密钥,用于提示向导功能。 |
| OPENAI_API_SEED_PROMPT | 用于通过OpenAI API生成风格提示的种子提示。 |
请注意,如果你想使用提供的docker-compose配置,你需要在.env.local中禁用TLS,方法是在文件中添加:
NODE_TLS_REJECT_UNAUTHORIZED = "0"
执行数据库迁移:
yarn prisma:migrate:dev
启动开发服务器:
npm run dev
# 或者
yarn dev
打开浏览器访问 http://localhost:3000,即可看到效果。
版本历史
1.3.02024/12/071.22023/10/221.1.72023/01/141.1.62023/01/121.1.52023/01/061.1.42022/12/261.1.32022/12/201.1.22022/12/181.1.12022/12/171.1.02022/12/17常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
