/ Модель

Характеристики

Библиотека
diffusers
Опубликована
18 июл 2024

animatediff-sparsectrl-rgb

Генерация видеоТекст → видео3 профессии

Компонент SparseControlNet для AnimateDiff, который помогает генерировать видео по тексту с управлением через разреженные RGB-кадры.

1 422скачиваний за 30 дней8лайковвеса обновлены23 июл 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

guoyww/animatediff-sparsectrl-rgb — модель для управляемой генерации видео в составе AnimateDiff. Она добавляет SparseControlNet к AnimateDiff и позволяет задавать движение и содержание видео по разреженным RGB-кадрам, используя совместно с ней существующую модель Stable Diffusion для преобразования текста в изображение. Подход AnimateDiff вводит обученные на видеоклипах motion-модули в замороженную модель Stable Diffusion, чтобы поддерживать согласованное движение между кадрами.

Модель предназначена для создания видеороликов по текстовому запросу с дополнительным визуальным контролем по нескольким RGB-кадрам. Для работы требуются совместимая модель Stable Diffusion и компоненты AnimateDiff; карточка описывает использование через Diffusers. Репозиторий содержит веса Safetensors. Условия лицензии и численные характеристики модели в предоставленных данных не указаны.

Сценарии применения

  • создание видео по текстовому описанию с визуальным контролем
  • задание композиции ролика с помощью отдельных RGB-кадров
  • генерация последовательности кадров с согласованным движением
  • анимация изображения в составе пайплайна AnimateDiff

Ограничения

Для работы нужны совместимая модель Stable Diffusion и компоненты AnimateDiff; это не самостоятельная модель полного пайплайна. В предоставленных данных не приведены лицензия и численные характеристики весов.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

AnimateDiff is a method that allows you to create videos using pre-existing Stable Diffusion Text to Image models.

It achieves this by inserting motion module layers into a frozen text to image model and training it on video clips to extract a motion prior. These motion modules are applied after the ResNet and Attention blocks in the Stable Diffusion UNet. Their purpose is to introduce coherent motion across image frames. To support these modules we introduce the concepts of a MotionAdapter and UNetMotionModel. These serve as a convenient way to use these motion modules with existing Stable Diffusion models.

SparseControlNetModel is an implementation of ControlNet for AnimateDiff.

ControlNet was introduced in Adding Conditional Control to Text-to-Image Diffusion Models by Lvmin Zhang, Anyi Rao, and Maneesh Agrawala.

The SparseCtrl version of ControlNet was introduced in SparseCtrl: Adding Sparse Controls to Text-to-Video Diffusion Models for achieving controlled generation in text-to-video diffusion models by Yuwei Guo, Ceyuan Yang, Anyi Rao, Maneesh Agrawala, Dahua Lin, and Bo Dai.

The following example demonstrates how you can utilize the motion modules and sparse controlnet with an existing Stable Diffusion text to image model.

import torch

from diffusers import AnimateDiffSparseControlNetPipeline
from diffusers.models import AutoencoderKL, MotionAdapter, SparseControlNetModel
from diffusers.schedulers import DPMSolverMultistepScheduler
from diffusers.utils import export_to_gif, load_image


model_id = "SG161222/Realistic_Vision_V5.1_noVAE"
motion_adapter_id = "guoyww/animatediff-motion-adapter-v1-5-3"
controlnet_id = "guoyww/animatediff-sparsectrl-rgb"
lora_adapter_id = "guoyww/animatediff-motion-lora-v1-5-3"
vae_id = "stabilityai/sd-vae-ft-mse"
device = "cuda"

motion_adapter = MotionAdapter.from_pretrained(motion_adapter_id, torch_dtype=torch.float16).to(device)
controlnet = SparseControlNetModel.from_pretrained(controlnet_id, torch_dtype=torch.float16).to(device)
vae = AutoencoderKL.from_pretrained(vae_id, torch_dtype=torch.float16).to(device)
scheduler = DPMSolverMultistepScheduler.from_pretrained(
    model_id,
    subfolder="scheduler",
    beta_schedule="linear",
    algorithm_type="dpmsolver++",
    use_karras_sigmas=True,
)
pipe = AnimateDiffSparseControlNetPipeline.from_pretrained(
    model_id,
    motion_adapter=motion_adapter,
    controlnet=controlnet,
    vae=vae,
    scheduler=scheduler,
    torch_dtype=torch.float16,
).to(device)
pipe.load_lora_weights(lora_adapter_id, adapter_name="motion_lora")

image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/animatediff-firework.png")

video = pipe(
    prompt="closeup face photo of man in black clothes, night city street, bokeh, fireworks in background",
    negative_prompt="low quality, worst quality",
    num_inference_steps=25,
    conditioning_frames=image,
    controlnet_frame_indices=[0],
    controlnet_conditioning_scale=1.0,
    generator=torch.Generator().manual_seed(42),
).frames[0]
export_to_gif(video, "output.gif")

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · diffusers

Нельзя запустить

Генеративная модель выложена не в формате diffusers.

Ревизия весов
b8003d6

0 моделей