見出し画像

AI画像生成ツール「Stable Diffusion」のコツまとめ(text2image)

先日オープンソース化され、話題を集めている「Stable Diffusion」を使っている中で気が付いたメソッドやコツをまとめる。自分の備忘録的な意味も込められているため適宜加筆していく。
導入については他に分かりやすいガイドがたくさんあるので割愛する。すぐに使いたいという人はGoogle Colabで環境をセットアップしてみよう。

Midjourneyとの表現の違いについて

まずMidjourneyのと違いについて気になる人が多いだろう。これについてはPromptに対する理解というか反応が異なるのと、出力される画像のタッチに基本的な違いがある。非常に端的に言うとStable Diffusionは生真面目な優等生タイプで、Midjourneyはどちらかというと独創的な自由奔放タイプだ。自分が作りたい画像のイメージによって適宜切り替えながら使うといいだろう。写真のようなリアルな造形をベースに画像を作りたい場合はStable Diffusion、芸術やアートよりなタッチで画像を作りたい場合Midjourneyのが適しているだろう。(Stable Diffusionを取り込んだMidjourneyの新モデルに期待だ)
どちらの性能が優れているといった議論は相当ナンセンスだ。楽器の音色が違うようにAI画像生成ツールにも表現にレンジがある。

実際に比較してみる

左がStable Diffusion,右がMidjourney

floor plan,Yggdrasil, Tree of Life, full page scan, parchment vellum, blueprint, mythological painting, insane focus, highly detailed, trending on artstation, high focus, artgerm, character concept, art print, 8k

上記は全く同じpromptでStable DiffusionとMidjourneyを比較してみた。左がStable Diffusion,右がMidjourneyだ。よりリアルなテイストはやはりStableDiffusionで、芸術的でアーティスティックな感じが強いのはMidjourneyか。どちらも違った良さがある。

パワーワードについて

Midjourneyで使えるワードと大きな乖離はなく、ある程度のワードは流用することができる。ただし同じワードでもそこから想起される表現が異なるものもあるので注意。下記によく使われているものをまとめる(※適宜追加中)

【画像の仕上がりを綺麗・リアルにしたい場合】
・Unreal Engine
・Realistic,photorealistic
・4k,8k,16k
・cinematic
・wide shot
・sharp focus
・realistic shaded
・カメラ名,焦点距離(25mm,30mm等)

【コンセプトアートっぽくしたい場合】
・trending on artstation
・character concept
・concept art
・artgerm
・digital art
・trending on artstation
・art print
・~poster(movie poster,anime posterなど)

【人物系】
・portrait(顔メインにしたい場合)
・full body(人の全身を映したい場合)
・~hair(long hair,short hair,blonde hair,black hairなど長さ、色指定)
・~skin(brown skinなど肌色指定、tanned skin→日焼けなど指定)

【その他ワード】
・hyper quality(とにかくすげえクオリティで頼む!)
・highly detailed(とにかく細部まで描け!)
・digital painting(イラスト風)
・~angle(wide angleとかUpper angleなど画像の視点やアングル調整)
・~ perspective(gopro perspectiveとか、視野角の調整) 
・cinematic lighting(強めの光を入れたい場合)
・soft lighting(弱めの光を入れたい場合)
・global illumination(全体的に見やすく、照明)
・ray tracing(実写ばりの3DCG風)
・color ~(物体の色を指定したい場合)
・colorful(発色を良くする)
・desaturated(色褪せた感じに)
・sci-fi(SFっぽく)
・steampunked(スチームパンク)
・cyberpunked(サイバーパンク)
・elaborate(緻密・精巧になりやすい)
・black and white(白黒にしたい場合)
・symmetrical(物体を左右対称にしたい場合)
・~ atmosphere(dark atmosphereとかbeautiful atmosphereとかdivine atmosphereとか画像の全体的な雰囲気作りを調整)
・atmospheric(趣深い感じ、雰囲気出てる感じに)
・manga,comic(漫画っぽく、線画っぽくなる)
・kawaii(ポップで2次元っぽくなる)
・fantasy(ファンタジー風に)
・anime(anime girlとかで2次元っぽくなる)
・trending on pixiv fanbox(イラストレーター風に、造形を安定化)
・Pixiv contest winner(イラストレーター風に、造形を安定化))
・weird(不気味、気味悪い感じ)
・blur(ぼかしたりしたい場合)
・brush stroke(強い筆感出したい場合)
・soft focus(フォーカスをゆるめに)

【固有名詞】
大抵名の知れている漫画家アーティストイラストレーター映画監督特定の映画タイトルアニメタイトルゲームタイトル等の固有名詞は通じるのでとりあえず自分の好きな要素の名前を入れたりしてみよう。ここはMidjourneyよりも学習の幅が広い。

【Promptまとめサイト】
Lexica
promptをまとめているサイト。単語ごとにタグ付けされていて、色々なジャンルの画像を検索できる。非常に便利。

Promptの記法について

固有名詞に強いのでMidjourneyよりも実在する物体や概念、アーティスト名を指示すると上手くいくことが多い。例えば特定のアーティストの画風で「雪の中にいる金髪の女の子」の画像を作りたい場合

portrait of beautiful girl, platinum blonde hair ,detailed eye and lips, by (アーティスト名), in the snowfall, wallpaper

このようにしてやればいい。記法の注意点としてA, B, C, Dのようにカンマと単語の間に半角スペースを入れよう。A,B,C,Dと空白を入れないで書いてもいいのだが、一応単語と単語が繋がって認識されてしまうケースを避けている。
画風の近いアーティスト名を複数入れることで造形や画力を安定する場合もある。とにかく主張したい、強調したい単語を前に配置し、調整ワードを後に配置するといい。また単語の順番を入れ替えて生成しなおすことでよくなるパターンもある。

構文の例

<主題>, <主題の状況>, <主題の背景>, <主題を描くスタイル> ,<調整ワードA>, <調整ワードB>, …

例:
portrait of beautiful girl(最も強調したい要素), platinum blonde hair (主題の状況) ,detailed eye and lips(主題の状況), in the snowfall(主題の背景), by Makoto Shinkai(イラストのスタイル), wallpaper(調整ワードA), trending on artstation(調整ワードB), …

私がよく使う構文は上記だ。出来るだけ強調したい要素を優先して前側にする。無駄な単語はできるだけ削った方がいい。もちろん例外はあるが、この形が安定してイメージを伝えやすい。

--prompt "portrait of beautiful girl, platinum blonde hair, detailed eye and lips, by Makoto Shinkai, in the snowfall, wallpaper, trending on artstation
" --H 704 --W 512 
(スケール数16、ステップ数100)

上記画像はアーティスト名にみんな大好き「Makoto Shinkai」を入れて10枚生成した中で良かったものをピックアップしたもの。短めのpromptでもそこそこいい画像ができる。

上記の例は初歩だがワード選びを極めて、ガチャりまくると

白髪少女

これくらいのクオリティの画像を無限に生成できるようになる。アニメ・2次元っぽいイラスト画像の作り方については書き出すと非常に長くなるため別途noteを書く予定。

例:架空の生物図鑑

キモイ生物

--prompt "infographics of book fictitious creatures, illustrated reference book, medical books, full page scan, artgerm, character concept, art print, realistic highly detailed, 8k, 25mm photo, photorealistic
(スケール数15、ステップ数100)

ステップ数・スケール数・サンプラーについて

ステップ数について

ステップ数は何を意味するかというと使用される処理ステップの量を調整する数値だ。数値が高いほど、レンダリングにかかる​​回数が多くなる。とはいえ数値が高ければ高いほど高品質な画像になるわけではないので注意。

Redditより各サンプラーとステップ数の相関をまとめた画像を引用させて頂いた。ステップ数は基本的に数値が上がるほどノイズが減り、具体化されていくのでデフォルトの50よりは高い値のがいい。個人的には100前後の値をよく使っている。

サンプラーについては多少違いはあるが、ステップ数が上がっていくとそこまで大差はつかなくなる。慣れてきたらサンプラーを変えて色々と試してみるくらいでいいだろう。
リアルな造形の画像を作りたいか、芸術的なアートワークを作成したいかなどで使い分けしたりする。

スケール数について

スケール数が何を意味しているかをちゃんと説明するのは難しいが簡単にいうと画像を生成する時にpromptをどれだけ重視するかを調整する数値と言える。

「バケツの帽子を被ったリス、ピクサー風」


こちらもRedditよりスケール数と各サンプラーの相関をまとめた画像を引用させて頂いた。スケール数3~30までの比較。ちゃんとピクサーっぽくなるのは10~15くらい。スケール数7前後が最も画像の変化量が多いと言われている。

・数値0→ランダムな画像を生成し、promptを考慮しない。
・数値低め→低くすることでより独創的になる可能性があるが、prompt外の要素も増えてしまう。
・数値高め→promptに正確に沿った画像が生成される。逆に言えば独創的ではなくなっていくので、しっかりとしたpromptを設定する必要がある。

個人的にはスケール数が低すぎても高すぎても微妙になるので、5~16あたりを利用するといいと思っている。5くらいにして予想外の要素を狙ってもいいし、数値を高めにして自分のpromptに正確に従わせてもいい。いずれにしても作りたい画像で使い分けよう。

画像の比率について

512×960(1:1.875)
512×512(1:1)

Promptはどちらも「a little girl is kissing a puppy」(小さな女の子が子犬にキスしている)だが2枚目は正常なのに1枚目の横長画像はとんでもないことになってしまっている。実は画像の比率が正方形から離れれば離れるほどパフォーマンスは下がっていく。
これはStable Diffusionのモデルが主に512×512で学習しているためだ。
縦長すぎたり、横長すぎたりすると物体や人物の造形が崩れやすい。よく起こるのは人の顔が2つになる現象だ。

個人的には比率512×704(1:1.375)、704×512(1.375:1)までは大きく画像が崩れたり、奇妙なことにはなりづらいがそれ以上比率が離れてると上記の犬の画像のように恐怖画像になってしまう。

画像生成の最大パフォーマンスは1:1であることに留意しよう。画像の比率には注意。今回の比率に関するRedditの議論や研究は下記を参照。

RedditやDiscordで情報を集めよう

Redditや公式DiscordサーバーではPromptに関する研究や有益な情報がたくさんあるので興味のある方は是非。

アップスケールについて

Midjourneyとは違い、生成した画像をUpscaleする機能(元よりも高い画素数に変換する)が用意されていない。かといって画像のサイズを大きくして生成するのは時間もかかる上に、スペックも必要になる。
色々と面倒なのでアップスケールは下記の2種を利用している。

・Stable Diffusion Web UI

こちらは有志によって作られたStable Diffusionのweb UIで導入に知識は必要だが、通常機能の他アップスケールやimg2img モード、GFPGANの機能が使える。非常に多機能でUIも分かりやすいのでおすすめ。

Web UIの画面

各パラメーターやサンプラーを簡単に調整できるため便利だ。

・chaiNNer

画像アップスケールに特化したソフト。様々なモデルを利用できるので、その画像に最適なアップスケールが可能なのが魅力。導入に関してはこちらの方の動画を参照。

少しだけ作品紹介

下記に作った画像の一部を紹介していく。Stable Diffusionでこんなこともできるのか!と何か発見があれば嬉しい。よく聞かれますが全て無編集無加筆の一発出しの画像です。

・アニメイラストレーション

黒のドレスと金模様の背景をイメージ。このイラストだけで何か物語が始まりそう。アニメイラストのprompt考察に関しては別途noteを書く予定。

・カードゲーム風イラスト

カードゲーム(TCG)っぽいイラストタッチで画像生成したもの。微調整すれば実際のカードイラストになってもそこまで違和感はないかもしれない。

・漫画背景

SFっぽい都市をイメージして生成したもの。線画らしくなりそれなりに漫画の背景やアイデア出しなどでも使えそうだ。

・龍をモチーフにした鍵

もちろんイラストだけでなくこういった写真のような造形を伴った画像もお手の物。こちらはドラゴンをモチーフにした鍵を作りたくなったやつ。
この画像から3Dアセット化するプロセスなどもあり、3DCGの業界も大きく変わっていくと思う。

・ゲームアイテムアイコン風

RPGゲームのアイテムのアイコン風。こんな感じの素材アセットを無限に生み出せるのでゲーム開発の環境も大きく変わりそう。
アセット・テクスチャ系のprompt考察に関しても別途noteを書く予定。

・融合ガンプラ

ガンダムで自分の好きな機体であるRX-0(ユニコーンガンダム)とMSN-04(サザビー)を融合させた。カラーリングもそれっぽくなって満足。
自分の好きな機体を融合させたり、まだ見ぬガンダムを作り出すのは非常に楽しい。
メカ系のprompt考察に関しても別途noteを書く予定。

・架空の鉱石図鑑

架空の鉱石図鑑。地層や断層っぽいイラストが配置されていい感じに。

・ねんどろいど

「霊夢のねんどろいど」と指定したら生成されたやつ。

もっと作品がみたい!という方は下記を見てみてください。


下記アカウントで普段作ったものを公開しています。よければチェックしてみてください。

またpixivでも作品を公開しています。こちらではR18等も研究していますので興味のある方は是非覗いてみてください。





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