大多数AI创意产品的起点都是同一个界面:一个空空荡荡的提示框。然而,对于需要反复产出的产品而言,仅有提示框还远远不够。它在实验阶段很好用,但当做为一个可持续迭代的产品基座时就显得薄弱。
在构建 Photo2Ads 这个AI产品广告工作室时,我反复遇到同样的产品与工程难题:模型能够快速生成结果,可整个应用却总是要求用户围绕这一生成物重新搭建项目。产品图片、创意方向、模型能力、模式专属设置以及生成结果的来源信息,这些都必须比单次请求活得更久。
打开网易新闻 查看精彩图片
第一个重要决策是将图像与视频作为两个独立的草稿来建模。产品概念是共享的,但每种模式都需要保有各自的工作状态。在 React 中只需要根据媒体模式选择对应的状态数组,界面切换时底层的草稿毫发无损。由于设置草稿本身就是 JSON 可序列化的,用浏览器的 localStorage 便足以实现持久化——刷新页面也不怕。
上传的素材资产就不是简单的元数据了。刷新后浏览器可能仍然需要原始 File 对象来完成导出、转换或重新生成。把 File 序列化成 JSON 会丢失二进制数据,仅靠 Blob URL 也不行,因为对象 URL 的生命周期属于当前文档。这时 IndexedDB 就发挥了作用,它能够存储 File 和 Blob 这类结构化克隆兼容的值,完美兜住状态持久化的最后一环。
经过这些架构调整,产品就从单纯的“提示框包装器”走向了有状态的 AI 工作流。用户切换模式、关闭页面再回来,所有关键信息都还在原地。提示框依然是灵感的入口,但当上下文被真正保留下来后,创意才能在一个持续的工作流中被沉淀和迭代。
热门跟贴