Pro API: 自分のサーバーからクラウドレンダリングを操作する

アプリがオンラインで行うすべての処理(画像、レタッチ、動画、キャラクタートレーニング)は、 HTTPでも同じクレジット価格でアクセスできます。アプリを開いていなくても、 自分のサーバー、スクリプト、またはエージェントからライセンスのクレジットを使って操作できます。

Proライセンスで利用可能です。 キーはアプリ内の 設定 > API で作成します。

ベースURLhttps://api.tendre.ai/pro/v1
認証ヘッダー Authorization: Bearer tk_pro_...
フォーマット入出力はJSON、画像はPNG、動画はMP4
機械可読な定義openapi-pro.yaml (OpenAPI 3.0)、クライアント生成に使用可能

キーを取得する

Proライセンスを持つ状態でアプリを開き、設定 > API > 新しいキー を選択します。名前(例:「本番サーバー」)を付け、権限を選択し、必要に応じて1日あたりのクレジット上限と有効期限を設定します。

キーは一度しか表示されません。 すぐにコピーしてください。紛失したキーは再発行のみで、復元はできません。

  • 1ライセンスにつき最大3つのアクティブなキー。 サービスを止めずにローテーションするのに十分な数です。新しいキーを作成して適用し、古いキーを無効にしてください。
  • キーはシートではありません。 自分のパソコンやスマートフォンは、キーと並行して引き続き使用できます。
  • キーはクレジットと同等の価値があります。 Webページ、配布するアプリ、または公開リポジトリには絶対に含めないでください。サーバー上に置く場合は、必ず1日あたりのクレジット上限を設定してください。

キーに許可される操作

権限許可される内容
読み取り常に付与されます。レンダリングステータス、ファイルダウンロード、残高、キャラクター一覧
画像画像の送信とキャンセル(生成、レタッチ、バリエーション)
動画動画の送信とキャンセル

キーの権限を超えた呼び出しには 403 portee_manquante が返され、不足している権限が portee に示されます。

レンダリングのライフサイクル

常に同じ3ステップです。

  1. 送信。 POST /images または POST /videosjobId とコストが即座に返されます。
  2. ポーリング。 GET /images/{jobId} または GET /videos/{jobId} を3秒ごとに実行し、statuscompleted または failed になるまで繰り返します。
  3. ダウンロード。 ステータスが completed になったらすぐに GET /images/{jobId}/file または GET /videos/{jobId}/file を実行します。ファイルは保持されません。待たずにすぐダウンロードしてください。

目安の所要時間:画像は10〜40秒、動画は1〜5分。エンジンがコールドスタートの場合はさらに時間がかかります。

最初の呼び出し

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 }

この応答が返れば、他のすべての操作も問題なく動作します。

完全なレンダリング、3つの方法

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

次のステップ

  • 画像:生成、3種類のレタッチモード、キャラクター。
  • 動画:フォーマット、料金体系、開始フレームと終了フレーム。
  • アカウント:残高、上限、トレーニング済みキャラクター、アクティビティ。
  • 制限とエラー:上限、すべてのエラーコード、ベストプラクティス。

今後追加予定の機能

実装予定の順に:自分の写真からのキャラクタートレーニング音声、2Kへのアップスケーリング、レンダリングを再現するための固定シード、そしてポーリングを不要にするWebhook

APIはバージョン管理されています。ここで説明した内容は /pro/v1 のもとで引き続き有効です。追加機能が既存の動作を壊すことはなく、破壊的な変更は /pro/v2 として提供されます。

Windows・クラウドまたはNVIDIA

プライベートに生成しましょう。今夜から。

tendre.AIをダウンロードして一度だけ認証すれば、完全オフラインで、自分のGPUを使ってずっと使い続けられます。

Windows版をダウンロードAndroid版をダウンロード(.apk)
Mac版をダウンロードMac版は近日公開予定です!
OS Windows 10/11GPU NVIDIA 8GB以上VRAM 12GB推奨ディスク容量 20GB

NVIDIA GPUをお持ちでない方も、100%クラウドで始められます。毎日10枚まで無料、それ以降は1枚につき1クレジットです。NVIDIAカード(8GB以上)があれば、無制限のローカル生成も利用できます。