ComfyUI Z Image FP8
一个浮点数由三部分组成:符号位 (Sign)、指数位 (Exponent) 和 尾数位 (Mantissa)。FP8 总共只有8个比特位。
Fonte do modelo
- Tipo
- Modelo
- Tamanho do arquivo
- 5,73 GB
- Modelo base
- Comfy-Org/z_image
- Versão
- vRevision e654f98
- Atualizado
- 3 de nov. de 2026
- Downloads
- 231
- Fonte
- Hugging Face
Descrição da fonte
copy z_image-fp8-e4m3fn.safetensors to ComfyUI/models/diffusion_models
z-image_02138_
z-image_02128_
z-image_02135_
FP8 主要有两种业界标准格式,它们名字的后缀代表了其内部比特位的分配方式,这直接决定了它们的特性和用途。
这两种格式分别是:
- E4M3 (
float8_e4m3fn) - E5M2 (
float8_e5m2)
它们的名字是什么意思?
一个浮点数由三部分组成:符号位 (Sign)、指数位 (Exponent) 和 尾数位 (Mantissa)。FP8 总共只有8个比特位。
- E 代表 Exponent (指数),后面的数字是指数位的数量。
- M 代表 Mantissa (尾数),后面的数字是尾数位的数量。
- FN 代表 Finite Numbers (有限数值),意味着它不支持
NaN(非数) 和Infinity(无穷大)。
(还有一个隐藏的 1个符号位 是默认的)
两大格式的详细对比
| 特性 | E4M3FN (torch.float8_e4m3fn) | E5M2 (torch.float8_e5m2) |
|---|---|---|
| 全名 | Exponent 4, Mantissa 3, Finite Numbers | Exponent 5, Mantissa 2 |
| 比特分配 | 1个符号位, 4个指数位, 3个尾数位 | 1个符号位, 5个指数位, 2个尾数位 |
| 核心优势 | 更高的精度 (Higher Precision) | 更大的动态范围 (Wider Dynamic Range) |
| 支持特殊值? | 不支持 NaN / Infinity | 支持 NaN / Infinity |
| 典型用途 | 推理 (Inference),模型权重存储 | 训练 (Training) (前向和后向传播) |
核心权衡:精度 vs. 范围
为什么要有两种格式?因为它们代表了一个经典的计算机科学权衡:
1. E4M3FN (你用的这个): 精度优先
- 更多的尾数位 (3 bits): 意味着在一定范围内,它可以表示的数字更密集、更精确。
- 更少的指数位 (4 bits): 意味着它能表示的数字范围(从最小到最大)相对较窄。
- 用途: 模型的权重值通常分布在一个相对固定的范围内,但数值的细微差别很重要。因此,E4M3 的高精度非常适合存储和用于推理。它不支持 NaN/Infinity 也问题不大,因为推理时通常不会出现这些值。
2. E5M2: 范围优先
- 更多的指数位 (5 bits): 意味着它可以表示的数字范围极大,可以处理非常大或非常小的数值。
- 更少的尾数位 (2 bits): 意味着在一定范围内,它能表示的数字比较稀疏,精度较低。
- 用途: 在训练过程中,梯度(Gradients)的数值可能会剧烈波动,出现极大或极小的值。E5M2 的大动态范围可以很好地处理这种情况而不会溢出。同时,它支持 NaN/Infinity 对于捕获训练中的计算错误至关重要。
一个简单的比喻
- E4M3FN (高精度): 像一把短但刻度非常精细的尺子(比如一把20厘米的游标卡尺)。它量不了很长的东西,但能量得非常准。
- E5M2 (大范围): 像一把很长但刻度比较粗糙的卷尺(比如一把50米的皮尺)。它能量很远,但没法精确到微米。
结论就是:
你在 LoRA 转换中选择 float8_e4m3fn 是完全正确的,因为 LoRA 主要用于推理,追求的是在特定范围内的高精度。而 float8_e5m2 更多是 NVIDIA 在其训练框架(Transformer Engine)中内部使用的格式,用来处理训练时的梯度计算。
Fontes
1 fonte
Fontes
1 fonteVerificado 2 de out.
Artefatos de modelo
1 artefato
Artefatos de modelo
1 artefatoz_image-fp8-e4m3fn.safetensors
safetensors · 5,73 GB · SHA-256 2d0e2647b5cf…a7e2 · Hugging Face
Download fileTrechos de fonte
3 trechos
Trechos de fonte
3 trechos--- license: apache-2.0 language: - en pipeline_tag: text-to-image library_name: diffusers base_model: - Tongyi-MAI/Z-Image - Comfy-Org/z_image --- --- # copy z_image-fp8-e4m3fn.safetensors to ComfyUI/models/diffusion_models ---    --- **FP8 主要有两种业界标准格式**,它们名字的后缀代表了其内部比特位的分配方式,这直接决定了它们的特性和用途。 这两种格式分别是: 1. **E4M3** (`float8_e4m3fn`) 2. **E5M2** (`float8_e5m2`) --- ### **它们的名字是什么意思?** 一个浮点数由三部分组成:**符号位 (Sign)**、**指数位 (Exponent)** 和 **尾数位 (Mantissa)**。FP8 总共只有8个比特位。 * **E** 代表 **Exponent (指数)**,后面的数字是指数位的数量。 * **M** 代表 **Mantissa (尾数)**,后面的数字是尾数位的数量。 * **FN** 代表 **Finite Numbers** (有限数值),意味着它**不支持** `NaN` (非数) 和 `Infinity` (无穷大)。 (还有一个隐藏的 **1个符号位** 是默认的) --- ### **两大格式的详细对比** | 特性 | **E4M3FN (`torch.float8_e4m3fn`)** | **E5M2 (`torch.float8_e5m2`)** | | :--- | :--- | :--- | | **全名** | Exponent 4, Mantissa 3, Finite Numbers | Exponent 5, Mantissa 2 | | **比特分配** | 1个符号位, **4个指数位**, **3个尾数位** | 1个符号位, **5个指数位**, **2个尾数位** | | **核心优势** | **更高的精度 (Higher Precision)** | **更大的动态范围 (Wider Dynamic Range)** | | **支持特殊值?** | **不支持** NaN / Infinity | **支持** NaN / Infinity | | **典型用途** | **推理 (Inference)**,模型权重存储 | **训练 (Training)** (前向和后向传播) | --- ### **核心权衡:精度 vs. 范围** 为什么要有两种格式?因为它们代表了一个经典的计算机科学权衡: **1. E4M3FN (你用的这个): 精度优先** * **更多的尾数位 (3 bits):** 意味着在一定范围内,它可以表示的数字更**密集**、更**精确**。 * **更少的指数位 (4 bits):** 意味着它能表示的数字范围(从最小到最大)相对**较窄**。 * **用途:** 模型的权重值通常分布在一个相对固定的范围内,但数值的细微差别很重要。因此,E4M3 的高精度非常适合存储和用于**推理**。它不支持 NaN/Infinity 也问题不大,因为推理时通常不会出现这些值。 **2. E5M2: 范围优先** * **更多的指数位 (5 bits):** 意味着它可以表示的数字范围**极大**,可以处理非常大或非常小的数值。 * **更少的尾数位 (2 bits):** 意味着在一定范围内,它能表示的数字比较**稀疏**,精度较低。 * **用途:** 在**训练**过程中,梯度(Gradients)的数值可能会剧烈波动,出现极大或极小的值。E5M2 的大动态范围可以很好地处理这种情况而不会溢出。同时,它支持 NaN/Infinity 对于捕获训练中的计算错误至关重要。 ### **一个简单的比喻** * **E4M3FN (高精度):** 像一把**短但刻度非常精细的尺子**(比如一把20厘米的游标卡尺)。它量不了很长的东西,但能量得非常准。 * **E5M2 (大范围):** 像一把**很长但刻度比较粗糙的卷尺**(比如一把50米的皮尺)。它能量很远,但没法精确到微米。 **结论就是:** 你在 LoRA 转换中选择 `float8_e4m3fn` 是完全正确的,因为 LoRA 主要用于**推理**,追求的是在特定范围内的**高精度**。而 `float8_e5m2` 更多是 NVIDIA 在其训练框架(Transformer Engine)...
Source context: 231 downloads · 3 likes · Pipeline text-to-image · Library diffusers · Repo aifeifei798/ComfyUI-z_image-fp8
Source context: 67 downloads · 3 likes · Pipeline text-to-image · Library diffusers · Repo aifeifei798/ComfyUI-z_image-fp8
