API Pro: limiti, codici di errore e buone pratiche

Limiti

Ogni chiave ne porta tre: render simultanei (2 per impostazione predefinita), richieste al minuto (60 per impostazione predefinita) e, se ne imposti uno, un limite giornaliero di crediti.

Superato un limite, la risposta è 429 con un'intestazione Retry-After in secondi. Una chiamata rifiutata non costa nulla. Il giorno usato per i limiti è il giorno UTC.

I video lunghi aggiungono due limiti propri: 30 shot per sequenza e 5 sequenze in corso per licenza (vedi Videos).

I personaggi ne hanno uno: 50 per licenza Pro, inclusi quelli creati nell'app, e un personaggio non utilizzato per un anno viene eliminato (vedi Characters). Luoghi, oggetti e animali hanno il loro, contato separatamente: 50 per licenza Pro (10 con una licenza personale, nell'app), eliminati dopo lo stesso anno di inutilizzo (vedi Luoghi, oggetti, animali, stili e outfit).

Il face swap ha due limiti propri: un passaggio di massimo 20 s per render, e il nostro server prepara due video alla volta. Superato ciò, la risposta è 429 server_busy: riprova dopo Retry-After (vedi Face swap). Tramite il MCP, un Face swap con transizione accetta un video intero di al massimo 60 s, e il server ne gestisce due alla volta: oltre, lo strumento chiede di riprovare tra qualche minuto.

La nostra scheda è condivisa con gli utenti dell'app. Quando è occupata, i tuoi render vengono inviati a GPU noleggiate, allo stesso prezzo e tramite la stessa API, con qualche decina di secondi in più all'avvio.

Codici di errore

CodiceerrorSignificato e cosa fare
400prompt_requiredAggiungi un prompt.
400forbidden_contentIl filtro contenuti ha rifiutato il prompt.
400invalid_seedseed deve essere un numero intero da 0 a 4294967295.
400image_required, inpaint_images_requiredLa modalità richiede image_b64, e mask_b64 per inpaint.
401key_required, invalid_keyIntestazione mancante o chiave sconosciuta.
402insufficient_creditsSaldo insufficiente per questo render (viene indicato il cost). La risposta contiene buy_url, la pagina di acquisto crediti della tua licenza. Un render o un addestramento in corso riserva il suo prezzo fino al termine: engaged indica quanti crediti sono trattenuti in questo modo.
402confirmation_required, payment_declinedUn acquisto con la tua carta salvata (POST /credits/purchase): la tua banca chiede la tua conferma o ha rifiutato il pagamento. Usa buy_url, il link di acquisto normale.
409agent_not_allowed, no_saved_card, monthly_cap_reachedUn acquisto con la tua carta salvata: il tuo agente non è autorizzato ad acquistare (ricarica automatica della tua pagina account), nessuna carta è salvata, oppure l'acquisto supererebbe il tuo limite mensile. Usa buy_url.
409topup_in_progress, purchase_in_progressÈ in corso un altro pagamento con la tua carta salvata: attendi che finisca.
400unknown_packUn acquisto con un pacchetto sconosciuto, o una quantità libera fuori dai limiti o non a scaglioni interi.
503payment_unavailableIl pagamento non ha potuto essere confermato: non sappiamo se l'addebito è avvenuto. Non riprovare subito; un addebito avvenuto viene accreditato.
403key_disabled, key_revoked, key_expiredChiave disattivata, revocata o scaduta: creane una nuova nell'app.
403license_revoked, license_not_proLicenza revocata, o account non Pro.
403missing_scopeAlla chiave manca il permesso richiesto, indicato in scope.
403unknown_loraUn personaggio che non appartiene all'account.
404media_unavailableIl file non è più disponibile: invia di nuovo.
404unknown_loraSu DELETE /loras/{name}, nessun file con quel nome sull'account. Nota il codice: lo stesso nome risponde 403 quando un render richiede un personaggio che non è tuo.
411size_requiredUn upload LoRA senza Content-Length. Il corpo è grezzo, quindi la dimensione deve essere annunciata.
413file_too_largeUna LoRA superiore a 800 MB, o superiore a 90 MB in un singolo upload. Inviala in parti. Un 413 senza corpo JSON è un'altra cosa: la richiesta non ha mai raggiunto l'API, vedi la sezione upload.
413part_too_largeUna parte è più grande del max_part_size annunciato dalla sessione.
404unknown_upload_sessionL'uploadId non esiste, o la sessione è stata abbandonata (sei ore) o annullata da una parte rifiutata.
503upload_refused, part_refusedLo storage non era raggiungibile durante l'upload: riprova.
507storage_fullSpazio esaurito sullo storage del server (LoRA o sequenze in corso). Il team è stato avvisato: riprova più tardi.
415invalid_safetensorsIl file caricato non è un safetensors.
415incompatible_loraLa LoRA è per un'altra architettura, indicata in architecture. Le immagini accettano solo Krea 2, i video LTX 2.5 o 2.3. Nulla viene memorizzato e nessuna quota viene consumata.
413lora_quotaLo storage LoRA dell'account è pieno (20 file o 10 GB). La risposta indica quanto spazio rimane; elimina un file per liberarne.
413image_too_largeImmagine sorgente o maschera superiori a 12 MB decodificati.
429too_many_concurrent_renders, rate_limited, daily_capUn limite è stato raggiunto, vedi Retry-After.
429daily_credit_capIl limite giornaliero di crediti della chiave è stato raggiunto (cap, spent, cost).
502submission_failed, status_failedUn incidente lato render: riprova tra qualche secondo.
503license_check_failedL'account non può essere verificato in questo momento: riprova tra un minuto.
400invalid_extend_framesUn'estensione il cui extend_frames non è 9, 17, 25, 33, 41 o 49, o un extend_video che non ha esattamente quel numero di frame.
400extension_with_transitionUn'estensione non può essere anche una transizione, tranne con consistency enhanced: rimuovi end_image, o richiedi la coerenza rafforzata.
400extension_too_shortLa length di un'estensione conta solo i nuovi frame e deve essere almeno 9.
404clip_unavailableIl clip da estendere non è più disponibile: estendilo prima, o invia la sua fine in extend_video. Come 502, la lettura è fallita: riprova.
404unknown_clipIl clip da estendere appartiene a un'altra licenza.
404unknown_sequenceLa sequenza non esiste, appartiene a un'altra licenza o è scaduta.
400job_id_required, empty_sequencePOST /sequences/{id}/clips senza job_id, o l'esportazione di una sequenza senza shot.
409not_exported_yetGET /sequences/{id}/file prima dell'esportazione: chiama prima POST /sequences/{id}/export.
404unknown_exportEsportazione della cartella di progetto: render sconosciuto, di un'altra licenza o inviato più di 24 h fa; ZIP cancellato (45 min dopo il primo download, al massimo 2 h).
409export_in_progressUn'esportazione di cartella di progetto alla volta per licenza.
413export_too_largeCartella di progetto oltre 2 GB: esporta le inquadrature una per una.
400unknown_referenceEsportazione della cartella di progetto: una voce di exclude_references non designa alcun riferimento dell'esportazione (né id, né nome, né @menzione).
400invalid_export_optionsEsportazione della cartella di progetto: un'opzione che non è un booleano, un exclude_references che non è una lista di testi, o include_film senza include_media.
500export_failedL'esportazione non è riuscita (motivo in detail): non viene addebitato nulla, riprova.
422resolution_mismatch, unreadable_clipUn render archiviato manualmente (POST /sequences/{id}/clips) a una risoluzione diversa da quella della sequenza, o illeggibile.
409missing_shotUno shot non è ancora terminato, o non è più disponibile (il job_id lo identifica): aspetta che finisca, poi esporta di nuovo.
409sequence_exportedLa sequenza è già assemblata.
409audio_mismatchUno shot con audio in una sequenza silenziosa, o viceversa.
413extend_video_too_largeLa fine del clip inviata supera 8 MB.
413too_many_shotsMassimo 30 shot per sequenza.
422unreadable_tailLa fine del clip, inviata o riletta, non è un video leggibile.
422assembly_failedGli shot hanno risoluzioni diverse, o l'audio è presente solo su alcuni di essi.
503ultra_unavailableLa modalità Ultra è momentaneamente chiusa: riprova più tardi, o genera senza quality.
503ultra_4k_unavailableUna dimensione 4K richiesta in Ultra: il 4K non è più offerto, il video arriva fino a 1080p (1920 x 1088).
400ultra_incompatibleUna transizione (end_image) richiesta in Ultra.
400extension_4kLa continuazione di un vecchio clip 4K: il 4K non è più offerto, un clip 4K non si può più prolungare (ultra_4k_unavailable con quality: "max"). Prolunga un clip di al massimo 1080p.
400resolution_above_qualityUna dimensione superiore a 1080p (1920 x 1088) senza quality: "max": 1080p è il massimo in ogni modalità.
400invalid_keyframes, invalid_keyframe_time, keyframes_modeFotogrammi chiave fuori dai limiti: più di 4, un'immagine o una forza non valida; un momento fuori dal clip, o due fotogrammi chiave a meno di 0,5 s di distanza; una modalità diversa da Qualità (Ultra, Multi-Ref), o un'estensione senza consistency enhanced.
400invalid_consistency, consistency_modeconsistency diverso da standard o enhanced; coerenza rafforzata richiesta in Ultra o in Multi-Ref.
400consistency_explicitUn prompt che la coerenza rafforzata non rende ancora, oltre i 20 s (15 s con un end_image), in un'estensione o in una sequenza (un singolo shot più breve viene reso in coerenza standard): accorcialo, o usa standard.
403consistency_licensed_onlyLa coerenza rafforzata è riservata alle licenze.
503consistency_unavailableLa coerenza rafforzata è momentaneamente chiusa: riprova più tardi, o genera in standard.
409consistency_mismatchUno shot la cui consistency differisce da quella della sequenza.
422encoding_mismatchUn render archiviato manualmente (POST /sequences/{id}/clips) la cui consistency differisce dagli shot già archiviati.
400invalid_fps, fps_requires_fixed_duration, extend_fps_mismatchUn frame rate (fps) che la modalità non supporta (detail elenca quelli disponibili); coerenza rafforzata sopra i 30 fps con durata automatica (imposta duration_auto su false e fornisci length); un'estensione a un frame rate diverso dal clip precedente.
409sequence_fps_mismatchUno shot il cui frame rate (fps) differisce da quello della sequenza.
503keyframes_unavailableI fotogrammi chiave sono momentaneamente chiusi: genera senza keyframes.
429too_many_sequencesMassimo 5 sequenze in corso per licenza: esportane una, o aspetta che una scada.
400invalid_name, invalid_kind, invalid_photo_role, outfit_too_long, invalid_roleUn campo personaggio fuori dai limiti (vedi Characters).
400image_too_smallUna foto con il lato lungo inferiore a 1024 px.
415unsupported_image_format, unreadable_imageUna foto o un'immagine di ambientazione che non è un JPEG, PNG o WebP leggibile.
404unknown_characterIl character_id non è sulla tua licenza, o è stato eliminato (un anno di inutilizzo, o eliminato nell'app).
409character_limitIl limite di personaggi (max) è stato raggiunto: eliminane uno.
409character_busyLe sue viste sono in fase di creazione: aspetta che lo status non sia più pending. Su POST /characters: la stessa creazione è in corso di registrazione, inviala di nuovo qualche secondo dopo.
409photo_view, empty_character, single_image_sheetLa vista proveniente dalla foto originale non può essere rifatta; o il personaggio non ha nessuna vista leggibile (se è lo storage a rifiutare la lettura: 503 storage_unavailable, riprova); oppure una sheet importata come immagine unica (mantenuta così com'è): le sue viste non si rifanno e non veste una nuova sheet (invia la vista 4 o 1).
409app_characterUn'instruction o una vista caricata su un personaggio o una character sheet fatti nell'app: riservato ai personaggi e alle character sheet creati tramite API.
400instruction_too_longUn'instruction più lunga di 200 caratteri.
400outfit_or_views_requiredUna character sheet aggiunta senza outfit né views: indica un outfit da generare, o delle viste.
400views_requiredUna character sheet aggiunta con generate: false: indica almeno una vista.
409source_sheet_emptyUna character sheet aggiunta senza vista a figura intera né busto, a un personaggio che non ha nessuno dei due da cui partire: inviane uno in views.
404unknown_sheetSolo una character sheet aggiunta tramite API (sheet_origin api) si elimina con DELETE /characters/{id}/sheets/{sheet_id}.
404unknown_subjectIl subject_id non è sulla tua licenza, o è stato eliminato dopo un anno di inutilizzo.
409subject_limitIl limite di soggetti (max) è stato raggiunto: luoghi, oggetti, animali, stili e outfit contano insieme; eliminane uno.
409empty_subjectUn soggetto senza immagini leggibili.
400invalid_type, description_too_long, invalid_imagesUn campo soggetto fuori dai limiti (vedi Luoghi, oggetti, animali, stili e outfit).
400invalid_imageUn'immagine soggetto che non è un JPEG, PNG o WebP leggibile di almeno 512 px sul lato lungo (index indica quale).
400description_required, invalid_views, invalid_view, invalid_count, too_many_images, prompt_too_long, invalid_instructionsGenerare un soggetto: né description, né prompt, né immagine di partenza; una chiave di vista che il tipo non ha (detail dà l'elenco); count fuori da 1 a 6, o più di 6 immagini, partenza compresa; un prompt di oltre 2000 caratteri; instructions vuote, troppo lunghe o per più viste.
409subject_busy, subject_not_generated, view_exists, views_exist, start_image_missing, start_image_importedUna serie è già in corso su questo soggetto; un soggetto creato da immagini (aggiungine con /images); una vista già fatta (rifalla); una partenza da rifare mentre ne partono delle viste; una partenza non riuscita da rifare prima; una partenza importata, che non si rifà.
404 / 503unknown_view, generation_unavailableUna vista mai richiesta (aggiungila); la generazione di soggetti non è disponibile sul server per il momento: riprova più tardi.
400multiref_characters_required, multiref_incompatible, multiref_mode, multiref_format, invalid_lengthMulti-Ref fuori dai limiti: da 1 a 4 personaggi (12 in Ultra), nessuna estensione o transizione, i formati e le durate di Multi-Ref Video.
400duplicate_name, invalid_strength, unknown_mentionDue personaggi con lo stesso nome; strength fuori dall'intervallo 0-2; un @Nome nel prompt senza personaggio corrispondente (mentions li elenca).
400voice_requires_audio, voice_slotUna voce del personaggio (voice_b64) senza audio ("audio": true); o su un personaggio diverso da characters[0] e characters[1] (il motore supporta 2 voci). index indica quale.
400invalid_voice_choicevoice diverso da character o original in un Face swap, oppure characters[].voice diverso da character o generated in Multi-Ref Video.
413audio_too_largeUna voce del personaggio superiore a 4 MB, o superiore a 2 MB in un Face swap. Solo i primi 5 secondi vengono utilizzati (20 in un Face swap): invia un breve estratto.
415unsupported_audio_formatUna voce del personaggio che non è un file audio leggibile (WAV, MP3, OGG, FLAC).
400multiref_too_many_references, invalid_subject_typePiù di 4 personaggi, oggetti e animali in totale, fuori dall'Ultra; un soggetto nel campo sbagliato (un'ambientazione in subjects, un oggetto come location, uno stile fuori da styles, un outfit fuori da outfits).
400invalid_count, invalid_view, invalid_lora_pass, invalid_subject_image, invalid_sizeCrea un'immagine: count 1 o 2, view da 1 a 5 e presente nella sheet, lora_pass da 0,3 a 0,9, l'image di un soggetto tra le sue immagini, larghezza e altezza da 256 a 2048.
400character_not_readyCrea un'immagine: la vista scelta di un personaggio non ha ancora un'immagine.
503multiref_image_disabledLa creazione di un'immagine non è ancora aperta su questo server.
400multiref_ultra_only, multiref_too_many_images, unknown_wearerStili, outfit o movimento fuori dal Multi-Ref in Ultra; più di 30 immagini in Ultra; un worn_by che non nomina nessun personaggio.
400invalid_motion, invalid_motion_mode, unreadable_motion, motion_missingmotion senza motion_id né video_b64; un mode diverso da camera o choreography; un video illeggibile, o fuori da 4 a 30 s (input_video_out_of_limits); un motion_id mai caricato (nessun PUT).
404 / 409unknown_motion, motion_already_usedUn motion_id sconosciuto, già usato o più vecchio di 2 ore: carica di nuovo il video.
413 / 503motion_too_large, motion_not_open, motion_mode_unavailableUn video di movimento oltre 20 MB (20 MB una volta riportato a 480p); il movimento non è ancora aperto (ultra.motion_per_second vale null); un mode non ancora aperto.
409extension_link_expiredUn extend_job_id che la tua licenza non conosce, o un'inquadratura Ultra di più di 24 ore: carica il suo originale (POST /extensions) e passa extend_upload_id.
400extension_real_faceIl video da prolungare in Ultra non è stato renderizzato in modalità Ultra (il render di un'altra modalità, per esempio) e mostra un volto realistico: non viene addebitato nulla. Prolungalo in modalità Qualità, oppure rifai l'inquadratura in Ultra.
400extension_ultra_only, extension_ultra_options, invalid_extension_direction, extension_backward_sequence, extension_tail_quality_onlyEstensione Ultra fuori dai limiti: extend_upload_id o backward senza quality: "max" (o da un clip che non è Ultra); un'immagine iniziale, riferimenti, movimento o coerenza rafforzata insieme; una direzione diversa da forward o backward; backward in una sequenza; extend_video in Ultra.
400extension_too_large, unreadable_extension, extension_upload_missingUn video caricato oltre il 1080p; un MP4 illeggibile, o fuori da 4 a 30 s (input_video_out_of_limits); un file mai caricato (nessun PUT).
400input_video_out_of_limitsUn video inviato alla modalità Ultra (movimento, video da prolungare) fuori dai suoi limiti, controllati prima del rendering, nulla addebitato: limit dice quale (duration: da 4 a 30 s; total_duration: 30 s con i suoni di riferimento; count: 10; size: 200 MB; format: MP4 o MOV; fps: da 24 a 60; pixels: larghezza × altezza da 409 600 a 8 295 044; aspect_ratio: da 0,4 a 2,5), con value, min e max.
404 / 409unknown_extension_upload, extension_upload_usedUn extend_upload_id sconosciuto, più vecchio di 2 ore o già usato: carica di nuovo il file.
413 / 503extension_too_heavy, extension_not_open, extension_backward_unavailableUn file oltre 60 MB; l'estensione Ultra non è ancora aperta (ultra.extend_per_second vale null); all'indietro non è ancora aperta.
413references_too_largeLe viste preparate superano il budget del render: usa meno personaggi, o un formato più piccolo.
400video_required, character_requiredUn Face swap senza video_b64, o senza character_id.
413video_too_largeUn video Face swap superiore a 20 MB: taglialo o comprimilo prima, o usa lo strumento MCP tendre_face_swap, che accetta fino a 95 MB.
415unreadable_videoIl video Face swap non è un MP4, MOV, WebM o MKV leggibile.
400invalid_start, invalid_duration, passage_too_shortUn passaggio Face swap fuori dai limiti: start sotto 0 o oltre la fine del video; duration fuori dall'intervallo 0,5-20 s; un passaggio più corto di mezzo secondo.
400invalid_zone, invalid_likeness, invalid_scene, invalid_description, invalid_character_name, invalid_partUn campo Face swap fuori dai limiti: zone diverso da tight, normal o wide; part diverso da full o head; likeness fuori dall'intervallo 0,5-2; scene oltre 400 caratteri; description oltre 360; name oltre 60.
413face_swap_too_largeIl passaggio è ancora troppo pesante una volta preparato: specifica una duration più breve.
429server_busyIl nostro server sta già preparando due video Face swap: riprova dopo Retry-After (20 s). Il link di upload MCP risponde con lo stesso codice come 503 quando troppi file sono in attesa: riprova tra qualche minuto.
503face_swap_unavailable, face_swap_price_missingIl Face swap è chiuso, o non ha un prezzo, al momento: riprova più tardi.
503creation_unavailable, multiref_unavailable, storage_unavailableIl servizio è temporaneamente non disponibile: riprova più tardi.
500internal_errorUn incidente imprevisto lato server: riprova, e segnalacelo se si ripete.

Ultra fatturato al secondo (Ultra):

CodiceerrorSignificato e cosa fare
400resolution_outside_ultraOltre il 1080p: 480p, 720p o 1080p.
400engine_refusedIl motore rifiuta il testo o un'immagine: il motivo è in detail e il codice in code. Non viene addebitato nulla: riformula.
502engine_unavailableIl motore non risponde: riprova tra qualche minuto. Non viene addebitato nulla.
409render_in_progressAnnullamento di un rendering già in calcolo: non si ferma più, viene consegnato e fatturato.
400invalid_references, references_too_large, multiref_ultra_options, multiref_ultra_explicitMulti-Ref in Ultra: un'immagine di riferimento è illeggibile o troppo pesante (20 MB al massimo in tutto), oppure un'opzione non è supportata.
403multiref_ultra_unavailableIl Multi-Ref in Ultra fatturato al secondo non è ancora aperto per questo account.

I nomi degli errori sono le stringhe esatte restituite dall'API. Confrontali su di esse piuttosto che sul messaggio, che potrebbe essere riformulato.

Una risposta non è un errore: un render Multi-Ref o un Face swap con un personaggio che ha una sola vista viene elaborato, con un avviso limited_likeness in warnings ({ "code": "limited_likeness", "character_id": "...", "detail": "..." }). La somiglianza è limitata: crea le sette viste del personaggio per una somiglianza fedele.

Anche un render Multi-Ref in Ultra con da 9 a 12 personaggi viene elaborato, con un avviso many_characters: alcuni possono mancare o mescolarsi (se ne consigliano 8).

Buone pratiche

  • Fai polling ogni 3 secondi, non più frequentemente. La coda è condivisa e martellare non aiuta nessuno.
  • Scarica non appena lo stato è completed. Il file non è archiviato.
  • Scrivi i prompt in inglese, e per i video descrivi il movimento piuttosto che l'immagine statica.
  • Una chiave per utilizzo, e un limite giornaliero di crediti su ogni chiave che vive su un server. Una chiave trapelata con un limite ti costa un giorno, non l'intero saldo.
  • Tratta un 429 come normale, non come un errore: aspetta Retry-After e continua.
  • Una connessione interrotta prima della risposta non costa nulla. Se un invio di immagine o video resta senza risposta (timeout di un proxy, errore 524, programma arrestato), il rendering non viene avviato, oppure viene annullato subito, e non viene addebitato nulla: basta inviare di nuovo la richiesta. Per un lotto di immagini (count), anche i rendering già creati vengono annullati. La creazione di un personaggio, invece, continua: inviare di nuovo la stessa richiesta restituisce lo stesso personaggio, senza addebitare nulla due volte (vedi Characters).

I prompt vengono registrati da parte nostra, come avviene per l'app, per motivi di sicurezza.

Windows · Mac · Cloud o locale

Genera in privato. Stasera.

Scarica tendre.AI gratis e genera senza limiti, in privato, sulla tua GPU.

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

Mac: Apple silicon (M1 o successivo), macOS 13 o successivo. I Mac Intel non sono supportati.

La generazione di immagini in locale su Mac richiede un M4 con 24 GB di memoria, oppure un M2 o M3 Pro, Max o Ultra con 24 GB. Al di sotto, tutto funziona online con i crediti. Per ora, ritocco e video su Mac funzionano online.

Tutto su tendre.AI per Mac

Non hai una GPU NVIDIA? Parti al 100% nel cloud: 5 immagini gratuite e 1 video gratuito ogni giorno. Una scheda NVIDIA (8GB+) sblocca la generazione locale illimitata.