クリエイティブ解説

Nunchaku Liteとは?Diffusersで4bit画像生成を使う方法とVRAMの考え方

Nunchaku Liteとは? — Diffusersで4bit画像生成を使う方法とVRAMの考え方
目次

大きな画像生成モデルをローカルで動かしたいが、BF16ではVRAMが足りない。そういう場合、2026年のDiffusersではNunchaku Liteを量子化バックエンドとして検討する価値がある

Nunchaku Liteは、Nunchaku / SVDQuantの4bit推論をDiffusersの標準的なモデル読み込みへ持ち込む仕組みだ。量子化済みチェックポイントなら、専用処理パイプラインや別の推論エンジンを組まずにfrom_pretrained()で読み込める。

ただし、ここで最初に整理しておきたいことがある。

「4bit モデルだからVRAMが4分の1になる」「どのGPUでも速くなる」「処理パイプライン全体が4bitになる」わけではない。

Nunchaku Liteで下がるのは主に量子化対象のTransformer部分であり、テキストエンコーダー、VAE、実行時バッファ、画像サイズ、バッチ、オフロード設定などは別に効いてくる。

BF16では重い拡散 Transformerを使いたい人向け

Nunchaku Liteが特に向くのは、次のようなケースだ。

  • BF16ではモデル本体が大きすぎる
  • 画像生成でCPU オフロードを減らしたい
  • RTX 20 / 30 / 40 世代でINT4を使いたい
  • RTX 50 世代でNVFP4を使いたい
  • Python / Diffusersの処理パイプラインをそのまま維持したい
  • LoRAやオフロード、torch.compileなどDiffusers側の仕組みも使いたい

逆に、ComfyUIだけで完結したい場合は、Nunchaku本家のComfyUI プラグインを使う経路もある。今回の記事はDiffusersのネイティブ読み込みとしてNunchaku Liteを使うかに話を限定する。

Nunchaku Liteは何が違うのか

一般的な4bit量子化では、重みだけを低bit化して保存し、計算時に高い精度へ戻す方式が多い。

これでもモデルサイズとVRAMは下げられるが、逆量子化処理が入るため、必ずしも生成が速くなるとは限らない。

Nunchakuの基盤であるSVDQuantは、拡散 Transformerで扱いにくい重みと活性値の外れ値を低ランク成分へ逃がし、主要な線形層を4bit 重み + 4bit 活性値で実行するW4A4を使う。

DiffusersのNunchaku Liteでは主に次の2系統を使う。

方式 重み 活性値 主な用途
SVDQ W4A4 4bit 4bit アテンション / MLPなど計算量の大きい線形層
AWQ W4A16 4bit 16bit 正規化や変調など精度に敏感な部分

全部を一律4bitへ落とすのではなく、層の役割に応じて方式を分ける。

Diffusersに入ったことで何が楽になったのか

以前のNunchakuは、専用エンジンやモデル特化型な統合へ依存する部分が大きかった。

Nunchaku Liteでは、量子化情報をDiffusers モデルのconfig.jsonへ持たせ、通常のDiffusers アーキテクチャへ量子化済み線形層を差し込む。

そのため、量子化済みチェックポイントは通常のDiffusers リポジトリとして扱える。

基本形は次のようになる。

import torch
from diffusers import DiffusionPipeline

pipe = DiffusionPipeline.from_pretrained(
    "<nunchaku-lite-checkpoint>",
    dtype=torch.bfloat16,
).to("cuda")

実際には対応チェックポイント、Diffusers バージョン、kernels パッケージ、GPU世代を合わせる必要がある。

INT4とNVFP4はGPU世代で選ぶ

ここは購入判断にも直結する。

Hugging Faceの公式ドキュメントでは、Nunchaku LiteのCUDA カーネルはTuring、Ampere、Ada、Blackwellを対象にしている。

  • RTX 20 世代: INT4
  • RTX 30 世代: INT4
  • RTX 40 世代: INT4
  • RTX 50 世代: NVFP4を優先

NVFP4 チェックポイントはBlackwell以降が前提で、公式ドキュメントはBlackwellでPyTorch 2.7以上、CUDA 12.8以上を案内している。

一方、INT4はTuring以降で使える。

重要なのは、「4bit」という文字だけを見てチェックポイントを選ばないことだ。同じモデルでもINT4版とNVFP4版では対象GPUが違う。

VRAMはどれくらい下がるのか

Hugging Faceが公開しているERNIE-Image-Turboの一例では、RTX 5090上のNunchaku Lite NVFP4 処理パイプラインが1024×1024生成でピークメモリ約12GB、BF16 処理パイプラインは約24GBと報告されている。

これはかなり大きな差だ。

ただし、この数字を**「Nunchaku Liteならどの画像モデルでも12GBで動く」**へ一般化してはいけない。

VRAMは少なくとも次で変わる。

  • Transformerのパラメータ数
  • 量子化対象層
  • テキストエンコーダーの精度
  • VAE
  • 幅 / 高さ
  • バッチサイズ
  • アテンション実装
  • オフロード
  • torch.compile
  • モデル固有の追加構成要素

したがってGPU購入では、チェックポイントファイルサイズだけでなく実際のVRAM使用量のピークを見る必要がある。

画像生成用GPUの容量判断は、ローカル画像生成のGPU・VRAM選びと合わせて考える方がよい。

「4bitなら画質が同じ」とも断定しない

量子化では、メモリと速度だけでなく出力品質も確認したい。

SVDQuantは拡散 Transformerの外れ値を低ランク分岐へ分けることで、4bitでも品質低下を抑える設計になっている。

Hugging Faceの記事でも、Nunchaku LiteはBF16に近い画像品質を維持しながらメモリ削減と高速化を狙うものとして紹介されている。

それでも、使うモデル・プロンプト・シード・チェックポイントによって差は出る可能性がある。

自分の用途では、同じプロンプトとシードでBF16版と4bit版を並べるのが最も確実だ。

速度は本家NunchakuとNunchaku Liteで違う

Nunchaku LiteはDiffusersへ入りやすくなった代わりに、本家Nunchakuが持つモデル特化型な処理融合をすべて使うわけではない。

本家ではQKV 投影、RMSNorm、RoPE、MLPなどをモデルアーキテクチャに合わせて処理融合し、カーネル起動やメモリアクセスを減らす。

Nunchaku Liteは標準Diffusers アーキテクチャへ量子化済み層を差し込む汎用性を優先しているため、その分だけ本家エンジンより高速化は小さくなり得る。

つまり選び方はこうなる。

優先したいこと 向く経路
Diffusersとの統合・扱いやすさ Nunchaku Lite
モデル特化型最適化を最大限使う Nunchaku本家
ノード UI中心で組みたい ComfyUI + Nunchaku プラグイン

「Nunchaku Liteが本家の完全上位互換」とは考えない方がよい。

リモートカーネルの扱いには注意が必要

2026年9月3日時点のDiffusers 本流ドキュメントでは、Nunchaku Liteの最適化済み CUDA カーネルをHugging Face Hubから取得する構成になっている。

また、公式ドキュメントは現在のカーネル提供元が信頼済みのカーネル提供元ではないため、DIFFUSERS_TRUST_REMOTE_KERNELS=trueによる明示的な許可が必要だと説明している。

これは単なるモデル重みダウンロードとは違う。

リモートカーネルは実行コードを取得するため、リポジトリと提供元を確認してから許可するべきだ。

モデルやコードの信頼を分けて確認する考え方は、AIモデルのライセンスをダウンロード前に確認する手順とも共通する。

ComfyUIのOOM対策とは競合しない

Nunchaku LiteはOOMを減らす強い手段だが、OOM対策そのものを置き換えるわけではない。

例えば4bit Transformerにしても、巨大解像度、バッチ増加、VAE処理、複数ControlNetなどでVRAM不足は起こる。

その場合は、ComfyUIのCUDA out of memory対処と同じように、どこでピークメモリが出ているかを分けて見る必要がある。

量子化は「VRAM不足の原因を全部消す機能」ではなく、モデル本体のメモリ負荷を大きく減らす手段の1つと考えると分かりやすい。

試すならこの順番が安全

最初から自分でモデルを量子化する必要はない。

まず対応済みの量子化済みチェックポイントを1つ選ぶ。

次に、自分のGPUがINT4かNVFP4のどちらに対応するか確認する。

そのうえで、同じモデルのBF16版と4bit版を同条件で比較する。

GPU:
Driver / CUDA:
PyTorch:
Diffusers:
Checkpoint:
Quantization: INT4 / NVFP4
Resolution:
Steps:
Peak VRAM:
Generation time:
BF16との差:

ここまで確認してから、LoRA、オフロード、torch.compileなどを足していく方がトラブルを切り分けやすい。

選ぶときの判断

Nunchaku Liteは、単なる「4bit モデルが増えた」という話ではない。

拡散 TransformerのW4A4推論がDiffusersの通常処理パイプラインへ入ったことで、低VRAM画像生成を試すための実装障壁が下がったことに価値がある。

特にRTX 20〜40 世代ではINT4、RTX 50 世代ではNVFP4という明確なハードウェア分岐があり、GPUを買い替えるか、今のGPUで量子化を使うかという判断にもつながる。

一方で、4bit化だけを見て最低VRAMを決めるのは危険だ。処理パイプライン全体のピークメモリ、画質、生成時間を自分のモデルで測る必要がある。

BF16でVRAM不足になる画像モデルを使いたいなら、まず量子化済み Nunchaku Lite チェックポイントで同条件比較を行う。 現時点ではそれが最も安全な入口になる。

まとめ

  • Nunchaku LiteはDiffusersから量子化済みチェックポイントを通常のfrom_pretrained()で読み込める4bit量子化バックエンド
  • W4A4系のSVDQuantは重みだけでなく活性値も4bit化し、単なる容量削減だけでなくノイズ除去の高速化も狙う
  • NVFP4はBlackwell向け、INT4はTuring以降向けで、同じ4bitでもGPU世代によって選ぶ形式が違う
  • 4bit化しても処理パイプライン全体が4bitになるわけではなく、テキストエンコーダー・VAE・実行時バッファなどのメモリは別に考える必要がある
同じテーマから

サイト内検索