AnimateDiff でimg2imgを利用してアニメーションを作成する - Stable Diffusion

AnimateDiff でimg2imgを利用してアニメーションを作成する手順を紹介します。

概要

AnimateDiff のバージョンアップにより、img2imgを利用してAnimateDiffのアニメーションを作成できるようになりました。 img2imgを使用する場合は、最初のフレームの画像と最後のフレームの画像を設定すると、 中間のフレームを補完してアニメーションが作成されます。
img2imgを利用してアニメーションを作成する手順を紹介します。

事前準備

AnimateDiffのインストール

AnimateDiffをインストールします。インストールされている場合は最新版にアップデートします。 インストール手順はこちらの記事を参照してください。

ControlNetのインストール

ControlNetをインストールします。インストールされている場合は最新版にアップデートします。 インストール手順はこちらの記事を参照してください。

IP-Adapterのインストール

ControlNetにIP-Adapterのモデルをインストールします。インストール手順はこちらの記事を参照して下さい。

手順

最初のフレームと最後のフレームの画像の作成

初めに最初のフレームと最後のフレームの画像を作成します。
txt2imgの画面で、以下のプロンプトで画像を生成します。
Prompt
Prompt: front face, red hair, upper body, black school uniform, anime style
Negative prompt: worst quality, low quality


続いて最後のフレームの画像を生成します。下図のプロンプトで画像を生成します。
Prompt
Prompt: profile face, red hair, upper body, black school uniform, anime style
Negative prompt: worst quality, low quality

単純にプロンプトのみで生成すると、服のデザインが変わってしまうため、IP-Adapterを適用します。 ページを下にスクロールしControlNetのパネルを開き、先に作成した画像をControlNetの入力画像に設定します。
[Preprocessor]に"ip_adapter_clip_sd15"を設定します。[Model]ni"ip-adapter-plus_sd15" を設定します。


プロンプトを設定して画像を生成します。IP-Adapterの影響度が強いため、正面向きの画像になってしまいました。


Control Weightの値を"0.4"に下げ、再度生成します。同じ服のデザインで横向きの画像が生成できました。



正面顔と横顔の2つの画像が作成できました。

img2imgでのアニメーション生成

[img2img]のタブをクリックして、img2imgの画面に切り替えます。


img2imgの入力画像に、正面顔の画像を設定します。


ページを下にスクロールし[AnimateDiff]のパネルを開きます。


パネル内の一番下の[Optional last frame. Leave it blank if you do not need one.]の枠にもう一枚の横顔の画像を設定します。


画像を設定しました。


次のプロンプトで画像を生成します。顔の向きは入力画像で設定するため、顔の向きに関するプロンプトは削除し、 キャラクターの特徴や衣装を表すプロンプトのみにします。
Prompt
Prompt: girl, red hair, upper body, black school uniform, anime style
Negative prompt: worst quality, low quality


また、AnimateDiffの設定は以下の通りです。[Enable AnimateDiff]のチェックボックスにチェックをつけます。 [Closed loop]の設定は"N"にします。


画像を生成するとアニメーションが作成されます。 生成したアニメーションを確認すると、正面顔のまま顔の向きが変わらない状態です。


入力画像の影響が強すぎるため、顔の向きが変わらないと考えられます。AnimateDiffのパネルの [Latent power]の値を"1.5"に変更します。 同様に[Optional latent power for last frame]の値も"1.5"に変更します。値を大きくすると入力画像の影響が弱まる動作となっています。


画像を生成してアニメーションを確認します。顔の向きが変化するアニメーションが生成できていることが確認できます。


同様に[Latent power]の値を"2.0"、[Optional latent power for last frame]の値を"2.0"に設定した場合のアニメーションも作成します。 アニメーションを確認すると、中間フレームにノイズのような模様が入ってしまうことが確認できます。2.0まで弱めると余計なオブジェクトを描画してしまうようです。


[Latent power]の値を"2.0"、[Optional latent power for last frame]の値を"1.5"に設定した場合は余計なオブジェクトは描画されませんでした。 [Latent power]の値を"2.0"、[Optional latent power for last frame]の値を"1.0"に設定した場合はすぐに横を向くアニメーションになりました。 数値を下げたことで最後のフレームの横顔の影響が強まったため、すぐに横を向くアニメーションが生成されたと考えられます。


メモ
img2img時にIP-Adapterを適用する方法はこちらの記事を参照してください。

動画

実行結果のアニメーション動画です。

著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
掲載日: 2023-11-06
iPentec all rights reserverd.