Блог
Статья30 августа 2026 г.

Почему одна нейросеть выдаёт разный результат в сервисах

«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 и нигде не отображается, а номер чекпоинта живёт исключительно в коде. Тот же приём, что и у всех остальных: бренд крупно, версия никак.

Как проверить конкретный сервис

  1. Найдите идентификатор модели, а не название. «Kling 3.0» — не идентификатор. kling-3.0/video в режиме std и в режиме 4K дадут разное.
  2. Посмотрите метаданные файла. ffprobe или MediaInfo покажут разрешение, кодек, частоту кадров, битрейт и длительность. Это факт о файле, а не обещание витрины.
  3. Проверьте, показывает ли сервис итоговый промпт. Пресет стиля, шаблон, галочка «сделать красиво» — всё это обычно дописывает текст в запрос, не меняя того, что вы видите в поле. У нас, как видно выше, тоже.
  4. Сравните размер входной картинки до и после. Уменьшение на входе меняет результат сильнее, чем кажется.
  5. Поищите в интерфейсе негативный промпт, guidance и звук. Нет поля — параметр всё равно применяется, просто чужим значением.

Чтобы сравнение вообще имело смысл, нужен один и тот же текст запроса в обоих сервисах. Проще взять готовый из каталога промптов RED AI — шаблоны там отфильтрованы по инструментам, и формулировка не меняется от прогона к прогону.

Чего этот разбор не доказывает

Собственных замеров битрейта и веса файлов у одного и того же ролика в разных сервисах здесь нет — сравнение сделано по документации вендоров и по нашему коду, а не прогонами. Утверждать «в сервисе X битрейт ниже» без такого замера нельзя, и мы не утверждаем.

Значения по умолчанию у Kling взяты с площадки-посредника fal.ai: официальный портал разработчика Kling отдаёт пустую страницу без текста, проверено запросом. Значения могут отличаться от того, что применяет сам Kuaishou в своём приложении.

И главное ограничение: даже при полном совпадении версии, параметров и промпта два запуска дадут разные кадры. Генерация вероятностна, seed есть не у всех моделей, а у Kling его нет вообще. Расхождение результатов между сервисами объяснимо; полное совпадение — нет.

Практический вывод для тех, кто сравнивает сервисы: фиксируйте идентификатор модели, разрешение и режим. Без этого вы сравниваете две настройки, а не две площадки, и спор «где Kling лучше» сводится к тому, у кого в форме больше галочек выставлено за вас.

Источники

  1. Google, документация Gemini API по Veo.
  2. Black Forest Labs, спецификация API (OpenAPI).
  3. Google, блог — анонс Gemini Omni Flash.
  4. Google, лента изменений Gemini API.
  5. OpenAI, руководство по генерации изображений.
  6. fal.ai, карточка модели Kling 3.0 Pro.