Pikaopas

Ensimmäinen Photta-kuva alle viidessä minuutissa.

Yhdellä lauseella

Rekisteröidy osoitteessa ai.photta.app, klikkaa Generate API key, vie se muuttujaan PHOTTA_API_KEY, tee POST osoitteeseen /api/v1/tryon/apparel ja tee palautetulle generation ID:lle pollingia 3 sekunnin välein, kunnes tilaksi vaihtuu completed — tyypillisesti 1.5–4 minuutissa.

  • Autentikointi: Bearer-avain
  • Käsittely: asynkroninen, polling
  • Rajoitukset: 600 pyyntöä/min

Jokainen luku tällä sivulla on peräisin Photta-rajapinnan dokumentaatiosta · tarkistettu

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

Miten se toimii

Viisi komentoa nollasta ensimmäiseen kuvaan

Liitä ne terminaaliin järjestyksessä. Jokainen koodinpätkä on omavarainen ja käyttää vain työkaluja curl + jq.

  1. Vaihe 1

    Luo API-avain

    Rekisteröidy osoitteessa ai.photta.app ja avaa Developers-hallintapaneeli. Klikkaa Generate API key — tuotantoavaimet alkavat etuliitteellä photta_live_. Vie se ympäristömuuttujaksi, jotta läpikäynnin loppuosa voi lukea sen shellistäsi.

    # https://ai.photta.app → Developers → Generate API key
    export PHOTTA_API_KEY="photta_live_xxxxx"
    export PHOTTA_BASE_URL="https://api.photta.app/api/v1"
  2. Vaihe 2

    Tee POST ensimmäistä try-onia varten

    Tee kutsu endpointiin /api/v1/tryon/apparel tuotekuvan URL-osoitteella ja mallinuken mannequin ID:llä. API vastaa välittömästi 202 Accepted ja palauttaa generation ID:n kentässä data.id.

    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')
  3. Vaihe 3

    Tee pollingia valmistumiseen asti

    Tee GET /api/v1/tryon/apparel/:id 3 sekunnin välein. Tyypillinen valmistumisaika on 1.5–4 minuuttia. Aseta yrityskerroille yläraja, jotta jumiutunut työ ei pysäytä skriptiäsi ikuisesti.

    # $ID is data.id from the POST response. Poll every 3 seconds until status is "completed" or "failed".
    for i in $(seq 1 120); do
      RESULT=$(curl -s "https://api.photta.app/api/v1/tryon/apparel/$ID" -H "Authorization: Bearer $PHOTTA_API_KEY")
      STATUS=$(echo "$RESULT" | jq -r '.data.status')
      [ "$STATUS" = "completed" ] && break
      [ "$STATUS" = "failed" ] && echo "generation failed" && exit 1
      sleep 3
    done
    echo "$RESULT" | jq -r '.data.output_url'
  4. Vaihe 4

    Tallenna lopputulos pysyvästi

    Kun tilaksi vaihtuu completed, data.output_url sisältää renderöidyn kuvan. Lataa tavut omaan tallennustilaasi, jotta tuotteesi ei ole riippuvainen Photta:n CDN:stä renderöinnissä.

    OUTPUT_URL=$(echo "$RESULT" | jq -r '.data.output_url')
    curl -sO "$OUTPUT_URL"
    echo "Saved $(basename "$OUTPUT_URL")"
  5. Vaihe 5

    Käsittele virhetilanteet rehellisesti

    Haarauta logiikka HTTP-tilakoodin mukaan: 402 jos credits ei riitä, 429 rate limit -rajoituksille (noudata Retry-After-otsaketta), 5xx väliaikaisille palvelinvirheille. Jokainen virhevastaus sisältää koneluettavan error.code-kentän, johon voit reagoida koodissa.

    case "$STATUS_CODE" in
      402) echo "insufficient_credits_error — top up before retrying" ;;
      429) echo "rate_limit_error — wait the Retry-After seconds (30 by default)" ;;
      4??) echo "$BODY" | jq '.error.type, .error.message' ;;
      5??) echo "api_error — retry with backoff" ;;
    esac

Kehittäjien usein kysymää

Kysymyksiä aloittamisesta

Kuinka kauan pika-aloitus kestää?

Viisi minuuttia rekisteröitymiseen + avaimen luontiin + ensimmäiseen cURL-kutsuun. Itse generointi kestää 1.5–4 minuuttia, joten varaa kymmenen minuuttia ennen kuin näet ensimmäisen on-model-kuvasi.

Tarvitsenko luottokortin kokeilemiseen?

Uusilla tileillä on mukana kokeiluun tarkoitettuja credits-yksiköitä, joita voit käyttää ennen maksamista. Kun olet valmis tuotantoon, tilaa paketti saadaksesi suuremman kuukausittaisen credits-saldon ja korkeammat rate limit -rajat.

Mitä endpointia minun kannattaa kokeilla ensin?

Vaatteiden try-on (/api/v1/tryon/apparel) — se on käytetyin, sen dokumentaatio on kattavin ja se käyttää samaa async + polling -mallia kuin kaikki muutkin Photta-endpointit. Kun hallitset sen, korut ja ghost mannequin toimivat täsmälleen samalla tavalla.

Voinko ajaa tämän selaimesta?

Et. API-avaimesi on pysyttävä palvelinpuolella — sen toimittaminen selaimeen vuotaa sen jokaiselle vierailijalle. Reititä kutsut oman backendisi kevyen proxyn kautta (Next.js route handler, Express, Flask, Lambda) ja anna selaimen kommunikoida proxysi kanssa.

Liittyvät sivut

Jokainen luku tällä sivulla on peräisin Photta-rajapinnan dokumentaatiosta · tarkistettu

Olet viiden minuutin päässä ensimmäisestä kuvastasi

  • Bearer-avain
  • asynkroninen, polling
  • 600 pyyntöä/min