人工知能と親しくなるブログ

人工知能に関するトピックを取り上げるブログです

2023-01-01から1年間の記事一覧

誰でもわかるStable Diffusion AnimateDiff

Stable Diffusionの登場、またLoraやDreamBoothなどのファインチューニング法によって、お絵描きAIはこの1年で驚異的に進化しました。誰もが希望に近い画像を描けるようになってきています。 ここまで生成AIが進歩してくると、今度は画像を動かしたくなって…

誰でもわかるStable Diffusion kohya_ssの追加パラメータを解説

以前の記事でkohya_ssの各パラメータについて解説しました。 hoshikat.hatenablog.com 別に万人向けの有益な情報として書いたつもりはなかったんですが、最近になってこの記事へのアクセスが多くなってきたため、需要はあるのかなあと思う一方、進歩の著しい…

誰でもわかるStable Diffusion 新バージョン「SDXL」の概要

Stable Diffusionが登場してもう1年近く経ちます。登場以来、この画像生成AIは世界中にとてつもないインパクトを与えました。 AIはものすごい勢いで進化していますが、Stable Diffusionも例外ではありません。バージョン1からバージョン2にアップグレードし…

誰でもわかるStable Diffusion コントロールネット

またリクエストいただいたので今回はコントロールネットについて見てみましょう。 コントロールネットとは U-Netのしくみをおさらい 事前準備 エンコーダー ミドル デコーダー コントロールネットのはたらき コントロールネットのU-Net デコーダーの構造がち…

誰でもわかるStable Diffusion モデルから概念を消す(ESD、LECO)

最近、Stable Diffusionのモデルから特定の概念だけを消す、という面白いテクニックが提唱されたので見てみましょう。 オリジナルはこの論文のようです。論文の中で、このテクニックのことをErased Stable Diffusion(略してESD)と呼んでいます。 まずはESDが…

誰でもわかるStable Diffusion リージョナルプロンプト

コメントでリクエストをいただいたので今回はStable Diffusion WebUIの拡張機能として提供されている「リージョナルプロンプト」について解説します。 (リクエスト引き続きお待ちしてます) ※このブログを読まれている方はもうご存じだと思いますが、この記事…

誰でもわかるStable Diffusion スケジューラー

Stable Diffusionで絵を生成するとき、まずノイズだらけの砂嵐のような画像が用意されます。ここから少しずつノイズを取り除いて希望の絵を浮かび上がらせていく、というのが画像生成の仕組みです。 さて、「少しずつノイズを取り除く」というとき、この「少…

誰でもわかるStable Diffusion CFGスケールのしくみ

このブログでは人工知能全般について書くつもりでしたが、結局今までStable Diffusionのことばかり書いています。画像生成AIは今とてもホットな話題なのでしばらくはStable Diffusionの記事ばかりになるかもしれません。 ※何か解説してほしいことのリクエス…

誰でもわかるStable Diffusion テキストエンコーダー:CLIPのしくみ

以前の記事でStable Diffusionがどのように絵を描いているか順番に解説しました。 その中で特に重要な働きをするモジュール「テキストエンコーダー」については少し紹介しただけであまり詳しく解説しなかったので、今回はテキストエンコーダーについて少し詳…

誰でもわかるStable Diffusion LoRAを作ってみよう(実践編)

以前の記事でLoRAを作るためのKohya_ss導入の解説を書きました*1。 今回は、kohya_ssを使ったLoRA作成の実践編です。 LoRAの簡単な説明 LoRA作成の準備 PCのスペックを確認 kohya_ssのインストール 学習したい画像を用意する 何を表現したいのか考えよう わ…

誰でもわかるStable Diffusion Kohya_ssを使ったLoRA学習設定を徹底解説

前回の記事では、Stable Diffusionモデルを追加学習するためのWebUI環境「kohya_ss」の導入法について解説しました。 今回は、LoRAのしくみを大まかに説明し、その後にkohya_ssを使ったLoRA学習設定について解説していきます。 ※今回の記事は非常に長いです…

AIお絵描きをめぐる問題 これまでとこれから

Stable Diffusionが一般に利用されるようになった2022年以降、AIによって生成された絵をめぐっては様々な賛否両論が巻き起こり、2023年現在でもこの技術をどう扱うべきなのか多くの業界が試行錯誤している状態です。 いずれ明確な方向性が決まるかガイドライ…

誰でもわかるStable Diffusion LoRAを作ってみよう(導入編)

Stable Diffusionはそのままでも十分きれいな画像を描いてくれますが、自分の好みに合った画風の絵を描いてくれなかったり、特殊な構図を指定しても理解してくれなかったり、いまいちかゆいところに手が届かない、と思うことがあるでしょう。 そんな時、Stab…

誰でもわかるStable Diffusion その11:VAE

前回の記事まではStable Diffustionの心臓部であるU-Netについて解説してきました。 ただのノイズから画像を作りだしていくのはU-Netの役割ですが、これだけでは画像は完成しません。 なぜならU-Netが作り出すものは「圧縮された画像」だからです。 絵を完成…

誰でもわかるStable Diffusion その10:U-Netの各ブロックの働き

前の記事まで、Stable Diffustionで使われているU-Netがどういう仕組みで画像データを処理しているのかをずっと見てきました。 一通り説明が終わったので、U-Netの全体像と、各ブロックが何をしているのかを少し詳しく眺めていきます。 U-Netについては以前…

誰でもわかるStable Diffusion その9:U-Net(画像データの縮小、拡大)

Stable Diffusionの心臓部であるU-Net解説の9回目です。 これまでU-Netの重要なパーツであるResブロック、Attentionブロックを見てきました。 すでに解説したこれらのブロックでは処理によって画像データのサイズは変わりませんでした。 しかし、処理によっ…

誰でもわかるStable Diffusion その8:AttentionとTransformer

前回はU-Netの「テキストを取り込む」機能であるAttentionブロックを見ましたが、その中で特に大切な「Attention」パートについては概要しか説明しませんでした。 今回はそのAttentionについて詳しく見ていきますが、その前にAttentionを行うメカニズムであ…

誰でもわかるStable Diffusion その7:U-Net(テキストを画像に反映するAttentionブロック)

今回はStable Diffusionがどうやってテキストを画像に反映させているのかを見ていきます。 重要な役割を担うのは「Attention」です。これには「Transformer」というメカニズムが使われていますが、これは少し複雑なので今回は詳細は省いて、大まかに何をして…

誰でもわかるStable Diffusion その6:U-Net(IN1、Resブロック)

Stable DiffusionのU-Net解説の3回目です。 今回はIN1ブロックの中にある「Resブロック」を詳しく見ます。 IN1ブロックは「Resブロック+Attentionブロック」 IN1ブロックの構造 Resブロックの構造 Group Norm:グループごとに正規化 SiLU:非線形な要素を加…

誰でもわかるStable diffusion その5:U-Net(IN0ブロックと畳み込み)

Stable Diffusionで使われるU-Netの最初のブロック、IN0層についての説明です。 IN0層はU-Netの一番左上 IN0ブロックのやっていること 畳み込み処理とは 畳み込みの具体例 まとめ IN0ブロックのやっていること IN0ブロックは、最初に画像を受け取るブロック…

誰でもわかるStable Diffusion その4:U-Net

前の記事で、Stable Diffusionには「U-Net」と呼ばれる仕組みが使われると説明しました。 hoshikat.hatenablog.com 今回はそのU-Netについての概要です。 U-Netの構造 INパート MIDパート OUTパート スキップコネクション:データを遠くに渡す Stable Diffus…

誰でもわかるStable Diffusion その3:AIお絵描きは問題?

AIお絵描きが普及すると、誰でも簡単に絵が描けるようになります。Stable Diffusionの力を借りるだけで、プロ顔負けのイラストや写真のような画像も簡単に生み出せます。 夢のような技術ですが、問題もあります。ここではその問題を見てみましょう 1.AIは…

誰でもわかるStable Diffusion その2:利用法

お絵描きAIであるStable Diffusionは現在誰でも無料で使えます。 ここでは、どうすればStable Diffusionを利用できるかを紹介します。 1.Web上のサービスを使う(難易度:★☆☆☆) 2.Stable Diffusionアプリをインストールする(難易度:★★☆☆) 3.*おすすめ*…

機械学習で使われる「サンプル」「バッチ」「ステップ」「イテレーション」「エポック」って何?

ニューラルネットワークが大流行の昨今、機械学習について調べるとよく「サンプル」「バッチ」「ステップ」「イテレーション」「エポック」という言葉ができてきます。 どれもニューラルネットワークに送るデータの単位ですが、分かりにくいのでひとつづつ意…

誰でもわかるStable Diffusion その1:しくみ

">誰でもというか、自分のために書いてます。 "> Stable Diffusionとは Diffusionモデル: Stable Diffusionの心臓部 Text Encoder: 指定された言葉を理解し、絵のデザインを決める 言葉を理解する 言葉から絵のデザインを決める Latent Space:データを圧…