为图像和视频模型选择显卡。
图像模型没有需要记住的对话历史,所以估算规格的方式和语言模型完全不同 —— 能放下它的最便宜的显卡,几乎从来都不是您真正该租的那一张。
简短的答案
- 全精度下
- SDXL 1.0 8.0 GB · Stable Diffusion 3.5 Large 18.4 GB · FLUX.1 dev 27.6 GB · Wan 2.1 video 14B 32.2 GB — 已包含运行时余量
- 尴尬的一行
- 产品目录里每一张24 GB 显卡在 BF16 下都差一点放不下FLUX.1 dev。FP8 把显存需求减半,所有显卡都能轻松容纳
- 最便宜能放下它的
- NVIDIA L4每月$125,FP8 下FLUX.1 dev
- 第二张显卡能换来什么
- 每小时图片产量翻倍,但单张图片的耗时一秒也不会减少
每个模型需要什么
先从这个决定一切的差异说起。语言模型带有一个键/值缓存,会随着上下文的每一个 token 增长,这就是为什么同一个 70B 模型,根据您保留多少对话历史,可能需要 40 GB,也可能需要 140 GB。扩散模型则完全没有缓存:它读入一段提示词,对潜变量去噪固定的步数,然后就忘记了。因此权重几乎就是显存问题的全部,提示词变长也不会改变答案。
| 模型 | 参数 | BF16 / FP16 | FP8 | 4-bit (AWQ, GPTQ) |
|---|---|---|---|---|
| SDXL 1.0 | 3.5 B | 8.0 GB | 4.0 GB | 2.0 GB |
| Stable Diffusion 3.5 Large | 8 B | 18.4 GB | 9.2 GB | 4.6 GB |
| FLUX.1 dev | 12 B | 27.6 GB | 13.8 GB | 6.9 GB |
| Wan 2.1 video 14B | 14 B | 32.2 GB | 16.1 GB | 8.0 GB |
权重,再加上 15% 的运行时余量,用于覆盖激活值、CUDA 上下文和分配器碎片 — 这与配置器采用的余量一致,您可以拿它来核对。这里没有上下文这一栏,因为根本没有内容可以填。
那张表格里有两行特别值得停下来细看,因为采购正是在这两处出错的。
FLUX.1 dev在 BF16 下需要27.6 GB。这超出了我们出租的所有24 GB 显卡,超出的幅度还让人觉得不太公平。这是图像工作中最常见的意外:网上人人都说“能在 4090 上跑”的模型,其实跑的是量化版本,只是没人说明。
Wan 2.1 video 14B在 BF16 下需要32.2 GB。只差零点几个 GB 就放不进 32 GB 的显卡。我们的余量刻意留得保守,通常把文本编码器移出显卡就能补回这点差距 — 但您不该为了一个四舍五入的误差去规划采购,诚实的答案是:视频需要 40 GB 以上。
每张显卡能放下什么
我们出租的每一台单卡服务器,以及每台服务器能容纳这两个高要求模型的最佳精度。带宽这一栏是为下一节准备的,请先读完那一节,再回头看这一栏。
| 节点 | 显卡显存 | 带宽 | FLUX.1 dev | Wan 2.1 video 14B | 每月 |
|---|---|---|---|---|---|
| NVIDIA L4 | 24 GB | 300 GB/s | FP8 | FP8 | $125/月 |
| NVIDIA RTX 4090 | 24 GB | 1,008 GB/s | FP8 | FP8 | $193/月 |
| NVIDIA RTX A6000 | 48 GB | 768 GB/s | BF16 / FP16 | BF16 / FP16 | $286/月 |
| NVIDIA RTX 5090 | 32 GB | 1,792 GB/s | BF16 / FP16 | FP8 | $335/月 |
| NVIDIA A100 PCIe | 40 GB | 1,555 GB/s | BF16 / FP16 | BF16 / FP16 | $392/月 |
| NVIDIA L40S | 48 GB | 864 GB/s | BF16 / FP16 | BF16 / FP16 | $714/月 |
| NVIDIA A100 PCIe | 80 GB | 1,935 GB/s | BF16 / FP16 | BF16 / FP16 | $1,091/月 |
| NVIDIA H100 PCIe | 80 GB | 2,000 GB/s | BF16 / FP16 | BF16 / FP16 | $1,469/月 |
绿色代表参考权重,琥珀色代表量化版本。量化扩散模型不像量化语言模型那样是免费的午餐:同样的提示词和随机种子,生成的图片会有肉眼可见的差异,通常会略微发软。在 FP8 上这笔交易划算,在 4 bits 上则要您自己权衡。
NVIDIA L4每月$125,是我们出租的服务器里最便宜、能放下FLUX.1 dev的那一台 — 以 FP8 格式论。能以完整 BF16 格式放下它的最便宜选择是NVIDIA RTX A6000,每月$286。 全精度下的视频在同一张显卡上就能起步。
人人都会读错的那一栏
接下来这部分,是图像工作和本站其他内容的分水岭,也是那张表格里最便宜的那张显卡其实是个陷阱的原因。
语言模型每生成一个 token,都要把所有激活的权重从显存里读取一遍,对每个权重做少量运算,然后写出一个 token。下一个 token,再下一个 token,都是同样的过程。显卡的大部分时间都花在等待显存带宽上,这就是为什么我们对语言模型的吞吐量估算,本质上就是带宽除以要读取的权重量,也是为什么在推理服务指南里,带宽这一栏才是真正重要的。
扩散步骤不是这样的。同样的权重会被反复应用在一个潜变量张量上二十到五十次,每一次都会对读取的每个字节做大量运算。权重常驻显存;真正的工作是在一个较小的张量上做卷积和注意力运算。这就把约束条件反过来了:图像模型受限于张量吞吐量,而不是显存带宽。由此带来三个后果,哪一个搞错了都要花钱。
“放得下”不等于“跑得快”
上表中入门级显卡以 FP8 格式容纳FLUX.1 dev,每月$125,这是一款为密集服务小模型而设计的低功耗部件,不是为了处理像素而生的。显存只是第一道筛选条件,从来都不是最后一道。
第二张显卡并不会让等待时间减半
ComfyUI 和 diffusers 流程都不会像 vLLM 拆分 transformer 那样,把一个去噪循环拆到多张 GPU 上运行。两张显卡跑的是两个独立的工作进程:每小时的图片产量翻倍,但每张图片所需的秒数不变。在这里,NVLink 帮不上什么忙。
数据中心显卡并不是理所当然的答案
对于语言模型的推理服务,HBM 显卡在决定成败的那个指标上占优势。而图像工作买的是张量吞吐量和显存,按每美元计算,为图形设计的显卡在这两项上给您的,都比它们在我们价格表上的位置显示的更多。
每美元带宽是一个替代指标 — 一个粗略的替代指标 — 用来衡量您在看的是哪一档显卡,在我们的产品目录里,NVIDIA RTX 5090和NVIDIA RTX 4090以明显优势分列第一、第二。这不是巧合,也不是我们在向您推销一笔划算买卖:它们正是为这类运算而设计的部件,之所以在我们的价格表上排名靠后,是因为市场按游戏用途、而不是按训练集群给它们定价。
分辨率、批处理与视频
权重是固定的。变化的是工作集,而它是随像素而不是随参数变化的。潜变量本身可以忽略不计 — 真正占满显存的,是在该分辨率下流经网络的激活值。
latent_elements = (H / 8) * (W / 8) * C * batch
# C = 4 latent channels on SDXL, 16 on SD 3.5 and FLUX.
# 1024x1024, batch 1, SDXL:
128 * 128 * 4 * 1 = 65,536 elements = 128 KB in FP16
# 2048x2048, batch 4, SDXL:
256 * 256 * 4 * 4 = 1,048,576 = 2 MB in FP16
# The latent is never the problem. The activations that pass through the
# network at that resolution are, and they scale by the SAME factor:
# doubling the edge quadruples the pixel count, and roughly quadruples
# the working set. Batch multiplies it linearly on top.
三个实际后果,按您会遇到的先后顺序排列:
- 显存峰值通常出现在 VAE 解码阶段,而不是采样循环。解码会一次性把潜变量还原到完整分辨率,正是这一瞬间,会在任务顺利运行了一分钟之后,触发显存不足的报错。分块解码可以解决这个问题,但会多花一点时间。
- 批处理才是用好大显卡的方式。如果模型用完后还剩 20 GB 显存,一次生成四张图片,远比生成一张留着余量划算 — 整批只需读取一次权重,这也是扩散流程中唯一表现得像带宽受限任务的地方。
- 视频增加的是一个维度,而不是一个百分比。Wan 2.1 video 14B会一起生成一整段帧,所以帧数会像高度和宽度一样,对显存占用做乘法。这就是为什么一个 140 亿参数的视频模型,比一个 120 亿参数的图像模型需要大得多的显卡,也是为什么上面的权重表格里,这一行的数字比其他任何一行都更失真。
启动 ComfyUI
ComfyUI 是我们可以在服务器交付前预先写入的镜像之一,所以这一节内容您可以选择跳过。如果您更愿意自己动手搭建,无非是一个容器加一条隧道。
$ ssh root@203.0.113.42
$ nvidia-smi --query-gpu=name,memory.total --format=csv
# Checkpoints, LoRAs, ControlNets and VAEs on the fast local NVMe.
# This directory is the reason you are renting by the month.
$ mkdir -p /scratch/comfy/models
$ df -h /scratch
$ docker run -d --name comfy --restart unless-stopped \
--gpus all --ipc=host \
-v /scratch/comfy:/data \
-p 127.0.0.1:8188:8188 \
your-comfyui-image --listen 0.0.0.0 --port 8188
# From YOUR machine, not the server: a tunnel, then a local browser tab.
$ ssh -N -L 8188:127.0.0.1:8188 root@203.0.113.42
# http://127.0.0.1:8188
127.0.0.1:。
ComfyUI 没有登录、没有密码,也没有用户的概念。一旦发布在公网地址上,它就是您 GPU、模型库以及底层文件系统的图形界面,谁扫到这个端口都能用 — 而扫描往往几分钟内就会发生。请把它绑定到 loopback,再通过 SSH 访问。文档对防火墙设置和使用的第一个小时有更详细的说明。
一个月能换来什么
图像工作适合按月租用服务器,原因不在 GPU 的价格,而在素材库。一套像样的 ComfyUI 安装,会包含几百 GB 您精心整理过、不想再重新下载一次的检查点、LoRA、ControlNet、放大模型和 VAE。
这才是该比较的那一栏,也是按小时计费的平台不会写进标价里的那一项。在那些平台上,磁盘是单独计费的一项,按每月每 GB 计价,实例停机时它照样计费 — 要么您就把它删掉,等下次开工时再重新下载几百 GB。
这正是按小时计费的收支平衡一文所描述的那个陷阱,只是换成了图像工作的样子。按秒计费看起来很安全,因为您随时可以停止实例,但没有人真的会停止它,因为一停就意味着丢失素材库。诚实的问题不是“我会生成多少小时”,而是“这台服务器需要存在多少小时”—对任何拥有精心整理的模型目录的人来说,答案都是全部时间。付款只需一笔加密货币转账,没有开通费,而且我们没有问过您是谁:提示词、您训练的 LoRA,以及还没交付的客户作品,都留在一台只有您拥有 root 权限的服务器上。
什么情况下不该租显卡
我们不希望您租了之后才后悔,所以下面列出答案是“不”的几种情况。
您每周只生成几十张图片。托管端点每月只需几美元,也不用搭上下午的时间。等到排队、分辨率限制或内容规则开始替您的工作做主时,再回来看这篇文章。
您想要最新的闭源模型。最知名的图像服务并不发布权重。本页任何一台服务器都跑不了它们,再多显存也无济于事。
您想让单张图片生成更快,于是在考虑多 GPU 节点。不如换一张更快的单卡。多余的显卡给您的是并行的工作进程,并行工作进程很有价值 — 但对盯着一条进度条的人来说没有意义。
您还没定下用哪个模型。先按小时租用,直到确定自己跑的是 1024 px 下的SDXL 1.0,还是每段五秒的Wan 2.1 video 14B。这两个答案每月相差$161,没必要靠猜。
除此之外的所有场景 — 您搭建好的素材库、不断调整的流程、通宵运行的批处理任务,或者本来就不该离开您自己硬盘的工作 — 按月租用一张独享显卡才是更便宜、更省心的安排。配置器会在您付款之前,针对产品目录里的每个节点,告诉您心里想跑的模型能不能放进一张显卡。