Реализация Image-to-Video генерации

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Реализация Image-to-Video генерации
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    854
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Разработка систем Image-to-Video генерации

Image-to-video оживляет статичное изображение: добавляет движение, камеру, анимирует элементы сцены. Применяется для оживления продуктовых фото, создания фоновых видео из иллюстраций, анимации персонажей.

Stable Video Diffusion (SVD) — self-hosted

from diffusers import StableVideoDiffusionPipeline
from diffusers.utils import load_image, export_to_video
import torch

pipe = StableVideoDiffusionPipeline.from_pretrained(
    "stabilityai/stable-video-diffusion-img2vid-xt",
    torch_dtype=torch.float16,
    variant="fp16"
)
pipe.enable_model_cpu_offload()

def animate_image_svd(
    image: bytes,
    num_frames: int = 25,         # 25 кадров при 7 fps = ~3.5 сек
    motion_bucket_id: int = 127,  # 1–255: интенсивность движения
    fps_id: int = 7,              # fps финального видео
    noise_aug_strength: float = 0.02
) -> bytes:
    from PIL import Image
    import io

    init_image = Image.open(io.BytesIO(image)).convert("RGB")
    init_image = init_image.resize((1024, 576))  # SVD-XT размер

    frames = pipe(
        init_image,
        num_frames=num_frames,
        decode_chunk_size=8,
        motion_bucket_id=motion_bucket_id,
        fps_id=fps_id,
        noise_aug_strength=noise_aug_strength,
        generator=torch.manual_seed(42)
    ).frames[0]

    output_path = "/tmp/animated.mp4"
    export_to_video(frames, output_path, fps=fps_id)

    with open(output_path, "rb") as f:
        return f.read()

Управление движением

MOTION_PRESETS = {
    "subtle": 20,      # лёгкое колыхание, минимальное движение
    "natural": 80,     # естественное движение сцены
    "dynamic": 150,    # заметное движение
    "intense": 220,    # сильное, экспрессивное движение
}

# API endpoint с выбором интенсивности
async def animate_product_photo(
    product_image: bytes,
    motion_preset: str = "subtle"
) -> bytes:
    motion_id = MOTION_PRESETS.get(motion_preset, 80)
    return animate_image_svd(product_image, motion_bucket_id=motion_id)

Сравнение i2v моделей

Модель Метод Длина Качество Скорость (A100)
SVD-XT Self-hosted 3–4 сек Хорошее ~30 сек
Kling i2v API 5–10 сек Отличное 1–3 мин
Runway i2v API 10 сек Отличное 30–60 сек
Luma i2v API 5–9 сек Высокое 30–90 сек

SVD актуален при необходимости self-hosted решения или высоких объёмах. Для разовых задач — Kling или Runway по соотношению цена/качество. Сроки интеграции SVD API — 1–2 дня, API-провайдера — 1 день.