Генерация и интерполяция видео: многокадровые пайплайны
Задача страницы. Дать практический план запуска генерации и интерполяции видео на облачных GPU: архитектуры многокадровых пайплайнов (text→video, keyframes→interpolation, stylization), требования к VRAM/диску, консистентность между кадрами, расчёт времени/стоимости, транскодирование (NVENC/AV1), наблюдаемость и масштабирование.
TL;DR
- Для интерактива используйте короткие клипы 6–12 с @512–576p, 16–28 шагов/кадр, SSE‑стриминг прогресса, один узел с прогретыми весами.
- Для массовых задач (генерация ассетов/каталогов/тизеров) — очереди, шардинг кадров по воркерам, interruptible пулы и NVMe‑кэш весов.
- Стабильность видео держат: оптический поток/варп, лок‑сидов на таймлайне, «захват‑и‑отпуск» ControlNet, пост‑этап апскейл/денойз.
- Соседние темы: базовый обзор генерации — https://cloudcompute.ru/solutions/image-video-gen/, стек ComfyUI — https://cloudcompute.ru/solutions/image-video-gen/comfyui/, WebUI — https://cloudcompute.ru/solutions/image-video-gen/automatic1111/, SDXL — https://cloudcompute.ru/solutions/image-video-gen/sdxl/, SD3 — https://cloudcompute.ru/solutions/image-video-gen/sd3/, ControlNet/IP‑Adapter — https://cloudcompute.ru/solutions/image-video-gen/controlnet/, апскейл — https://cloudcompute.ru/solutions/image-video-gen/upscaling/, пакетный рендер — https://cloudcompute.ru/solutions/image-video-gen/batch-render/, транскод — https://cloudcompute.ru/solutions/rendering/video-transcode/.
Сценарии и требования
- Text→Video диффузии. Полная генерация по промпту; важны стабилизация сюжета и p95.
- Keyframes→Interpolation. Генерация ключевых кадров (или img2img) → интерполяция межкадров для плавности.
- Видео‑стилизация/редактура. Кадр‑за‑кадром или варп по оптическому потоку + мягкий denoise; хорошо для брендинга и унификации.
- Интерполяция fps и слоумо. Увеличение частоты без смены сюжета; критична консистентность объектов.
Для точного контроля поз/контуров/стиля подключайте ControlNet/IP‑Adapter: https://cloudcompute.ru/solutions/image-video-gen/controlnet/.
Архитектуры многокадровых пайплайнов
Text→Video (чистая генерация)
Prompt → (опц. ControlNet/IP‑Adapter) → Diffusion per frame
→ (опц.) Flow‑warp стабилизация → Upscale/Denoise → Encode (H.264/AV1)
Keyframes→Interpolation (минимум артефактов)
Ключевые кадры (генерация SDXL/SD3) → Межкадры (интерполяция/варп)
→ Лёгкий denoise и блюр по швам → Upscale → Encode
Видео‑стилизация/редактура (кадр‑за‑кадром + поток)
Входное видео → Optical Flow → Warp(prev→current) → Img2Img (малый denoise)
→ (опц.) ControlNet (edge/pose) → Сборка и Encode
Гибрид (массовые ассеты)
- Ключевые кадры + стилизация с IP‑Adapter (бренд‑палитра), межкадры — интерполяция.
- Крупные задания гоняются interruptible кластером; итог — отчёт/манифест.
GPU/VRAM и диск: ориентиры Оценки для fp16/bf16, память‑эффективное внимание, batch=1 (на кадр), без сложных веток.
| **Режим** | **Разрешение** | **SDXL (на кадр)** | **SD3 (на кадр)** | **Комментарии** |
| Preview | 512–576p | 16–24 ГБ | 24–32 ГБ | 16–28 шагов; быстрый TTFT |
| HQ short | 720p | 24–32 ГБ | 32–40 ГБ | лучше отдельный пул |
| HQ | 1080p (тайлинг) | 24–48 ГБ | 32–48 ГБ | тайлы + сглаживание швов |
| Апскейл/денойз | — | 8–16 ГБ | 8–16 ГБ | пост‑этап на дешёвых GPU |
Диск/I/O. NVMe на узле: 100–300 ГБ под веса/LoRA/ControlNet/кэш + потоковую запись кадров/превью. Хранение/кэш — https://cloudcompute.ru/solutions/storage-data/.
Производительность и стоимость: быстрые формулы
Обозначим: F — кадры, S — шаги/кадр, t_step — время шага, O_pre/post — накладные (I/O, препроцессоры, транс‑код), α_control — накладные ControlNet/IP‑Adapter, β_tiling — накладные тайлинга.
Время на ролик
T_total ≈ O_pre + F × (S × t_step × (1 + α_control + β_tiling)) + O_post
Выработка/цена
Frames_per_hour ≈ 3600 / (S × t_step)
Cost_per_min ≈ (GPU_hour_price × Num_GPU) / (Frames_per_hour / (fps × 60))
Гибкие пулы: экономика/режимы — https://cloudcompute.ru/solutions/cost-planner/, наблюдаемость — https://cloudcompute.ru/solutions/llm-inference/observability/.
Консистентность между кадрами
- Сиды/шум. Фиксируйте «видео‑сид» и выводите кадровые сиды как seed_f = hash(seed_video, f) — меньше «прыжков» стиля.
- Оптический поток и варп. Варпируйте предыдущий кадр в текущий и делайте малый denoise (0.15–0.35) — удерживает форму/текстуры.
- Cross‑frame контекст. Подавайте соседние кадры как слабый conditioning (низкий вес) в начале шага.
- ControlNet расписания. «Захват‑и‑отпуск»: высокий вес на ранних шагах, затем спад.
- Пост‑сглаживание. Лёгкий temporal‑blur/дебандинг по швам тайлов, затем апскейл.
Подробности по ControlNet/IP‑Adapter — https://cloudcompute.ru/solutions/image-video-gen/controlnet/. ComfyUI: референс‑граф (sequence → encode)
Мини‑скелет графа (SDXL, кадр‑за‑кадром, Canny‑контроль + варп по потоку):
{
"1":{"class_type":"CheckpointLoaderSimple","inputs":{"ckpt_name":"sdxl_base.safetensors"}},
"2":{"class_type":"CLIPTextEncode","inputs":{"text":"cinematic city at dusk, shallow depth of field","clip":["1","CLIP"]}},
"3":{"class_type":"CLIPTextEncode","inputs":{"text":"blurry, watermark, artifacts","clip":["1","CLIP"]}},
"10":{"class_type":"ImageSequenceLoader","inputs":{"pattern":"frames_in/%06d.png","fps":24}},
"11":{"class_type":"OpticalFlow","inputs":{"prev":["10","PREV"],"curr":["10","CURR"]}},
"12":{"class_type":"FlowWarp","inputs":{"image":["10","PREV"],"flow":["11","FLOW"]}},
"13":{"class_type":"CannyEdgePreprocess","inputs":{"image":["10","CURR"],"low":100,"high":200}},
"14":{"class_type":"ControlNetApplyAdvanced","inputs":{
"positive":["2","CONDITIONING"],"negative":["3","CONDITIONING"],
"image":["13","IMAGE"],"strength":0.8,"start":0.0,"end":0.6}},
"20":{"class_type":"EmptyLatentImageFromSize","inputs":{"width":1024,"height":576}},
"21":{"class_type":"KSampler","inputs":{
"model":["1","MODEL"],"steps":24,"cfg":6.0,"sampler_name":"dpmpp_2m","scheduler":"karras",
"seed":42,"denoise":0.25,"latent_image":["20","LATENT"],
"positive":["14","CONDITIONING"],"negative":["3","CONDITIONING"],"init_image":["12","IMAGE"]}},
"22":{"class_type":"VAEDecode","inputs":{"samples":["21","LATENT"],"vae":["1","VAE"]}},
"30":{"class_type":"SaveImageSequence","inputs":{"images":["22","IMAGE"],"pattern":"frames_out/%06d.png"}},
"31":{"class_type":"VideoEncode","inputs":{"pattern":"frames_out/%06d.png","fps":24,"codec":"h264_nvenc","outfile":"out.mp4"}}
}
Готовые узлы/паттерны и кэш — https://cloudcompute.ru/solutions/image-video-gen/comfyui/. Для высоких разрешений используйте тайлинг + сглаживание: https://cloudcompute.ru/solutions/image-video-gen/upscaling/.
API‑оркестрация (кадр‑за‑кадром) поверх WebUI
Идея. Читаем кадры, для каждого вызываем img2img с низким denoise и фиксированным seed‑расчётом; после — кодируем видео.
# video_orchestrator.py — упрощённо
import base64, glob, httpx, json, hashlib, time, subprocess, os
WEBUI = "http://localhost:7860"
FPS = 24
def seed_for_frame(seed_video, f):
return int.from_bytes(hashlib.sha256(f"{seed_video}:{f}".encode()).digest()[:8], "big")
def img_b64(path):
return "data:image/png;base64," + base64.b64encode(open(path,"rb").read()).decode()
async def stylize_sequence(pattern_in="frames_in/%06d.png", out_dir="frames_out", seed_video=123):
os.makedirs(out_dir, exist_ok=True)
frames = sorted(glob.glob(pattern_in.replace("%06d","*")))
async with httpx.AsyncClient(timeout=60) as s:
for i,fp in enumerate(frames):
payload = {
"init_images":[img_b64(fp)],
"denoising_strength":0.28,
"steps":24, "cfg_scale":6.0,
"seed": seed_for_frame(seed_video, i),
"width":1024, "height":576,
"prompt": "cinematic city at dusk, shallow depth of field",
"negative_prompt": "blurry, watermark, artifacts"
}
r = await s.post(f"{WEBUI}/sdapi/v1/img2img", json=payload)
img = base64.b64decode(r.json()["images"][0].split(",",1)[1])
open(f"{out_dir}/{i:06d}.png","wb").write(img)
def encode_video(pattern="frames_out/%06d.png", out="out.mp4"):
# NVENC H.264; см. раздел транскода ниже
cmd = ["ffmpeg","-y","-framerate",str(FPS),"-i",pattern,
"-c:v","h264_nvenc","-preset","p5","-b:v","6M","-pix_fmt","yuv420p",out]
subprocess.run(cmd, check=True)
# Запуск: asyncio.run(stylize_sequence()); encode_video()
Стриминг прогресса и тайм‑ауты — https://cloudcompute.ru/solutions/llm-inference/streaming/.
Транскодирование: NVENC/AV1, аудио и контейнеры
Сборка PNG→MP4 (NVENC H.264):
ffmpeg -y -framerate 24 -i frames_out/%06d.png
-c:v h264_nvenc -preset p5 -rc vbr -b:v 6M -maxrate 10M
-pix_fmt yuv420p -movflags +faststart out.mp4
AV1 (NVENC или CPU‑кодек) для высокого качества:
# Вариант AV1 NVENC (при наличии поддержки)
ffmpeg -y -framerate 24 -i frames_out/%06d.png
-c:v av1_nvenc -rc vbr -b:v 5M -pix_fmt yuv420p out_av1.mp4
# Вариант libaom-av1 (CPU, медленнее, но качественно)
ffmpeg -y -framerate 24 -i frames_out/%06d.png
-c:v libaom-av1 -crf 30 -b:v 0 -pix_fmt yuv420p out_av1.mkv
Слияние с аудио (если есть отдельная дорожка):
ffmpeg -y -i out.mp4 -i audio.wav -c:v copy -c:a aac -b:a 192k -shortest out_with_audio.mp4
Больше приёмов по транскоду — https://cloudcompute.ru/solutions/rendering/video-transcode/.
Масштабирование и отказоустойчивость
- Шардирование кадров. Раздавайте диапазоны f_start..f_end воркерам; храните промежуточные кадры/манифест.
- Повторы и чекпоинты. Прерываемые задания бьются на чанки; после рестарта — дозавершение недостающих кадров.
- Short/Long пулы. Короткие ролики — on‑demand; пакеты — interruptible (https://cloudcompute.ru/solutions/interruptible-patterns/).
- MIG/мульти‑GPU. Разделяйте Интерактив/Batch; для больших видеопартий используйте отдельные GPU‑фермы.
- Тайлинг. 1080p/4k — тайловая диффузия + сглаживание швов (см. апскейл: https://cloudcompute.ru/solutions/image-video-gen/upscaling/).
Качество vs скорость: рычаги
- Шаги/кадр (S). Предпросмотр — 16–22; финалы — 24–36.
- CFG. Держите 4–8; переизбыток даёт «пластик» и мерцание.
- ControlNet/IP‑Adapter. Точные контуры/поза/стиль (см. https://cloudcompute.ru/solutions/image-video-gen/controlnet/), но учитывайте накладные по VRAM/времени.
- Flow‑warp + малый denoise. Улучшает стабильность, особенно в стилизации.
- Двухпроходный конвейер. 576p генерация → апскейл/денойз → транскод; часто дешевле, чем сразу 1080p.
- Семена. Фиксируйте seed_video; выравнивайте seed_f по кадрам — меньше «миганий».
Наблюдаемость, алерты, логи
Собирайте (см. https://cloudcompute.ru/solutions/monitoring-logging/ и https://cloudcompute.ru/solutions/llm-inference/observability/):
- frames_per_min, t_step_ms, steps, resolution, queue_wait, доля перезапусков чанков.
- GPU: util/HBM, OOM/ретраи, время загрузки весов, кэш‑хиты.
- Препроцессоры: время оптического потока/канни/масок.
- Транскод: fps, битрейт, доля перепаковок.
Алерты: рост p95 t_step_ms, падение frames_per_min, OOM>0, ошибки I/O/кодека.
Безопасность и политика
- Ограничения параметров (макс. разрешение, шаги, CFG, длина клипа), белые списки моделей/модулей.
- Санация промптов/логов, маскирование PII и токенов (см. https://cloudcompute.ru/solutions/security/ и https://cloudcompute.ru/solutions/llm-inference/guardrails/).
- Политика контента — отдельно для интерактива и batch‑заданий.
Как это запустить в cloudcompute.ru
В хабе шаблонов https://cloudcompute.ru/solutions/templates/ доступны пресеты:
- “Video‑Diffusion” — ComfyUI‑графы (sequence loader, flow‑warp, control‑ветки, encode), fp16/bf16, кэш весов, SSE‑прогресс.
- “Batch‑Render (Video)” — очереди, шардирование кадров, ретраи, манифест артефактов, отчёт (время/цена).
- “Video‑Transcode” — NVENC/AV1 профили, аудио‑слияние, VOD‑пайплайны.
Экономика/SLA — https://cloudcompute.ru/solutions/cost-planner/, эксплуатация — https://cloudcompute.ru/solutions/performance-tuning/ и https://cloudcompute.ru/solutions/interruptible-patterns/.
Чек‑лист перед продом
- Определены сценарии: Text→Video / Keyframes→Interp / Стилизация.
- Подтверждены VRAM‑профили и шаги на целевом разрешении.
- Выбран стек (ComfyUI/WebUI), включены fp16/bf16, SDPA/xformers.
- Настроены ControlNet/IP‑Adapter и расписания влияния.
- Включены flow‑warp и «лок‑сиды» на таймлайне; собран двухпроход (апскейл/денойз).
- Пулы short/long (on‑demand/interruptible), шардинг кадров, ретраи.
- Метрики/алерты/логи подключены; отчёт о затратах/производительности.
- Политики/лимиты параметров и allow‑list моделей активированы.
Навигация по разделу «Генерация изображений и видео»
https://cloudcompute.ru/solutions/image-video-gen/ • https://cloudcompute.ru/solutions/image-video-gen/comfyui/ • https://cloudcompute.ru/solutions/image-video-gen/automatic1111/ • https://cloudcompute.ru/solutions/image-video-gen/sdxl/ • https://cloudcompute.ru/solutions/image-video-gen/sd3/ • https://cloudcompute.ru/solutions/image-video-gen/controlnet/ • https://cloudcompute.ru/solutions/image-video-gen/upscaling/ • https://cloudcompute.ru/solutions/image-video-gen/face-restoration/ • https://cloudcompute.ru/solutions/image-video-gen/batch-render/ • инфраструктура: https://cloudcompute.ru/solutions/performance-tuning/, https://cloudcompute.ru/solutions/storage-data/, https://cloudcompute.ru/solutions/monitoring-logging/, https://cloudcompute.ru/solutions/llm-inference/streaming/, https://cloudcompute.ru/solutions/llm-inference/observability/, https://cloudcompute.ru/solutions/cost-planner/, https://cloudcompute.ru/solutions/interruptible-patterns/
Готовы запустить?
Запустить GPU-сервер