Tune-A-Video: Penyetelan Satu Kali Model Difusi Gambar untuk Pembuatan Teks-ke-Video
pip install -r requirements.txt
[Difusi Stabil] Difusi Stabil adalah model difusi teks-ke-gambar laten yang mampu menghasilkan gambar foto-realistis dengan masukan teks apa pun. Model Difusi Stabil yang telah dilatih sebelumnya dapat diunduh dari Hugging Face (misalnya, Difusi Stabil v1-4, v2-1). Anda juga dapat menggunakan model Difusi Stabil yang telah disesuaikan dan dilatih pada gaya berbeda (misalnya, Modern Disney, Redshift, dll.).
[DreamBooth] DreamBooth adalah metode untuk mempersonalisasi model teks-ke-gambar seperti Difusi Stabil dengan hanya memberikan beberapa gambar (3~5 gambar) dari suatu subjek. Menyetel video pada model DreamBooth memungkinkan pembuatan teks-ke-video yang dipersonalisasi dari subjek tertentu. Ada beberapa model DreamBooth publik yang tersedia di Hugging Face (misalnya, mr-potato-head). Anda juga dapat melatih model DreamBooth Anda sendiri dengan mengikuti contoh pelatihan ini.
Untuk menyempurnakan model difusi teks-ke-gambar untuk pembuatan teks-ke-video, jalankan perintah ini:
accelerate launch train_tuneavideo.py --config= " configs/man-skiing.yaml "
Setelah pelatihan selesai, jalankan inferensi:
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" )
Masukan Video | Video Keluaran | |
"Seorang pria sedang bermain ski" | "Wonder Woman, sedang bermain ski" | "Seorang gadis kecil sedang bermain ski" |
"Seekor kelinci sedang makan semangka" | "Seekor kucing sedang makan semangka di atas meja" | "Seekor anak anjing sedang makan burger keju di atas meja, gaya komik" |
"Sebuah mobil jip sedang bergerak di jalan" | "Sebuah mobil bergerak di jalan, gaya kartun" | "Sebuah mobil bergerak di atas salju" |