当前位置:首页AI 开源项目StickerBaker:AI贴纸制作工具

StickerBaker:AI贴纸制作工具

StickerBaker是一个完全开源的AI贴纸制作工具。用户只需输入一个提示词,便可以在Sticker Maker上生成独特的贴纸。

home_open_StickerBaker_1

如何工作

在StickerBaker的主页,通过lib/sticker_web/home_live.ex渲染。当用户提交提示词表单后,将触发以下事件处理:

    
 
def handle_event("save", %{"prompt" => prompt}, socket) do
  user_id = socket.assigns.local_user_id

  {:ok, prediction} =
    Predictions.create_prediction(%{
      prompt: prompt,
      local_user_id: user_id
    })

  send(self(), {:kick_off, prediction})

  {:noreply,
   socket
   |> assign(form: to_form(%{"prompt" => ""}))
   |> stream_insert(:my_predictions, prediction, at: 0)}
end

这会发送一个:kick_off消息到LiveView,这样就没有延迟。在lib/sticker/predictions.ex中调用Predictions.moderate/3进行内容审核:

    
 
def moderate(prompt, user_id, prediction_id) do
  "fofr/prompt-classifier"
  |> Replicate.Models.get!()
  |> Replicate.Models.get_latest_version!()
  |> Replicate.Predictions.create(
    %{
      prompt: "[PROMPT] #{prompt} [/PROMPT] [SAFETY_RANKING]",
      max_new_tokens: 128,
      temperature: 0.2,
      top_p: 0.9,
      top_k: 50,
      stop_sequences: "[/SAFETY_RANKING]"
    },
    "#{Sticker.Utils.get_host()}/webhooks/replicate?user_id=#{user_id}&prediction_id=#{prediction_id}"
  )
end

完成审核后,通过Replicate的webhook处理预测队列,这意味着即使刷新页面或断开连接,Replicate仍然可以处理预测队列。

开发和生产环境配置

  • 本地开发:
    • 运行mix setup安装并设置依赖。
    • 创建环境变量文件:cp .env.copy .env
    • 在.env文件中添加你的Replicate和Tigris令牌。
    • 使用ngrok http 4000运行ngrok,并将URL添加到你的.env文件。
    • 通过mix phx.serveriex -S mix phx.server启动Phoenix服务器。
  • 生产环境:
    • 在prod.exs中更新URL和check_origin设置。
    • 使用fly launch进行部署,并确保设置了Postgres数据库。

StickerBaker不仅提供了一个创意和趣味性十足的平台,而且其开源和AI驱动的特性使其在个性化贴纸制作方面具有巨大的潜力。无论是为个人项目增添趣味,还是为商业用途创造独特的品牌贴纸,StickerBaker都是一个值得尝试的工具。

温馨提示:

文章标题:StickerBaker:AI贴纸制作工具

文章链接:https://yuntunft.cn/38396.html

更新时间:2024年07月05日

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索