Float、Half、BFloat16 の不一致:失敗した操作を追跡する
dtype の失敗は、形状やデバイスの失敗とは異なります。traceback と互換性のないオペランド型から調べます。KSampler のエラーだけでは、原因となったコンポーネントを特定できません。
症状と対象範囲
dtype の失敗は、形状やデバイスの失敗とは異なります。traceback と互換性のないオペランド型から調べます。KSampler のエラーだけでは、原因となったコンポーネントを特定できません。
検索の手掛かりとなるエラーの断片です。ID、値、ファイル名は環境によって変わります。
mat1 and mat2 must have the same dtype
Float and Half
BFloat16
出典から確認できること
Issue #6907 では、Mac 向け Comfy Desktop の更新後に Float と Half の不一致が起きたことが記録されています。traceback は複数のサードパーティ拡張機能のフレームを経て、アテンションの torch.baddbmm 呼び出しに到達しますが、どのコンポーネントが不一致を生じさせたかは報告から確定できません。ここでは BFloat16 を一般的な検索語として挙げていますが、その事例で報告されたエラーではありません。PyTorch の AMP ガイダンスでは、型の不一致が起きた場合は一律に型変換を挿入するのではなく、その操作を調べるよう案内しています。出典 1(英語) 出典 2(英語) 出典 3(英語)
区別すべき状況
1. ローダーまたはカスタムノードが、計算経路の一部だけを型変換している。
2. 量子化、アテンション、デバイスのフォールバックによって計算 dtype が変わっている。
3. 更新が一部だけ行われた ComfyUI 本体や拡張機能に、互換性のない精度の前提や起動オプションが残っている。
確認手順
以下は引用した資料に基づく編集上の手順です。あなたの環境で原因が確定したことを意味しません。
手順 1. 正確な dtype メッセージ、バックエンド、完全な traceback を保持します。失敗した操作とサードパーティのフレームを探します。KSampler ノードのラベルだけで原因を決めつけないでください。保存時の重みの精度と実行時のテンソル dtype を切り分けます。
手順 2. コピーを使い、モデルまたはワークフローの作者が記載したバックエンドと精度の設定があれば、それと比較します。任意の量子化や高速化だけを一つずつ一時的に取り除き、メモリを監視します。
手順 3. 同じモデル系統の標準ノードだけで構成した最小限のワークフローで比較し、LoRA、制御機能、拡張機能を一つずつ戻します。
手順 4. バージョン情報を添えて、安定して再現できる最小構成を報告します。ソースコード側で強制的に型変換するのは実装を理解している人が行う作業であり、汎用的なワンクリック修正ではありません。
完了の確認
互換性のある型で操作が完了し、新たなメモリ不足や数値上の失敗が発生せず、有効な出力が得られることを確認します。OOM が発生した場合は別の問題です。
制限と注意点
すべてを float32 に変換すると、メモリ使用量が大幅に増える場合があります。すべてを half に変換すると、未対応の操作や数値の不安定さにつながる場合があります。
参照した原文資料
- Mac Desktop での Float と Half の不一致(英語)(確認日:2026-09-26)
- PyTorch AMP のレシピ(英語)(原文資料の確認日:2026-09-26)
- ComfyUI カスタムノードのトラブルシューティング(英語)(原文資料の確認日:2026-09-26)
英語資料の確認日:2026-09-26。このサイト上でのワークフロー実行、GPU テスト、最小メモリ量の測定、修復結果の確認は主張していません。
関連するトラブルシューティング記事とガイド
次に考えられる原因を確認
同じ症状にも異なる原因があります。関連する記事を順に確認してください。
- Expected all tensors to be on the same device:分岐の境界を調べる
Expected all tensors to be on the same device一つの操作に CUDA 上の画像と CPU 上のマスクが渡されたり、分岐が異なる GPU 上に配置されたりすることがあります。アプリケーション全体が GPU を認識できていないという意味ではありません。 - Float8 は MPS で未対応:保存された重みと計算時の dtype を区別する
Float8_e4m3fn重みの読み込み、逆量子化、演算のどの段階で失敗するかを特定します。ファイルに FP8 と記載されているだけでは、考えられる量子化の実行経路すべてを説明できません。 - mat1 and mat2 shapes cannot be multiplied:モデルコンポーネントの連鎖を調べる
mat1 and mat2 shapes cannot be multiplied行列の次元はサンプリング、エンコード、アダプター使用時の失敗箇所を探す手掛かりになりますが、一組の数値だけで不足しているモデルを一意に特定することはできません。
この記事は役に立ちましたか?
匿名です。はい・いいえの件数のみ保存し、アカウント、IP アドレス、端末情報は保存しません。
出典と参考資料
2026-09-26 に ComfyUI Issue #6907、PyTorch AMP ガイダンス、ComfyUI カスタムノードのトラブルシューティングを確認しました。この Issue では アテンションの baddbmm 失敗とサードパーティのフレームが示されていますが、根本原因は確定していません。このサイト上でのワークフロー実行、GPU テスト、修復確認は行っていません。
01Mac 向け Comfy Desktop での Float と Half の不一致(英語)出典の確認日: 2026-09-2602PyTorch AMP のレシピ(英語)出典の確認日: 2026-09-2603ComfyUI カスタムノードのトラブルシューティング(英語)出典の確認日: 2026-09-26