StickerBaker
扫码查看

使用AI生成贴纸的开源工具

StickerBaker

综合介绍

StickerBaker是一个开源的应用程序,它让用户能够通过输入文字来创造个性化的贴纸。这个工具利用人工智能模型来理解用户的文本描述,并将其转换成风格独特的贴纸图像。整个项目构建在现代化的技术栈上,后端使用Elixir语言和Phoenix框架开发,确保了高效的实时交互体验。AI图像生成的核心功能依赖于Replicate平台提供的模型,而生成的图片则储存在Tigris对象存储服务中。该项目不仅提供了一个可以直接使用的网站,还完全开放了源代码,允许开发者在Fly.io平台上自行部署。其架构设计巧妙地利用了webhook异步处理机制,即使用户在生成过程中关闭页面,AI模型也会在云端继续运行,并在完成后通过回调通知服务器,保证了贴纸生成的稳定性和用户体验的流畅性。

功能列表

  • 文本生成贴纸: 输入任意文本描述,通过AI模型生成对应的贴纸图片。
  • 异步处理: 提交生成请求后,后端采用异步方式处理,用户无需在页面上等待,提升了操作的流畅性。
  • 实时更新: 贴纸生成后,会自动出现在用户的预测历史列表中,无需手动刷新。
  • 内容审核: 在生成图像前,程序会调用一个提示词分类模型对输入内容进行审核,以确保内容的安全性。
  • 开源部署: 项目代码完全开源,并提供了详细的本地开发和生产环境部署指南,开发者可以自由地进行二次开发或私有化部署。
  • 云服务集成: 集成了Replicate AI模型服务、Tigris图片存储和Fly.io应用托管平台。

使用帮助

StickerBaker是一个功能直接的AI应用,其核心是让你“烘焙”出属于自己的贴纸。对于普通用户和开发者,使用它的方式有所不同。

对于普通用户

普通用户可以直接访问StickerBaker的官方网站 (stickerbaker.com) 来使用。操作流程非常简单:

  1. 访问网站: 在浏览器中打开StickerBaker网站。
  2. 输入描述: 在主页的输入框中,用简单的文字描述你想要的贴纸内容。例如,你可以输入“一只正在编程的猫”或者“一个微笑的宇航员”。
  3. 提交生成: 点击生成按钮。
  4. 等待结果: 提交后,你的请求会立即出现在下方的列表中。由于AI生成需要一些时间,它会显示为正在处理状态。你不需要停留在页面上等待,可以关闭网页。当你下次访问时,只要生成完成,结果就会显示在你的历史记录中。

对于开发者(本地部署与开发)

如果你是开发者,想要在本地运行、修改或部署自己的StickerBaker实例,可以遵循以下步骤。这需要你对命令行、Elixir和相关云服务有基本的了解。

第一步:环境准备在开始之前,确保你的电脑上安装了以下软件:

  • Elixir: StickerBaker是基于Phoenix框架开发的,因此需要Elixir语言环境。
  • Phoenix: Phoenix框架的安装程序。
  • Git: 用于克隆项目代码。
  • Ngrok: 一个能将你的本地服务器暴露给公网的工具,这对于在本地测试接收来自Replicate的webhook至关重要。

第二步:获取项目和依赖

  1. 打开终端,使用Git克隆项目代码:
git clone https://github.com/cbh123/stickerbaker.git
  1. 进入项目目录:
cd stickerbaker
  1. 运行安装脚本,该脚本会自动帮你安装所有需要的Elixir依赖项:
mix setup

第三步:配置环境变量StickerBaker需要连接几个外部服务,因此你需要获取相应的API密钥并将它们配置在环境变量中。

  1. 复制环境变量模板文件:
cp .env.copy .env
  1. 编辑新创建的.env文件,填入以下信息:
    • REPLICATE_API_TOKEN: 访问 Replicate 网站,注册并获取你的API令牌。
    • TIGRIS_CLIENT_IDTIGRIS_CLIENT_SECRETTIGRIS_PROJECTTIGRIS_BUCKET: 访问 Tigris 网站,创建一个项目和存储桶,并获取相应的访问凭证。

第四步:配置本地Webhook通道AI模型在Replicate云端运行,当图片生成完毕后,Replicate需要通过Webhook通知你的本地应用。Ngrok可以为此创建一个安全的公网通道。

  1. 打开一个新的终端窗口,运行Ngrok,将其指向Phoenix服务的默认端口4000:```bashngrok http 4000
2. Ngrok会生成一个`Forwarding` URL,格式通常为 `https://*******.ngrok-free.app`。
3. 将这个URL复制到`.env`文件中,赋值给相应的环境变量(通常是 `HOST` 或类似的配置项)。
**第五步:启动本地服务器**
一切准备就绪后,你可以在终端中启动Phoenix服务器:
```bash
iex -S mix phx.server

现在,你可以在浏览器中访问 http://localhost:4000,看到和你线上版本一模一样的StickerBaker界面。在这里进行的任何操作都会通过Ngrok与Replicate通信,让你可以在本地完整地测试整个流程。

应用场景

  1. 社交聊天用户可以根据聊天内容或心情,快速生成个性化贴纸,用于微信、Telegram、Discord等社交软件中,让沟通更有趣。
  2. 内容创作博主或内容创作者可以为他们的文章、视频或社交媒体帖子生成独特的配图,以吸引读者和观众的注意力。
  3. 个性化商品定制设计师或个人用户可以利用生成的贴纸图案,用于T恤、杯子、手机壳等实体商品的印刷,创造出独一无二的个人物品。
  4. 开发者学习和实践对于学习Elixir和Phoenix框架的开发者来说,StickerBaker是一个优秀的开源学习项目。通过分析其代码,可以深入理解真实世界中Phoenix LiveView的应用、与第三方API的集成方式以及异步任务处理的最佳实践。

QA

  1. StickerBaker是免费的吗?作为开源项目,StickerBaker的代码是免费的。但如果你自行部署,需要支付其依赖的第三方服务(如Replicate, Fly.io, Tigris)的费用,这些服务通常有免费额度,超出部分会产生费用。
  2. 生成一张贴纸需要多长时间?生成时间取决于Replicate平台当前的负载情况。由于采用了异步处理和webhook通知机制,你提交请求后无需停留在页面等待,生成完成后结果会自动出现。
  3. 我可以在本地开发时没有Tigris账户吗?不可以。根据其架构,图片生成后会直接上传到Tigris进行托管。因此,即使在本地开发环境中,也需要配置好Tigris的API凭证才能让整个流程正常工作。
  4. 为什么本地开发需要Ngrok?因为StickerBaker依赖Replicate的webhook来接收图片生成完成的通知。当你在本地运行时,你的服务器位于你的局域网内,Replicate的服务器无法直接访问它。Ngrok创建了一个从公网到你本地4000端口的安全通道,使得Replicate可以将通知成功发送到你的本地应用。
微信微博Email复制链接