Искусственный интеллект · Python · Обработка видео · Shorts · Оптимизация · Open Source3 сентября в 13:02 · 4 мин

Архитектура «Аниме-завода»: Как конвейер превращает длинные эпизоды в Shorts

Разработчик Илии Лакеева раскрыл исходный код MVP системы «Аниме-завод» — инструмента для автоматической генерации вертикальных клипов. Проект демонстрирует подход «систематической фильтрации», где надежность обеспечивается не поиском идеального алгоритма, а деградацией на запасные решения при сбое любого компонента.

Образ новости как стеклянный призма со спирали в тумане над скалистым берегом

# Архитектура «Аниме-завода»: Как конвейер превращает длинные эпизоды в Shorts

В предыдущих материалах обсуждались принципы работы системы, превращающей длинное видео в вертикальные клипы. Теперь, на основе репозитория GitHub, рассмотрена конкретная реализация MVP (Minimum Viable Product). Проект демонстрирует полный цикл: от исходного файла с горизонтальным видео до готового ролика в формате 9:16 с динамическим кадрированием, субтитрами и водяным знаком.

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

От видео до Telegram: Тринадцать этапов обработки

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

Процесс трансформации данных выглядит следующим образом: исходное видео → транскрипция текста → анализ сигналов (аудио, лица, темп) → отбор моментов с помощью LLM → монтажная сборка → виртуальная камера с динамическим кадрированием → наложение слоев (текст, логотипы, музыка) → финальная пересборка файла.

Важной особенностью архитектуры является принцип *fail-soft*. Если какой-либо сложный модуль (например, детекция лиц или LLM-анализ) недоступен, система не останавливается, а переключается на менее точные, но стабильные алгоритмы. Это гарантирует, что даже при частичном сбое оборудования или API канал продолжает работать, хотя и с меньшим качеством контента.

Детали виртуальной камеры

Сердце системы — модуль виртуальной камеры. Традиционные методы кадрирования часто ведут к потере важной части кадра или некомфортному движению камеры за главным героем. Реализованный алгоритм сочетает несколько подходов:

1. Множественные детекторы: Система использует каскад моделей (MediaPipe, YuNet, Haar Cascade), которые работают параллельно. Отказ одного из них не ломает работу всего этапа. 2. Физика камеры: Движение камеры ограничено эвристикой, чтобы избежать резких скачков («джерков»). Используется модель с инерцией, предиктивным упреждением и «мертвой зоной», где камера остается неподвижной при небольших смещениях объекта. 3. Поведенческие профили: Состояние камеры может меняться в зависимости от сцены (спокойный, операторский, активный режим), а также интерполироваться для достижения высокой частоты кадров без перегрузки процессора.

Интеллект на грани: LLM и валидация

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

Критически важным этапом является валидация ответа модели. Если LLM возвращает некорректные временные границы или пустой результат, система не останавливается. Вместо этого запускается цикл из трех попыток с уточняющими промптами. В случае неудачи применяется эвристика: список кандидатов пополняется автоматически, а временные границы корректируются с учетом пауз речи и монтажных склеек. Таким образом, качество контента поддерживается даже при отсутствии идеального понимания смысла моделью.

Технические нюансы и прозрачность кода

Проект содержит около 7 000 строк основного кода и более 250 тестов, охватывающих все этапы обработки. Особое внимание уделено автоматизированному тестированию: модули, требующие загрузки тяжелых моделей (например, Whisper или OpenAI), в CI/CD заменяются заглушками. Это позволяет быстро проверять логику пайплайна без лишних зависимостей.

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

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

Первоисточники

Habr AI
← Вернуться в эфир