見出し画像

AIイラスト作成のメモ

Automatic1111の導入手順を書いた記事はいろいろある。
一方、どういう設定/プロンプトにしたら思惑通りのイラストを作れるのか という解説があんまりない気がする。ということで、今まで試したことをまとめておく。
逆引きtips的なものになれば良いなと思う。

免責事項
※ 可愛い女の子を見てればみんな幸せになるよね、程度のことしか考えてません。
※ 生成AIの中身は知りません。原理が分かんなくても使うことはできる。
※ 習うより慣れのほうが大事

・画像生成の流れ

[1] t2i にプロンプト入力して作成。
 キャラ/ポーズ/構図/背景など を指定したい部分を追加しながら作成を続ける
 出来の良いものはそのまま保存して、修正したいものは↓へ
[2] Send to i2i (全体的に直したい)
[3] Send to inpaint (部分的に直したい)
 Denoising strength は 0.25 が微調整、0.5 がほどほどに調整、0.75 が描き直し 
 こんな感じで覚えておくと良い。
[4] Send to Extras (解像度を上げる)
 Waifu 2x 使う方が楽なんだけど、PNF info が消えてしまうという問題がある。
 残しておきたい場合は Extas を使う。

・間違えてウィンドウ閉じちゃったら

[1] 再度開き直して Generate ボタン下の青いアイコンを押す
 これで直前のプロンプトとSeed値を復旧できるので描き直せる。
[2] "output"フォルダから最後の画像を取り出す
 生成画像を保存する設定にしてある場合はこれを PNG info タブで復旧すればOK

・プロンプトの設定

特定のキャラを描きたいのでなければ、とりあえずこれで良いと思う。

1girl, solo, loli, long straight hair, hair ribbon, blunt bangs, red eyes, clear face, medium_breasts,


lowres, bad anatomy, bad hands, cropped, worst quality, low quality, normal quality, jpeg artifacts, missing fingers, split arm, split finger, missing legs, extra leg, text, multiple views, signature,

コンマを使わず空白で区切る派閥もいるけど、実感できるような差は感じなかった。
{}と [] を使う派閥もいるけど、使わなくても問題ない。宗教性の違いですね。

品質プロンプトはMajinAIのイラストをいろいろ見て真似してみるしかない。探すのが面倒ならとりあえずこれを追加すればよいと思う。

masterpiece, best quality,
intricated, gorgeous, detailed, elaborated, epic,
light_leaks, cinematic_lighting, caustic, lens_flare, lighting_particle,

ネガティブはご自由に。前述の例は元素法典から取り出したものだったような気がするけど、よく覚えてない。「こういうイラストになってほしくない」要素を書いているだけなので細かな違いはないと思う。EasyNegative とか使ったほうが確実かも。

CFG値は 7.0 から変えなくて良い。
CFG=4.0~13.0 の範囲内で変更すればイラスト崩壊しない程度に画風を変更できるけど、思い通りに調整するのは難しい。低めにすると全体がぼやけて、高めにするとコントラストが強くなる傾向がある。Seed固定して試してみるといいかも。

・ロリ化したい

[1] ロリキャラの出やすいモデルを使う。loli diffusion とか
[2] small_breasts を指定する。(巨乳を指定すると背が高くなるので)
[3] Short stack LoRA を使う

・キャラの向きを変えたい

 たくさん作ったイラストが全部同じ構図だと微妙な気分になる。
[1] 真正面を向いてほしいなら front, 斜め構図がいいなら from_side を指定する。
[2] dynamic_angle, dutch_angle を指定するのも気休めになる。
[3] イラストの横幅を広げると斜め構図になりやすい。
 逆に、正面向きで幅の広いイラストにしたいならW512で生成してから横に広げればよい。画像の拡大手法については後述のズームアウトで説明する。

・背景を強調したい

[1] W1024 x H768 にするのが手軽、かつ崩壊しにくい。
[2] depth_of_field, atmospheric_perspective, one-point_perspective,
 指定すると気休め程度の効果がある。人体崩壊しやすくなるので強調はほどほどに。
[3] LoRA を使う。Civitai で scenery とか background で探すといろいろ出てくる
[4] 背景のプロンプトを長くする。
 ChatGPTにプロンプトを考えてもらう。長すぎると人物が消えやすい。
 背景だけで75トークン未満になるよう削ると良い。

イラスト生成するためのプロンプトを英語で100文字程度で提案してください。以下のキーワードを使ってください。
「森の中」「岩の合間を流れる小川」「木漏れ日」「針葉樹林」

これではいけませんね

・ズームアウトしたい

full_body を使えば自然と遠景になるのだけど、顔が崩れる。
[1] full_bodyで描いてから、inapint の "Only masked" で描き直す。
 プロンプトは人物情報だけにすること。大きいサイズのイラストであっても 768x768 未満を指定すること。(最終的な画像サイズには影響ないので)
[2] cowboy_shot で描いてから、i2i のスクリプトで Outpainting を使う。
 Denoising strength = 0.8 以上で、プロンプトは背景情報だけにすること。
 上と左右への延長は成功しやすい。下に延長するのは失敗しやすい。特に床が見えていると『膝下が埋もれてしまった』状態になりやすい。
[3] cowboy_shot で描いてから、inpaint_upload を使う。
 元画像とマスク画像を用意して外側に描き足してもらう。
 このタブでは、描き直さない部分を黒色マスクすることになっているので要注意。
[4] ペイントで画像サイズを広げて inpaint, fill, Denoising = 0.8 で描く
 これが一番簡単だと思う。プロンプトを背景情報だけにすることを忘れずに。(n敗)

いっつもプロンプトを消し忘れてゴーストを誕生させてしまう..

・書き込みを細かくしてほしい

これは明確な解決策がある。
[1] flat LoRA をマイナス適用。<lora:flat2:-0.3> ぐらいがちょうどいい感じ
 とりあえずこれだけやっておけば解決する。
[2] DPM++ 2M Karras を使う。他の DPM サンプラでも良い
[3] 3d を指定するとちょっと書き込みが増える

・色合いを薄くしてほしい

DPM系列は色使いがキツイので目が痛くなる という人向け。
[1] i2i で Eular A を使って描き直す
 Denoising strength = 0.2 ぐらいなら構図を変えずに色合いだけ変わる。
[2] VAE の指定を外す
 淡いというか、霞んだ色合いになる。試すなら i2i だけにした方がいい。
 inpaint すると書き換えた部分だけ色合いが変わってしまうので見栄えが悪い

・崩れた指を直したい

inpaintで直し続けるしかない。
指の崩れやすさは モデル ⇒ プロンプト ⇒ ネガティブプロンプト の順に崩壊しやすさが決まっているように感じられる。崩れやすいモデルは何度描き直しても良くならない。崩れにくいモデルでも、プロンプトによっては崩れやすく直りにくいことがある。
ということで、解決策は以下の通り。

[1] モデルを変える
 いま使っているものが気に入ってるなら階層マージする(後述)
[2] プロンプトを75トークン未満にする
[3-1] inpaintする1
 基本は Masked content = original とする。
 手と呼べないほど崩れているときは Masked content = fill とする。
 Denoising strength = 0.75 (手のサイズからして変)
 Denoising strength = 0.5 (手のサイズは良い。指の長さ/本数が変)
 Denoising strength = 0.35 (ほぼOKだけど指の長さ/太さが変)
[3-2] inpaintする2
 上記で治らなかった場合、"Only masked" を使う。
 プロンプトは detailed_hands だけを指定して描き直す。
 祈祷力しだいで治療に成功したりする。
[4] ネガティブ用 TI を使う
 EasyNegative とか bad_hand とか negative_hand とか色々あります。
 画風に影響が出てしまうのが嫌なら inpaintするときだけ使えばOK
 影響出てもいいなら t2i で作るときから指定しておくと良い。
[5] arms_behind_back を使う。
 これは最後の手段にしたい。

ポン出しでこれなら十分でしょう。LineCakeA1 が優秀だったのだと思う

・髪とか紐とか余分なものを消したい

[1] Lama Cleaner を使う。
[2] inpaintで頑張る。ペイントでベタ塗りしてからinpaintすると直りやすい。

・解像度を上げたい

いろいろ手法があるみたいだけど、簡単なのは i2i のスクリプトで SD_upscale を使うことだと思う。サンプラは SwinIR を使っておけばOK。
ControlNet-Tile とか Hires.fix とか、効果あるんですかね。

あるんでしょうね。そのうち試そう

・視線の向きを変えたい

これは割と厳しい。
looking_to_viewer を使うとこっち向く。指定しなくてもこっち向く。
looking_away を使えば正面以外の方向に顔を向けやすくなる。では顔だけこっち向けてもらって目線だけ外してもらうにはどうするか。
⇒ inpaintで頑張るしかないと思うよ。今のところは。

・階層マージ

2つのモデルの良いとこ取りをしようという話。
 IN00, IN01 が指に効く。
 IN04, IN05 が人体/髪/服装に効く。
ということで、ALL_A の状態にしてから IN00, 01, 04, 05 のゲージのうち1つだけB側 100% にしてマージしてみるといい。
マージ前のモデルとマージ後のモデルで同じSeed値のイラストを作ってみて、良くなっていれば他のゲージも混ぜてみる。
マージは数10秒で終わるから次々作りたくなるけど、容量をめっちゃ食うので注意。

Merge Block Weight タブは標準だったっけ? Extention?

・百合イラストを作りたい

さあ本題だ。
まず大前提として Cut-off の extention を入れる。これがないと色移りしまくったりフレイザード化するので入れるしかない。強度はもちろん Max まで上げる。
Lerp, SLerp はどちらも選んでも大きな差は無い。
Cutoff strongly と Padding token は、一人のイラストでは有効だけど、二人のイラストでは逆効果なので使わない方が良い。

プロンプトは
2girl, (ポーズとか背景とか), BREAK, (一人目の特徴), BREAK, (二人目の特徴)
という構成にするのが安定する。きっとそうだ。信じる力が大事。
 
そして重要なのは視線である。基本的には見つめ合っていてほしい。
片方だけ見つめていてもう一人は視線を外しているとか、背後から見つめているとかも欲しい。そうなると視線の指示だけではうまくいかないけど。
[1] facing_another, eye_contact, looking_away を使うのが基本
 常に見つめ合ってしまう場合は eye_contact の強度を下げましょう。
[2] hug_from_behind, sitting_on_another, symmetrical_docking,
 
この辺りが応用ですね。
[3] turn_her_face_away を使って inpaint する
 片方だけ視線を外すことができたりできなかったりする。できないことの方が多い

ちなみに looking_away はカメラのほうを向かないでねという意図になるので百合画像を作るなら必須。書かないとカメラ目線になってしまう。これは失敗である。
古来より石の下で生き延びてきた百合原理派としては、カメラ目線はカメラ役の男を示唆しているから百合画像とは認められないのである。原作に男がいないのにゲーム化されたときにオリキャラ男主人公が出現するという悪夢を見てきた人たちはカメラ目線の有無を地雷判定として活用していたのだ。だからカメラ目線は悪なのである。
私は原理派じゃないから「カメラ目線は相手に見せつけてドヤってる」という解釈で美味しく頂ける。
話が逸れてしまった。

これは目を逸らしていると言えるのか。
焦点が合ってないと言うべきなのか

・百合イラストでそれぞれのキャラを指定したい

無理。現状では無理。諦めた。
Latent couple extentionを使うという話もあったけれど、指定が難しいわりに打率がいまひとつ。プロンプトを整えて祈りを込めてガチャを回すのが一番正解に近いと思います。いまのところはね。
解決策と言えるかわからないが、双子の姉妹だったら特徴が混在しても分かりにくい。相対的にプロンプト指定の当たる確率が高くなる。姉妹百合が好きだからこれで解決したことにして良いんじゃないだろうか。
よし、解決したな。

・ControlNet とは何なのだ

canny :輪郭線を出力する。元イラストに近いものを作れる
lineart-coars :cannyの強化版。塗りが淡い
lineart-anime :cannyの強化版。塗りが強い
Openpose :棒人間
Shuffle :元画像の画風を残して新規に作り直す
Scribble :落書きを出力する。canny に近いが、細い線を無視する
Segment :ペイントの塗り絵を出力する。色によって表現するものが違う
Reference :ベース画像にプロンプトを反映して描き直す

元イラストの構図を生かしたいなら Lineart(強) ⇒ Canny ⇒ Scribble(弱)
ポーズだけ取りたいなら Openpose
画風だけ取りたいなら Shuffle, Reference

・イラストを作るネタが無い

[1] ダイナミックプロンプトを使う。
 Civitai で "Wildcards" だけフィルター検索する機能があるのだ。
[2] ChatGPTに考えてもらう。
 音楽のタイトルとか小説の一文を使うだけでなかなか味のあるイラストになる。

イラスト生成するためのプロンプトを英語で100文字程度で提案してください。以下のキーワードを使ってください。
「姉妹」「抱き合っている」「夕暮れの空」「ベッド」

ChatGPT のプロンプトをベタ打ち。だいたい想定通りになるので凄い


・おわりに

無駄に長くなってしまいました。
もしここまで読んでしまった人がいたら、なんだか申し訳ないです。深夜テンションで適当に書きましたが、お役に立てる部分があれば幸いです。
プロンプト集とか需要あればそのうち整理しようかな..

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