Фото в видео по APIKling 3.0Nano BananaPythonВайбкодинг

Фото товара → вертикальное видео за 2 запроса к API: 63 ₽ за ролик или 91,75 ₽, если не выключить звук

Из одного фото товара 2 запроса к API делают 5-секундный вертикальный ролик за 63 ₽: Nano Banana Edit ставит товар в сцену за 5,45 ₽, Kling 3.0 Standard оживляет её за 57,55 ₽. Пропустите одну строку — "generate_audio": false — и Kling посчитает секунды по тарифу со звуком: 91,75 ₽ за ролик, звук которого вы всё равно заглушите музыкой в Reels.

2026-11-11·9 мин чтения

Что получится

Скрипт на Python на 60 строк — product_clip.py. На входе фото товара и одна фраза о сцене, на выходе MP4 на 5 секунд в формате 9:16. Его можно выложить в Reels, VK Клипы или Shorts, добавить в карточку товара на Ozon или Wildberries или крутить на первом экране лендинга.

Скрипт ставит 2 задачи — один API, один ключ:

  • Шаг 1, кадр. nano-banana/edit берёт ваше фото и ставит товар в новую вертикальную сцену: кухонный стол, мраморная столешница, рабочий стол.
  • Шаг 2, движение. kling-video/v3/standard/image-to-video делает этот кадр первым кадром ролика и оживляет его: медленный наезд камеры, пар, движение света.

Почему 2 шага, а не один промпт «текст → видео»? Модель «текст → видео» придумает товар сама. Если начать с вашего фото, форма, цвет и этикетка останутся теми, что вы продаёте, а видеомодели останется добавить только движение. Для маркетплейса это не мелочь: покупатель должен получить ровно то, что видел в ролике.

Результат и его цена

Вот один прогон. Чтобы не показывать в статье чужой бренд, кадр мы сгенерировали не из фото, а по текстовому промпту в Nano Banana. С вашим товаром шаг 1 — это вызов редактирования из скрипта ниже. Промпты — на английском, как в нашем прогоне.

Нейросетевое фото товара: матовая керамическая кружка шалфейного цвета с паром на светлом дубовом столе рядом с льняной салфеткой, вертикальный кадр 9:16
Шаг 1 · Nano Banana, 9:16. Промпт: «Product photo of an unbranded matte sage-green ceramic coffee mug with a thin wisp of steam, standing on a light oak table next to a linen napkin, soft morning window light from the left, shallow depth of field, clean empty space above the mug, vertical 9:16 composition, no text, no logo»
Шаг 2 · Kling 3.0 Standard, картинка в видео, 5 с, без звука. Промпт: «Slow push-in toward the mug, steam curls and drifts upward, morning light shifts gently across the table, camera stays steady, the mug does not move or change shape»

По ценам на страницах моделей такой прогон стоит 5,45 ₽ за кадр и 11,51 × 5 = 57,55 ₽ за ролик — итого 63,00 ₽. Последняя часть промпта движения, «the mug does not move or change shape», велит модели не трогать товар и двигать только камеру, пар и свет. Ролик, в котором товар меняется, — это ролик в корзину.

Сколько стоит один прогон на разных моделях

Любой из двух шагов можно заменить. Ниже — цены за секунду и за изображение со страниц моделей на MegaBrain; итог за 5 секунд — цена секунды × 5.

Видеомодель (картинка → видео)Секунда без звукаСекунда со звуком5 с без звука5 с со звуком
Kling 2.6 Pro9,59 ₽19,18 ₽47,95 ₽95,90 ₽
Kling 3.0 Standard11,51 ₽17,26 ₽57,55 ₽86,30 ₽
Kling 3.0 Pro15,34 ₽23,02 ₽76,70 ₽115,10 ₽
Модель для кадра (редактирование)За изображение
Nano Banana Edit5,45 ₽
Seedream 4.5 Edit5,48 ₽
Nano Banana Pro Edit20,55 ₽ (в 4K — 41,10 ₽)

Страницы моделей и каталог моделей на themegabrain.ru, 11 ноября 2026 года. Nano Banana Pro Edit в разрешении 4K стоит вдвое дороже: 20,55 × 2 = 41,10 ₽.

Бросаются в глаза две вещи. Первая — звук: это самая крупная строка счёта. На Kling 3.0 он добавляет 50%, на Kling 2.6 Pro удваивает цену. Вторая — кадр стоит копейки. Даже Nano Banana Pro Edit (20,55 ₽) дешевле 2 секунд Kling 3.0 Standard (2 × 11,51 = 23,02 ₽), так что если на товаре мелкий текст или подробная этикетка, не экономьте на модели для кадра.

Kling 3.0 Standard и Pro принимают любую целую длительность от 3 до 15 секунд, Kling 2.6 Pro — 5 или 10. Ролик Kling 3.0 Standard на 10 секунд без звука стоит 11,51 × 10 = 115,10 ₽.

Значение по умолчанию, которое добавляет 50%. В списке параметров Kling 3.0 «картинка → видео» у generate_audio по умолчанию стоит true. Если поля нет в запросе, вы платите 17,26 ₽ за секунду вместо 11,51 ₽ — 28,75 ₽ лишних на каждый 5-секундный ролик. Речь Kling озвучивает только на английском и китайском, а ролик под трендовый трек или русскую озвучку этот звук всё равно потеряет. Отправляйте "generate_audio": false.

Код

Скрипт работает по схеме очереди из документации API генерации: отправить задачу в /queue/<id модели>, опрашивать её status_url, пока не придёт COMPLETED или FAILED, потом прочитать response_url. Из зависимостей — только requests.

"""product_clip.py: 1 фото товара -> сцена 9:16 -> ролик на 5 секунд.

Запуск: python product_clip.py mug.jpg "on a light oak table, soft morning window light"
"""

import base64
import mimetypes
import os
import sys
import time

import requests

BASE = "https://themegabrain.ru/api/gateway/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['MEGABRAIN_API_KEY']}"}


def run(model: str, body: dict) -> dict:
    """Ставит задачу в очередь, ждёт её и возвращает выход модели."""
    r = requests.post(f"{BASE}/queue/{model}", headers=HEADERS, json=body, timeout=60)
    if r.status_code != 200:
        # 400 — лишнее поле, 402 — не хватает баланса, 422 — вход отклонён (деньги не списаны)
        sys.exit(f"{model}: {r.status_code} {r.text}")
    job = r.json()
    while True:
        status = requests.get(job["status_url"], headers=HEADERS, timeout=30).json()["status"]
        if status == "COMPLETED":
            break
        if status == "FAILED":
            sys.exit(f"{model}: задача упала, стоимость вернулась на баланс")
        time.sleep(4)
    return requests.get(job["response_url"], headers=HEADERS, timeout=60).json()


def data_url(path: str) -> str:
    mime = mimetypes.guess_type(path)[0] or "image/jpeg"
    with open(path, "rb") as f:
        return f"data:{mime};base64,{base64.b64encode(f.read()).decode()}"


def main() -> None:
    photo, scene = sys.argv[1], sys.argv[2]

    # Шаг 1: ставим товар в вертикальную сцену (Nano Banana Edit)
    still = run(
        "nano-banana/edit",
        {
            "prompt": (
                f"Place this exact product {scene}. Keep its shape, color, label and "
                "proportions unchanged. Product photo, shallow depth of field, "
                "empty space above the product, no added text, no added logo."
            ),
            "image_urls": [data_url(photo)],
            "aspect_ratio": "9:16",
        },
    )
    still_url = still["images"][0]["url"]
    print("кадр:", still_url)

    # Шаг 2: оживляем кадр (Kling 3.0 Standard, картинка -> видео)
    clip = run(
        "kling-video/v3/standard/image-to-video",
        {
            "prompt": (
                "Slow push-in toward the product, light shifts gently across the scene, "
                "camera stays steady, the product does not move or change shape"
            ),
            "start_image_url": still_url,
            "duration": "5",
            "generate_audio": False,  # по умолчанию True, а со звуком секунда на 50% дороже
        },
    )
    video_url = clip["video"]["url"]
    with open("clip.mp4", "wb") as f:
        f.write(requests.get(video_url, timeout=120).content)
    print("сохранено в clip.mp4 из", video_url)


if __name__ == "__main__":
    main()

Запуск (ключ — в личном кабинете на странице «API-ключ»):

pip install requests
export MEGABRAIN_API_KEY="ваш ключ"
python product_clip.py mug.jpg "on a light oak table next to a linen napkin, soft morning window light"

Как устроен скрипт

Фото уходит как data: URL. image_urls принимает ссылки https:// и data:, так что фото не нужно заранее никуда загружать. Модель редактирования принимает до 10 изображений — удобно, если хотите передать, например, лицевую и обратную сторону коробки.

Формат задаёт шаг 1. В параметрах Kling «картинка → видео» нет поля соотношения сторон. Попросите у Nano Banana Edit aspect_ratio: "9:16" — и вертикальный кадр перейдёт в ролик. Для обложки лендинга просите 16:9, для квадратного поста — 1:1.

Длительность — строка. Kling ждёт "5", а не 5. На поле, которого нет в списке параметров модели, API ответит 400.

Оплата — при постановке в очередь, неудача возвращается. Стоимость считается и списывается, когда задача встаёт в очередь. Если задача закончилась статусом FAILED, полная сумма возвращается на баланс; если модель отклонила вход с кодом 422, ничего не списывается. Код 402 значит, что на балансе не хватает денег.

Опроса раз в 4 секунды достаточно. Документация советует интервал от 2 до 5 секунд.

20 роликов из 20 фото

Оберните скрипт в цикл и запускайте задачи по одной. При 63,00 ₽ за прогон 20 товаров обойдутся в 20 × 63,00 = 1260 ₽, а вся линейка из 100 карточек для маркетплейса — в 6300 ₽. Забытый generate_audio на тех же 20 роликах добавил бы 20 × 28,75 = 575 ₽.

# batch.py: по ролику на каждое фото из папки ./products, сцена одна на всех
import pathlib
import subprocess

for photo in sorted(pathlib.Path("products").glob("*.jpg")):
    subprocess.run(
        ["python", "product_clip.py", str(photo), "on a white marble counter, soft daylight"],
        check=True,
    )
    pathlib.Path("clip.mp4").rename(photo.with_suffix(".mp4"))

Те же 2 HTTP-запроса работают и из n8n или Make: узел HTTP Request, чтобы отправить задачу, узел Wait и цикл по ссылке статуса. Python для этого не нужен — SMM-специалист соберёт такой сценарий сам.

Соберите его в Cursor, Claude Code или Codex

Если вы вайбкодите, вставьте это в агента. Здесь все эндпоинты, поля и значения по умолчанию, которые ему нужны, — гадать не придётся:

Напиши CLI на Python, product_clip.py, который превращает одно фото товара
в вертикальное видео на 5 секунд через API MegaBrain.

API: базовый адрес https://themegabrain.ru/api/gateway/v1, заголовок
"Authorization: Bearer $MEGABRAIN_API_KEY". Задачи отправляются в
POST /queue/<id модели> и возвращают status_url и response_url. Опрашивай
status_url раз в 4 секунды до COMPLETED или FAILED, потом сделай GET
response_url. Документация: https://themegabrain.ru/docs/media

Шаг 1: модель "nano-banana/edit". Тело: prompt, image_urls (список, фото
как data: URL), aspect_ratio "9:16". Выход: images[0].url.
Шаг 2: модель "kling-video/v3/standard/image-to-video". Тело: prompt,
start_image_url (ссылка из шага 1), duration "5", generate_audio false.
Выход: video.url. Скачай его в clip.mp4.

Аргументы: путь к фото и описание сцены. На HTTP 400, 402 и 422 и на
задаче со статусом FAILED выводи понятное сообщение. Потом добавь опцию
--batch <папка>: по одному .mp4 на каждый .jpg/.png в папке, задачи по одной.

Агенту можно дать и модель через MegaBrain — тот же ключ работает с текстовыми моделями через OpenAI-совместимый шлюз. Какую выбрать для кода и сколько она стоит, мы разбирали в статье про Claude Fable 5.2.

Промпты, на которых теряются деньги

  • Движение камеры и движение товара сразу. «Облети бутылку, пока она вращается» — это 2 движения, за которые модель будет бороться. Выберите одно: камера движется, товар стоит.
  • Повторное описание товара в промпте видео. Первый кадр уже его показывает. Описывайте движение и свет, а не предмет, иначе модель может «поправить» товар под ваши слова.
  • Перегруженный кадр. Каждый предмет на шаге 1 Kling может оживить. Просите пустое пространство и минимум реквизита, а пар, свет или ткань добавляйте промптом движения.
  • 10 секунд, пока не заработали 5. Тест на 5 секунд стоит вдвое меньше: 57,55 ₽ против 115,10 ₽. Добейтесь нужного движения на коротком ролике, потом удлиняйте.

Что это значит, если вы работаете с нейросетями для медиа

Читайте значения по умолчанию, а не только цену. Самая дешёвая модель в прайсе может обойтись дороже следующей, если вас тарифицирует параметр, который вы не задавали. В таблице выше Kling 3.0 Standard со звуком (86,30 ₽ за 5 секунд) дороже Kling 3.0 Pro без звука (76,70 ₽).

Тратьтесь на кадр, экономьте на секундах. Видео оплачивается посекундно, изображение — один раз. Доведите композицию, этикетку и свет на шаге 1, где повтор стоит 5,45 ₽, и только потом платите за движение.

Начинайте с настоящего фото. Снимите реальный товар. Так ролик честно показывает, что получит покупатель, и только так этикетка и цвет выходят правильными — а на маркетплейсе расхождение между видео и товаром быстро превращается в возвраты и плохие отзывы.

Попробуйте на MegaBrain

Обе модели можно проверить в плейграунде на их страницах, ещё до первой строки кода: Kling 3.0 Standard «картинка → видео» — 11,51 ₽ за секунду без звука, Nano Banana Edit — 5,45 ₽ за изображение. Обе списываются с одного рублёвого баланса, без VPN и иностранной карты. Цены всех моделей — на странице тарифов, доступ для компаний и сотрудников с пополнением по счёту — в разделе для бизнеса.

Источники

Страницы открыты 11 ноября 2026 года. Все цены выше — с этих страниц или их произведение на длительность ролика там, где мы это показываем.

MegaBrain продаёт доступ по API к моделям для изображений, видео и текста, включая Nano Banana, Seedream и Kling. MegaBrain не связан с Google, Kuaishou, ByteDance и Anthropic.

MegaBrain · один API для всех моделей

Claude, GPT, Gemini, FLUX и Kling — один ключ и один рублёвый баланс.

Без VPN и иностранной карты: компании пополняют баланс по счёту, сотрудники работают в чате, плейграунде и через OpenAI-совместимый API.