24.9K Views
December 30, 22
スライド概要
チュートリアルで画像は出せたけど、欲しい画像をどうやって作ればいいの?という初心者向けにStableDiffusion解説スライド作ってみました
StableDiffusion 画像の作り方 flyfront twitter@flyfront
はじめ AIで画像を生成する際に、どのようなプロンプト(AIへの描画 指示ワード)を用意すればいいか? 画像生成AIはStableDiffusionを使用してのリアル写真風の 画像を生成していきます こういうイメージ画像→
目次 1. 2. 3. 4. はじめに StableDiffusionとは a. 画像生成の大まかなしくみ b. モデルが変われば画像も変わる c. 生成画面 画像生成をしてみる a. プロンプト生成 txt2img b. 指定画像と似た画像を生成 img2img まとめ
Stable Diffusionとは
画像生成の大まかな仕組み (txt2img) プロンプト 例:girl (描画内容指示) seed値 (乱数) その他 オプション 入力 モデル (差替可能) diffusers(共通インタフェース ) StableDiffusion +SD学習モデル 画像
入力情報 ● ● ● プロンプト ○ どういう画像が欲しいのか自然文章で記述する、 学習元の関係で英語の方が良い ○ (ネガティブプロンプト) ■ 描いてほしくない事項を記載する seed値 ○ 基本はランダム指定だが、構図等を固定したい場 合はこの値を固定する その他オプション、出力画像がちょっと変わる ○ step数 ○ サンプリングアルゴリズム ○ CFGスケール ○ 画像サイズ
モデル StableDiffusionという仕組み(diffusers)は、モデルと呼ばれる学習 データを差し替えることで、同じ入力でも違う画像を出すことができ る。有名なのは以下の2系統 ● StableDiffusion本家モデル(SD1.4/1.5/2.0/2.1) ○ LAIONという機械学習用画像セットを使って作成 ■ 学習テキストは自然言語 ○ 汎用的な画像生成に向く(二次元以外) ● 二次元特化モデル(Waifu,trinart,Anythingなど多数) ○ SDをベースにdanbooruというイラストアップロードサイト の画像+タグで追加学習 ■ 学習テキストはタグ主体 ● プロンプトの傾向がSDとは変わる ■ (無断転載データからの学習のため物議あり)
モデルが変わると画像も変わる 差し替え プロンプト 例:girl (描画内容指示) 別モデル seed値 (乱数) その他 オプション 入力 diffusers(共通インタフェース ) StableDiffusion +二次元特化モデル 画像
StableDiffusionを使うには ● ローカル環境でプログラム(オープンソース)を動かす ○ ○ ● 手元のPCで無制限に動作可能なので、機械学習用スペック PCがあり、手 動でインストールできるのであればお勧め GPUが重要、NVIDIA GeForce RTX 3000/4000系以上が多い ■ GPUのVRAM容量によっては動かないこともある ■ ノートPCのGPUは性能もVRAMが小さいことが多いので注意 ■ 内蔵GPUや非NVIDIA(Intel、AMD Radeon)やMac動作は安定しな い?(動かそうとする流れはあるっぽう) クラウドサービス上で動かす ○ ○ Google ColaboratoryやPaperspace GradientといったGPUが使えるクラ ウドサービス上で動かす 大抵は高性能 GPUの取り合いが激しい、お試しでちょっと使うなら
StableDiffusionを使うには ● Webサービスを使う ○ ○ ○ ○ ○ ● 無料枠がある場合でも、大量の画像を作る場合は有償が多い DreamStudio ■ 英語、StableDiffusion提供元のサービス Memeplex.app ■ 日本語、さくらインターネットがインフラサポートしてる ■ さっと試すなら一番お手軽かも Lexica ■ 英語、SDリリース当初にプロンプトから生成画像が検索できるサイトとして有名、 後に画像生成機能も追加 NovelAI Diffusion ■ 英語、二次元イラスト特化、イラストの品質が高いことで話題に (参考)非StableDiffusion ○ Midjourney、にじジャーニー(nijijourney) ■ StableDiffusion以前から話題のAI画像生成、二次元特化版がnijijourney
生成画面 ローカル環境: Stable Diffusion web UI(通称 AUTOMATIC1111版)
生成画面 Webサービス:memeplex
画像生成してみる
プロンプト生成 txt2img お題:限られた時間で何かしなければいけな い状況で使うイメージ画像 なんでもいいのでワードを決めて生成してみる、できた画像をみつ つプロンプトを変えていけばいい 1. 「時間切れを監視する人がいるかも」と想像 2. 『時の番人』というワードが浮かぶ 3. 翻訳サイトで英訳する『keeper of time』 4. そのままStableDiffusionのプロンプトに入れてみる
時の番人 1 keeper of time: 時計が主体の絵が生成 人がメインで描かれていてほしい keeperが良くないかもしれないので guardianに変更、なんとなくfantasy風にし てみる a fantasy guardian of time: 人が出てく るようになったがまだ時計だけも 時計を持った守備兵みたいな方向性を強く したくなる
時の番人 2 人要素を強調(丸括弧で囲む)する ((a fantasy guardman)) hand with a clock: まぁまぁよさそう 場所を森にしてみる ((a fantasy guardman)) hand with a clock, background deep forest: 服装が 気に入らない ファンタジーよりは実在した中世(ヨーロッ パ)兵の方が良い資料が多く良い学習され てそう
時の番人 3 翻訳サイトで中世:medievalを知る ((a medieval guard)) hand with a clock, background deep forest: 人要素 が弱い、guardだけでは足りないか? manをつける ((a medieval guard man)) hand with a clock, background deep forest: 3枚目 を採用
時の番人 完成版 prompt: ((a medieval guard man)) hand with a clock, background deep forest Negative prompt: keyboard, monitor, chair, sitting, programmer, notebook, sharp fingernails, long fingernails, lowres, bad anatomy, bad hands, bad feet, bad leg, text, error, missing fingers, too many fingers, missing arms, missing legs, more than two legs, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name, bad-artist Steps: 20, Sampler: DPM++ 2S a Karras, CFG scale: 8, Seed: 383266525, Face restoration: GFPGAN, Size: 512x512, Model hash: 81761151, Clip skip: 2
ネガティブプロンプト解説 画像全体の品質を上げるために使用しています。別の画像を出す際でも低品 質系のネガティブは使いまわせることが多い(汎用ネガティブで探せばもっとい いのありそう) ネガティブ無しだと質が下がった感じがする keyboard, monitor, chair, sitting, programmer, notebook: 直前に生成した 時の設定消し忘れた(影響なし) sharp fingernails, long fingernails, lowres, bad anatomy, bad hands, bad feet, bad leg, missing fingers, too many fingers, missing arms, missing legs, more than two legs, extra digit, fewer digits, cropped: 人体の崩れを 防止 worst quality, low quality, normal quality, jpeg artifacts, blurry: 品質を上 げるために低品質を除外指定 text, error, signature, watermark, username, artist name, bad-artist: 映画 ポスターや広告などの文字が入ることがあるので除外 ネガティブ無し版
seed固定 ((a medieval guard man)) hand with spear, background deep forest ((a medieval guard man)) hand with sword, background deep forest seed固定でプロンプトだけ一部変更、同じ 構図で微妙に差異が出る(大きく変わっちゃ うこともある) 最終調整等に便利
プロンプトもAI生成 ChatGPTに「描写して」とお願いするとそれらしい文章を返してくれ る。心情描写は不要なので外見と入れた方がいいかも
プロンプトもAI生成 The Timekeeper is a tall, slender figure with a sleek, metallic body. Its head is elongated and angular, with two glowing red eyes that seem to pierce through the darkness. Its arms and legs are thin and spindly, ending in sharp, claw-like fingers and toes. Negative prompt: (他と同じセット) The Timekeeper is a tall, slender figure with a sleek, metallic body. Its head is elongated and angular, with two glowing red eyes that seem to pierce through the darkness. Its arms and legs are thin and spindly, ending in sharp, claw-like fingers and toes. Negative prompt: clock, (他と同じセット) 時計そのものが出ることが多かったのでネガティブで除外
指定画像と似た画像を生成 img2img お題:構図同じヨーロッパ風の街並みに 金沢 ひがし茶屋街 (筆者撮影)
画像からプロンプト逆引き img2imgタブにある便利機能 CLIP Interrogator 1. 画像をいれる 2. 解析ボタンを押す 3. ちょっと待つ 4. プロンプトに解析 テキストが入る (webサービス系に同機能 あるかは未確認) Stable Diffusion web UI img2imgタブ
画像からプロンプト逆引き a group of people walking down a street next to tall buildings with wooden windows and balconies on the sides of them and a brick walkway between them is a sidewalk with a brick walkway between two buildings with a few people standing on a few feet, and a few, and a, a, a(末尾にゴミが入ることが ) 完全ではないが画像にあるものがそれなりに描写される、必要な部 分だけ抽出して使う(txt2imgに使ってもよい)
ヨーロッパの赤い街並み (((european style))) street: 構図維持と ヨーロッパ風街並みにできているが元画像 の赤い街並みがでてない 街並み部分の描写を逆引きテキストを参考 にして追加 (((european style))), a street next to tall red buildings with red balconies: よさそう
ヨーロッパの赤い街並み 完成版 prompt: (((european style))), a street next to tall red buildings with red balconies Negative prompt: sharp fingernails, long fingernails, lowres, bad anatomy, bad hands, bad feet, bad leg, text, error, missing fingers, too many fingers, missing arms, missing legs, more than two legs, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name Steps: 20, Sampler: DPM2 a Karras, CFG scale: 7, Seed: 240675372, Face restoration: GFPGAN, Size: 768x512, Model hash: 81761151, Denoising strength: 0.7, Clip skip: 2, Mask blur: 4 元画像
img2img時の注意 元画像 Denoising strength:0.2 img2imgにはDenoise(ノイズ除去強度)という元画像をどこまで変え るかというパラメータがあり、低強度だと元画像ほぼそのままなので 注意。画像全体の雰囲気調整に低強度img2imgを使うこともある
まとめ
まとめ ● ● StableDiffusion本体(とモデル)にプロンプトを入 力すると画像生成できる プロンプトに欲しい画像の説明を英語文章で入 力する(txt2img) ○ ○ ● 意図しない画像が出るなら、ワードを足したり変えたり する seedを固定することで前と同じ画像が出せる 画像を参考にして別の画像を生成(書き換え)す ることができる(img2img) ○ ○ 書き換え結果をプロンプト指定することもできる CLIP Interrogatorで画像からプロンプト逆引きができる