画像生成AI

【Stable Diffusion】ControlNetとクリスタでピアノイラストの質を上げる実験!

どうも?youtube動画を再開するする!と言っておきながら、依然としてブロガーなエルティアナです…!

ということで今回もStable Diffusionについてブログ記事を書いているのですが、今回、いつもピアノを出力するときに、88鍵の鍵盤がtxt2imgではほぼ確実に出ないというのと、ピアノの形状自体も安定しないので、なんとか本物に近いイラストを出せないか?を実験してみました!

手段としてはクリスタの3D素材を使い、ControlNetに読み込ませる元画像を作成して、それをもとにまずはピアノだけの画像を生成してみました。

ピアノの画像が出来たら、そこに、私(エルティアナ)の姿を追加して、最終的に『ピアノに座っているエルティアナ』のイラストを作ってます!

結果から言ってしまうと、今回試した手法では完璧に88鍵を出力することはまだ難しかったけど、でも、なかなか実用的なレベルのイラストが出せた!という感じです!

手順をご案内するので、ぜひ最後まで読んでみてください(*・ω・)ノ!

今回の完成イラスト

早速、今回やってみた完成イラストをお披露目します!

こんな感じですがいかがでしょう?最後は力業ですが多少(5~10分くらい)鍵盤を手直しで修正して何とか88鍵っぽくしてみました!

個人的には、結構実用的なレベルにできたかな?と思うのと、もしこれを自然な形でアップスケール出来たらうれしいな!と思ったりしてる感じです。アップスケールに関してh、手法が様々あって、何個か試しているんですが、まだいまいちピンとくる手法を確立できてなくて、このイラストを元に、再挑戦してみようかな!と考えてます!

①クリスタの3D素材からグランドピアノのイラストを出力

それではイラストが出来上がるまでの手順を解説していきますね!

まずは、クリスタで正方形(今回は1024px*1024px)のキャンパスを新規作成して、3D素材を読み込んでいきます!まだクリスタをもってなくて、ぜひやってみたいという方は、無料試用期間もあると思うのでぜひ使ってみてください♪


使用した3D素材

いつダウンロードしたか、自分自身も覚えていないのですが、今回使用した3D素材は以下の2つです!

クローズド・リッド・ピアノ (Closed-Lid Piano) ★有料:150 Clippy

ピアノ用椅子 ★有料:50 Clippy

これらをキャンバスに配置します(…クリスタの3Dモデルの操作UIが意外と難しい…)

そして後述しますが、今回のピアノイラスト出力にはControlNetのMultiControlを使いまして、その一つがScribbleなので、クリスタでピアノと椅子の線画を出してみます。

詳しい使い方は参考リンクにお任せしますが、以下のオートアクションで、漫画制作などで3Dモデルを線画やトーン化できるため、これを今回使ってみました。

オートアクションを使うとこんな感じになります。

ちょっと白鍵部分の線が心もとない…ので、手作業で描き足してみたのが以下です!

Stable Diffusionでイラスト出力

作成した画像を利用して、Stable Diffusion Web UIにてtxt2img(Multi ControlNet)でグランドピアノのイラストを出力してみます。

プロンプトと各種パラメータ

プロンプトとパラメータは以下の感じで、モデルは私のお気に入りのsakuramixを使っています。

■プロンプト

grand piano,<lora:flat2:-0.5>,white background

■ネガティブプロンプト

EasyNegative

■各種パラメータ

Steps: 50, Sampler: DPM++ 2M Karras, CFG scale: 15, Size: 512×512, Model Model: SakuraMix-v2.1, Denoising strength: 0.5, Clip skip: 2,Hires upscale: 2, Hires upscaler: Latent

 

ControlNetの設定

ControlNetはMultiにして3つ重ね合わせてみました(完全に感覚なので、もしかすると意味ないものもあるかも…ですが、再現結果ということで…)

ScribbleとDepth、Referenceを重ねがけしています。

■Scribbleに線画を読み込み

■DepthとReferenceには3D素材の画像を読み込み

出力結果

結果、ガチャ回しにはなりましたが、以下のイラストが出力できたので、こちらをOK稿とします!鍵盤は平均律になりきってなかったり、蓋に模様があったりで気にはなりますが、最終的に手作業で修正します!

② ①で出力したイラストに私(エルティアナ)のイラストを落書きで追加

次に、ピアノだけではさみしいので、私がピアノに座ってこちらを観ている姿をtxt2imgで足せないかなあと試してみました。

落書きを作成

まずは、ピアノイラストに3Dモデルを適当に乗せて、上から描いていきます。

3Dモデルを置いて、

適当に落書きを描き始め…

途中何度かStable Diffusionの出力具合を見ながら調整しましたが、最終的にはこんな感じの線画になりました。

Stable Diffusionでイラスト出力

描いた落書きを元にStable Diffusionでtxt2img出力します!

プロンプトと各種パラメータ

■プロンプト

1 girl, <lora:eruthianaver2:0.8>,smile,play the piano, Long skirt dress with ruffles,knee-high socks,Black boots,Piano chair,<lora:flat2:-0.4>,(white background:1.5)

※LoRaは私の自作です(非公開のもので恐縮です…)詳しい作り方はこちらのNoteでご紹介してます!(詳細が有料記事ですみませんが…)

■ネガティブプロンプト

nsfw, EasyNegative, verybadimagenegative_v1.3, bad-hands-5

■各種パラメータ

Steps: 30, Sampler: DPM++ 2M Karras, CFG scale: 10,SakuraMix-v2.1, Denoising strength: 0.5, Clip skip: 2,Hires upscale: 2, Hires upscaler: Latent

 

ControlNetの設定

エルティアナを描く際は、ControlNetはシングルで、Scribbleだけを使っています!

出力結果

こちらもかなりガチャは回したんですが、最終的に以下を決定稿としました!
だいぶ右手もおかしいのですが、修正は簡単そうだったのと、体や服の破綻が少ない(そう)な点でこれにしました。…まあたぶんそれでもおかしいところはある気がするのですが今回は雰囲気OKということで…

③ ①と②を合成+手直しで完成

あとはピアノとエルティアナの気になるところを修正したり、特にエルティアナは背景を消してキャラのみにして、グランドピアノのイラストと合成したら完成です!お疲れさまでした!

まとめ

これまで、ピアノを弾いている私のイラストは何度かおはようVtuber用などでも出力していて、雰囲気はそれっぽいものが出せていたので、txt2imgのガチャ回しでなんとかやっていたのですが、今後ちゃんとしたピアノを弾いてる感じのイラストが欲しい!となったときのためを考えて実験してみました!

まだ改良の余地はある感じですが、クリスタ+ControlNetという手法はしばらく固定で必要な感じだなあと、体験して改めて思います!

何かお手本になるプロンプトをただコピペして、きれいなイラストを出す分には比較的簡単ですが、自分が狙ったイラストを出力しようと思えば思うほど難易度が上がり、出力結果が微妙なものになりがちな現状のStable Diffusion。でも裏を返せばまだ人(自分)に落書きを描いたり3Dモデルを用意するような創作の余地が残ってる!とポジティブに考えて、引き続き画像生成を楽しんでいきたいと思います(*・ω・)!

やっぱりクリスタは必需品だし、神ツール!と改めて思いました!ぜひまだ使ってない方は、体験だけでもしてみてください?