Stable Diffusionの登場、またLoraやDreamBoothなどのファインチューニング法によって、お絵描きAIはこの1年で驚異的に進化しました。誰もが希望に近い画像を描けるようになってきています。 ここまで生成AIが進歩してくると、今度は画像を動かしたくなって…
以前の記事でkohya_ssの各パラメータについて解説しました。 hoshikat.hatenablog.com 別に万人向けの有益な情報として書いたつもりはなかったんですが、最近になってこの記事へのアクセスが多くなってきたため、需要はあるのかなあと思う一方、進歩の著しい…
Stable Diffusionが登場してもう1年近く経ちます。登場以来、この画像生成AIは世界中にとてつもないインパクトを与えました。 AIはものすごい勢いで進化していますが、Stable Diffusionも例外ではありません。バージョン1からバージョン2にアップグレードし…
またリクエストいただいたので今回はコントロールネットについて見てみましょう。 コントロールネットとは U-Netのしくみをおさらい 事前準備 エンコーダー ミドル デコーダー コントロールネットのはたらき コントロールネットのU-Net デコーダーの構造がち…
最近、Stable Diffusionのモデルから特定の概念だけを消す、という面白いテクニックが提唱されたので見てみましょう。 オリジナルはこの論文のようです。論文の中で、このテクニックのことをErased Stable Diffusion(略してESD)と呼んでいます。 まずはESDが…
コメントでリクエストをいただいたので今回はStable Diffusion WebUIの拡張機能として提供されている「リージョナルプロンプト」について解説します。 (リクエスト引き続きお待ちしてます) ※このブログを読まれている方はもうご存じだと思いますが、この記事…
Stable Diffusionで絵を生成するとき、まずノイズだらけの砂嵐のような画像が用意されます。ここから少しずつノイズを取り除いて希望の絵を浮かび上がらせていく、というのが画像生成の仕組みです。 さて、「少しずつノイズを取り除く」というとき、この「少…
このブログでは人工知能全般について書くつもりでしたが、結局今までStable Diffusionのことばかり書いています。画像生成AIは今とてもホットな話題なのでしばらくはStable Diffusionの記事ばかりになるかもしれません。 ※何か解説してほしいことのリクエス…
以前の記事でStable Diffusionがどのように絵を描いているか順番に解説しました。 その中で特に重要な働きをするモジュール「テキストエンコーダー」については少し紹介しただけであまり詳しく解説しなかったので、今回はテキストエンコーダーについて少し詳…
以前の記事でLoRAを作るためのKohya_ss導入の解説を書きました*1。 今回は、kohya_ssを使ったLoRA作成の実践編です。 LoRAの簡単な説明 LoRA作成の準備 PCのスペックを確認 kohya_ssのインストール 学習したい画像を用意する 何を表現したいのか考えよう わ…
前回の記事では、Stable Diffusionモデルを追加学習するためのWebUI環境「kohya_ss」の導入法について解説しました。 今回は、LoRAのしくみを大まかに説明し、その後にkohya_ssを使ったLoRA学習設定について解説していきます。 ※今回の記事は非常に長いです…
Stable Diffusionが一般に利用されるようになった2022年以降、AIによって生成された絵をめぐっては様々な賛否両論が巻き起こり、2023年現在でもこの技術をどう扱うべきなのか多くの業界が試行錯誤している状態です。 いずれ明確な方向性が決まるかガイドライ…
Stable Diffusionはそのままでも十分きれいな画像を描いてくれますが、自分の好みに合った画風の絵を描いてくれなかったり、特殊な構図を指定しても理解してくれなかったり、いまいちかゆいところに手が届かない、と思うことがあるでしょう。 そんな時、Stab…
前回の記事まではStable Diffustionの心臓部であるU-Netについて解説してきました。 ただのノイズから画像を作りだしていくのはU-Netの役割ですが、これだけでは画像は完成しません。 なぜならU-Netが作り出すものは「圧縮された画像」だからです。 絵を完成…
前の記事まで、Stable Diffustionで使われているU-Netがどういう仕組みで画像データを処理しているのかをずっと見てきました。 一通り説明が終わったので、U-Netの全体像と、各ブロックが何をしているのかを少し詳しく眺めていきます。 U-Netについては以前…
Stable Diffusionの心臓部であるU-Net解説の9回目です。 これまでU-Netの重要なパーツであるResブロック、Attentionブロックを見てきました。 すでに解説したこれらのブロックでは処理によって画像データのサイズは変わりませんでした。 しかし、処理によっ…
前回はU-Netの「テキストを取り込む」機能であるAttentionブロックを見ましたが、その中で特に大切な「Attention」パートについては概要しか説明しませんでした。 今回はそのAttentionについて詳しく見ていきますが、その前にAttentionを行うメカニズムであ…
今回はStable Diffusionがどうやってテキストを画像に反映させているのかを見ていきます。 重要な役割を担うのは「Attention」です。これには「Transformer」というメカニズムが使われていますが、これは少し複雑なので今回は詳細は省いて、大まかに何をして…
Stable DiffusionのU-Net解説の3回目です。 今回はIN1ブロックの中にある「Resブロック」を詳しく見ます。 IN1ブロックは「Resブロック+Attentionブロック」 IN1ブロックの構造 Resブロックの構造 Group Norm:グループごとに正規化 SiLU:非線形な要素を加…
Stable Diffusionで使われるU-Netの最初のブロック、IN0層についての説明です。 IN0層はU-Netの一番左上 IN0ブロックのやっていること 畳み込み処理とは 畳み込みの具体例 まとめ IN0ブロックのやっていること IN0ブロックは、最初に画像を受け取るブロック…
前の記事で、Stable Diffusionには「U-Net」と呼ばれる仕組みが使われると説明しました。 hoshikat.hatenablog.com 今回はそのU-Netについての概要です。 U-Netの構造 INパート MIDパート OUTパート スキップコネクション:データを遠くに渡す Stable Diffus…
AIお絵描きが普及すると、誰でも簡単に絵が描けるようになります。Stable Diffusionの力を借りるだけで、プロ顔負けのイラストや写真のような画像も簡単に生み出せます。 夢のような技術ですが、問題もあります。ここではその問題を見てみましょう 1.AIは…
お絵描きAIであるStable Diffusionは現在誰でも無料で使えます。 ここでは、どうすればStable Diffusionを利用できるかを紹介します。 1.Web上のサービスを使う(難易度:★☆☆☆) 2.Stable Diffusionアプリをインストールする(難易度:★★☆☆) 3.*おすすめ*…
ニューラルネットワークが大流行の昨今、機械学習について調べるとよく「サンプル」「バッチ」「ステップ」「イテレーション」「エポック」という言葉ができてきます。 どれもニューラルネットワークに送るデータの単位ですが、分かりにくいのでひとつづつ意…
">誰でもというか、自分のために書いてます。 "> Stable Diffusionとは Diffusionモデル: Stable Diffusionの心臓部 Text Encoder: 指定された言葉を理解し、絵のデザインを決める 言葉を理解する 言葉から絵のデザインを決める Latent Space:データを圧…