animatediffのフレーム数が少ない問題が解決したんだ
Stable Diffusion web UI(AUTOMATIC1111)でanimatediffを使っていたら 前回まではならなかったのに突然なって直らない症状が出ました
とりあえず症状
このgif動画の設定はfpsが16 Number of framesが39で 本来は39フレームと設定したものなのですが 実際には18フレームしか生成されていません なぜ減っているのかはまったくわからない
で対処法をググりまくりましたところ
ここの最後のコメントを参考にしたら解決しました
やったこと
\stable-diffusion-webui\extensions\sd-webui-animatediff\scripts
の中の
animatediff_utils.py
というファイルをメモ帳で開きます
82行目と83行目をコメントアウトします つまり頭に#をつけます
ここ↓
else:
command.extend(["-filter:v", "mpdecimate=hi=64*200:lo=64*50:frac=0.33,setpts=N/FRAME_RATE/TB"])
を
# else:
# command.extend(["-filter:v", "mpdecimate=hi=64*200:lo=64*50:frac=0.33,setpts=N/FRAME_RATE/TB"])
こうする
ファイルを保存して web UIを再起動しまして
生成すると
ちょっとループのとこが変な動きになってますがopenposeに使った動画の切り取りがまずってたんだと思います
とにかく39フレームになりました 同時生成のpngファイルもちゃんと39枚でした
解決!
ただやたら背景が動くようになったのが気になります…これは今回のコメントアウトの弊害なのかなんなのか…
そもそもなんで早回し状態になってたのかがわからないし…うーん…詳しい人教えてください…
おわり
追記
参考リンクに載っていた別の方法も試してみました
設定→AnimateDiff→Default frame extraction method
これをffmpegからopencvに変更するというものです
ffmpegがフレームを間引いてるのでopencvなら間引かないという感じ?なのかな?
同じSEED値で同じプロンプト 同じ設定で animatediff_utils.pyのコメントアウトを戻して生成した結果が以下の画像です
だいぶ印象が違う…ほんとにseed値同じか…?
こっちの方法はやたら時間かかりました 自分のVRAM6GBノートだと二時間も…ちなみに前述のコメントアウトする方法だと30分くらいでした
追記おわり