
はじめに
画像生成AIの高速化技術として注目を集めている「Nunchaku」。投機的デコーディングという革新的なアプローチで、品質を犠牲にすることなく生成速度を1.3〜2倍に向上させるという触れ込みだ。
筆者はAMD RX 9070 XT 16GBを搭載した環境でComfyUIを運用しており、既にWaveSpeedによって生成時間を半分にすることに成功している。さらなる高速化を目指し、Nunchakuとの併用を試みたのだが——結論から言えば、ROCm環境では動作しなかった。
先日公開した画像生成AIのセットアップスクリプトのバージョン0.95で、tritonとtorch compile()とsage attentionを見事に動作させwavespeedで圧倒的な速度をたたき出したことから、無駄な自信をつけてしまったのかもしれない。
本記事では、Nunchakuの技術的背景から導入試行のプロセス、そして失敗に至るまでの経緯を記録する。AMD GPUユーザーにとって参考になる一次情報となれば幸いだ。
などと格好つけて書いてみたが、この記事を書いた動機はWavespeedが動いたんだから、こっちも動くかもという何の根拠もない99%の確信の下実行し、見事に動かなくて悔しい思いをしたからなのだ。
悔しい、とても悔しい。
AMDさんがこれを見ていたら、早くnunchakuをROCmに移植してください。
Wavespeedで見えたと思ったGeforceの背中がまた霞んでいく。
まさにAIのカリスマですね。
Nunchakuとは何か
投機的デコーディングの基本原理
Nunchakuは、Diffusion Transformerモデル向けの**投機的デコーディング(Speculative Decoding)**を実装した推論高速化技術である。
この技術の核心は、CPUの分岐予測に似た「先読み実行」にある。具体的には以下のような仕組みだ:
- 小型のドラフトモデルが複数ステップ分を高速予測
- メインモデルが予測結果を一括検証
- 正しければ採用、間違っていれば修正
従来のDiffusionモデルは各ステップを逐次処理する必要があったが、Nunchakuはこのプロセスを並列化することで、GPUの演算能力を最大限に活用できる。
従来: Step1 → Step2 → Step3 → Step4(逐次処理)
Nunchaku: Draft(1-4) → Verify & Correct(並列検証)
品質を犠牲にしない理由
速度向上と聞くと「精度が落ちるのでは?」と懸念するのは自然な反応だ。しかしNunchakuの場合、最終的な判断は常にメインモデルが行うため、理論上は完全に同一の出力が得られる。
ドラフトモデルの予測が外れても、メインモデルが修正するため結果に影響しない。これは量子化やステップ数削減といった従来の高速化手法とは根本的に異なるアプローチだ。
CPUの投機的実行を知る読者なら、この仕組みはすぐに理解できるだろう。分岐予測が外れればパイプラインをフラッシュするのと同様に、Nunchakuも予測ミスがあれば正しい結果で上書きする。
期待される性能向上
公式ドキュメントやコミュニティレポートによれば:
- SDXL: 1.3〜1.5倍の高速化
- Flux.1: 1.5〜2倍の高速化
- メモリオーバーヘッド: ドラフトモデル分(通常2〜4GB程度)
筆者の環境では既にWaveSpeedで2倍の高速化を達成していたが、理論上はNunchakuと併用することで2.5〜3倍程度の性能向上が期待できる計算になる。
ComfyUIへのカスタムノード導入
環境情報
- OS: Windows 11
- GPU: AMD Radeon RX 9070 XT(16GB)
- ROCm: The Rock Preview 7.12.20260204
- ComfyUI: 最新版(Python venv環境)
- 既存の高速化: WaveSpeed適用済み(生成時間1/2達成)
インストール手順
Nunchakuの公式リポジトリは https://github.com/nunchaku-ai/ComfyUI-nunchaku である。
基本的なインストール手順は以下の通り:
cd ComfyUI/custom_nodes
git clone https://github.com/nunchaku-ai/ComfyUI-nunchaku.git
cd ComfyUI-nunchaku
pip install -r requirements.txt
ROCm環境の場合、PyTorchがROCm版であることを確認し、必要に応じてROCm用のパッケージインデックスを指定する:
pip install -r requirements.txt \
--index-url https://rocm.nightlies.amd.com/v2/6.3/ \
--extra-index-url https://pypi.org/simple/
ここまでは問題なく進んだ。
最初のエラー:バージョン不整合
ComfyUIを再起動したところ、コンソールに大量のエラーメッセージが表示された。
======================================== ComfyUI-nunchaku Initialization ========================================
Nunchaku version: 0.16.1
ComfyUI-nunchaku version: 1.2.1
ComfyUI-nunchaku 1.2.1 requires nunchaku >= v1.0.0, but found nunchaku 0.16.1. Please update nunchaku.
ComfyUI-nunchaku 1.2.1は、nunchakuパッケージのバージョン1.0.0以上を要求しているが、インストールされたのは0.16.1だった。
続くエラーメッセージを見ると、さらに深刻な問題が明らかになった:
Node `NunchakuFluxDiTLoader` import failed:
Traceback (most recent call last):
File "D:\ai_imagen\comfyui\custom_nodes\ComfyUI-Nunchaku\__init__.py", line 82, in <module>
from .nodes.models.flux import NunchakuFluxDiTLoader
File "D:\ai_imagen\comfyui\custom_nodes\ComfyUI-Nunchaku\nodes\models\flux.py", line 16, in <module>
from nunchaku import NunchakuFluxTransformer2dModel
ImportError: cannot import name 'NunchakuFluxTransformer2dModel' from 'nunchaku'
複数のノードで同様のインポートエラーが発生しており、nunchaku.utils、nunchaku.lora、nunchaku.modelsといったモジュールが見つからないという状態だった。
PyPI版の限界
まず試したのは、nunchakuパッケージのアップデートだ。
pip install --upgrade nunchaku
しかし結果は:
Requirement already satisfied: nunchaku in .\venv\Lib\site-packages (0.16.1)
PyPI上では0.16.1が最新版として認識されており、1.0.0以上のバージョンは存在しなかった。
これは明らかに問題だ。ComfyUI-nunchakuの最新版が要求するnunchaku 1.0.0以上が、公式のパッケージリポジトリに存在しないということになる。
GitHubから直接インストールを試みる
次に試したのは、GitHubリポジトリから直接インストールする方法だ。開発版であれば1.0.0以上が含まれている可能性がある。
pip uninstall nunchaku -y
pip install git+https://github.com/nunchaku-ai/nunchaku.git
しかし、ここで決定的なエラーに遭遇した:
Getting requirements to build wheel ... error
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [31 lines of output]
Traceback (most recent call last):
File "<string>", line 31, in get_sm_targets
...
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。
...
Exception: nvcc not found
[end of output]
nvcc not found——NVIDIA CUDA Compilerが見つからないというエラーだ。
これは、NunchakuのビルドプロセスがCUDA専用のツールチェーンに依存していることを意味する。ROCm環境では、いくら環境変数を設定してもnvccは存在しない。
ROCm非対応の決定的証拠

念のため、Redditでの議論を確認した。AMD GPUでのComfyUI利用に関するスレッドで、以下のような投稿を発見した:
AMDでできないことは、nunchakuなどの比較的新しい4ビット形式です。量子化にはGGUFのみが機能します。そしてbitsandbytes(nf4)も機能しますが、ggufよりも品質が悪いので、あまりお勧めできません。 TensorRTアップスケーリングモデルとnunchaku/svdquant/etc以外は、今まで使えなかった/実行できなかったものはありません。
つまり、Nunchakuは明確にROCm非対応のツールとして認識されている。
これでファイナルアンサーが出た。NunchakuはCUDAカーネルを含んでおり、現時点ではNVIDIA GPU専用の実装となっている。
HIPへの移植は可能か?
技術的な興味から、CUDAコードをAMDのHIP(Heterogeneous-compute Interface for Portability)に移植する可能性についても検討した。
AMDはhipify-perlというツールを提供しており、これを使えばCUDAコードを機械的にHIPコードに変換できる。基本的なAPIの置換であれば、比較的容易に対応可能だ。
しかし実際には:
- ビルドシステムの全面的な書き換えが必要
- メモリ管理やワープサイズの違いへの対処
- パフォーマンス最適化の再実施
最低でも20〜40時間の作業が必要と見積もられ、実用レベルまで仕上げるなら80〜120時間は覚悟すべきだろう。
費用対効果を考えると、個人で取り組むには割に合わない。
WaveSpeedで既に2倍の高速化を達成している状況で、Nunchaku単体で期待できる1.3〜1.5倍の改善のために40時間以上を投資するのは現実的ではない。併用しても理論上2.5倍程度であり、増分はわずか0.5倍だ。
結論:ROCm環境では現状不可
今回の検証で明らかになったのは以下の点だ:
動作しない理由
- NunchakuはCUDA専用実装
- nvccコンパイラが必須
- CUDAカーネルを含む
- PyPI版は古すぎる
- 最新版は0.16.1
- ComfyUI-nunchakuが要求する1.0.0以上が存在しない
- GitHub版はビルド不可
- ROCm環境ではnvccが存在しない
- HIP移植には相当な労力が必要
AMD GPUユーザーへの推奨
WaveSpeed単体で十分な性能が得られる。
筆者の環境(RX 9070 XT 16GB)では、WaveSpeedによって生成時間が半分になった。SDXL 1024×1024の画像生成が、従来60秒かかっていたところを30秒で完了できるようになっている。
Nunchakuが使えないことは残念だが、実用上は全く問題ない。むしろ、安定動作している高速化技術を確実に活用する方が賢明だ。
ちなみにもちろんですが、これは負け惜しみです。負け犬の遠吠えです。
動作した方がいいに決まってる。
将来の展望
NunchakuのROCm対応が行われる可能性はゼロではない。AMD GPUの市場シェアが拡大すれば、コミュニティによる移植プロジェクトが立ち上がるかもしれない。
しかし現時点(2026年2月)では、AMD GPUユーザーはNunchakuを選択肢から外すべきだというのが結論だ。
参考情報
- Nunchaku公式ドキュメント: https://nunchaku.tech/
- ComfyUI-nunchaku GitHub: https://github.com/nunchaku-ai/ComfyUI-nunchaku
- Reddit議論: r/comfyui "Could I use the new AMD AI Pro R9700"
追記: 本記事の検証環境は特定のバージョン(ROCm Preview 7.12.20260204)に基づいている。将来のアップデートで状況が変わる可能性はあるため、最新情報は公式ドキュメントを参照されたい。