Hotshot-XL は、Stable Diffusion XL と連携して動作するようにトレーニングされた AI text-to-GIF モデルです。
Hotshot-XL は、微調整された SDXL モデルを使用して GIF を生成できます。これは次の 2 つのことを意味します。
既存の、または新しく微調整された SDXL モデルを使用して GIF を作成できます。
パーソナライズされた主題の GIF を作成したい場合は、独自の SDXL ベースの LORA をロードでき、Hotshot-XL の微調整について心配する必要はありません。通常、ビデオを見つけるよりもトレーニング データに適した画像を見つける方がはるかに簡単であるため、これは素晴らしいことです。また、すべての人の既存の LORA 使用法やワークフローにも適合することを願っています :) 詳細は、こちらをご覧ください。
Hotshot-XL は SDXL ControlNet と互換性があり、希望の構成/レイアウトで GIF を作成できます。以下の「ControlNet」セクションを参照してください。
Hotshot-XL は、8 FPS で 1 秒の GIF を生成するようにトレーニングされました。
Hotshot-XL はさまざまなアスペクト比でトレーニングされました。基本の Hotshot-XL モデルで最良の結果を得るには、512x512 の画像で微調整された SDXL モデルと併用することをお勧めします。 512x512 の解像度向けに微調整された SDXL モデルはここで見つけることができます。
ここで Hotshot-XL を試してみてください: https://www.hotshot.co
または、Hotshot-XL をローカルで自分で実行したい場合は、以下のセクションに進んでください。
Hotshot-XL を自分で実行している場合は、モデルをより柔軟に制御できるようになります。非常に簡単な例として、サンプラーを変更できます。これまでのところ、Euler-A を使用した場合に最良の結果が得られましたが、他のいくつかの方法を使用すると興味深い結果が見つかるかもしれません。
pip install virtualenv --upgrade virtualenv -p $(which python3) venv source venv/bin/activate pip install -r requirements.txt
# Make sure you have git-lfs installed (https://git-lfs.com) git lfs install git clone https://huggingface.co/hotshotco/Hotshot-XL
または https://huggingface.co/hotshotco/Hotshot-XL にアクセスしてください
注: データとトレーニングの効率を最大化するために、Hotshot-XL は解像度 512x512 付近のさまざまなアスペクト比でトレーニングされました。基本の Hotshot-XL モデルで最良の結果を得るには、512x512 解像度付近の画像で微調整された SDXL モデルと併用することをお勧めします。以下の解像度 512x512 の画像でトレーニングした SDXL モデルをダウンロードするか、独自の SDXL ベース モデルを持ち込むことができます。
# Make sure you have git-lfs installed (https://git-lfs.com) git lfs install git clone https://huggingface.co/hotshotco/SDXL-512
または https://huggingface.co/hotshotco/SDXL-512 にアクセスしてください。
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.gif"
期待されること:
プロンプト | サスカッチ スキューバ ダイビング | タバコを吸うラクダ | 化粧台の鏡に座って口紅を塗るドナルド・マクドナルド | ドレイクは唇をなめながら窓越しにカップケーキを見つめる |
---|---|---|---|---|
出力 |
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.gif" --spatial_unet_base="path/to/stabilityai/stable-diffusion-xl-base-1.0/unet" --lora="path/to/lora"
期待されること:
注: 以下の出力では DDIMScheduler を使用します。
プロンプト | カプリ島の太陽に向かって叫ぶSKSの人 | カエルのカーミットにキスするSKSの人 | シャンパンのグラスを掲げるタキシードを着たsksの人、背景に花火、HD、高品質、4K |
---|---|---|---|
出力 |
python inference.py --prompt="a girl jumping up and down and pumping her fist, hd, high quality" --output="output.gif" --control_type="depth" --gif="https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExbXNneXJicG1mOHJ2dzQ2Y2JteDY1ZWlrdjNjMjl3ZWxyeWFxY2EzdyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/YOTAoXBgMCmFeQQzuZ/giphy.gif"
デフォルトでは、Hotshot-XL は 8 つの等間隔フレームを使用してソース GIF からキーフレームを作成し、キーフレームをデフォルトのアスペクト比にトリミングします。より細かく制御するには、アスペクト比を変更し、フレーム レート/長さを変更する方法を学びます。
Hotshot-XL は現在、一度に 1 つの ControlNet モデルの使用をサポートしています。 Multi-ControlNet のサポートはエキサイティングです。
期待されること:
プロンプト | 2 つの親指を立てるピクサー スタイルの女の子、ハッピー、高品質、8k、3D、アニメーション ディズニー レンダリング | 「HELP」と書かれた看板を持つキアヌ・リーヴス、HD、高品質 | 笑う女性、HD、高品質 | バラク・オバマが手で虹を作り、その前に「MAGIC」という文字、青と白の縞模様のパーカーを着ている、HD、高品質 |
---|---|---|---|---|
出力 | ||||
コントロール |
注: 基本 SDXL モデルは、解像度 1024x1024 付近の画像を最適に作成するようにトレーニングされています。データとトレーニングの効率を最大化するために、Hotshot-XL は解像度 512x512 付近のアスペクト比でトレーニングされました。基本の Hotshot-XL モデルがトレーニングされたアスペクト比のリストについては、追加メモを参照してください。
SDXL と同様に、Hotshot-XL はアスペクト比バケット化を使用してさまざまなアスペクト比でトレーニングされており、ターゲット サイズやオリジナル サイズなどの SDXL パラメーターのサポートが含まれています。これは、基本の Hotshot-XL モデルだけを使用して、いくつかの異なるアスペクト比と解像度で GIF を作成できることを意味します。
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.gif" --width=<WIDTH> --height=<HEIGHT>
期待されること:
512x512 | 672x384 | 384x672 | |
---|---|---|---|
ギターを弾く猿、自然の映像、HD、高品質 |
デフォルトでは、Hotshot-XL は 8FPS で 1 秒の長さの GIF を生成するようにトレーニングされています。さまざまなフレーム レートと時間長で GIF を生成して試したい場合は、パラメータvideo_length
とvideo_duration
試してください。
video_length
フレーム数を設定します。デフォルト値は 8 です。
video_duration
出力 gif の実行時間をミリ秒単位で設定します。デフォルト値は 1000 です。
モデルは 8fps で 1 秒のビデオのみでトレーニングされたため、これらのパラメーターを変更すると、不安定な/「不安定な」結果が予想されることに注意してください。 Hotshot-XL を微調整することで、さまざまな時間の長さとフレーム レートに対する結果の安定性を向上させることができます。もしよろしければお知らせください。
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.gif" --video_length=16 --video_duration=2000
Hotshot-XL は、SDXL と並行して GIF を生成するようにトレーニングされています。画像だけを生成したい場合は、推論呼び出しでvideo_length=1
を設定するだけで済みます。そうすれば、ご想像のとおり、Hotshot-XL 時間層は無視されます。
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.jpg" --video_length=1
Hotshot-XL は次のアスペクト比でトレーニングされました。これらのアスペクト比の範囲外で GIF を確実に生成するには、目的のアスペクト比の解像度でビデオを使用して Hotshot-XL を微調整する必要があります。
アスペクト比 | サイズ |
---|---|
0.42 | 320×768 |
0.57 | 384×672 |
0.68 | 416×608 |
1.00 | 512×512 |
1.46 | 608×416 |
1.75 | 672×384 |
2.40 | 768×320 |
次のセクションは、追加のテキスト/ビデオ ペアを使用した Hotshot-XL 時間モデルの微調整に関するものです。パーソナライズされたコンセプト/主題の GIF を生成しようとしている場合は、Hotshot-XL を微調整するのではなく、独自の SDXL ベースの LORA をトレーニングし、それらをロードするだけをお勧めします。
fine_tune.py
スクリプトは、サンプルが次のように構造化されていることを想定しています。
fine_tune_dataset ├── sample_001 │ ├── 0.jpg │ ├── 1.jpg │ ├── 2.jpg ... ... │ ├── n.jpg │ └── prompt.txt
各サンプル ディレクトリには、 n 個のキー フレームと、プロンプトを含むprompt.txt
ファイルが含まれている必要があります。最後のチェックポイントは、 output_dir
に保存されます。検証 GIF を Weights & Biases に時々送信すると便利であることがわかりました。重みとバイアスで検証を使用することを選択した場合は、 validate_every_steps
パラメーターを使用して検証を実行する頻度を設定できます。
accelerate launch fine_tune.py --output_dir="<OUTPUT_DIR>" --data_dir="fine_tune_dataset" --report_to="wandb" --run_validation_at_start --resolution=512 --mixed_precision=fp16 --train_batch_size=4 --learning_rate=1.25e-05 --lr_scheduler="constant" --lr_warmup_steps=0 --max_train_steps=1000 --save_n_steps=20 --validate_every_steps=50 --vae_b16 --gradient_checkpointing --noise_offset=0.05 --snr_gamma --test_prompts="man sits at a table in a cafe, he greets another man with a smile and a handshakes"
Hotshot-XL の改善には、さまざまな方法が考えられます。例えば:
より大きなフレーム レートで Hotshot-XL を微調整して、より長い/より高いフレーム レートの GIF を作成する
Hotshot-XL をより大きな解像度で微調整して、より高解像度の GIF を作成する
高解像度の GIF を生成するための潜在的なアップスケーラーの時間レイヤーのトレーニング
より一貫性のある、より長い GIF を実現するために、画像条件付き「フレーム予測」モデルをトレーニングする
出力のちらつき/ディザリングを軽減するための VAE の時間層のトレーニング
Multi-ControlNet のサポートにより、GIF 生成の制御を強化
GIF 生成をさらに制御するためのさまざまな ControlNet モデルのトレーニングと統合 (表情をより細かく制御できれば非常に便利です)
Hotshot-XL を AITemplate に移動して推論時間を短縮
私たちは ?オープンソース コミュニティからの貢献!これらの改善やその他のことに取り組むことに興味がある場合は、問題または PR でお知らせください。
@software{Mullan_Hotshot-XL_2023, author = {Mullan, John and Crawbuck, Duncan and Sastry, Aakash}, license = {Apache-2.0}, month = oct, title = {{Hotshot-XL}}, url = {https://github.com/hotshotco/hotshot-xl}, version = {1.0.0}, year = {2023} }
Text-to-Video モデルは急速に改善されており、Hotshot-XL の開発は次の素晴らしい作品とチームから多大な影響を受けています。
SDXL
潜在能力を調整する
メイク・ア・ビデオ
アニメイトディフ
イマージェンビデオ
このモデル/コードベースのリリースが、コミュニティがオープンかつ責任ある方法でこれらのクリエイティブ ツールを推進し続けるのに役立つことを願っています。