一台 2018 年的 RTX 2080 Ti,11 GB 显存,到 2026 年还能不能跑最新一代的开源图像模型?
答案是:能,而且不只是“能启动”。
我最近在一台老机器上把 Qwen-Image-2.1 跑通了。1024 × 1024、20 步,从提交任务到图片写入硬盘,大约 5 分 21 秒。如果带一张参考图做编辑,同样是 20 步,一次大概 10 到 10 分半。
当然,前提不是把官方 BF16 权重一股脑塞进去。
真正让 RTX 2080 Ti 继续干活的关键,是把主模型、文本编码器和 VAE 分开处理:Q4 GGUF 主干放显卡,W4A8 文本编码器放系统内存,VAE 用 BF16,但采用分块解码。
这篇把我这台机器的实际配置、模型选择、ComfyUI 安装、显存分配、速度测试,以及不同显存档位可以照抄的方案完整记录下来。
先说机器:这是一台真正的“老电脑”
| 硬件 | 配置 |
|---|---|
| CPU | Intel Core i9-9900K |
| 内存 | 32 GB |
| GPU | NVIDIA RTX 2080 Ti |
| 显存 | 11264 MiB |
| Compute Capability | 7.5 |
| GPU 架构 | Turing |
| 系统盘 | 512 GB SSD |
| 模型盘 | 内置 2 TB 机械硬盘 |
这套机器本身没有什么特别“AI 友好”的地方。系统盘空间不够,所以模型权重干脆放在了内置 2 TB 机械盘里。机械盘确实会拖慢第一次加载模型的速度,但当模型真正进入内存、采样开始以后,主要瓶颈还是显卡性能和显存。
所以模型放机械盘并不会把每一步采样都拖慢。外接 USB 硬盘就不太建议了,第一次读取大权重时会明显更慢。
2080 Ti 最大的问题其实不是算力完全不够,而是它属于 Turing 架构,没有后来显卡上那么好用的 FP8 和 BF16 Tensor 加速。因此官方示例里那种 BF16 全量方案,在这张卡上没有太大现实意义:显存装不下,性能也不划算。
老卡真正适合走的是量化路线。
Qwen-Image-2.1 写着 7B,为什么 11 GB 显存还是不够?
这里很容易产生一个误解。
Qwen-Image-2.1 资料里的 7B,主要指的是图像生成主干,也就是 32 层 Single-Stream DiT。
但一套真正完整的出图管线还需要:
- Qwen3-VL-8B 文本编码器
- Qwen-Image-2.1 VAE
- 扩散主模型本身
也就是说,看到“7B”并不能简单理解成“显存放得下 7B 就能跑”。
官方 BF16 全套大约需要 33 GB。就算把主干和编码器都换成 INT8,INT8 主干大约 7.3 GB,INT8 编码器大约 9.4 GB,两份一起放显卡,依然远超 11 GB。
所谓“7B 模型,老显卡也能跑”,真正成立的前提是:主干量化,同时把文本编码器卸载到系统内存。
另外需要注意许可证。Qwen-Image-2.1 使用的是 Qwen Research License。研究和评测可以下载使用,但如果要用于商业用途,需要另外确认授权。这一点和上一代采用 Apache 2.0 的 Qwen-Image 不一样。
最后我为什么选了这三份模型
Q4 GGUF 扩散主模型 → GPU
W4A8 文本编码器 → CPU / 系统内存
BF16 VAE → 分块解码
扩散主模型
Qwen-Image-2.1-Q4.gguf
文件大小:
5,959,127,264 bytes
约 5.55 GiB
放在:
ComfyUI\models\diffusion_models\
这是社区按照 ComfyUI 张量布局转换的 Q4 GGUF。
文本编码器
qwen3vl_8b_w4a8.safetensors
文件大小:
6,312,105,364 bytes
约 6.31 GB
放在:
ComfyUI\models\text_encoders\
这份编码器最关键的一点是:
Device: CPU
也就是说,把这 6 GB 多的编码器留在系统内存里,不去和扩散主干抢 11 GB 显存。
VAE
qwen_image_2.1_vae_bf16.safetensors
文件大小:
675,509,688 bytes
约 676 MB
放在:
ComfyUI\models\vae\
VAE 本身不算大,可以继续保留 BF16。但最终解码时,我使用 VAE Decode Tiled,避免最后一步突然把显存顶爆。
我实际跑出来的速度
统一测试条件:
Sampler: Euler
Scheduler: Simple
CFG: 1
Steps: 20
官方模板一般从 25 步开始,模型卡里也有 40 步的示例。我这里统一用 20 步,主要是为了方便横向对比。
另外,下面所有测试都控制在大约 100 万像素。2080 Ti 11 GB 直接上原生 2048,激活值基本扛不住。
1024 × 1024 文生图
20 Steps
约 6.6 秒 / Step
显存峰值:
9546 MiB
约 9.3 GiB
从任务提交到图片写入 ComfyUI/output:
321 秒
约 5 分 21 秒
这个时间包含 CPU 文本编码、扩散采样、VAE 分块解码和图片写盘,并不是单纯的 KSampler 时间。
768 × 1024 文生图
同样 20 步:
约 4.9 秒 / Step
采样约 1 分 38 秒
完整任务 268 秒
约 4 分 28 秒
768 × 1024 总像素比 1024 方图少,所以整体会快一截。
参考图编辑
编辑任务明显更慢。我使用:
resolution = 1024
这里的 1024 并不是强制输出 1024 × 1024,而是把总面积控制在大约 1024²,同时保持参考图原来的长宽比。
20 步参考图编辑实测:
约 15 秒 / Step
采样约 5 分钟
完整执行 10 分 29 秒
多次任务墙钟时间约 601~631 秒
显存峰值 10225 MiB
约 10.0 GiB
这已经基本贴着 2080 Ti 的显存上限了。
为什么参考图编辑会慢这么多
主要有两个原因。
第一,文本编码器被我放在 CPU 上。纯文生图的时候,它只需要处理文本。到了参考图编辑,整张图片也需要进入 Qwen3-VL 编码器,因此 CPU 端的负担明显增加。
第二,参考图编辑本身需要更多条件信息,latent 和中间激活也更接近 11 GB 显存上限。所以文生图时可能还是五六秒一步,到了编辑任务,就会涨到大约 15 秒一步。
显存峰值达到 10 GiB 以后,系统剩余空间已经非常有限。跑图时最好把会占 GPU 的浏览器标签页、本地运行的其他大模型、其他 CUDA 程序和其他图像生成任务先关掉。
这台机器上,Windows 桌面加 Chrome 本身就可能吃掉接近 1 GB 显存。如果再同时跑一个 14B 本地语言模型,就很容易直接爆。
Windows 下完整安装方法
我使用的是:
ComfyUI 0.37 Windows Portable
针对 RTX 20 系,直接使用官方 NVIDIA 便携包。10 系显卡则建议使用对应的 cu126 版本。Qwen-Image-2.1 相关节点从 0.37 开始才比较完整,太老的 ComfyUI 不建议继续折腾。
我这里的安装目录是:
D:\ComfyUI_windows_portable
安装 ComfyUI-GGUF
进入:
ComfyUI\custom_nodes\
执行:
git clone --depth 1 https://github.com/leejet/ComfyUI-GGUF
再使用便携版自带的 Python 安装依赖:
D:\ComfyUI_windows_portablepython_embededpython.exe -m pip install -r D:\ComfyUI_windows_portableComfyUI\custom_nodes\ComfyUI-GGUFrequirements.txt
Qwen-Image-2.1 刚发布时,很多较旧版本的 GGUF 节点还不认识它的架构名,会直接报 Unknown Model。所以这里最好使用已经明确支持 Qwen-Image-2.1 的新版 leejet/ComfyUI-GGUF。
模型目录
ComfyUI\models\diffusion_models\Qwen-Image-2.1-Q4.gguf
ComfyUI\models\text_encoders\qwen3vl_8b_w4a8.safetensors
ComfyUI\models\vae\qwen_image_2.1_vae_bf16.safetensors
模型来源主要是:
Comfy-Org/Qwen-Image-2.1
realrebelai/Qwen-Image-2.1_GGUFs
国内网络环境下,也可以走 ModelScope 对应镜像。我这里实际下载的时候,Hugging Face 的分块下载中途失败过,最后 ModelScope 把三个文件完整下了下来。
下载之后建议一定核对文件大小:
Qwen-Image-2.1-Q4.gguf
5959127264 bytes
qwen3vl_8b_w4a8.safetensors
6312105364 bytes
qwen_image_2.1_vae_bf16.safetensors
675509688 bytes
如果对不上,先不要跑。大模型文件下载中途失败后,经常会留下一个“文件名看起来完全正常”的残缺文件。
给 11 GB 显卡准备一个专用启动脚本
在 ComfyUI 便携版根目录新建:
run_qwen_11gb.bat
内容:
@echo off
cd /d %~dp0
.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --lowvram --reserve-vram 1 --listen 127.0.0.1 --port 8288
pause
--lowvram 用于在显存不足时进行模型拆分和卸载,--reserve-vram 1 则给桌面和其他程序留大约 1 GB 显存。
启动后浏览器打开:
http://127.0.0.1:8288
如果遇到 WinError 10013
我这台机器默认的 8188 端口刚好落在 Windows 的保留范围:
8138–8237
所以最后换成了 8288。
如果你也遇到 WinError 10013,先运行:
netsh interface ipv4 show excludedportrange protocol=tcp
看看当前 Windows 保留了哪些 TCP 端口,再挑一个范围之外的端口即可。
ComfyUI 文生图工作流怎么搭
UNet Loader(GGUF)
Qwen-Image-2.1-Q4.gguf
CLIP Loader
qwen3vl_8b_w4a8.safetensors
Type: qwen_image
Device: cpu
Device: CPU 是 11 GB 显卡能跑起来的关键之一。
VAE Loader
qwen_image_2.1_vae_bf16.safetensors
Text Encode Qwen Image 2.1
正向提示词正常写,负向可以先留空。因为 CFG = 1 时,负向提示词基本不起作用。
resolution = 1024
KSampler
Steps: 20
CFG: 1
Sampler: Euler
Scheduler: Simple
Denoise: 1
VAE Decode Tiled
Tile: 512
Overlap: 64
最后接 Save Image。
怎么生成 3:4,而不是只能出方图
Qwen-Image-2.1 在没有参考图时,编码节点自己生成的 latent 默认是方形。所以 resolution = 1024 对应的就是 1024 × 1024。
如果想出 768 × 1024,需要自己提供一张 64 通道空 latent。空间尺寸按“像素尺寸 ÷ 16”计算,所以:
768 ÷ 16 = 48
1024 ÷ 16 = 64
也就是 48 × 64 latent。
新建:
ComfyUI\custom_nodes\empty_qwen_image21_latent.py
内容:
import torch
import comfy.model_management
class EmptyQwenImage21Latent:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"width": ("INT", {"default": 768, "min": 64, "max": 4096, "step": 32}),
"height": ("INT", {"default": 1024, "min": 64, "max": 4096, "step": 32}),
"batch_size": ("INT", {"default": 1, "min": 1, "max": 4}),
}
}
RETURN_TYPES = ("LATENT",)
FUNCTION = "make"
CATEGORY = "model/latent"
def make(self, width, height, batch_size):
latent = torch.zeros(
[batch_size, 64, height // 16, width // 16],
device=comfy.model_management.intermediate_device(),
)
return ({"samples": latent},)
NODE_CLASS_MAPPINGS = {
"EmptyQwenImage21Latent": EmptyQwenImage21Latent
}
保存之后重启 ComfyUI,把这个 latent 直接接给 KSampler,Text Encode Qwen Image 2.1 就只负责提供条件。这样 3:4、4:3、横图、竖图都可以自己控制。
垫图编辑怎么搭
编辑还是用同一套:
Q4 GGUF 主模型
W4A8 编码器
BF16 VAE
区别主要在 Text Encode Qwen Image 2.1。增加 Load Image,然后把图片连接到 image_1,同时把 VAE 也接到这个编码节点。
这样参考图既会进入 Qwen3-VL 编码器,也会生成对应的 latent 条件。
resolution = 1024
此时输出会保持原图宽高比,同时把总面积控制在大约一百万像素。对 11 GB 显卡来说,这个尺度基本就是安全区。
KSampler 继续:
Steps: 20
CFG: 1
Euler
Simple
Denoise: 1
编辑提示词不要只写“改什么”
图像编辑里,一个非常明显的区别是:只告诉模型“改什么”,很容易把整个画面都一起重画。
更稳的写法应该是:
改什么 + 什么必须保留。
例如:
Edit the reference photo.
Change the background to a rainy night street.
Keep the same person, face, pose, framing, and lighting on the subject.
而不是只有:
Change the background to a rainy night street.
如果只写“换背景”“换衣服”“删掉某个东西”,模型很可能顺便把人物身份、姿势、构图和镜头也一起重做。
不同显存的老卡,可以怎么抄
8 GB
Q3 或更低 GGUF
文本编码器放 CPU
VAE 分块解码
分辨率先从 768 边长开始,不要一上来冲 1024。
11~12 GB
Q4 GGUF → GPU
W4A8 Encoder → CPU
BF16 VAE → Tiled Decode
推荐约 100 万像素、20 Steps。速度可以先按 1024 方图约 5~6 分钟、参考图编辑约 10 分钟来预期。
16 GB
可以开始尝试 INT8 主干 + W4A8 文本编码器,看看编码器是否有机会一起留在 GPU。减少 CPU 和 GPU 之间的搬运,特别是垫图编辑,会舒服很多。
24 GB 及以上
更适合考虑 INT8 主干 + INT8 编码器。这时候才真正有余量碰 2048 这一级别的输出。
GTX 10 系
使用对应的 cu126 ComfyUI 便携包。
RTX 30 系及更新显卡
可以继续用新版 NVIDIA Portable。显存够的话,把编码器从 CPU 改回 GPU / 默认设备即可。
所以,2080 Ti 到 2026 年还能不能打?
如果拿它跟今天的新显卡比速度,当然没什么好比的。
1024 方图一次五分多钟,垫图编辑一次十分钟,新卡用户看了大概会觉得很慢。
但换个角度:RTX 2080 Ti 是 2018 年的卡。八年以后,它依然能够在本地完成 Qwen-Image-2.1 文生图、非方形输出、参考图编辑、约 100 万像素级生成和完整 ComfyUI 工作流。
而且不是“勉强加载成功”,是真的可以正常使用。
如果你只是自己研究、偶尔出图,或者把这台旧电脑独立当成一台 AI 图像生成节点,它其实仍然有价值。
老机伏枥,尚能 fun。
你的老电脑也想试试?把下面这段直接交给 Agent
如果你现在使用的是 Codex、OpenClaw、Hermes,或者其他能够真正操作本地电脑的 Agent,可以直接把下面这整段交给它。
我的建议是:不要让 Agent 上来就装。先检查机器,再给方案,你确认以后它才能动手。
你是这台电脑上的操作者,负责为这台真实机器部署 Qwen-Image-2.1,并在部署完成后继续替我出图。
不要只给步骤让我自己点。
第一阶段:检查。
先读取这台电脑的真实配置,再给方案。我确认方案之后,你才能开始安装。
请通过系统命令实际检查以下信息,不要猜:
1. GPU 型号
2. 显存容量
3. GPU Compute Capability / 架构
4. NVIDIA 驱动版本
5. 系统内存
6. 所有磁盘的类型、容量和剩余空间
7. 是否已经安装 ComfyUI
8. 8188 或其他候选端口是否被 Windows 保留
9. 当前网络访问 Hugging Face 和 ModelScope 是否稳定
第二阶段:给部署方案。
根据真实显存和 GPU 架构,给我一套具体方案。
必须明确写出:
- 扩散模型文件名
- 扩散模型量化方式
- 文本编码器文件名
- 文本编码器量化方式
- VAE 文件名
- 哪些模型放 GPU
- 哪些模型放 CPU / 系统内存
- 建议的安全输出分辨率上限
- 20 Steps 的预计耗时
耗时必须注明是估算。
你可以参考一台已经实测过的 RTX 2080 Ti 11 GB:
1024 × 1024 文生图:
- 20 Steps
- 约 6.6 秒 / Step
- 完整执行约 5 分 21 秒
- 显存峰值约 9.3 GiB
约 100 万像素的竖图参考图编辑:
- 20 Steps
- 约 15 秒 / Step
- 完整执行约 10~10.5 分钟
- 显存峰值约 10.0 GiB
但不要机械照抄这个速度。
如果我的 GPU 更快、更慢,或者显存和架构不同,要根据真实硬件调整方案。
参考策略:
RTX 20 系或 Compute Capability 7.5:
- 使用支持 20 系的 ComfyUI NVIDIA Portable
- ComfyUI 0.37 或更新
- Q4 GGUF 扩散主模型
- W4A8 文本编码器放 CPU
- VAE 使用 Tiled Decode
- 分辨率控制在约 100 万像素
GTX 10 系:
- 使用对应 cu126 Portable
16 GB 显存:
- 可以评估 INT8 主干
- 根据实际显存决定编码器是否放 GPU
24 GB 及以上:
- 可以评估官方 INT8 组合
- 显存足够时再评估 BF16 和 2048
GGUF 节点优先使用已经明确支持 Qwen-Image-2.1 架构的版本,例如:
leejet/ComfyUI-GGUF
第三阶段:得到我的确认后再安装。
不要在我确认之前修改配置。
安装目标磁盘必须有足够空间容纳:
- ComfyUI
- 自定义节点
- 大约 13 GB 模型权重
- 输出图片
- 必要缓存
下载安装完成后,核对模型文件大小,避免下载损坏。
如果启动 ComfyUI 时出现:
WinError 10013
先检查:
netsh interface ipv4 show excludedportrange protocol=tcp
然后换用 Windows 保留端口范围之外的端口。
第四阶段:验证。
部署完成后:
1. 启动 ComfyUI 服务
2. 使用一句中性的测试提示词
3. 先生成一张较小尺寸图片
4. 确认文本编码正常
5. 确认采样正常开始
6. 确认 VAE 可以完成解码
7. 确认图片成功写入 output
然后告诉我:
- 输出图片尺寸
- Steps
- 实际耗时
- 峰值显存
- 图片完整文件路径
如果失败:
优先降低分辨率、调整卸载策略或者修改显存配置。
不要为了让它跑起来,擅自换成更大的模型权重硬塞。
第五阶段:留下来继续当这台机器的出图操作者。
以后:
我只发文字:
执行文生图。
我发图片 + 文字:
执行参考图编辑。
编辑提示词按照:
“要改什么 + 必须保留什么”
这种结构整理。
例如:
Edit the reference photo.
Change the background to a rainy night street.
Keep the same person, face, pose, framing, and lighting on the subject.
resolution 必须按照这台电脑的显存控制在安全面积内。
denoise 使用 Qwen-Image-2.1 编辑工作流对应的默认值。
每次出图之后告诉我:
- 输出尺寸
- Steps
- 实际耗时
- 文件路径
如果显存不够:
优先降低分辨率,并告诉我为什么。
不要同时让另一个大型语言模型或大型图像模型占满 GPU。
平时只需要逐步告诉我三个真正明显影响出图时间的因素:
1. 分辨率
2. Steps
3. 是否有参考图
不要一次给我灌输一整套 ComfyUI 教程。
Qwen-Image-2.1 按 Qwen Research License 使用。
研究和评测可以使用。
如果我要用于商业用途,先提醒我确认并取得对应商业授权。
拒绝任何涉及未成年人的性内容。
这也是我现在越来越喜欢的一种本地 AI 使用方式:不是先看网上别人说“你的显卡能不能跑”,而是把真实机器交给 Agent,让它自己读取显卡、显存、内存、磁盘、端口和网络环境,再根据实际条件决定该装什么。
硬件老一点没关系。
只要配置方案对,很多机器其实远没有到退休的时候。
了解 ~/jintaoblog/朝夕见闻志⚡️ 的更多信息
订阅后即可通过电子邮件收到最新文章。
