API Pro: límites, códigos de error y buenas prácticas

Límites

Cada clave lleva tres: renders simultáneos (2 por defecto), envíos por minuto (60 por defecto) y, si lo configuras, un límite diario de créditos.

Al superar un límite, la respuesta es 429 con un encabezado Retry-After en segundos. Una llamada rechazada no cuesta nada. El día utilizado para los límites es el día UTC.

Los vídeos largos añaden dos límites propios: 30 planos por secuencia y 5 secuencias en curso por licencia (ver Vídeos).

Los personajes tienen uno: 50 por licencia Pro, incluidos los creados en la app, y un personaje sin usar durante un año se elimina (ver Personajes). Los decorados, objetos y animales tienen el suyo, contado por separado: 50 por licencia Pro (10 con una licencia personal, en la app), eliminados tras el mismo año sin uso (ver Lugares, objetos, animales, estilos y outfits).

El Face swap tiene dos propios: un pasaje de 20 s como máximo por render, y nuestro servidor prepara dos vídeos a la vez. Al superarlos, la respuesta es 429 server_busy: reintenta después de Retry-After (ver Face swap). Por el MCP, un Face swap con transición admite un vídeo entero de 60 s como máximo, y el servidor procesa dos a la vez: por encima, la herramienta pide volver a intentarlo en unos minutos.

Nuestra propia tarjeta es compartida con los usuarios de la app. Cuando está ocupada, tus renders van a GPUs alquiladas, al mismo precio y a través de la misma API, con unos decenas de segundos más al arrancar.

Códigos de error

CódigoerrorQué significa y qué hacer
400prompt_requiredAñade un prompt.
400forbidden_contentEl filtro de contenido rechazó el prompt.
400invalid_seedseed debe ser un número entero de 0 a 4294967295.
400image_required, inpaint_images_requiredEl modo necesita image_b64, y mask_b64 para inpaint.
401key_required, invalid_keyEncabezado ausente, o clave desconocida.
402insufficient_creditsSaldo insuficiente para este render (se indica cost). La respuesta incluye buy_url, la página de compra de créditos de tu licencia. Un render o un entrenamiento en curso reserva su precio hasta que termina: engaged indica cuántos créditos están retenidos de ese modo.
402confirmation_required, payment_declinedUna compra con tu tarjeta guardada (POST /credits/purchase): tu banco pide tu confirmación o ha rechazado el pago. Usa buy_url, el enlace de compra normal.
409agent_not_allowed, no_saved_card, monthly_cap_reachedUna compra con tu tarjeta guardada: tu agente no está autorizado a comprar (recarga automática de tu página de cuenta), no hay ninguna tarjeta guardada o la compra superaría tu límite mensual. Usa buy_url.
409topup_in_progress, purchase_in_progressHay otro pago en curso con tu tarjeta guardada: espera a que termine.
400unknown_packUna compra con un pack desconocido, o una cantidad libre fuera de los límites o que no es un tramo entero.
503payment_unavailableNo se ha podido confirmar el pago: no sabemos si el cargo se ha realizado. No vuelvas a intentarlo enseguida; un cargo realizado se acredita.
403key_disabled, key_revoked, key_expiredClave desactivada, revocada o expirada: crea una nueva en la app.
403license_revoked, license_not_proLicencia revocada, o una cuenta que no es Pro.
403missing_scopeA la clave le falta el permiso solicitado, indicado en scope.
403unknown_loraUn personaje que no pertenece a la cuenta.
404media_unavailableEl archivo ya no existe: envíalo de nuevo.
404unknown_loraEn DELETE /loras/{name}, ningún archivo con ese nombre en la cuenta. Nota el código: el mismo nombre devuelve 403 cuando un render solicita un personaje que no es tuyo.
411size_requiredUna subida de LoRA sin Content-Length. El cuerpo es raw, así que hay que anunciar el tamaño.
413file_too_largeUn LoRA de más de 800 MB, o más de 90 MB en una sola subida. Envíalo en partes. Un 413 sin cuerpo JSON es otra cosa: la petición nunca llegó a la API, consulta la sección de subida.
413part_too_largeUna parte es mayor que el max_part_size anunciado por la sesión.
404unknown_upload_sessionEl uploadId no existe, o la sesión fue abandonada (seis horas) o cancelada por una parte rechazada.
503upload_refused, part_refusedNo se pudo acceder al almacenamiento durante la subida: reintenta.
507storage_fullNo queda espacio en el almacenamiento del servidor (LoRAs o secuencias en curso). El equipo ha sido alertado: reintenta más tarde.
415invalid_safetensorsEl archivo subido no es un safetensors.
415incompatible_loraEl LoRA es para otra arquitectura, indicada en architecture. Las imágenes solo admiten Krea 2; los vídeos, LTX 2.5 o 2.3. No se guarda nada y no se consume ninguna cuota.
413lora_quotaEl almacenamiento de LoRAs de la cuenta está lleno (20 archivos o 10 GB). La respuesta indica lo que queda; elimina un archivo para hacer sitio.
413image_too_largeImagen fuente o máscara de más de 12 MB decodificada.
429too_many_concurrent_renders, rate_limited, daily_capSe ha alcanzado un límite, consulta Retry-After.
429daily_credit_capSe ha alcanzado el límite diario de créditos de la clave (cap, spent, cost).
502submission_failed, status_failedUn incidente en el lado del render: reintenta en unos segundos.
503license_check_failedLa cuenta no se puede verificar ahora mismo: reintenta en un minuto.
400invalid_extend_framesUna extensión cuyo extend_frames no es 9, 17, 25, 33, 41 o 49, o un extend_video que no tiene exactamente ese número de fotogramas.
400extension_with_transitionUna extensión no puede ser también una transición, salvo con consistency enhanced: elimina end_image, o solicita coherencia reforzada.
400extension_too_shortEl length de una extensión cuenta solo los nuevos fotogramas y debe ser al menos 9.
404clip_unavailableEl clip a extender ya no está disponible: extiéndelo antes, o envía su final en extend_video. Como 502, falló la lectura: reintenta.
404unknown_clipEl clip a extender pertenece a otra licencia.
404unknown_sequenceLa secuencia no existe, pertenece a otra licencia o ha expirado.
400job_id_required, empty_sequencePOST /sequences/{id}/clips sin job_id, o la exportación de una secuencia sin ningún plano.
409not_exported_yetGET /sequences/{id}/file antes de la exportación: llama primero a POST /sequences/{id}/export.
404unknown_exportExportación de la carpeta de proyecto: render desconocido, de otra licencia o enviado hace más de 24 h; ZIP borrado (45 min después de la primera descarga, 2 h como máximo).
409export_in_progressUna exportación de carpeta de proyecto a la vez por licencia.
413export_too_largeCarpeta de proyecto de más de 2 GB: exporta los planos uno a uno.
400unknown_referenceExportación de la carpeta de proyecto: una entrada de exclude_references no designa ninguna referencia de la exportación (ni id, ni nombre, ni @mención).
400invalid_export_optionsExportación de la carpeta de proyecto: una opción que no es booleana, un exclude_references que no es una lista de textos, o include_film sin include_media.
500export_failedLa exportación ha fallado (motivo en detail): no se cobra nada, vuelve a intentarlo.
422resolution_mismatch, unreadable_clipUn render añadido manualmente (POST /sequences/{id}/clips) con una resolución distinta a la de la secuencia, o ilegible.
409missing_shotUn plano aún no ha terminado o ya no está disponible (job_id lo identifica): espera a que termine y exporta de nuevo.
409sequence_exportedLa secuencia ya está ensamblada.
409audio_mismatchUn plano con sonido en una secuencia silenciosa, o al revés.
413extend_video_too_largeEl final de clip que enviaste supera los 8 MB.
413too_many_shotsMáximo 30 planos por secuencia.
422unreadable_tailEl final del clip, enviado o leído, no es un vídeo legible.
422assembly_failedLos planos tienen resoluciones distintas, o solo algunos tienen sonido.
503ultra_unavailableEl modo Ultra está cerrado por el momento: reintenta más tarde, o genera sin quality.
503ultra_4k_unavailableUn tamaño 4K pedido en Ultra: el 4K ya no se ofrece, el vídeo llega hasta 1080p (1920 x 1088).
400ultra_incompatibleSe solicitó una transición (end_image) en Ultra.
400extension_4kLa continuación de un clip 4K anterior: el 4K ya no se ofrece, un clip 4K no se puede prolongar (ultra_4k_unavailable con quality: "max"). Prolonga un clip de 1080p como máximo.
400resolution_above_qualityUn tamaño superior a 1080p (1920 x 1088) sin quality: "max": 1080p es el máximo en todos los modos.
400invalid_keyframes, invalid_keyframe_time, keyframes_modeImágenes clave fuera de rango: más de 4, una imagen o fuerza inválida; un momento fuera del clip, o dos imágenes clave a menos de 0,5 s de distancia; un modo distinto a Calidad (Ultra, Multi-Ref), o una extensión sin consistency enhanced.
400invalid_consistency, consistency_modeconsistency distinto de standard o enhanced; coherencia reforzada solicitada en Ultra o en Multi-Ref.
400consistency_explicitUn prompt que la coherencia reforzada no renderiza aún, de más de 20 s (15 s con end_image), en una extensión o en una secuencia (un solo plano más corto se renderiza en coherencia estándar): acórtalo, o usa standard.
403consistency_licensed_onlyLa coherencia reforzada está reservada para licencias.
503consistency_unavailableLa coherencia reforzada está cerrada por el momento: reintenta más tarde, o genera en standard.
409consistency_mismatchUn plano cuyo consistency difiere del de la secuencia.
422encoding_mismatchUn render añadido manualmente (POST /sequences/{id}/clips) cuyo consistency difiere del de los planos ya añadidos.
400invalid_fps, fps_requires_fixed_duration, extend_fps_mismatchUna cadencia (fps) que el modo no admite (detail lista las disponibles); coherencia reforzada por encima de 30 fps con duración automática (pon duration_auto a false y proporciona length); una extensión con una cadencia distinta a la del clip anterior.
409sequence_fps_mismatchUn plano cuya cadencia (fps) difiere de la de la secuencia.
503keyframes_unavailableLas imágenes clave están cerradas por el momento: genera sin keyframes.
429too_many_sequencesMáximo 5 secuencias en curso por licencia: exporta una, o espera a que una expire.
400invalid_name, invalid_kind, invalid_photo_role, outfit_too_long, invalid_roleUn campo de personaje fuera de rango (ver Personajes).
400image_too_smallUna foto con el lado largo inferior a 1024 px.
415unsupported_image_format, unreadable_imageUna foto o imagen de decorado que no es un JPEG, PNG o WebP legible.
404unknown_characterEl character_id no está en tu licencia, o fue eliminado (un año sin uso, o borrado en la app).
409character_limitSe ha alcanzado el límite de personajes (max): elimina uno.
409character_busySus vistas se están generando: espera hasta que status deje de ser pending. En POST /characters: la misma creación se está registrando, vuelve a enviarla unos segundos después.
409photo_view, empty_character, single_image_sheetLa vista generada a partir de la foto original no puede rehacerse; o el personaje no tiene ninguna vista legible (si es el almacenamiento el que rechaza la lectura: 503 storage_unavailable, vuelve a intentarlo); o una sheet importada como una sola imagen (conservada tal cual): sus vistas no se rehacen y no sirve para vestir una sheet nueva (envía la vista 4 o 1).
409app_characterUna instruction o una vista subida en un personaje o una character sheet hechos en la app: reservado para personajes y character sheets creados a través de la API.
400instruction_too_longUna instruction de más de 200 caracteres.
400outfit_or_views_requiredUna character sheet añadida sin outfit ni views: da un outfit que generar, o vistas.
400views_requiredUna character sheet añadida con generate: false: da al menos una vista.
409source_sheet_emptyUna character sheet añadida sin vista de cuerpo entero ni busto, a un personaje que no tiene ninguno de los dos del que partir: envía uno en views.
404unknown_sheetSolo una character sheet añadida a través de la API (sheet_origin api) se borra con DELETE /characters/{id}/sheets/{sheet_id}.
404unknown_subjectEl subject_id no está en tu licencia, o fue eliminado tras un año sin uso.
409subject_limitSe ha alcanzado el límite de sujetos (max): decorados, objetos, animales, estilos y outfits cuentan juntos; elimina uno.
409empty_subjectUn sujeto sin ninguna imagen legible.
400invalid_type, description_too_long, invalid_imagesUn campo de sujeto fuera de rango (ver Lugares, objetos, animales, estilos y outfits).
400invalid_imageUna imagen de sujeto que no es un JPEG, PNG o WebP legible de al menos 512 px en el lado largo (index indica cuál).
400description_required, invalid_views, invalid_view, invalid_count, too_many_images, prompt_too_long, invalid_instructionsGenerar un sujeto: ni description, ni prompt, ni imagen de partida; una clave de vista que el tipo no tiene (detail da la lista); count fuera de 1 a 6, o más de 6 imágenes, partida incluida; un prompt de más de 2000 caracteres; instructions vacías, demasiado largas o para varias vistas.
409subject_busy, subject_not_generated, view_exists, views_exist, start_image_missing, start_image_importedYa hay una serie en curso en este sujeto; un sujeto creado con imágenes (añade imágenes con /images); una vista ya hecha (rehazla); una partida que rehacer cuando ya parten vistas de ella; una partida fallida que hay que rehacer primero; una partida importada, que no se rehace.
404 / 503unknown_view, generation_unavailableUna vista nunca pedida (añádela); la generación de sujetos no está disponible en el servidor por ahora: vuelve a intentarlo más tarde.
400multiref_characters_required, multiref_incompatible, multiref_mode, multiref_format, invalid_lengthMulti-Ref fuera de rango: de 1 a 4 personajes (12 en Ultra), sin extensión ni transición, los formatos y duraciones de Multi-Ref Vídeo.
400duplicate_name, invalid_strength, unknown_mentionDos personajes con el mismo nombre; strength fuera de 0 a 2; un @Nombre en el prompt sin personaje asociado (mentions los lista).
400voice_requires_audio, voice_slotUna voz de personaje (voice_b64) sin sonido ("audio": true); o en un personaje distinto de characters[0] y characters[1] (el motor admite 2 voces). index indica cuál.
400invalid_voice_choicevoice distinto de character u original en un Face swap, o characters[].voice distinto de character o generated en Multi-Ref Vídeo.
413audio_too_largeUna voz de personaje de más de 4 MB, o de más de 2 MB en un Face swap. Solo se usan los primeros 5 segundos (20 en un Face swap): envía un fragmento corto.
415unsupported_audio_formatUna voz de personaje que no es un archivo de audio legible (WAV, MP3, OGG, FLAC).
400multiref_too_many_references, invalid_subject_typeMás de 4 personajes, objetos y animales en total, fuera de Ultra; un sujeto en el campo equivocado (un decorado en subjects, un objeto como location, un estilo fuera de styles, un outfit fuera de outfits).
400invalid_count, invalid_view, invalid_lora_pass, invalid_subject_image, invalid_sizeCrear una imagen: count 1 o 2, view de 1 a 5 y presente en la sheet, lora_pass de 0,3 a 0,9, la image de un sujeto entre sus imágenes, ancho y alto de 256 a 2048.
400character_not_readyCrear una imagen: la vista elegida de un personaje aún no tiene imagen.
503multiref_image_disabledCrear una imagen aún no está abierto en este servidor.
400multiref_ultra_only, multiref_too_many_images, unknown_wearerEstilos, outfits o movimiento fuera de Multi-Ref en Ultra; más de 30 imágenes en Ultra; un worn_by que no nombra a ningún personaje.
400invalid_motion, invalid_motion_mode, unreadable_motion, motion_missingmotion sin motion_id ni video_b64; un mode distinto de camera o choreography; un vídeo ilegible, o fuera de 4 a 30 s (input_video_out_of_limits); un motion_id nunca subido (sin PUT).
404 / 409unknown_motion, motion_already_usedUn motion_id desconocido, ya usado o de más de 2 horas: sube el vídeo de nuevo.
413 / 503motion_too_large, motion_not_open, motion_mode_unavailableUn vídeo de movimiento de más de 20 MB (20 MB una vez reducido a 480p); el movimiento aún no está abierto (ultra.motion_per_second vale null); un mode aún no abierto.
409extension_link_expiredUn extend_job_id que tu licencia no conoce, o un plano Ultra de más de 24 horas: sube su original (POST /extensions) y pasa extend_upload_id.
400extension_real_faceEl vídeo que quieres prolongar en Ultra no se renderizó en modo Ultra (el render de otro modo, por ejemplo) y muestra un rostro realista: no se cobra nada. Prolóngalo en modo Calidad, o vuelve a hacer el plano en Ultra.
400extension_ultra_only, extension_ultra_options, invalid_extension_direction, extension_backward_sequence, extension_tail_quality_onlyExtensión Ultra fuera de límites: extend_upload_id o backward sin quality: "max" (o desde un clip que no es Ultra); una imagen de inicio, referencias, movimiento o coherencia reforzada con ella; una dirección distinta de forward o backward; backward en una secuencia; extend_video en Ultra.
400extension_too_large, unreadable_extension, extension_upload_missingUn vídeo subido por encima de 1080p; un MP4 ilegible, o fuera de 4 a 30 s (input_video_out_of_limits); un archivo nunca subido (sin PUT).
400input_video_out_of_limitsUn vídeo enviado al modo Ultra (movimiento, vídeo que prolongar) fuera de sus límites, comprobados antes del render, sin cobro: limit indica cuál (duration: 4 a 30 s; total_duration: 30 s con los sonidos de referencia; count: 10; size: 200 MB; format: MP4 o MOV; fps: 24 a 60; pixels: ancho × alto de 409 600 a 8 295 044; aspect_ratio: 0,4 a 2,5), con value, min y max.
404 / 409unknown_extension_upload, extension_upload_usedUn extend_upload_id desconocido, de más de 2 horas o ya usado: sube el archivo de nuevo.
413 / 503extension_too_heavy, extension_not_open, extension_backward_unavailableUn archivo de más de 60 MB; la extensión Ultra aún no está abierta (ultra.extend_per_second vale null); hacia atrás aún no está abierta.
413references_too_largeLas vistas preparadas superan el presupuesto del render: usa menos personajes, o un formato más pequeño.
400video_required, character_requiredUn Face swap sin video_b64, o sin character_id.
413video_too_largeUn vídeo de Face swap de más de 20 MB: recórtalo o comprímelo primero, o usa la herramienta MCP tendre_face_swap, que admite hasta 95 MB.
415unreadable_videoEl vídeo del Face swap no es un MP4, MOV, WebM o MKV legible.
400invalid_start, invalid_duration, passage_too_shortUn pasaje de Face swap fuera de rango: start por debajo de 0 o más allá del final del vídeo; duration fuera de 0,5 a 20 s; un pasaje inferior a medio segundo.
400invalid_zone, invalid_likeness, invalid_scene, invalid_description, invalid_character_name, invalid_partUn campo de Face swap fuera de rango: zone distinto de tight, normal o wide; part distinto de full o head; likeness fuera de 0,5 a 2; scene de más de 400 caracteres; description de más de 360; name de más de 60.
413face_swap_too_largeEl pasaje sigue siendo demasiado pesado una vez preparado: indica una duration más corta.
429server_busyNuestro servidor ya está preparando dos vídeos de Face swap: reintenta después de Retry-After (20 s). El enlace de subida MCP devuelve el mismo código como 503 cuando hay demasiados archivos en espera: reintenta en unos minutos.
503face_swap_unavailable, face_swap_price_missingEl Face swap está cerrado, o sin precio, por el momento: reintenta más tarde.
503creation_unavailable, multiref_unavailable, storage_unavailableEl servicio no está disponible por el momento: reintenta más tarde.
500internal_errorUn incidente inesperado en el lado del servidor: reintenta, e infórmanos si vuelve a ocurrir.

Ultra facturado por segundo (Ultra):

CódigoerrorQué significa y qué hacer
400resolution_outside_ultraPor encima de 1080p: 480p, 720p o 1080p.
400engine_refusedEl motor rechaza el texto o una imagen: el motivo está en detail y el código en code. No se cobra nada: reformula.
502engine_unavailableEl motor no responde: vuelve a intentarlo en unos minutos. No se cobra nada.
409render_in_progressCancelación de un render que ya se está calculando: ya no se detiene, se entrega y se factura.
400invalid_references, references_too_large, multiref_ultra_options, multiref_ultra_explicitMulti-Ref en Ultra: una imagen de referencia es ilegible o demasiado pesada (20 MB como máximo en total), o una opción no es compatible.
403multiref_ultra_unavailableMulti-Ref en Ultra facturado por segundo aún no está abierto para esta cuenta.

Los nombres de error son las cadenas exactas que devuelve la API. Compáralos con ellos en lugar de con el mensaje, que puede ser reformulado.

Una respuesta no es un error: un render de Multi-Ref o un Face swap con un personaje que solo tiene una vista sale adelante, con un aviso limited_likeness en warnings ({ "code": "limited_likeness", "character_id": "...", "detail": "..." }). El parecido es limitado: crea las siete vistas del personaje para obtener uno fiel.

Un render Multi-Ref en Ultra con 9 a 12 personajes también sale adelante, con un aviso many_characters: algunos pueden faltar o mezclarse (se recomiendan 8).

Buenas prácticas

  • Consulta cada 3 segundos, no más rápido. La cola es compartida, y saturarla no ayuda a nadie.
  • Descarga en cuanto el estado sea completed. El archivo no se archiva.
  • Escribe los prompts en inglés, y para vídeos describe el movimiento en lugar de la imagen estática.
  • Una clave por uso, y un límite diario de créditos en cada clave que viva en un servidor. Una clave filtrada con límite te cuesta un día, no todo el saldo.
  • Trata un 429 como algo normal, no como un fallo: espera el Retry-After y continúa.
  • Una conexión cortada antes de la respuesta no cuesta nada. Si un envío de imagen o vídeo se queda sin respuesta (tiempo de espera de un proxy agotado, error 524, programa detenido), el renderizado no se inicia, o se cancela de inmediato, y no se cobra nada: simplemente vuelve a enviar la solicitud. En un lote de imágenes (count), los renderizados ya creados también se cancelan. La creación de un personaje, en cambio, continúa: reenviar la misma solicitud devuelve el mismo personaje, sin cobrar nada dos veces (ver Personajes).

Los prompts se registran en nuestro lado, igual que en la app, por motivos de seguridad.

Windows · Mac · Nube o local

Genera en privado. Esta noche.

Descarga tendre.AI gratis y genera sin límites, de forma privada, en tu propia GPU.

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

Mac: Apple silicon (M1 o posterior), macOS 13 o posterior. Los Mac con Intel no son compatibles.

La generación de imágenes local en Mac necesita un M4 con 24 GB de memoria, o un M2 o M3 Pro, Max o Ultra con 24 GB. Por debajo de eso, todo se ejecuta online con créditos. El retoque y el video se ejecutan online en Mac por ahora.

Todo sobre tendre.AI para Mac

¿No tienes GPU NVIDIA? Empieza 100% en la nube: 5 imágenes y 1 vídeo gratis cada día. Una tarjeta NVIDIA (8GB+) desbloquea la generación local ilimitada.