Byg · AI-fotografi-SaaS

Byg en AI-produktfotograferingstjeneste

I én sætning

Opret en Photta API-nøgle pr. tenant (eller en delt pulje, hvis volumen er lille), fan ud over hver kundes katalog ind i en kø, kald /api/v1/tryon/apparel pr. produkt, lav polling på generations-id'erne i en worker-pulje, gem resultaterne i din kundes bucket, og fakturer hver afregnelige enhed (credit eller renderet billede) med en avance oven i Phottas credit-pris.

  • Credits: 5 credits ved 2K · 6 credits ved 4K
  • Typisk tid: 1.5–4 min
  • Behandling: async, polling

Hvert tal på denne side stammer fra Photta API-dokumentationen · tjekket

Fan ud over dine kunders kataloger, afsend try-on-jobs pr. produkt, fakturer pr. credit. De samme byggeklodser, som Photta stiller til rådighed for individuelle udviklere, kan sammensættes til en white-label-SaaS — hvis du overholder grænserne.

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')

Sådan virker det

Fra én nøgle til en multi-tenant-tjeneste

Fem arkitekturbeslutninger, du skal træffe, før du skriver produktionskode.

  1. Trin 1

    Definer din produktkontrakt

    Beslut, hvad din kunde får pr. faktureringsenhed: ét renderet billede? Et batch? En månedlig credit-pulje? Dit svar styrer alt andet — kødybde, retry-politik, ordlyd på prissiden.

  2. Trin 2

    Opret Photta-nøgler pr. tenant

    Lille skala: én samlet nøgle, spor forbrug pr. tenant i din database. Større skala: én Photta-nøgle pr. tenant, administreret via Photta-dashboardet — tydeligere allokering, mindre skadesomfang ved et læk.

  3. Trin 3

    Fan ud via en kø

    Sæt et foto-job i kø for hvert produkt i kundens feed. Indsend aldrig synkront under en CSV-import — du rammer rate limitet på 600 forespørgsler pr. minut og taber jobs på grund af 429'ere.

  4. Trin 4

    Avance oven på credit-prisen

    Hver 4K-tøjrendering koster dig 6 credits. Hver faktura, du sender, bør være credits × din avance. Registrer den rå credit-omkostning i din journal, så økonomiafdelingen kan afstemme Phottas faktura med din omsætning.

  5. Trin 5

    Overvåg latenstid og fejlrate

    Spor eksekveringstid + fejlrate pr. tenant. Når en kundes fotos konsekvent tager mere end 4 minutter eller fejler gentagne gange, skyldes det næsten altid et dårligt input (defekt URL, ikke-understøttet product_type) — ikke et Photta-problem.

Tre mønstre, du får brug for

Fanout, afsendelse pr. tenant, forbrugsjournal — de bærende elementer i en fotografi-SaaS.

// 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
});

Spørgsmål udviklere stiller

Drift af en tjeneste oven på Photta

Behøver jeg en separat Photta API-nøgle pr. tenant?

Nej, men det hjælper ved skalering. Har du under en håndfuld kunder, er én samlet nøgle med sporing af forbrug pr. tenant i din egen database fin. Derover giver en nøgle pr. tenant dig renere allokering, nemmere rotation og et mindre skadesomfang, hvis noget lækkes.

Hvad gør jeg, når jeg løber tør for credits?

API'et returnerer 402 insufficient_credits med antal påkrævede og tilgængelige credits. Sæt en minimumsgrænse (f.eks. 100 credits) og fyld automatisk op, før jobs begynder at fejle. Fejlede jobs refunderer deres credits, så en bølge af 402-fejl forværrer ikke skaden.

Hvordan bør jeg prissætte min service?

Photta tager 5 credits ved 2K, 6 credits ved 4K. Konverter det til din detailvaluta (omkostning × din margin × credit-omregning), og beslut, om du vil fakturere pr. billede, pr. batch eller pr. måned. De fleste SaaS-produkter inden for fotografi ender med at fakturere pr. billede med et månedligt minimum.

Hvilke SLA'er tilbyder Photta?

Phottas dokumenterede fuldførelsesvindue er 1.5 til 4 minutter pr. job. Der er ikke offentliggjort en bindende oppetids-SLA. Hvis din SaaS lover sin egen leveringstid, så indbyg slacket i din egen kontrakt (f.eks. giver 'fotos leveret inden for 1 time' dig 10x frirum), og monitorer latency pr. tenant for at fange regressioner tidligt.

Kan jeg white-label outputtet?

Ja. De returnerede billeder bærer ikke Photta-branding. Du kan levere dem til din kundes bucket med dit eget CDN-domæne foran — din kunde behøver aldrig at vide, at Phottas pipeline har genereret dem. Selve API'et er ikke white-label — nøglen + dashboardet er Photta-brandet.

Lancér en fotograferings-SaaS oven på Photta

Samme API, dit brand, din margin. Hent en API-nøgle, integrer de tre mønstre ovenfor i dine workers, og så er du halvvejs mod lancering.