Pro API: styr molnrendering från din egen server

Allt appen gör online (bilder, retuschering, videor, tränade karaktärer) är också tillgängligt via HTTP, till samma pris i krediter, utan att appen behöver vara öppen. Du styr det från din egen server, dina skript eller din agent, med krediterna på din licens.

Tillgängligt med Pro-licensen. Nyckeln skapas i appen under Inställningar > API.

Bashttps://api.tendre.ai/pro/v1
Autentiseringheader Authorization: Bearer tk_pro_...
FormatJSON in och ut, PNG för bilder, MP4 för videor
Maskindokumentationopenapi-pro.yaml (OpenAPI 3.0), för att generera en klient

Hämta en nyckel

I appen med en Pro-licens: Inställningar > API > Ny nyckel. Ge den ett namn (till exempel "produktionsserver"), välj dess behörigheter och, om du vill, ett dagligt kredittak och ett utgångsdatum.

Nyckeln visas bara en gång. Kopiera den direkt. En förlorad nyckel ersätts, den kan aldrig återställas.

  • Högst tre aktiva nycklar per licens. Tillräckligt för att rotera en nyckel utan att avbryta tjänsten: skapa den nya, installera den, återkalla den gamla.
  • En nyckel är inte en plats. Din dator och din telefon kan fortsätta användas parallellt med den.
  • En nyckel är lika värd som dina krediter. Lägg aldrig en nyckel på en webbsida, i en distribuerad app eller i ett publikt repository. Ge den ett dagligt kredittak så snart den lever på en server.

Vad en nyckel får göra

BehörighetVad den tillåter
LäsaAlltid beviljad: renderingsstatus, filnedladdning, saldo, karaktärslista
BilderSkicka in och avbryta bilder (generering, retuschering, variation)
VideorSkicka in och avbryta videor

Ett anrop utanför nyckelns behörigheter svarar med 403 portee_manquante, med den saknade behörigheten i portee.

Renderingslivscykeln

Alltid samma tre steg.

  1. Skicka in. POST /images eller POST /videos. Omedelbart svar med ett jobId och kostnaden.
  2. Polla. GET /images/{jobId} eller GET /videos/{jobId}, var 3:e sekund, tills status är completed eller failed.
  3. Ladda ned. GET /images/{jobId}/file eller GET /videos/{jobId}/file, så snart statusen är completed. Filen sparas inte, så ladda ned den utan att vänta.

Ungefärliga tider: 10 till 40 sekunder för en bild, 1 till 5 minuter för en video, längre när motorn startar kallt.

Ditt första anrop

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 }

Om det svarar fungerar allt annat också.

En komplett rendering, tre sätt

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

Vad du kan göra härnäst

  • Bilder: generering, de tre retuscheringslägen, karaktärer.
  • Videor: format, prisraster, start- och slutramar.
  • Konto: saldo, tak, tränade karaktärer, aktivitet.
  • Gränser och fel: tak, alla felkoder, god praxis.

Vad som inte finns ännu

I planerad ordning: karaktärsträning från egna foton, röster, uppskalning till 2K, ett fast seed för att reproducera en rendering, och webhooks så att du kan sluta polla.

API:et är versionerat. Allt som beskrivs här förblir giltigt under /pro/v1: tillägg bryter aldrig det som redan finns, och en brytande förändring skulle levereras som /pro/v2.

Windows, molnet eller NVIDIA

Generera privat. Ikväll.

Ladda ned tendre.AI, aktivera en gång, och kör det för alltid, helt offline, på din egen GPU.

Ladda ned för WindowsLadda ner för Android (.apk)
Ladda ned för MacMac-version kommer snart!
OS Windows 10/11GPU NVIDIA 8GB+VRAM 12GB rekommenderasDisk 20GB

Inget NVIDIA GPU? Börja 100% i molnet: 10 gratis bilder varje dag, sedan 1 kredit per bild. Ett NVIDIA-kort (8GB+) låser upp obegränsad lokal generering.