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

INT8 ConvRotの解説(今後FP8は不要です)

    2026/7/1リリースのComfyUI v0.27.0でネイティブ対応されたINT8 ConvRotというモデル化・量子化方式が話題です。
    特にGeForce RTX 20/30シリーズでの恩恵が大きいのですが、GeForce RTX 40/50シリーズでもこれまで基準となっていたFP8形式やFP8 Scaled形式を超える性能であると報告されています。
    そのため8bit量子化モデルはすべてINT8 ConvRotが基準に置き換わると言われており、実際にComfy-Orgにより対応が進められています。

    まだ情報が広まっておらず勘違いや混同している人も多いため、本記事で整理して解説します。


    2026/7/7: Forge NeoがINT8 ConvRotに対応したことを追記
    2026/7/6: きままさんのINT8 ConvRot評価結果について追記
    2026/7/5: 「モデル化の方式と形式の分類」でGGUFについて追記
    2026/7/5: 「INT8 ConvRotの利用方法」でTritonとPyTorchについて追記

    AIモデルの保存形式

    INT8 ConvRotの説明をする前にAIモデルの保存形式の基本を解説します。

    モデル化・量子化

    AIモデルは一般的な範囲での最高精度としては32bit FLOAT型のFP32でモデル化されますが、SDXLですら12GBという大きなファイルサイズになってしまうため、16bitや8bit、場合によって4bitへbit数を削減するよう変換します。
    bit数が小さくなるほどファイルサイズが小さくなり、扱いやすく処理が速くなります。しかしその分表現できる数値が減って精度が下がるため、できる限り精度や結果への影響を少なくするための方式や形式が使われています。

    モデル化の方式と形式の分類

    下表はAIモデルのモデル化の方式と形式をおおまかに分類したものです。

    階層例役割ファイル形式safetensors, GGUF,保存するコンテナONNX符号化方式FP16, BF16,数値をbit列で表現する方法INT8, FP8, FP4スケーリングなし, Tensor-wise,値の範囲を調整する方法方式Row-wise量子化方式RTN, AWQ,低精度へ変換するアルゴリズムGPTQ, ConvRot\begin{array} {l|l|l} \bf{階層} & \bf{例} & \bf{役割} \\ \hline \text{ファイル形式} & \text{safetensors, GGUF,} & \text{保存するコンテナ} \\ & \text{ONNX} & \\ \hline \text{符号化方式} & \text{FP16, BF16,} & \text{数値をbit列で表現する方法} \\ & \text{INT8, FP8, FP4} & \\ \hline \text{スケーリング} & \text{なし, Tensor-wise,} & \text{値の範囲を調整する方法} \\ \text{方式} & \text{Row-wise} & \\ \hline \text{量子化方式} & \text{RTN, AWQ,} & \text{低精度へ変換するアルゴリズム} \\ & \text{GPTQ, ConvRot} & \\ \end{array}

    広義にはこれらの方式と形式でモデル化することをまとめて「量子化」と呼ぶことがありますが、本記事では「モデル化」と呼び、低精度へ変換するアルゴリズムのことを「量子化方式」と呼ぶことにします。

    なお、個別の方式や形式については、詳しく解説したサイトが無数にありますので本記事では解説しません。必要であれば他所で調べたりAIに聞いてください。


    2026/7/5追記:
    GGUFは単なるファイル形式ではなくQ4_K_Mなど量子化データの格納方式も規定しているため、上表の分類では整理できません。
    本記事ではGGUFについて触れないため、整理が複雑にならないように上表の分類にとどめます。


    FLOAT型に関しては、きままさんの記事が詳しいです。

    代表的なモデル形式とINT8 ConvRot

    前述の分類表にもとづいて、INT8 ConvRotを含めた代表的なモデル形式を整理すると以下のようになります。

    16bitモデル

    階層FP16BF16符号化方式FP16BF16(Brain FP16)スケーリングなし(固定)なし(固定)方式量子化方式RTNRTN\begin{array} {l|l|l} \bf{階層} & \bf{FP16} & \bf{BF16} \\ \hline \text{符号化方式} & \text{FP16} & \text{BF16} \\ & & \text{(Brain FP16)} \\ \hline \text{スケーリング} & \text{なし(固定)} & \text{なし(固定)} \\ \text{方式} & & \\ \hline \text{量子化方式} & \text{RTN} & \text{RTN} \\ \\ \end{array}

    8bit INT型モデル

    階層INT8INT8INT8Tensor-wiseConvRot符号化方式INT8INT8INT8スケーリングなし(固定)Tensor-wiseRow-wise方式量子化方式RTNRTNConvRot\begin{array} {l|l|l|l} \bf{階層} & \bf{INT8} & \bf{INT8} & \bf{INT8} \\ & & \bf{Tensor} \text{-} \bf{wise} & \bf{ConvRot} \\ \hline \text{符号化方式} & \text{INT8} & \text{INT8} & \text{INT8} \\ \\ \hline \text{スケーリング} & \text{なし(固定)} & \text{Tensor-wise} & \text{Row-wise} \\ \text{方式} & & & \\ \hline \text{量子化方式} & \text{RTN} & \text{RTN} & \text{ConvRot} \\ \\ \end{array}

    8bit FLOAT型モデル

    階層FP8FP8 ScaledMXFP8符号化方式FP8FP8FP8(E4M3/E5M2)(E4M3/E5M2)(E4M3/E5M2)スケーリングなし(固定)Tensor-wiseなど単層方式Microscaling量子化方式RTNRTNRTN\begin{array} {l|l|l|l} \bf{階層} & \bf{FP8} & \bf{FP8  Scaled} & \bf{MXFP8} \\ \hline \text{符号化方式} & \text{FP8} & \text{FP8} & \text{FP8} \\ & \text{(E4M3/E5M2)} & \text{(E4M3/E5M2)} & \text{(E4M3/E5M2)} \\ \hline \text{スケーリング} & \text{なし(固定)} & \text{Tensor-wiseなど} & \text{単層} \\ \text{方式} & & & \text{Microscaling} \\ \hline \text{量子化方式} & \text{RTN} & \text{RTN} & \text{RTN} \\ \\ \end{array}

    4bitモデル

    階層NVFP4MXFP4符号化方式FP4 (E2M1)FP4 (E2M1)スケーリング階層型単層方式MicroscalingMicroscaling量子化方式RTNRTN\begin{array} {l|l|l} \bf{階層} & \bf{NVFP4} & \bf{MXFP4} \\ \hline \text{符号化方式} & \text{FP4 (E2M1)} & \text{FP4 (E2M1)} \\ \\ \hline \text{スケーリング} & \text{階層型} & \text{単層} \\ \text{方式} & \text{Microscaling} & \text{Microscaling} & \\ \hline \text{量子化方式} & \text{RTN} & \text{RTN} \\ \\ \end{array}

    INT8 ConvRotは、INT8符号化とConvRotという量子化方式でモデル化した形式です。他の形式の表と見比べることで、階層ごとの方式の違いなどが理解できると思います。
    そしてFP8とFP8 ScaledとMXFP8が異なるのと同様、INT8 ConvRotもINT8やINT8 Tensor-Wiseなど既存のモデル形式とは異なる形式です。ここを混同する人がとても多いです。

    なおこの分類は粗く、さらに細かい分類と方式があります。INT8 ConvRotについても複数の形式が配布されています。(後述)

    INT8 ConvRotとは

    ConvRotは2025/12/3に発表された以下の論文の技術を利用したモデル形式です。

    技術的にはINT型だけでなくFLOAT型と組み合わせることもできますが、特にAIモデル化におけるINT型の弱点を解決することを目的にしています。
    そもそもINT型(整数型)はFLOAT型(浮動小数点型)に比べて表現できる数値の範囲が狭く、AIモデル処理における「外れ値」が精度を悪化させるという問題がありました。これまでINT8形式のモデルがほとんど利用されず、FP8形式が利用されてきたのもそのためです。

    ConvRotは、簡単に言うとConvolution(畳み込みのような局所ブロック処理)とRotation(グループ単位の回転変換)によって、外れ値を複数の次元へ分散し、INT型でも問題ない値分布に変換する方法です。
    結果として、問題ないどころかFLOAT型モデル形式に勝る性能を実現しました。

    INT8 ConvRotの利用方法

    INT8 ConvRotはComfyUI、またはForge Neoで利用することができます。


    2026/7/5追記:
    情報が錯綜していて要件が不明確ですが、最高の処理速度を得るためにはTritonのインストールが必要かもしれません。NvidiaドライバーやPyTorchもできるだけ新しいバージョンにアップデートし、またPyTorchはcu128よりcu130にしたほうがよいようです。


    ComfyUIネイティブノードとComfy-Org公式モデル

    ComfyUIはv0.27.0以降でINT8 ConvRotにネイティブ対応しています。合わせてcomfy-kitchenも0.2.16以降が必要ですので、"pip install -r requirements.txt" 等でアップデートしてください。あとはLoad Diffusion ModelやLoad CLIP等でINT8 ConvRot形式のモデルを普通に扱うことができます。

    モデルについては、https://huggingface.co/Comfy-Org/modelsの主要なものにこの数日でINT8 ConvRot形式が追加されています。執筆時点では、Ideogram-4, Krea-2, Boogu-Image, QIE-2511, SeedVR2, Z-Image-Turbo, Z-Image, Wan_2.2にINT8 ConvRot形式が追加されていることを確認しました。

    画像
    int8_convrotを使いましょう

    ComfyUI-INT8-Fastと専用モデル

    ComfyUI v0.27.0以前からリリースされているComfyUI-INT8-Fastというカスタムノードを使う方法もあります。

    ComfyUIネイティブノードについては、v0.27.0リリース前の開発中コミットにおいてLoRA周りの不具合があり、こちらのカスタムノードのほうが高速であるという報告がありました。しかしComfyUI v0.27.0では対策済みのため、必要のない限りはネイティブノードを使用することを推奨します。

    ネイティブノードにない機能として、INT8 ConvRot形式以外のモデルをオンザフライでINT8 ConvRot形式に変換して利用したり、そのままファイルに保存したりすることができます。例えば公式がINT8 ConvRot形式を配布していない場合、int8_save_convrot_model.jsonというワークフローを使って、自分で変換して作成することができます。

    画像
    int8_save_convrot_modelによるモデル形式変換

    ただしこれで作成されるINT8 ConvRot形式は、ComfyUIネイティブの形式とは互換性が無いため、convert_to_comfy.pyというツールで変換が必要です。
    HuggingFaceにおいてComfyUI-INT8-Fast用として配布されているINT8 ConvRot形式のモデルについても同様です。

    利用する場合は、それぞれのREADMEをよく読んでください。

    Forge Neo

    Forge Neoは記事執筆時点ではINT8 ConvRotに対応していませんでしたが、2026/7/7のコミット6d0bc6eでINT8 ConvRotに対応しました。リリース版としては2.27で対応することになります。
    難しい設定や操作は不要で、CheckpointでComfyOrg公式のINT8 ConvRot形式モデルを指定するだけで利用できます。

    INT8 ConvRotの性能

    Nvidia製GPUのハードウェア対応

    各bitのFLOAT型とINT型の処理性能はGPUモデルによって異なります。基本的に新しいGPUモデルほど多くの形式にハードウェア対応しており、高速に処理できます。

    下表は符号化とスケーリングの方式に対するNvidia製GPUのハードウェア対応一覧です。
    対応していないモデル形式であっても、処理可能な形式にソフトウェア変換されるため基本的にはエラーになりませんが、ハードウェア対応している場合に比べると低速になります。

    RTX20RTX30RTX40RTX50SeriesSeriesSeriesSeriesFP16✓✓✓✓INT8✓✓✓✓BF16✓✓✓FP8✓✓FP8 Scaled✓✓MXFP8✓(Microscaling)FP4✓NVFP4✓(Microscaling)INT4✓✓✓\begin{array} {l|c|c|c|c} & \bf{RTX 20} & \bf{RTX 30} & \bf{RTX 40} & \bf{RTX 50} \\ & \bf{Series} & \bf{Series} & \bf{Series} & \bf{Series} \\ \hline \text{FP16} & \text{✓} & \text{✓} & \text{✓} & \text{✓} \\ \\ \hline \text{INT8} & \text{✓} & \text{✓} & \text{✓} & \text{✓} \\ \\ \hline \text{BF16} & & \text{✓} & \text{✓} & \text{✓} \\ \\ \hline \text{FP8} & & & \text{✓} & \text{✓} \\ \\ \hline \text{FP8 Scaled} & & & \text{✓} & \text{✓} \\ \\ \hline \text{MXFP8} & & & & \text{✓} \\ \text{(Microscaling)} \\ \hline \text{FP4} & & & & \text{✓} \\ \\ \hline \text{NVFP4} & & & & \text{✓} \\ \text{(Microscaling)} \\ \hline \text{INT4} & \text{✓} & \text{✓} & \text{✓} \\ \\ \end{array}

    これまで基準的に使われていたFP8はRTX 40/50シリーズしか対応していませんでした。
    それに対してINT8 ConvRotは、RTX 20/30シリーズでもハードウェア対応の恩恵を受けられることが注目されています。

    ちなみにFP8 ConvRotという形式も技術的には可能ですが、INT8 ConvRotと比べて精度と性能のメリットがほとんどないため使われることはありません。
    4bitについてはConvRotの開発者がINT4とFP4について発言しているようですが、個人的にはNVFP4もこれまで使ったことがなく、そこまで精度を下げたモデルを速度優先で使おうとは考えません。私がRTX 5090を使っていて、速度に不満を感じることが少ないからだと思いますが。

    redditでの性能報告

    redditでは、INT8 ConvRotの性能について以下のように報告されています。

    • 処理速度
      INT8 ConvRot > NVFP4 > MXFP8 ≒ FP8 Scaled > GGUF Q8 > FP16 ≒ BF16

    • 推論精度
      FP16 ≒ BF16 > GGUF Q8 > INT8 ConvRot > MXFP8 > FP8 Scaled > FP8 > NVFP4

    もともと8bit INT型は精度はともかく速度は速かったのですが、INT8 ConvRotはRTX 50シリーズにおいても速度はNVFP4をも上回り、推論精度はGGUF Q8に迫るということです。
    FP8のハードウェア対応がなく低速であったRTX 20/30では、RTX 40/50シリーズ以上に恩恵が大きいものとなります。

    redditの情報源:
    https://www.reddit.com/r/StableDiffusion/comments/1tazxqz/
    https://www.reddit.com/r/comfyui/comments/1uk6q5m/

    INT8 ConvRotがビット数の小さいNVFP4よりも速いことに驚きましたが、ChatGPTとQ&Aを繰り返した結果、以下の要因によるものだと考えられます。

    • ConvRotがINT型に最適化された処理方式であること

    • RTX 50xxのINT8とFP4のハードウェアおよびライブラリの性能差

    • NVFP4の階層型Microscaling処理のオーバヘッド

    実機でのKrea 2 Turbo生成速度比較

    自分でも以下の検証環境でKrea 2 Turboの画像生成速度を計測して比較しました。

    • GPU: RTX 5090

    • Driver: Game Ready 610.62 WHQL (2026/6/16)

    • Python: Python 3.12.12, torch 2.12.1+cu130, triton-windows 3.7.1.post27, sageattention 2.2.0+cu130torch2.9.0andhigher.post4

    • Soft: ComfyUI v0.27.0 (2026/7/1)
      --reserve-lvram 0.9 --preview-method auto --use-sage-attention

    • WF: ComfyUIテンプレート Krea-2: Text to Image
      prompt_enhance=false
      enable_lora?=false
      1024 x 1024, 8Steps, cfg=1.0, euler simple

    • DiT: Comfy-Org公式Krea 2 Turboモデル
      int8_convrot, nvfp4, fp8_scaled, mxfp8, bf16

    • TE: qwen3vl_4b_fp8_scaled

    • VAE: qwen_image_vae

    画像
    Krea-2: Text to Image

    DiTモデルDiT,TE,VAE起動直後2回目以降形式合計サイズcold startwarm startint8_convrot15.24GB5.14s2.56s(-18%)(-35%)nvfp49.82GB5.68s3.29s(-9%)(-16%)fp8_scaled14.91GB6.25s3.91smxfp815.28GB6.47s4.07s(+4%)(+4%)bf1627.15GB9.19s4.84s(+47%)(+24%)\begin{array} {l|r|r|r} \bf{DiTモデル} & \bf{DiT, TE, VAE} & \bf{起動直後} & \bf{2回目以降} \\ \bf{形式} & \bf{合計サイズ} & \bf{cold  start} & \bf{warm  start} \\ \hline \text{int8\_convrot} & \text{15.24GB} & \text{5.14s} & \text{2.56s} \\ & & \text{(-18\%)} & \text{(-35\%)} \\ \hline \text{nvfp4} & \text{9.82GB} & \text{5.68s} & \text{3.29s} \\ & & \text{(-9\%)} & \text{(-16\%)} \\ \hline \text{fp8\_scaled} & \text{14.91GB} & \text{6.25s} & \text{3.91s} \\ \\ \hline \text{mxfp8} & \text{15.28GB} & \text{6.47s} & \text{4.07s} \\ & & \text{(+4\%)} & \text{(+4\%)} \\ \hline \text{bf16} & \text{27.15GB} & \text{9.19s} & \text{4.84s} \\ & & \text{(+47\%)} & \text{(+24\%)} \\ \end{array}

    • 「起動直後」はComfyUIを再起動して計測しています。

    • 括弧内はfp8_scaledを基準とした増減率です。

    私の環境でもredditでの報告と同様の結果となりました。
    FP8 Scaledにハードウェア対応したRTX 5090ですら生成時間が-35%も削減されました。FP8 Scaledにハードウェア対応していないRTX 20/30シリーズではさらに大きな削減となるはずです。これは凄い!

    LoRA利用時の性能や生成画像についても比較したかったのですが、長くなったため割愛します。


    2026/7/6追記:
    前述のきままさんの記事に、INT8 ConvRotの生成時間と精度の評価結果が追加されました。生成画像を用いた精度評価はとても分かりやすいのでぜひ参照してください。

    まとめ

    INT8 ConvRotというモデル化方式について解説し、実際に処理速度を測定して比較しました。
    redditの報告では速度と精度ともにかなり評判がよく、私の環境では処理速度しか測定しませんでしたが評判どおりの性能で、今後の8bitモデル形式の標準としてFP8やFP8 Scaledを置き換えていくことは間違いないと思います。

    ちなみにIllustriousやAnimaなど、FP16やBF16でも十分コンパクトかつ生成速度が速いものまでINT8 ConvRotに変換する人もいるようですが、よほど速度に不満が無い限り止めておいたほうがよいと思います。

    このような感じで、技術的な内容を分かりやすく基本無料で解説しています。「スキ」「フォロー」「チップ」で応援よろしくお願いします。質問がありましたら遠慮なく「質問箱」へどうぞ。

    関連記事


    本記事の文章・画像等の無断転載・複製・改変・盗用を禁じます。
    発見した場合は黙認せず対応します。これらの行為を発見された方は、相手ではなく私までお知らせください。

    あなたへのおすすめ