2023-03-08

ギターを弾く人魚(CG)をAIリペイント!うまく描画できるか実験【Stable Diffusion】

AI絵は指が苦手と言われている。3DCGで作った人魚がギターを弾くシーンのAIリペイントは果たしてうまくいくのか。

Article Image

目的

自作の3DCGをAIに通すことによる新しいAIアニメーション制作を研究する。

これまで通りクリエーターの創作という意味合いを維持したいため、プロンプト一発で自動生成される絵は原則使用しない。

オリジナルCG作品を作り、それに質感を加える(エフェクト的利用)というイメージでAIを使用していく。

私はこれをAIリペイントと呼んでいる。

今回はDenoisingを上げた作例で想定していない海が自動で描画されたが、実験結果としてそのまま掲載している。

今回の作例

今回も実験的アイデアがあり、その検証も兼ねた作品にした。

人魚モデル/ギターモデル/モーション/曲はすべてオリジナル。

出力の設定メモを紛失。hedは間違いないのとDenoising = 0.3だった記憶。

画像サイズ1024まで上げて、Sampling Steps60ほどかと思われる。

またシーンの岩やHDRIはフリーのものをお借りしている。

ギター曲はレコーディングセッティングのテスト時に残しておいただけの残骸なので聞き苦しいが何卒。

元となっているCG映像

AIに通す前の映像は次

何を考えてこのシーンにしたのか

今回ギターを演奏させたのには1つ理由がある。

それはAIが手指を上手に描けないのを逆手に取って、手指のアニメーションが適当でもギターが演奏できてしまうのではないかという発想から。

つまり、毎フレーム指が正しく描画されない状態を連続したアニメーションで見ることによってまるで指が動いている様なイメージになるのではないかという実験。

今回は左手はフレット移動がほとんどで、指自体は少ししか動いていない。

右手はF-Modifier(Blender)を利用し、最初の10フレームぐらいを永遠にループしているだけだ。

また、アニメーションにはあってはならない「瞬きのアニメを入れない」という暴挙にも出ている。

これも、目の描画がフレーム間で変化する≒瞬きに見えるかもという可能性と言う名の、手抜きである。

制作時間参考

モデリングはギターが2日(人魚モデルはかなりかかっている)

アニメーションはシーン制作も含め2日もあれば出来るというレベルの物。

曲は5分で制作と言っても良い残骸。ここはもうちょっとちゃんと作っても良かった。

とにかくスピード重視で制作しているので、お仕事レベルには達していないと思われる。

AIによる処理時間はGoogleのサーバーを利用して一晩弱。

1枚ずつテスト何度か通して仕上がりを確認したので加えて1,2時間。

アップスケールやSampling Stepsを上げればAI処理時間は何倍にもなりそうだ。

いきなり結論

ControlNethed推定で映像をリペイントしたところ、想像に反して指が殆ど崩れること無く描画できてしまった。

ということで、ControlNet(hed)を使ってリペイントする場合は指は壊れにくい。CG側の作り込みが良ければ結果も良くなるといってしまってもいいだろう。

また、まばたきに関してもそれを曖昧にするようなフレームもあるにはあるが、ごまかすには少しムリがありそうだ。

やはり要点を理解せずに妥協した元絵(CG)はクオリティを下げる。AIを通す場合も元映像は本気で作りたい。

指がよく描けたフレーム

指の精度は想像以上に高い。

コレを受けて前回の記事で「hed推定すれば指はうまく書ける」という内容を添えた。

ControlNetを使ってャラを塗り直す方法【Stable Diffusion】 | 謎の技術研究部

Denoisingを上げて再実験

すでに上の映像がCGをっぽさを消しながらもちらつきを最小限にするギリギリを攻めているので納得のラインになったのだが、それだと実験にならないのでDenoising0.6にあげて再挑戦することにした。

合わせて720に画像サイズを落とし少し高速化+前回より指の描画が曖昧になる効果も狙っている

画像サイズと指の関係に関しては上の記事で言及

指の動きを曖昧にできたわけではない

この実験で指の描画が曖昧になり、あえて少し崩す事ができた。

しかしながら「指の塗がはみ出しただけ」「指先の線画を適当にしただけ」といったような効果であり、結局クオリティを下げるだけの結果に見える。

やはり狙って使うものではなさそうだ。

それ以上に顔が壊れすぎて実用としてはまだ厳しい。

瞬きしているように見える?

目がうまく描画できてないところで瞬きしているような効果はありそうだった。

狙ってできるものではないが、面白い。

Denoising = 0.6の可能性

Denoising = 0.3の場合はシルエットなどが綺麗に残る一方でCG臭さもまだ残している。

2回目の実験で行ったDenoising = 0.6はかなりイラストに寄っていてCG感が薄れた。

さすがにフレーム間の整合性がなくなってくるが0.5上あたりを狙っても綺麗に出力できる設定や元絵を研究する価値は高い。

ただ、残念ながら顔の方向がおかしかったり、最後の方で背中の色もおかしくなってしまった。

背中の色がおかしい

背中がおかしかったフレーム

海が出現

Denoising = 0.6まで上げたところ何も書いていない場所に海が出現した。

もちろんこれはpromptoceanが入っているというのもあるが、海のような平坦な描写であれば多少整合性が違っていても繋がっているように見える。

今回は元絵(HDRI)に地平線のようなものがうっすらと出ていたのでそちらがうまく機能しているようだ。

背景にガイド用のラインを入れておくことで、山などもアニメで使用できるレベルにできるかもしれない。

といってもこちらは自動で書かれた副産物なので、海のシーンを真面目に入れるなら波しぶきのLandscapeモデルなどを後ろでアニメーションするのが良いだろう。

海と太陽

このフレームは海と太陽が上手に描画出来ている。

その他に得られた知識

指以外にも新しい発見がいくつかあったのでまとめておく。

ピンボケしている部分はそのまま反映される

今回の映像はF値を少し絞っており、周りが少しボケるようになっている。

AIがきれいな線に直してしまうのではと思っていたが、なんとそのままボケが残っていて驚いた

元映像を作る側は、プレビューの時点でボケを入れれるのでイメージをコントロールしやすい。

模様のようなサーフェスは苦手

よく見ると分かるが人魚の鱗、座っている石の表面描写が非常に不安定でチラツキが発生している。

一方でギターのような比較的書き込みが少ない表面はちらつきが少ない。

岩や鱗のように模様があるサーフェスを作りたい場合は漫画の線のようなはっきりした物でテクスチャを表現するほうがAIリペイントには適していそうだ

また、そもそも平面に何も書き込まないという選択肢はアリかもしれない。

岩のサーフェス

フレーム単位では岩はよく描けているが、整合性がなくチラツキの原因。

カメラが動いても意外に大丈夫

カメラが動くと一番壊れるのが顔。

また変な角度の人体はあまり学習されていないので、カメラの経過点的なポーズが苦手な印象があった。

しかしControlNetで推定することによりこれらも想像以上に表現できている(Denoising 0.3)

そして今回積極的に背中側を写している(AIは背後も苦手と言われている)

確かにギターのテクスチャはネックに弦がうっすら表示されてしまったり、人魚のヒレがギターのホールと認識されてしまったりと不具合はあるが、それにしても以前よりもずっとスマートにリペイントしてくれたと思う。

カメラが動くときはわかりやすいものを入れる

これはAIのみならず撮影の知識でもあると思うが、背中からカメラが動く時に背景が殆どないのでカメラが動いてる感じが薄れてしまっている。

これを加速しているのが岩のテクスチャがちらついている点。カメラが動いていることをわかりにくくしてしまっている。

今回は可能な限り背景を曖昧にしたため(作業時間削減)こうなったが、カメラが大きく動くシーンではせめてわかりやすい植物のようなシルエットがはっきりしたオブジェクトをカメラの枠に入れておきたい。

さいごに

なにげに3DCGっぽさを消してくれている一番大きな要因は顔にある気がする。ここはさすがのAIパワーだ。

角度などで変化する顔周りの研究もやっていけたらと思う。

最後に1枚

最後になんとなく1枚。



この記事をシェア


謎の技術研究部 (謎技研)