拡散モデルとはノイズから画像を作る生成AIの仕組みと代表的な応用
拡散モデルは、画像にノイズを加える過程を学習し、逆にノイズから画像を復元することで生成を行うモデルです。仕組みの流れ、テキストからの画像生成、潜在拡散モデル、Stable Diffusionなどへの応用、特徴と課題を整理します。
公的機関・公式資料などの一次情報と照合して作成しています。このサイトについて
拡散モデルとは
拡散モデル(diffusion model)は、画像などのデータに少しずつノイズを加えて、最終的にただのノイズにする過程を考え、その逆の過程(ノイズから少しずつデータを復元する)をニューラルネットワークに学習させることで、新しい画像を生成するモデルです。基本的な考え方は2015年頃から研究されており、2020年のDDPMの論文を契機に大きく注目され、現在の画像生成AIの主流の手法の一つになっています(画像生成AIの基本)。
仕組みの流れ
| 段階 | 内容 |
|---|---|
| ① 順方向の過程(ノイズを加える) | 学習用の画像に、段階的にノイズを加えていき、最終的に完全なノイズにする |
| ② 学習 | 各段階で、「加えられたノイズ」を予測するようにモデルを学習させる |
| ③ 逆方向の過程(生成) | 完全なノイズから出発し、予測したノイズを少しずつ取り除いて、画像を作る |
生成のたびに、最初のノイズ(乱数の種)が違うため、同じ指示でも異なる画像が得られます。
文章から画像を作る仕組み
「猫が宇宙服を着ている」のような文章から画像を生成するには、文章の情報を、拡散モデルに条件として与える必要があります。
| 要素 | 役割 |
|---|---|
| テキストエンコーダ | 文章を、意味を反映した数値のベクトルに変換する(埋め込み(Embedding)) |
| 条件付けの仕組み | ノイズを取り除く各ステップで、文章の情報を参照させる |
| ガイダンス | 文章の指示にどれだけ従うかの強さを調整する(CFGスケールなど) |
画像と文章の対応関係を学習したモデルを組み合わせる方法などがあります。
潜在拡散モデル
画像をそのまま扱うと、計算量が非常に大きくなります。そこで、画像を、小さな「潜在空間」の表現に圧縮し、その空間で拡散処理を行うのが潜在拡散モデル(Latent Diffusion Model)です。2021年末に公開され、2022年のCVPRで発表された論文で提案され、高品質な画像を、少ない計算資源で生成できるようになりました。公開されたStable Diffusionは、この方式を採用しています(Stable Diffusion)。
代表的な応用
| 応用 | 内容 |
|---|---|
| テキストから画像の生成 | 文章で指示して、画像を作る(画像生成のプロンプト) |
| 画像から画像の変換 | 元の画像をもとに、別のスタイルや内容に変換する(img2imgとインペイント) |
| 部分的な修正(インペインティング) | 画像の一部を、指示に沿って描き直す |
| 画像の高解像度化 | 低解像度の画像を、細部を補いながら拡大する |
| 動画・音声・3Dへの応用 | 時間軸を加えるなどの発展形(動画生成の基本) |
| 追加学習による調整 | LoRAなどで、特定の画風・キャラクターを学習させる(LoRA) |
特徴と課題
| 特徴・課題 | 内容 |
|---|---|
| 高品質・多様性 | 質の高い、多様な画像を生成できる |
| 反復による生成 | 多数のステップを要するため、生成に時間がかかる(高速化の研究が続く) |
| 指示との不一致 | 細かい指示(文字の描写、数、位置関係)が、うまく反映されないことがある |
| 手や文字の描写 | 細部の破綻が起きやすい(改善が進んでいる) |
| 権利・倫理 | 学習データの権利、既存作品への類似、偽画像への悪用などの論点(生成画像の著作権、ディープフェイク) |
LLMとの違い
| 項目 | LLM | 拡散モデル |
|---|---|---|
| 生成の方法 | 次のトークンを1つずつ予測 | ノイズから、全体を段階的に洗練 |
| 主な対象 | 文章・コード | 画像・音声・動画など |
| 基盤の構造 | Transformer(Transformerとは) | U-Netなど。Transformerを用いる方式も増えている |
文章生成と画像生成は、仕組みが異なりますが、文章の意味を数値で扱う技術などは共通して使われます。
拡散モデルの具体例
画像生成で同じプロンプトを使っても、毎回違う画像が出るのは、生成の出発点となるノイズ(シード値)が毎回異なるためです。シード値を固定すると、同じ設定で似た画像を再現しやすくなります。気に入った画像のシード値を記録しておくと、少しずつ指示を変えて試行錯誤するときに便利です。
拡散モデルのFAQ(よくある質問)
Q. 拡散モデルは、画像を切り貼りしているのですか?
A. いいえ。学習した画像のパターンにもとづいて、ノイズから新しく画像を生成します。ただし、学習データに近い画像が出ることはあり得ます。
Q. 生成にどれくらい時間がかかりますか?
A. モデルと環境によりますが、数秒〜数十秒程度が目安です(高速化したモデルや、高解像度・動画では大きく異なります)。
Q. 文字が、きれいに描けないのはなぜですか?
A. 細かな形状を、文章の指示どおりに再現するのが難しいためです。近年は改善が進んでいます。
筆者の見解(拡散モデル)
拡散モデルは、「ノイズの中から、彫刻のように形を掘り出す」手法だと捉えると、直感的に理解しやすくなります。仕組みを知っておくと、シード値・ステップ数・ガイダンスといった設定項目の意味がつながり、生成を「ガチャ」ではなく、「調整可能な工程」として扱えるようになります。
拡散モデルの関連項目
- 画像生成AIの基本
- Stable Diffusion
- LoRA
- img2imgとインペイント
出典(一次情報)
本記事は一般的な情報の提供を目的としています。AIのサービス・機能・料金・仕様は頻繁に更新されるため、最新の内容は各社の公式ドキュメントでご確認ください。「筆者の見解」は一つの考え方です。