Личный проект8 мин чтения
Hypeoslav - AI-медиахолдинг

Технологии
Ссылки
Оглавление
- Задача
- Исследование
- Анализ конкурентов
- Рассмотренные варианты
- Решение
- Реализация
- Результат
- Лендинг и бренд
- Айдентика каналов
- Конвейер в Blender
- Анимированные субтитры
- Интро на разных языках и виральные обложки
- Файлы сценариев по языкам
- Генерация аватаров
- Десктоп-клиент для правки визуала
- Мониторинг трендов
- Увеличение лимитов YouTube API
Услуги
- →Архитектура и разработка ИИ-конвейера (Python)
- →Интерфейс управления конвейером на базе Telegram-бота
- →Интеграция множества ИИ-сервисов (изображения, текст, аудио)
- →Сборка постов и автоматизация публикации на нескольких платформах
- →Настройка монетизации YouTube и интеграция AdSense
Результаты
- ✓Децентрализованный конвейер генерации контента, запускаемый из Telegram
- ✓Интеграции: Midjourney, DALL·E, Recraft, ChatGPT, Gemini, ElevenLabs
- ✓Время производства: с 2 - 3 часов и затем до менее чем 5 минут на пост
- ✓Несколько монетизируемых каналов, работающих параллельно при одном операторе
Задача
Стал сооснователем Hypeoslav - медиахолдинга на базе AI, где несколько контент-каналов производят изображения, тексты и аудио в промышленных масштабах. Экономика сходится только при себестоимости поста, близкой к нулю. Ручные процессы в Midjourney, ChatGPT, ElevenLabs и инструментах публикации отнимали по 2 - 3 часа на пост. Это был не медиабизнес, а студия ручного производства.
Исследование
Разбор процесса производства контента показал, что каждый шаг механический: написать промпт и затем сгенерировать изображение, написать подпись, сгенерировать озвучку, собрать пост и затем опубликовать в канал. Ни один из этих шагов не требует творческого решения человека, как только сформулировано задание. Узким местом была не креативность, а оркестрация.
Анализ конкурентов
Прежде чем собирать свой конвейер, мы изучили конкурентов и прогнали через их софт тестовые проекты. Задача была взять то, что у них уже работает, доработать то, что нам не нравилось, и найти места, где нашему конвейеру нужно собственное решение. На скриншотах один из таких инструментов: десктоп-приложение, которое делит сценарий на сцены и к каждой сцене ставит промпт для картинки и текст озвучки. Редактор может улучшить промпт, перегенерировать картинку или принять сцену и перейти к следующей. Название продукта скрыто.


Редактор сцен у конкурента, название продукта скрыто
Рассмотренные варианты
- No-code инструменты автоматизации (Zapier, Make) - рассмотрены. Не справлялись с многошаговыми вызовами AI API, обработкой ошибок и условной маршрутизацией между сервисами генерации.
- Собственная веб-панель - отклонена. Редакторы не хотели ещё одну вкладку для управления; интерфейс должен был находиться там, где они уже работают.
- Telegram-бот как интерфейс управления + бэкенд-конвейер на Python - выбран. Редакторы уже пользовались Telegram; команды бота давали мгновенный доступ к конвейеру с любого устройства.
Решение
Оркестрирующий слой на Python подключается ко всем AI API. Интерфейсом служит Telegram Bot API: редактор отправляет контент-задание, конвейер параллельно распределяет его по нужным сервисам генерации, собирает результат и либо публикует автоматически, либо показывает превью на согласование. Каждый тип канала (с упором на изображения, на текст, на аудио) имеет собственный вариант конвейера.
Реализация
Интегрированы Midjourney (через автоматизацию Discord API), DALL·E и Recraft для генерации изображений, ChatGPT и Gemini для подписей и сценариев, а также ElevenLabs для озвучки. У каждого сервиса свой асинхронный обработчик с логикой повторов и резервной маршрутизацией - если Midjourney работает медленно, конвейер автоматически переключается на Recraft.
Сборка поста объединяет сгенерированные материалы в нативные для платформ форматы: каналы Telegram, YouTube Shorts и Instagram. Планирование публикаций реализовано через очередь, распределяющую посты по оптимальным окнам выхода. Монетизация YouTube AdSense настроена по всем видеоканалам.
Результат
Время производства контента упало с 2 - 3 часов до менее чем 5 минут на пост. Несколько каналов работают параллельно при одном операторе. Инфраструктура ведёт творческий конвейер от начала до конца - за человеком остаётся постановка задания и контроль качества, а не само производство.
Лендинг и бренд
Для Hypeoslav сделали продуктовый лендинг и собрали айдентику. В её центре девушка в кокошнике с кнопками YouTube на щеках; ниже несколько вариантов логотипа с названием на кириллице и латинице и на разных подложках. Через сайт можно было связаться с нами, написать на почту, посмотреть состав команды и примеры наших видео. Позже мы вошли в партнёрство с другими производителями виральных видео: обсуждали с ними ниши и работали совместно.




Варианты логотипа и надпись-логотип

Static snapshot — scrollable Safari preview
Айдентика каналов
Для каждого тематического канала мы делали свою айдентику: аватар и фоновый баннер, с опорой на практики виральных заголовков и обложек. Одна тематика выходила сразу на нескольких языках, поэтому один и тот же бренд встречается с надписями на корейском, английском и немецком. Названия адаптировали, а не переводили дословно: английский «The Mental Key» в корейской версии звучит как «Открыть дверь в кору мозга».
Аватары каналов







Баннеры каналов
Конвейер в Blender
Промежуточный этап конвейера, снятый в Blender. Сцена собирается автоматически: картинки расставлены и выровнены, поверх наложен аватар, добавлен эффект дыма (ранняя версия). Все картинки и сцены в ролике сгенерированы LLM. Субтитры накладывались отдельно, уже вне Blender.
Blender целиком управляется из Python. Скрипт собирает таймлайн, раскладывает клипы и оверлеи по каналам, компонует кадр и накладывает эффекты, например Ken Burns: плавный зум со случайной точкой фокуса на каждой статичной картинке.


Таймлайн, композицию и эффекты собирает Python-код
Анимированные субтитры
Субтитры анимированные, в караоке-стиле: текущее слово подсвечивается по ходу озвучки. Blender нормально с субтитрами не работал, поэтому сшивка шла через ffmpeg - из Blender выходил чистый рендер, а дорожка с субтитрами накладывалась отдельным проходом. Позже стили доработали: добавили тень, а шрифт дорисовали недостающими глифами, чтобы он держал другие языки, в том числе корейский и японский. У исходной версии с ними были проблемы.
Субтитры генерируются автоматически в нескольких стилях, среди них караоке, где каждое слово подсвечивается в момент озвучки.

Стиль субтитров «караоке»
Интро на разных языках и виральные обложки
Сгенерированные интро на нескольких языках вместе с обложками, с которых начинаются видео. Дольше всего искали голос: прогнали кучу локальных моделей для озвучки, в том числе на базе Kokoro и решений от Facebook, а основным инструментом в итоге выбрали ElevenLabs.
Под обложки сделали отдельный набор промтов. Они описывают не картинку, а то, что уже сработало: разобрали референсные превью, которые залетели, и перенесли их приёмы в генерацию.
Файлы сценариев по языкам
Структура файлов, с которой работает конвейер: переписанные сценарии плюс мета, отдельный набор под каждый язык. Форму задало требование, чтобы видео получалось примерно одной длительности независимо от финального языка, поэтому сценарии адаптируются под хронометраж, а не переводятся построчно. Дословный перевод уплывает: при одинаковом количестве слов одни языки звучат заметно дольше других, и тайминг под картинку рассыпается.
Генерация аватаров
Аватары генерируются в ComfyUI на разных моделях, а конвейер забирает оттуда видео через интеграцию, а не обращается к платному сервису. Это заметно сэкономило деньги - внешняя генерация была самой дорогой статьёй - и заодно отдало качество генерации под прямой контроль: модель, настройки и число шагов подкручиваются под канал, вместо того чтобы принимать то, что отдаст чужой эндпоинт.
ComfyUI выбрали, потому что результаты других интерфейсов нас не устраивали, и собрали в нём свой конвейер генерации аватаров. Аватары поддерживали намеренно: ведущий в кадре повышает доверие зрителя и удержание видео.
Аватары, сгенерированные нашим конвейером в ComfyUI
Телеграм-бот управления
Работа 24/7 означала, что конвейером надо рулить с телефона, на ходу, поэтому пультом стал телеграм-бот. Работа многопоточная: задачи кладутся в очередь, слейвы разбирают их по мере освобождения, а не одна задача держит всю очередь за собой.
Генерация видео идёт поэтапно, и этапы, которым нужен человеческий глаз, останавливаются на проверку. Бот рапортует, что этап выполнен, и переключается на другую работу, а не простаивает. Пользователь заходит, смотрит результат в Google Cloud - поэтому проверка возможна даже с телефона - и отвечает «принять» или «переделать», причём перед повтором можно поменять промт. Итоговое видео уезжает на Google Drive.
На боте же висит и путь отказа: упавшая задача не тонет в очереди молча, а приходит с текстом ошибки, и перезапустить её можно прямо из чата.
Полный проход по шагам, с одобрением промежуточных результатов на каждом этапе.
Как устроен бот
Бот работает на собственном веб-сервисе на нашем сервере. Он слушает команды, распределяет задачи между исполнителями и пишет ответ обратно в чат. Все промежуточные файлы, по которым нужно решение человека (принять или переделать), загружаются в Google Cloud, поэтому администрировать конвейер можно удалённо, на ходу. Для модерации изображений на ПК сделали отдельное десктоп-приложение RenderOrc, о нём ниже, в разделе «Десктоп-клиент для правки визуала».




Приём референсов, запрос на согласование и отчёт об ошибке с повтором
Инструкция для команды
Для остальных членов команды написали сопроводительную документацию, чтобы они тоже могли генерировать видео на лету. В инструкции описано, как поставить задачу боту, что делать с запросами на согласование и ошибками и как работать в десктоп-клиенте RenderOrc. В опубликованной версии ссылки на облачные папки и имя бота скрыты.
Распределённые исполнители
Рабочая сторона той же очереди. К одному серверу задач подключается несколько исполнителей: берут очередную задачу - сгенерировать текст, транскрибировать аудио, сгенерировать картинки - и выполняют её. На пике одновременно работало до пяти устройств в моей локальной сети, включая Steam Deck: на каждом крутился клиент, который цеплялся к серверу, забирал задачи и выполнял их.
macOS, Windows и Linux
Разработка шла на macOS, но клиент должен был работать и на Windows, и на Linux, поэтому стек для него выбирали под все три платформы. В итоговом конвейере исполнители были вперемешку: часть машин на macOS, часть на Linux, часть на Windows. На скриншотах Windows-исполнитель, которым управляют с Mac через удалённый рабочий стол: сначала ставится Python-окружение с зависимостями, затем исполнитель рендерит видео через Blender и обрабатывает звуковую дорожку.



Windows-исполнитель: настройка окружения, зависимости, рендер в Blender
Кузница контента
В итоге контента за день было так много, что пришлось докупить терабайт на Google Drive, чтобы забивать очередь на загрузку. Буквально кузница контента, конвейер и завод контента. На выходе получались видео на нескольких языках и разной длины со всей сопроводительной метаинформацией, которая нужна для загрузки на YouTube.

Десктоп-клиент для правки визуала
Править один неудачный кадр через чат-бота неудобно, поэтому под визуал сделали отдельный desktop-клиент RenderOrc. Он открывает проект, вычитывает его и раскладывает картинки всех сцен рядом с промтами, которыми они сгенерированы. Промт можно переписать и тут же перегенерировать конкретную сцену, не перезапуская конвейер и не выискивая нужный кадр в папке.
RenderOrc работал и на Windows, и на macOS. Кроме перегенерации, он стилизовал картинку под видео: аватарам добавляется тень, контентным изображениям тень и скругление углов, а картинка меньше Full HD вписывается в фон с текстурой бумаги. У каждой картинки указано время начала и конца сцены, поэтому её можно сверить с конкретным моментом видео и по смыслу, и по стилю. На скриншотах путь клиента от раннего окна с промтом до готового приложения, ниже варианты заставки, сгенерированные для него.




RenderOrc от первого окна с промтом до готового редактора






Варианты заставки, сгенерированные для RenderOrc
Мониторинг трендов
Чтобы решать, что делать дальше, нужны были данные, а не вкусовщина, поэтому отдельный микросервис на Go следит за списком добавленных каналов и собирает информацию о видео, которые там залетели. Эти ролики и образуют пул референсов, из которого потом строятся задания и промты для обложек - именно оттуда берутся виральные приёмы, о которых сказано выше.
Сам вотчер в работе, по отслеживаемым каналам.
Увеличение лимитов YouTube API
Мониторинг такого масштаба упирается в квоту YouTube API, поэтому обратились в Google за увеличением лимитов на граббинг статистики. Обращение прошло успешно. Вскоре после этого проект заморозили, так что поднятая квота в полную силу поработать не успела.
По теме
Проекты

Traffic Connect - оркестрация ИИ-контента для сайтов на WordPress
До: генерацию статей с помощью ИИ нужно было вести на множестве сайтов на WordPress, и управлять ею из одного места было нельзя. После: одна админ-панель ставит задачи в очередь для каждого сайта, а сайт сам забирает свои задачи через плагин. Систему я собрал с нуля примерно за месяц.

PREZA - сайты школьных презентаций с более чем 80 000 сгенерированных PDF
До: сайтам школьных презентаций нужны были десятки тысяч готовых файлов, сделать которые вручную было невозможно. После: грабберы, парсеры и автоматическая многопоточная генерация дали больше 80 000 PDF, которые хранятся в холодном S3 Selectel и опубликованы на preza.kz и preza.top.

AtomPk Grabber - выгрузка списка товаров в CSV по требованию
До: партнёру нужно было раз за разом вручную собирать список товаров с сайта в CSV. После: исполняемый файл, который запускается двойным кликом, сам обходит каталог и пишет CSV - без установки Python и без настройки.
Открыт для работы по контракту
Я доступен для работы по контракту. Если у вас есть интересная идея проекта, запишитесь на звонок через Calendly.
Записаться на 30-минутный звонок