Pro API: лимиты, коды ошибок и рекомендации

Лимиты

У каждого ключа их три: одновременных рендеров (по умолчанию 2), запросов в минуту (по умолчанию 60) и, если ты его задал, дневной лимит кредитов.

При превышении лимита ответ, 429 с заголовком Retry-After в секундах. Отклонённый вызов ничего не стоит. Сутки для лимитов отсчитываются по UTC.

Длинные видео добавляют ещё два лимита: 30 кадров на последовательность и 5 последовательностей в работе на лицензию (см. Videos).

У персонажей один лимит: 50 на Pro-лицензию, включая созданных в приложении, а персонаж, не используемый один год, удаляется (см. Characters). Места, объекты и животные имеют собственный лимит, учитываемый отдельно: 50 на Pro-лицензию (10 с персональной лицензией в приложении), удаляются после того же года без использования (см. Места, объекты, животные, стили и наряды).

Face swap имеет два собственных лимита: отрывок не более 20 с на рендер, и наш сервер обрабатывает два видео одновременно. При превышении ответ, 429 server_busy: повтори после Retry-After (см. Face swap). Через MCP Face swap с переходом принимает всё видео целиком не более 60 с, а сервер обрабатывает два одновременно: сверх этого инструмент просит повторить попытку через несколько минут.

Наша карта используется совместно с пользователями приложения. Когда она занята, твои рендеры уходят на арендованные GPU по той же цене и через тот же API, с дополнительными несколькими десятками секунд при запуске.

Коды ошибок

КодerrorЧто означает и что делать
400prompt_requiredДобавь промпт.
400forbidden_contentФильтр контента отклонил промпт.
400invalid_seedseed должен быть целым числом от 0 до 4294967295.
400image_required, inpaint_images_requiredРежим требует image_b64, а для inpaint ещё и mask_b64.
401key_required, invalid_keyЗаголовок отсутствует или ключ неизвестен.
402insufficient_creditsНедостаточно баланса для этого рендера (указана cost). В ответе есть buy_url: страница покупки кредитов для твоей лицензии. Рендер или обучение, выполняемые в данный момент, резервируют свою стоимость до завершения: engaged показывает, сколько кредитов зарезервировано.
402confirmation_required, payment_declinedПокупка с сохранённой карты (POST /credits/purchase): банк просит твоего подтверждения или отклонил платёж. Воспользуйся buy_url, обычной ссылкой на покупку.
409agent_not_allowed, no_saved_card, monthly_cap_reachedПокупка с сохранённой карты: агенту не разрешено покупать (автопополнение на странице аккаунта), карта не сохранена, или покупка превысила бы твой месячный лимит. Воспользуйся buy_url.
409topup_in_progress, purchase_in_progressИдёт другой платёж с сохранённой карты: дождись его завершения.
400unknown_packПокупка с неизвестным пакетом или с произвольным количеством вне допустимых границ или не кратным шагу.
503payment_unavailableПлатёж не удалось подтвердить: мы не знаем, прошло ли списание. Не повторяй сразу; прошедшее списание будет зачислено.
403key_disabled, key_revoked, key_expiredКлюч отключён, отозван или истёк срок действия: создай новый в приложении.
403license_revoked, license_not_proЛицензия отозвана или аккаунт не является Pro.
403missing_scopeКлючу не хватает запрошенного разрешения, его название указано в scope.
403unknown_loraПерсонаж не принадлежит этому аккаунту.
404media_unavailableФайл удалён: отправь запрос заново.
404unknown_loraПри DELETE /loras/{name} файла с таким именем нет в аккаунте. Обрати внимание на код: то же имя даёт 403, когда рендер запрашивает персонажа, который тебе не принадлежит.
411size_requiredЗагрузка LoRA без Content-Length. Тело передаётся как есть, поэтому размер нужно объявить заранее.
413file_too_largeLoRA превышает 800 МБ или 90 МБ в одной загрузке. Отправь по частям. Простой 413 без JSON-тела, другая ситуация: запрос вообще не дошёл до API, см. раздел про загрузку.
413part_too_largeОдна часть превышает max_part_size, объявленный сессией.
404unknown_upload_sessionuploadId не существует, либо сессия была заброшена (шесть часов) или отменена из-за отклонённой части.
503upload_refused, part_refusedХранилище не было доступно во время загрузки: повтори попытку.
507storage_fullНа серверном хранилище нет свободного места (LoRA или незавершённые последовательности). Команда уведомлена: повтори позже.
415invalid_safetensorsЗагруженный файл не является safetensors.
415incompatible_loraLoRA предназначена для другой архитектуры, указанной в architecture. Изображения принимают только Krea 2, видео, LTX 2.5 или 2.3. Ничего не сохраняется, квота не расходуется.
413lora_quotaХранилище LoRA аккаунта заполнено (20 файлов или 10 ГБ). В ответе указано, что осталось; удали файл, чтобы освободить место.
413image_too_largeИсходное изображение или маска превышают 12 МБ после декодирования.
429too_many_concurrent_renders, rate_limited, daily_capЛимит достигнут, см. Retry-After.
429daily_credit_capДостигнут дневной лимит кредитов ключа (cap, spent, cost).
502submission_failed, status_failedИнцидент на стороне рендеринга: повтори через несколько секунд.
503license_check_failedАккаунт не удаётся проверить прямо сейчас: повтори через минуту.
400invalid_extend_framesПродолжение, у которого extend_frames не равен 9, 17, 25, 33, 41 или 49, либо extend_video, у которого не ровно столько кадров.
400extension_with_transitionПродолжение не может одновременно быть переходом, кроме случая consistency enhanced: убери end_image или запроси усиленную согласованность.
400extension_too_shortlength продолжения учитывает только новые кадры и должен быть не менее 9.
404clip_unavailableКлип для продолжения больше недоступен: продолжи его раньше или передай его конец в extend_video. При 502 не удалось его прочитать: повтори.
404unknown_clipКлип для продолжения принадлежит другой лицензии.
404unknown_sequenceПоследовательность не существует, принадлежит другой лицензии или истекла.
400job_id_required, empty_sequencePOST /sequences/{id}/clips без job_id или экспорт последовательности без ни одного кадра.
409not_exported_yetGET /sequences/{id}/file до экспорта: сначала вызови POST /sequences/{id}/export.
404unknown_exportЭкспорт папки проекта: неизвестный рендер, рендер другой лицензии или отправленный более 24 ч назад; ZIP удалён (через 45 мин после первого скачивания, не позднее 2 ч).
409export_in_progressОдин экспорт папки проекта одновременно на лицензию.
413export_too_largeПапка проекта больше 2 ГБ: экспортируй кадры по одному.
400unknown_referenceЭкспорт папки проекта: элемент exclude_references не указывает ни на один референс экспорта (ни id, ни имя, ни @упоминание).
400invalid_export_optionsЭкспорт папки проекта: параметр, который не является булевым, exclude_references, который не является списком строк, или include_film без include_media.
500export_failedЭкспорт не удался (причина в detail): ничего не списано, попробуй снова.
422resolution_mismatch, unreadable_clipРендер, добавленный вручную (POST /sequences/{id}/clips) с разрешением, отличным от разрешения последовательности, или нечитаемый.
409missing_shotКадр ещё не готов или больше недоступен (job_id его называет): дождись завершения, затем снова экспортируй.
409sequence_exportedПоследовательность уже собрана.
409audio_mismatchКадр со звуком в беззвучной последовательности или наоборот.
413extend_video_too_largeКонец клипа, который ты отправил, превышает 8 МБ.
413too_many_shotsНе более 30 кадров на последовательность.
422unreadable_tailКонец клипа, отправленный или считанный обратно, не является читаемым видео.
422assembly_failedКадры имеют разное разрешение или звук только у некоторых из них.
503ultra_unavailableРежим Ультра временно недоступен: повтори позже или создай рендер без quality.
503ultra_4k_unavailableРазмер 4K запрошен в Ультра: 4K больше не предлагается, видео доступно до 1080p (1920 x 1088).
400ultra_incompatibleПереход (end_image) запрошен в режиме Ультра.
400extension_4kПродолжение прежнего 4K-клипа: 4K больше не предлагается, 4K-клип нельзя продлить (ultra_4k_unavailable с quality: "max"). Продлевай клип не выше 1080p.
400resolution_above_qualityРазмер выше 1080p (1920 x 1088) без quality: "max": максимум 1080p в любом режиме.
400invalid_keyframes, invalid_keyframe_time, keyframes_modeКлючевые кадры вне допустимых границ: более 4, недопустимое изображение или сила; момент за пределами клипа или два ключевых кадра ближе 0,5 с друг к другу; режим, отличный от Качество (Ультра, Multi-Ref), или продолжение без consistency enhanced.
400invalid_consistency, consistency_modeconsistency отличается от standard или enhanced; усиленная согласованность запрошена в Ультра или в Multi-Ref.
400consistency_explicitПромпт, который усиленная согласованность пока не обрабатывает, длиннее 20 с (15 с при наличии end_image), в продолжении или в последовательности (один более короткий кадр обрабатывается со стандартной согласованностью): укороти его или используй standard.
403consistency_licensed_onlyУсиленная согласованность доступна только для лицензий.
503consistency_unavailableУсиленная согласованность временно недоступна: повтори позже или создай рендер в standard.
409consistency_mismatchКадр, у которого consistency отличается от значения последовательности.
422encoding_mismatchРендер, добавленный вручную (POST /sequences/{id}/clips), у которого consistency отличается от уже добавленных кадров.
400invalid_fps, fps_requires_fixed_duration, extend_fps_mismatchЧастота кадров (fps), которую режим не поддерживает (detail перечисляет доступные); усиленная согласованность выше 30 fps с автоматической длительностью (задай duration_auto как false и укажи length); продолжение с частотой кадров, отличной от предыдущего клипа.
409sequence_fps_mismatchКадр, у которого частота кадров (fps) отличается от значения последовательности.
503keyframes_unavailableКлючевые кадры временно недоступны: создай рендер без keyframes.
429too_many_sequencesНе более 5 последовательностей в работе на лицензию: экспортируй одну или дождись истечения срока.
400invalid_name, invalid_kind, invalid_photo_role, outfit_too_long, invalid_roleПоле персонажа вне допустимых границ (см. Characters).
400image_too_smallФотография меньше 1024 пкс по длинной стороне.
415unsupported_image_format, unreadable_imageФотография или изображение локации не является читаемым JPEG, PNG или WebP.
404unknown_charactercharacter_id не привязан к твоей лицензии или был удалён (год без использования или удалён в приложении).
409character_limitДостигнут лимит персонажей (max): удали одного.
409character_busyЕго ракурсы создаются: дождись, пока status перестанет быть pending. Для POST /characters: то же создание ещё сохраняется, отправь его снова через несколько секунд.
409photo_view, empty_character, single_image_sheetРакурс, полученный из оригинальной фотографии, нельзя переделать; или у персонажа нет ни одного читаемого ракурса (если чтение отклоняет хранилище: 503 storage_unavailable, повторите попытку); или sheet, импортированный одним изображением (сохранённый как есть): его ракурсы не переделываются, и он не одевает новый sheet (передайте ракурс 4 или 1).
409app_characterinstruction или загруженный ракурс для персонажа или character sheet из приложения: зарезервировано для персонажей и character sheet, созданных через API.
400instruction_too_longinstruction длиннее 200 символов.
400outfit_or_views_requiredCharacter sheet добавлен без outfit и без views: укажи образ для генерации или ракурсы.
400views_requiredCharacter sheet добавлен с generate: false: укажи хотя бы один ракурс.
409source_sheet_emptyCharacter sheet добавлен без ракурса в полный рост и без бюста персонажу, у которого нет ни того, ни другого, чтобы взять за основу: пришли один из них в views.
404unknown_sheetЧерез DELETE /characters/{id}/sheets/{sheet_id} удаляется только character sheet, добавленный через API (sheet_origin api).
404unknown_subjectsubject_id не привязан к твоей лицензии или был удалён после года без использования.
409subject_limitДостигнут лимит объектов (max): места, предметы, животные, стили и наряды считаются вместе; удали один.
409empty_subjectОбъект без ни одного читаемого изображения.
400invalid_type, description_too_long, invalid_imagesПоле объекта вне допустимых границ (см. Места, объекты, животные, стили и наряды).
400invalid_imageИзображение объекта не является читаемым JPEG, PNG или WebP размером не менее 512 пкс по длинной стороне (index указывает, какое именно).
400description_required, invalid_views, invalid_view, invalid_count, too_many_images, prompt_too_long, invalid_instructionsГенерация объекта: нет ни description, ни prompt, ни стартового изображения; ключ ракурса, которого нет у типа (detail даёт список); count вне диапазона от 1 до 6 или больше 6 изображений, включая старт; prompt длиннее 2000 символов; instructions пустые, слишком длинные или для нескольких ракурсов.
409subject_busy, subject_not_generated, view_exists, views_exist, start_image_missing, start_image_importedСерия на этом объекте уже идёт; объект создан из изображений (добавляй изображения через /images); ракурс уже сделан (переделай его); старт нужно переделать, а из него уже исходят ракурсы; неудачный старт нужно сначала переделать; импортированный старт, который не переделывается.
404 / 503unknown_view, generation_unavailableРакурс, который никогда не запрашивали (добавь его); генерация объектов сейчас недоступна на сервере: повтори позже.
400multiref_characters_required, multiref_incompatible, multiref_mode, multiref_format, invalid_lengthMulti-Ref вне допустимых границ: от 1 до 4 персонажей (12 в Ультра), без продолжений или переходов, форматы и длительности из Multi-Ref Video.
400duplicate_name, invalid_strength, unknown_mentionДва персонажа с одинаковым именем; strength вне диапазона от 0 до 2; @Имя в промпте без персонажа (mentions их перечисляет).
400voice_requires_audio, voice_slotГолос персонажа (voice_b64) без звука ("audio": true); или для персонажа, отличного от characters[0] и characters[1] (движок поддерживает 2 голоса). index указывает, какой именно.
400invalid_voice_choicevoice отличается от character или original в Face swap, или characters[].voice отличается от character или generated в Multi-Ref Видео.
413audio_too_largeГолос персонажа превышает 4 МБ или 2 МБ в Face swap. Используются только первые 5 секунд (20 в Face swap): отправь короткий фрагмент.
415unsupported_audio_formatГолос персонажа не является читаемым аудиофайлом (WAV, MP3, OGG, FLAC).
400multiref_too_many_references, invalid_subject_typeБолее 4 персонажей, объектов и животных суммарно вне Ультра; объект в неверном поле (локация в subjects, предмет как location, стиль вне styles, наряд вне outfits).
400invalid_count, invalid_view, invalid_lora_pass, invalid_subject_image, invalid_sizeСоздать изображение: count 1 или 2, view от 1 до 5 и присутствует в character sheet, lora_pass от 0,3 до 0,9, image объекта из числа его изображений, ширина и высота от 256 до 2048.
400character_not_readyСоздать изображение: у выбранного ракурса персонажа ещё нет изображения.
503multiref_image_disabledСоздание изображения на этом сервере ещё не открыто.
400multiref_ultra_only, multiref_too_many_images, unknown_wearerСтили, наряды или движение вне Multi-Ref в Ультра; более 30 изображений в Ультра; worn_by, не называющее ни одного персонажа.
400invalid_motion, invalid_motion_mode, unreadable_motion, motion_missingmotion без motion_id и без video_b64; mode кроме camera или choreography; нечитаемое видео или видео вне диапазона от 4 до 30 с (input_video_out_of_limits); motion_id, который так и не был загружен (нет PUT).
404 / 409unknown_motion, motion_already_usedmotion_id неизвестен, уже использован или старше 2 часов: загрузи видео заново.
413 / 503motion_too_large, motion_not_open, motion_mode_unavailableВидео движения больше 20 МБ (20 МБ после приведения к 480p); движение пока не открыто (ultra.motion_per_second равно null); mode, который пока не открыт.
409extension_link_expiredextend_job_id, неизвестный твоей лицензии, или план Ультра старше 24 часов: загрузи его оригинал (POST /extensions) и передай extend_upload_id.
400extension_real_faceВидео для продления в Ультра отрендерено не в режиме Ультра (например, рендер другого режима), и на нём реалистичное лицо: ничего не списывается. Продли его в режиме Качество или переделай план в Ультра.
400extension_ultra_only, extension_ultra_options, invalid_extension_direction, extension_backward_sequence, extension_tail_quality_onlyРасширение Ультра вне допустимых рамок: extend_upload_id или backward без quality: "max" (или из клипа не в Ультра); начальное изображение, референсы, движение или усиленная согласованность вместе с ним; направление кроме forward или backward; backward в последовательности; extend_video в Ультра.
400extension_too_large, unreadable_extension, extension_upload_missingЗагруженное видео выше 1080p; нечитаемый MP4 или вне диапазона от 4 до 30 с (input_video_out_of_limits); файл, который так и не был загружен (нет PUT).
400input_video_out_of_limitsВидео, отправленное в режим Ultra (движение, видео для продления), вне его пределов, проверенных перед рендером, ничего не списано: limit указывает, какой (duration: от 4 до 30 с; total_duration: 30 с вместе с опорными звуками; count: 10; size: 200 МБ; format: MP4 или MOV; fps: от 24 до 60; pixels: ширина × высота от 409 600 до 8 295 044; aspect_ratio: от 0,4 до 2,5), с value, min и max.
404 / 409unknown_extension_upload, extension_upload_usedextend_upload_id неизвестен, старше 2 часов или уже использован: загрузи файл заново.
413 / 503extension_too_heavy, extension_not_open, extension_backward_unavailableФайл больше 60 МБ; расширение Ультра пока не открыто (ultra.extend_per_second равно null); назад пока не открыто.
413references_too_largeПодготовленные ракурсы превышают бюджет рендера: используй меньше персонажей или меньший формат.
400video_required, character_requiredFace swap без video_b64 или без character_id.
413video_too_largeВидео для Face swap превышает 20 МБ: обрежь или сожми его заранее, либо используй MCP-инструмент tendre_face_swap, который принимает до 95 МБ.
415unreadable_videoВидео для Face swap не является читаемым MP4, MOV, WebM или MKV.
400invalid_start, invalid_duration, passage_too_shortОтрывок Face swap вне допустимых границ: start меньше 0 или за концом видео; duration вне диапазона от 0,5 до 20 с; отрывок короче полсекунды.
400invalid_zone, invalid_likeness, invalid_scene, invalid_description, invalid_character_name, invalid_partПоле Face swap вне допустимых границ: zone отличается от tight, normal или wide; part отличается от full или head; likeness вне диапазона от 0,5 до 2; scene длиннее 400 символов; description длиннее 360; name длиннее 60.
413face_swap_too_largeОтрывок после подготовки всё равно слишком тяжёлый: задай меньшую duration.
429server_busyНаш сервер уже обрабатывает два видео Face swap: повтори после Retry-After (20 с). Ссылка для загрузки MCP отвечает тем же кодом как 503, когда слишком много файлов в очереди: повтори через несколько минут.
503face_swap_unavailable, face_swap_price_missingFace swap закрыт или не имеет цены прямо сейчас: повтори позже.
503creation_unavailable, multiref_unavailable, storage_unavailableСервис временно недоступен: повтори позже.
500internal_errorНепредвиденный инцидент на стороне сервера: повтори попытку и сообщи нам, если это повторится.

Ультра с посекундной оплатой (Ultra):

КодerrorЧто означает и что делать
400resolution_outside_ultraВыше 1080p: 480p, 720p или 1080p.
400engine_refusedДвижок отклоняет текст или изображение: причина в detail, код в code. Ничего не списывается: переформулируй.
502engine_unavailableДвижок не отвечает: повтори через несколько минут. Ничего не списывается.
409render_in_progressОтмена рендера, который уже рассчитывается: он больше не останавливается, доставляется и оплачивается.
400invalid_references, references_too_large, multiref_ultra_options, multiref_ultra_explicitMulti-Ref в Ультра: референсное изображение нечитаемо или слишком тяжёлое (не более 20 МБ в сумме), или опция не поддерживается.
403multiref_ultra_unavailableMulti-Ref в Ультра с посекундной оплатой ещё не открыт для этого аккаунта.

Названия ошибок, точные строки, которые возвращает API. Сопоставляй по ним, а не по сообщению, которое может быть переформулировано.

Один ответ не является ошибкой: рендер Multi-Ref или Face swap с персонажем, у которого только один ракурс, проходит, но в warnings появляется предупреждение limited_likeness ({ "code": "limited_likeness", "character_id": "...", "detail": "..." }). Сходство будет ограниченным: создай семь ракурсов персонажа для точного сходства.

Рендер Multi-Ref в Ультра с 9-12 персонажами тоже проходит, с предупреждением many_characters: некоторые могут пропасть или смешаться (рекомендуется 8).

Рекомендации

  • Опрашивай каждые 3 секунды, не чаще. Очередь общая, и её перегрузка никому не помогает.
  • Скачивай сразу, как только статус становится completed. Файл не архивируется.
  • Пиши промпты на английском, а для видео описывай движение, а не статичную картинку.
  • Один ключ на задачу и дневной лимит кредитов на каждом ключе, живущем на сервере. Утечка ключа с лимитом обойдётся тебе в один день, а не в весь баланс.
  • Относись к 429 как к норме, а не к ошибке: подожди Retry-After и продолжай.
  • Соединение, оборвавшееся до ответа, ничего не стоит. Если отправка изображения или видео осталась без ответа (истёк тайм-аут прокси, ошибка 524, программа остановлена), рендер не запускается или сразу отменяется, и ничего не списывается: просто отправь запрос ещё раз. Для серии изображений (count) уже созданные рендеры тоже отменяются. Создание персонажа при этом продолжается: повторная отправка того же запроса вернёт того же персонажа, без двойного списания (см. Characters).

Промпты логируются на нашей стороне, как и в приложении, в целях безопасности.

Windows · Mac · облако или локально

Генерируй приватно. Уже сегодня вечером.

Скачай tendre.AI бесплатно и генерируй без ограничений, приватно, на своём собственном GPU.

OS Windows 10/11GPU NVIDIA 8ГБ+VRAM 12ГБ рекомендуетсяДиск 20ГБ

Mac: Apple silicon (M1 или новее), macOS 13 или новее. Intel Mac не поддерживаются.

Для локальной генерации изображений на Mac нужен M4 с 24 ГБ памяти, либо M2 или M3 Pro, Max или Ultra с 24 ГБ. Если у тебя устройство послабее, всё работает онлайн через кредиты. Ретушь и видео на Mac пока тоже работают только онлайн.

Всё о tendre.AI для Mac

Нет видеокарты NVIDIA? Начни на 100% в облаке: 5 бесплатных изображений и 1 бесплатное видео каждый день. Карта NVIDIA (от 8 ГБ) открывает безлимитную локальную генерацию.