我如何使用30+模型构建AI产品摄影流水线(Next.js + Express + Replicate/FAL)
I’m happy to translate the article for you, but I don’t have the article’s content available. Could you please paste the text you’d like translated (excluding the source line you already provided)? Once I have the content, I’ll translate it into Simplified Chinese while preserving the original formatting, markdown, and technical terms.
概述
PixelMotion 是一款 SaaS,能够将单张产品照片转换为增强图像和 AI 生成的视频。该平台抽象化了 30 多个 AI 模型的复杂性,处理从背景去除到视频生成的全部工作。
Stack
| 层级 | 技术 |
|---|---|
| 前端 | Next.js 15 (App Router) • TailwindCSS |
| 后端 | Express.js • TypeScript • PostgreSQL (Sequelize ORM) |
| AI 提供商 | Replicate • FAL AI • OpenAI |
| 存储 | Google Cloud Storage |
| 支付 | Stripe (usage‑based credits) |
架构流程
User Upload → Website Scraper → AI Analysis → Model Selection → Enhancement/Generation → Storage → Delivery
统一的 LLM 服务
单一服务对各供应商不同的 API 进行统一。
// Simplified model orchestration
const result = await llmService.generate({
provider: model.provider, // 'replicate' | 'fal' | 'openai'
model: model.id,
input: normalizedParams,
webhook: callbackUrl,
});
每个供应商适配器实现各自的重试逻辑、超时处理和错误映射,因此添加新模型只需更改配置。
回退链
AI 模型可能因速率限制、冷启动或更新而失败。回退链可确保连续性。
const ENHANCEMENT_CHAIN = [
{ model: 'flux-pro-v2', provider: 'replicate' },
{ model: 'flux-pro', provider: 'fal' },
{ model: 'stable-diffusion-xl', provider: 'replicate' },
];
如果主模型失败或超时,系统会自动尝试下一个模型,保持用户体验的流畅。
积分系统
不同模型的费用各不相同。与统一订阅不同,积分系统为每次生成分配一定的积分费用。
| Model | 积分 | 约成本 |
|---|---|---|
| Flux 2 Pro (photo) | 2 | ~ $0.05 |
| Kling 1.6 (video) | 5 | ~ $0.13 |
| Sora 2 (video) | 20 | ~ $0.50 |
| Veo 3.1 (video) | 25 | ~ $0.65 |
用户可以根据预算和质量需求选择模型。
商店集成与提示生成
当用户连接他们的电子商务商店时,平台:
- 抓取产品数据。
- 使用 GPT‑4o 进行分析:
- 产品类别和类型
- 目标受众
- 品牌美学
- 产品的最佳 AI 模型
分析结果用于生成提示,例如,奢华手表会得到不同于厨房小工具的处理方式。
作业队列与前端轮询
AI 生成需要 30–120 秒。作业队列模式管理工作流:
- 用户提交请求 → 创建作业(
pending状态)。 - 后端分发到选定的 AI 提供商。
- 前端通过自定义 Hook 每 3 秒轮询一次。
- Webhook 或轮询将作业标记为
completed。
// Frontend polling hook (simplified)
const useGenerationStatus = (jobId: string) => {
const [status, setStatus] = useState('pending');
useEffect(() => {
const interval = setInterval(async () => {
const res = await api.get(`/jobs/${jobId}`);
setStatus(res.data.status);
if (res.data.status === 'completed') clearInterval(interval);
}, 3000);
return () => clearInterval(interval);
}, [jobId]);
return status;
};
Lessons Learned
- 验证模型输出 – 空白图像、损坏文件或完全错误的结果必须在提供之前过滤。
- 成本管理 – 实施每用户速率限制和每日费用警报;否则费用可能会迅速激增。
- 提示工程比模型选择更重要 – 在更便宜的模型上精心设计的提示往往胜过在昂贵模型上糟糕的提示。
- Webhook 不可靠 – 对 Replicate 和 FAL 都要准备轮询回退方案。
- 用户关心结果,而非模型 – 根据产品类型自动选择最佳模型比向用户展示模型列表更能提升满意度。
当前工作
- 多照片视频生成(结合多个角度)。
- 使用 AI 虚拟形象的 UGC 风格视频生成。
- 从平台直接发布到 TikTok/YouTube。
Call to Action
如果您正在使用 AI API 开发,并且想讨论多提供商编排、回退模式或积分系统,欢迎留下评论。我很乐意深入探讨这些主题中的任何一个。
现场演示
在 pixelmotion.io 查看产品。
构建于: Next.js 15, Express.js, PostgreSQL, Replicate, FAL AI, 和 OpenAI.