日常の色々な事

開発の考えや映画やアニメなど、ごちゃごちゃしたものを書いてます。「本サイトはアフィリエイトが含まれています」

初心者から初心者向けたstable diffsion の勉強手順

今話題のstablediffsionを触ってみました。

色々な事ができるので何から手を付ければ良いのか最初分かりませんでしたので自分が勉強した経験からおすすめの手順をまとめようと思います。

まだ勉強中の身なので初心者からガチ初心者や「話題になってるから触ってみたい」や「徐々にステップアップしていきたい」のような人に参考になれば嬉しいです

まだ勉強中なので随時更新していきます。

インストールについては【初心者向け】ComfyUIのインストールから画像生成までの手順 - 日常の色々な事を確認してください。

プロンプトの指定やモデルの変更、FaceDetailer(顔・手補正)については【初心者向け】ComfyUIの画像生成の設定の手順 - 日常の色々な事にまとめました。

IPAdapterやLoRAについては【初心者向け】ComfyUIで似たようなキャラを生成する(IPAdapterとLoRAの使用) - 日常の色々な事にまとめました。

他手順の詳細については色々なサイトで説明されているので書くかどうかは未定です

作成したキャラ

目次

stable diffusionを使うおすすめの方法はComfyUI

stable diffusionを使う方法として有名なのはWebUI(AUTOMATIC1111やForge)、ComfyUI、Pythonがありますが、一番おすすめなのはComfyUIです。

ComfyUIがおすすめな理由

ComfyUIの方が起動や生成が早い

初心者にとっては、正常に動作したうえで処理に時間が掛かっているのかと異常な動作で処理に時間が掛かっているのかがわかり難いです。そのため、少しでも動作の早いComfyUIをおすすめします。

難しい操作がいらない

初心者にとっては、動いたところを見てテンションや満足感を上げたいです。

WebUIでも簡単にサンプルは動かせますが、ComfyUIも簡単に動くのでどちらもオススメになります。pythonスクリプトを作るのは論外です

パラメータが少なくて取っつきやすい

初心者にとっては画面がシンプルでかつ、設定項目が少ない方が取っつきやすいです。

二つの画面を見比べるとWebUIよりもComfyUIの方が設定するパラメーターが少なく見えるのでComfyUIの方がおすすめです。

もちろん、WebUIは初期値でもそれなりのものを出すので全てのパラメーターを変更する必要はないですが、数字と文字ばかりの画面を見ると圧倒されてしまいます。

 

左:ComfyUIの初期画面 右:WebUIの初期画面
ノードを繋ぐのとか処理の流れが見て楽しい

ComfyUIはノードを線でつなげることでフローを作ってます。一方、WebUIはパラメーターを指定して作成します。論理的に考えるとノードをつなぐ手間がないWebUIの方が簡単で便利に使えそうな気もしますが、中上級者向けかと思います。

初心者にとっては自分の作業で進んでいる感が大事なのでノードをつなぐ作業の結果として画像が生成されるのはうれしいかと思います。さらに、処理中のノードがハイライトされるため動いている感が満たされて継続的に試行錯誤できます

処理中のアクティブなノード
フンワリと処理の流れを理解しやすい

ComfyUIはノードをつないで作業の流れを作るため、ノード一つ一つの意味を勉強すれば全体の処理の流れの概要がわかります。ノードの中の詳細については経験値を溜めて中上級者になってからで良く、初心者にとっては概要や概念を理解する方が大事なのでComfyUIがおすすめです。

Stable Diffusionの学習順番一覧

  1. サンプルの画像生成を動かそう
  2. 画像生成でオリジナルの画像を作ろう(プロンプトの学習)
  3. 画像と似たようなキャラの画像を作ろう(IPAdapterとlora使用の学習)
  4. 好きなキャラの画像を作ろう(lora作成の学習)
  5. 好きなポーズの画像を作ろう(controlnetの学習)
  6. 1から2秒の動画を作ろう(AnimateDiffの学習)

Stable Diffusionの学習順の概要

1. サンプルの画像生成を動かそう

何は無くとも動く環境がなければ話になりません。まずはGitHubの手順通りにインストールとサンプルの実行をしてください。

 

2. 画像生成でオリジナルの画像を作ろう(プロンプトの学習)

1で作った環境を使って、CLIP Text Encode(Prompt)内の文字を色々いじって色々な画像の生成して楽しんでください。たったそれだけで色々な画像が出来ることに感動するとともに、思ってたのと微妙に違う歯がゆさを感じることが出来ると思います。

オリジナルの画像

上の画像のプロンプトは「*1,1girl, (blunt bangs:1.4), Black hair color, short hair, colored inner hair, (straight hair:1.4),:3, (big eyes:1.1), round eyes, blue eyes, (glowing eyes:1.2), troubled eyebrows,(Thick eyebrows:1.0),upper body, middle breasts, no background,」です

困り眉と猫口、黒髪、前髪ぱっつんが推しポイントです

 

3. 画像と似たようなキャラの画像を作ろう(IPAdapterとlora使用の学習)

GitHubの手順通りにIPAdapterのインストールとフローの作成をして、自分で用意した画像を使って似たような画像を生成して楽しんでください。

今回は勉強用で公開もしない、商用利用もしないので好きなアニメとかゲームのキャラを使うとテンションが上がっておすすめです。

これでもなんかちょっと違う感があるのでキャラLoraを使って生成して見てください。有名なアニメやゲームのLoraはネット上で誰かが作って後悔してくれているので適用してIPAdapterとの違いを感じて見てください。

IPAdapterの画像

上の画像のプロンプトは「*2,1girl, dress」です

困り眉は再現できていますが、黒髪、前髪ぱっつんが物足りない上に猫口が消滅しました。衣装の変更も重みを付けないとできませんでした。

 

4. 好きなキャラの画像を作ろう(lora作成の学習)

Loraの凄さを感じることが出来たので、今度は自分で作って見てください。Loraの作成はComfyUIではできないので、Kohya_ssを使用します。

ここからは用意する画像の枚数・質によりパラメータが変わってくるので試行錯誤が必要になります。ちなみにPCのスペックにもよりますが、1時間~2時間ほどかかります。こちらも勉強用で公開もしない、商用利用もしないので好きなアニメとかゲームのキャラを使うとテンションが上がっておすすめです。

Loraが作成できたら好きなキャラに好きな衣装やポーズを取らせた画像を作成して楽しみましょう。

Loraで作った画像

上の画像のプロンプトは「*3,1girl, patunchan, dress」と「*4,1girl, patunchan, kimono」です

困り眉、黒髪、前髪ぱっつん、猫口が返ってきました。しかも入れたプロンプトに従って衣装やポーズも自由自在です。目の様子だけちょっと違いますが、押しポイントじゃないのでスルーです

 

5. 好きなポーズの画像を作ろう(ControlNetの学習)

プロンプトでポーズを指定すると細かい点が違ったり想定と違ったりとランダム要素が大きくなり面倒です。そういう面倒を解決するためにControlNetを使用してこちらからポーズの指定をしてあげます。

左:openposeの画像(ポーズの画像) 右:controlnetで作った画像

プロンプトは2と同じです。重みを付けるとハチャメチャになったので重みは消しました。
困り眉とか猫口が消え去ってなんか違う感が凄いです。ControlNetを通すと色々画像が崩れるのが課題です。

 

6. 1から2秒の動画を作ろう(AnimateDiffの学習)

画像生成については結構出来るようになってきたため、次はアニメーションを作ってみましょう。GitHubの手順通りにインストールとサンプルを動かして短い動画を作りましょう。

気を付けること

ブログで紹介されている内容が100%成功するとは限らない

ブログで紹介されている環境とあなたの環境が違ったり、使用しているライブラリのバージョンが違うなど細かいところが原因で成功しない可能性があります。

それを意識したうえで自分の環境にそって設定していくことが重要になります。

悩むより試す方が良い

生成AIについてはトライ&エラーを繰り返すことで自分の理想に近づける方法をおすすめします。一応計算でパラメータを出すこともできそうですが、そのためにはStable Diffusionやディープラーニングについての知識が必須なうえに最終的に勘で微調整が必要なので最終的に試す方が早いし、やりやすいかと思います。

サンプルを動かした後に改造して理解を深める方が良い

1から自分で作るのではなく、サンプルをローカルで動作するように環境を作り、それを改造して動かすことで理解を進めるのが良いかと思います。

その後、自分のフローに組み込んで充実をさせて行けば効率的にフローを作ることができるかと思います。

小まめにバックアップを取って、今の環境が壊れることを恐れない

ComfyUIはフローの状態をバックアップとして保存する機能があるので細かくバックアップを取ることで壊れることを心配せずに自由にいじることができます。

気になったノードなどがあれば怖がらずに試せます。

困ったときにすること

Web画面またはコンソール上のエラーメッセージを確認する

モジュールが足りない、線がつながっていないなど定番のエラーはComfyUIのWeb画面にわかりやすく表示されるのでメッセージ通りに直せば問題ないはずです。

それ以外の想定されていないエラーなどはコンソール上にエラーメッセージが表示されているはずです。こちらはPythonのエラーがそのまま出ているのでちょっと知識が必要になります。

エラーメッセージやうまくできない現象を検索する

エラーメッセージが表示されている時は、そのままコピーして検索します。英語のサイトが多く表示されるので翻訳しながらやってみます。エラーはしないが想定した結果が出ない時は操作とうまくできなかった現象を検索条件に検索します。

ソフトウェアの更新・再インストールをする

ComfyUIなど使用しているソフトウェア自体も日々更新されているものになります。最新版の方がきれいに便利になっていることが多いので、どうしてもうまくいかないなら更新するのも一つの手です。

また、エラーが消えない時などは思い切って再インストールするの手です。

Xやサイトの問い合わせで聞く

ここまでやっても良くわからない時は人に聞いちゃいます。聞く対象としては対象の機能の説明をしているXやHPの管理人に聞いちゃえばいいかと思います。

インターネット上に苦労して獲得した自分の知識を公開する人は親切な人 or ビジネスにつなげたい人がほとんどなので、低姿勢で聞くと親切に教えてくれるかと思います。仮に不安な場合はブログのコメントやXのリプライなどオープンな場で個人情報を書かずに必要な知識だけ記載すれば大丈夫かと思います。

逆にLineや変なサイト(GitならOK)や費用を請求・誘導されたときはお話を終わらせちゃっていいかと思います。もちろん初心者で良ければ自分に聞いてもらってもOKです

各手順の設定画像

添付した画像をComfyUIの画面上にドラック&ドロップするとComfyUIの機能でフローが作成されます。

2. 画像生成でオリジナルの画像を作ろう(プロンプトの学習)

画像生成フロー

 

3. 画像と似たようなキャラの画像を作ろう(IPAdapterとlora使用の学習)

IPAdapterの画像生成フロー

4. 好きなキャラの画像を作ろう(lora作成の学習)

loraの画像生成フロー

5. 好きなポーズの画像を作ろう(controlnetの学習)

controlnetの画像生成フロー



*1:master piece,best quality,extremely detailed CG unity 8k wallpaper

*2:master piece,best quality,extremely detailed CG unity 8k wallpaper

*3:master piece,best quality,extremely detailed CG unity 8k wallpaper

*4:master piece,best quality,extremely detailed CG unity 8k wallpaper