Diffusionで画像生成する際に行われていることについて駆け足で見ていきましょう。Insider編集部]この記事は会員限定です。AIが「革命」と言えるほど盛り上がっているのをご存じでしょうか。2(ダリ・ツー)やImagen(イマジェン)、それからもちろんMidjourney(ミッドジャーニー)など、多数の画像生成系AIが登場し、世の中を騒然とさせていました。Diffusion(ステーブルディフュージョン)です。最初はSNSで大きな話題となりましたが、2022年9月ではテレビで紹介されるまでになっています。Diffusion入門」連載を企画しました。Diffusionの概要と基本的な仕組み、それを簡単に使うためのサービスなどをできるだけ分かりやすくコンパクトに紹介していきます。一部の説明では、Pythonというプログラミング言語を使ったコードによる説明も行っていますが、分からない部分はスキップして読んでも大丈夫です。Diffusionって?これらの画像生成系AIに共通するのは、プロンプトとか呪文とか呼ばれるテキストを入力することで、高解像度のグラフィックが生成されることです。このプロンプトをどう工夫すれば、生成される画像をよりよいもの(ユーザーが望む理想に近いもの)をできるかに興味を持つ人も多く、「プロンプトエンジニアリング」と呼ばれる分野があっという間に確立されてもいます。呪文の詠唱の仕方を変えることで、その効果をビジュアルに確認できることが人々のハック魂に火を付けたともいえるでしょう。Diffusionのデモページで生成した画像の例その一方で、上に挙げたような高精度な画像生成AIが多数登場したことで「イラストレーターの仕事はなくなってしまうのか」とか「AIが生成した画像の著作権はどうなってんの」とか「自分の絵を勝手に学習に使われたくない」などの観点から議論が巻き起こってもいます。Diffusionはソースコードが公開されていることから画像生成AIとユーザーとの距離がグッと近づいた結果、こうした問題も多くの人にとって身近なものになったといえるでしょう。Diffusionのソースコードが公開された後は、これをベースとした多くのサービスやアプリがこれでもかというほど、一気に登場していますよね。Diffusionとは?」「試してみるには?」「コードを書いてみたい」といった観点で話をしていくことにします(かわさき)。Diffusion登場前と後で世の中は変わってしまった」と考えています。Diffusionのことを知っておくべきだ」と考えています。書き方などを書いたブログ記事が毎日のように多数出てきています。この連載は、そういったバラバラの情報が1本の連載の中でまとめられており、誰もが基礎から学べるもの、いわゆる教科書みたいなものになればよいなと思っています。Diffusionはオープンソースだからです。Diffusionの方が高性能という話もあります。オープンソースということは、誰もが手元で使えるようになったということです。Diffusionを基点にさまざまな企業や人がこの技術を使って何かしらのサービスを作ったりしてさらに発展していくように映りました。始まった大きなうねりはもう止められない、というのが主張の理由です(一色)。Diffusionとは「画像を生成するための訓練済みのモデル」であるということです。極端なことをいえば、モデルを使う上ではその詳細な理解は(とてもありがたいことに)必要ないともいえます。Colab上の環境にモデルをインストールしてスクリプトを実行したりプログラムコードを記述/実行したりすることで、多くの人が比較的簡単にその恩恵にあずかれるということです。使う分には知っておく必要はありませんが、中の仕組み、アーキテクチャーについても簡単に触れておきます。その後で使い方について紹介します。diffusion)」と呼ばれるアルゴリズムを実装したものです。model)」と呼ばれるモデルをより効率的にしたものと考えられます(ちなみに最初に述べたAIの多くも拡散モデル/潜在拡散モデルの系譜に連なるものです)。「潜在拡散」など、仕組みの話は何やら難しそうな単語が出てきますね。「難しくて理解できない」と思ったらスキップして大丈夫だと思います。後で出てくるVAEというのは機械学習のモデルアーキテクチャーの一つで専門用語になります。拡散モデルと潜在拡散モデルはどちらも基本的な考え方は同じです。「純粋なノイズから少しずつノイズを取り除いていくことで、最終的に何らかの画像を得る」というものです。Modelsより引用。これを行うには、モデルは実際の画像に少しずつノイズを付加しながら最終的に純粋なノイズ(ガウシアンノイズ)を得る過程(順方向の拡散プロセス)を基に、その逆に純粋なノイズから少しずつノイズを除去しながら最終的に元の画像を得る過程(逆方向の拡散プロセス)において、どんなノイズを純粋なノイズから除去していけば画像を得られるか(画像を生成できるか)を学習する必要があります。拡散モデル/潜在拡散モデルはこの除去されるノイズを推測し、初期値となるガウシアンノイズ(とは元の画像にノイズを適用して最後に得られたガウシアンノイズでもあります)から、逆方向の拡散プロセスの各ステップで推測したノイズを徐々に除去していき、最終的に何らかの画像を生成するものです。拡散モデルではピクセル空間を直接操作して、この処理を実現していましたが、これは多くの計算資源を必要として、訓練や推測にも時間がかかるという弱点がありました。そこで、潜在拡散モデルではVAEでおなじみの潜在空間を用いることでこの弱点を克服し、より効率的に(訓練と)推測を行えるようにしたものといえます。Diffusionは訓練済みのモデルなので、モデルを利用するだけであれば訓練の部分はあまり関係ないからです。Diffusionの概要となるのですが、先ほどもいったように使う分にはこんなことは知っている必要はないといえばないのです。そこで、次にこれを実際に試してみることにしましょう。設定を有効にする必要があります。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。