Rakenna · AI-valokuvaus-SaaS
Rakenna AI-tuotekuvauspalvelu
Yhdellä lauseella
Provisioi Photta API -avain asiakaskohtaisesti (tai käytä jaettua avainta pientuotannossa), hajauta kunkin asiakkaan tuotekatalogi jonoon, kutsu /api/v1/tryon/apparel tuotekohtaisesti, hoida generation ID -tunnisteiden polling worker-poolissa, tallenna tulokset asiakkaasi bucketiin ja laskuta jokainen laskutettava yksikkö (credit tai renderöity kuva) marginaalilla Phottan credit-kustannuksen päälle.
- Credits: 5 credits resoluutiolla 2K · 6 credits resoluutiolla 4K
- Tyypillinen kesto: 1.5–4 min
- Käsittely: asynkroninen, polling
Jokainen luku tällä sivulla on peräisin Photta-rajapinnan dokumentaatiosta · tarkistettu
Hajauta työt asiakkaidesi tuotekatalogien yli, lähetä try-on-työt tuotekohtaisesti ja laskuta credit-perusteisesti. Samat primitiivit, jotka Photta tarjoaa yksittäisille kehittäjille, skaalautuvat white-label-SaaS-palveluksi — kunhan huomioit rajapinnan reunaehdot.
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')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.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/tryon/apparel",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"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."
},
)
data = res.json()["data"] # data["id"], data["status"]Miten se toimii
Yhdestä avaimesta moniasiakasympäristöön
Viisi arkkitehtuuripäätöstä, jotka sinun on tehtävä ennen tuotantokoodin kirjoittamista.
Vaihe 1
Määrittele tuotesopimuksesi
Päätä, mitä asiakkaasi saa laskutusyksikköä kohden: yhden renderöidyn kuvan? Erän? Kuukausittaisen credit-poolin? Vastauksesi ohjaa kaikkea muuta — jonon syvyyttä, retry-käytäntöä ja hinnoittelusivun tekstejä.
Vaihe 2
Provisioi Photta-avaimet asiakaskohtaisesti
Pieni mittakaava: yksi jaettu avain, seuraa asiakaskohtaista käyttöä omassa tietokannassasi. Suurempi mittakaava: yksi Photta-avain asiakasta kohden Phottan hallintapaneelista hallittuna — selkeämpi kohdistus ja pienempi vaikutusalue avainvuodoissa.
Vaihe 3
Hajauta jonon kautta
Lisää valokuvatyö jonoon jokaiselle asiakkaan syötteen tuotteelle. Älä koskaan lähetä pyyntöjä synkronisesti CSV-tuonnin aikana — saavutat 600 pyynnön minuuttikohtaisen rate limitin ja menetät töitä 429-virheisiin.
Vaihe 4
Marginaali credit-hinnan päälle
Jokainen 4K-vaaterenderöinti maksaa sinulle 6 credits. Jokaisen lähettämäsi laskun tulisi olla credits × marginaalisi. Kirjaa raaka credit-kustannus kirjanpitoosi, jotta taloushallinto voi täsmäyttää Phottan laskun liikevaihtoosi.
Vaihe 5
Valvo viivettä ja virheprosenttia
Seuraa valmistumisaikaa ja virheprosenttia asiakaskohtaisesti. Kun asiakkaan valokuvat kestävät toistuvasti yli 4 minuuttia tai epäonnistuvat jatkuvasti, syynä on lähes aina virheellinen syöte (rikkinäinen URL, ei-tuettu product_type) — ei ongelma Phottassa.
Kolme tarvitsemaasi mallia
Hajautus, asiakaskohtainen lähetys, laskutusloki — valokuvaus-SaaS-palvelun kantavat rakenteet.
// 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
});Kehittäjien usein kysymää
Palvelun pyörittäminen Phottan päällä
Tarvitsenko erillisen Photta API -avaimen kullekin asiakkaalle?
Et, mutta se auttaa skaalattaessa. Muutaman asiakkaan kohdalla yksi jaettu avain asiakaskohtaisella käytönseurannalla omassa tietokannassasi riittää. Tämän jälkeen asiakaskohtainen avain tarjoaa selkeämmän kohdistuksen, helpomman kierrätyksen ja pienemmän vaikutusalueen tietovuodon sattuessa.
Mitä teen, kun credits loppuvat?
API palauttaa virheen 402 insufficient_credits sekä vaaditut (required) ja saatavilla olevat (available) määrät. Aseta hälytysraja (esim. 100 credits) ja lataa saldoa automaattisesti ennen kuin työt alkavat epäonnistua. Epäonnistuneet työt palauttavat credits-yksikkönsä, joten 402-virheiden ryöppy ei pahenna vahinkoa.
Miten minun tulisi hinnoitella palveluni?
Photta veloittaa 5 credits resoluutiolla 2K ja 6 credits resoluutiolla 4K. Muunna tämä vähittäismyyntivaluutaksesi (kustannus × katteesi × credit-muunnos) ja päätä, laskutatko per kuva, per erä vai kuukausitasolla. Useimmat valokuvaus-SaaS-tuotteet päätyvät laskuttamaan kuvalatauskohtaisesti kuukausiminimillä.
Mitä SLA-tasoja Photta tarjoaa?
Phottan dokumentoitu valmistumisaika on 1.5–4 minuuttia per työ. Sitovaa uptime-SLA:ta ei ole julkaistu. Jos oma SaaS-palvelusi sitoutuu tiettyyn läpimenoaikaan, rakenna pelivara omaan sopimukseesi (esim. 'kuvat toimitetaan 1 tunnin sisällä' antaa 10-kertaisen liikkumavaran) ja seuraa vuokralaiskohtaista viivettä havaitaksesi suorituskyvyn heikkenemiset ajoissa.
Voinko white-labeloida tuotoksen?
Kyllä. Palautetuissa kuvissa ei ole Photta-brändäystä. Voit toimittaa ne asiakkaasi bucketiin oman CDN-domainisi kautta — asiakkaasi ei tarvitse koskaan tietää, että Phottan putki tuotti ne. Itse API ei ole white-label — avain ja hallintapaneeli ovat Photta-brändättyjä.
Liittyvät sivut
Referenssi
Ominaisuudet
Virtuaalinen try-on API vaatteille
REST API, joka asettaa vaatteet tekoälymallinukkejen päälle. Asynkroninen, 1.5–4 minuutin generointi, 5 credits resoluutiolla 2K, 6 resoluutiolla 4K. cURL-, Node.js- ja Python-esimerkit.
LuePikaopas
Ensimmäinen Photta-kuva alle viidessä minuutissa.
Rekisteröidy, luo API-avain, suorita ensimmäinen cURL-kutsusi, tee pollingia valmistumiseen asti ja tallenna tulos. Viisi vaihetta, dokumentoitu alusta loppuun.
LueOminaisuudet
Ghost mannequin API näkymättömän mallinuken tuotekuviin
Tekoälypohjainen ghost mannequin -endpoint. Poista nukke vaatekuvasta ja säilytä sisäpuolen yksityiskohdat. 3D tai flat-lay, eräajo, 4 credits resoluutiolla 2K.
Lue
Jokainen luku tällä sivulla on peräisin Photta-rajapinnan dokumentaatiosta · tarkistettu
Rakenna valokuvaus-SaaS Phottan päälle
Sama API, oma brändisi, oma katteesi. Ota API-avain, kytke yllä olevat kolme mallia työntekijöihisi (workers), ja olet puolivälissä julkaisua.