SamSuka
スタジオ真榊
スタジオ真榊

fanbox


ちびキャラの表情・ポーズ差分をAIで大量生産する方法



今夜はちょっとしたテクニック紹介で、「AIイラストが理解る!2024年版」の中で掲載したこちらの百面相GIFの作り方を記事にしたいと思います。私はForge上でAnimagineXL3を使って作りましたが、精度に多少の差はあれ、基本的にA1111&SD1.5系でもできるはずです。(自然にインペイントできないときは、記事後段の【SD1.5向け】うまくいかないときはをご参照ください)

(frame embed)


もくじを兼ねて全体の工程表を簡単に説明すると


1.ちびキャラの素体を大量生成

2.おかしなところを加筆修正する(省略可)

3.顔部分をインペイントで塗りつぶし、Wildcardを使って表情差分を大量生成

4.「手の周辺をインペイントで塗りつぶし、首から下の別ポーズを作る

5.画像編集ソフトで顔差分と首から下差分を適当に組み合わせる


という感じ。さっそく順番に見ていきましょう。



1.ちびキャラの素体を大量生成

まずはインペイント元となる「素体」を作ります。今回は「理解る!」の解説用ミナちゃんを作りたかったので、ちびキャラのAnimagineXL3用プロンプトを次のように組みました。太字部分がミナちゃんの容姿プロンプト、後半がクォリティタグと白背景にするためのタグです。


PP:1girl,(chibi:0.8),【表情プロンプト】,solo, (semi rimless eyewear,red glasses),(navy school uniform,navy serafuku:1.3),ponytail,short sleeves,upper body,shiny skin, beautiful purple eyes,black hair,white ribbon, best quality,amazing quality,highres,4K,extreme detailed CG,(rating: general:1.2), white background,simple background


【表情プロンプト】の部分をWildcardを使ってランダム化(1枚ごとにsmile,angry,sad...と変化)させようと思います。Wildcardはめちゃくちゃ有用なので、まだ使ったことがない方はこちらの記事をご参考に導入することをおすすめします。

「Wild card」でもっとForever生成を楽しもう!

こんばんは、スタジオ真榊です。このところControlnetの研究報告が続いたので、今夜はとっても便利なのに取り上げる機会がなかった拡張機能、「Wild card」についての記事を書こうと思います。「固定シチュエーションを色んなキャラで描いてもらおう!」で紹介したDynamicPromptに似た機能で、何にでもなれる「ワイルド...


せっかく先日「プロンプト超辞典」で作ったWildcardがあるのでそれを使いましょう。

画像生成AI「プロンプト超辞典」2024年版 【AnimagineXL、NovelAIv3準拠】

【更新情報】2024.02.24:【5-1-8】男性向けの髪型を追加 2024.04.08:「glaring(睨む)」「gesugao(ゲス顔)」「arms at sides(手を下ろす)」「standing at attention(直立不動)」「hands at sides」「arms at sides」(両手を自然に下ろす)「emotionless sex」(平然挿入)等を追加。 ◆はじめに -この辞典の使...


各項目の最初のところに収録語を列挙したWildcardがありますので、こちらの「emotion.txt」をSDwebUI(or Forge)の「extensions\sd-dynamic-prompts\wildcards」に保存します。


webUI上で読み込むと、このように「ワイルドカードファイル」欄に呼び出しトリガーと収録語一覧が出てきます。プロンプト欄の好きな場所に「__emotion__」と入れれば、生成するごとにランダムで「smile」「smile with closed eyes」「laugh」...といった140種の表情プロンプトが一つ選ばれるわけですね。


つまり、プロンプトは次のようになります。


PP:1girl,(chibi:0.8),__emotion__,solo, (semi rimless eyewear,red glasses),(navy school uniform,navy serafuku:1.3),ponytail,short sleeves,upper body,shiny skin, beautiful purple eyes,black hair,white ribbon, best quality,amazing quality,highres,4K,extreme detailed CG,(rating: general:1.2), white background,simple background



テスト生成結果がこちら。

かわいいーッ!


Animagineのちびキャラはかわいくてしょうがありませんね。もうこれでいいんじゃないでしょうか、となりますが、解説役として挿絵に使うにはちょっとクォリティが高すぎていじりにくく、イメージもちょっと違います。絵の情報量を落とすべく、ここは月須和・那々さん謹製の超有名LoRA「flat」のSDXL用を使わせていただくことにします。

(frame embed)



さきほどのプロンプトに単純にflatを効かせたのがこちら。

パキっとした塗りで情報量が抑えられ、イメージ通りの挿絵調になりました!


2.おかしなところを加筆修正する(省略可)

もうどれでも可愛いからOK、という感じなのですが、これから作りたいのはインペイントする用の「素体」ですから、できればリボンや制服のカラーなどがイメージ通りのものを作りたいですね。ミナちゃんは制服の胸元にヒイラギマークが入るのが正式なので、それも入れておきたいところ。そうしないと、これからインペイントで大量生成されるミナちゃんに一つ一つマークを合成するはめになってしまいます。


そこで、一番よさそうだった一枚を選んで、このように加筆しました。

1024×1024pxでポン出ししたものにマークを入れ、髪の毛や制服、リボンのおかしいところを簡単に直しただけのものです。もっとハイクォリティかつ塗りを均質にするため、img2imgアップスケールをかませて1.5倍か2倍くらいに大きくするべきだったのですが、ここではそのまま進めてしまいました。このせいであとで修正が面倒になったので、素体はできるだけ手を掛けてあげることをおすすめします。


3.顔部分をインペイントで塗りつぶし、Wildcardを使って表情差分を大量生成

素体ができればあとは簡単。SDwebUIのインペイント欄でさきほどの素体画像を読み込みます。プロンプトはさきほどのままにしていますが、変更するのは表情だけなので、本当は服装や髪型などに関するプロンプトは不要です。


顔をインペイントします。大事なのは、「変更してほしくない部分は残す」ということに加えて「変更後の表情で変わるであろうところはきちんとカバーする」ということ。例えば、こういうのはだめです。


なぜだめか。まず、眉を塗りつぶすのを忘れているので、ランダム表情にしてもすべて眉をしかめている画像になってしまうというのが一点目。もう一点は、こういうおおきな口を作ってくれなくなってしまうためです。


実際にやってみると、Animagineはこのスペースに収まる顔を描こうとするので、このように表情の幅が全然なくなってしまいます。


バリエーションを出すために、しっかり大きめにカバーしましょう。

ただ、輪郭線などはできるかぎり残っていないと、顔や髪の毛の造作が変わってしまってキャラクターイメージが変化してしまいます。逆に、フェイスラインが変わるほど大きな表情変化(ギャグ系とか)を狙うこともできるので、「どこまで塗りつぶすべきか」は好みと使用用途で変わってくるでしょう。


インペイント設定は以下の通り。「マスクの範囲をインペイント」するのは当然として、「マスクされたコンテンツ」は「元の画像」(つまり元画像の部分img2img)とするのが経験上最も失敗が少なく、品質もよいです。「潜在空間でのノイズ」を選ぶと蓮コラみたいになります…


インペイント領域を「画像全体」にすると境目が分かりにくくなり、「マスクのみ」にするとバレバレになります(そのかわりマスクされていない部分は全く変わらない)。インペイント跡がどれほど残るかは「マスクのぼかし」「外側の余白」で調整しましょう。マスクのぼかしは0に近くなるほどふちがはっきりしてしまうので、最低でも15以上は確保したいところです。(大きすぎるとインペイントしたはずの部分が残ってしまうことがあるのでそれも注意)


重要なのはノイズ除去強度です。低いとあまり表情が変わらず、高すぎると周囲になじまずに線が切れてしまいます。試しに0.4~1.0の間で比較すると次のようになります。


一目瞭然ですね。1.0だと前髪がすっぱり切れてしまって、インペイント範囲に別の画像を雑コラしたみたいになってしまうのです。というわけで、0.7~0.8くらいが体感上もっとも結果が良いということになります。


さて、設定が決まったところで大量生成の時間です。知らない人はいないと思いますが、生成ボタンを右クリックして「停止するまで生成を続ける」をクリックすれば、再び右クリックで止めるまで同じ設定で生成が続けられます。できたものからできのよいものを拾っていきましょう。

このように、たくさんの表情集ができました。


ぐるぐる目がかわいいですね!


こちらの笑顔の一枚はよくできているのですが、眼鏡のつる(向かって右の目じり付近)がちょっとおかしいのと、眉毛の上部分に横一文字にインペイント跡が走っているのが気になります。webUIの「その他」欄からアップスケールして消してもよいのですが、このとおりせっかくフラットな塗りなので、加筆で塗りつぶしてしまった方が早いでしょう。


今回の生成は急いでいたので、結構反省ポイントが多いです。素体の肌色がやや不自然だったのと、眼鏡のつるのところをもうちょっとうまくごまかしておけばよかったなと。あとで修正に苦労するハメになりました。


4.「手の周辺をインペイントで塗りつぶし、首から下の別ポーズを作る

これで表情差分は終了なのですが、オマケとして首から下の別ポーズも作りました。こういうのがやりたかったからですね。


これはさきほどと同じ方法でwildcardを使ってもよいのですが、ぶっちゃけ数枚手が映っている差分が欲しいだけなので、NovelAIのV3インペイントを使ってしまいました。


こちらのスクリーンショットを見ていただければもはやすべて伝わると思いますが、元画像を画面左で読み込ませて「描いてマスクを追加する」▶「手を挙げてもらいたい部分をインペイントで塗りつぶす」だけです。


プロンプトはこれだけ。インペイント部分に描いてほしいことだけを入れています。


5.画像編集ソフトで顔差分と首から下差分を適当に組み合わせる

あとはめちゃくちゃ簡単で、選びたい表情の画像と首から下の画像を組み合わせてポーズを作るだけです。単純にすぱっと切ってしまうとこの画像のようにもみあげ部分がうまくつながってなかったりするので、できるだけ丁寧につなげてあげましょう。


【SD1.5向け】うまくいかないときは

こちらは、SD1.5系のモデルで同じように行ったものの失敗例です(キャンバスサイズは512x512に変更)。そもそもインペイント元が別モデルということもありますが、こんな感じでインペイント内外が全くつながらず、ひどい出来になってしまっています。

このように、SD1.5系のモデルでやってもうまくいかないときは、img2imgのインペイント画面でやるのではなく、text2image画面でControlnetの「InpaintOnly」と「ReferenceOnly」を併用する手法に変えるとよいでしょう。詳しくはこちらの記事で解説しています。

最新のControlnetで差分イラストを作ろう!(表情・服装編)

珍しく日中からこんにちは!スタジオ真榊です。 今日はいわゆる「差分」の作り方に関する記事をお届けします。差分と言えば、表情差分やポーズ差分、服装差分や背景差分、セリフ差分など、主にイラストやゲームなどにおける画像バリエーションのことですね。 AIイラストでは、これまでも主にマスク部分のimage2imageを使...


1つめが「InpaintOnly」

2つめが「ReferenceOnly」です。


このように設定して生成すると、AnimagineXL3ほどではありませんが、SD1.5系でも表情差分を作ることができます。この作例では512x512サイズで高解像度補助を2倍に掛けて生成しています(R-ESRGAN 4x Anime6B/重み0.4で使用)


こちらがSD1.5系の「SDHK v4.0」を使って生成した作例です。

SD1.5系作例



【おまけ】GIF動画化

せっかく大量に表情差分ができたので、お遊び的に作ったのが冒頭の百面相GIF動画。GIF動画を作る方法はそれこそググっていただければいくらでも出てきます(クリスタでもできます)。こういう無料ウェブサービスみたいなところだと、スマホからでも適当なGIFが作れて便利ですね。

(frame embed)



こんな感じで適当に放り込んで、切り替わりの速さとサイズ指定をして「GIFを作成」であっという間に作れます。


というわけで、「ちびキャラの表情・ポーズ差分をAIで大量生産する方法」でした。



こう動画にしてみると分かりますが、このテクニックはやはりインペイント範囲の塗りつぶしがキモでして、眼鏡を避けるように塗りつぶしていれば(特に向かって右の耳付近を残していれば)もう少し破綻なく大量生成できたかなと思います。顔以外の例えば髪の先っちょなんかも少し塗りつぶしておくと、ランダム感が広がってよいのではないかなと思います。


たとえばこのように塗りつぶしますと、眼鏡部分がしっかり残るので…


このように眼鏡部分は破綻せず残すことができます。ただ、憂い顔ばかりになってしまっているのはインペイント元の眉の角度にひっぱられているせいですね。マスクのぼかしをかけているので、うっすらインペイント元の眉がマスクしきれずに残ってしまっているため、このような角度になってしまうのです。また、前髪の処理もそれぞれ少し違ってしまっていますね。


細部を正確に残すか、しっかりしたバリエーションを望むかは状況によると思うので、何を作りたいかによってインペイント領域やマスクのぼかしの強さを調整すると、より正確にバリエーションが作れると思います。もっとこだわるのであれば、「素体」とレイヤーで重ねて人力でいらないところを消しゴムすれば、完璧な差分が手に入るでしょう。


それでは今日はこのへんで。もしこちらの記事を読んでオリキャラ百面相ができたら、ぜひ見せてくださいね。スタジオ真榊でした。






ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法 ちびキャラの表情・ポーズ差分をAIで大量生産する方法

More Creators