AI(Stable Diffusion)によるリペイント研究の失敗例を2つ紹介する。
今回も「リペイント」がメインであり、なにもないところからプロンプトでイラストを生成させるような使い方はしない。
失敗から得られるものもあるので参考になれば。
次のような星空のシーンをBlender
で作った。
雲のようなものが少し浮いている。
この星空がゆっくり動いていく動画をAIにかけてみるとどうなるかという実験。
水彩のような星空が静かに動く美しいイメージを想像していた。
難しいキャラクターと違って、シンプルな構造なので再現性は高いのではないか。
実際にできたのが次。
雲はいい感じに動いているが、星が散らかってしまっている。
また、想像していたよりAIが加筆してくれた部分も少ない。
定点カメラで一定間隔でシャッターを切っていく「インターバル撮影」のような効果とはなったが、これは星空をインターバル撮影した場合はこうはならないのでどちらにせよ失敗。
空の映像は青空、曇り空でも同じことが起きるのだが、油をこぼしたようなシミが乗る。
恐らくそもそも元映像の情報量が足りないことが原因だと思われる。
失敗から得た知見
雲の部分は割りと再現できているので、シミは乗ると思うが雲の動きをリペイントした動画は可能性がのこっている。
流れ星のようなものが浮かび上がっている。元の映像に流れ星はない。
恐らく「美しい夜空」には流れ星がつきものなのだと思われる。夜空を作るときは覚えておきたい。
AIリペイントのチラツキがキラキラして見えて、不本意ながらエフェクト的な使い方ができそうだ。
これは瞳や宝石のような輝きに応用できるのでは。
私が以前アンリアルエンジンの水マテリアルの作例としてアップロードしていた次の動画をリペイントしてみた。
今回はControlNet
を用いて(たしかcanny推定)元画像の線を確実に抽出することにより風景としてハッキリさせたい。
こちらも水彩で書いたような風景画が現れるのを期待した試み。
また、もしかしたら水面がキラキラしてより一層よくなるのではないかと考えた。
結果は次のようになった。
全体的にぼやけていてカメラのピントが合っていないような印象になってしまった。
本来ならこのぼやけ感も筆のタッチとして良さを感じるのだが、今回はイマイチ。
ControlNet
のCanny
を使っていてもこうなってしまうのは、おそらくシーンが複雑すぎるためだと思われる。
トータルで「何を見せたいのか」がまったくわからなくなってしまっている。
これはなんとなく予想ができるかもしれないが、水自体が非常に薄い(かなり透明な)表現なのでAIに水面と認識されなかったようだ。
やるならもっとコントラストを付ける必要がありそうだ。
元動画のエンコードの癖?元動画よくみると少しフレームがカクカクしている。
そしてそれがAI動画になってより強調されてしまった。
意外にAI映像はスムーズな映像を求めているのかもしれない。
石像が特にぼやけてしまった。
もともと白いのもあって、それを加速してしまっているようにも思う。
ControlNet
は色がついてない線画に色付けを自動でやらせる場合にパワーを発揮することは分かっているが、i2i
ベースで使うと元絵の色が反映されてしまうので工夫したほうがよさそうだ。
この場合はSkip img2img processing when using img2img initial image
をオフにすると自動で着色されると思われるが今回はそこまで試していない。
またControlNet
のGuidance
のStart
を遅らせると良い時もある。
ただ、いずれの場合も元絵の色が無視されがちなので想像を下回る結果になる可能性も高い。
あまり多くがわかった訳では無いが学ぶこともある。
AIは背景を描くのも得意だが、石ころが絡み合うような複雑なものはだめそうだ。
人物以外にも建物や植物といったわかりやすいものを背景にしたほうが良いだろう。
コントラスト差がなく曖昧なものはAIに入れると消えてしまうかもしれない(今回の水)
水をいれるならハッキリと色や波紋等をつけたほうが良さそうだ。
元映像の動きに粗があると、より強調されてしまう可能性がある。
トータルで考えるとAIリペイントは「わかりやすい被写体」がいるということは重要そうだ。
どのみち映像を作る時に「何を見せたいか」を考えることが重要なので、それを教えてくれているのかもしれない。
また、複雑なもの、アブストラクト的なものを描画させる場合はControlNet
+i2i
の色を無視する設定の使用も考えておきたい。