Почему одна нейросеть выдаёт разный результат в сервисах
«Kling в приложении» и «Kling у посредника» — обычно разные версии с разными значениями по умолчанию. Разбор по документации вендоров и по коду RED AI.

Одна и та же модель в двух сервисах — почти никогда не одна и та же модель. Под именем «Veo» у Google лежат шесть разных идентификаторов, под «FLUX» — два десятка эндпоинтов, а часть вендоров по умолчанию переписывает ваш запрос, если сервис явно это не запретил. Ниже — четыре механизма расхождения и способ проверить каждый.
Сразу дисклеймер: это блог RED AI, сервиса генерации, который подключает чужие модели через посредников. Значит, всё описанное ниже относится и к нам — поэтому отдельный раздел разбирает, где именно вмешивается наш код.
Одно имя — несколько разных моделей
«Veo 3.1» в документации Google [1] — это три
кода модели: veo-3.1-generate-preview, veo-3.1-fast-generate-preview и
veo-3.1-lite-generate-preview. Рядом в той же таблице ещё три, помеченные как
устаревшие. Отличия не косметические: Lite не умеет 4K, а продление ролика работает
только в 720p.
«FLUX» устроен так же. В спецификации API Black Forest Labs [2]
двадцать три адреса: flux-2-pro, flux-2-max, flux-2-flex, flux-2-klein-9b,
flux-2-klein-4b, flux-dev, flux-kontext-pro и так далее. На витринах сервисов это
чаще всего одно слово — «Flux».
Самый заметный случай — Google. Модель Gemini Omni Flash раскатали в приложение Gemini, Flow и YouTube Shorts [3]: «rolling out today to all Google AI Plus, Pro and Ultra subscribers globally through the Gemini app and Google Flow».
В API эта модель появилась 30 июня 2026 года [4], и в той же записи ленты изменений стоит ограничение: «generate 3–10 second videos at 720p». А Veo 3.1 через тот же Gemini API выдаёт 8 секунд вплоть до 4K при 24 кадрах в секунду.
Отсюда прямое следствие. «Видео от Google» в приложении и «видео от Google» у посредника упираются в разные потолки по разрешению и длительности — не потому, что кто-то режет качество, а потому что это две разные нейросети.
Ваш запрос переписывают до отправки в модель
Тут обычно и рождается ощущение обмана: человек вводит один текст, а модель, судя по результату, видела другой. Так и есть.
У Black Forest Labs это записано в описании параметра disable_pup прямым текстом:
«FLUX.2 [pro] and [max] apply prompt upsampling by default; set this to true to generate
from your prompt exactly as written» (спецификация API [2]).
То есть по умолчанию модель работает не с вашей формулировкой, а с расширенной.
Сервис, который выставит disable_pup: true, и сервис, который не выставит, получат
разные картинки на одном и том же промпте. Законно, документированно и незаметно.
У OpenAI то же самое описано в руководстве по генерации изображений [5]:
«the mainline model (for example, gpt-5.5) will automatically revise your prompt for
improved performance». Итоговый вариант возвращается в поле revised_prompt — но
показывать его пользователю сервис не обязан.
Kling переписывает не текст, а речь. В карточке Kling 3.0 Pro на fal.ai [6] в разделе Known Limitations: «Audio language support: Chinese and English natively. Other languages are auto-translated to English». Русская реплика в промпте до модели в исходном виде не доходит.
Значения по умолчанию, которых не видно в форме
Второй механизм скучнее и работает чаще. У модели есть параметры; если сервис их не показал и не отправил, применяется значение по умолчанию — и оно не нулевое.
| Параметр | Что применяется, если не задать | Источник |
|---|---|---|
negative_prompt у Kling |
"blur, distort, and low quality" |
карточка модели на fal.ai [6] |
cfg_scale у Kling |
0.5 при диапазоне 0–1 |
там же |
duration у Kling 3.0 |
"5" секунд из возможных 3–15 |
там же |
размер у flux-dev |
1024 × 768, то есть 4:3 | спецификация BFL [2] |
safety_tolerance у FLUX |
2 — но шкала 0–5 у FLUX.2 и 0–6 у dev |
там же |
output_format у flux-2-pro |
jpeg |
там же |
output_format у flux-kontext-pro |
png |
там же |
Последние две строки — один вендор, соседние эндпоинты, разные форматы файла по умолчанию. Один с потерями, другой без.
Со звуком у Kling отдельная история. В таблице параметров на странице модели
написано generate_audio boolean true, а в схеме OpenAPI, встроенной в ту же самую
страницу, лежит "generate_audio":{"default":false}. Документация вендора расходится
сама с собой на одной странице — и это, честно говоря, раздражает больше всего
остального в этом разборе: проверить значение можно только запросом.
Ещё одна деталь Kling: в схеме запроса нет параметра seed. Задать номер зерна и
повторить понравившийся кадр через посредника не выйдет — такого поля ему просто некуда
положить.
Формат и разрешение на выходе выбирает сервис
Разрешение — не свойство модели, а параметр запроса. Veo 3.1 умеет 720p, 1080p и 4K,
частота кадров зафиксирована на 24 fps, длительность — 4, 6 или 8 секунд
(документация Google [1]). Gemini Omni Flash —
только 720p и 3–10 секунд. Kling 3.0 разнесён по эндпоинтам: standard, pro и
отдельный 4k.
Какой из вариантов уйдёт в запрос, решает сервис. Если в форме нет выбора разрешения, значение всё равно есть — просто вам его не показали. Какие версии модели и какой потолок разрешения доступны, обычно видно на её лендинге — например, на странице Nano Banana в RED AI перечислены варианты и их ограничения.
Что из этого делает RED AI
Разбирать чужие сервисы и молчать про свой — нечестно, поэтому конкретика по коду.
Промпт переписывается у двух инструментов каталога. Это RED AI Generator
и RED AI Imaginator: перед отправкой текст проходит через отдельную языковую модель,
которая переводит его на английский и дополняет.
Причина зафиксирована в комментарии к коду. Во внутреннем эксперименте команды на 88 генерациях русский промпт при наличии входного фото модель выполнила 0 раз из 6. Тот же промпт на английском дал 3 из 6, а без фото — 5 из 5. Итоговый текст пользователю показывают: на странице заказа есть блок «Сгенерированный промпт».
У остальных инструментов сервер промпт не переписывает. У моделей Kling, Veo, Flux, Nano Banana, GPT Image, Seedance и Suno текст уходит в провайдера таким, каким его ввели.
Два исключения включает сам пользователь. Кнопка «Улучшить с AI» подставляет новый
вариант прямо в поле — видно, что именно уйдёт. А вот выбранный стиль дописывается к
промпту уже в момент отправки, отдельным блоком Visual style:, и в поле его не видно.
Стиля по умолчанию нет: пока его не выбрали, до провайдера доходит ровно введённый
текст. Но если выбрали — вы отправляете длиннее, чем написали. Что ещё, кроме этой
кнопки, меняет результат генерации — в статье
«Как улучшить результат генерации: 7 приёмов и 2 мифа».
Значения по умолчанию, которые проставляет наш бэкенд. У Kling 3.0: звук выключен,
5 секунд, 16:9, режим pro (это 1080p, а не самый дешёвый std), мультикадр отключён
жёстко. У Veo 3.1: 720p, 8 секунд, 16:9. У Nano Banana 2 формат вывода зафиксирован
PNG — выбора в интерфейсе нет, и это решение сервиса, а не модели.
Негативного промпта в RED AI нет ни у одной модели. Поля не существует, мы его не отправляем, а значит применяется значение по умолчанию на стороне провайдера.
Какое именно — зависит от канала: у fal.ai это документированная строка
"blur, distort, and low quality", у нашего посредника публичной документации на этот
счёт нет. В интерфейсе значение не отображается в любом случае. Ровно тот механизм,
которому посвящена статья, только уже про нас.
Входную картинку для RED AI Generator и RED AI Imaginator сервис уменьшает до
512 px по большей стороне — требование лёгкой модели, на которой работают бесплатные
инструменты. Правило мягкое: если уменьшенный вариант не успел построиться, в модель
уйдёт оригинал. Что вообще происходит с фото после загрузки в нейросеть — отдельный
разбор в статье
«Что происходит с фото, которое вы загрузили в нейросеть».
FLUX у нас подключён через двух провайдеров — разными чекпоинтами
(flux-2-klein-4b у Cloudflare, flux-2/pro у KIE) и с разной адресацией
референсов. У одного нумерация с нуля, у другого с единицы: «image 1» в промпте
означает разные картинки. В комментарии к коду это сформулировано так — база нумерации
привязана к интеграции, а не к модели.
Результат не пережимается. Файл от провайдера уходит в хранилище потоком, без перекодирования и смены битрейта; отдельно строятся только превью для галереи.
Чего в интерфейсе не хватает: под названием RED AI Generator работает FLUX.2 Klein на
Cloudflare Workers AI. В интерфейсе не сказано ни то, ни другое — модель названа только
в серверном описании инструмента, которое приходит в API и нигде не отображается, а
номер чекпоинта живёт исключительно в коде. Тот же приём, что и у всех остальных: бренд
крупно, версия никак.
Как проверить конкретный сервис
- Найдите идентификатор модели, а не название. «Kling 3.0» — не идентификатор.
kling-3.0/videoв режимеstdи в режиме4Kдадут разное. - Посмотрите метаданные файла.
ffprobeили MediaInfo покажут разрешение, кодек, частоту кадров, битрейт и длительность. Это факт о файле, а не обещание витрины. - Проверьте, показывает ли сервис итоговый промпт. Пресет стиля, шаблон, галочка «сделать красиво» — всё это обычно дописывает текст в запрос, не меняя того, что вы видите в поле. У нас, как видно выше, тоже.
- Сравните размер входной картинки до и после. Уменьшение на входе меняет результат сильнее, чем кажется.
- Поищите в интерфейсе негативный промпт, guidance и звук. Нет поля — параметр всё равно применяется, просто чужим значением.
Чтобы сравнение вообще имело смысл, нужен один и тот же текст запроса в обоих сервисах. Проще взять готовый из каталога промптов RED AI — шаблоны там отфильтрованы по инструментам, и формулировка не меняется от прогона к прогону.
Чего этот разбор не доказывает
Собственных замеров битрейта и веса файлов у одного и того же ролика в разных сервисах здесь нет — сравнение сделано по документации вендоров и по нашему коду, а не прогонами. Утверждать «в сервисе X битрейт ниже» без такого замера нельзя, и мы не утверждаем.
Значения по умолчанию у Kling взяты с площадки-посредника fal.ai: официальный портал разработчика Kling отдаёт пустую страницу без текста, проверено запросом. Значения могут отличаться от того, что применяет сам Kuaishou в своём приложении.
И главное ограничение: даже при полном совпадении версии, параметров и промпта два
запуска дадут разные кадры. Генерация вероятностна, seed есть не у всех моделей, а у
Kling его нет вообще. Расхождение результатов между сервисами объяснимо; полное
совпадение — нет.
Практический вывод для тех, кто сравнивает сервисы: фиксируйте идентификатор модели, разрешение и режим. Без этого вы сравниваете две настройки, а не две площадки, и спор «где Kling лучше» сводится к тому, у кого в форме больше галочек выставлено за вас.
Источники
- Google, документация Gemini API по Veo.
- Black Forest Labs, спецификация API (OpenAPI).
- Google, блог — анонс Gemini Omni Flash.
- Google, лента изменений Gemini API.
- OpenAI, руководство по генерации изображений.
- fal.ai, карточка модели Kling 3.0 Pro.