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を適用する方法は
こちらの記事 を参照してください。
動画
実行結果のアニメーション動画です。
VIDEO
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。