折腾几个月做了个不用登录就能改图的 AI 编辑站,顺便聊聊 Cloudflare Workers 上跑 AI 工作流踩的坑

yyy 2026-08-29 02:29 1

正文


大家好。做独立开发的,前几个月一直在拿 Nano Banana 和 GPT Image 2 帮朋友批量改图 —— 每次都要开桌面工具、开 API 、开命令行,朋友那边发张原图过来再截屏发过去。烦了。


于是想:能不能就一个网页,打开就能改,不用登录、不用交钱、不用装桌面客户端?做出来了,叫 FluxDream 。


链接: https://fluxdream.com


现在能干嘛


网页里就是一堆常见的图片编辑动作,选一个上传原图,写几个字或者不写,出图:



  • Photo to Cartoon — 把照片改成卡通/动漫风

  • Make Photo Realistic — 反过来把 AI 图 / 手绘做成真实照片质感

  • Polaroid Photo Maker — 拍立得风,带边框和光晕

  • Relight Photo — 换光照方向 / 换色温 / 换白天黑夜

  • Remove Unwanted Objects — 涂掉画面里不想要的东西

  • AI Portrait Editor — 表情、发型、服装、场景改写


模型层是 Nano Banana 和 GPT Image 2 为主,Flux 系列作为可选保留。


免费额度(讲清楚,不玩虚的)



  • 不登录: 每 24 小时滚动窗口有 1 次免费编辑,直接用

  • 注册: 送 10 credits,7 天有效

  • 订阅: $15/月 → 120 credits/月

  • 一次性包: $12.99 起(100 credits,30 天有效),$24.99 / $39.99 / $59.99 依次


一张图大概 1–3 credits 不等,看模型和分辨率。


技术栈(V2EX 应该更想看这段)


全栈 all-in Cloudflare,没有 Node server,没有独立后端:



  • 前端 + SSR: TanStack Start(React 19,file-based routing,server functions)

  • 运行时: Cloudflare Workers,一份代码同时跑 SSR 、API 、webhook 、cron

  • 数据库: D1(SQLite on the edge)+ Drizzle ORM

  • 对象存储: R2(生成图、用户上传)

  • 缓存 / 限流状态: Workers KV

  • 长任务: Cloudflare Workflow —— 图片生成排队 / 重试 / guest 编辑各一条独立 workflow,断电不丢任务

  • 鉴权: Better Auth(Google + 邮箱密码,session 存 D1)

  • 支付: Stripe + Creem 双通道,通过环境变量切换

  • 邮件: Cloudflare Email Routing 出站

  • 国际化: Paraglide,en/zh 两套,构建期编译成纯函数

  • 部署: wrangler deploy,dev / staging / production 三份 wrangler config

  • CI/CD: 本地 pnpm deploy:production 一条命令,ECC pre-push hook 会先跑 typecheck + build


踩过的坑,挑几个说



  1. Workers 冷启动 + SSR 首屏水合: Bundle 一大就 startup 慢,router chunk 1.3MB / worker-entry 1.4MB 都是靠 code-splitting 和 lazy route 才压下来的,现在冷启动 55ms 。

  2. D1 batch write 上限: 一次性写 1000 行以上会 D1_ERROR,后来所有批量任务都走 Workflow,天然分段。

  3. R2 public URL 的 og:image: 之前给 prompt 卡片配 og:image 直接用了相对路径,Google Search Console 抓不到,后面统一走 getImageUrl() 强制 absolutize 。

  4. Guest edit 防滥用: 只靠 IP 太粗,加了 Cloudflare Turnstile + 24h rolling 窗口 + KV 状态,滥用曲线基本压平。

  5. 付费墙的 SEO: Google 现在允许 JS 付费墙,但要 isAccessibleForFree:false + hasPart.cssSelector,不能 cloaking 。这次审计才补上。


已知不足(讲了会舒服)



  • 国内节点: Cloudflare 在部分省份 / 运营商延迟偏高,首屏可能 3–5s 。正在评估要不要加一层 CN 加速。

  • 模型排队: 高峰期 GPT Image 2 偶尔 20s+,Nano Banana 稳定一些。UI 有排队状态提示,但没法缩短模型端时间。

  • 中文界面: 有 zh 版本,但少数长文案还偏"翻译腔",在改。

  • 没有 API: 目前只有网页端。如果需求多会开。


想问几个问题



  1. 免费额度设成"24h 一张不登录" + "注册送 10 张 7 天",这个门槛你觉得低了还是高了?

  2. 六个内置工具里最像伪需求的是哪个?最想要但没有的是哪个?

  3. 有没有兴趣要 API?收费怎么定你觉得合理?


被喷 / 被指出 bug / 被建议加功能都欢迎。看到了都会回。谢谢。

最新回复 (5)
  • gameziyi 08-29 11:11
    1
    注册送 10 张 7 天,这个会更好一点,但一定要注意防止被刷
  • foryou2023 08-29 14:07
    2
    1.门槛还好
    2.感觉你没有想清楚你的用户群体是啥,这个个人感觉先从你之前的接触的放一个功能试试,或者埋点看看用户选择多的功能是那个。如果成本低的话,建议放开一点免费的额度注册的用户多给一点额度,看看用户选择什么功能。
    3.还行。


    多研究竞争对手,同行是最好的老师,问路人作用不大。
  • yyy 楼主 08-30 00:08
    3
    @gameziyi #1 好 我对比分析一下现在的方案
  • yyy 楼主 08-30 00:10
    4
    @foryou2023 #2 我试看看冷启动
  • abelce 08-30 17:11
    5
    模型排队: 是正常的,这个做异步处理就行了;我们是生成好后 SSE 推送
* 帖子来源V2EX
返回