Buckets:
| # GGUF | |
| GGUFファイル形式は、[GGML](https://github.com/ggerganov/ggml)による推論用のモデルを保存するために一般的に使用され、ブロック単位の量子化オプションを多数サポートしています。Diffusersは、Modelクラスによる`from_single_file`読み込みを通じて、GGUF形式で事前量子化・保存されたチェックポイントの読み込みをサポートしています。Pipelines経由でのGGUFチェックポイントの読み込みは現在サポートされていません。 | |
| 次の例では、[FLUX.1 DEV](https://huggingface.co/black-forest-labs/FLUX.1-dev) transformer モデルを、GGUF Q2_K 量子化バリアントを使用して読み込みます。 | |
| 開始する前に、環境にggufをインストールしてください | |
| ```shell | |
| pip install -U gguf | |
| ``` | |
| GGUFは単一ファイル形式であるため、`~FromSingleFileMixin.from_single_file`を使用してモデルを読み込み、[GGUFQuantizationConfig](/docs/diffusers/v0.43.0/ja/api/quantization#diffusers.GGUFQuantizationConfig)を渡します。 | |
| GGUFチェックポイントを使用する場合、量子化された重みは低メモリ`dtype`(通常は`torch.uint8`)のまま保持され、モデル内の各モジュールのフォワードパスのたびに動的にデ量子化され、設定された`compute_dtype`にキャストされます。`GGUFQuantizationConfig`を使用すると、`compute_dtype`を設定できます。 | |
| 動的デクアンティ化に使用される関数は、[compilade](https://github.com/compilade) による元の [`numpy`](https://github.com/ggerganov/llama.cpp/blob/master/gguf-py/gguf/quants.py) 実装の PyTorch 移植版を作成した [city96](https://github.com/city96/ComfyUI-GGUF) の素晴らしい取り組みに基づいています。 | |
| ```python | |
| import torch | |
| from diffusers import FluxPipeline, FluxTransformer2DModel, GGUFQuantizationConfig | |
| ckpt_path = ( | |
| "https://huggingface.co/city96/FLUX.1-dev-gguf/blob/main/flux1-dev-Q2_K.gguf" | |
| ) | |
| transformer = FluxTransformer2DModel.from_single_file( | |
| ckpt_path, | |
| quantization_config=GGUFQuantizationConfig(compute_dtype=torch.bfloat16), | |
| dtype=torch.bfloat16, | |
| ) | |
| pipe = FluxPipeline.from_pretrained( | |
| "black-forest-labs/FLUX.1-dev", | |
| transformer=transformer, | |
| dtype=torch.bfloat16, | |
| ) | |
| pipe.enable_model_cpu_offload() | |
| prompt = "A cat holding a sign that says hello world" | |
| image = pipe(prompt, generator=torch.manual_seed(0)).images[0] | |
| image.save("flux-gguf.png") | |
| ``` | |
| ## GGUFでの最適化されたCUDAカーネルの使用 | |
| 最適化された CUDA カーネルにより、GGUF 量子化モデルの推論を約 10% 高速化できます。この機能には、`torch.cuda.get_device_capability` が 7 より大きい互換性のある GPU とカーネルライブラリが必要です: | |
| ```shell | |
| pip install -U kernels | |
| ``` | |
| インストールが完了したら、利用可能な場合は最適化されたカーネルを使用するために `DIFFUSERS_GGUF_CUDA_KERNELS=true` を設定してください。なお、CUDA カーネルは元の GGUF 実装と比較してわずかな数値上の差異を生じさせる可能性があり、生成される画像に微細な視覚的な変化をもたらす場合があります。CUDA カーネルの使用を無効にするには、環境変数 `DIFFUSERS_GGUF_CUDA_KERNELS=false` を設定してください。 | |
| GGUF カーネルは、[`Isotr0py/ggml`](https://huggingface.co/Isotr0py/ggml) リポジトリからダウンロードされます。このリポジトリの公開者は、Hub 上で信頼できるカーネル公開者ではありません。このカーネルを読み込むと、Hub からコードをダウンロードして実行するため、Diffusers では `DIFFUSERS_TRUST_REMOTE_KERNELS=true` を設定して明示的にオプトインする必要があります。詳細は [リモートカーネルの信頼](../optimization/attention_backends#trusting-remote-kernels) を参照してください。 | |
| ## サポートされている量子化タイプ | |
| - BF16 | |
| - Q4_0 | |
| - Q4_1 | |
| - Q5_0 | |
| - Q5_1 | |
| - Q8_0 | |
| - Q2_K | |
| - Q3_K | |
| - Q4_K | |
| - Q5_K | |
| - Q6_K | |
| ## GGUFに変換 | |
| 以下の Space を使用して、Diffusers のチェックポイントを推論用の GGUF 形式に変換します。変換を実行するには: | |
| <iframe src="https://diffusers-internal-dev-diffusers-to-gguf.hf.space" frameborder="0" width="850" height="450" | |
| > | |
| ```py | |
| import torch | |
| from diffusers import FluxPipeline, FluxTransformer2DModel, GGUFQuantizationConfig | |
| ckpt_path = ( | |
| "https://huggingface.co/sayakpaul/different-lora-from-civitai/blob/main/flux_dev_diffusers-q4_0.gguf" | |
| ) | |
| transformer = FluxTransformer2DModel.from_single_file( | |
| ckpt_path, | |
| quantization_config=GGUFQuantizationConfig(compute_dtype=torch.bfloat16), | |
| config="black-forest-labs/FLUX.1-dev", | |
| subfolder="transformer", | |
| dtype=torch.bfloat16, | |
| ) | |
| pipe = FluxPipeline.from_pretrained( | |
| "black-forest-labs/FLUX.1-dev", | |
| transformer=transformer, | |
| dtype=torch.bfloat16, | |
| ) | |
| pipe.enable_model_cpu_offload() | |
| prompt = "A cat holding a sign that says hello world" | |
| image = pipe(prompt, generator=torch.manual_seed(0)).images[0] | |
| image.save("flux-gguf.png") | |
| ``` | |
| Diffusers形式のGGUFチェックポイントを使用する場合は、モデルの`config`パスを指定する必要があります。モデルのconfigが`subfolder`内に存在する場合は、それも指定する必要があります。 | |
Xet Storage Details
- Size:
- 5.49 kB
- Xet hash:
- 8f3f6cd052811cfe04f1572790c3bbb7ef8f28f50a0b360e564bf59759d9c321
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.