見出し画像

【StableDiffuision】img2imgを使って既存絵を完成して”貰う”! PART1

「はぁはぁ…、がんばって線画描いて、とりあえずベースの色も塗ってみたぞ…」
「ここから、陰影やハイライトもこだわって、お気に入りの神絵にするんだ…」
「…」
「……」
「………まぁ、明日やるか」

描いた(途中)絵

StableDiffusion先生に、挫折した絵に命を吹き込んでもらう

絵を描きを始めた多くの方によくある事例かと思われます…。
なんとか形になったら、次のハードルの高さにorzしがち。

そこで、今回ラフ絵が溜まっている方向けに
頓挫した絵を、ステブル先生の手によって、理想の最終形に昇華して貰いましょう!

そんな企画ですです。。。


※今回StableDiffusionを既に導入済みの方向けです。導入されてない方は過去記事参照くださいー

※ちな、この絵はモンスターストライクのマナ(制服バージョン)が、微小な小石で躓き、あられもない姿を露呈し、実はドジっ子属性だったっていう絵。。。

「img2img」を使ってみる

何はともあれ、まずはステブルのimg2imgタブをクリックします。

img2imgタブをクリック

基礎設定1 - 下準備

基本的な下準備をします。
今回、使用したモデルは「Anything V4.0」です。2D作成はワイはこれ気に入って使わして貰ってます。既に好きな他の2Dモデルがあれば、それ使ってください。
※Anything V4.0はHugging Faceからダウンロードできます → https://huggingface.co/andite/anything-v4.0/tree/main

モデルを指定、基礎プロンプトの入力、描いた絵を読み込む

モデルを読み込んで、クオリティーのアップする基礎プロンプト部分は下記に記しているんで、テスト的に今回コピペしてください。最後に、描いた絵を枠内にドロップしてステブルに読み込み。

基礎設定

ポジティブプロンプト(上の枠)
RAW photo, best quality,realistic, photo-realistic, best quality ,masterpiece,an extremely delicate and beautiful, extremely detailed,2k wallpaper, Amazing, finely detail, 8k wallpaper,huge filesize , ultra-detailed, highres, extremely detailed,realistic, 8K, Ultra-High Definition, highest quality, ultra high resolution, (realistic:1.4), High quality texture,
(extremely detailed eyes and face),japanese,

ネガディブプロンプト(下の枠)
EasyNegative, ng_deepnegative_v1_75t,paintings, sketches, (worst quality:1), (low quality:1), (normal quality:1), lowres, normal quality, ((monochrome)),
worst quality, low quality, normal quality, jpegartifacts, signature, watermark, blurry, cropped, poorly draw, poorly draw, worst quality, low quality, lowres,

基礎設定2 - 生成する画像サイズを指定

読みこんだ画像サイズに、生成する画像サイズを調整します。
ある程度生成サイズは大きい方がクオリティー上がるので、今回はHeightを960pxに設定し、Widthを776pxにしました。

Heightを960pxと打ち込み、Widthのスライダーを動かすと赤枠が表示されるので、画像を丁度覆い隠すようにスライダーを調整します。(超便利、神!)

生成サイズを指定

とりま生成してみる

とりあえず、上記設定ができたら「Ganerate」してみる。

とりま生成

うーん、なんかよくわからん構図なのが生成された。。。

元絵とはナノレベルで雰囲気はあるけど、かけ離れた絵が生成されたと思います。
なので、元絵に近づけるよう次の調整をします。

Denoising Strengthを調整

この機能は、数値が低い程、元絵に忠実に生成され、数値が高いほど、ステブル先生補正によりクオリティーは上がるが元絵からイメージは遠のきます。一見、なら数値が低い方が元絵に近いならそれでいいじゃん、と思いますが、それだとただ元絵が生成されてクオリティーアップになりません。かと言って、数値を高くすれば元絵からかけ離れた上のような期待した構図が生成されません。

なので、構図は元絵に近く、クオリティーもアップできる数値を目指して調整します。

まず「0.4~0.5」を基準にする

上の絵はクオリティーは良いが、構図がアウトです。だから数値を下げてやります。基本的には「0.4~0.5」から始めるのがオヌヌメ。
生成絵に対し、数値を上下させてやる。

Denoising Strengthの調整

んで、生成してみる。
うおぉ、元絵に近くなって校正されたぞ!

Denoising Strengthの調整して生成

…んー、中々いいんだけど、なぜか着物きてるし、配色も違うなぁ。

Denoising Strengthの調整して生成された絵

プロンプトを指定して、元絵の説明を加える

基礎的なクオリティーアップのプロンプトしか指定していない為、構図は近づいたが、元絵と乖離した部分が多く出てると思います。なので、「絵を見てステブル先生が認識してないであろう部分の説明をプロントに追記」してやります。

おそらく認識してないであろう部位

  • 学生服と認識していない

  • チェックのスカートと認識していない

  • リボンと認識してない可能性高い?

  • ロングヘアーと認識してないかも

  • パンティーはピンク色と認識してない

  • 紫色のバッグを認識していない

ポジティブプロントの欄に、下記を追記しました。
「school yuniform,check skirt,pink ribbon,long hair,pink panty,purple bag」

追記プロンプト

んで、再生成。
うおぉ、イメージに近づいて可愛くなった!!!

プロンプト指定後の絵

更にクオリティーをアップする!

自分の描いた絵がこんなに簡単に、細部の塗りまでやってくれて興奮冷めやらぬぅぅ!!(*n''∀'')n バンザーイ

…しかし、まだステブル先生にしてみれば、これぐらいは序の口。
更にお願いしてブラッシュアップを図ります。

「Sampling method、Sampling stepsの変更」「Restore faces」の適用

  • 「Sampling method」を変更
    これは、絵を生成する人間が十数人いて、目的となる指示(プロンプト)は示されてるが、それぞれの個性により生成する絵には個性が出ます、という概念です。仕事は早いけどオーソドックスな出来で仕上げる「Eular」さんに比べ、仕事は遅いが精度の高い仕事をする「DPM++2S」さん、ユニークな発想の持ち主「DDIM」さん、というような違いです。これを変えるだけで絵のテイストが大きく変わります。

    今回は私のお気にの「DPM++2S a Karras」さんにお任せする事にします。

  • 「Sampling steps」の変更
    より精度の高い仕事をしてくれ!という命令を定量化したものです。
    数値を上げるほどより絵のディティールがアップします。基本的に20~50程度の間で変更がオヌヌメです。
    ※数値を上げると精度は上がるが、生成時間の増加と作画崩壊を起こすデメリットがあります。上げすぎても体感それ程クオリティーは上がりません。
    ※応用で、数値を20で軽量でガチャを引き続け、良い構図が生成されたらSeed値を固定、Step数を上げて現状の構図をキープしたまま精度を上げる方策もあり。

  • 「Restore faces」の適用
    生成完了する前に、顔をシャキっと整えて!の指示を与えます。顔崩れ防止機能です。多少生成速度は落ちますが、ディフォで適用していて良い機能だと思います。

更なるクオリティーアップの設定

意気揚々と、ジェネレートぉ!!!

設定後の生成

…あら、、、、逆にクオリティー下がってない??

設定変更後の調整

気持ちディティールは上がったけど、なんか線画が濃くなりメリハリ付きすぎて、設定前の方が良かったんじゃないか??と感じます。なので、Denoising Strengthの数値を0.4→0.5に変更し、ステブル先生頼りの解釈で生成をお願いしてみます。

Denoising Strengthを変更
Denoising Strengthを変更後の絵

おぉ、線画の主張も緩和されてディティールもアップした!!
よし、この調子で微調整してお気に入りの絵に仕上げるぞ!

生成ガチャに突入

ここからは、各数値を調整→生成を繰り返し、お気に入りの絵ができるまで生成ガチャを繰り返します。
主な変更箇所の重要度順は下記の通りです。(1:高い → 3:低い)

  1. 単純なジェネレート
    Seed値が-1(ランダム)の状態で回し、お気に入りの絵ができるまで粘る

  2. Step数の変更
    数値を1変えるだけで生成絵が変わる、作画崩壊するなら数値を下げる

  3. Denoising Strengthの変更
    元絵とかけ離れたり、作画崩壊気味なら数値を下げる

【効率アップ】ガチャる際の便利機能

生成ガチャを繰り返す際は、途中経過(生成のぼやけ段階)で、恐らく期待する絵が生成できないな、と判断した際は「Interrupt」をクリックし生成を中断することで、無駄な生成時間を短縮できます。あきらかに作画崩壊が起きてるな、と判断した際は中断。
※Skipは割り込み機能。次の指示をシームレスに行う、との事ですがInterruptとほぼ同機能??

Interruptで中断で効率アップ

お気に入りの絵が生成!…がしかし

試行錯誤の末、イメージに近い気に入った絵が生成された!!ワッショ━━(∩´∀`)∩━━イ

※個人的に、元絵の線画が濃く出てる印象だったので、Denoising Strengthの数値を上げ、ディティールを高くしたかった為、Sampling stepを上げ、数回ガチャを引きました。

ガチャ後の絵
最終設定値

気に入った絵が生成出来た!…けど、細かな部分で納得いかないなぁ…

感じた修正したい点が以下の2点

  • 襟のリボンが欠損した

  • 左脚左部のカバン部分の描写がおかしい

顔や構図は気に入ったけど、更にガチャ引くと、構図全体が変わっちゃう。
なら、ピンポイントで部分修正すれば良い

最終調整「inpaint」で局部修正

大局的な箇所は変えずに、気になるポイントだけ修正できる「inpaint」を使用し、気になる箇所のみ修正を加えてやります。

生成絵を「inpaint」に送る

右下の「Send to inpaint」をクリックし、生成した絵と指示内容をinpaintに送ります。

inpaintに送る

生成絵と各種設置を引き継いで「inpaint」タブが選択された状態になります。

inpaint送信後の画面

修正箇所を塗りつぶす

「Inpaint」は、任意で黒く塗りつぶした箇所のみ、生成を行う機能です。生成絵の上にポインターを持っていくと、お絵描きソフトのように黒丸のアイコンが追従しますので、変更したい箇所をお絵かき感覚で塗りつぶします。コツは修正したい箇所を気持ち大きく塗りつぶします。右上のアイコンのグルグルマークがRedo(やり直し)、鉛筆アイコンが筆の大きさ調整です。

今回、襟のリボンの復帰と、左脚左部のバッグの再生成の為、下記のように塗りつぶしました。

Inpainの修正箇所を塗りつぶし

ガチャを回す

塗りつぶしが完了したら、何度かジェネレートを繰り返します。
思ったように修正されなければ、プロンプトの指示に強調指示※を与えたり、step数の変更やDenoising Strengthの変更を行います。
細かい箇所だけなので、生成速度上げるならSampling methodを「Eular」等の軽量サンプラーに変更しても良いです。
※リボンが中々生成しないなら「pink ribbon:1,1)のように

完成!

調整の上、理想的な絵が完成!\( *´ω`* )/
リボンはちと妥協したけど、まぁ許せる範囲。バッグは、転んで中身が道端に落ちましたよ、という解釈で納得しました。

完成絵
Before-After比較

こうして比較してみると、ステブル先生の力の偉大さが分かります。
初見、記事自体の手順を追って進めていくと最初は時間掛かりますが、慣れればそれ程時間を要することなく完成まで至ることができると思います。

↓PART2では、さらに1枚の作品絵まで仕上げる工程を紹介していますので、良かったら読んでね!↓


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