Z-image支持WebUI Forge Neo冷门分支
R叶不落
2025年12月01日 08:45

全精度显存优化

1. 直接砍权重位宽(省 30 %~50 % 显存)

--unet-in-fp8-e4m3fn # 把 UNet 压到 FP8,画质几乎无损,显存直接减半

--vae-in-fp16 # VAE 用 FP16 足够,BF16/FP32 没必要

--clip-in-fp16 # Text-encoder 用 FP16(若用 Qwen3-4B 能省 3-4 GB)

```

> 注意:FP8 需要 Ada 以上显卡 + PyTorch 2.2↑,老卡换 `--unet-in-fp16` 即可。

---

2. 让模块常驻 CPU(省 2~8 GB 显存)

--vae-in-cpu # VAE 只占内存,出图前再搬上 GPU,速度掉 <5 %

--clip-in-cpu # Text-encoder 常驻内存,采样阶段再搬,掉速 5 %~10 %

```

> 两个一起用,16 GB 卡也能跑 FLUX-Qwen3 组合。

---

3. 动态卸载策略(Forge 官方版)

--always-low-vram # 最激进,权重按层搬,显存<8 GB 救星

--always-normal-vram # 折中,UNet 常驻,其余按需搬,掉速 10 % 左右

--always-offload-from-vram # 在 low-vram 基础上,采样完立即清空,再省 1 GB 级

```

---

4. Attention 切片 / 分块(再省 300 MB~2 GB)

--attention-split # 把 attention 切成多块,显存碎片少,高分辨率必备

--force-upcast-attention # 计算时临时升到 FP32,防止 FP16 炸显存,代价 3 % 速度

```

---

5. 关闭“占显存”的调试功能

--disable-gpu-warning # 不预分配警告缓存,省 200 MB

--no-hashing # 跳过模型校验,省 300-500 MB 临时缓冲

```

---

6. 让 CUDA 自己省碎片

--cuda-malloc # 用 cudaMallocAsync,碎片少,高 batch 明显

--pin-shared-memory # 允许把交换区钉在内存,倒腾更快,间接防 OOM

```

---

7. 极端救急(速度换显存)

--always-cpu # 全部放 CPU,只有运算时搬,<6 GB 显存也能跑,速度最慢

--all-in-fp16 # 全局 FP16,包括 UNet/VAE/CLIP,再省 1-2 GB

```

---

8. 可选:mmap 关掉(老 SSD/Win10 有 BUG 时)

--disable-mmap # 模型不用内存映射,占显存略增,但可避免 Win 上“占满不释放”

```

---

一条“16 GB 卡跑 FLUX+4B 文本模型”的示范组合(实测 12 GB 以内稳稳出 1024 px):

```bash

python launch.py ^

--xformers --sage --cuda-malloc --cuda-stream --listen ^

--always-normal-vram ^

--unet-in-fp8-e4m3fn --vae-in-fp16 --clip-in-fp16 ^

--vae-in-cpu --clip-in-cpu ^

--attention-split --force-upcast-attention

```

照抄后若还超,就把 `--always-normal-vram` 换成 `--always-low-vram`,或把 `--unet-in-fp8-e4m3fn` 换成 `--unet-in-fp16`,再降 `--gpu-weights-percent 50`,基本就能把 20 GB 模型压进 8 GB 卡。