Seed Travelを導入する

Last-modified: 2022-10-16 (日) 23:41:56

まあ、簡単にいうとVariation seedでパラパラエロ動画みたいなのが作れます。
キャラの一貫性が無いと上手い動画にならない

VLCだと再生できないかも?

txt2imgでもimg2imgでもどちらでも使用可能です。

公式の訳

シード間に存在する画像を作成するための AUTOMATIC1111/stable-diffusion-webui 用の小さなスクリプト。
2 つ (またはそれ以上) のシードを選択し、生成された 2 つのノイズ ポイント間でモーフィングしながら多数の画像を作成できます。
うまく機能するサンプラーは、Euler、LMS、Heun、DPM2、および DDIM です。(そして、Eular 以外の可能性もあります。)
Batch Count と Batch Size は無視され、1 に設定されます。Euler a で画像を生成しようとすると失敗し、エラーが出力されます。本当に使用したい場合は、許可するためのチェックボックスがあります。

必要ファイルのダウンロード

https://github.com/yownas/seed_travel へ行きます。
緑の「Code」を押し、「Download ZIP」を押します。
「seed_travel-main.zip」がダウンロードされます。

ファイルの移動

先ほどダウンロードされたファイルを解凍するかそのまま開きます。

seed_travel-main
 ┣scripts
 ┃ ┗seed_travel.py
 ┃
 ┣LICENSE
 ┗README.md

となっていると思います。
その中の「seed_travel.py」を「stable-diffusion-webui」の中の「scripts」フォルダへコピーします。

stable-diffusion-webui
 ┗scripts
   ┣custom_code.py
   ┣img2imgalt.py
   ┣ 
   ┣ 
   ┣ 
   ┗seed_travel.py

上記の様にします。

requirements_versions.txtの編集

stable-diffusion-webuiのフォルダ内に「requirements_versions.txt」があると思います。
それをそのままダブルクリックして開きます。
おそらく元々は以下の様になっていると思います。 (verによって違うよ!!!例だよ!

transformers==4.19.2
diffusers==0.3.0
basicsr==1.4.2
gfpgan==1.3.8
gradio==3.4.1
numpy==1.23.3
Pillow==9.2.0
realesrgan==0.3.0
torch
omegaconf==2.2.3
pytorch_lightning==1.7.6
scikit-image==0.19.2
fonts
font-roboto
timm==0.6.7
fairscale==0.4.9
piexif==1.1.3
einops==0.4.1
jsonmerge==1.8.0
clean-fid==0.1.29
resize-right==0.0.2
torchdiffeq==0.2.3
kornia==0.6.7
lark==1.1.2

そこの最後の1行に追加で

moviepy==1.0.3

を書き、変更を保存します。

以下の様になります。

transformers==4.19.2
diffusers==0.3.0
basicsr==1.4.2
gfpgan==1.3.8
gradio==3.4.1
numpy==1.23.3
Pillow==9.2.0
realesrgan==0.3.0
torch
omegaconf==2.2.3
pytorch_lightning==1.7.6
scikit-image==0.19.2
fonts
font-roboto
timm==0.6.7
fairscale==0.4.9
piexif==1.1.3
einops==0.4.1
jsonmerge==1.8.0
clean-fid==0.1.29
resize-right==0.0.2
torchdiffeq==0.2.3
kornia==0.6.7
lark==1.1.2
moviepy==1.0.3

動画を作成する

では、実際に動画を生成してみましょう。
いつもの様に起動しましょう。
「Script」の項目を選びます。 ※(下の方にあるやつ X/Y promptなどのとこ)
「Seed travel」を選択します。
※「Euler a」を使用する場合は一番下の項目が必ずチェック必要
Batch Count と Batch Size は無視され、強制的に1になります。
初めは512*512などの小さい画像サイズでどんなもんか試しましょう。

※「LMS」は「Sampling Steps」を上げないと画像にノイズが乗るかも?

Destination seed(s) (Comma separated)

訳⇒目的地のシード(カンマ区切り)。
後述の「Only use Random seeds」にチェックを入れない限り、いつもの「Seed」が初期地点になります。
そこからどのseedに移動するかを記入します。
順番に記入します。

seed100⇒seed100でバリエーションseed101の強さ0.1~⇒seed101と言う風に遷移します。
※うまく体位が似てるseedを発見すれば結構いい感じに動画が出来るのかもしれない

Only use Random seeds (Unless comparing paths)

訳⇒ランダムシードのみ使用(パスの比較を行わない場合)
名前のままです。

Number of random seed(s)

訳⇒ランダムシードの個数
2以下にはできません。

Compare paths (Separate travels from 1st seed to each destination)

訳⇒経路の比較 (第1シードから各目的地までの経路を分ける)

慣れたら使おう
例)Seed「5」,Destination seed(s)「6,7」,Steps10の場合
Seed5で1枚⇒Seed: 5,Variation seed: 6, Variation seed strength: 0.1~0.9 で
Seed5⇒Seed: 5,Variation seed: 7, Variation seed strength: 0.1~0.9 と2本のビデオが生成されます。
展開の比較に便利

Steps

訳⇒ステップ
1つのseedで何個画像を作成するかです。
多いほどいい感じの動画になるかもしれません。

Loop back to initial seed

訳⇒最初のseedにループバックする
最後のseedの画像生成後最初のseedに戻るように画像生成をします。
生成された画像のpng info見るとわかりやすいです。
最後のシードから最初のシードをヴァリエーションシードとして画像を生成します。

Save results as video

訳⇒結果を動画で保存
チェックをつけることにより「stable-diffusion-webui\outputs\txt2img-images\travels\数字」の中へmp4動画が生成されます。

Frames per second

訳⇒フレーム/秒
1秒あたり何枚の画像にするかです。
デフォでは30
パラパラ漫画とかは1秒4フレームとかだったりすると思うので、好きに調整してください。

Show generated images in ui

訳⇒生成された画像をUIで表示
各フレームの画像をweb-ui上に表示します。
めちゃくちゃ多く生成する場合ここをONにしていると完了後に重くなるのでOFFにしてもいいと思います。

"Hug the middle" during interpolation

訳⇒補間中の "Hug the middle "機能
過去の実験の残りものとのこと。
ONにするとより滑らかなビデオが作れる可能性があるが、ほとんどの場合は機能しないとのこと
OFF推奨。

Allow the default Euler a Sampling method. (Does not produce good results)

訳⇒デフォルトのオイラーサンプリング方式を許可する。(良い結果は得られません)
※「Euler a」⇒「You seem to be using Euler a, it will not produce good results.」
「Euler a」で作成する場合にはここにチェックが必要
「Euler a」で動画を作ると変になりやすいとのことで、これがあります。
どうしても「Euler a」で作成したい場合のみチェック

保存先について

stable-diffusion-webui\outputs\txt2img-images\travels\数字
の中にビデオと画像が保存されています。

注意

このCustom Script導入にあたり
「requirements_versions.txt」を編集しました。
それによりgit pull時にエラーが出る場合があります。
その場合は「requirements_versions.txt」を削除することにより正常な状態に戻ります。
※削除してもgit pullすることにより「requirements_versions.txt」が生成されます。 付け足した文は消えているはずなので再度編集しましょう。

$ git pull https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
remote: Enumerating objects: 35, done.
remote: Counting objects: 100% (35/35), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 35 (delta 21), reused 29 (delta 18), pack-reused 0
Unpacking objects: 100% (35/35), 28.76 KiB | 188.00 KiB/s, done.
From https://github.com/AUTOMATIC1111/stable-diffusion-webui
 * branch            HEAD       -> FETCH_HEAD
error: Your local changes to the following files would be overwritten by merge:
        requirements_versions.txt
Please commit your changes or stash them before you merge.
Aborting
Updating 58e6231..d3463bc

↑みたいなエラーになるよ
git pull後再度文を追加しよう

指摘・更新するべき箇所や助言など