Pro API: kør cloud-rendering fra din egen server
Alt hvad appen gør online (billeder, retouchering, videoer, trænede karakterer) er også tilgængeligt via HTTP, til samme pris i credits, uden at appen behøver at være åben. Du styrer det fra din egen server, dine scripts eller din agent, ved hjælp af credits på din licens.
Tilgængelig med Pro-licensen. Nøglen oprettes i appen under Indstillinger > API.
| Base | https://api.tendre.ai/pro/v1 |
| Godkendelse | header Authorization: Bearer tk_pro_... |
| Format | JSON ind og ud, PNG til billeder, MP4 til videoer |
| Maskindokumentation | openapi-pro.yaml (OpenAPI 3.0), til generering af en klient |
Hent en nøgle
I appen med en Pro-licens: Indstillinger > API > Ny nøgle. Giv den et navn (f.eks. "produktionsserver"), vælg dens tilladelser og, hvis du vil, et dagligt credit-loft og en udløbsdato.
Nøglen vises kun én gang. Kopiér den med det samme. En mistet nøgle erstattes, den kan aldrig gendannes.
- Maksimalt tre aktive nøgler pr. licens. Nok til at rotere én uden at afbryde tjenesten: opret den nye, installér den, tilbagekald den gamle.
- En nøgle er ikke en plads. Din computer og din telefon kan stadig bruges sideløbende.
- En nøgle er dine credits værd. Læg den aldrig på en webside, i en distribueret app eller i et offentligt repository. Giv den et dagligt credit-loft, så snart den lever på en server.
Hvad en nøgle må gøre
| Tilladelse | Hvad den tillader |
|---|---|
| Læs | Altid tildelt: render-status, fildownload, saldo, karakterliste |
| Billeder | Indsend og annullér billeder (generering, retouchering, variation) |
| Videoer | Indsend og annullér videoer |
Et kald ud over nøglens tilladelser svarer med 403 portee_manquante, med den manglende
tilladelse i portee.
Render-livscyklus
Altid de samme tre trin.
- Indsend.
POST /imagesellerPOST /videos. Øjeblikkeligt svar med etjobIdog prisen. - Poll.
GET /images/{jobId}ellerGET /videos/{jobId}, hvert 3. sekund, indtilstatusercompletedellerfailed. - Download.
GET /images/{jobId}/fileellerGET /videos/{jobId}/file, så snart status ercompleted. Filen gemmes ikke, så download den uden at vente.
Omtrentlige tider: 10 til 40 sekunder for et billede, 1 til 5 minutter for en video, længere når motoren starter koldt.
Dit første kald
KEY=tk_pro_...
B=https://api.tendre.ai/pro/v1
curl -s $B/credits -H "Authorization: Bearer $KEY"
{ "balance": 1830, "licenseId": "lic_...", "key": "k_1a2b3c4d",
"limits": { "concurrent": 2, "perMinute": 60, "perDay": 0 }, "running": 0 }
Hvis det svarer, virker alt det øvrige.
Et komplet render, tre måder
bash
KEY=tk_pro_...
B=https://api.tendre.ai/pro/v1
JOB=$(curl -s $B/images -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"prompt":"a lighthouse at dawn, photorealistic","width":1216,"height":832}' | jq -r .jobId)
until curl -s $B/images/$JOB -H "Authorization: Bearer $KEY" | grep -q '"completed"'; do sleep 3; done
curl -s $B/images/$JOB/file -H "Authorization: Bearer $KEY" -o lighthouse.png
PowerShell
$H = @{ Authorization = "Bearer tk_pro_..." }
$B = "https://api.tendre.ai/pro/v1"
$job = Invoke-RestMethod -Uri "$B/videos" -Method Post -Headers $H -ContentType "application/json" `
-Body '{"prompt":"waves on a beach at sunset, gentle wind","width":1080,"height":1920,"audio":true}'
do { Start-Sleep 5; $s = Invoke-RestMethod -Uri "$B/videos/$($job.jobId)" -Headers $H } while ($s.status -eq "pending")
Invoke-WebRequest -Uri "https://api.tendre.ai$($s.file_url)" -Headers $H -OutFile beach.mp4
Python
import time, requests
KEY, B = "tk_pro_...", "https://api.tendre.ai/pro/v1"
H = {"Authorization": f"Bearer {KEY}"}
job = requests.post(f"{B}/videos", headers=H, json={"prompt": "waves on a beach at sunset, gentle wind", "audio": True}).json()
while (s := requests.get(f"{B}/videos/{job['jobId']}", headers=H).json())["status"] == "pending":
time.sleep(3)
if s["status"] == "completed":
open("beach.mp4", "wb").write(requests.get("https://api.tendre.ai" + s["file_url"], headers=H).content)
else:
print("failed:", s.get("detail"))
Hvad er næste skridt
- Billeder: generering, de tre retoucheringstilstande, karakterer.
- Videoer: formater, prisgitteret, start- og slutbilleder.
- Konto: saldo, lofter, trænede karakterer, aktivitet.
- Grænser og fejl: lofter, alle fejlkoder, god praksis.
Hvad der endnu ikke er der
I den planlagte rækkefølge: karaktertræning fra dine egne fotos, stemmer, opskalering til 2K, et fast seed til at reproducere et render, og webhooks så du kan stoppe med at polle.
API'en er versioneret. Alt beskrevet her forbliver gyldigt under /pro/v1: tilføjelser bryder aldrig
det eksisterende, og en brydende ændring ville blive leveret som /pro/v2.