我的作品 独立开发分享:基于 TanStack Start + Cloudflare 全家桶撸了一个 4 秒极速 AI 生图工具 NanoScene AI
xiaokeai(Jamie Cole)
·
2026年07月08日
·
139 次阅读
各位 Solo 圈的朋友们好
最近把做的一个小产品 NanoScene AI 搞上线了,这是一个主打极速、低算力成本的 AI 图像生成与编辑的 Web App。因为是自己独立开发的第一步,想在这里真诚地和大家分享一下我的技术方案、遇到的坑以及开发初衷,顺便希望能收获大家的一些真实意见。
一、 为什么想做这个产品?
目前市面上的主流生图工具(比如 Midjourney,或者某些大厂的 SD 托管服务),普遍面临两个痛点:
- 生成延迟长:生一张图往往要等 20s 到几十秒甚至更长,在做 UI Mockup 或者快速脑暴视觉时,频繁的等待非常容易打断工作流。
- 算力成本偏贵:对于非重度用户来说,每个月高昂的订阅费有些浪费。
后来我注意到了 Nano Banana 2 Lite 模型。虽然它是一个 distilled(蒸馏)过的轻量级模型,但生图效率极高,单图推理成本折合下来很低。于是我想,为什么不利用这个引擎,做一个极速、低成本,且在浏览器里开箱即用的生图工作流呢?
二、 技术栈与架构分享
为了让整套服务做到零硬件维护成本,且在冷启动阶段几乎不产生服务器开销,我采用了以下全 Serverless 架构:
- 前端 & 路由框架:TanStack Start (V3)。这是我第一次在生产环境完整体验 TanStack Start,它的 Server Fn (服务端函数) 在处理数据请求时极度顺手,结合 TanStack Query 使得前端状态同步非常舒服。
- 样式与 UI:Tailwind CSS 4 + shadcn/ui。Tailwind CSS 4 的配置比老版本精简了许多,对整体包体积优化也有帮助。
- 后端 & 基础设施:Nitro 框架部署在 Cloudflare Workers。
- 数据库:Cloudflare D1 (SQLite) 数据库,用来存放用户配置、积分和订单数据。
- 国际化:Paraglide JS。对于独立开发出海来说,多语言几乎是标配。Paraglide 在 Nitro/TanStack Start 的路由重写中表现优秀,无缝适配了多语言路径。
因为服务器开销基本就是 Cloudflare 的免费额度或低额计费,所以我们有底气给所有注册用户每天赠送免费额度,供大家随便折腾。
三、 独立开发中踩到的坑
在部署到 Cloudflare Workers 的过程中,有几个细节让我折腾了不少时间,分享给准备走类似技术路线的朋友:
- 敏感 API 密钥的安全性:
起初我打算直接将第三方 AI 接口的 Key 堆在
.env或 Workers 的环境变量中。但这样不方便在运行时灵活切换和控制。后来我们重新设计了流程:把 API 密匙加密存储在 D1 数据库中。读取时,通过一个统一的getAllConfigs()在服务端读取,由解密 Key(存放在 Workers 环境变量中保护)实时解密,且有内存缓存。这个设计虽然多走了一步,但极大地提升了 SaaS 模板后续变现和多接口动态管理的灵活性。 - i18n 路由匹配问题:
由于使用了 Paraglide 编译多语言,非默认语言(如中文)会带有
/zh前缀。这在配合 Nitro 服务端 API 路由时,需要仔细编写重写规则,否则会导致 API 调用 404。建议使用 locale-free 的路径进行内联导航,让路由库自动补全前缀。
四、 目前的功能与下一步计划
目前 NanoScene AI 已经实现了:
- 极速生图:平均生成时间在 4 秒左右。
- 角色一致性 (Character Consistency):允许在不同 prompt 里复用相同角色风格。
- K-level Upscaler:把 1K 的低分辨率快速生成重建为 4K/8K 生产级画面。
- 一键背景移除。
下一步规划: 目前在尝试做基于轻量模型的视频生成能力,如果大家有兴趣,我很乐意在后续帖子中继续分享视频 pipeline 在 Cloudflare Workers 上的踩坑体验。
五、 期待大家的反馈
产品刚上线,肯定有很多不完美的地方(尤其是移动端适配和生图参数的调节)。非常期待社区各位大佬的板砖:
- 这个 4 秒的生图速度,相比你现在用的工具有优势吗?
- 对于这种偏向独立开发者/设计师的 Placeholder 生成,你觉得最缺的刚需功能是什么?
再次感谢大家能读到这里!
暂无回复。