Несколько месяцев назад я разрабатывал свой пет проект. YumCut – сервис для создания коротких вертикальных видео полного цикла: от написания текста и генерации изображений до монтажа и добавления субтитров. 

Быстро обнаружилась критическая проблема: цена. Для одной минуты видео требовалось примерно 20 сгенерированных изображений или $0.8/мин. Кроме видео-ряда, еще нужно сгенерировать и аудио - $0.2/мин и дополнительные незначительные расходы на монтаж и генерацию субтитров.

Я начал искать выход. Эта статья — о том, какие нестандартные техники помогли снизить стоимость в разы и какое open-source решение позволяет генерировать картинки в 8 раз дешевле, чем коммерческие API. Полный код и инструкции доступны на GitHub.

Первый подход: многосценность в одном кадре

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

Первая попытка — ввести в промпт все 8 сцен одновременно. Результат был плачевным: модель просто смешивала все элементы в одну смазанную композицию, непригодную для видеомонтажа.

Пример генераций множественных сцен в одной картинке.
Пример генераций множественных сцен в одной картинке.

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

Ключевой инсайт: границы нужны буквально видимыми

Оказалось, что ИИ-модели испытывают трудности с определением логических границ между отдельными областями. Решение оказалось простым: использовать разноцветные зоны (красную и синюю).

Шаблон для генерации двух изображений через один запрос.
Шаблон для генерации двух изображений через один запрос.

Вместо абстрактного описания я начал передавать PNG-шаблон с явными границами и соответствующей инструкцией: «Первая идея в красной области, вторая идея в синей области. Заполните каждую область полностью».

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

Эта техника не требовала дополнительных затрат, но кардинально улучшила качество разделения сцен. Модель теперь понимала структуру и редко смешивала элементы.

Однако это было лишь частичным решением. Мне требовалась кардинальная экономия. Нужно было еще на порядок снизить цену.

Второй подход: миграция на open-source альтернативы

Идея была в том, чтобы найти open-source/open-weight модели для генерации изображений, использовать их в облаке и таким образом сократить расходы. 

В первую очередь, было необходимо найти какие же модели сейчас доступны в свободном доступе. Да, их довольно много: Qwen-Image, FLUX, HunyuanImage, Stable Diffusion и проч. Для моих задач было одно дополнительное требование - возможность переиспользования персонажей во множестве сгенерированных картинок. Поэтому мой выбор остановился на Qwen-Image-Edit.

Я провел аудит рынка коммерческих генераторов:

  • Основные API (OpenAI/Google Gemini/Stability AI): цены похожие или выше 

  • Облачные сервисы Alibaba: около $0.04 за изображение — плюс-минус то же

  • Self-hosted варианты типа RunPod: требуется масса изображений для генерации за один раз чтобы достичь экономии

Картина была неутешительная — даже создатели Qwen-Image, Alibaba предоставляли модель по завышенным ценам. Но затем я нашел runware.ai и together.ai, в которых генерация изображений с помощью Qwen-Image-Edit и Qwen-Image стоили практически в 8 раз дешевле Nano Banana - ~$0.005 vs. $0.04.

Третий подход: улучшение детализации изображений

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

Вот пример сгенерированных изображений с разными промптами о счастливом коте на пляже:

Несмотря на то, что изображения рисуются хорошо - не хватает прослойки для улучшения промптов рассказа. Очевидное решение - добавить прослойку между промптом истории и генератором изображения. Но нужна такая LLM, которая бы не увеличивала стоимость существенно. 

Для того, чтобы проверить множество LLM я воспользовался - openrouter.ai. Один раз написав код прослойки, можно менять модели на любую из доступных. После тестирования десяток моделей - я остановился на openai/gpt-oss-120b с низким усилием по размышлению. Улучшенная версия промпта для генерации изображений обходится ~$0.0003, но из картинок выше получаются вот такие картинки.

Изображения стали разнообразнее, даже несмотря на практически одинаковый промпт. GPT OSS улучшил описание для Qwen-Image и у вас появился рычаг, позволяющий контролировать стиль и настроение изображений. 

Результаты: числа, которые говорят сами за себя

Метрика

Раньше

Сейчас

Экономия

Стоимость за 1 картинку

$0.04

$0.0053

7.54

Видео 1 минута (20 картинок)

$0.8

$0.106

7.54

Полная минута видео

$1

$0.306

3.26

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

Мне было достаточно такой цены за картинки, поэтому я остановился на этом результате.

Комментарии (0)