30개 이상의 모델로 AI 제품 사진 파이프라인을 구축한 방법 (Next.js + Express + Replicate/FAL)

발행: (2026년 2월 9일 오전 06:11 GMT+9)
7 분 소요
원문: Dev.to

I’m happy to translate the article for you, but I’ll need the full text you’d like translated. Could you please paste the content (excluding the source line you already provided) here? Once I have the article text, I’ll translate it into Korean while preserving all formatting, markdown, and code blocks.

개요

PixelMotion은 단일 제품 사진을 향상된 이미지와 AI‑생성 비디오로 변환하는 SaaS입니다. 이 플랫폼은 30개 이상의 AI 모델의 복잡성을 추상화하여 배경 제거부터 비디오 생성까지 모든 작업을 처리합니다.

Stack

LayerTechnologies
프론트엔드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' },
];

기본 모델이 실패하거나 시간 초과가 발생하면 시스템이 자동으로 다음 모델을 시도하여 사용자 경험을 원활하게 유지합니다.

크레딧 시스템

다양한 모델마다 비용이 다릅니다. 고정 구독 대신, 크레딧 시스템은 생성당 크레딧 비용을 할당합니다.

ModelCreditsApprox. Cost
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

사용자는 예산과 품질 요구 사항에 따라 모델을 선택할 수 있습니다.

스토어 통합 및 프롬프트 생성

사용자가 자신의 전자상거래 스토어를 연결하면, 플랫폼은:

  1. 제품 데이터를 스크랩합니다.
  2. GPT‑4o를 사용하여 분석합니다:
    • 제품 카테고리 및 유형
    • 타깃 청중
    • 브랜드 미학
    • 제품에 최적화된 AI 모델

이 분석은 프롬프트 생성에 반영되어, 예를 들어 고급 시계는 주방 가전과는 다른 방식으로 처리됩니다.

작업 큐 및 프런트엔드 폴링

AI 생성은 30–120 초가 걸립니다. 작업‑큐 패턴은 워크플로를 관리합니다:

  1. 사용자가 요청을 제출 → 작업이 생성됨 (pending 상태).
  2. 백엔드가 선택된 AI 제공자에게 전달.
  3. 프런트엔드가 커스텀 훅을 통해 3 초마다 폴링.
  4. 웹훅 또는 폴링이 작업을 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

  1. Validate model output – 빈 이미지, 손상된 파일, 혹은 완전히 잘못된 결과는 제공하기 전에 필터링해야 합니다.
  2. Cost management – 사용자당 속도 제한 및 일일 비용 알림을 구현하세요; 그렇지 않으면 비용이 급격히 증가할 수 있습니다.
  3. Prompt engineering outweighs model selection – 저렴한 모델에 잘 만든 프롬프트를 사용하는 것이 비싼 모델에 형편없는 프롬프트를 사용하는 것보다 종종 더 효과적입니다.
  4. Webhooks are unreliable – Replicate와 FAL 모두에 대해 항상 폴링 대체 방안을 마련해 두세요.
  5. Users care about results, not the model – 제품 유형에 따라 최적 모델을 자동 선택하면 모델 목록을 사용자에게 노출하는 것보다 만족도가 더 높아집니다.

현재 작업

  • 여러 각도를 결합한 멀티 사진 비디오 생성.
  • AI 아바타를 활용한 UGC 스타일 비디오 생성.
  • 플랫폼에서 TikTok/YouTube로 직접 게시.

행동 촉구

AI API를 사용해 개발하고 계시며 다중 제공자 오케스트레이션, 폴백 패턴, 혹은 크레딧 시스템에 대해 논의하고 싶다면 언제든지 댓글을 남겨 주세요. 해당 주제들에 대해 더 깊이 파고들 준비가 되어 있습니다.

라이브 데모

제품을 확인해 보세요 pixelmotion.io.

구성: Next.js 15, Express.js, PostgreSQL, Replicate, FAL AI, and OpenAI.

0 조회
Back to Blog

관련 글

더 보기 »

sunpeak은 MCP 앱에 전념한다

개요: MCP Apps는 이제 ChatGPT, Claude, Goose 및 VS Code에서 실행됩니다. Claude는 1월 26일에 MCP App 지원을 발표했으며, ChatGPT는 2월 4일에 이를 따랐습니다. 2월 현재…