Pro API: Limits, Fehlercodes und Best Practices
Limits
Jeder Key hat drei: gleichzeitige Renders (standardmäßig 2), Anfragen pro Minute (standardmäßig 60) und, wenn du einen gesetzt hast, ein tägliches Credit-Limit.
Wird ein Limit überschritten, lautet die Antwort 429 mit einem Retry-After-Header in Sekunden. Ein abgelehnter Aufruf kostet nichts. Der für die Limits verwendete Tag ist der UTC-Tag.
Lange Videos haben zwei eigene Limits: 30 Shots pro Sequenz und 5 gleichzeitig laufende Sequenzen pro Lizenz (siehe Videos).
Charaktere haben ein eigenes: 50 pro Pro-Lizenz, inklusive der in der App erstellten. Ein Charakter, der ein Jahr lang nicht verwendet wird, wird gelöscht (siehe Charaktere). Orte, Objekte und Tiere haben eigene Limits, die separat gezählt werden: 50 pro Pro-Lizenz (10 bei einer persönlichen Lizenz, in der App), nach dem gleichen Jahr ohne Nutzung gelöscht (siehe Orte, Objekte, Tiere, Stile und Outfits).
Face swap hat zwei eigene Limits: eine Passage von maximal 20 s pro Render und unser Server bereitet zwei Videos gleichzeitig vor. Darüber hinaus lautet die Antwort 429 server_busy: nach Retry-After erneut versuchen (siehe Face swap). Über den MCP nimmt ein Face swap mit Übergang ein ganzes Video von höchstens 60 s, und der Server verarbeitet zwei gleichzeitig: Darüber hinaus bittet das Tool, es in einigen Minuten erneut zu versuchen.
Unsere eigene Karte wird mit den App-Nutzern geteilt. Wenn sie ausgelastet ist, gehen deine Renders an gemietete GPUs, zum gleichen Preis und über dieselbe API, mit einigen Dutzend Sekunden mehr beim Start.
Fehlercodes
| Code | error | Bedeutung und empfohlene Maßnahme |
|---|---|---|
| 400 | prompt_required | Prompt hinzufügen. |
| 400 | forbidden_content | Der Inhaltsfilter hat den Prompt abgelehnt. |
| 400 | invalid_seed | seed muss eine ganze Zahl von 0 bis 4294967295 sein. |
| 400 | image_required, inpaint_images_required | Der Modus benötigt image_b64 und mask_b64 für inpaint. |
| 401 | key_required, invalid_key | Header fehlt oder unbekannter Key. |
| 402 | insufficient_credits | Nicht genug Guthaben für diesen Render (cost wird angegeben). Die Antwort enthält buy_url, die Credit-Kaufseite deiner Lizenz. Ein laufender Render oder ein Training reserviert seinen Preis bis zum Abschluss: engaged gibt an, wie viele Credits auf diese Weise zurückgehalten werden. |
| 402 | confirmation_required, payment_declined | Ein Kauf mit deiner gespeicherten Karte (POST /credits/purchase): Deine Bank verlangt deine Bestätigung oder hat die Zahlung abgelehnt. Nutze buy_url, den normalen Kauflink. |
| 409 | agent_not_allowed, no_saved_card, monthly_cap_reached | Ein Kauf mit deiner gespeicherten Karte: Dein Agent darf nicht kaufen (automatisches Aufladen auf deiner Kontoseite), es ist keine Karte gespeichert, oder der Kauf würde dein monatliches Limit überschreiten. Nutze buy_url. |
| 409 | topup_in_progress, purchase_in_progress | Eine andere Zahlung mit deiner gespeicherten Karte läuft gerade: Warte, bis sie abgeschlossen ist. |
| 400 | unknown_pack | Ein Kauf mit einem unbekannten Paket oder einer freien Menge außerhalb der Grenzen oder nicht in ganzen Schritten. |
| 503 | payment_unavailable | Die Zahlung konnte nicht bestätigt werden: Wir wissen nicht, ob die Belastung erfolgt ist. Nicht sofort erneut versuchen; eine erfolgte Belastung wird gutgeschrieben. |
| 403 | key_disabled, key_revoked, key_expired | Key deaktiviert, widerrufen oder abgelaufen: in der App einen neuen erstellen. |
| 403 | license_revoked, license_not_pro | Lizenz widerrufen oder kein Pro-Konto. |
| 403 | missing_scope | Dem Key fehlt die angeforderte Berechtigung, angegeben in scope. |
| 403 | unknown_lora | Ein Charakter, der nicht zum Konto gehört. |
| 404 | media_unavailable | Die Datei ist nicht mehr vorhanden: erneut einreichen. |
| 404 | unknown_lora | Bei DELETE /loras/{name}: keine Datei mit diesem Namen auf dem Konto. Hinweis zum Code: derselbe Name liefert 403, wenn ein Render einen Charakter anfordert, der nicht deiner ist. |
| 411 | size_required | Ein LoRA-Upload ohne Content-Length. Der Body ist roh, daher muss die Größe angekündigt werden. |
| 413 | file_too_large | Ein LoRA über 800 MB oder über 90 MB in einem einzelnen Upload. In Teilen senden. Ein bloßes 413 ohne JSON-Body ist etwas anderes: die Anfrage hat die API nie erreicht, siehe den Upload-Abschnitt. |
| 413 | part_too_large | Ein Teil ist größer als die max_part_size, die die Session angekündigt hat. |
| 404 | unknown_upload_session | Die uploadId existiert nicht, die Session wurde aufgegeben (sechs Stunden) oder durch einen abgelehnten Teil abgebrochen. |
| 503 | upload_refused, part_refused | Der Speicher war beim Upload nicht erreichbar: erneut versuchen. |
| 507 | storage_full | Kein Platz mehr auf dem Server-Speicher (LoRAs oder laufende Sequenzen). Das Team wird benachrichtigt: später erneut versuchen. |
| 415 | invalid_safetensors | Die hochgeladene Datei ist kein Safetensors. |
| 415 | incompatible_lora | Das LoRA ist für eine andere Architektur, angegeben in architecture. Bilder verwenden nur Krea 2, Videos LTX 2.5 oder 2.3. Nichts wird gespeichert und kein Kontingent verbraucht. |
| 413 | lora_quota | Der LoRA-Speicher des Kontos ist voll (20 Dateien oder 10 GB). Die Antwort gibt an, was noch übrig ist; eine Datei löschen, um Platz zu schaffen. |
| 413 | image_too_large | Quellbild oder Maske über 12 MB dekodiert. |
| 429 | too_many_concurrent_renders, rate_limited, daily_cap | Ein Limit ist erreicht, siehe Retry-After. |
| 429 | daily_credit_cap | Das tägliche Credit-Limit des Keys ist erreicht (cap, spent, cost). |
| 502 | submission_failed, status_failed | Ein Zwischenfall auf der Render-Seite: in wenigen Sekunden erneut versuchen. |
| 503 | license_check_failed | Das Konto kann gerade nicht geprüft werden: in einer Minute erneut versuchen. |
| 400 | invalid_extend_frames | Eine Verlängerung, deren extend_frames nicht 9, 17, 25, 33, 41 oder 49 ist, oder ein extend_video, das nicht genau so viele Frames hat. |
| 400 | extension_with_transition | Eine Verlängerung kann nicht gleichzeitig ein Übergang sein, außer mit consistency enhanced: end_image weglassen oder verstärkte Konsistenz anfordern. |
| 400 | extension_too_short | Die length einer Verlängerung zählt nur die neuen Frames und muss mindestens 9 betragen. |
| 404 | clip_unavailable | Der zu verlängernde Clip ist nicht mehr verfügbar: früher verlängern oder sein Ende in extend_video senden. Als 502 ist das Lesen fehlgeschlagen: erneut versuchen. |
| 404 | unknown_clip | Der zu verlängernde Clip gehört zu einer anderen Lizenz. |
| 404 | unknown_sequence | Die Sequenz existiert nicht, gehört zu einer anderen Lizenz oder ist abgelaufen. |
| 400 | job_id_required, empty_sequence | POST /sequences/{id}/clips ohne job_id oder der Export einer Sequenz ohne Shot. |
| 409 | not_exported_yet | GET /sequences/{id}/file vor dem Export: zuerst POST /sequences/{id}/export aufrufen. |
| 404 | unknown_export | Export des Projektordners: unbekannter Render, von einer anderen Lizenz oder vor mehr als 24 h abgeschickt; ZIP gelöscht (45 min nach dem ersten Download, höchstens 2 h). |
| 409 | export_in_progress | Ein Export eines Projektordners gleichzeitig pro Lizenz. |
| 413 | export_too_large | Projektordner über 2 GB: exportiere die Shots einzeln. |
| 400 | unknown_reference | Export des Projektordners: Ein Eintrag von exclude_references bezeichnet keine Referenz des Exports (weder id noch Name noch @Erwähnung). |
| 400 | invalid_export_options | Export des Projektordners: eine Option, die kein Boolean ist, ein exclude_references, das keine Liste von Texten ist, oder include_film ohne include_media. |
| 500 | export_failed | Der Export ist fehlgeschlagen (Grund in detail): nichts wird abgebucht, versuche es erneut. |
| 422 | resolution_mismatch, unreadable_clip | Ein manuell eingereichter Render (POST /sequences/{id}/clips) mit einer anderen Auflösung als die Sequenz, oder nicht lesbar. |
| 409 | missing_shot | Ein Shot ist noch nicht abgeschlossen oder nicht mehr verfügbar (job_id benennt ihn): warten, bis er fertig ist, dann erneut exportieren. |
| 409 | sequence_exported | Die Sequenz ist bereits zusammengestellt. |
| 409 | audio_mismatch | Ein Shot mit Ton in einer lautlosen Sequenz oder umgekehrt. |
| 413 | extend_video_too_large | Das gesendete Clip-Ende übersteigt 8 MB. |
| 413 | too_many_shots | Maximal 30 Shots pro Sequenz. |
| 422 | unreadable_tail | Das Clip-Ende, gesendet oder zurückgelesen, ist kein lesbares Video. |
| 422 | assembly_failed | Die Shots haben unterschiedliche Auflösungen oder nur bei einigen davon Ton. |
| 503 | ultra_unavailable | Der Ultra-Modus ist gerade nicht verfügbar: später erneut versuchen oder ohne quality rendern. |
| 503 | ultra_4k_unavailable | Eine 4K-Größe in Ultra angefordert: 4K wird nicht mehr angeboten, Videos gehen bis 1080p (1920 x 1088). |
| 400 | ultra_incompatible | Ein Übergang (end_image) im Ultra-Modus angefordert. |
| 400 | extension_4k | Die Fortsetzung eines älteren 4K-Clips: 4K wird nicht mehr angeboten, ein 4K-Clip lässt sich nicht verlängern (ultra_4k_unavailable mit quality: "max"). Verlängere einen Clip mit höchstens 1080p. |
| 400 | resolution_above_quality | Eine Größe über 1080p (1920 x 1088) ohne quality: "max": 1080p ist in jedem Modus die Obergrenze. |
| 400 | invalid_keyframes, invalid_keyframe_time, keyframes_mode | Keyframes außerhalb der Grenzen: mehr als 4, ein ungültiges Bild oder eine ungültige Stärke; ein Zeitpunkt außerhalb des Clips oder zwei Keyframes weniger als 0,5 s auseinander; ein anderer Modus als Qualität (Ultra, Multi-Ref) oder eine Verlängerung ohne consistency enhanced. |
| 400 | invalid_consistency, consistency_mode | consistency anders als standard oder enhanced; verstärkte Konsistenz in Ultra oder Multi-Ref angefordert. |
| 400 | consistency_explicit | Ein Prompt, den verstärkte Konsistenz noch nicht rendert, über 20 s (15 s mit einem end_image), in einer Verlängerung oder in einer Sequenz (ein einzelner kürzerer Shot rendert in Standard-Konsistenz): kürzen oder standard verwenden. |
| 403 | consistency_licensed_only | Verstärkte Konsistenz ist Lizenzinhabern vorbehalten. |
| 503 | consistency_unavailable | Verstärkte Konsistenz ist gerade nicht verfügbar: später erneut versuchen oder in standard rendern. |
| 409 | consistency_mismatch | Ein Shot, dessen consistency von der der Sequenz abweicht. |
| 422 | encoding_mismatch | Ein manuell eingereichter Render (POST /sequences/{id}/clips), dessen consistency von den bereits eingereichten Shots abweicht. |
| 400 | invalid_fps, fps_requires_fixed_duration, extend_fps_mismatch | Eine Bildrate (fps), die der Modus nicht hat (detail listet die verfügbaren auf); verstärkte Konsistenz über 30 fps mit automatischer Dauer (duration_auto auf false setzen und length angeben); eine Verlängerung mit einer anderen Bildrate als der vorherige Clip. |
| 409 | sequence_fps_mismatch | Ein Shot, dessen Bildrate (fps) von der der Sequenz abweicht. |
| 503 | keyframes_unavailable | Keyframes sind gerade nicht verfügbar: ohne keyframes rendern. |
| 429 | too_many_sequences | Maximal 5 gleichzeitig laufende Sequenzen pro Lizenz: eine exportieren oder warten, bis eine abläuft. |
| 400 | invalid_name, invalid_kind, invalid_photo_role, outfit_too_long, invalid_role | Ein Charakterfeld außerhalb der Grenzen (siehe Charaktere). |
| 400 | image_too_small | Ein Foto unter 1024 px auf der langen Seite. |
| 415 | unsupported_image_format, unreadable_image | Ein Foto oder ein Ortsbild, das kein lesbares JPEG, PNG oder WebP ist. |
| 404 | unknown_character | Die character_id ist nicht auf deiner Lizenz oder wurde gelöscht (ein Jahr nicht genutzt oder in der App gelöscht). |
| 409 | character_limit | Das Charakterlimit (max) ist erreicht: einen löschen. |
| 409 | character_busy | Die Ansichten werden gerade erstellt: warten, bis status nicht mehr pending ist. Bei POST /characters: Dieselbe Erstellung wird gerade gespeichert, sie einige Sekunden später erneut senden. |
| 409 | photo_view, empty_character, single_image_sheet | Die Ansicht, die aus dem Originalfoto stammt, kann nicht wiederholt werden; oder der Charakter hat keine lesbare Ansicht (wenn der Speicher das Lesen verweigert: 503 storage_unavailable, erneut versuchen); oder ein als Einzelbild importiertes Sheet (unverändert übernommen): seine Ansichten werden nicht neu erstellt, und es kleidet kein neues Sheet ein (senden Sie Ansicht 4 oder 1). |
| 409 | app_character | Eine instruction oder eine hochgeladene Ansicht auf einem Charakter oder einem Sheet aus der App: reserviert für über die API erstellte Charaktere und Sheets. |
| 400 | instruction_too_long | Eine instruction länger als 200 Zeichen. |
| 400 | outfit_or_views_required | Ein Sheet ohne outfit und ohne views hinzugefügt: gib ein Outfit zum Generieren an, oder Ansichten. |
| 400 | views_required | Ein Sheet mit generate: false hinzugefügt: gib mindestens eine Ansicht an. |
| 409 | source_sheet_empty | Ein Sheet ohne Ganzkörperansicht und ohne Büste, für einen Charakter, der keine von beiden als Ausgangspunkt hat: sende eine davon in views. |
| 404 | unknown_sheet | Nur ein über die API hinzugefügtes Sheet (sheet_origin api) lässt sich mit DELETE /characters/{id}/sheets/{sheet_id} löschen. |
| 404 | unknown_subject | Die subject_id ist nicht auf deiner Lizenz oder wurde nach einem Jahr ohne Nutzung gelöscht. |
| 409 | subject_limit | Das Limit für Motive (max) ist erreicht: Orte, Objekte, Tiere, Stile und Outfits zählen zusammen; eines löschen. |
| 409 | empty_subject | Ein Motiv ohne lesbares Bild. |
| 400 | invalid_type, description_too_long, invalid_images | Ein Motivfeld außerhalb der Grenzen (siehe Orte, Objekte, Tiere, Stile und Outfits). |
| 400 | invalid_image | Ein Motivbild, das kein lesbares JPEG, PNG oder WebP mit mindestens 512 px auf der langen Seite ist (index gibt an, welches). |
| 400 | description_required, invalid_views, invalid_view, invalid_count, too_many_images, prompt_too_long, invalid_instructions | Motiv generieren: weder description noch prompt noch Startbild; ein Ansichtsschlüssel, den der Typ nicht hat (detail listet sie auf); count außerhalb von 1 bis 6 oder mehr als 6 Bilder, Start inklusive; ein prompt über 2.000 Zeichen; instructions leer, zu lang oder für mehrere Ansichten. |
| 409 | subject_busy, subject_not_generated, view_exists, views_exist, start_image_missing, start_image_imported | Auf diesem Motiv läuft bereits eine Serie; ein aus Bildern erstelltes Motiv (füge Bilder über /images hinzu); eine bereits erstellte Ansicht (mach sie neu); ein Start, der neu gemacht werden soll, obwohl Ansichten davon ausgehen; ein fehlgeschlagener Start, der zuerst neu gemacht werden muss; ein importierter Start, der sich nicht neu machen lässt. |
| 404 / 503 | unknown_view, generation_unavailable | Eine nie angeforderte Ansicht (füge sie hinzu); die Motivgenerierung ist auf dem Server gerade nicht verfügbar: später erneut versuchen. |
| 400 | multiref_characters_required, multiref_incompatible, multiref_mode, multiref_format, invalid_length | Multi-Ref außerhalb der Grenzen: 1 bis 4 Charaktere (12 in Ultra), keine Verlängerung oder Übergang, die Formate und Längen von Multi-Ref Video. |
| 400 | duplicate_name, invalid_strength, unknown_mention | Zwei Charaktere mit demselben Namen; strength außerhalb von 0 bis 2; ein @Name im Prompt ohne zugehörigen Charakter (mentions listet sie auf). |
| 400 | voice_requires_audio, voice_slot | Eine Charakterstimme (voice_b64) ohne Ton ("audio": true); oder auf einem anderen Charakter als characters[0] und characters[1] (die Engine unterstützt 2 Stimmen). index gibt an, welcher. |
| 400 | invalid_voice_choice | voice anders als character oder original bei einem Face swap, oder characters[].voice anders als character oder generated bei Multi-Ref Video. |
| 413 | audio_too_large | Eine Charakterstimme über 4 MB oder über 2 MB bei einem Face swap. Nur die ersten 5 Sekunden werden verwendet (20 bei einem Face swap): einen kurzen Ausschnitt senden. |
| 415 | unsupported_audio_format | Eine Charakterstimme, die keine lesbare Audiodatei ist (WAV, MP3, OGG, FLAC). |
| 400 | multiref_too_many_references, invalid_subject_type | Mehr als 4 Charaktere, Objekte und Tiere insgesamt, außerhalb von Ultra; ein Motiv im falschen Feld (ein Ort in subjects, ein Objekt als location, ein Stil außerhalb von styles, ein Outfit außerhalb von outfits). |
| 400 | invalid_count, invalid_view, invalid_lora_pass, invalid_subject_image, invalid_size | Bild erstellen: count 1 oder 2, view 1 bis 5 und im Sheet vorhanden, lora_pass 0,3 bis 0,9, das image eines Motivs unter seinen Bildern, Breite und Höhe von 256 bis 2048. |
| 400 | character_not_ready | Bild erstellen: Die gewählte Ansicht eines Charakters hat noch kein Bild. |
| 503 | multiref_image_disabled | Das Erstellen eines Bildes ist auf diesem Server noch nicht freigeschaltet. |
| 400 | multiref_ultra_only, multiref_too_many_images, unknown_wearer | Stile, Outfits oder Bewegung außerhalb von Multi-Ref in Ultra; mehr als 30 Bilder in Ultra; ein worn_by, das keinen Charakter nennt. |
| 400 | invalid_motion, invalid_motion_mode, unreadable_motion, motion_missing | motion ohne motion_id und ohne video_b64; ein mode außer camera oder choreography; ein unlesbares Video oder eines außerhalb von 4 bis 30 s (input_video_out_of_limits); eine nie hochgeladene motion_id (kein PUT). |
| 404 / 409 | unknown_motion, motion_already_used | Eine motion_id, die unbekannt, bereits verwendet oder älter als 2 Stunden ist: das Video erneut hochladen. |
| 413 / 503 | motion_too_large, motion_not_open, motion_mode_unavailable | Ein Bewegungsvideo über 20 MB (20 MB nach der Umwandlung in 480p); die Bewegung ist noch nicht geöffnet (ultra.motion_per_second ist null); ein noch nicht geöffneter mode. |
| 409 | extension_link_expired | Eine extend_job_id, die deine Lizenz nicht kennt, oder ein Ultra-Shot, der älter als 24 Stunden ist: sein Original hochladen (POST /extensions) und extend_upload_id übergeben. |
| 400 | extension_real_face | Das in Ultra zu verlängernde Video wurde nicht im Ultra-Modus gerendert (etwa das Rendering eines anderen Modus) und zeigt ein realistisches Gesicht: es wird nichts abgebucht. Verlängere es im Qualitätsmodus oder rendere den Shot neu in Ultra. |
| 400 | extension_ultra_only, extension_ultra_options, invalid_extension_direction, extension_backward_sequence, extension_tail_quality_only | Ultra-Verlängerung außerhalb der Grenzen: extend_upload_id oder backward ohne quality: "max" (oder von einem Clip, der nicht Ultra ist); ein Startbild, Referenzen, Bewegung oder verstärkte Konsistenz dazu; eine andere Richtung als forward oder backward; backward in einer Sequenz; extend_video in Ultra. |
| 400 | extension_too_large, unreadable_extension, extension_upload_missing | Ein hochgeladenes Video über 1080p; ein unlesbares MP4 oder eines außerhalb von 4 bis 30 s (input_video_out_of_limits); eine nie hochgeladene Datei (kein PUT). |
| 400 | input_video_out_of_limits | Ein an den Ultra-Modus gesendetes Video (Bewegung, zu verlängerndes Video) außerhalb seiner Grenzen, vor dem Rendern geprüft, nichts abgebucht: limit nennt die Grenze (duration: 4 bis 30 s; total_duration: 30 s mit den Referenztönen; count: 10; size: 200 MB; format: MP4 oder MOV; fps: 24 bis 60; pixels: Breite × Höhe von 409 600 bis 8 295 044; aspect_ratio: 0,4 bis 2,5), mit value, min und max. |
| 404 / 409 | unknown_extension_upload, extension_upload_used | Eine extend_upload_id, die unbekannt, älter als 2 Stunden oder bereits verwendet ist: die Datei erneut hochladen. |
| 413 / 503 | extension_too_heavy, extension_not_open, extension_backward_unavailable | Eine Datei über 60 MB; die Ultra-Verlängerung ist noch nicht geöffnet (ultra.extend_per_second ist null); rückwärts ist noch nicht geöffnet. |
| 413 | references_too_large | Die vorbereiteten Ansichten übersteigen das Budget des Renders: weniger Charaktere oder ein kleineres Format verwenden. |
| 400 | video_required, character_required | Ein Face swap ohne video_b64 oder ohne character_id. |
| 413 | video_too_large | Ein Face-swap-Video über 20 MB: zuerst kürzen oder komprimieren oder das MCP-Tool tendre_face_swap verwenden, das bis zu 95 MB akzeptiert. |
| 415 | unreadable_video | Das Face-swap-Video ist kein lesbares MP4, MOV, WebM oder MKV. |
| 400 | invalid_start, invalid_duration, passage_too_short | Eine Face-swap-Passage außerhalb der Grenzen: start unter 0 oder nach dem Ende des Videos; duration außerhalb von 0,5 bis 20 s; eine Passage kürzer als eine halbe Sekunde. |
| 400 | invalid_zone, invalid_likeness, invalid_scene, invalid_description, invalid_character_name, invalid_part | Ein Face-swap-Feld außerhalb der Grenzen: zone anders als tight, normal oder wide; part anders als full oder head; likeness außerhalb von 0,5 bis 2; scene über 400 Zeichen; description über 360; name über 60. |
| 413 | face_swap_too_large | Die Passage ist nach der Vorbereitung noch zu groß: eine kürzere duration angeben. |
| 429 | server_busy | Unser Server bereitet bereits zwei Face-swap-Videos vor: nach Retry-After erneut versuchen (20 s). Der MCP-Upload-Link antwortet mit demselben Code als 503, wenn zu viele Dateien warten: in einigen Minuten erneut versuchen. |
| 503 | face_swap_unavailable, face_swap_price_missing | Face swap ist gerade nicht verfügbar oder hat keinen Preis: später erneut versuchen. |
| 503 | creation_unavailable, multiref_unavailable, storage_unavailable | Der Dienst ist gerade nicht verfügbar: später erneut versuchen. |
| 500 | internal_error | Ein unerwarteter Zwischenfall auf der Server-Seite: erneut versuchen und uns informieren, falls es wieder passiert. |
Ultra mit Abrechnung pro Sekunde (Ultra):
| Code | error | Bedeutung und empfohlene Maßnahme |
|---|---|---|
| 400 | resolution_outside_ultra | Über 1080p: 480p, 720p oder 1080p. |
| 400 | engine_refused | Die Engine lehnt den Text oder ein Bild ab: Der Grund steht in detail, der Code in code. Es wird nichts abgebucht: Formuliere um. |
| 502 | engine_unavailable | Die Engine antwortet nicht: Versuche es in einigen Minuten erneut. Es wird nichts abgebucht. |
| 409 | render_in_progress | Abbruch eines Renderings, das bereits läuft: Es stoppt nicht mehr, es wird geliefert und abgerechnet. |
| 400 | invalid_references, references_too_large, multiref_ultra_options, multiref_ultra_explicit | Multi-Ref in Ultra: Ein Referenzbild ist unlesbar oder zu groß (insgesamt höchstens 20 MB), oder eine Option wird nicht unterstützt. |
| 403 | multiref_ultra_unavailable | Multi-Ref in Ultra mit Abrechnung pro Sekunde ist für dieses Konto noch nicht freigeschaltet. |
Die Fehlernamen sind die genauen Strings, die die API zurückgibt. Gleiche auf sie ab und nicht auf die Nachricht, die möglicherweise umformuliert wird.
Eine Antwort ist kein Fehler: ein Multi-Ref-Render oder ein Face swap mit einem Charakter, der nur eine Ansicht hat, wird durchgeführt, mit einer limited_likeness-Warnung in warnings ({ "code": "limited_likeness", "character_id": "...", "detail": "..." }). Die Ähnlichkeit ist eingeschränkt: die sieben Ansichten des Charakters erstellen, um eine genaue Ähnlichkeit zu erhalten.
Ein Multi-Ref-Render in Ultra mit 9 bis 12 Charakteren wird ebenfalls durchgeführt, mit einer many_characters-Warnung: Einige können fehlen oder sich vermischen (8 werden empfohlen).
Best Practices
- Alle 3 Sekunden abfragen, nicht öfter. Die Warteschlange wird geteilt, und häufige Anfragen helfen niemandem.
- Sofort herunterladen, wenn der Status
completedist. Die Datei wird nicht archiviert. - Prompts auf Englisch schreiben und bei Videos die Bewegung beschreiben, nicht das Standbild.
- Ein Key pro Verwendungszweck und ein tägliches Credit-Limit auf jedem Key, der auf einem Server läuft. Ein geleakter Key mit einem Limit kostet dich einen Tag, nicht dein gesamtes Guthaben.
- Ein
429als normal behandeln, nicht als Fehler: aufRetry-Afterwarten und weitermachen. - Eine Verbindung, die vor der Antwort abbricht, kostet nichts. Bleibt eine Bild- oder Videoübermittlung ohne Antwort (Zeitlimit eines Proxys überschritten, Fehler
524, Programm beendet), wird die Generierung nicht gestartet oder sofort abgebrochen, und es wird nichts berechnet: die Anfrage einfach erneut senden. Bei einem Bildstapel (count) werden die bereits erstellten Generierungen ebenfalls abgebrochen. Eine Charaktererstellung läuft dagegen weiter: Dieselbe Anfrage erneut senden liefert denselben Charakter, ohne doppelte Berechnung (siehe Charaktere).
Prompts werden auf unserer Seite protokolliert, wie auch in der App, zu Sicherheitszwecken.