- Дата публикации
SeedVR2 на Amazon SageMaker: как поднять старое видео до HD и 4K без пересъёмки
Что нового
Amazon и ByteDance собрали готовый пайплайн для апскейла видео: открытый модельный стек SeedVR2 разворачивается на Amazon SageMaker AI и обрабатывает ролики в Amazon S3 почти «под ключ».
Конкретно, что появилось:
- Готовая инфраструктура под суперразрешение видео на AWS:
- VPC с приватными подсетями и VPC Endpoint’ами.
- S3-бакеты для входного и выходного видео с версионированием и lifecycle-политиками.
- Lambda, которая автоматически запускает SageMaker Processing Job при загрузке файла.
- Регистр образов в Amazon ECR и Docker-контейнер с SeedVR2 под ComfyUI.
- Масштабируемый запуск SeedVR2 на GPU-инстансе ml.g5.4xlarge через SageMaker Processing Jobs.
- Готовый репозиторий sample-sagemaker-video-upscaler с CDK-скриптами и конфигом.
- Конфигурируемые параметры апскейла в
config/config.yaml:InstanceType: ml.g5.4xlarge— тип инстанса.Minimum resolution: "540"— целевая минимальная высота кадра (например, 540p).batch_size: "81"— размер батча кадров для обработки.model: "seedvr2_ema_3b_fp8_e4m3fn.safetensors"— конкретный чекпоинт SeedVR2.
- Ценник: примерно $1.20 в час за ml.g5.4xlarge (стоимость зависит от региона). Платите только за время работы инстанса + дешёвое хранение в S3.
- Возможность масштабировать обработку больших коллекций: для батчей можно включить
ShardedByS3Key, чтобы параллелить обработку на нескольких инстансах.
По сути, AWS предлагает не просто модель, а полностью описанный продакшн-пайплайн, который можно развернуть одной командой CDK и сразу запускать массовый апскейл.
Как это работает
Архитектура на AWS
Инфраструктура описана через AWS CDK в виде трёх стеков.
-
SecurityStack
- Создаёт Amazon VPC с приватными подсетями для обработки видео.
- Настраивает IAM-роли с минимально необходимыми правами.
- Подключает AWS KMS для шифрования данных.
- Доступ к сервисам AWS идёт через VPC Endpoint’ы, а не через интернет.
-
DataStack
- Два S3-бакета:
- Входной — для «сырых» видео.
- Выходной — для апскейленных роликов.
- Включено версионирование и lifecycle-политики для управления старыми версиями.
- Шифрование на стороне сервера.
- Два S3-бакета:
-
Processing / SeedVR Stack
- AWS Lambda-функция, которая реагирует на загрузку файла и создаёт SageMaker Processing Job.
- Определение SageMaker Processing Job c типом инстанса
ml.g5.4xlargeи кастомным Docker-контейнером. - Amazon ECR-репозиторий для образа с SeedVR2 и ComfyUI.
- Логирование в Amazon CloudWatch для Lambda и SageMaker.
Поток данных SeedVR2
- Вы загружаете видеофайл в входной S3-бакет.
- Lambda получает событие, создаёт SageMaker Processing Job с уникальным именем (по таймстампу).
- SageMaker:
- Поднимает GPU-инстанс
ml.g5.4xlarge. - Тянет Docker-образ SeedVR2 из Amazon ECR.
- Монтирует входной и выходной S3-бакеты.
- Поднимает GPU-инстанс
- Внутри контейнера ComfyUI запускает SeedVR2:
- Читает исходное видео из входного бакета.
- Разбивает на кадры, прогоняет через SeedVR2.
- Собирает апскейленное видео и пишет в выходной бакет.
- После завершения работы инстанс останавливается, вы платите только за фактическое время.
Что внутри SeedVR2
SeedVR2 — это модель восстановления видео, которая сочетает диффузионные модели и GAN:
- Архитектура:
- GAN на 16 миллиардов параметров.
- Использует Swin Transformer для оконного внимания по кадру (adaptive window attention).
- Обучение — двухступенчатый Diffusion Adversarial Post-Training (APT):
- Прогрессивная дистилляция: сжимает 64 шага диффузии в 1 шаг, чтобы ускорить инференс.
- Обучение на реальных высококачественных видео, а не только на синтетике.
- Стабилизация и качество:
- Relativistic pairing GAN (RpGAN) loss.
- R1/R2-регуляризация для устойчивой сходимости и покрытия разных режимов данных.
- Feature matching loss для сохранения структуры и текстур.
За счёт этого SeedVR2 умеет:
- Восстанавливать мелкие детали (перья птицы, текстуру растений, фактуру объектов).
- Убирать шум и артефакты, не превращая картинку в «мыло».
- Обрабатывать целые кадры и подстраиваться под целевое разрешение.
Сравнение методов апскейла по качеству
На примере исходного ролика 240p (птица, растение, арахис):
-
Raw 240p:
- Сильная пикселизация по краям.
- Смазанные текстуры, особенно на птице и растениях.
- На современных дисплеях выглядит размыто.
-
Bicubic до 540p:
- Немного выше резкость.
- Много сглаживания, текстуры выглядят пластиковыми.
- Детали не восстанавливаются, просто растягиваются.
-
SeedVR2 до 540p:
- Чёткие детали на птице, растениях, орехах.
- Натуральные текстуры без «пластика».
- Лучше цвет, контраст и чёткость границ.
Что это значит для вас
Для кого это полезно
-
Стриминговые сервисы и онлайн‑кинотеатры
- Поднять старый каталог сериалов и фильмов до 540p, 720p, 1080p и выше.
- Не переснимать и не делать дорогой ремастер, а прогнать библиотеку через пайплайн.
- Улучшить опыт зрителей на 4K-телевизорах без замены контента.
-
Архивы, телеканалы, музеи
- Оцифровать старую плёнку и видеоархивы, а потом апскейлить до современных стандартов.
- Подготовить материалы для онлайн-экспозиций и образовательных платформ.
-
Создатели AI‑видео
- Генерировать ролики в низком разрешении (для экономии GPU), а потом апскейлить SeedVR2.
- Построить двухэтапный пайплайн: черновик в 240p–360p → финал в 540p+.
- Сильно сократить время и стоимость генерации, не теряя визуальное качество.
-
Продакшн‑студии, постпродакшн
- Подтянуть качество b‑roll, старых вставок, архивных вставок под современный мастер.
- Автоматизировать обработку больших партий роликов вместо ручного апскейла.
Когда это удобно использовать
- У вас уже есть инфраструктура на AWS или вы готовы её использовать.
- Нужно обрабатывать не один ролик, а десятки, сотни, тысячи.
- Важна автоматизация: загрузили в бакет — через время получили результат.
- Вы хотите контролировать параметры модели, тип GPU и стоимость.
Когда лучше поискать другой вариант
- Вам нужен апскейл «в один клик» на ноутбуке без AWS — здесь всё завязано на облако.
- Вы не готовы разбираться с AWS CLI, Docker, CDK и правами в аккаунте.
- Нужен интерактивный превью‑режим прямо в браузере для единичных роликов.
Доступность из России
SeedVR2 — открытая модель от ByteDance, но весь описанный пайплайн завязан на сервисы AWS: SageMaker, S3, Lambda, ECR, CloudWatch.
Для полноценного использования вам понадобится:
- Аккаунт AWS с правами на создание VPC, SageMaker, S3, Lambda, ECR, KMS.
- Сетевой доступ к AWS (часто через VPN, если доступ ограничен по региону или провайдеру).
Если AWS недоступен или сильно ограничен, придётся либо поднимать SeedVR2 на своих серверах, либо искать локальные решения.
Место на рынке
По сути, это связка: SeedVR2 (от ByteDance) + SageMaker Processing (от AWS). Прямых цифр сравнения с другими апскейлерами в материале нет, но можно оценить по параметрам:
-
Тип решения:
- SeedVR2 на SageMaker — облачный пайплайн «модель + инфраструктура».
- Популярные альтернативы — локальные или десктопные апскейлеры (Topaz Video AI и др.), либо другие модели в ComfyUI.
-
Масштабируемость:
- Здесь масштаб определяется количеством SageMaker Processing Jobs и типами инстансов.
- Для больших датасетов можно перейти к распределённой обработке (
ShardedByS3Key).
-
Стоимость:
- Ориентир: ~$1.20/час за
ml.g5.4xlarge+ копейки за S3. - Вы платите только за фактическое время обработки и хранение.
- Ориентир: ~$1.20/час за
-
Качество:
- SeedVR2 использует диффузию + GAN на 16B параметров, Swin Transformer, RpGAN + R1/R2.
- Это более тяжёлая и продвинутая архитектура, чем классические интерполяционные методы (bicubic).
Если у вас уже есть AWS и нужен промышленный пайплайн, это логичное решение. Если вы работаете одиночным автором и апскейлите пару роликов в месяц, проще взять десктопный инструмент.
Установка
Ниже — полный путь развёртывания из репозитория AWS. Команды сохранены без сокращений.
Предварительные требования
Нужно подготовить:
- Python 3.13+
- AWS CLI
- Docker
- AWS CDK v2
- Аккаунт AWS с правами на SageMaker, S3, Lambda, ECR, CloudFormation, VPC, KMS
- Увеличенный квот на
ml.g5.4xlargeдля SageMaker Processing Jobs
Шаг 1: Клонируем проект и настраиваем окружение
git clone https://github.com/aws-samples/sample-sagemaker-video-upscaler.git
cd sample-sagemaker-video-upscaler
cp .env.example .env
Отредактируйте .env и подставьте свои данные:
AWS_ACCOUNT_ID=<AWS Account ID>
REGION=<AWS Region>
Шаг 2: Устанавливаем зависимости и подготавливаем CDK
Используется uv — быстрый менеджер Python-пакетов.
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv --python 3.13
and source .venv/bin/activate
uv sync
Бутстрапим CDK в аккаунте (делается один раз на аккаунт/регион):
cdk bootstrap aws://<AWS_ACCOUNT_ID>/<REGION>
Если увидите ошибки прав — проверьте учётку:
aws sts get-caller-identity
Шаг 3: Логинимся в Amazon ECR для базового образа
Нужно авторизоваться в реестре AWS Deep Learning Container в us-east-1, чтобы локальный Docker смог подтянуть PyTorch-базу для сборки образа SeedVR2.
aws ecr get-login-password --region us-east-1 | \
docker login --username AWS --password-stdin \
763104351884.dkr.ecr.us-east-1.amazonaws.com
Если сборка образа падает, проверьте логин и при необходимости очистите кэш Docker:
docker system prune -a
Шаг 4: Деплой инфраструктуры
Одна команда поднимает весь стек: VPC, S3, Lambda, SageMaker Processing Job, ECR-репозиторий.
cdk deploy --all --require-approval never
Обычно развёртывание занимает 15–20 минут.
Как запустить
Шаг 5: Тестируем пайплайн
- Загружаем тестовое видео в входной S3-бакет:
aws s3 cp your-video.mp4 s3://<account-id>-<region>-datastack-input-bucket/
- Триггерим Lambda, которая запускает SageMaker Processing Job:
aws lambda invoke \
--function-name SeedVrStack-ProcessingJob-Trigger-SeedVr-trigger-Lambda \
--payload '{}' \
output.json
- Следим за процессом:
- Логи Lambda и SageMaker — в Amazon CloudWatch Logs (
/aws/sagemaker/ProcessingJobs). - Статус Job’а — в консоли SageMaker.
- Готовый апскейл — в выходном S3-бакете.
- Логи Lambda и SageMaker — в Amazon CloudWatch Logs (
Если Job упал, смотрите логи в CloudWatch и проверяйте, создался ли файл в выходном бакете.
Настройка производительности
Основные параметры меняются в config/config.yaml:
InstanceType: ml.g5.4xlarge # тип инстанса SageMaker Processing
# Minimum resolution: "540" # минимальное целевое разрешение по высоте (пример)
# Output quality
batch_size: "81" # размер батча кадров
# Processing efficiency
model: "seedvr2_ema_3b_fp8_e4m3fn.safetensors"
- Увеличивайте
batch_size, если хватает памяти GPU и хотите ускорить обработку. - Меняйте
model, если используете другой чекпоинт SeedVR2 из раздела ComfyUI на Hugging Face. - Для крупных датасетов можно включить шардирование S3 через
S3DataDistributionType = ShardedByS3Keyвcreate_processing_job(boto3), чтобы обрабатывать разные файлы параллельно.
Управление стоимостью
ml.g5.4xlarge≈ $1.20/час (зависит от региона).- Вы платите только за время, пока инстанс работает в рамках Processing Job.
- Хранение в S3 обычно стоит недорого, особенно если включить lifecycle-политики для архивирования.
Если нужно сильно экономить, можно:
- Снижать разрешение цели или длину роликов.
- Использовать меньшее количество параллельных Job’ов.
- Очищать ненужные результаты и логи.
Как работает SeedVR2 под капотом (чуть глубже)
SeedVR2 решает задачу восстановления видео через комбинацию диффузии и GAN:
- Диффузия даёт стабильное и предсказуемое восстановление деталей.
- GAN отвечает за естественный вид и текстуры, близкие к реальному видео.
Ключевые моменты:
- 16B-параметровый GAN — тяжёлая, но мощная архитектура для высококачественных кадров.
- APT (Diffusion Adversarial Post-Training):
- Сначала модель учится как диффузионная, с большим числом шагов.
- Потом через прогрессивную дистилляцию сжимает 64 шага в один, чтобы инференс стал быстрым.
- Swin Transformer с оконным вниманием:
- Делит кадр на окна и анализирует локальные области.
- Это помогает восстанавливать мелкие детали в текстурах и по краям объектов.
- RpGAN + R1/R2 + feature matching:
- RpGAN оценивает различие между реальными и сгенерированными кадрами релятивно.
- R1 и R2-регуляризация удерживают обучение от расхождения и коллапса мод.
- Feature matching помогает сохранять структуру сцены, а не только пиксели.
В итоге модель обрабатывает кадры целиком, но умеет подстраиваться под разные целевые разрешения и сохранять естественность картинки.
Очистка ресурсов
Чтобы не продолжать платить за инфраструктуру, после экспериментов лучше всё убрать.
Шаг 1: Очищаем S3-бакеты
aws s3 rm s3://<seedvr-input-bucket> --recursive
aws s3 rm s3://<seedvr-output-bucket> --recursive
Шаг 2: Удаляем CDK-стеки
cdk destroy --all --force
Шаг 3: Чистим локальные файлы
rm -rf cdk.out/ .cdk.staging/
find . -type d -name "__pycache__" -delete
Шаг 4: Проверяем, что всё удалено
aws cloudformation list-stacks --stack-status-filter DELETE_COMPLETE
aws s3 ls | grep seedvr
aws sagemaker list-processing-jobs --max-results 5
Что в итоге
SeedVR2 на Amazon SageMaker — это готовый конвейер для суперразрешения видео, который можно встроить в продакшн без ручной сборки инфраструктуры.
Сильные стороны:
- Высокое качество апскейла за счёт диффузии + GAN и Swin Transformer.
- Масштабируемость: от одного ролика до целого каталога.
- Платите только за время работы GPU и хранение.
- Чёткая архитектура безопасности: VPC, IAM, KMS, приватные подсети.
Слабые места:
- Требуется опыт работы с AWS, Docker, CDK.
- Нужен доступ к AWS (часто через VPN из России).
- Нет из коробки интерактивного UI для ручной тонкой настройки — это именно пайплайн.
Если вы отвечаете за видеокаталог, архив или AI‑видео‑продакшн и уже используете AWS, этот стек даёт рабочий способ подтянуть качество контента до стандартов современных дисплеев без пересъёмки и дорогостоящего ремастеринга.