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

Из текста или из фото: как генерировать видео

Text-to-video или image-to-video: что даёт стартовый кадр, какие настройки он взамен забирает и почему одна модель в двух режимах стоит на разных местах.

Из текста или из фото: как генерировать видео

Стартовый кадр — единственный способ узнать заранее, как будет выглядеть начало ролика. Всё остальное в генерации остаётся вероятностью. Отсюда рабочее правило: есть картинка, отдавайте её модели; нет — генерируйте из текста.

Что каждый режим забирает взамен и почему одна модель в двух режимах стоит на разных местах — по документации вендоров на 15 августа 2026 года.

Что именно закрепляет стартовый кадр

Из текста модель придумывает всё: композицию, свет, лицо, цвет упаковки, движение камеры. Из картинки — только движение.

Google описывает это без метафор: Veo «uses the input image as the initial frame» [1]. У OpenAI формулировка почти дословно та же: входное изображение «acts as the first frame of your video» [2].

Отсюда простое следствие. Фирменный цвет, форма флакона, лицо героя — либо вы закрепляете их кадром, либо спорите о них с промптом на каждой попытке. Второй путь работает, но стоит больше попыток.

Стартовый кадр отбирает часть настроек

Тут прячется неочевидное. Дали картинку — потеряли управление геометрией кадра.

У Kling 3.0 Pro это записано в разделе ограничений дословно: «Aspect ratio is inferred from the start image. The aspect_ratio field in the UI is ignored by the model» [3]. Поле в интерфейсе есть, модель его не читает.

У Seedance 2.0 то же самое сказано мягче: aspect_ratio по умолчанию auto, то есть «inferred from image» [4]. У OpenAI требование жёстче всех: «The image must match the target video’s resolution» [2] — несовпадение просто не примут.

Практический вывод скучный и полезный: соотношение сторон ролика решается не при генерации видео, а раньше — когда вы делаете стартовый кадр. Вертикальный ролик из горизонтальной фотографии не получится ни при каком промпте.

Одна модель, два разных места в рейтинге

Artificial Analysis ведёт два отдельных рейтинга видеомоделей — на слепых попарных голосах пользователей. Ниже — как выглядят одни и те же модели в обоих, по состоянию на 15 августа 2026 года: text-to-video [5] и image-to-video [6].

Модель Из текста Из картинки
Seedance 2.0 720p 3-е, Elo 1222 1-е, Elo 1198
Gemini Omni Flash 1-е, Elo 1241 3-е, Elo 1191
MiniMax H3 2-е, Elo 1238 2-е, Elo 1192
HappyHorse 1.1 5-е, Elo 1146 5-е, Elo 1112
Kling 3.0 1080p Pro 8-е, Elo 1109 12-е, Elo 1077
Veo 3.1 11-е, Elo 1091 10-е, Elo 1086
Grok Imagine Video 18-е, Elo 1065 11-е, Elo 1079
Wan 2.6 20-е, Elo 1025 28-е, Elo 895

Самый резкий случай — Wan 2.6: двадцатое место из текста и двадцать восьмое из картинки, притом что Elo падает на 130 пунктов. Grok Imagine Video двигается в обратную сторону — с восемнадцатого на одиннадцатое.

Две оговорки, без которых таблицей пользоваться нельзя. Первая: доверительный интервал по строкам от ±6 до ±9, так что разрыв в два-три пункта — шум. Kling 3.0 Omni в вариантах 720p и 1080p вообще стоят на одинаковых 1089.

Вторая: Elo двух таблиц считаются по разным наборам сравнений. Сопоставлять между таблицами можно порядок, но не абсолютные числа.

И то, что в таблицу не помещается: модель может просто не иметь режима. Wan 2.7-260612 стоит четвёртым в text-to-video, а в image-to-video его нет вовсе. Отдельная модель Grok Imagine 1.5 — наоборот, четвёртая из картинки и в рейтинге из текста не значится.

Первый и последний кадр — отдельный разговор

Кроме «дать стартовый кадр» есть режим «дать два кадра»: начальный и конечный. Модель придумывает переход между ними.

  • Veo 3.1. Параметр lastFrame, и он «must be used in combination with the image parameter» — без первого кадра последний не принимается [1].
  • Seedance 2.0. Поле end_image_url, описание — «The video transitions from start to end image» [4].
  • Kling 3.0. Тоже end_image_url, длительность 3–15 секунд [3].

Задачи под этот режим узкие, зато решаются они только им: зацикленный ролик, где последний кадр равен первому; превращение одного объекта в другой; склейка двух кадров раскадровки без монтажа.

Заодно о том, чему верить, когда документ спорит сам с собой. На странице Veo раздел про первый и последний кадры открывается примечанием «This feature is available for Veo 3.1 models only».

Двумя экранами ниже, в таблице параметров, строка lastFrame заполнена значением Image object во всех четырёх колонках — включая Veo 3 и Veo 2.

Какой ответ верный, из страницы не следует. Раздражает это сильнее, чем если бы ответа не было вовсе: пробел виден сразу, а противоречие — только если дочитать до таблицы.

Что запрещено именно в режиме с картинкой

У режимов разные ограничения — вплоть до того, кого разрешено показывать в кадре.

У Veo параметр personGeneration в text-to-video принимает только allow_all, а в image-to-video, интерполяции и работе с референсами — только allow_adult [1]. Читается это так: ролик с ребёнком в кадре Veo сделает из текста и не сделает из фотографии.

Асимметрия держится и в старых версиях. У Veo 2 из картинки доступны allow_adult и dont_allow, а allow_all нет.

Длительность тоже связана с режимом. Обычно у Veo 3.1 на выбор 4, 6 или 8 секунд, но при работе с референсными изображениями остаётся только «8».

А продление готового ролика устроено ровно наоборот — оно работает из текста. У Veo 3.1 продление добавляет по 7 секунд за раз, до 20 раз, итог до 148 секунд. Только в 720p и только к видео, сгенерированному самим Veo.

И только два дня: «Videos are stored for 2 days», дальше файл с сервера убирают.

Третий вход, про который забывают

Разделение на два режима устарело: у Google, ByteDance и Kling есть третий.

Seedance зовёт его reference-to-video: до 9 изображений, 3 видеофрагментов и 3 аудиофайлов в одной генерации, с адресацией прямо в промпте через [Image1], [Video1] [7].

У Veo это referenceImages — до трёх изображений «of a single person, character, or product», и вендор обещает, что «Veo preserves the subject’s appearance in the output video». У Kling — массив elements с обращением @Element1.

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

Когда из текста — единственный вариант

Кадра не существует, а снимать дороже, чем генерировать. Тут выбора нет.

Камера уходит от стартового кадра. Первый кадр держит начало, а на длинном проезде через две секунды от него не остаётся ничего — и вы получаете ту же лотерею, только заплатив за подготовку картинки.

Нужны люди без ограничения по возрасту у Veo — режим с картинкой их не отдаст.

Нужно перебрать десяток композиций. Секунда в обоих режимах стоит одинаково: у Kling 3.0 Pro на fal.ai это $0.112 без звука и $0.168 со звуком независимо от входа. Цена генерации тут ни при чём. Дело в том, что под image-to-video сначала придётся сделать десять картинок.

Порядок выбора

  1. Картинка уже есть — отдавайте её. Это единственный способ получить предсказуемый первый кадр.
  2. Соотношение сторон решайте на этапе кадра, а не промпта: у Kling поле aspect_ratio в этом режиме игнорируется, у Seedance выводится из картинки.
  3. Один и тот же герой в серии роликов — берите режим с референсами, а не стартовый кадр.
  4. Переход из состояния А в состояние Б — первый и последний кадр, где он есть.
  5. Промпт пишите по-английски. У Veo прямо сказано: полностью поддержан английский, остальные языки «have not been evaluated». Заготовки под оба режима есть в нашей библиотеке промптов.
  6. Скачивайте результат сразу. У Veo ролики живут на сервере 2 дня.

Оговорка про интерес: это блог RED AI, сервиса доступа к нейросетям за рубли. Проверяемое — в коде: у Veo режим переключает поле generationType с тремя значениями, у Seedance последний кадр уходит провайдеру как last_frame_url, а в формах HappyHorse и Kling 2.6 поля соотношения сторон в режиме с картинкой нет — ровно по вендорской причине.

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

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

Официальную спецификацию Kling подтвердить не удалось. Портал разработчика Kling — приложение на JavaScript, в исходном коде страницы текста нет. Параметры взяты с карточки модели на fal.ai, это площадка-посредник, а не сам вендор. Расхождение возможно.

Даты редакции есть не у всех источников. У документации Google дата стоит внизу страницы (30.07.2026), у карточек fal.ai её нет вовсе — там указано только состояние на день просмотра.

Runway и Grok остались за рамками. Их документация отдаёт 403 и на обычный запрос, и на запрос с браузерным заголовком. По пересказам утверждать не буду.

Рейтинги — это голоса, а не измерение. Artificial Analysis описывает методику как «blind user votes»: люди выбирают, что им больше нравится. К вашей задаче их вкус может не иметь отношения.

Sora 2 в разбор не вошла намеренно. OpenAI сама предупреждает на странице руководства, что модели и Videos API отключаются 24 сентября 2026 года, — строить на них выбор сейчас смысла нет.

Источники ниже открывались 15 августа 2026 года. Условия и параметры моделей меняются без объявления, так что перед решением стоит открыть первоисточник заново. Черновик готовился с языковой моделью, цитаты сверялись по исходному коду страниц.

Источники

  1. Google, документация Gemini API, раздел Veo (редакция от 30.07.2026).
  2. OpenAI, руководство Videos API (video generation guide).
  3. fal.ai, карточка модели Kling 3.0 Pro (image-to-video).
  4. fal.ai, карточка модели Seedance 2.0 (image-to-video).
  5. Artificial Analysis, рейтинг видеомоделей text-to-video.
  6. Artificial Analysis, рейтинг видеомоделей image-to-video.
  7. fal.ai, карточка модели Seedance 2.0 (text-to-video).