Stable Diffusion を使用して 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 で生成された映画はまだ初期の分野ですが、GIF または実際のビデオ ファイルとして、Stable Diffusion を使用していくつかの単純なアニメーションを作成することは技術的に可能です。 ただし、制限があります。
img2img を使用すると特定の画像のバリエーションを簡単に生成できるため、Stable Diffusion は、アニメーション、特に周期的なフレームの束をすばやく作成するのに適しています。 火の炎、車の車輪の回転、噴水の水しぶきなどを想像してみてください。 実際の用途としては、一部の RPG アートワークにリアルな雰囲気を与えることができます。
安定拡散
合成画像ではなく、実際の画像に基づいてビデオを作成することもできます。 ここでは、水やりをしている植物の写真を撮り、数回クリックするだけで、水の流れをアニメーション化できます。
ジョーダン・グロール / ステイブル・ディフュージョン
ポイント A からポイント B に移動するようにオブジェクトをアニメートしたい場合、それは (少なくとも今のところ) 安定した拡散の難しい注文です。 プロンプトと設定の微調整に多くの時間を費やし、大量の出力を調べて最適なフレームを見つけて正しい順序に配置することになるでしょう。 その時点で、Adobe Illustrator を分解して、手でアニメーション化を開始することもできます。
それでも、基本的な Stable Diffusion のセットアップと、アニメーションでフレームをつなぎ合わせる別のツールを使用して、クールでシンプルなアニメーションを作成できます。 Stable Diffusion を使用して非常に興味深い「モーフィング」アニメーションを作成する Deforum というプロジェクトもあります。 MP4 ビデオを吐き出すので、外部ツールは必要なく、オーディオを追加することもできます。 両方の方法の基本を紹介します。
注:この記事では、Stable Diffusion のグラフィカル インターフェイス、特に AUTOMATIC1111 の Stable Diffusion Web UI が既にインストールされていることを前提としています。 標準のコマンド ライン インストールと比較して、イメージの生成がはるかに簡単になり、便利なツールや追加機能が多数付属しています。
Inpaint を使用して画像をアニメーション化する
img2img ツール Inpaint を使用して、アニメーション化する画像の部分を強調表示し、そのいくつかのバリエーションを生成できます。 次に、それらを GIF またはビデオ メーカーにドロップし、フレームをアニメーションとして保存します。
ステップ 1: 画像とそのプロンプトを取得する
まず、アニメーション化したい画像を img2img ツールの Inpaint タブにドロップします。 まだ生成されていない場合は、良いスターター写真が得られるように、時間をかけて適切なプロンプトを作成してください。 自分で撮影したり描いたりした画像をインポートすることもできます。
Stable Diffusion で生成していない画像をインポートする場合でも、バリエーションを生成するための適切なプロンプトが必要になるため、Img2Img ページの上部にある [Interrogate CLIP] をクリックします。 これにより、Stable Diffusion がイメージに含まれていると判断した内容に基づいて、スターター プロンプトが生成されます。 その他の重要な詳細を追加して、プロンプトを完了します。
私たちのガイドのために、夜空の下でロボットの 512 x 512 の画像を生成しました。流れ星や銀河が通過するタイムラプスのようなアニメーションを提供したいと考えています。
正確にフォローしたい場合は、使用したプロンプトで再作成できます。
流星群、流れ星、銀河、宇宙、天の川、超現実的、非常に詳細な、4k uhd の間に夜空を見上げる野原に立つロボット
使用した設定は次のとおりです。
チェックポイント:安定拡散 2.0
サンプリング方法: DPM++ SDE
サンプリングステップ: 20
CFG スケール: 5
種: 4177542269
ステップ 2: InPaint でパーツをマスクしてアニメーション化する
画像とプロンプトを配置したら、インペイント ツールでペイントブラシを使用して、アニメーション化する画像のすべての部分をマスク (覆い隠し) ます。 静的にしたいものはすべて、覆われていないままにしておきます。
この例では、空のほとんどをカバーしています。 私たちのテストでは、ロボットに近づきすぎると、Stable Diffusion がアンテナやその他の付属物をロボットに追加することがあったため、ロボットの周りに少しクッションを残しました。
ヒント:キャンバスの右上隅にあるブラシ ボタンをクリックすると、スライダーでインペイント ブラシのサイズを調整できます。
ステップ 3: フレームを生成する
動きを見せたい画像のすべての部分をマスクしたので、今度はアニメーションのフレームを生成します。 ただし、最初に、img2img が適切に設定されていることを確認する必要があります。 それらは混乱を招く可能性があるため、それらのいくつかの意味と、それらを調整する必要がある場合としない場合がある理由を説明します。
- マスク モード: Inpaint Masked – これにより、カバーされているすべてが変更され、その逆ではないことが保証されます。 なんらかの理由で、代わりにマスクされていない部分を変更したい場合は、「Inpaint Not Masked」に変更します。
- マスクされたコンテンツ: オリジナル– これにより、Stable Diffusion がバリエーションを生成するときに既存の画像を認識して考慮に入れることが保証されます。 それ以外の場合、マスクされたコンテンツは空白またはランダム化されたキャンバスと見なされます。
- Inpaint Area: Whole Picture – これにより、元の画像と統合する前に、Stable Diffusion がフレームごとにまったく新しい画像を生成するように強制されます。 「Only Masked」に切り替えると、生成が高速化される可能性がありますが、結果が悪化する可能性もあります。
- サンプリング方法: DPM++ SDE – これは、元の画像を生成するために使用したのと同じサンプリング方法であり、一貫した外観を確保するためにこの方法を採用しています。 何を使えばいいかわからない場合は、「オイラー a」が万能です。
- バッチ数: 60 – これは、生成する画像の数です。 アニメーション シーケンスの速度と長さに応じて、必要な量が増減する場合があります。
- CFG スケール: 5 – CFG スケールは、ある意味で、Stable Diffusion が持つ創造的な自由度を決定します。 数値が高いほど、Stable Diffusion はプロンプトに従おうとします。 それを増やして良い結果を得るには、非常に良いプロンプトが必要です。
- ノイズ除去強度: 0.3 – おそらくこのプロジェクトで最も重要な設定です。ノイズ除去スケールは、Stable Diffusion が元の画像をどの程度変更するかを決定します。 フレーム間の変更が多すぎるとアニメーションが台無しになる可能性があるため、おそらく 0.2 または 0.3 程度に抑える必要があります。
- Seed: -1 – Stable Diffusion にランダムなシードで開始するように指示します。 元の画像のシードを再利用することはお勧めしません。これにより、得られる変動の量が減少するためです (存在する場合)。
すべての設定が整ったら、[生成] をクリックして、Stable Diffusion がアニメーション フレームを描画するまで座ってください。 これらは、Stable Diffusion ディレクトリの/outputs/img2img-images
フォルダーにあります。 結果が気に入らない場合は、設定を微調整して (おそらく、ノイズ除去の強度とサンプリング ステップから始めます)、もう一度試してください。
ステップ 4: フレームの一括アップスケール (オプション)
高解像度ビデオを作成する予定がある場合は、新しく生成されたすべてのフレームを必要な解像度にアップスケールすることを忘れないでください。 「エクストラに送信」をクリックして開始します。
Extras 内で、[Batch Process] タブに切り替えます。
「サイズ変更」スケールをサイズ変更する回数に調整します (2 に設定すると、512×512 画像が 1024×1024 画像に変更されます)。 または、「倍率」から「倍率」に切り替えて、特定の解像度を設定します。 また、「Upscaler 1」を任意のアップスケーラーに設定します。 R-ESRGAN 4x+ で十分な結果が得られましたが、自由に実験して、どれが画像を最もよく処理できるかを確認してください。
次に「Generate」をクリックすると、Stable Diffusion によって各フレームの高解像度バージョンが提供され、 /outputs/extras
フォルダーに保存されます。
ステップ 5: GIF またはビデオ メーカーでフレームをアニメーション化する
フレームが完成したら、それらをつなぎ合わせて最終的なアニメーションを作成します。 Ezgif や flixier などの無料の専用 Web サイトなど、使いやすく微調整のコントロールが豊富なツールが多数あります。 ただし、これらの Web サイトはあなたがアップロードしたものすべてを見ることができるので、世界に知られていることに慣れていないものは何も提供しないでください。
これらの Web サイトは一目瞭然ですが、無料のオフライン写真編集ツール GIMP を使用して GIF を作成する方法をデモンストレーションします。 ビデオ ファイルが必要な場合は、代わりに Kdenlive または同様のビデオ エディターを使用してください。必要な 1 秒あたりのフレーム数に応じて、すべてのフレームが 1 秒以下のクリップとしてインポートされるように、設定を微調整してください。
まず、GIMP をダウンロードし、コンピューターにインストールします (まだインストールしていない場合)。 それを起動し、[ファイル] > [レイヤーとして開く] に移動します。
生成したフレームの場所を見つけて、[開く] をクリックする前にすべてを一度に選択します。 (複数のファイルをすばやく選択するには、Shift キーを押したままにします。) GIMP は、すべての画像を 1 つのキャンバスに別のレイヤーとしてインポートします。 これが必要なのは、GIMP の GIF 生成の仕組みが、すべてのレイヤーを下から上に見ていき、連続する各レイヤーをアニメーションの次のフレームとして扱うためです。
今が楽しい部分です。 GIF のプレビューを見るには、[フィルター] > [アニメーション] > [再生] に移動します。
スペースバーを押して、GIF を再生および一時停止します。 フレームが速すぎたり遅すぎたりする場合は、再生ダイアログの下部にある FPS を調整し、上部にある更新ボタンをクリックして、新しいフレーム レートでプレビューをリロードします。
アニメーションに問題がなければ、GIF ファイルを生成します。 プレビューを閉じて、[ファイル] > [エクスポート] をクリックします。 ファイルの保存名を入力するときは、拡張子.gif
を末尾に追加して、GIF が必要であることを GIMP が認識できるようにします。
表示される GIF エクスポート ダイアログ ボックスで、[アニメーションとして] ボックスがオンになっていることを確認します。 別のフレーム レートが必要な場合は、フレーム間のミリ秒数も調整します。 1 秒は 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 クローン https://github.com/deforum-art/deforum-for-automatic1111-webui 拡張機能/deforum
Stable Diffusion Web UI を通常どおり起動し、インターフェイスにある Deforum タブを開きます。
ヒント: Deforum 拡張機能にはデフォルトが用意されているので、すぐに [生成] ボタンをクリックして、ウサギが猫、次にココナッツ、そしてドリアンにモーフィングするビデオを作成できます。 かなりクール!
ステップ 2: プロンプトを作成する
Stable Diffusion を使用して個々のプロンプトを作成することに慣れているかもしれませんが、Deforum では「スケジュールされた」複数のプロンプトを作成できます。つまり、アニメーションのどの時点を選択しても、スケジュールの次のプロンプトに基づいてフレームの生成に切り替わります。
「プロンプト」タブをクリックし、ブラケットとタブ構造を維持したまま、既存のプロンプトを任意のものに変更します。 この例では、次の一連のプロンプトを使用します。
{ "0": "流星群、流れ星、銀河、宇宙、天の川、超リアル、非常に詳細な、4k uhd の間にロボットが夜空の下に立っています", "40": "宇宙ステーションは流星群の最中に宇宙を飛行します。超リアルで非常に詳細です", "80": "超新星爆発、鮮やかな色、超リアル、非常に詳細" }
では、これらの数字は何を意味するのでしょうか。 デフォルトでは、Deforum はアニメーション用に 120 フレームを生成し、そのフレームのセットを 3 つの部分に分割しています。 0
最初のフレームを意味するため、それ以降のすべてのフレームは最初のプロンプトの im2img バリエーションになります。 次に、フレーム 40 で、Stable Diffusion が 2 番目のプロンプトに基づいてバリエーションを作成し始めます。 80 で 3 番目に切り替わります。 プロンプトの変更を必要な数だけ追加し、必要に応じて [キーフレーム] タブで最大フレーム制限を調整できます。
ステップ 3: Deforum 設定を調整する
Deforum には大量の設定が含まれていることにお気付きかもしれませんが、最初にいくつかの設定について説明します。 まず、「Run」タブに、典型的な Stable Diffusion 設定の多くが表示されます。 バッチの名前を変更し、開始するシードを入力し (ロボット用に再利用しています)、サンプラーを必要なものに変更します。
[キーフレーム] タブでは、アニメーションの「カメラ」の動きを調整できます。 デフォルトでは一定間隔でズームするように設定されていますが、垂直方向の「パン」の動きを追加したいので、「移動 Y」フレームに0:(-2), 100:(4)
を追加します。 これにより Deforum は、最初のフレームを Y 軸のピクセル -2 にあるものとして扱い、フレーム 100 までにピクセル 4 に移動します。これにより、アニメーションが進行するにつれて上向きにわずかにパンします。
[出力] タブで、MPEG ビデオ ファイルに加えて GIF ファイルを作成する [GIF を作成] ボックスをオンにします。 また、「サウンドトラックの追加」および「サウンドトラック パス」設定がある場合は、ここにオーディオを追加します。
ステップ 4: ビデオを生成する
最後に、その大きな「生成」ボタンを押します。 Deforum は多くのフレームを作成してステッチしているため、時間がかかるため、待っている間にコーヒーを飲みます。 完了すると、 /outputs/img2img-images
ディレクトリ内のバッチ名の下に、MPEG ファイル、GIF バージョン、および個々のフレームと使用した設定の読み出しが表示されます。
これが私たちのプロンプトが私たちにもたらしたものです:
夏の大ヒット作ではありませんが、それでも魅力的です! 公式の Deforum クイック スタート ガイドをチェックして、調整可能な他のすべてのノブとダイヤルについて学習してください。
他のクールな AI プロジェクトを探している場合は、Stable Diffusion を使用して Minecraft テクスチャ パックを生成する方法や、ChatGPT を使い始める方法、さらに ChatGPT でできる驚くべきことを学んでください。