Pro API: limity, kody błędów i dobre praktyki
Limity
Każdy klucz ma trzy: jednoczesne renderowania (domyślnie 2), zgłoszenia na minutę (domyślnie 60) oraz, jeśli je ustawisz, dzienny limit kredytów.
Po przekroczeniu limitu odpowiedź to 429 z nagłówkiem Retry-After w sekundach. Odrzucone wywołanie nic nie kosztuje. Dzień używany do limitów to dzień UTC.
Długie wideo dodaje dwa własne limity: 30 ujęć na sekwencję i 5 sekwencji w toku na licencję (zob. Wideo).
Postacie mają jeden: 50 na licencję Pro, łącznie z tymi stworzonymi w aplikacji, a postać nieużywana przez rok zostaje usunięta (zob. Postacie). Miejsca, obiekty i zwierzęta mają własne limity, liczone oddzielnie: 50 na licencję Pro (10 przy licencji osobistej, w aplikacji), usuwane po tym samym roku nieużywania (zob. Miejsca, obiekty, zwierzęta, style i stroje).
Face swap ma dwa własne limity: fragment o długości maksymalnie 20 s na renderowanie oraz nasz serwer przygotowuje dwa wideo jednocześnie. Po ich przekroczeniu odpowiedź to 429 server_busy: ponów po Retry-After (zob. Face swap). Przez MCP Face swap z przejściem przyjmuje całe wideo o długości maksymalnie 60 s, a serwer obsługuje dwa naraz: powyżej narzędzie prosi o ponowną próbę za kilka minut.
Nasza własna karta jest współdzielona z użytkownikami aplikacji. Gdy jest zajęta, twoje renderowania trafiają na wynajmowane GPU, w tej samej cenie i przez to samo API, z kilkudziesięcioma sekundami więcej na uruchomienie.
Kody błędów
| Kod | error | Co oznacza i co zrobić |
|---|---|---|
| 400 | prompt_required | Dodaj prompt. |
| 400 | forbidden_content | Filtr treści odrzucił prompt. |
| 400 | invalid_seed | seed musi być liczbą całkowitą od 0 do 4294967295. |
| 400 | image_required, inpaint_images_required | Tryb wymaga image_b64, a dla inpaint również mask_b64. |
| 401 | key_required, invalid_key | Brakujący nagłówek lub nieznany klucz. |
| 402 | insufficient_credits | Niewystarczające saldo na to renderowanie (podawany jest cost). Odpowiedź zawiera buy_url, stronę zakupu kredytów dla twojej licencji. Renderowanie lub trening w toku rezerwuje swoją cenę do czasu zakończenia: engaged mówi, ile kredytów jest w ten sposób zablokowanych. |
| 402 | confirmation_required, payment_declined | Zakup zapisaną kartą (POST /credits/purchase): twój bank prosi o potwierdzenie albo odrzucił płatność. Użyj buy_url, zwykłego linku do zakupu. |
| 409 | agent_not_allowed, no_saved_card, monthly_cap_reached | Zakup zapisaną kartą: agent nie ma pozwolenia na zakupy (automatyczne doładowanie na stronie konta), żadna karta nie jest zapisana albo zakup przekroczyłby twój limit miesięczny. Użyj buy_url. |
| 409 | topup_in_progress, purchase_in_progress | Trwa inna płatność zapisaną kartą: poczekaj, aż się zakończy. |
| 400 | unknown_pack | Zakup z nieznanym pakietem albo z dowolną liczbą kredytów poza zakresem lub niebędącą wielokrotnością kroku. |
| 503 | payment_unavailable | Nie udało się potwierdzić płatności: nie wiemy, czy obciążenie nastąpiło. Nie ponawiaj od razu; obciążenie, które przeszło, zostanie zaksięgowane. |
| 403 | key_disabled, key_revoked, key_expired | Klucz wyłączony, unieważniony lub wygasły: utwórz nowy w aplikacji. |
| 403 | license_revoked, license_not_pro | Licencja unieważniona lub konto nie jest Pro. |
| 403 | missing_scope | Kluczowi brakuje uprawnienia wymaganego dla tej operacji, podanego w scope. |
| 403 | unknown_lora | Postać, która nie należy do konta. |
| 404 | media_unavailable | Plik zniknął: zgłoś ponownie. |
| 404 | unknown_lora | Przy DELETE /loras/{name}, brak pliku o tej nazwie na koncie. Uwaga na kod: ta sama nazwa odpowiada 403, gdy renderowanie prosi o postać, która nie jest twoja. |
| 411 | size_required | Przesyłanie LoRA bez Content-Length. Treść jest surowa, więc rozmiar musi być z góry podany. |
| 413 | file_too_large | LoRA przekracza 800 MB lub 90 MB w jednym przesyłaniu. Wyślij ją w częściach. Samo 413 bez treści JSON to coś innego: żądanie nie dotarło do API, zob. sekcję o przesyłaniu. |
| 413 | part_too_large | Jedna część jest większa niż max_part_size ogłoszony przez sesję. |
| 404 | unknown_upload_session | uploadId nie istnieje, sesja została porzucona (sześć godzin) lub anulowana przez odrzuconą część. |
| 503 | upload_refused, part_refused | Magazyn był niedostępny podczas przesyłania: ponów. |
| 507 | storage_full | Brak miejsca w magazynie serwera (LoRA lub sekwencje w toku). Zespół jest powiadomiony: ponów później. |
| 415 | invalid_safetensors | Przesłany plik nie jest plikiem safetensors. |
| 415 | incompatible_lora | LoRA jest przeznaczona dla innej architektury, podanej w architecture. Obrazy obsługują wyłącznie Krea 2, wideo LTX 2.5 lub 2.3. Nic nie jest zapisywane i żaden limit nie jest zużywany. |
| 413 | lora_quota | Magazyn LoRA konta jest pełny (20 plików lub 10 GB). Odpowiedź podaje, ile miejsca zostało; usuń plik, aby zwolnić przestrzeń. |
| 413 | image_too_large | Źródłowy obraz lub maska przekracza 12 MB po dekodowaniu. |
| 429 | too_many_concurrent_renders, rate_limited, daily_cap | Osiągnięto limit, zob. Retry-After. |
| 429 | daily_credit_cap | Dzienny limit kredytów klucza został osiągnięty (cap, spent, cost). |
| 502 | submission_failed, status_failed | Incydent po stronie renderowania: ponów za kilka sekund. |
| 503 | license_check_failed | Konto nie może być teraz zweryfikowane: ponów za minutę. |
| 400 | invalid_extend_frames | Rozszerzenie, którego extend_frames nie wynosi 9, 17, 25, 33, 41 ani 49, lub extend_video, które nie ma dokładnie tylu klatek. |
| 400 | extension_with_transition | Rozszerzenie nie może być jednocześnie przejściem, z wyjątkiem consistency enhanced: usuń end_image lub poproś o wzmocnioną spójność. |
| 400 | extension_too_short | length rozszerzenia liczy tylko nowe klatki i musi wynosić co najmniej 9. |
| 404 | clip_unavailable | Klip do rozszerzenia nie jest już dostępny: rozszerz go wcześniej lub wyślij jego koniec w extend_video. Jako 502, odczyt nie powiódł się: ponów. |
| 404 | unknown_clip | Klip do rozszerzenia należy do innej licencji. |
| 404 | unknown_sequence | Sekwencja nie istnieje, należy do innej licencji lub wygasła. |
| 400 | job_id_required, empty_sequence | POST /sequences/{id}/clips bez job_id, lub eksport sekwencji bez żadnego ujęcia. |
| 409 | not_exported_yet | GET /sequences/{id}/file przed eksportem: najpierw wywołaj POST /sequences/{id}/export. |
| 404 | unknown_export | Eksport folderu projektu: nieznany render, z innej licencji lub wysłany ponad 24 h temu; ZIP usunięty (45 min po pierwszym pobraniu, najwyżej 2 h). |
| 409 | export_in_progress | Jeden eksport folderu projektu naraz na licencję. |
| 413 | export_too_large | Folder projektu powyżej 2 GB: eksportuj ujęcia pojedynczo. |
| 400 | unknown_reference | Eksport folderu projektu: pozycja exclude_references nie wskazuje żadnej referencji eksportu (ani id, ani nazwy, ani @wzmianki). |
| 400 | invalid_export_options | Eksport folderu projektu: opcja, która nie jest wartością logiczną, exclude_references, które nie jest listą tekstów, albo include_film bez include_media. |
| 500 | export_failed | Eksport się nie powiódł (powód w detail): nic nie jest pobierane, spróbuj ponownie. |
| 422 | resolution_mismatch, unreadable_clip | Renderowanie złożone ręcznie (POST /sequences/{id}/clips) o innej rozdzielczości niż sekwencja, lub nieczytelne. |
| 409 | missing_shot | Ujęcie nie jest jeszcze gotowe lub nie jest już dostępne (job_id je wskazuje): poczekaj na jego zakończenie, a następnie wyeksportuj ponownie. |
| 409 | sequence_exported | Sekwencja jest już zmontowana. |
| 409 | audio_mismatch | Ujęcie z dźwiękiem w cichej sekwencji lub odwrotnie. |
| 413 | extend_video_too_large | Koniec klipu, który wysłałeś, przekracza 8 MB. |
| 413 | too_many_shots | Maksymalnie 30 ujęć na sekwencję. |
| 422 | unreadable_tail | Koniec klipu, wysłany lub odczytany, nie jest czytelnym wideo. |
| 422 | assembly_failed | Ujęcia mają różne rozdzielczości lub dźwięk tylko w niektórych z nich. |
| 503 | ultra_unavailable | Tryb Ultra jest chwilowo niedostępny: ponów później lub renderuj bez quality. |
| 503 | ultra_4k_unavailable | Rozmiar 4K zażądany w Ultra: 4K nie jest już oferowane, wideo sięga do 1080p (1920 x 1088). |
| 400 | ultra_incompatible | Przejście (end_image) zażądane w Ultra. |
| 400 | extension_4k | Kontynuacja wcześniejszego klipu 4K: 4K nie jest już oferowane, klipu 4K nie można przedłużyć (ultra_4k_unavailable z quality: "max"). Przedłuż klip o rozdzielczości najwyżej 1080p. |
| 400 | resolution_above_quality | Rozmiar powyżej 1080p (1920 x 1088) bez quality: "max": 1080p to maksimum w każdym trybie. |
| 400 | invalid_keyframes, invalid_keyframe_time, keyframes_mode | Klatki kluczowe poza zakresem: więcej niż 4, nieprawidłowy obraz lub siła; moment poza klipem lub dwie klatki kluczowe oddalone o mniej niż 0,5 s; tryb inny niż Jakość (Ultra, Multi-Ref) lub rozszerzenie bez consistency enhanced. |
| 400 | invalid_consistency, consistency_mode | consistency inne niż standard lub enhanced; wzmocniona spójność zażądana w Ultra lub w Multi-Ref. |
| 400 | consistency_explicit | Prompt, którego wzmocniona spójność jeszcze nie renderuje, powyżej 20 s (15 s z end_image), w rozszerzeniu lub w sekwencji (jedno krótsze ujęcie renderuje się w standardowej spójności): skróć je lub użyj standard. |
| 403 | consistency_licensed_only | Wzmocniona spójność jest zarezerwowana dla licencji. |
| 503 | consistency_unavailable | Wzmocniona spójność jest chwilowo niedostępna: ponów później lub renderuj w standard. |
| 409 | consistency_mismatch | Ujęcie, którego consistency różni się od spójności sekwencji. |
| 422 | encoding_mismatch | Renderowanie złożone ręcznie (POST /sequences/{id}/clips), którego consistency różni się od już złożonych ujęć. |
| 400 | invalid_fps, fps_requires_fixed_duration, extend_fps_mismatch | Liczba klatek (fps) nieobsługiwana przez tryb (detail wymienia dostępne); wzmocniona spójność powyżej 30 fps z automatycznym czasem trwania (ustaw duration_auto na false i podaj length); rozszerzenie z liczbą klatek inną niż poprzedni klip. |
| 409 | sequence_fps_mismatch | Ujęcie, którego liczba klatek (fps) różni się od liczby klatek sekwencji. |
| 503 | keyframes_unavailable | Klatki kluczowe są chwilowo niedostępne: renderuj bez keyframes. |
| 429 | too_many_sequences | Maksymalnie 5 sekwencji w toku na licencję: wyeksportuj jedną lub poczekaj, aż któraś wygaśnie. |
| 400 | invalid_name, invalid_kind, invalid_photo_role, outfit_too_long, invalid_role | Pole postaci poza zakresem (zob. Postacie). |
| 400 | image_too_small | Zdjęcie o długim boku poniżej 1024 px. |
| 415 | unsupported_image_format, unreadable_image | Zdjęcie lub obraz miejsca, który nie jest czytelnym plikiem JPEG, PNG lub WebP. |
| 404 | unknown_character | character_id nie istnieje na twojej licencji lub został usunięty (rok nieużywania lub usunięcie w aplikacji). |
| 409 | character_limit | Osiągnięto limit postaci (max): usuń jedną. |
| 409 | character_busy | Trwa tworzenie jej widoków: poczekaj, aż status przestanie być pending. Przy POST /characters: to samo tworzenie jest właśnie zapisywane, wyślij je ponownie kilka sekund później. |
| 409 | photo_view, empty_character, single_image_sheet | Widoku pochodzącego z oryginalnego zdjęcia nie można przerobić; lub postać nie ma żadnego czytelnego widoku (jeśli to magazyn odmawia odczytu: 503 storage_unavailable, spróbuj ponownie); albo sheet zaimportowany jako jeden obraz (zachowany bez zmian): jego widoki nie są odtwarzane i nie ubiera nowego sheetu (prześlij widok 4 lub 1). |
| 409 | app_character | instruction lub przesłany widok na postaci albo character sheet z aplikacji: zarezerwowane dla postaci i character sheets utworzonych przez API. |
| 400 | instruction_too_long | instruction dłuższa niż 200 znaków. |
| 400 | outfit_or_views_required | Character sheet dodana bez outfit i bez views: podaj strój do wygenerowania albo widoki. |
| 400 | views_required | Character sheet dodana z generate: false: podaj co najmniej jeden widok. |
| 409 | source_sheet_empty | Character sheet dodana bez widoku całej sylwetki i bez popiersia do postaci, która nie ma żadnego z nich jako punktu wyjścia: wyślij jeden z nich w views. |
| 404 | unknown_sheet | Przez DELETE /characters/{id}/sheets/{sheet_id} można usunąć tylko character sheet dodaną przez API (sheet_origin api). |
| 404 | unknown_subject | subject_id nie istnieje na twojej licencji lub został usunięty po roku nieużywania. |
| 409 | subject_limit | Osiągnięto limit obiektów (max): miejsca, przedmioty, zwierzęta, style i stroje liczą się razem; usuń jeden. |
| 409 | empty_subject | Podmiot bez żadnego czytelnego obrazu. |
| 400 | invalid_type, description_too_long, invalid_images | Pole podmiotu poza zakresem (zob. Miejsca, obiekty, zwierzęta, style i stroje). |
| 400 | invalid_image | Obraz podmiotu, który nie jest czytelnym plikiem JPEG, PNG lub WebP o długim boku co najmniej 512 px (index wskazuje, który). |
| 400 | description_required, invalid_views, invalid_view, invalid_count, too_many_images, prompt_too_long, invalid_instructions | Generowanie obiektu: brak description, prompt i obrazu startowego; klucz widoku, którego typ nie ma (detail podaje listę); count poza zakresem 1 do 6 lub więcej niż 6 obrazów, ze startem; prompt dłuższy niż 2000 znaków; instructions puste, za długie lub dla kilku widoków. |
| 409 | subject_busy, subject_not_generated, view_exists, views_exist, start_image_missing, start_image_imported | Na tym obiekcie trwa już seria; obiekt utworzony ze zdjęć (dodaj zdjęcia przez /images); widok już wykonany (ponów go); start do ponowienia, gdy wychodzą z niego widoki; nieudany start, który trzeba najpierw ponowić; zaimportowany start, którego nie można ponowić. |
| 404 / 503 | unknown_view, generation_unavailable | Widok, o który nigdy nie proszono (dodaj go); generowanie obiektów jest chwilowo niedostępne na serwerze: spróbuj później. |
| 400 | multiref_characters_required, multiref_incompatible, multiref_mode, multiref_format, invalid_length | Multi-Ref poza zakresem: od 1 do 4 postaci (12 w Ultra), bez rozszerzenia lub przejścia, formaty i długości z Multi-Ref Wideo. |
| 400 | duplicate_name, invalid_strength, unknown_mention | Dwie postacie o tej samej nazwie; strength poza zakresem 0 do 2; @Nazwa w prompcie bez postaci (mentions je wymienia). |
| 400 | voice_requires_audio, voice_slot | Głos postaci (voice_b64) bez dźwięku ("audio": true); lub na postaci innej niż characters[0] i characters[1] (silnik obsługuje 2 głosy). index wskazuje, który. |
| 400 | invalid_voice_choice | voice inne niż character lub original w Face swap albo characters[].voice inne niż character lub generated w Multi-Ref Wideo. |
| 413 | audio_too_large | Głos postaci przekracza 4 MB lub 2 MB w Face swap. Używane są tylko pierwsze 5 sekund (20 w Face swap): wyślij krótki fragment. |
| 415 | unsupported_audio_format | Głos postaci, który nie jest czytelnym plikiem audio (WAV, MP3, OGG, FLAC). |
| 400 | multiref_too_many_references, invalid_subject_type | Łącznie więcej niż 4 postaci, obiektów i zwierząt poza Ultra; obiekt w niewłaściwym polu (miejsce w subjects, przedmiot jako location, styl poza styles, strój poza outfits). |
| 400 | invalid_count, invalid_view, invalid_lora_pass, invalid_subject_image, invalid_size | Utwórz obraz: count 1 lub 2, view od 1 do 5 i obecny w sheecie, lora_pass od 0,3 do 0,9, image obiektu spośród jego obrazów, szerokość i wysokość od 256 do 2048. |
| 400 | character_not_ready | Utwórz obraz: wybrany widok postaci nie ma jeszcze obrazu. |
| 503 | multiref_image_disabled | Tworzenie obrazu nie jest jeszcze otwarte na tym serwerze. |
| 400 | multiref_ultra_only, multiref_too_many_images, unknown_wearer | Style, stroje lub ruch poza Multi-Ref w Ultra; więcej niż 30 obrazów w Ultra; worn_by, które nie wskazuje żadnej postaci. |
| 400 | invalid_motion, invalid_motion_mode, unreadable_motion, motion_missing | motion bez motion_id i bez video_b64; mode inny niż camera lub choreography; nieczytelne wideo lub spoza zakresu 4 do 30 s (input_video_out_of_limits); motion_id, którego nigdy nie przesłano (brak PUT). |
| 404 / 409 | unknown_motion, motion_already_used | motion_id nieznany, już użyty lub starszy niż 2 godziny: prześlij wideo ponownie. |
| 413 / 503 | motion_too_large, motion_not_open, motion_mode_unavailable | Wideo ruchu większe niż 20 MB (20 MB po zmniejszeniu do 480p); ruch nie jest jeszcze otwarty (ultra.motion_per_second ma wartość null); mode, który nie jest jeszcze otwarty. |
| 409 | extension_link_expired | extend_job_id, którego twoja licencja nie zna, lub ujęcie Ultra starsze niż 24 godziny: prześlij jego oryginał (POST /extensions) i przekaż extend_upload_id. |
| 400 | extension_real_face | Wideo do przedłużenia w Ultra nie zostało wyrenderowane w trybie Ultra (na przykład render z innego trybu) i pokazuje realistyczną twarz: nic nie jest naliczane. Przedłuż je w trybie Jakość albo wykonaj ujęcie ponownie w Ultra. |
| 400 | extension_ultra_only, extension_ultra_options, invalid_extension_direction, extension_backward_sequence, extension_tail_quality_only | Rozszerzenie Ultra poza zakresem: extend_upload_id lub backward bez quality: "max" (lub z klipu, który nie jest Ultra); obraz startowy, referencje, ruch lub wzmocniona spójność razem z nim; kierunek inny niż forward lub backward; backward w sekwencji; extend_video w Ultra. |
| 400 | extension_too_large, unreadable_extension, extension_upload_missing | Przesłane wideo powyżej 1080p; nieczytelny MP4 lub spoza zakresu 4 do 30 s (input_video_out_of_limits); plik, którego nigdy nie przesłano (brak PUT). |
| 400 | input_video_out_of_limits | Wideo wysłane do trybu Ultra (ruch, wideo do przedłużenia) poza jego limitami, sprawdzanymi przed renderem, nic nie zostaje pobrane: limit mówi który (duration: od 4 do 30 s; total_duration: 30 s razem z dźwiękami referencyjnymi; count: 10; size: 200 MB; format: MP4 lub MOV; fps: od 24 do 60; pixels: szerokość × wysokość od 409 600 do 8 295 044; aspect_ratio: od 0,4 do 2,5), z value, min i max. |
| 404 / 409 | unknown_extension_upload, extension_upload_used | extend_upload_id nieznany, starszy niż 2 godziny lub już użyty: prześlij plik ponownie. |
| 413 / 503 | extension_too_heavy, extension_not_open, extension_backward_unavailable | Plik większy niż 60 MB; rozszerzenie Ultra nie jest jeszcze otwarte (ultra.extend_per_second ma wartość null); kierunek do tyłu nie jest jeszcze otwarty. |
| 413 | references_too_large | Przygotowane widoki przekraczają budżet renderowania: użyj mniejszej liczby postaci lub mniejszego formatu. |
| 400 | video_required, character_required | Face swap bez video_b64 lub bez character_id. |
| 413 | video_too_large | Wideo Face swap przekracza 20 MB: najpierw je przytnij lub skompresuj, albo użyj narzędzia MCP tendre_face_swap, które obsługuje do 95 MB. |
| 415 | unreadable_video | Wideo Face swap nie jest czytelnym plikiem MP4, MOV, WebM lub MKV. |
| 400 | invalid_start, invalid_duration, passage_too_short | Fragment Face swap poza zakresem: start poniżej 0 lub po końcu wideo; duration poza zakresem 0,5 do 20 s; fragment krótszy niż pół sekundy. |
| 400 | invalid_zone, invalid_likeness, invalid_scene, invalid_description, invalid_character_name, invalid_part | Pole Face swap poza zakresem: zone inne niż tight, normal lub wide; part inne niż full lub head; likeness poza zakresem 0,5 do 2; scene powyżej 400 znaków; description powyżej 360; name powyżej 60. |
| 413 | face_swap_too_large | Fragment jest nadal zbyt ciężki po przygotowaniu: podaj krótszy duration. |
| 429 | server_busy | Nasz serwer przygotowuje już dwa wideo Face swap: ponów po Retry-After (20 s). Link do przesyłania MCP odpowiada tym samym kodem jako 503, gdy zbyt wiele plików czeka: ponów za kilka minut. |
| 503 | face_swap_unavailable, face_swap_price_missing | Face swap jest chwilowo niedostępny lub nie ma ceny: ponów później. |
| 503 | creation_unavailable, multiref_unavailable, storage_unavailable | Usługa jest chwilowo niedostępna: ponów później. |
| 500 | internal_error | Nieoczekiwany incydent po stronie serwera: ponów i daj nam znać, jeśli to się powtórzy. |
Ultra rozliczane za sekundę (Ultra):
| Kod | error | Co oznacza i co zrobić |
|---|---|---|
| 400 | resolution_outside_ultra | Powyżej 1080p: 480p, 720p lub 1080p. |
| 400 | engine_refused | Silnik odrzuca tekst lub obraz: powód jest w detail, a kod w code. Nic nie jest naliczane: przeformułuj. |
| 502 | engine_unavailable | Silnik nie odpowiada: spróbuj ponownie za kilka minut. Nic nie jest naliczane. |
| 409 | render_in_progress | Anulowanie renderu, który jest już liczony: nie zatrzymuje się, zostaje dostarczony i rozliczony. |
| 400 | invalid_references, references_too_large, multiref_ultra_options, multiref_ultra_explicit | Multi-Ref w Ultra: obraz referencyjny jest nieczytelny lub za ciężki (łącznie najwyżej 20 MB) albo opcja nie jest obsługiwana. |
| 403 | multiref_ultra_unavailable | Multi-Ref w Ultra rozliczanym za sekundę nie jest jeszcze otwarty dla tego konta. |
Nazwy błędów to dokładne ciągi zwracane przez API. Dopasowuj do nich, a nie do komunikatu, który może być przeformułowany.
Jedna odpowiedź nie jest błędem: renderowanie Multi-Ref lub Face swap z postacią mającą tylko jeden widok przechodzi pomyślnie, z ostrzeżeniem limited_likeness w warnings ({ "code": "limited_likeness", "character_id": "...", "detail": "..." }).
Podobieństwo jest ograniczone: utwórz siedem widoków postaci, aby uzyskać wierne odwzorowanie.
Renderowanie Multi-Ref w Ultra z 9 do 12 postaciami również przechodzi, z ostrzeżeniem many_characters: niektórych może brakować lub mogą się mieszać (zalecane jest 8).
Dobre praktyki
- Odpytuj co 3 sekundy, nie częściej. Kolejka jest wspólna, a bombardowanie jej nikomu nie pomaga.
- Pobierz plik, gdy tylko status to
completed. Plik nie jest archiwizowany. - Pisz prompty po angielsku, a w przypadku wideo opisuj ruch, a nie nieruchomy obraz.
- Jeden klucz na zastosowanie i dzienny limit kredytów na każdym kluczu działającym na serwerze. Wyciekły klucz z limitem kosztuje cię jeden dzień, nie całe saldo.
- Traktuj
429jako coś normalnego, a nie jako błąd: poczekaj naRetry-Afteri działaj dalej. - Połączenie zerwane przed odpowiedzią nic nie kosztuje. Jeśli przesłanie obrazu lub wideo pozostanie bez odpowiedzi (przekroczony limit czasu proxy, błąd
524, zatrzymany program), render nie zostaje uruchomiony albo jest od razu anulowany, i nic nie jest naliczane: po prostu wyślij żądanie ponownie. W przypadku serii obrazów (count) już utworzone rendery również są anulowane. Tworzenie postaci natomiast trwa dalej: ponowne wysłanie tego samego żądania zwraca tę samą postać, bez podwójnego naliczania (zobacz Postacie).
Prompty są logowane po naszej stronie, podobnie jak w aplikacji, w celach bezpieczeństwa.