見出し画像

Deforum v05 クイックガイド

モデルのダウンロード (自動)

Deforum では、モデルの自動ダウンロード機能が追加されました。モデルを手動でダウンロードして正しいフォルダに配置する必要がなくなりました。すべてのモデル ウェイトを選択すると、huggingfaceからダウンロードされ、適切なモデル フォルダに配置されます。

Deforum 内で公式のモデル ウェイトをダウンロードするには、huggingfaceにアカウントを作成し、ノートブック内でユーザー名とアクセス トークンを提供する必要があります。

プロファイル > 設定 > アクセス トークン > 新しいトークンに移動して、アクセス トークンを作成できます。


Deforum でプロンプトが表示されたら、ユーザー名とアクセス トークンを入力します。その後、ノートブックはモデルのダウンロードを試みます。モデルの自動ダウンロードでエラーが発生した場合は、再試行してください。colab セッションがタイムアウトすることがあります。

Deforum v05 には、自動ダウンロード用に構成された次のモデルがあります。

Official Stable Diffusion Weights (huggingface ログインとトークンが必要)

  • 安定拡散 v1.4

  • 安定拡散 v1.3

  • 安定拡散 v1.2

  • 安定拡散 v1.1

非公式 ノスールロボ ディフュージョン

  • ロボ拡散-v1.ckpt

非公式 Waifu 拡散 v3

  • モデル-epoch05-float16.ckpt

モデルのダウンロード (マニュアル)

huggingfaceでアカウントを作成し、 .ckpt ファイルをダウンロードして、ファイルを Google ドライブに配置します。
Deforum Stable Diffusion ノートブックでは、モデルの重み (~4GB) をダウンロードし、モデルの重みを Colab ノートブックに正しくリンクする必要があります。次の手順では、モデルの重みをダウンロードして Google ドライブにアップロードする方法について説明します。


  1. https://huggingface.coにアクセスし、サインアップしてアカウントを作成します


  1. アカウントにサインインしたら、https://huggingface.co/CompVisに移動します。ここには、「-original」のマークが付いたダウンロード可能なすべてのチェックポイントが表示されます。


  1. 「CompVis」ライブラリ ( stable-diffusion-v-1-4-original )から「-original」モデルを選択し、重みをダウンロードします。利用規約に同意する必要があります。この記事の執筆時点では、 sd-v1-4.ckptが最適なモデルです。


  1. モデルがコンピューターにダウンロードされるのを待っている間に、Deforum ノートブックを開き、再生ボタンをクリックして [モデルと出力パス] セルを実行します。このセルを実行すると、正しいフォルダーとファイル構造で Google ドライブが構成されます。または、Google ドライブに次のフォルダーを作成することもできます。


  1. ダウンロードが完了したら、モデルの重みをこのモデル フォルダーにアップロードする必要があります。

  1. 行く準備ができました!

ノートブックの概要

https://colab.research.google.com/github/deforum/stable-diffusion/blob/main/Deforum_Stable_Diffusion.ipynb
1. セットアップ

NVIDIA GPU:

  • コードを実行すると、割り当てられた GPU に関する情報が表示されます。

このセルは、実行セッションで接続した GPU に関する情報を提供します。一般に、拡散はイメージのレンダリングに VRAM (ビデオ RAM) を多用します。Colab GPU ティア リストを最高から最低まで: A100 (40GB VRAM)、V100 (16GB VRAM)、P100 (16GB VRAM)、T4、K80。

モデルと出力パス:

  • models_path: -アップロードされたモデルをランタイムで検索します

  • output_path: -イメージ/ファイルをランタイム内の場所に転送します

Google ドライブ パス変数 (オプション):

  • mount_google_drive 、選択すると、ランタイムではなくドライブへのパスをリダイレクトします

  • models_path_gdrive 、Google ドライブ上のモデルの場所
    (デフォルトは /content/drive/MyDrive/AI/models)

  • output_path_gdrive 、Googleドライブに出力する画像/ファイルの場所

ノートブックは、次のパス変数が定義されていることを想定しています: models_path および output_path。これらの場所は、それぞれ Stable Diffusion .pth モデル ウェイトにアクセスし、拡散出力レンダリングを保存するために使用されます。ローカルまたは Google ドライブでパスを使用するオプションがあります。Google ドライブのパスを使用する場合は、mount_google_drive を True にする必要があります。Gdrive をマウントすると、ドライブにアクセスして画像の読み取り/書き込み/保存を行うよう求められます。

セットアップ環境:

  • setup_enviroment 、チェックすると、pip/installs を処理する環境を構築します

  • print_subprocess、プルおよびビルドされているアイテムを表示することを選択します

このセルを実行すると、github リポジトリがダウンロードされ、python ライブラリがインポートされ、Stable Diffusion モデルを構成するために必要なフォルダーとファイルが作成されます。Setup Environment セルが正しくロードされず、実行を開始するときにエラーが発生するという問題が発生する場合があります。Setup Environment セルがエラーなしで実行されたことを確認します。

Python の定義:

  • 実行中に後で使用するために、関数と定義をビルド環境にプル/ピップ/インストールします

  • ライブラリから変数を定義し、それらをランタイムにロードします

このセルを実行すると、画像の作成を進めるために必要な機能が定義されます。Python 定義セルがエラーなしで実行されたことを確認します。

モデルの選択とロード:

  • model_config ,: 命令ファイルのタイプ: デフォルト .yaml、またはカスタム オプション

  • model_checkpoint 、自動ダウンロードするデータセット

  • custom_config_path、カスタム .yaml ファイルを使用する場合を除き空白

  • custom_checkpoint_path、リストされていない .cpkt ファイルを使用しない限り空白

  • load_on_run_all、チェックすると RUN ALL 関数のインクルード セルになります

  • check_sha256、チェックサムとの比較を実行します (ファイルの整合性についてハッシュをチェックします)

  • map_location、GPU で CUDA コアを利用する [デフォルト]、または CPU を使用する [遅い] (非推奨)

Stable Diffusion モデルをロードするために、Colab は model_config ファイルと model_checkpoint の場所を知る必要があります。model_config ファイルには、モデル アーキテクチャに関する情報が含まれています。model_checkpoint には、モデル アーキテクチャに対応するモデルの重みが含まれています。トラブルシューティングのために、config と weight パス変数の両方が正しいことを確認してください。デフォルトでは、ノートブックはモデル構成と重みが model_path にあると想定しています。model_config と model_checkpoint ドロップダウンの両方で「カスタム」を選択することで、カスタム モデルの重みと構成パスを指定できます。モデルの重みのダウンロードに問題があり、ファイルが破損している場合があります。check_sha256 関数は、モデルの重みの整合性を検証し、使用しても問題ないかどうかを知らせます。map_location により、ユーザーはモデルの重みをロードする場所を指定できます。ほとんどの colab ユーザーにとって、デフォルトの「GPU」マップの場所が最適です。

2. 設定


2a. アニメーション設定

アニメーション モード:

  • NONEを選択すると、アニメーション モードのすべての機能が無視され、プロンプト リストで指定されているように、相互に関連性のない画像のバッチが出力されます。使用されるプロンプトは、非スケジュール、非アニメーション リストに従います。生成される画像の数は、「n_batches」の下の後のセルで定義されます。

  • 2D : 選択すると、「なしモード」プロンプトが無視され、前にフレーム番号が付けられてスケジュールされているプロンプトが参照されます。2D モードでは、一連の一貫した出力で生成された画像を文字列化しようとします。作成する出力画像の数は「max_frames」で定義されます。2D モードを制御するモーション オペレータは次のとおりです
    。他のアニメーション パラメータは、2D モードでは効果がありません。Resume_from_timestring は 2D モードで使用できます。(詳細は下記)

  • 3D、選択すると、「なしモード」プロンプトが無視され、前にフレーム番号が付けられてスケジュールされているプロンプトが参照されます。3D モードでは、一連の一貫した出力で生成された画像を並べようとします。作成する出力画像の数は「max_frames」で定義されます。3D モードを制御するモーション オペレータは次のとおりです。

「ボーダー、translation_x、translation_y、rotation_3d_x、rotation_3d_y、rotation_3d_z、noise_schedule、contrast_schedule、color_coherence、diffusion_cadence、3D 深度ワーピング、midas_weight、fov、padding_mode、sampling_mode、および save_depth_map. Resume_from_timestring は 3D モードで使用できます。(詳細は下記)

  • ビデオ入力、選択すると、すべてのモーション パラメータを無視し、video_init_path で指定された、ランタイムにロードされたビデオを参照しようとします。ビデオ入力モードは、「なしモード」プロンプトを無視し、それらの前にフレーム番号でスケジュールされているプロンプトを参照します。「Max_frames」は、video_input モードでは無視され、代わりに、ビデオの長さから引き出されたフレーム数に従います。ノートブックは、影響を受ける参照の文字列として、ビデオから選択したドライブに画像を取り込みます。ビデオから引き出されるフレーム数は、「extract_nth_frame」に基づいています。デフォルトの 1 では、ビデオのすべてのフレームが抽出されます。2 の値は、1 フレームおきにスキップします。3 以上の値を指定すると、これらのフレーム間で効果的にスキップされ、画像のバッチが短くなります。現在、video_input モードは、他のすべてのコヒーレンス パラメータを無視し、各フレームにのみ影響します。Resume_from_timestring は Video_Input モードでは使用できません。

  • Interpolation_mode、選択すると、他のすべてのモーションおよびコヒーレンス パラメータを無視し、スケジュール フレーム番号が前にあるアニメーション プロンプト間で出力フレームをブレンドしようとします。interpolate_key_frame モードがチェックされている場合、出力フレーム数はプロンプト スケジュールに従います。選択されていない場合、補間モードは、プロンプトの番号付けに関係なく、「interpolate_x_frames」で指定されたフレームの均等なスケジュールに従います。デフォルト値の 4 では、プロンプト間に 4 フレームの補間が生成されます。

アニメーション パラメータ:

  • animation_mode、アニメーションの種類を選択します (上記を参照)

  • max_frames、出力する 2D または 3D 画像の数を指定します

  • borderは、画像がフレームより小さい場合に生成されるピクセルの処理方法を制御します。「ラップ」は画像の反対側のエッジからピクセルを引き出し、「複製」はピクセルのエッジを繰り返して拡張します。動きの速いアニメーションでは、この境界関数が作成された空のスペースにピクセルを配置しようとした「線」が生成される場合があります。

モーション パラメータ:
モーション パラメータは、キャンバスをフレーム単位で移動するための指示です。

  • angle、フレームごとにキャンバスを時計回り/反時計回りに回転させる 2D 演算子

  • zoom、キャンバス サイズを乗算的にスケーリングする 2D 演算子 [静的 = 1.0]

  • translation_x、2D & 3D 演算子は、フレームごとにキャンバスを左右にピクセル単位で移動します

  • translation_y、キャンバスをフレームごとにピクセル単位で上下に移動する 2D & 3D 演算子

  • translation_z、キャンバスをビューに近づけたりビューから遠ざけたりする 3D オペレータ [FOV で設定された速度]

  • rotation_x、フレームごとにキャンバスを上下に傾ける 3D オペレータ

  • rotation_y、キャンバスをフレームごとに左右にパンする 3D オペレータ

  • rotation_z、キャンバスを時計回り/反時計回りに回転させる 3D オペレーター

  • flip_2D_perspective 2D モード関数が「偽の」3D 動きをシミュレートできるようにします

  • perspective_flip_theta、「ロール」効果の角度

  • perspective_flip_phi、「傾き」効果の角度

  • perspective_flip_gamma、「パン」効果の角度

  • perspective_flip_fv、遠近法の 2D 消失点 (rec'd range 30-160)

  • noise_schedule、拡散多様性のためにフレームごとに追加する粒状性の量

  • 次のフレームに影響を与えるための前のフレームの存在量、 strength_scheduleは、次の式のステップも制御します [steps - (strength_schedule * steps)] (詳細は「steps」の下)

  • contrast_schedule、フレームごとの全体的なコントラストを調整します [デフォルトは 1.0 でニュートラル]

コヒーレンス:

  • color_coherence、NONE、LAB、HSV、RGB から選択

    • LAB : Perceptual Lightness* A * B軸のカラー バランス (「 cielab」で検索)

    • HSV :色相彩度と値のカラーバランス

    • RGB :緑と青のカラーバランス。

カラー コヒーレンスは、全体的なピクセル カラー情報をサンプリングし、0 番目のフレームで分析された値の傾向を調べ、将来のフレームに適用しようとします。LAB は、色空間に対する人間の知覚を模倣するためのより直線的なアプローチであり、ほとんどのユーザーにとって適切なデフォルト設定です。

HSV は、鮮やかな色の存在のバランスを取るための優れた方法ですが、非現実的な結果が生じる可能性があります (つまり、青いリンゴ) RGB は、偏りのない量の色を強制するのに適しています

赤、緑、青の各チャンネルで - サンプリングが低すぎると、画像によっては色付きのアーティファクトが生成される場合があります。


  • ディフュージョン ケイデンスは、拡散の影響を受けるフレームの周波数を制御します [1-8]

ディフュージョン ケイデンスは、モーション パラメータで指定された 2D または 3D の動きのスケジュールに従おうとしますが、指定されたフレームでディフュージョンを適用します。デフォルト設定の 1 では、すべてのフレームが一連の画像出力で拡散を受けます。2 に設定すると、1 フレームおきにのみ拡散しますが、モーションは引き続き有効です。ケイデンス シーケンス中の画像の出力は、自動的にブレンドされ、加算され、指定されたドライブに保存されます。これにより、スキップされたフレーム中に画像のコンテンツとコンテキストが変化したり拡散したりしないため、一部のワークフローで一貫性の錯覚が改善される場合があります。4 ~ 8 ケイデンスの値を大きくすると、より多くのフレームがスキップされ、diffusion_cadence 値で設定された「N 番目」のフレームのみが拡散されます。これにより、アニメーションの連続性が向上する可能性があります。より拡散したコンテンツを追加する機会がほとんどないことを犠牲にして。極端な例では、フレーム内のモーションは多様なプロンプト コンテキストを生成できず、スペースはコンテンツの線または概算で満たされ、予期しないアニメーション パターンとアーティファクトが発生します。ビデオ入力および補間モードは、diffusion_cadence の影響を受けません。

3D 深度ワープ:

  • use_depth_warpingは、3D モードでのみ画像を動的にワープする命令を有効にします。

  • midas_weight、深度マップが描画される中間点を設定します: 範囲 [-1 から +1]

  • fov、translation_z 値によってキャンバスが 3D で移動されるスケールを調整します

deforum の FOV (視野/視野) は、translation_z 値がキャンバスにどのように影響するかについて具体的な指示を与えます。範囲は -180 ~ +180 です。値は曲線の逆二乗法則に従い、0 FOV が定義されず、空白の画像出力が生成されるようにします。FOV を 180 にすると、キャンバス プレーンが平らになり、ビューに沿って配置され、Z 方向の動きがなくなります。FOV に負の値を指定すると、translation_z 命令が反転し、Z 平面とは反対方向に移動しますが、他の通常の機能は保持されます。fov の値が 30 の場合はデフォルトですが、値が 100 の場合は Z 方向の遷移がより大きくなります。滑らかでゆっくり。それぞれのタイプのアートとコンテキストは、異なる FOV 値から得られるメリットも異なります。(例: 「リンゴの静物写真」は「植物のある大きな部屋」とは異なる反応を示します)

FOV は、ミダス深度マップがどのように解釈されるかについても説明します。深度マップ (グレースケール画像) は、3D の錯覚が FOV 値が低いほど顕著になり、値が 180 に近づくほど浅くなるように、FOV に従ってピクセル値の範囲を拡大または縮小します。 midas 深度マップが単一の値の範囲に圧縮されているため、180 のフル FOV、深度は認識されません。


  • padding_modeは、シーンに入ったときに視野外のピクセルの処理を指示します。'Border' は、描画するピクセルとしてキャンバスの端を使用しようとします。「Reflection」は画像とタイル/リピート ピクセルを近似しようとしますが、「Zeros」は新しいピクセル情報を追加しません。

  • sampling_mode、Bicubis、Bilinear、または Nearest モードから選択します。

画像処理では、速度が問題にならない場合、画像のリサンプリングで双一次補間または最近傍補間よりも双三次補間が選択されることがよくあります。4ピクセル(2×2) のみを考慮するバイリニア補間とは対照的に、バイキュービック補間は 16 ピクセル (4×4) を考慮します。バイキュービック補間でリサンプリングされた画像はより滑らかで、補間アーティファクトが少なくなります。

  • save_depth_mapは、出力画像と一緒にグレースケールの深度マップ画像を出力します。

ビデオ入力:

  • video_init_path、ビデオ入力モード専用のビデオ ファイルが配置されているディレクトリ。

  • extract_nth_frame、実行シーケンス中に、この値で指定されたフレームのみが抽出、保存、および拡散されます。値 1 は、すべてのフレームが考慮されることを示します。2 の値は、シーケンスに 1 つおきのフレームを使用します。値が大きいほど、その数のフレームがそれぞれスキップされます。

  • overwrite_extracted_framesを有効にすると、実行ごとにビデオ フレームが再抽出されます。

video_input モードを使用する場合、実行はビデオ フレームをドライブに書き込むように指示されます。必要なフレームを既に入力している場合は、このボックスのチェックを外して冗長な抽出をスキップし、すぐにレンダリングを開始します。フレームを抽出していない場合は、必要なフレームを書き込むために、このボックスをオンにして少なくとも 1 回実行する必要があります。

  • use_video_mask、 video_input モードのみ、マスクとして使用するための別のビデオ ファイルの抽出と使用を有効にします。抽出されたビデオ フレームの白い領域は拡散の影響を受けませんが、黒い領域は完全に影響を受けます。明るい/暗い領域は動的に影響を受けます。

  • video_mask_path、マスク ビデオが配置されているディレクトリ。

補間:

  • interpolate_key_framesは、プロンプト スケジュールまたは _x_frames を無視するかどうかを選択します。

  • interpolate_x_frames、プロンプト間で遷移するフレーム数 (interpolate_key_frames = true の場合、アニメーション プロンプトの前の数字は、その値に基づいて画像を動的にガイドします。false に設定すると、プロンプト番号を無視し、interpole_x_frames 値を強制します。プロンプト番号に関係なく)

アニメーションを再開:

  • resume_from_timestring、指定されたポイントから実行を開始するように指示します

  • resume_timestring、再開時に参照するために必要なタイムスタンプ

現在、2D および 3D モードでのみ使用できます。タイムスタンプは、前回の実行中に生成された画像と同様に、設定の .txt ファイル名として保存されます。形式は次のとおりです:
yyyymmddhhmmss - 実行が拡散し始めたときのタイムスタンプ。

4.フレームからビデオを作成する

  • skip_video_for_run_all、このノートブックをすべて実行すると、手動でチェックされてセルが再実行されるまでビデオの構築がスキップされます。デフォルトではオフになっています。

  • fps、ビデオがレンダリングされるフレームレート

  • image_path、順番にステッチされる画像の場所。ユーザーは、必要なタイムスタンプを反映するようにこのパラメーターを更新する必要があります。

  • mp4_path、結果のビデオを保存する場所

  • max_frames、ステッチ用に準備する画像の量


この記事が気に入ったらサポートをしてみませんか?