prompt-travel魔改造した話
こんにちは。最近流行りのLCM-Loraですが、CFGとStepが少な目で良いらしく、それによって描画が高速にできるようになります。
これ、動画業界としては大分うれしい話で、1回の動画に1000枚とか画像作るので、1枚当たり1秒速く出力できるだけでも大分恩恵が大きいです。
CFG, Step数は出したい絵によって大分変わるので、一概な事は言えないです。本記事は、そのための試行錯誤の日記みたいなものになります。
え?今時ComfyUI使ってないの?という声もあると思うのですが、半分くらいまで読んでいただけるとなんでprompt-travelにしたのかわかっていただけるかと思います。
設定たち
今回利用したモデルはこちら!
限定公開という言葉に飲まれて使ってみたのですが、なかなか良かったです
Loraはこれを使いました
私の場合、prompt-travelの所設定はこんな感じ
"lcm_map": {
"enable": true,
"start_scale": 0.15,
"end_scale": 0.75,
"gradient_start": 0.2,
"gradient_end": 0.75
},
"gradual_latent_hires_fix_map": {
"enable": true,
"scale": {
"0": 0.5,
"0.7": 1.0
},
"reverse_steps": 5,
"noise_add_count": 3
},
"compile": false,
"tensor_interpolation_slerp": true,
"seed": [
3453805526
],
"scheduler": "k_dpmpp_2m",
"steps": 7,
"guidance_scale": 2.5,
"unet_batch_size": 1,
"clip_skip": 2,
"prompt_fixed_ratio": 0.5,
"head_prompt": "(beautiful snowing night:1.2),(snowing background:1.5),(christmas tree:1.5),(8k, best quality, masterpiece:1.2), (realistic, photo-realistic:1.4), ultra-detailed, (off-shoulder:1.3), (wearing sntdrs:1.3), (red santa dress:1.5), (short dress:1.3), fur, belt, cameltoe, (black thighhighs, garter straps:1,5), hyper detailed, high quality",
"prompt_map": {
"0": "best quality"
},
"tail_prompt": "",
"n_prompt": [
"bad_prompt, easynegative, FastNegativeV2, negative_hand-neg, ng_deepnegative_v1_75t,(worst quality:2), (low quality:2), (normal quality:2), lowres, watermark, monochrome, (nsfw:1.4), text, red background"
],
あとはCNはとりあえずopen_poseだけtrueにしてデフォルト値=1.0(ちょっと強いかも)でやります。
で、CFG, Step等を変更してベストの絵を出そうとしました
とりあえず適当にやってみる
見る限り、CFGは2.5あたり、Stepは10くらいが良さそう
静止画だとわからないのですが、Stepが高くなるとライトのちらつきも心なしか増えてる気がした。
ここまでちまちまテストしてて思ったのが
1回1回データを入れて、設定して…すこし待って…また実行して…の繰り返しがだるすぎて気が狂いそうでした。
そもそも2個もパラメタを自由にしてるので、どっちをどう変えたのか?とかホントめんどくさい… いちいちエクセルに表にして記録するのもなんだかな…と思います。
prompt-travelの問題点
そもそもprompt-travelさん、機能追加も早くメモリ消費も妥当、安定しているという点ではとても良いのですが何点か問題があります
バッチ作業のくせに作業が細切れになる点(一気に設定入れて寝て待てない)
フロント画面がなくとっつきにくい点
2は正直どうでもいいんです。どうせ裏の作業なんで、私が実行する点で言えば、ミスらないように慎重に設定すればなんとかなります。
が、1の作業が細切れになる点がどうしてもどうしても許せない。
バッチ処理の原則として、最初に設定を(いっぱい)入れてそれであとは実行するだけ!!みたいな所が大事なのに、prompt-travelは複数回ステップに分けて処理を実行する必要があります。
で、その処理で「現在時刻」の設定フォルダを作るため、事前に設定フォルダを指定して後の処理を自動で実行することができません。
最大の欠点だと思います。
なので以下の点で魔改造を施しました
最初に全ての設定を入れて後は実行して寝て待つだけにする
これができるようになってこそ、真の意味でのバッチ処理になるかと思います。
魔改造完了!
利用のイメージは
①テスト実行で様々なパラメタで1つの動画をv2vする(16フレーム)
②好みのパラメタが決まったらそのパラメタで動画を作成
今まではこれを行う際に最低でも、①元動画の取り込みと設定ファイルの生成、②設定入力(手動)、③動画作成と、②の手動設定を必ず挟まないと一気に動画が作れず、最高めんどくさかったです。
ComfyUIにxyz promptみたいなカスタムノードを作っても良いのですが、こちらはこちらでそもそも作ったとしても別のカスタムノードでメモリがあふれて死ぬ気がしてやめました
実行してみた
よくわからないと思うのですが、こんな感じです
設定が全部ファイルになっているので、事前に設定を入れてまとめて実行できます。
今回はStep8-10, CFG 2.2-2.8の間の設定で24通りの設定を書いて一気に実行しました。
もちろんテスト実行で16フレームだけ作ります。
結果発表
並べてみました
小さくて見にくいですが、まーこんなもんと思ってもらえたら…
実際によーく見た感じだとCFG=2.3, Step=9あたりが良さそうでした。
次回はopen_poseとanimation_controlnetの値を変えてやってみよう。
しかし、汚い絵だな… もっとかわいくならないのかしら…