Authentifizierung
Ein Bearer-Token im Authorization-Header. Erstelle Schlüssel in den Einstellungen und widerrufe jeden davon jederzeit.
Authorization: Bearer oc_live_...Bilder, Video, Audio und 3D hinter einer API, bezahlt vom selben Guthaben wie das Studio. Erstelle einen Schlüssel in den Einstellungen; die CLI folgt bald.
baldDie Opencran-CLI ist unterwegs. Diese Seite zeigt vorab, wie sie funktioniert; bis dahin nutze die API.
npm i -g @opencran/cliTausche die Modell-ID, um zwischen Bild, Video und Sprache zu wechseln. Die Felder richten sich nach dem Modell.
1import { writeFile } from "node:fs/promises";2 3const API = "https://opencran.com/api/v1/api/catalog";4const auth = { Authorization: `Bearer ${process.env.OPENCRAN_API_KEY}` };5 6// 1. Generate an image7const res = await fetch(`${API}/generations`, {8 method: "POST",9 headers: { ...auth, "Content-Type": "application/json", "Idempotency-Key": crypto.randomUUID() },10 body: JSON.stringify({11 modelId: "luma/uni-v1/text-to-image",12 inputs: { prompt: "Neon city street after rain, cinematic night", size: "16:9" },13 }),14});15let { generation } = await res.json();16 17// 2. Wait for the result18while (generation.status === "queued" || generation.status === "generating") {19 await new Promise((r) => setTimeout(r, 3000));20 ({ generation } = await (await fetch(`${API}/generations/${generation.id}`, { headers: auth })).json());21}22 23// 3. Save the file24const file = await fetch(`${API}/generations/${generation.id}/content`, { headers: auth });25await writeFile("result.jpeg", Buffer.from(await file.arrayBuffer()));
export OPENCRAN_API_KEY="oc_live_..."opencran run luma/uni-v1/text-to-image -p "violet neon fox" -o ./out/Starte jedes Modell aus einer Shell, einem CI-Job oder einem Coding-Agenten. Jeder Render wird vor dem Start bepreist und aus demselben Guthaben bezahlt.
opencran loginFüge deinen API-Schlüssel einmal ein; er wird geprüft und gespeichertopencran whoamiDer Name des Schlüssels und dein Guthabenopencran models --type videoAlle Videomodelle mit ihrem Startpreisopencran run <model> -hDie Felder eines Modells, live abgerufen: Typ, Standardwert, erlaubte Werteopencran run <model> -p "<prompt>" -o ./out/Rendern und das Ergebnis in einem Ordner speichernopencran run <model> -p "..." --dry-runDer genaue Preis, ohne etwas auszugebenopencran run <model> -p "..." --max-price 0.50Nicht starten, wenn der Preis höher istopencran run <model> -p "..." --json -o ./out/Ein JSON-Ergebnis, bereit für den nächsten Schrittopencran skill installBring deinem Coding-Agenten die CLI beiEin Bearer-Token im Authorization-Header. Erstelle Schlüssel in den Einstellungen und widerrufe jeden davon jederzeit.
Authorization: Bearer oc_live_...Der Start eines Renders antwortet sofort mit dem Status queued. Frag den Render ab, bis er erfolgreich ist, fehlschlägt oder erstattet wurde.
{ "status": "queued" }Frag den genauen Preis deiner Eingaben ab, ohne etwas zu starten. Alle Beträge sind in Euro-Cent.
POST /api/v1/api/catalog/quoteSende einen Idempotency-Key-Header, und eine wiederholte Anfrage wird nie doppelt berechnet.
Idempotency-Key: render-042Jeder Schlüssel hat ein Limit pro Minute und ein optionales Tageslimit. Darüber antwortet die API mit 429.
429 Too Many RequestsJSON-Fehler mit Code und Meldung. Ein fehlgeschlagener Render wird automatisch deinem Guthaben erstattet.
{ "status": "refunded" }/api/catalog/meDein Schlüssel und Guthaben/api/catalog/modelsAlle Modelle/api/catalog/models/detail?id=MODEL_IDEin Modell und seine Felder/api/catalog/quotePreis für genaue Eingaben/api/catalog/generationsRendering starten/api/catalog/generationsDeine letzten Renderings/api/catalog/generations/IDStatus eines Renderings/api/catalog/generations/ID/contentDie Ergebnisdatei/api/catalog/generations/IDRendering löschenLade 3 € auf und leg heute los
Erstelle in den Einstellungen einen API-Schlüssel und rufe jedes Modell auf. Die CLI folgt bald. Fehlgeschlagene Renders werden erstattet.