メインコンテンツへスキップ
見出し画像

FP8_scaled と MXFP8 のどっちがおすすめ? 画像生成 AI モデル の精度と速さを徹底比較! 【浮動小数点・軽量化】


    2026.7.6 追記

    記事の最後に、2026.7.1 に ComfyUI が新たに対応した INT8_ConvRot 形式 との比較を追記しました。INT8_ConvRot 形式は、既存のすべての FP8 と FP4 形式より、精度・速度ともに優れている ため、今後は FP8 ではなく INT8_ConvRot 形式の利用をおすすめします。


    はじめに

    こんにちは、きまま / Easygoing です。

    今回は、画像生成 AI モデルの形式と精度と速さ についてみてみます。

    花畑を背景に微笑む青と白の服を着た女性の実写系のイラスト
    今日は、画像生成 AI モデルの形式について

    AI モデル は、浮動小数点形式で処理を行う

    画像生成 AI を含む AI モデルは、膨大な計算を 浮動小数点形式 で行っています。

    浮動小数点形式について

    (−1)符号部×2指数部×仮数部(-1)^{\text{符号部}} \times 2^{\text{指数部}} \times \text{仮数部}

    浮動小数点形式のデータ構造(符号部、指数部、仮数部)の表

    浮動小数点形式は、ダイナミックレンジ が広い ので処理が安定し、さらにデータが頻出する 0 付近 にビット数を多く使うので 比較的精度が良い という特徴があります。

    各浮動小数点形式の登場時期を示したガントチャート

    浮動小数点方式は、1985年に標準化されて以降、主に 32bit 浮動小数点方式(FP32)が使われてきましたが、2010年代に入り AI の研究が進むと、より軽量な FP16 / BF16 形式 も使われるようになりました。

    GPU が対応する浮動小数点形式の一覧!

    それでは、NVIDIA・AMD・Intel のそれぞれの GPU が対応する浮動小数点形式を見てみます。

    NVIDIA、AMD、Intel の各GPUシリーズの登場時期を示したガントチャート
    各GPUメーカー(NVIDIA・AMD・Intel)が対応する浮動小数点形式の一覧表
    • FP32:高精度・高コスト

    • FP16:精度と速度の良いバランス

    • BF16:FP16 より安定するが、精度が少し落ちる

    • FP8:FP16 / BF16 の半分の容量、精度はかなり落ちる

    • FP8_scaled:スケーリングを行い、FP8 の精度の低下を抑えた方式

    • MXFP8:32個のデータ毎にブロックに分けてスケーリング、精度をさらに改善

    • NVFP4:2段階のスケーリングで、FP4 でも最低限の精度を維持

    FP32 は、全てのデバイスで実行可能 な形式です。

    FP16 は FP32 の半分の容量で、実用上問題ない精度 を維持できています。

    BF16 は、FP16 から 精度を落とす代わりに安定性を向上 させた形式で、モデルの学習や VAE の処理で利用されています。

    FP8 は FP16 / BF16 の半分の容量ですが、精度は大きく低下してしまいます。

    そこで、モデルの層ごとに 絶対最大値を使ってスケーリング をすることで、精度の低下を抑えたのが FP8_scaled で、これは FP8 が実行可能な全ての GPU で利用することができます。

    花畑を背景に微笑む青と白の服を着た女性がこちらを振り向いている実写系のイラスト
    スケーリングを行って FP8 の精度の低下を抑える

    さらに、モデルの層を 32個 ずつのデータの ブロックに分けて細かくスケーリング を行ったのが MXFP8 で、外れ値の影響を最小化できるので精度がさらに改善しますが、ハードウェア的に実行可能な GPU は RTX 5000 シリーズ に限られます。

    NVFP4 は 2025年に登場した新しい形式で、2段階のスケーリング を行うことで低精度の 4 bit でも最低限の精度を維持しています。

    実際のイラストを比べてみよう!

    それでは、実際のイラストを比べてみましょう。

    今回は、外部の Text Encoder と VAE を使わない、シンプルな UiT アーキテクチャ の HiDream-O1-Image_clear_v1 モデルを利用して比較を行います。

    HiDream-O1-Image_clear_v1 モデル について

    HiDream-O1-Image シリーズは、アニメイラストの描写はまだ苦手なので、今回は 実写系のイラスト を生成してみます。

    実際のイラスト

    それでは実際のイラストを見てみましょう。

    FP32

    FP32形式で生成された実写系の女性イラスト

    まずは、最も精度の良い FP32 形式 のイラストです。

    HiDream-O1-Image モデルは、VAE を使わない UiT アーキテクチャなので、従来のモデルと比べて 自然な色表現 になっています。

    この FP32 形式を基準に、左側に該当の形式で生成したイラスト、右側に FP32 形式 と比べた場合の差分マップを並べてみます。

    FP16

    FP16形式で生成されたイラストとFP32との差分マップ。輪郭や服の模様に変化が見られる

    最初に比較するのは、FP16 形式 です。

    FP16 形式 は、FP32 形式 と比べて 人物の輪郭 と 服の模様 に違いが生じていますが、色の表現も良く高いクオリティが保たれています。

    BF16

    BF16形式で生成されたイラストとFP32との差分マップ。FP16と同等の高いクオリティ

    続いて BF16 形式 です。

    先ほどの FP16 形式 と同様に、人物の輪郭と服の模様に違いが生じていますが、こちらも高いクオリティになっています。

    MXFP8

    MXFP8形式で生成されたイラストとFP32との差分マップ。背景の花などに変化があるが全体品質は維持

    次に、8 bit の中では最も精度の良い MXFP8 形式 を見てみます。

    MXFP8 形式は、先ほどの BF16 形式 と比べて 背景の花 も変化していますが、全体のクオリティは比較的保たれています。

    FP8_scaled

    FP8_scaled形式で生成されたイラストと差分マップ。色の深みが失われ、灰色がかった表現に変化

    続いて FP8_scaled 形式 です。

    FP8_scaled は先ほどの MXFP8 よりも劣化が強く、色の深みも失われて 灰色っぽい表現 になってしまいました。

    FP8

    FP8形式で生成されたイラストと差分マップ。ブロックノイズが発生し、構図が単純化して大きく劣化

    次は、単純な FP8 形式 です。

    FP8 形式は、今までとは全く違った 単純な構図 になり、さらに ブロックノイズ 出現して未完成のイラストになっています。

    NVFP4

    NVFP4形式で生成されたイラストと差分マップ。構造は保たれるが色のトーンが大きく変化している

    最後に NVFP4 形式 を見てみます。

    NVFP4 形式は、先ほどの FP8 形式と比べて構造は保たれている一方で、色のトーン が強く変化して、イラストの印象が変わっています。

    MAE と SSIM で数値化して比較!

    それでは、それぞれのイラストの違いを数値で比較してみましょう。

    今回は、FP32 形式 からの変化を MAE と SSIM の類似度で評価します。

    赤い花を近景に、花畑を背景に微笑む青と白の服を着た女性の実写系のイラスト
    MAE と SSIM で客観的に評価する

    それぞれのイラストを、最も精度の良い FP32 形式と比較して、MAE と SSIM を 7回測定して中央値 を求めてみます。

    画像生成 AI モデルの容量と精度

    浮動小数点形式における容量とMAEとSSIMの測定結果を示す散布図
    浮動小数点形式における容量とMAEとSSIMの測定結果の表
    • モデルの 容量と画質 は比例する

    • FP16 と BF16 は、ほぼ同じ精度

    • FP8 は画質が劣化するが、MXFP8 と FP8_scaled は精度をかなり維持

    • NVFP4 は、単純な FP8 よりも精度が良い

    画像生成 AI モデルの 容量と画質 は、概ね比例しています。

    グラフを見ると、FP8 形式 は精度が大きく低下していますが、MXFP8 と FP8_scaled はスケーリングを行って 重要部分の情報を保持 することにより、かなりの精度を維持しています。

    NVFP4 は、4 bit 相当の画質になりますが、それでもスケーリングの効果で単純な FP8 より画質は保たれています。

    浮動小数点形式と精度

    今回の測定での精度は、次の順番になりました。

    • FP32 > FP16 ≒ BF16 > MXFP8 > FP8_scaled > NVFP4 > FP8

    青と赤と黄色の花畑を背景に微笑む青と白の服を着た女性の実写系のイラスト
    前半はここまで

    生成時間の比較

    後半は、生成にかかった時間を比較します。

    まず、今回の測定の環境は次のとおりです。

    測定環境

    • Linux (Pop!_OS 24.04)

    • ComfyUI 0.24.0

    • RTX 4060 Ti 16GB

    • 2048 x 2048, 24 Steps

    Windows と Linux の生成速度の比較

    GPU が対応する浮動小数点形式

    各GPUメーカー(NVIDIA・AMD・Intel)が対応する浮動小数点形式の一覧表の再掲

    今回の検証で利用した RTX 4060 Ti は、FP32 から FP8_scaled まで の形式に対応していますが、MXFP8 と NVFP4 には非対応 なので、 BF16  に フォールバック して動作します。

    実際の生成時間

    それでは、実際の結果です。

    今回も、それぞれの形式で7回測定して中央値を示しています。

    イラスト生成の所要時間

    浮動小数点形式におけるイラスト生成の所要時間を比較した棒グラフ
    浮動小数点形式の容量とイラスト生成の所要時間を比較した表

    まず、画像の生成速度は モデルを VRAM にロードできるかどうか でほぼ決まります。

    HiDream-O1-Image モデルは、FP16 / BF16 以下の形式が VRAM に完全ロード できるので、処理を高速に行うことができます。

    花畑を背景に微笑む青と白の服を着た女性の実写系のイラスト、遠景に月が見える
    VRAM にロードできると速い!

    次に、RTX 4000 シリーズが対応していない MXFP8 と NVFP4 は、BF16 にフォールバックして処理するため、生成速度はむしろ遅くなっていて、対応していない GPU で最新形式を実行するメリットはほぼありません。

    また、今回の FP8_scaled は ComfyUI 専用形式 のため、処理が高速に行われましたが、外部ツールで変換した FP8 は ComfyUI ではうまく認識されず、BF16 にフォールバックして動作が遅くなってしまいました。

    ComfyUI 専用の FP8_scaled が利用可能な場合は、なるべく FP8_scaled モデル を利用すると良いでしょう。

    最適な形式は GPU によって異なる

    今回 RTX 4060 Ti 16GB では、FP16 と FP8_scaled が画質と速度のバランスに優れていることが分かりました。

    花畑を背景に手を組んで微笑む青と白の服を着た女性の実写系のイラスト
    RTX 4000 シリーズは FP8_scaled、5000 シリーズは MXFP8

    イラストの生成速度は、VRAM の容量 と GPU が対応する浮動小数点形式 で全く違ってくるので、複数の形式が公開されている場合は、いろいろ試してみなさんの最適解を見つけてみてください。

    UiT アーキテクチャは変化が大きい

    今回は UiT アーキテクチャの HiDream-O1-Image で検証を行いましたが、以前に検証した Flux.1 [dev] と比べて、モデルの形式によるイラストの変化が大きい結果になりました。

    • HiDream-O1-Image:UiT、ベースモデル

    • Flux.1 [dev]:ViT、蒸留モデル

    Flux.1 [dev] のモデル形式と精度について

    これは、HiDream-O1-Image が UiT アーキテクチャ の ベースモデル であるのに対して、Flux.1 [dev] は ViT アーキテクチャ の 蒸留モデル であり、Flux.1 [dev] は VAE の後処理での破綻を抑えるために、蒸留の段階で 出力を一定範囲に抑える調整 がされていたのではないかと考えてます。

    UiT アーキテクチャ は、シンプルな構造な分さまざまな調整ができるので、柔軟な脳を持ったモデル と言えるでしょう。

    まとめ:容量と画質は比例する

    • 画質:FP32 > FP16 ≒ BF16 > MXFP8 > FP8_scaled > NVFP4 > FP8

    • VRAM にロードできると速い

    • GPU が対応する形式を利用する

    今回は、モデルの浮動小数点形式と画質と生成速度を比較しました。

    浮動小数点にはいろいろな形式があり、選択に迷うケースも多いですが、今回 モデルの容量と画質は比例する ことを確認できました。

    花畑と森を背景に微笑む青と白の服を着た女性の実写系のイラスト
    いろいろ試してみよう!

    MXFP8 や NVFP4 などの新しい形式は、最新の GPU で高速に生成 する用途では、良い選択肢になると思います。

    これからも、画像生成 AI の画質と速度について、独自の検証を行っていきたいと思います。

    最後までお読みいただきありがとうございます!


    2026.7.6 追記:INT8_ConvRot との比較

    2026.7.1、ComfyUI が新たに INT8_ConvRot 形式 に正式対応しました。INT8_ConvRot 形式をこれまでの浮動小数点形式と比較してみます。

    ひろろひさんの INT8_ConvRot についての解説記事

    FP32 vs INT8_ConvRot_HQ

    INT8_ConvRot_HQ 形式で生成されたイラストと差分マップ。もとの構造と色がよく保たれている

    精度(MAE と SSIM)

    浮動小数点形式における容量とMAEとSSIMの測定結果を示す散布図にINT8_ConvRot_HQ 形式を追加したもの
    浮動小数点形式における容量とMAEとSSIMの測定結果の表にINT8_ConvRot_HQ 形式を追加したもの

    生成速度

    浮動小数点形式におけるイラスト生成の所要時間を比較した棒グラフにINT8_ConvRot_HQ 形式を追加したもの
    浮動小数点形式の容量とイラスト生成の所要時間を比較した表にINT8_ConvRot_HQ 形式を追加したもの

    INT8_ConvRot_HQ は、通常に加えて、画質に与える影響が大きい最初と最後の層も FP16 で保持した筆者のカスタムモデルです。

    INT8_ConvRot 形式は、既存のすべての FP8 と FP4 形式より、精度・速度ともに優れている ため、今後は FP8 ではなく INT8_ConvRot 形式の利用をおすすめします。

    変換に利用したライブラリ

    変換時のコマンド

    ctq -i HiDream-O1-Image_clear_v1_FP16.safetensors \
        -o HiDream-O1-Image_clear_v1_INT8_ConvRot_HQ.safetensors \
        --int8 --scaling_mode row \
        --convrot --convrot-group-size 64 \
        --calib_samples 8192 \
        --comfy_quant --save-quant-metadata --verbose VERBOSE \
        --exclude-layers "norm|bias|embed_tokens|pos_embed|patch_embed|t_embedder|x_embedder|lm_head|final_layer2|language_model\.layers\.(0|1|2|33|34|35)\.|visual\.blocks\.(0|1|2|24|25|26)\.|visual\.blocks\.\d+\.mlp\.linear_fc2"

    ワークフロー & 測定データ

    ワークフロー

    今回の測定に利用したワークフローはこちらです。

    今回の検証に使用したComfyUIのワークフロー画面のスクリーンショット

    測定データ

    また、実際の測定データは次のページにまとめています。


    English Article


     
     
    はじめまして、きまま です。ふとしたきっかけでAI画像生成に出会い、その魅力にすっかり取り憑かれました。AI画像で気づいたことを発信していきます。 画像はAIで生成したものですが、もし気に入ったものがあればご自由にお使い下さい。AI技術を否定する目的でのご利用はご遠慮下さい。

    あなたへのおすすめ