見出し画像

AIと3Dを使った楽しい実写風ホラーづくり[StableDiffusion]

 こんにちは。一般3Dモデラーです。StableDiffusionの利用方法について去年の8月から月一ペースで更新しておりましたが、前回の記事投稿から少々間が開いてしまいました。ControlNetの登場は革新的でしたが、それ以降はあまり大きな動きが無いので、いい加減ネタが枯渇してしまったのでした。しかしnoteが「今月中に更新すれば12カ月連続更新ですよ^^」と煽って来る。確かにStableDiffusionXLの一般公開は大きな動きですし、基本解像度1024*1024への向上は進歩ではあるものの、それを使って何をするか?の話になると、これまで検証してきた利用方法とあまり違いはないのです。要求VRAMもデカくなったし。

 むしろ動きがあったのは動画生成AI関連でしょうか。ModelScopeやZeroScopeなど、Automatic1111で動作するオープンソースの動画AIが登場したことで、個人でもAI動画を生成できるようになってきています。

 こちらは筆者のVRAM8GBのGPUでもできる448*256で生成していますが、最高解像度である1024*576の生成となるとVRAM15GB必要になり要求スペックは高いです。ご覧の通りまだ風邪の夜に見る夢みたいなものしか作れませんが、動画AI生成の分野は個人的に大いに注目していますね。こちらのデモではフリーで3回くらい高画質生成できるので気になる方はどーぞ。

 じゃあネタも枯渇したので今回は前々からやってた「3Dで8割方作り込んでからAIでフォトリアルに仕上げるホラー画像作り」でも紹介するのだ。「ホラー画像?興味ねぇなぁ」という方もご安心下さい。後の方でお姉さん風の怪物も作っていますので。

 AIを利用した画像制作全般に言えることですが、思い通りの絵作りや、内容に連続性のあるものを作るのはtext2imgの生成では困難です。

photograph of a scary monster in the abandoned basement, zombie, two legs, eye balls, open mouth, tooth, muscular, horror movie

 text2imgのホラー生成例。ちょっと面白くなっちゃってるのが居るじゃねえか…。なので私はホラー系のAI創作をする際、手描きや3Dである程度ベースとなる画像を作成してから、img2imgをかけることで実写風変換を行っていました。この手法はControlNetのDepthの登場により各段に安定性が増しています。被写体の深度マップが生成物の基準になるので、3Dで作ったバケモンのシルエットを崩すことなく、実写風に変換できるようになった訳ですね。

 では3Dベース画像を使用してホラー画像を作ってみましょう。

blenderで雑にオッサンを配置。使用3Dモデルはdaz3d。

 blenderで3分で雑にオッサンを配置したら、ベース画像をレンダリング。ControlNetのdepthを併用しつつimg2imgを行います。

左、レンダリング画像。中、レンダリング画像から検出されたdepth画像。右、生成画像。

 DenoiseStrength 0.75で生成。はい、ベース画像のシルエットを保ったバケモノが生成できました。DS値を高めて変化量を大きくしていますが、なんか普通過ぎるので、モデル作成の段階からもうちょっと真面目にやりましょう。

首と腕を伸ばしたりメタボールを足したりして異形化。
レンダリング画像のimg2img設定とControlNetの注意点。

 セットした画像から深度を検出してdepth画像を生成するPreprocessorは「midas:手前の被写体の構造をよく拾える」「lares++:背景まで検出できるけど被写体の構造が薄味になる」など違いがありますので、生成されるdepth画像を見ながら状況によって切り替えて使うべきでしょう。blenderで深度マップを作成してそのまま使うのもアリですが、私はホラー創作の際はmidasを使っています。

左、レンダリング画像。中、レンダリング画像から検出されたdepth画像。右、生成画像。

 異形化して皮膚を気持ち悪いマテリアルにしてライティングも変更してみました。大した作業でもないので所要時間は5分程度。img2img時のDenoiseStrengthは0.6。クリーチャー感出てきて良い感じですが、3Dモデルをぐいぐい伸ばしただけなので、特に右腕のアウトラインがノッペリしてしまって違和感がありますね。3Dモデルのアウトラインを詳細に弄るのは大変なので、ここはdepth画像を直接手描きで弄ってしまいましょう。

編集したdepth画像。preprocessor設定は不要。

 depth画像のシルエットを雑にギザギザさせcontrol netにセットします。この際にPreprocessorを設定していると、「depth画像からdepthを取得」してしまうのでnoneに設定するのをお忘れなく。ついでに心臓の赤みが足りないのでレンダリング画像にも適当に赤を塗っておきます。

左、適当に赤を塗ったベース画像。中、シルエットをギザギザにしたdepth画像。右、生成画像。

 変化量は少なく抑えたいのでDenoiseStrength 0.5。ああ~、良い感じや。何枚か生成したらそれぞれのバケモンの出来の良い部分をphotoshopで切り貼りして合成します。仕上げに合成した画像をDenoise strength 0.3くらいで再度img2imgして、合成部分のムラも良い感じに馴染ませます。

film still from 1990's horror movie, polaroid photo of a monster in the abandoned basement, evil old man, zombie, two legs, open mouth, tooth, muscular, bumpy skin, sick, Heart, internal organs, hard shadow, wet skin, blood

 へい!バケモノ一丁上がり!

 途中ちょっと生成が安定しなくて手間取りましたが、所要時間は40分程度です。イメージ通りのアングルとライティングでバケモノ画像作れるのは良いですね。前回の記事では一貫性のあるAI画像を作成する手法について紹介しましたが、このdepthを使用したアプローチでも一貫性のある画像は生成可能です。

上、3D。下、AI画像。

 ただ流石にガスマスクや銃や無線など「正解の形」が存在するものをimg2imgする場合、細部形状の変化が気になります。真面目にやるとなると高解像度生成や生成物同士のフォトバッシュ工程は必須ですね。ていうか私は銃とか完璧に正確でないと困るものは、3Dレンダリング画像をそのままAI画像に合成させます。ちなみにこの手法を使用したホラー連作も作ってますので、作例が気になる人はどーぞ。ガスマスクさんも登場します。

 当然ですが、3D画像のフォトリアル化手法はホラーのみならずAIグラビアなどの作成にも使えます。思い通りのアングルやポーズで作成したい場合や、人物の服装や背景などの一貫性を保ちたい場合などは、3Dモデルをベースにするのがベターでしょう。

左、3D画像。右、depthを使用した生成画像。DS0.6で生成。

 また、DepthではありませんがLineartは実写風画像の細部修正にも役立ちます。このお姉さん風の怪物も修正してみましょう。

lineartで実写風画像から線画を抽出。指を直す。

 指などは画像AIの弱点の一つですが、lineartで線画を抽出し直接直すことで、あからさまな形状崩壊を避けることができます。基本的には狂ってる線消すだけなので所要時間5分程度。折角なんでlineart駆使して更になんか着せるぜ。

もっと大まかな変更をする場合はCannyも有効です。

 仕上げに高画質化!

たのしいホラー画像づくり。

 はい、思い通りのポーズ、アングル、ライティングでお姉さん風の怪物画像が作れましたね。

 ネタが無いから前々から使用してた手法の紹介記事になりましたが、画像AI界隈に大きな動きがないと次回の更新が無くなっちまうぜ。まぁ、StableDiffusion登場以来、一年間毎月更新したので十分な気もするのですが。

 個人的な話ですが、私はイラストレーターとしてAIの活用方法について色々検証してきましたが、それでも最近のイラスト創作にはAIを全く活用できていません。AIの「使える部分」と「使えない部分」が見えてきてしまうと、やはり通常のイラスト制作では細部まで思い通りに描ける手描きの方が楽であり、AIを使用することが逆に縛りになってしまうのです。もちろん細部形状をある程度無視してでも大量のイラスト素材を量産したい場合や、今回のフォトリアル創作のように「細部形状よりもとにかく実写的なライティングだ!」という場合は、AIは是非使いたいところです。しかしそういう場面はなかなか少ないのだ。「果物が雑然と並んでるインドネシアの露店」とか描く時はAI使いたい。

 では渾身の3DベースAIホラー画像など載せつつ今回は以上となります。

この記事が気に入ったらサポートをしてみませんか?