【数式なし】画像生成AIの仕組み|ノイズを消して絵を描く拡散モデルの流れ

田村 直祈・公開 2026-10-17

多くの画像生成AIは「拡散モデル」を採用しており、砂嵐のようなランダムな数字から出発し、学習によって培った「ノイズを見分けて少しずつ取り除く処理」を数十回繰り返して画像を生成します。プロンプトの言葉は数字の列に変換されて各ステップのノイズ除去に反映されるため、同じ砂嵐からでも指示通りの絵が現れます。

この記事の要点

  • 画像はすべて数字の並びであり、512×512画素のカラー画像であれば786,432個の数字で構成されています。
  • 拡散モデルは「写真にノイズを加え、加えたノイズを予測する」学習を重ねることで、砂嵐のような状態からノイズを段階的に取り除いて描画します。
  • Stable Diffusionは画像を64×64×4の小さな数字の束(潜在空間)に圧縮して処理を行い、言葉への従い方をガイダンスという倍率で調整します。

画像生成AIは何を作っているのか:絵はただの数字の並び

画像生成AIが作っているのは、絵そのものではなく「数字の並び」です。デジタル画像は画素(ピクセル)と呼ばれる小さな色の点の集まりであり、1つの点は赤・緑・青の光の量を表す3つの数字(それぞれ0〜255)で構成されています。

たとえば512×512画素のカラー画像であれば、512×512×3=786,432個の数字で構成されます。つまり画像を1枚描く作業は、この約78万個の数字をすべて決めることと同じです。

問題は、数字をでたらめに決めると、ほぼ確実に砂嵐のような画像になってしまう点です。実際の写真では隣り合う点同士の色が似通っていますが、ランダムな数字にはそうした規則性がありません。「どのように並べれば絵らしくなるのか」を数字の組み合わせの中から導き出すのが、画像生成AIの役割です。

拡散モデルとは:ノイズを足す練習から、ノイズを消す力を学ぶ

拡散モデルは、「絵を一度に描く」のではなく「ノイズを段階的に消す」ことで絵を作り出す手法です。その発想の原点は2015年のSohl-Dicksteinらの論文にあり、データに少しずつノイズを加えて構造を崩し、その逆手順を学習させるというアイデアから始まりました。その後、2020年のHoらの論文「Denoising Diffusion Probabilistic Models(DDPM)」によって高品質な画像を生成できることが示され、広く普及するに至りました。

学習の仕組みはシンプルです。手元の写真にランダムなノイズを加え、AIに「どのノイズが足されたのか」を予測させます。加えたノイズはあらかじめ分かっているため、それがそのまま正解データとなり、人間が正解を用意する手間もかかりません。DDPMの論文では、わずかなノイズから完全な砂嵐に至るまでを1000段階(T=1000)に分割し、どの段階からでもノイズを正しく推測できるように学習させています。

実際に絵を描く際は、このプロセスを逆順に実行します。完全な砂嵐からスタートし、AIが予測したノイズを少しだけ差し引き、再び予測して差し引く作業を繰り返します。生成時は学習時の1000段階をすべてたどる必要はありません。Songらの2020年の論文「Denoising Diffusion Implicit Models(DDIM)」は、段階を間引いて進むことでDDPMより10〜50倍速く高品質な画像を作れると報告しており、Hugging Faceの解説によればStable Diffusionでは推論ステップ数50回が標準的な設定です。何もない白紙から一気に絵を描くのは困難ですが、「現在よりわずかにノイズが少ない状態」を予測する作業であれば難易度は大幅に下がり、その積み重ねによって目的の絵が完成します。

言葉はどうやって絵に効くのか:テキストエンコーダとクロスアテンション

プロンプトに入力された言葉は、まず数字の列(ベクトル)へと変換され、ノイズを除去する各ステップで参照されます。言葉自体が直接描画を行うわけではなく、「どのノイズを除去すべきか」という毎回の判断を少しずつ調整することで、最終的な絵の仕上がりを導いています。

言葉を数字に変換する代表的な仕組みが、OpenAIが2021年に発表したCLIPです。CLIPはインターネット上から収集した4億組に及ぶ「画像と説明文」のペアを用い、どの説明文がどの画像に対応しているかを推測する学習を行いました。その結果、意味の近い言葉と画像が近しい数値に変換される「共通の地図」のような空間が構築されました。AIは「猫とは何か」という概念的な定義を教わるのではなく、膨大なデータの対応関係を通じて、「猫」という言葉と猫らしい画像の結びつきを理解しています。

Stable Diffusion v1では、CLIPのテキストエンコーダ(ViT-L/14)がプロンプトを最大77個のトークン(単語やその一部)に区切り、それぞれを768個の数字で表した列(77×768)に変換します。そして、ノイズを予測するネットワーク(U-Net)がクロスアテンションという仕組みを活用し、画像の各領域が「どの単語を参照すべきか」を判断しながら計算を進めます。Rombachらの論文では、テキストなどの指示情報をこの方法で組み込む設計が示されました。

なぜ速く描けるのか:潜在空間という「縮めた絵」の上で描く

Stable Diffusionが高速かつ省メモリで動作する理由は、画像をピクセルのまま直接扱わず、小さく圧縮した数字の束(潜在空間)の中でノイズを除去しているためです。この手法は、RombachらがCVPR 2022で発表した「潜在拡散モデル(Latent Diffusion Models)」の論文で提案されました。Hugging Faceの解説でも、この工夫によって16GBメモリのColab環境にあるGPUでも512×512画素の画像を生成できるようになったと説明されています。

具体的には、VAEと呼ばれる仕組みが512×512画素の画像を縦横それぞれ8分の1に縮小し、64×64×4の数字の束へと変換します。これにより、数字の総数は786,432個から16,384個へと、実に48分の1にまで減少します。拡散モデルはこのコンパクトなデータ上で50回のノイズ除去を行い、最後の仕上げとしてVAEのデコーダを使って本来のピクセル画像へと復元します。

論文によると、ピクセルのまま拡散モデルを動かす従来の方法は学習・生成ともに大きな計算コストがかかりますが、潜在空間を活用することで計算負荷を大幅に抑えつつ、細部の描写品質を維持できるようになりました。圧縮された数字の束は人間が見ても画像とは認識できませんが、元の姿に復元するために不可欠な情報はしっかりと保持されています。

ガイダンス(CFGスケール)とは:言葉にどれだけ強く従わせるかの倍率

ガイダンスは、生成される画像を指示されたプロンプトへどれほど強く近づけるかを調整する倍率です。現在主流となっているのは、HoとSalimansが2022年に発表した「Classifier-Free Guidance(分類器なしガイダンス)」と呼ばれる手法です。

その仕組みは次の通りです。AIはステップごとに、「言葉の指示あり」と「言葉の指示なし」の2通りでノイズを予測します。そのうえで、「指示なし」の予測を起点とし、「指示あり」との差分を何倍かに引き伸ばした方向へと処理を進めます。この引き伸ばす倍率こそがガイダンススケールであり、Hugging Faceの解説によるとStable Diffusionの初期値は7.5、推奨範囲は7〜8.5とされています。なお、値を1に設定すると、ガイダンスを適用しない状態と同等になります。

1つのAIモデルで2通りの予測をこなせるのは、学習段階であえて説明文を空欄にしたデータを混ぜているからです。Stable Diffusion v1-4のモデルカードには、ガイダンスによる生成精度を高めるため、テキスト条件の10%を意図的に除外して学習させたと記載されています。この倍率を引き上げるほどプロンプトの指示には忠実になりますが、過度に上げると画質や構図の多様性が損なわれる場合があるため、単純に高ければ良いというものではありません。

画像生成AIの仕組みをもっと深く学ぶには

画像生成の仕組みをさらに深く掘り下げたい場合、ご自身の目的に応じて適した学習リソースが異なります。実装面まで踏み込んで理解したい方には、無料で読めるHugging FaceのDiffusersのドキュメントや解説記事が向いています。実際のコードとともに各モジュールの挙動を確認できます。一方で、数式を含めた基本原理を正確に把握したい場合は、本記事で取り上げたDDPM、潜在拡散モデル、CLIP、Classifier-Free Guidanceの各論文が直接の一次情報となります。なお、これらはいずれも英語の文献です。

専門的な英語や数式に挑む前に、まずは日本語で直感的に全体像を掴みたい方には、Hacozyの「画像生成AIの仕組み」といった教材も有効な選択肢です。このコースは「この絵は、ただの数字の並び」から「AIの絵で、指が6本になる理由」まで全8レッスンで構成されており、本記事で紹介した数字、ノイズ、言葉、潜在空間、ガイダンスの要点を、数式を用いずインタラクティブな図解やクイズを通して段階的に学べます。

ただし、Hacozyは動画のない読み物形式であり、アプリの提供も現時点ではiOS版に限られています。そのため、高度な数式やコードの実装を深く追究したい方や、自ら画像生成モデルを学習させたい方には、原著論文やDiffusersのドキュメントを活用した学習をおすすめします。

本記事はHacozyが制作しています。記載されている内容は2026年10月時点で確認された論文や公式資料に基づいています。なお、各サービスの機能や提供条件は将来変更される場合があります。

出典:Sohl-Dickstein et al.「Deep Unsupervised Learning using Nonequilibrium Thermodynamics」(2015) https://arxiv.org/abs/1503.03585 / Ho et al.「Denoising Diffusion Probabilistic Models」(2020) https://arxiv.org/abs/2006.11239 / Song et al.「Denoising Diffusion Implicit Models」(2020) https://arxiv.org/abs/2010.02502 / Radford et al.「Learning Transferable Visual Models From Natural Language Supervision」(2021) https://arxiv.org/abs/2103.00020 / Rombach et al.「High-Resolution Image Synthesis with Latent Diffusion Models」(CVPR 2022) https://arxiv.org/abs/2112.10752 / Ho & Salimans「Classifier-Free Diffusion Guidance」(2022) https://arxiv.org/abs/2207.12598 / Hugging Face「Stable Diffusion with 🧨 Diffusers」https://huggingface.co/blog/stable_diffusion / CompVis「stable-diffusion-v1-4」モデルカード https://huggingface.co/CompVis/stable-diffusion-v1-4 / Carlini et al.「Extracting Training Data from Diffusion Models」(2023) https://arxiv.org/abs/2301.13188 / BBC Science Focus(Peter Bentley氏への取材)https://www.sciencefocus.com/future-technology/why-ai-generated-hands-are-the-stuff-of-nightmares-explained-by-a-scientist

Stable Diffusion(v1)で1枚の絵ができるまでの部品と役割
部品役割Stable Diffusion v1での具体例
テキストエンコーダ(CLIP)プロンプトを数字の列に変換するViT-L/14で最大77トークン×768次元の数値列に変換
初期ノイズ描画の起点となる砂嵐64×64×4のランダムな数字
U-Net(ノイズ予測)各ステップで除去すべきノイズを予測するクロスアテンションで言葉を参照し、標準50ステップを実行
ガイダンスプロンプトの指示への反映度を高める言葉あり・なしの予測差を7.5倍(初期値)に増幅
VAEデコーダ圧縮された数字の束を画像データへ復元する64×64×4を512×512画素のカラー画像へ復元

よくある質問

画像生成AIは、学習した画像を切り貼りして絵を作っているのですか?

拡散モデルは、学習した画像データを直接保存して切り貼りしているわけではありません。学習によって獲得するのはあくまで「ノイズの特徴を見分け、それを取り除く手法」であり、生成時にはランダムな砂嵐データからその能力を応用して新たな数字の並びを構築します。ただし、Carliniらによる2023年の研究では、Stable Diffusionなどの拡散モデルから1000枚以上の学習画像が復元できた事例も報告されており、学習データと酷似した画像が出力される可能性が完全に排除されているわけではありません。

画像生成AIの絵で、指が6本になったりするのはなぜですか?

明確な原因は単一に特定されていませんが、ユニバーシティ・カレッジ・ロンドンのPeter Bentley氏はBBC Science Focusの取材において、画像生成AIが2次元の平面画像から学習しており、手本来の3次元的な立体構造を把握していない点を指摘しています。手は角度や指の重なり方が極めて多彩なうえ、AIは指の本数を論理的に数えているわけではなく「手らしい外見」を数字のパターンとして再現しているに過ぎないため、このような不整合が生じやすいと考えられています。

同じプロンプトなのに、毎回違う絵が出るのはなぜですか?

生成の起点となる砂嵐(初期ノイズ)が実行ごとにランダムに生成されるためです。同じプロンプトを参照していても、出発点となるノイズのパターンが異なれば、段階的なノイズ除去の経路も変化し、最終的に異なる画像へと仕上がります。なお、Hugging Faceの解説にあるように、乱数の「シード値」を固定すれば常に同一の初期ノイズが用いられるため、同一の設定下であればまったく同じ画像が再現されます。

画像生成AIの仕組みを理解するのに、数学やプログラミングの知識は必要ですか?

全体のメカニズムを大枠で把握するだけであれば、高度な数学やプログラミングの専門知識は必須ではありません。「画像は数字の並びであること」「ノイズを予測して段階的に取り除くこと」「言葉がその除去プロセスを誘導すること」の3つの要点を押さえるだけで、主要なパラメータの意味や技術的な得手不得手も十分に説明できるようになります。将来的にモデル自体の学習やチューニングに挑戦したい段階になってから、確率統計や線形代数、Pythonの知識を補うことで、論文やソースコードをスムーズに読み解けるようになります。

関連するコース