search
  1. フローマッチング|ノイズから画像へまっすぐ進む作り方

フローマッチング|ノイズから画像へまっすぐ進む作り方

編集部 読了 約6分

  • フローマッチングとは何?
  • フローマッチングと拡散モデルの違いが分からない
  • 整流(Rectified Flow)の意味を知りたい

Stable Diffusion 3 や FLUX.1 の説明には、フローマッチングや整流という語が出てきます。しかし、拡散モデルとどこが違うのかは、語からはつかめません。

この記事では、フローマッチングの意味、拡散モデルとの関係、ノイズと画像を直線の道で結ぶ整流の3つを解説します。少ないステップ(画像へ進む回数)で作れるモデルとの関係も分かります。

フローマッチングは、ノイズと画像をつなぐ道の向きを学習して、画像を作る方法です。

フローマッチングとは

ノイズの点から画像の点へ向かう道と、道の途中の各所で進む向きを矢印で表した図
ノイズと画像をつなぐ道の途中の各所で、次に進む向きを学ぶ(説明のための図)

フローマッチング(Flow Matching)とは、ノイズと画像のあいだをつなぐ道を決め、その道の向きを学習して画像を作る方法です。2022年に論文で発表されました。

ここでいう道は、ノイズ(でたらめな点のざらつき)だけの状態から画像へ少しずつ移っていく、作りかけの画像の並びです。向きは、道の途中のそれぞれの所で、次にどちらへどれだけ進むかを表します。

道の途中の所ごとに向きを集めたものは、ベクトル場と呼ばれます。上の図の矢印の1本1本が、その所での向きです。

学習では、学習用の画像ごとに、ノイズからその画像への道を決めておきます。モデルは道の途中の各所で向きを予測し、その予測が決めた道の向きに近づくように直されるしくみです。

画像を作るときは、新しいノイズから始め、モデルが予測した向きに少しずつ進むことをくり返します。進む1回1回がモデルの1回の計算で、この1回を段やステップと呼びます。

Stable Diffusion 3 や FLUX.1 では、プロンプトの数値が、向きを予測するときの手がかりです。

フローマッチングと拡散モデルの違い

拡散モデル(DDPM)とフローマッチングの、モデルが学ぶものと道の形を並べた表
拡散モデルは足したノイズを予測することを学び、フローマッチングは進む向きを学ぶ。拡散モデルの道も、フローマッチングで学べる道の1つ

フローマッチングと拡散モデルの違いは、モデルが学ぶものにあります。

拡散モデルの DDPM(2020年の論文の作り方)は画像に足したノイズを予測することを学び、フローマッチングはノイズから画像へ進む向きを学びます。

ただし、2つはまったく別の作り方ではありません。フローマッチングは、拡散モデルの道も、学べる道の1つとして含む方法です。

一方で、フローマッチングでは、拡散モデルとは違う形の道も選べます。拡散モデルの道は曲がった線になりますが、ノイズと画像を直線で結ぶ道も選べます。

フローマッチングの論文の試しでは、直線の道を選ぶと、拡散モデルの道より学習も画像の作成も速くなりました。

整流(Rectified Flow)と直線の道

曲がった道と直線の道を、同じ3段でたどったときに、着く所がどう違うかを表した図
同じ3段で進むと、曲がった道では段ごとに外れ、直線の道では画像に着く(説明のための図)

整流(Rectified Flow)とは、ノイズと画像を結ぶ直線の道を、できるだけたどるように学習する方法です。2022年に、フローマッチングと同じころ、別の論文で発表されました。

フローマッチングの論文には、整流の論文が同じころ、似た学習のしかたにたどり着いたと書かれています。

2つの違いは、扱う道の範囲です。フローマッチングは拡散モデルの道も直線の道も扱える方法で、整流は直線の道に絞り、学び直しを重ねて道を直線に近づける手順も持っています。

直線は2点を結ぶ最短の道で、細かい段に分けなくても正確にたどれる道です。

曲がった道をたどるには細かく何段にも分けて進む必要があり、直線の道なら1段でもたどれて、誤差(たどるべき道とのずれ)が積もりにくくなります。

上の図は、曲がった道と直線の道を、同じ大きな段で進んだ例です。曲がった道では段ごとに外れ、直線の道では外れません。

ただし、学習した整流の道は、完全な直線にはなりません。整流の論文は、学び直しを重ねて道を直線に近づけ、1段でもよい画像になったと書いています。

Stable Diffusion 3 の論文は、整流を、ノイズと画像を結ぶ道の選び方の1つとして扱っています。

この論文の試しでは、少ないステップで作ったとき、整流がほかの道の選び方より良い結果になりました。

整流のモデルと少ないステップ

FLUX.1 [dev] と FLUX.1 [schnell] の作り方と、開発元の例のステップ数を並べた表(2026年10月時点)
どちらも整流の Transformer だが、開発元の例のステップ数は [dev] が 50、[schnell] が 4(2026年10月時点)

Stable Diffusion 3 と FLUX.1 は、整流で作られたモデルです。

FLUX.1 は、開発元の Black Forest Labs の説明では rectified flow transformer(整流の Transformer)です。

Transformer は、画像を作るときの計算を受け持つ骨組みの種類を指します。

ただし、整流のモデルなら、どれも数ステップで画像ができるわけではありません。開発元の説明の頁の例では、FLUX.1 [dev] は 50 ステップで画像を作っています(2026年10月時点)。

学習した整流の道は完全な直線ではないので、整流のモデルでも何段かに分けて進むわけです。

一方の FLUX.1 [schnell] は、開発元によると、1〜4 ステップで質の高い画像を作れるモデルです。

開発元は、この少ない回数を、[schnell] を latent adversarial diffusion distillation という方法で学習したことと結びつけて説明しています。

distillation は、日本語で蒸留と呼ばれる学習の方法の名前です。

つまり、[schnell] の数ステップは、開発元の説明では、整流ではなく蒸留の学習に結びつけられています。

フローマッチングと整流と蒸留を分けて読もう

フローマッチング・整流・蒸留したモデルの、学ぶものと特徴を並べた表
フローマッチング・整流・蒸留の違い

フローマッチングは、ノイズから画像へ進む道の向きを学んで画像を作る方法です。この記事で解説したことは、次の3つです。

  • 拡散モデルとの違いは学ぶもので、拡散モデルの道もフローマッチングで学べる
  • 整流は直線に近い道を学ぶので、少ないステップでも誤差が積もりにくい
  • 数ステップで作れる FLUX.1 [schnell] を、開発元は蒸留の学習と結びつけて説明している

モデルの説明で rectified flow を見たら直線の道を学ぶ作り方、distillation を見たら加えた学習の方法の話として読んでみてください。

あわせて読みたい

  • 「拡散モデル|ノイズを少しずつ取り除いて作る画像」(準備中) — ノイズを予測して取り除く、拡散モデルの作り方を知りたいとき
  • 「サンプラーとステップ数|ノイズの取り方と回数」(準備中) — 画像を作るときにくり返す回数の設定を知りたいとき
  • 「UNetとDiT|モデルの骨組みの違い」(準備中) — FLUX.1 などが使う Transformer の骨組みを知りたいとき
  • 「ComfyUIの画像モデルとは|系統ごとのワークフロー」(準備中) — 整流のモデルを ComfyUI で使う方法を知りたいとき

会員登録(無料)

記事やテーマのお気に入り・学習履歴・フォローが使えます。

この記事について

PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。