ブログ
これまでに経験してきたプロジェクトで気になる技術の情報を紹介していきます。
生成AI素人のプログラマが、生成AIを使ってHPのTOPページを作ってみた ③
◆画像生成AI(StableDiffusion)に機能を追加
前回では画像生成AI「StableDiffusionWebUI Forge」の実行環境を構築しました。
しかし構築直後のデフォルト状態では、希望する画像を生成する事は出来ないと言っても過言ではありません。
今回の場合は「もし、株式会社あすかが「アニメ制作会社」だったら」といいう建前で進めています。
そのため、アニメ風の画像を生成するのに必要な機能を追加していく必要があります。
◆モデル(Checkpoint)について
モデルとは、生成AIが画像生成する際の元となる学習データの事です。
画像生成で出力される絵柄はこのモデルで決まると言ってもいいと思います。
そのため、作りたい画像を生成するモデルの取得は必須となります。
◆モデルのフォーマットについて
モデルにはいくつかのフォーマットが存在します。
画像生成AIはまだ登場して新しい技術なためか、このフォーマットは日々更新されているのでしっかり確認しておく必要があります。
また、モデルには後から追加して使用する「テキスト反転(Textual Inversion)」や「追加学習データ(Lora)」のようなタイプも有ります。
これらの追加モデルは、モデルとフォーマットが一致していなければ有効になりません。
そのため使用するモデルのフォーマットは意識しておく必要があります。
今回は比較的メジャーなフォーマットである「SD 1.5」と「SDXL 1.0」を中心に選んでいます。
◆モデルの取得について
基本的にはモデルを配布しているサイトで、配布モデルが生成する絵柄を選んで取得する流れとなります。
今回導入している「StabilityMatrix」はその辺りもサポートしているので、手順としてはとても簡単です。
具体的には下記の手順となります。
1. モデルを配布しているサイトにアクセス
モデルを配布しているサイトは複数あるようですが、現時点でメジャーなのは「CivitAI」というサイトのようです。
アクセス自体は「StabilityMatrix」のメニューにある「Model Browser」を選択するだけです。
※画面で解りますが StabilityMatrix は「CivitAI」以外にも「Hugging Face」というサイトもサポートしています。
2. 欲しいモデルを検索
今回はアニメ風の画像を生成したいので、アニメに強いモデルを検索します。
検索方法はモデルタイプに「Checkpoint」を指定して、検索したいキーワード(今回は anime を指定)を入力して検索ボタンを押下するだけです。
3. 欲しいモデルを取得
1つ前の手順で検索したモデル一覧より欲しい絵柄のサムネイルをクリックします。
クリックすると詳細画面が表示されますので、インポートするモデルのフォーマットを選択します。
今回はフォーマット「SD 1.5」でバージョン v1 を選んでます。
※v1 を除くバージョン(v1 LCM、v1 INPAINT)ついては、特定用途のため省略
後は「インポート」ボタンを押下すれば該当モデルを取得する事が出来ます。
※モデルのよっては取得時に CivitAI にログインする必要があるモノもあります。その場合は CivitAI でアカウントを作成してログインしてください。
選ぶフォーマットについて、今回は「SD 1.5」と「SDXL 1.0」を中心に取得しています。
もし両方のフォーマットがある場合は、新しいフォーマットの「SDXL 1.0」の方を選んだ方が無難です。
理由はシンプルで、古い「SD 1.5」より新しい「SDXL 1.0」の方が生成する画像が崩れにくいからです。
4. 取得モデルの確認
モデルが正常に取得できていれば、Stable Diffusion の画面左上の Checkpoint のセレクタの一覧に取得したモデルが追加されます。
※もし一覧にない場合、セレクタの右側の更新アイコンをクリックして、リストを更新してみてください。
モデルの取得方法は以上となります。
後は取得したモデルで画像生成を行って、思った絵柄が生成出来るかを確認するだけです。
思った絵柄でない場合は、再度上記の手順で良い感じの別モデルを探して取得、生成する・・・を繰り返します。
※画像生成については、次回以降に記載いたします。
◆画質向上用のテキスト反転モデルについて
画質を簡単に向上させるテキスト反転モデル「EasyNegative」、「negativeXL」を取得します。
このモデルは Stable Diffusion をしている友人から聞く話だと、とりあえず深く考えずに入れとけばいい!・・・と言われる程メジャーなモノだそうです。
なお、「EasyNegative」はフォーマット「SD 1.5」用、「negativeXL」はフォーマット「SDXL 1.0」用となります。
本来、画像生成時には Negative prompt に出力したくないタグ(低画質(worst quality)、崩れた人体(bad anatomy)等)を幾つも設定します。
後の画像生成で記載しますが、この Negative prompt をマトモに設定しだすと、物凄く難易度が上がります。
このモデルは一言で、良く使う Negative prompt のタグを纏めたもので、Negative prompt を簡単設定しちゃおう!・・・といったモノとなります。
1. テキスト反転モデルの取得
取得はモデル(Checkpoint)と基本的には同じです。
「StabilityMatrix」の「Model Browser」でモデルタイプに「TexturalInversion」を指定して、キーワードに「EasyNegative」と指定して検索します。
後は検索結果に出てきた「EasyNegative」をクリックして、表示される詳細画面で「インポート」ボタンを押下するだけです。
※ここではバージョンの新しい「EasyNegativeV2」の方を取得しています。
フォーマット「SDXL 1.0」用の「negativeXL」も同様に、キーワードに「negativeXL」で検索して取得します。
2. 取得したテキスト反転モデルの確認
正常に取得できていれば、Stable Diffusion の「txt2img」タグ内の「Textual Inversion」タグを選択すると、取得したモデルが追加されています。
なお、ここで表示されるものは、Checkpoint で選択されているモデルと一致するフォーマットのものとなるので注意してください。
※もし一覧にない場合、タブの右側の更新アイコンをクリックして、リストを更新してみてください。
SD 1.5 フォーマットのモデル(Checkpoint)を選択している場合
SDXL 1.0 フォーマットのモデル(Checkpoint)を選択している場合
◆特定の条件で発動する追加学習モデル(LORA)について
特定条件下で効果を発揮する追加学習モデル「Hyper-SDXL-8steps」、「ClearHand-V2」を取得します。
「Hyper-SDXL-8steps」は Sampling steps 数を 8 で画質をあまり落とさずに画像生成する LORA で、低スペックPCで特に効果を発揮します。
もう一つの「ClearHand-V2」は崩れやすい手を極力自然な形に補正する LORA となります。
こちらはどちらもフォーマット「SDXL 1.0」用となります。
1. 追加学習モデルの取得
取得はモデル(Checkpoint)と基本的には同じです。
「StabilityMatrix」の「Model Browser」でモデルタイプに「LORA」、ベースモデルに「SDXL 1.0」を指定して、キーワードに「Hyper-SDXL」と指定して検索します。
後は検索結果に出てきた「Hyper-SDXL-8steps」をクリックして、表示される詳細画面で「インポート」ボタンを押下するだけです。
「ClearHand-V2」の方も同様にキーワードに「ClearHand」で検索して取得してください。
2. 取得した追加学習モデルの確認
正常に取得できていれば、Stable Diffusion の「txt2img」タグ内の「Lora」タグを選択すると、取得したモデルが追加されています。
なお、ここで表示されるものは、Checkpoint で選択されているモデルと一致するフォーマットのものとなるので注意してください。
※もし一覧にない場合、タブの右側の更新アイコンをクリックして、リストを更新してみてください。
SDXL 1.0 フォーマットのモデル(Checkpoint)を選択している場合
◆拡張機能(ControlNet)について
画像を入力情報として扱った時に役立つ拡張機能(ControlNet)を取得します。
元々、画像を入力して画像を生成する機能は Stable Diffusion に備わっていますが、その機能をより強化するモノとなります。
具体的な使い方については、画像生成の時に改めて記載いたします。
1. 拡張機能(ControlNet)の取得
インストール自体は下記のサイトを参考に行っています。
基本的には StableDiffusion の Extensions 経由での取得となります。
ControlNetのインストール方法
2. 拡張機能(ControlNet)のモデル取得
ControlNet の機能を使用するには、ControlNet用のモデルを取得する必要があります。
取得はモデル(Checkpoint)同様に「StabilityMatrix」の「Model Browser」からとなりますが、取得先が「Hugging Face」からとなります。
後は表示されている項目で ControlNets(SD1.5)と ControlNets(SDXL)にチェックをして「インポート」ボタンを押下するだけです。
3. 取得した拡張機能(ControlNet)の確認
正常に取得できていれば、Stable Diffusion の「txt2img」タグ内の「Generation」タグ内に「ControlNet Integrated」という項目が追加されています。
以上で、画像生成AI(StableDiffusion)への機能追加は終わりとなります。
次回より、いよいよ画像生成AIを使って画像を生成していきます。
引き続き、よろしくお願いします。
初回:生成AI素人のプログラマが、生成AIを使ってHPのTOPページを作ってみた ①
前回:生成AI素人のプログラマが、生成AIを使ってHPのTOPページを作ってみた ②
次回:生成AI素人のプログラマが、生成AIを使ってHPのTOPページを作ってみた ④
コメントはありません。