/ Модель

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

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

animatediff-sparsectrl-scribble

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

Компонент Sparse ControlNet для AnimateDiff генерирует видео по тексту с управлением через разреженные наброски.

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

Бенчмарки

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

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

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

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

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

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

guoyww/animatediff-sparsectrl-scribble — компонент для генерации видео, созданный на основе AnimateDiff и SparseCtrl. AnimateDiff добавляет обученные на видеоклипах слои движения к замороженной модели Stable Diffusion для генерации изображений; SparseControlNetModel добавляет управление генерацией по разреженным условиям, таким как наброски. Компонент предназначен для использования вместе с совместимой моделью Stable Diffusion и инструментами библиотеки Diffusers.

Модель подходит для создания видео по текстовому описанию с управлением движением и визуальными подсказками в виде набросков. Архитектурно это Sparse ControlNet для AnimateDiff, работающий с UNet Stable Diffusion и motion-модулями. В репозитории указаны веса в формате safetensors. README не сообщает лицензию и конкретные ограничения качества; для запуска нужны совместимые базовая модель и компоненты AnimateDiff.

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

  • генерация видео по текстовому описанию
  • управляемая генерация видео по наброску
  • создание последовательных кадров с согласованным движением
  • эксперименты с управляемой генерацией видео на базе Stable Diffusion

Ограничения

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

Для каких профессий подходит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-scribble"
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")
pipe.fuse_lora(lora_scale=1.0)

prompt = "an aerial view of a cyberpunk city, night time, neon lights, masterpiece, high quality"
negative_prompt = "low quality, worst quality, letterboxed"

image_files = [
    "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/animatediff-scribble-1.png",
    "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/animatediff-scribble-2.png",
    "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/animatediff-scribble-3.png"
]
condition_frame_indices = [0, 8, 15]
conditioning_frames = [load_image(img_file) for img_file in image_files]

video = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    num_inference_steps=25,
    conditioning_frames=conditioning_frames,
    controlnet_conditioning_scale=1.0,
    controlnet_frame_indices=condition_frame_indices,
    generator=torch.Generator().manual_seed(1337),
).frames[0]
export_to_gif(video, "output.gif")

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

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

GPU в ailist

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

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

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

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

0 моделей