Tune-A-Video : réglage en une seule fois des modèles de diffusion d'images pour la génération de texte en vidéo
pip install -r requirements.txt
[Stable Diffusion] Stable Diffusion est un modèle de diffusion latent de texte à image capable de générer des images photoréalistes à partir de n'importe quelle saisie de texte. Les modèles de diffusion stable pré-entraînés peuvent être téléchargés à partir de Hugging Face (par exemple, Stable Diffusion v1-4, v2-1). Vous pouvez également utiliser des modèles de diffusion stable affinés et formés sur différents styles (par exemple, Modern Disney, Redshift, etc.).
[DreamBooth] DreamBooth est une méthode permettant de personnaliser des modèles texte-image tels que Stable Diffusion à partir de quelques images (3 à 5 images) d'un sujet. Le réglage d'une vidéo sur les modèles DreamBooth permet la génération personnalisée de texte en vidéo d'un sujet spécifique. Certains modèles DreamBooth publics sont disponibles sur Hugging Face (par exemple, mr-potato-head). Vous pouvez également entraîner votre propre modèle DreamBooth en suivant cet exemple de formation.
Pour affiner les modèles de diffusion texte-image pour la génération texte-vidéo, exécutez cette commande :
accelerate launch train_tuneavideo.py --config= " configs/man-skiing.yaml "
Une fois la formation terminée, exécutez l'inférence :
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" )
Vidéo d'entrée | Sortie vidéo | |
"Un homme skie" | "Wonder Woman, elle fait du ski" | "Une petite fille fait du ski" |
"Un lapin mange une pastèque" | "Un chat mange une pastèque sur la table" | "Un chiot mange un cheeseburger sur la table, style bande dessinée" |
"Une jeep circule sur la route" | "Une voiture roule sur la route, style dessin animé" | "Une voiture roule sur la neige" |