Hotshot-XL 是一種 AI 文字轉 GIF 模型,經過訓練可與 Stable Diffusion XL 一起使用。
Hotshot-XL 可以使用任何經過微調的 SDXL 型號來產生 GIF。這意味著兩件事:
您將能夠使用您可能想要使用的任何現有或新微調的 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人舉著一杯香檳,背景煙火,高清,高品質,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 目前支援一次使用一個 ControlNet 模型;支援 Multi-ControlNet 將是令人興奮的。
期待什麼:
迅速的 | 皮克斯風格的女孩豎起兩個大拇指,快樂,高品質,8k,3d,動畫迪士尼渲染 | 基努李維舉著寫著「幫助」的牌子,高清,高品質 | 一個女人在笑,高清,高品質 | 歐巴馬用手製作彩虹,前面有「MAGIC」字樣,身穿藍白條紋連帽衫,高清,高品質 |
---|---|---|---|---|
輸出 | ||||
控制 |
注意:基本 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 | |
---|---|---|---|
一隻猴子彈吉他,自然鏡頭,高清,高品質 |
預設情況下,Hotshot-XL 經過訓練可產生 1 秒長、8FPS 的 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 很有用。如果您選擇使用權重和偏差進行驗證,則可以使用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 生成
訓練和整合不同的 ControlNet 模型以進一步控制 GIF 生成(更精細的面部表情控制會非常酷)
將 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} }
文字轉視訊模型正在快速改進,Hotshot-XL 的開發受到了以下令人驚嘆的作品和團隊的極大啟發:
SDXL
調整你的潛力
製作影片
動畫差異
影像影片
我們希望發布這個模型/程式碼庫有助於社群以開放和負責任的方式繼續推動這些創意工具的發展。