Pro API: driv molnrendering från din egen server

Allt appen gör online (bilder, retuschering, videor, tränade karaktärer) är också nåbart 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 Settings > API.

Inte utvecklare? Samma sak är nåbart från en AI-agent utan att skriva en enda rad: se MCP.

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

Skaffa en nyckel

I appen, med en Pro-licens: Settings > API > New key. Ge den ett namn (till exempel "produktionsserver"), välj 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 återställs aldrig.

  • Högst tre aktiva nycklar per licens. Tillräckligt för att rotera en utan att avbryta tjänsten: skapa den nya, installera den, återkalla den gamla.
  • En nyckel är inte en plats. Din dator och din telefon går fortfarande att använda vid sidan av den.
  • En nyckel är lika värdefull som dina krediter. Lägg aldrig en nyckel i en webbsida, en distribuerad app eller ett offentligt repository. Ge den ett dagligt kredittak så fort den lever på en server.

Vad en nyckel får göra

BehörighetVad den tillåter
ReadAlltid beviljad: renderingsstatus, filnedladdning, saldo, karaktärslista
ImagesSkicka in och avbryta bilder (generering, retuschering, variation), skapa karaktärer
VideosSkicka in och avbryta videor, Multi-Ref Video och Face swap ingår

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

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 tredje 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

bash
KEY=tk_pro_...
B=https://api.tendre.ai/pro/v1
curl -s $B/credits -H "Authorization: Bearer $KEY"
json
{ "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

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

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

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 utforska härnäst

  • Images: generering, de tre retuscheringslägen, karaktärer.
  • Videos: format, prislistan, start- och slutbildrutor, Multi-Ref Video, Face swap.
  • Characters: ett foto, sju vinklar, för att casta i Multi-Ref Video.
  • Account: saldo, tak, tränade karaktärer, aktivitet.
  • Limits and errors: tak, alla felkoder, god praxis.
  • MCP (agents): koppla in Claude, ChatGPT eller Cursor direkt, utan kod.

Vad som inte finns än

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

Träning är det som är värt ett ord: du kan inte träna via API:et, men du kan ladda upp en .safetensors du redan har och rendera med den direkt. Se Account, credits and characters.

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

Windows · Mac · Moln eller lokalt

Generera privat. Ikväll.

Ladda ner tendre.AI gratis och generera utan gränser, privat, på ditt eget GPU.

OS Windows 10/11GPU NVIDIA 8GB+VRAM 12GB rekommenderasDisk 20GB

Mac: Apple silicon (M1 eller senare), macOS 13 eller senare. Intel-Mac stöds inte.

Lokal bildgenerering på Mac kräver en M4 med 24 GB minne, eller en M2 eller M3 Pro, Max eller Ultra med 24 GB. Under det körs allt online med krediter. Retuschering och video körs online på Mac för tillfället.

Allt om tendre.AI för Mac

Inget NVIDIA-GPU? Börja 100% i molnet: 5 gratis bilder och 1 gratis video varje dag. Ett NVIDIA-kort (8GB+) låser upp obegränsad lokal generering.