お絵かき素人がAI生成画をトレス・模写して、さらにAI生成画にする50日
この記事では、10月19日からXへの個人投稿として開始した「#画像を下絵にトレース100日訓練」という、過去に自分でStable Diffusionなどで生成した画像を、トレスや模写の対象として、もっと自分の思う通りに絵をコントロールできないかという試みを紹介します。また、最初のトレスから、段々と手法を変えていったプロセスも紹介します。
この記事は、生成AI Advent Calendar 2023の12月6日の記事です。
■トンチキ絵でも描けば理想に近づけるのでは?
そもそも、なんでトレスなんかをやってみようかと思ったのを思い出してみると、賢木イオさんが「水星の魔女」のスミレオでやっていた、トンチキ絵を見ていたら同じようなことをやってみたいという気持ちからでした。
私は二次創作には関心はありません。一方で、いつも眼鏡っ娘を生成していますが、自分のなかで想像するイメージ通りにキャラクターを出したいという気持ちはいつも持っているのです。
しばらく前から、ControlNetを使っても思ったような画像を出せない不満を感じていました。出力した画像なりを下絵にしても、それから乖離した画像が出やすいという傾向がある気がしていたのです。
いくつか原因には思い当たるところがありました。その一つには、元画像の状態では、情報量が多すぎるからではないかというところです。結局、ControlNetの使用時に、LineArtなり、Scribbleなりにしても、それらのベース画像が生成される段階で、情報量が多すぎて、コントロールを行いにくいのではないかという気がしています。たとえ途中段階の画像を出力しても、そこから修正するのは、結構難しそうだなあという印象も持っていました。
そのため、元絵をトレースして、シンプルな線画だけにすれば、自分の狙っているポイントだけをちゃんと認識してくれるのではないか、というのが最初の仮説でした。100日もやれば、何か見つかるだろうみたいな適当な気分からのチャレンジ開始でした。トレスの元絵は過去、自分でAI生成したもので気に入ったものというルール。
そして、ほとんど使いもしないで宙ぶらりんだった中古のタブレットを持っていたため、それを使ってトレスをして見ることにしました。使い慣れてないので最初はまともに線を引くことさえできず、使いにくいことこの上なかったです。
(1日目、まだまだ、タブレットの使い方に慣れてない)
果たして、その結果は予想通りでした。
トレスした画像を、LineartやSoftedgeなりに入れると、割と狙ったような絵が出る。色もTileを弱めにかければ、その線を的確に影響を与えられるということがわかってきました。それにより元にした絵よりも、魅力的な絵も作れると。
基本的には、クリスタでトレスを行い、A1111 Stable Diffusion1.5のControlNetに設定して出力しています。
(5日目ぐらいにはトレスには慣れてきた)
(色を狙った通りに出す難しさを感じるようになる)
■トレスから模写に移行
ただ、トレスにはだんだん慣れてきて、割と簡単なのだなと思うようになりました。一方で、トレスに必要な時間は20分ぐらいはかかるので、作業感が結構あり、だんだんと飽きてきました。
初心者向けのイラスト講座のYoutubeなどを見ると、トレスでは絵はうまくならない説の説明があり、そういうものかなと思い、もう少し難易度を上げてみるかと、参考絵を見ながらの模写に切り替えてみることにしました。
もちろん、模写なんてやったことがないから、救いようもなく下手くそなのですが、別にControlNetのネタ元として使いたいだけなので、どれぐらい影響を与えられるのかを見てみたかったのです。
最初のころはなかなか悲惨でした。トレスと違い、下手くそな模写で線が整理されていない状態だと、Stable Diffusionに読み込ませると、その雑線まで拾って画像にし始めるので、とてもまともな画像とは言えないものが出てきました。
(SD1.5にそのまま入れると、線のノイズがそのまま出てしまっている。
模写初日はなかなかのトンチキ絵)
工程的にきれいに出せる方法がないかなと思ったところ、SDXL向けのFooocusが、独自方式のCannyに対応したのに気がついたので、的確なプロンプトを与えると、線画を整理した画像を出力してくれる事に気が付きました。
作成工程に、模写した画像を、Fooocusに入れ、整理された先の画像を、Stable Diffusion 1.5に入れて、最終出力にするという方法を思いつきました。それにより、ベースのトンチキ絵の模写は見れるレベルの画像として出せるようになりました。
また、途中から、模写をするときにも、グリッド線を表示して当たりを取るように工夫するようになりました。とてつもなく乖離した画像になることは少なくなったように思います。頭のサイズが、描いていない人が思うよりも大きいものだといった助言を頭に入れたりと、模写をすることで発見ができたことはいろいろありました。
なにより、ただ描いているという行為自体がそれなりに面白いなと。
もちろん、手といった複雑な形状は模写ぐらいでは、すぐにうまくなりません。ところが生成AIを通すとそれなりに形になることが多いです。ただ、ちゃんとした形にならないことも多く、何枚も出して、まともなのをPhotoshopでツギハギするという、いつものレタッチもやります。
元絵からの変換例
■Fooocusを使うことで生まれた不満
また、毎日何を模写しようかと過去に生成した画像を漁っていて気がついたのは、生成AIによる生成画は、ポーズの動きが小さい画像が多いということでした。
立っている正面画や、軽く座っている程度のものが大多数で、案外とバリエーションがない。様々な情報量でごまかされていましたが、色なく、背景を外すと、生成AIの現状の限界のようなものが見えて面白くは感じました。
さいとうなおきさんが、「今日の参考ポーズ」というタグで毎日写真をアップされていますが、どのポーズも体の仕組みや、カメラを理解していないと描けないよく考えられたポーズが多く、またAI絵が苦手とするタイプの画像だなとも思いながら見ています。後日、Krita+LCMで、一度だけトレスで挑戦しましたが、安定的な画を出すのは難しかったです。
結局、人間が描写が苦手であったり、構造が複雑なものは、多く学習している生成AIでも的確に出せないという傾向があることは知られていますが、やっぱりそうだよなということは、模写をしても変わりません。
そして、Fooocusへの満足は、次の不満を生み出します。Fooocusが勝手に描き込んだり、デザインの修正をしたりというのが気になるようになってきました。
Fooocusの性能は高いのですが、Cannyが元の模写絵を必ずしも完璧に追ってくれるというわけではないのです。特に色の追従性は難しく、カラーコントロールはどんどん無視して、その上に別のデザインにしてしまいます。実際、完全に制御する最適なパラメータは見いだせませんでした。
生成AIでは、結局は、ノイズから回復させる方法である以上ランダム性が交じるので、期待したものとズレたものになるのは原理的に仕方ないという前提で行うしかないのですが、そういう難しさを感じさせられました。
(Fooocusの解釈揺れが大きく、苦労した画像)
■Krita+LCM環境と出会う
そうこうするうちに、11月中旬にLCM Loraがやってきて、対応したドローアプリのKrita+LCMに出会いました。それまで、Kritaの存在はそもそも知りませんでした。生成AIがユーザー開発のプラグインで動くというのも全く知りませんでした。
Xのタイムラインで流れてきたのを見て、これは面白そうだなと。そして、触り始めるとこれは便利だなと。私のような絵をそもそも描くことを行わない人間にとって、AIがアシストしてくれることで、絵を形にできるというのはいいなと。
Kritaのそのままの生成にはそんなに魅力を感じませんでした。WebUIと変わらないので。ただ、Krita+LCMによるリアルタイム生成は、まさに魔法のごとくのおもしろさでした。
まず、Krita+LCMにはプロンプトを入力しておいてやります。LCMにはネガティブプロンプトががないので、その入力欄はありません。そして、作成した模写画像なりをレイヤーに貼ってやると、その画像に合わせてリアルタイム生成が始まります。
Strength値があり、それを上げていくと、プロンプトへの追従度が高まり、50%を越えたあたりで、元の画像の形を維持できなくなってきます。30%~40%ぐらいに設定して使うと、元の模写をうまく生かした感じで画像を作ってくれます。
もちろん、チェックポイントやLoraの影響を大きく受けるので、顔は思ったほど狙った顔にすることは簡単ではありません。その元データの顔になってしまう。目のサイズとか常に不満を感じていますが、アニメ風では、細くすることが案外と難しい。そもそも、A1111でもきっと同じだったのでしょうけど。
そういう触ってみて感じる制御が難しい部分もたくさんあるのですが、リアルタイムに確認しながら修正できるために、自分が出したかった出力を目指しながら作業を進めることができます。
A1111では1枚1枚出力しては微調整を繰り返す必要がありますが、リアルタイムLCMでは、出力データを見ながら、自分の求めるAI絵を探るという感じです。いろいろ難しさはあるとはいえ、AIにアシストを受けながら、自分が作りたいAI絵を模索するための方法にとってはより適切な方法に近づいてきたのではと思います。
(執筆段階で最新の47日目。結構気に入っている)
■さいごに~AIがあっても絵を描くのは楽しい
AIにアシストを受けながらであっても、絵を描くのは楽しいです。
最近は、模写ではなく、何も見ないでもAIアシストを受けた状態で絵を描くことも行うようになりました。実際、同じような構図しか、今は描けませんし、そもそもの絵が、うまくなったかと言うと、微妙な気もします。ゼロよりはマシですが、AIなかったらかなり微妙でしょう。また、Krita+LCMはAIアシストが強力すぎて、頼りすぎると、あまりうまくならないかもなあという気もします。
一方で、トンチキ絵でも、絵を描くことは、生成しているだけとは、違った魅力があるなと感じています。やはり、描いている事自体が楽しい。
なんとなく、このAIとの道の先にも、いろんな表現の可能性があるのではないかと感じたりしています。生成AIか、人間か、みたいな対立軸がとかく語られやすい気もするのですが、両者が共同で作業することでよりすごいものを生み出せる未来へのヒントがあるようにも思います。
私自身は、生成AIがなければ、こんな絵を練習するみたいなことをやることはなかったでしょう。
高価なビデオカードを必要とせず、誰でももっと気軽にAIアシストを受けながら絵を描ける時代はすぐそばまで来ていると予想します。そして、絵を描かなかった人が、生成AIをきっかけに描き始めるというケースは、増えるのではと考えています。それによって、もっと新しい表現方法を発見する人たちが現れるのではないでしょうか。
チャレンジは残り50日余残っていますが、何を描いていきましょうか。
例えば、もっと描き込み量の多い絵を目指していきたいなとは思っています。まあ、あまり肩ひじを張らず、好きなものを好きなように模索していけばいいのかなとは感じています。