Geliştirin · Yapay Zeka Fotoğrafçılık SaaS

Bir yapay zeka ürün fotoğrafçılığı servisi geliştirin

Tek cümlede

Her kiracı için bir Photta API anahtarı tanımlayın (veya hacim düşükse havuzda toplayın), her müşterinin kataloğunu bir kuyruğa dağıtın, ürün başına /api/v1/tryon/apparel çağrısı yapın, generation ID'lerini bir worker havuzunda yoklayın, sonuçları müşterinizin bucket'ında depolayın ve Photta'nın credit maliyetinin üzerine kendi marjınızı ekleyerek faturalandırılabilir her birimi (credit veya render edilmiş görsel) faturalandırın.

  • Credits: 2K'da 5 credits · 4K'da 6 credits
  • Tipik süre: 1.5–4 min
  • İşleme: asenkron, polling

Bu sayfadaki her veri şuradan alınmıştır: Photta API dokümantasyonu · kontrol edildi

Müşterilerinizin kataloglarına paralel olarak dağılın, ürün başına try-on işleri gönderin, harcanan credit üzerinden faturalandırın. Photta'nın bağımsız geliştiricilere sunduğu temel yapı taşları, sınırları doğru çizdiğiniz takdirde white-label bir SaaS'a dönüşebilir.

RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/tryon/apparel \
  -H "Authorization: Bearer $PHOTTA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "product_type": "top",
  "product_images": [
    "https://cdn.yourstore.com/products/shirt-front.jpg"
  ],
  "product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
  "product_category": "t_shirt",
  "mannequin_id": "mnk_f3a9b1",
  "pose_id": "pose_c2d4e5",
  "background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
  "lock_background": true,
  "resolution": "2K",
  "aspect_ratio": "3:4",
  "body_size": "M",
  "expression": "neutral",
  "user_instruction": "Keep the collar pattern crisp and centered."
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')

Nasıl çalışır

Tek anahtardan çok kiracılı bir servise

Prodüksiyon kodu yazmadan önce vermeniz gereken beş mimari karar.

  1. Adım 1

    Ürün sözleşmenizi tanımlayın

    Faturalandırma birimi başına müşterinizin ne alacağına karar verin: tek bir render edilmiş görsel mi? Bir toplu işlem mi? Aylık bir credit havuzu mu? Cevabınız diğer her şeyi belirler — kuyruk derinliği, yeniden deneme politikası, fiyatlandırma sayfası metni.

  2. Adım 2

    Kiracı başına Photta anahtarları tahsis edin

    Küçük ölçek: tek bir havuzlanmış anahtar, veritabanınızda kiracı başına kullanım takibi. Daha büyük ölçek: Photta paneli üzerinden yönetilen, kiracı başına bir Photta anahtarı — daha net ilişkilendirme, bir sızıntı durumunda daha küçük etki alanı.

  3. Adım 3

    Bir kuyruk üzerinden dağıtın (fan out)

    Müşteri akışındaki her ürün için bir fotoğraf işini kuyruğa alın. Bir CSV içe aktarımı sırasında asla senkronize olarak göndermeyin — dakikada 600 istek rate limit sınırına çarpar ve işleri 429 yanıtlarıyla kaybedersiniz.

  4. Adım 4

    Credit fiyatı üzerine marj ekleme

    Her 4K giyim render'ı size 6 credits maliyet getirir. Kestiğiniz her fatura credits × kâr marjınız olmalıdır. Finans ekibinin Photta'nın faturasını gelir kaleminizle mutabık kılabilmesi için ham credit maliyetini muhasebe defterinize kaydedin.

  5. Adım 5

    Gecikme süresini ve hata oranını izleyin

    Kiracı başına tamamlanma süresini + hata oranını takip edin. Bir müşterinin fotoğrafları sürekli olarak 4 dakikadan uzun sürüyorsa veya art arda hata veriyorsa, bu neredeyse her zaman Photta kaynaklı bir sorun değil, bozuk bir girdidir (hatalı URL, desteklenmeyen product_type).

İhtiyacınız olacak üç model

Fanout, kiracı başına dağıtım, faturalandırma defteri — bir fotoğrafçılık SaaS'ının taşıyıcı parçaları.

// For each product in the customer's feed, kick off a try-on.
for (const product of catalog) {
  await photoQueue.add("photo", {
    customerId: product.customer_id,
    productUrl: product.image,
    productType: product.type, // "top" | "bottom" | "top_and_bottom" | "one_piece"
  });
}
const res = await fetch("https://api.photta.app/api/v1/tryon/apparel", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    "product_type": "top",
    "product_images": [
      "https://cdn.yourstore.com/products/shirt-front.jpg"
    ],
    "product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
    "product_category": "t_shirt",
    "mannequin_id": "mnk_f3a9b1",
    "pose_id": "pose_c2d4e5",
    "background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
    "lock_background": true,
    "resolution": "2K",
    "aspect_ratio": "3:4",
    "body_size": "M",
    "expression": "neutral",
    "user_instruction": "Keep the collar pattern crisp and centered."
  }),
});
const { data } = await res.json(); // data.id, data.status
// A completed apparel job costs 5 credits at 2K and 6 at 4K.
// Record it to your billing pipeline so you can margin on top of it.
await billingLedger.append({
  customer: data.customerId,
  sku: "photo-4k",
  quantity: 1,
  wholesaleCost: 6, // credits, = your Photta spend
});

Geliştiricilerin sıkça sorduğu sorular

Photta üzerinde bir servis çalıştırmak

Her kiracı için ayrı bir Photta API anahtarına ihtiyacım var mı?

Hayır, ancak ölçek büyüdüğünde yardımcı olur. Az sayıda müşteri için, kendi veritabanınızda kiracı başına kullanım takibi yapılan tek bir havuzlanmış anahtar yeterlidir. Bunun üzerinde ise kiracı başına bir anahtar; daha temiz ilişkilendirme, daha kolay rotasyon ve bir sızıntı durumunda daha küçük bir etki alanı sağlar.

Credit'ler bittiğinde ne yapmalıyım?

API, gerekli ve mevcut miktarlarla birlikte 402 insufficient_credits döndürür. Bir alt sınır belirleyin (örneğin 100 credits) ve işler başarısız olmaya başlamadan önce otomatik olarak yükleme yapın. Başarısız olan işlerin credit'leri iade edilir, bu nedenle ani bir 402 dalgası hasarı katlamaz.

Hizmetimi nasıl fiyatlandırmalıyım?

Photta 2K için 5 credits, 4K için 6 credits alır. Bunu kendi perakende para biriminize dönüştürün (maliyet × kâr marjınız × credit dönüşümü) ve görsel başına, toplu iş başına veya aylık olarak faturalandırıp faturalandırmayacağınıza karar verin. Çoğu fotoğrafçılık SaaS ürünü, aylık bir minimum tutarla görsel başına faturalandırma yapar.

Photta hangi SLA'leri sunuyor?

Photta'nın belgelenmiş tamamlanma penceresi iş başına 1.5 ila 4 dakikadır. Yayımlanmış kesin bir çalışma süresi (uptime) SLA'i yoktur. SaaS ürününüz kendi teslimat süresi taahhüdünü veriyorsa, kendi sözleşmenize esneklik payı ekleyin (ör. 'fotoğraflar 1 saat içinde teslim edilir' size 10x pay sağlar) ve olası performans düşüşlerini erkenden yakalamak için kiracı başına gecikme süresini (latency) izleyin.

Çıktıyı white-label olarak sunabilir miyim?

Evet. Döndürülen görseller Photta markalaması taşımaz. Bunları önünde kendi CDN alan adınız olacak şekilde müşterinizin bucket'ına teslim edebilirsiniz; müşterinizin bunların Photta ardışık düzeni tarafından üretildiğini bilmesine gerek kalmaz. API'nin kendisi white-label değildir; anahtar ve kontrol paneli Photta markalıdır.

Photta üzerinde bir fotoğrafçılık SaaS'ı dağıtıma çıkarın

Aynı API, sizin markanız, sizin marjınız. Bir API anahtarı alın, yukarıdaki üç kalıbı worker'larınıza bağlayın ve lansmanın yarısını tamamlamış olun.