Tune-A-Video: однократная настройка моделей распространения изображений для преобразования текста в видео
pip install -r requirements.txt
[Стабильная диффузия] Стабильная диффузия — это скрытая модель диффузии текста в изображение, способная генерировать фотореалистичные изображения при любом вводе текста. Предварительно обученные модели Stable Diffusion можно загрузить с Hugging Face (например, Stable Diffusion v1-4, v2-1). Вы также можете использовать точно настроенные модели Stable Diffusion, обученные в разных стилях (например, Modern Disney, Redshift и т. д.).
[DreamBooth] DreamBooth — это метод персонализации моделей преобразования текста в изображение, таких как Stable Diffusion, с использованием всего лишь нескольких изображений (3–5 изображений) объекта. Настройка видео на моделях DreamBooth позволяет персонализировать преобразование текста в видео по конкретной теме. На Hugging Face доступны некоторые общедоступные модели DreamBooth (например, mr-potato-head). Вы также можете обучить свою собственную модель DreamBooth, следуя этому обучающему примеру.
Чтобы точно настроить модели распространения текста в изображение для генерации текста в видео, выполните следующую команду:
accelerate launch train_tuneavideo.py --config= " configs/man-skiing.yaml "
После завершения обучения запустите вывод:
from tuneavideo . pipelines . pipeline_tuneavideo import TuneAVideoPipeline
from tuneavideo . models . unet import UNet3DConditionModel
from tuneavideo . util import save_videos_grid
import torch
pretrained_model_path = "./checkpoints/stable-diffusion-v1-4"
my_model_path = "./outputs/man-skiing"
unet = UNet3DConditionModel . from_pretrained ( my_model_path , subfolder = 'unet' , torch_dtype = torch . float16 ). to ( 'cuda' )
pipe = TuneAVideoPipeline . from_pretrained ( pretrained_model_path , unet = unet , torch_dtype = torch . float16 ). to ( "cuda" )
pipe . enable_xformers_memory_efficient_attention ()
pipe . enable_vae_slicing ()
prompt = "spider man is skiing"
ddim_inv_latent = torch . load ( f" { my_model_path } /inv_latents/ddim_latent-500.pt" ). to ( torch . float16 )
video = pipe ( prompt , latents = ddim_inv_latent , video_length = 24 , height = 512 , width = 512 , num_inference_steps = 50 , guidance_scale = 12.5 ). videos
save_videos_grid ( video , f"./ { prompt } .gif" )
Входное видео | Выходное видео | |
«Мужчина катается на лыжах» | «Чудо-женщина катается на лыжах» | «Маленькая девочка катается на лыжах» |
«Кролик ест арбуз» | «Кошка ест арбуз на столе» | «Щенок ест чизбургер на столе, в стиле комиксов» |
«По дороге едет джип» | «Машина движется по дороге, в мультяшном стиле» | «Машина едет по снегу» |