# 如何在 ComfyUI 中运行 Diffusion Image GGUF

ComfyUI 是一个开源的扩散模型图形界面、API 和后端，使用基于节点（图/流程图）的界面。 [ComfyUI](https://github.com/comfyanonymous/ComfyUI) 是运行像 Qwen-Image-Edit 或 FLUX 之类图像模型工作流的最流行方式。

GGUF 是在本地运行扩散模型时最优秀且高效的格式之一，且 [Unsloth Dynamic](https://unsloth.ai/docs/zh/ji-chu/unsloth-dynamic-2.0-ggufs) GGUF 使用智能量化在低位宽下也能保留准确性。

在本循序渐进的教程中，你将学习如何安装 ComfyUI（Windows、Linux、macOS）、构建工作流并调整 [超参数](#workflow-and-hyperparameters-1) 。

#### 先决条件与要求

运行扩散 GGUFs 不需要 GPU，只需有带内存（RAM）的 CPU。虽然不需要 VRAM，但有 VRAM 会使推理更快。为获得最佳效果，确保你的总可用内存（RAM + VRAM / 统一内存）略大于 GGUF 大小；例如，4 位（Q4\_K\_M） `unsloth/Qwen-Image-Edit-2511-GGUF` 为 13.1 GB，因此你至少应有约 \~13.2 GB 的组合内存。你可以在 [我们的合集](https://huggingface.co/collections/unsloth/unsloth-diffusion-ggufs).

我们建议对扩散模型至少使用 3 位量化，因为它们的层，尤其是视觉组件，对量化非常敏感。Unsloth Dynamic 对重要层进行上采样量化以尽可能恢复准确性。

## 📖 ComfyUI 教程

ComfyUI 将整个图像生成管道表示为连接节点的图。 本指南将侧重于带 CUDA 的机器，但在 Apple 或仅 CPU 下构建的说明类似。

### #1. 安装与设置

要安装 ComfyUI，你可以在 Windows 或 Mac 设备上下载桌面应用程序 [此处](https://www.comfy.org/download)。否则，要为运行 GGUF 模型设置 ComfyUI，请运行以下命令：

```bash
mkdir comfy_ggufs
cd comfy_ggufs
python -m venv .venv
source .venv/bin/activate

git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install -r requirements.txt

cd custom_nodes
git clone https://github.com/city96/ComfyUI-GGUF
cd ComfyUI-GGUF
pip install -r requirements.txt
cd ../..
```

### #2. 下载模型

扩散模型通常需要 3 个模型。一个将图像像素空间编码到潜在空间的变分自编码器（VAE），一个将文本转换为输入嵌入的文本编码器，以及实际的扩散变换器。你可以在我们的 [合集这里](https://huggingface.co/collections/unsloth/unsloth-diffusion-ggufs).

找到所有 Unsloth 扩散 GGUF。扩散模型和文本编码器都可以是 GGUF 格式，而我们通常对 VAE 使用 safetensors。让我们下载将使用的模型。

```bash
cd models

curl -L -C - -o vae/flux2-vae.safetensors \
  https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/vae/flux2-vae.safetensors
  
curl -L -C - -o text_encoders/Mistral-Small-3.2-24B-Instruct-2506-UD-Q4_K_XL.gguf \
  https://huggingface.co/unsloth/Mistral-Small-3.2-24B-Instruct-2506-GGUF/resolve/main/Mistral-Small-3.2-24B-Instruct-2506-UD-Q4_K_XL.gguf

curl -L -C - -o text_encoders/Mistral-Small-3.2-24B-Instruct-2506-mmproj-BF16.gguf \
  https://huggingface.co/unsloth/Mistral-Small-3.2-24B-Instruct-2506-GGUF/resolve/main/mmproj-BF16.gguf
  
curl -L -C - -o unet/flux2-dev-Q4_K_M.gguf \
  https://huggingface.co/unsloth/FLUX.2-dev-GGUF/resolve/main/flux2-dev-Q4_K_M.gguf
```

查看以下的 GGUF 上传： [Qwen-Image-Edit-2511](https://huggingface.co/unsloth/Qwen-Image-Edit-2511-GGUF), [FLUX.2-dev](https://huggingface.co/unsloth/FLUX.2-dev-GGUF) 和 [Qwen-Image-Layered](https://huggingface.co/unsloth/Qwen-Image-Layered-GGUF)

{% hint style="warning" %}
VAE 和扩散模型的格式可能与 diffusers 检查点不同。仅使用与 ComfyUI 兼容的检查点。
{% endhint %}

这些文件必须位于正确的文件夹中，ComfyUI 才能识别它们。此外，mmproj 文件中的视觉塔（vision tower）必须使用与文本编码器相同的前缀。

还请下载稍后将使用的参考图像。

```bash
curl -L -C - -o ../input/sloth1.jpg \
    https://unsloth.ai/cgi/image/_1d5a5685-2d88-44ca-b50f-ba432cd646ef_9CGCY8lvw4D9JkOdueqsk.jpeg?width=1920&quality=80&format=auto

curl -L -C - -o ../input/sloth2.jpg \
    https://unsloth.ai/cgi/image/UnSloth_GPU_Front_-_Confetti_ArcSk-MR4MMN215UutOFZ.png?width=1920&quality=80&format=auto
```

#### 工作流与超参数

你也可以查看我们的详细 [#workflow-and-hyperparameters-1](#workflow-and-hyperparameters-1 "mention") 指南。

导航到 ComfyUI 目录并运行：

```bash
python main.py
```

这将启动一个 Web 服务器，让你可以访问 `https://127.0.0.1:8188` 。如果你在云端运行，需要确保已设置端口转发以便在本地机器上访问。

工作流以嵌入在输出图像（PNG 元数据）中的 JSON 文件或作为单独的 `.json` 文件保存。你可以：

* 将一张图片拖放到 ComfyUI 中以加载其工作流
* 通过菜单导出/导入工作流
* 以 JSON 文件共享工作流

下面是两个 FLUX 2 json 文件的示例，你可以下载并使用：

{% file src="<https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FpDft2nBJR3D1ti1zxr9v%2Funsloth_flux2_t2i_gguf.json?alt=media&token=43f65886-0a81-4bad-b6dd-f6d4daa89a9b>" %}

{% file src="<https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FnCcWbaZDgETpESU0jrml%2Funsloth_flux2_i2i_gguf.json?alt=media&token=24c6926e-5b49-4aa5-93d7-9b6a63a0a3fa>" %}

{% columns %}
{% column %}
你可以在不从头设置工作流的情况下从此处下载该工作流。

在浏览器页面中通过点击 Comfy 徽标 -> 文件 -> 打开 -> 然后选择你刚下载的 `unsloth_flux2_t2i_gguf.json` 文件将其加载。它应该看起来像下面：
{% endcolumn %}

{% column %}

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FqoxBnRlnYrmzLfZshE1Z%2FScreenshot%20from%202025-12-29%2014-37-00.png?alt=media&#x26;token=1b1517b7-d44f-4e95-a5ed-759a4e0f74ec" alt="" width="254"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FWCVbmRbpijuj78M1rBtK%2FScreenshot%20from%202025-12-29%2021-41-52.png?alt=media&#x26;token=8378c519-1610-4752-bb71-4b95fdf00037" alt="" width="563"><figcaption></figcaption></figure>

此工作流基于官方发布的 ComfyUI 工作流，但它使用 GGUF 加载扩展，并为说明文本到图像功能而简化。&#x20;

### #3. 推理

ComfyUI 可高度自定义。你可以混合模型并创建极其复杂的管道。对于基本的文本到图像设置，我们需要加载模型、指定提示词和图像细节，并决定采样策略。&#x20;

**上传模型 + 设置提示词**

我们已经下载了模型，所以只需选择正确的模型。对于 Unet Loader 选择 `flux2-dev-Q4_K_M.gguf`，对于 CLIPLoader 选择 `Mistral-Small-3.2-24B-Instruct-2506-UD-Q4_K_XL.gguf`，对于 Load VAE 选择 `flux2-vae.safetensors`.&#x20;

你可以设置任意提示词。因为无分类器引导已内置到模型中，我们不需要指定负面提示词。

**图像尺寸 + 采样器参数**

Flux2-dev 支持不同的图像尺寸。你可以通过设置宽度和高度的值来生成矩形。对于采样器参数，你可以尝试除了 euler 以外的不同采样器，以及更多或更少的采样步骤。如果想观察不同设置如何改变输出，可将 RandomNoise 设置从 randomize 改为 fixed。

**运行**

点击运行（Run），大约 45-60 秒内会生成一张图像。该输出图像可以被保存。有趣的是，整个 Comfy 工作流的元数据会保存在图像中。你可以分享该图像，任何人都可以通过在 UI 中加载它来查看其创建过程。

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FfSKbmlievhyLzNmQxD88%2Funsloth_flux2_t2i_gguf.png?alt=media&#x26;token=e9e1d8f0-777c-4083-823d-aeb3e77f5cf8" alt="" width="188"><figcaption></figcaption></figure>

**多参考生成**

Flux2 的一个关键特性是多参考生成，你可以提供多张图像以辅助控制生成。这次加载 `unsloth_flux2_i2i_gguf.json`。我们将使用相同的模型，这次唯一的区别是额外的节点用于选择要作为参考的图像，这些图像我们之前已下载。你会注意到提示词同时引用了 `图像 1` 和 `图像 2` ，它们是图像的提示锚点。加载后点击运行，你会看到输出将我们两个独特的树懒角色放在一起，同时保留它们的相似特征。

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FYyWL5368gfbwPAl8bhQ0%2Funsloth_flux2_i2i_gguf.png?alt=media&#x26;token=8857c028-5079-4eae-aec2-b02387bf2b23" alt="" width="188"><figcaption></figcaption></figure>

## 🎯 工作流与超参数

对于文本到图像的工作流，我们需要指定提示词、采样参数、图像尺寸、引导强度以及任何优化配置。

#### **采样**

采样 与大语言模型不同。我们不是一次采样一个 token，而是在多个步骤中对整个图像进行采样。每一步逐步“去噪”图像，这意味着当你运行更多步骤时，图像往往质量更高。还有不同的采样算法，范围从一阶和二阶算法到确定性和随机性算法。对于本教程，我们将使用 euler，这是在质量与速度之间取得平衡的标准采样器。

#### **引导**

引导 是扩散模型的另一个重要超参数。引导有很多变体，但最广泛使用的两种形式是 **无分类器引导（CFG）** 和引导蒸馏。无分类器引导的概念源自 [无分类器扩散引导](https://arxiv.org/abs/2207.12598)。历史上你需要一个单独的分类器模型来引导模型以匹配输入条件，但这篇论文实际上表明 CFG 使用模型的条件预测与无条件预测之间的差异来形成引导方向。

在实践中，这并不是一个无条件预测，而是一个负面提示预测，意思是这是我们绝对不想要的提示，我们应当远离它。使用 CFG 时你不需要单独的模型，但需要来自无条件或负面提示的第二次推理步骤。其他模型在训练期间将 CFG 内置，但你仍然可以设置引导强度。这与内置 CFG 不同，因为它不需要第二次推理步骤，但它仍然是一个可调超参数，用于设置其效果的强弱。

#### **结论**

综合起来，你设置一个提示词告诉模型要生成什么，文本编码器对文本进行编码，VAE 对图像进行编码，两个嵌入根据采样参数和引导在扩散模型中被逐步处理，最后输出由 VAE 解码，生成可用的图像。

### 关键概念与术语表

* **潜在（Latent）**：压缩的图像表示（模型操作的对象）。
* **条件（Conditioning）**：引导生成的文本/图像信息。
* **扩散模型 / UNet**：执行去噪的神经网络。
* **VAE**：像素空间与潜在空间之间的编码器/解码器。
* **CLIP（文本编码器）**：将提示词转换为嵌入。
* **采样器（Sampler）**：迭代去噪潜在表示的算法。
* **调度器（Scheduler）**：控制跨步的噪声计划。
* **节点（Nodes）**：操作（加载模型、编码文本、采样、解码等）。
* **边（Edges）**：在节点之间流动的数据。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/zh/bo-ke/comfyui.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
