如何使用穩定擴散製作 AI GIF 和視頻
已發表: 2023-02-20Stable Diffusion 能夠生成的不僅僅是靜止圖像。 通過一些內置的工具和一個特殊的擴展,你可以毫不費力地得到非常酷的 AI 視頻。 下面介紹如何使用 Stable Diffusion 為動畫 GIF 或實際視頻文件生成幀。
穩定擴散能生成視頻嗎?
使用 Inpaint 為圖像製作動畫
第 1 步:獲取圖像及其提示
第 2 步:遮蓋零件以使用 InPaint 製作動畫
第 3 步:生成您的框架
第 4 步:批量升級您的相框(可選)
第 5 步:在 GIF 或視頻製作器中製作動畫幀
使用 Deforum 生成視頻
第 1 步:安裝 Deforum 擴展
第 2 步:寫下您的提示
第 3 步:調整 Deforum 設置
第 4 步:生成您的視頻
穩定擴散能生成視頻嗎?
雖然 AI 生成的電影仍然是一個新興領域,但在技術上可以使用 Stable Diffusion 製作一些簡單的動畫,無論是作為 GIF 還是實際的視頻文件。 但是有一些限制。
因為 img2img 可以輕鬆生成特定圖像的變體,所以 Stable Diffusion 非常適合快速製作一系列動畫幀,尤其是循環幀。 想一想從火中升起的火焰、車輪在汽車上旋轉或噴泉中飛濺的水。 實際用途可能是為某些 RPG 藝術品賦予逼真的氛圍:
穩定擴散
您甚至可以根據真實圖像而不是合成圖像製作視頻。 在這裡,我拍了一張正在澆水的植物的照片,然後點擊幾下,為水流製作了動畫:
Jordan Gloor / 穩定擴散
如果您想為一個對象設置動畫,使其從 A 點移動到 B 點,那麼對於穩定擴散來說這是一項艱鉅的任務(至少目前如此)。 您可能會花費大量時間調整提示和設置,然後仔細研究大量輸出以找到最佳幀並將它們按正確順序放置。 到那時,您不妨打開 Adobe Illustrator 並開始手動製作動畫。
儘管如此,您可以使用基本的 Stable Diffusion 設置和您選擇的用於將動畫中的幀拼接在一起的另一種工具來製作一些很酷、簡單的動畫。 還有一個名為 Deforum 的項目使用 Stable Diffusion 來創建看起來非常有趣的“變形”動畫。 它會輸出 MP4 視頻,因此不需要外部工具,它甚至可以讓您添加音頻。 我們將向您展示這兩種方法的基礎知識。
注意:出於本文的目的,我們假設您已經為 Stable Diffusion 安裝了圖形界面,特別是 AUTOMATIC1111 的 Stable Diffusion 網絡用戶界面。 與標準的命令行安裝相比,它使生成圖像的方式更加容易,並附帶了大量方便的工具和附加功能。
使用 Inpaint 為圖像製作動畫
使用 img2img 工具 Inpaint,您可以突出顯示要製作動畫的圖像部分並生成它的多個變體。 然後將它們放入 GIF 或視頻製作器中,並將幀保存為動畫。
第 1 步:獲取圖像及其提示
首先將要設置動畫的圖像拖放到 img2img 工具的 Inpaint 選項卡中。 如果您還沒有生成一個,請花一些時間寫一個好的提示,這樣您就可以獲得一張好的入門照片。 您還可以導入自己拍攝或繪製的圖像。
如果您要導入不是使用 Stable Diffusion 生成的圖像,您仍然需要適當的提示來生成變體,因此請單擊 Img2Img 頁面頂部的“Interrogate CLIP”。 這將根據 Stable Diffusion認為您的圖像包含的內容生成啟動提示。 通過添加任何其他重要詳細信息來完成提示。
對於我們的指南,我們生成了夜空下機器人的 512×512 圖像,我們想要提供延時動畫,流星和星係經過。
如果您想精確地進行操作,可以使用我們使用的提示重新創建它:
一個機器人站在田野裡,在流星雨、流星、星系、宇宙、銀河、超現實、高度詳細、4k uhd 期間仰望夜空
這些是我們使用的設置:
檢查點:穩定擴散2.0
採樣方法: DPM++ SDE
採樣步數: 20
CFG比例: 5
種子: 4177542269
第 2 步:遮蓋零件以使用 InPaint 製作動畫
圖像和提示就位後,在 Inpaint 工具中,使用畫筆遮蓋(遮蓋)要製作動畫的圖像的每個部分。 留下任何你想要靜態的東西。
在我們的示例中,我們覆蓋了大部分天空。 我們在機器人周圍留了一點墊子,因為在我們的測試中,如果我們靠得太近,穩定擴散有時會給機器人增加天線和其他附屬物。
提示:您可以通過單擊畫布右上角的畫筆按鈕,使用滑塊調整 Inpaint 畫筆大小。
第 3 步:生成您的框架
現在您已經遮蓋了您想要看到移動的圖像的每個部分,是時候生成我們的動畫幀了。 但首先,您需要確保 img2img 具有正確的設置。 它們可能令人困惑,因此我們將解釋其中一些的含義以及您可能想要或可能不想調整它們的原因:
- 蒙版模式:Inpaint Masked – 這確保覆蓋的所有內容都被更改,而不是相反。 如果出於某種原因,您想要改為修改未屏蔽的部分,請將其更改為“Inpaint Not Masked”。
- Masked Content: Original – 這確保 Stable Diffusion 在生成變化時能夠看到並考慮現有圖像。 否則,它會將屏蔽的內容視為空白或隨機畫布。
- Inpaint Area: Whole Picture——這會強制 Stable Diffusion 在將每個幀與原始圖像集成之前為每個幀生成一個全新的圖像。 切換到“Only Masked”可能會加快生成速度,但也可能會給您帶來更糟糕的結果。
- 採樣方法:DPM++ SDE – 這與我們用於生成原始圖像的採樣方法相同,我們堅持使用它以確保外觀一致。 如果不知道用什麼,“Euler a”是一個全能的好選擇。
- 批次計數:60 – 這是您要生成的圖像數量。 您可能需要更多或更少,具體取決於您希望動畫序列的速度和長度。
- CFG 等級:5 – 從某種意義上說,CFG 等級決定了 Stable Diffusion 的創作自由度。 數字越高,Stable Diffusion 將越嚴格地嘗試遵循您的提示。 增加它並獲得好的結果需要有一個非常好的提示。
- 去噪強度:0.3——可能是這個項目最重要的設置,去噪比例決定了穩定擴散對原始圖像的改變程度。 您可能希望將其保持在 0.2 或 0.3 左右,因為太多的幀到幀變化會破壞動畫。
- 種子:-1 – 這告訴穩定擴散以隨機種子開始。 我們不建議重複使用原始圖像中的種子,因為這會減少您獲得的變化量(如果有的話)。
完成所有設置後,單擊“生成”並坐下來,讓 Stable Diffusion 為您繪製動畫幀。 您可以在 Stable Diffusion 目錄的/outputs/img2img-images
文件夾中找到它們。 如果您不喜歡結果,請調整設置(可能從去噪強度和採樣步驟開始)並重試。
第 4 步:批量升級您的相框(可選)
如果您打算創建高清視頻,請記住將所有新生成的幀升級到您想要的分辨率。 單擊“發送到 Extras”開始。
在 Extras 中,切換到“批處理”選項卡。
將“調整大小”比例調整為您希望調整大小的次數(設置為 2 會將 512×512 圖像更改為 1024×1024 圖像)。 或者,從“縮放依據”切換到“縮放至”並設置特定分辨率。 同時將“Upscaler 1”設置為您選擇的升頻器。 我們使用 R-ESRGAN 4x+ 獲得了足夠好的結果,但請隨意進行實驗,看看哪個能最好地處理您的圖像。
然後點擊“生成”,Stable Diffusion 將為您提供每個幀的高分辨率版本,保存在您的/outputs/extras
文件夾中。
第 5 步:在 GIF 或視頻製作器中製作動畫幀
現在你已經有了你的幀,是時候將它們縫合在一起並創建你的最終動畫了。 您可以使用許多工具來執行此操作,包括免費的專用網站,如 Ezgif 和 flixier,它們易於使用且具有許多微調控件。 但是,請記住,這些網站可以看到您上傳的所有內容,因此不要向他們提供任何您不滿意的信息。
雖然這些網站的解釋很清楚,但我們將演示如何使用免費的離線照片編輯工具 GIMP 製作 GIF。 如果您想要一個視頻文件,請改用 Kdenlive 或類似的視頻編輯器——只需確保調整設置,以便將所有幀導入為一秒或更短的剪輯,具體取決於您想要的每秒幀數。
首先,下載 GIMP 並將其安裝到您的計算機上(如果您還沒有的話)。 啟動它,然後轉到“文件”>“作為圖層打開”。
找到您生成的幀所在的位置,然後一次選擇所有幀,然後單擊“打開”。 (按住 Shift 鍵可以快速選擇多個文件。)GIMP 會將您的所有圖像作為一個單獨的圖層導入到一個畫布上。 我們想要這個是因為 GIMP 的 GIF 生成工作方式是從下到上遍歷每一層,將每個連續的層視為動畫中的下一幀。
現在是有趣的部分。 要觀看 GIF 預覽,請轉到“濾鏡”>“動畫”>“播放”。
按空格鍵播放和暫停 GIF。 如果幀過快或過慢,請調整播放對話框底部的 FPS,然後單擊頂部的刷新按鈕以使用新的幀速率重新加載預覽。
一旦動畫看起來不錯,就可以生成 GIF 文件了。 關閉預覽並單擊文件 > 導出為。 當您輸入文件保存名稱時,將.gif
擴展名添加到末尾,以便 GIMP 知道您需要 GIF。
在出現的 GIF 導出對話框中,確保選中“作為動畫”框。 如果您想要不同的幀速率,也可以調整幀之間的毫秒數。 一秒鐘有 1000 毫秒,因此 100 毫秒將使您在 10 FPS 左右正確。 最後,單擊“導出”。
繁榮,你有完整的動畫 GIF。
使用 Deforum 生成視頻
如果您想使用 Stable Diffusion 創建更有趣的動畫,並讓它輸出視頻文件而不是一堆幀供您使用,請使用 Deforum。 這是一個圖像合成項目,帶有可用於 Stable Diffusion Web UI 的擴展,可讓您直接生成 MP4 視頻文件,甚至包括音頻。 這是一個非常強大和復雜的工具,有很多設置可供試驗,包括相機平移和縮放、多個提示和視頻導入。
出於我們的目的,我們將向您介紹生成相當簡單但有趣的動畫的基礎知識。
第 1 步:安裝 Deforum 擴展
要獲取 Deforum 擴展,請打開命令提示符並將目錄更改為您的stable-diffusion-web-ui
文件夾。 然後使用這個 git clone 命令在你的擴展文件夾中安裝 Deforum。
git clone https://github.com/deforum-art/deforum-for-automatic1111-webui extensions/deforum
像往常一樣啟動 Stable Diffusion web UI,然後打開界面中現在的 Deforum 選項卡。
提示: Deforum 擴展自帶默認設置,因此您可以立即點擊“生成”按鈕來創建兔子變身為貓、椰子和榴蓮的視頻。 很酷!
第 2 步:寫下您的提示
您可能習慣於使用 Stable Diffusion 編寫單個提示,但 Deforum 允許您編寫多個“預定”提示,這意味著在您選擇的動畫中的任何時間點,它都會切換為根據計劃中的下一個提示生成幀。
單擊“提示”選項卡並將現有提示更改為您想要的任何內容,保持括號和選項卡結構不變。 對於我們的示例,我們將使用這組提示:
{ “0”:“流星雨期間,機器人站在夜空下,流星,星系,宇宙,銀河,超逼真,高度詳細,4k uhd”, “40”:“一個空間站在流星雨期間飛過太空,超逼真,非常詳細”, “80”:“超新星爆炸,色彩鮮豔,超逼真,細節豐富” }
那麼這些數字是什麼意思呢? 默認情況下,Deforum 為您的動畫生成 120 幀,我們將這組幀分成三部分。 0
表示第一幀,因此它和之後的所有幀都是第一個提示的 im2img 變體。 然後在第 40 幀,Stable Diffusion 將開始根據我們的第二個提示進行變化。 在 80 時,它切換到第三個。 您可以根據需要添加任意數量的提示更改,並根據需要調整關鍵幀選項卡上的最大幀限制。
第 3 步:調整 Deforum 設置
您可能已經註意到 Deforum 中涉及大量設置,但我們將通過一些設置來幫助您入門。 首先,在“運行”選項卡中,您會找到許多典型的 Stable Diffusion 設置。 重命名批次,輸入你想要開始的種子(我們正在為我們的機器人重複使用那個),並將採樣器更改為你想要的。
在關鍵幀選項卡中,您可以調整動畫“相機”的運動。 它默認設置為間隔縮放,但我們想要添加垂直“平移”運動,因此我們將添加0:(-2), 100:(4)
到“Translation Y”幀。 這告訴 Deforum 將第一幀視為 Y 軸上的像素 -2,然後在第 100 幀移動到像素 4。隨著動畫的進行,這將使我們稍微向上平移。
在“輸出”選項卡中,我們將選中“製作 GIF”框,這將在 MPEG 視頻文件之外為我們提供一個 GIF 文件。 這也是您使用“添加音軌”和“音軌路徑”設置添加音頻的地方(如果有的話)。
第 4 步:生成您的視頻
最後,點擊那個大的“生成”按鈕。 由於 Deforum 正在創建和拼接許多幀,這需要時間,所以在等待時喝杯咖啡。 完成後,您會在/outputs/img2img-images
目錄中找到 MPEG 文件、GIF 版本、每個單獨的幀以及您在批處理名稱下使用的設置讀數。
這是我們的提示得到的:
這不是夏季大片,但它仍然有點迷人! 查看官方 Deforum 快速入門指南,了解您可以調整的所有其他旋鈕和轉盤。
如果您正在尋找其他很酷的 AI 項目,請了解如何使用 Stable Diffusion 生成 Minecraft 紋理包或開始使用 ChatGPT,以及使用 ChatGPT 可以做的令人驚訝的事情。