> For the complete documentation index, see [llms.txt](https://unsloth.ai/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://unsloth.ai/docs/zh/bo-ke/comfyui.md).

# 如何在 ComfyUI 中运行 Diffusion Image GGUF

在 ComfyUI 中运行 Unsloth Diffusion GGUF 模型的指南。

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

GGUF 是在本地运行扩散模型最优秀且高效的格式之一，而且 [Unsloth Dynamic](/docs/zh/ji-chu-zhi-shi/dynamic-3.0-ggufs.md) GGUF 使用智能量化，即使在低比特下也能保持准确性。

你将学习如何安装 ComfyUI（Windows、Linux、macOS）、构建工作流并调优 [超参数](#workflow-and-hyperparameters-1) 在这篇分步教程中。

#### 前置条件与要求

运行扩散 GGUF 不需要 GPU，只需一台带内存的 CPU。虽然不需要 VRAM，但它会让推理速度快得多。为了获得最佳效果，请确保你的总可用内存（RAM + VRAM / 统一内存）略大于 GGUF 的大小；例如，4 位（Q4\_K\_M） `unsloth/Qwen-Image-Edit-2511-GGUF` 大小为 13.1 GB，因此你至少应有约 13.2 GB 的组合内存。你可以在以下位置找到所有 Unsloth 扩散 GGUF： [我们的集合](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），一个将文本转换为输入嵌入的文本编码器，以及实际的扩散 Transformer。你可以在我们的以下位置找到所有 Unsloth 扩散 GGUF： [合集这里找到](https://huggingface.co/collections/unsloth/unsloth-diffusion-ggufs).

扩散模型和文本编码器都可以是 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 文件中的视觉塔必须使用与文本编码器相同的前缀。

也请下载稍后要用作参考图像的图片。

```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` 。如果你在云端运行，则需要确保已设置端口转发，以便在本地机器上访问。

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

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

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

{% file src="/files/135ae9b8e6a3753d912a3585ab921c08dbedde2c" %}

{% file src="/files/98353f56580bd28a21a4274fb1daa926d9f4e933" %}

{% columns %}
{% column %}
与其从头设置工作流，不如在此下载工作流。

通过点击 Comfy 标志 -> File -> Open -> 然后选择 `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&amp;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&amp;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&amp;token=e9e1d8f0-777c-4083-823d-aeb3e77f5cf8" alt="" width="188"><figcaption></figcaption></figure>

**多参考生成**

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

<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&amp;token=8857c028-5079-4eae-aec2-b02387bf2b23" alt="" width="188"><figcaption></figcaption></figure>

## 🎯 工作流与超参数

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

#### **采样**

采样 在 LLM 中的工作方式不同。我们不是一次采样一个 token，而是在多个步骤中对整张图像进行采样。每一步都会逐渐对图像进行“去噪”，这意味着当你运行更多步骤时，图像往往会有更高的质量。采样算法也有不同类型，从一阶和二阶算法到确定性和随机性算法都有。在本教程中，我们将使用 euler，它是一种在质量和速度之间取得平衡的标准采样器。

#### **引导**

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

在实践中，这并不是无条件预测，而是负向提示词预测，也就是说，这是一个我们绝不想要、应当远离的提示词。在使用 CFG 时，你不需要单独的模型，但你需要从无条件或负向提示词进行第二次推理。其他模型在训练期间已内置 CFG，但你仍然可以设置引导强度。这与 CFG 不同，因为它不需要第二次推理，但它仍然是一个可调超参数，用于设置其影响强度。

#### **结论**

综合来看，你先设置提示词来告诉模型要生成什么，文本编码器对文本进行编码，VAE 对图像进行编码，这两个嵌入会根据采样参数 + 引导一起通过扩散模型进行迭代，最后由 VAE 解码输出，从而得到一张可用的图像。

### 关键概念与术语表

* **潜空间**: 压缩的图像表示（模型实际处理的内容）。
* **条件**: 引导生成的文本/图像信息。
* **扩散模型 / UNet**: 执行去噪的神经网络。
* **VAE**: 像素空间与潜空间之间的编码器/解码器。
* **CLIP（文本编码器）**: 将提示词转换为嵌入。
* **采样器**: 逐步对潜变量去噪的算法。
* **调度器**: 控制各步之间的噪声计划。
* **节点**: 操作（加载模型、编码文本、采样、解码等）。
* **边**: 在节点之间流动的数据。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
