1girl, anime style
0: profile face
8: front face
worst quality, eyelashes,
AnimateDiff の Prompt travel を利用してアニメーションを作成する手順を紹介します。
sd-webui-animatediff でWebUI上から、Prompt travel を指定することができるようになりました。
この記事では、Prompt travel を利用してアニメーションを生成する手順を紹介します。
こちらの記事でAnimateDiffを利用したアニメーションの作成方法を紹介していますが、
作成されるアニメーションの制御はあまりできません。Prompt travel が利用できるようになると、
フレームごとのプロンプトを指定できるようになり、アニメーションの制御ができるようになります。
従来はCliコマンドでPrompt travelを利用することができましたが、sd-webui-animatediff のバージョンアップにより、
WebUIでPrompt travelを設定できるようになりました。
Stable Diffusion WebUIをインストールします。
手順はこちらの記事を参照してください。
sd-webui-animatediff をインストールします。手順はこちらの記事を参照してください。
既にインストールされている場合は、最新のバージョンにアップデートします。
WebUIを起動します。
以下のプロンプトを入力します。
1girl, anime style
0: profile face
8: front face
worst quality, eyelashes,
ページを下にスクロールし、[AnimateDiff]のパネルを開きます。
パラメーターはデフォルトのままとします。
[Enable AnimateDiff]のチェックボックスをクリックしてチェックをつけ、AnimeteDiffを有効にします。
[Generate]ボタンをクリックします。フレームが複数同時に生成され、アニメーションが生成されます。
アニメーションが生成できました。
1girl, anime style
0: profile face
8: front face
0: profile face
8: front face
の部分がPrompt travel になります。
以下の形式で記述します。
(フレーム番号): (プロンプト)
上記の記述では、フレーム0では、"profile face"のプロンプトを使用し、横顔を描画します。
フレーム8で"front face" を使用し正面顔を描画します。この記述により、横向きの女の子が正面を向くアニメーションを作成できます。
worst quality, eyelashes,
ネガティブプロンプトは品質に関するワードを入力しています。目をあっさり目にしたいため、eyelashes
を入力しています。
詳しくはこちらの記事を参照してください。
使用するプロンプトによってはうまくアニメーションしない場合があります。以下のプロンプトでは成功率が悪いです。
1girl, sky background
0: profile face
8: front face
うまくアニメーション生成できない場合は、プロンプトを変えてみるとよいです。
以下の2つ以上のプロンプトトラベルはフレーム間の間隔が短いためかうまく反映されないようです。
1girl, face, anime style
0: closed mouth
8: open mouth
15: closed mouth
使用するモデルによっては、中間のフレーム画像がうまく生成できず、いい感じのアニメーションできない場合があります。
うまくアニメーションが生成できない場合は別のモデルに変更してみると改善される可能性があります。
設定のNumber of framesの値を増やすと長尺のアニメーションを作成することもできます。
生成した動画をつなぎ合わせて作成した動画です。今回はデフォルトの設定のままアニメーションを生成していますので、1回の生成で16フレーム2秒まで生成できるため、
25クリップをつなげて30秒弱の動画を作成しています。
アップスケールはしていません。Stable Diffusion WebUIから直接 mp4形式で出力したものをつなぎ合わせて編集しています。
狙った動きの出力にはならないことが多いため、ある程度の妥協は必要ですが、手で描画すると1週間以上はかかる制作が数時間で終わるメリットは大きいです。