ビデオジェネレーターのテキストからビデオへの変換
1.0.0
Tune-A-Video: テキストからビデオへの生成のための画像拡散モデルのワンショット調整
pip install -r requirements.txt
[安定した拡散]安定した拡散は、任意のテキスト入力が与えられた場合にフォトリアリスティックな画像を生成できる潜在的なテキストから画像への拡散モデルです。事前トレーニングされた安定拡散モデルは、Hugging Face からダウンロードできます (安定拡散 v1-4、v2-1 など)。さまざまなスタイル (Modern Disney、Redshift など) でトレーニングされた、微調整された安定拡散モデルを使用することもできます。
[DreamBooth] DreamBooth は、被写体のわずか数枚の画像 (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" )
入力ビデオ | 出力ビデオ | |
「男がスキーをしている」 | 「ワンダーウーマンはスキーをしています」 | 「小さな女の子がスキーをしています」 |
「ウサギがスイカを食べています」 | 「猫がテーブルの上のスイカを食べています」 | 「子犬がテーブルの上でチーズバーガーを食べている、漫画風」 |
「ジープ車が道路を走っています」 | 「車が道路を走っている、漫画風」 | 「雪の上を車が走っている」 |