这篇教程面向完全没碰过 Linux 和 GPU 服务器的人:每一步都给命令,每一条命令都解释在干什么,并标注了新手最容易翻车的三个坑(系统盘写满、显存 OOM、忘关机持续扣费)。
- 先搞清楚你要部署的是什么
Qwen-Image-2.1 是阿里通义千问团队在 2026 年 9 月下旬开源的图像生成 + 图像编辑一体化模型,视觉生成分支为 7B 参数,文本编码器换成了 Qwen3-VL 8B。官方要点:
| 能力 | 说明 |
|---|---|
| 文生图 | 支持高分辨率输出,官方示例默认 2048×2048、40 步 |
| 图像编辑 | 单次最多接受 10 张参考图 |
| 原生透明通道 | 直接输出 RGBA,不用再挂抠图插件 |
| 许可 | 开源权重,可免费下载使用 |
| 加载入口 | Hugging Face 与 ModelScope 同名 ID:`Qwen/Qwen-Image-2.1` |
| 生态 | ComfyUI Day-0 原生支持;Diffusers 需装 git 主线版本 |
一个关键前提:满血 BF16 权重的体积在 30GB 量级,推理时显存占用逼近 30GB。这个前提决定了后面所有的选型和避坑动作。
- 算清硬账:为什么是云端,不是家里那张旧显卡
很多人第一反应是"买张显卡放家里跑最划算"。用真实数据对比一次:
| 方案 | 前期投入 | 单张出图 | 显存风险 | 环境成本 |
|---|---|---|---|---|
| 本地 8GB 卡(强行量化 + offload 到内存) | 0(已有) | 1~2 分钟 | 高,频繁 OOM / 爆虚拟内存 | PyTorch、CUDA、cuDNN 版本玄学 |
| 本地 24GB 卡(4090) | 1.3~1.5 万元 | 约 20 秒 | 低 | 拉 30GB 权重需要海外线路 |
| **云端 32GB 按量租用** | **0,扫码充 5 元** | **约 31 秒** | **有 2~4GB 安全冗余** | **平台自带 CUDA 镜像,开箱即用** |
云端真正的价值不是"快",而是把三件最痛的事直接抹掉了:不用装环境、不用解决下载线路、不用担心显存差一点点。
而本地 8GB 卡跑 7B 级图像模型,权重必然要往系统内存切片,速度掉到分钟级,风扇狂转还动不动崩——这条路能通,但不适合新手第一篇教程。
- 选平台:四家横向对比,纯消费者视角
| 平台 | 支付门槛 | 国内线路 | 关机保留 | 时租(32GB 档) | 适合谁 |
|---|---|---|---|---|---|
| **AutoDL** | 微信扫码,5 元起充 | ModelScope + 清华源专线,50~100MB/s | 免费保留 15 天,支持无卡开机 | 约 1.5~1.8 元 | 个人尝鲜、独立开发者(本教程用它) |
| 恒源云 / 矩池云 | 扫码,但起充 10~20 元且需实名 | 尚可 | 免费保留 7 天 | 视卡型 | 学生群体,高校节点多 |
| 阿里 PAI / 腾讯 TI | 需绑卡 + 企业实名 | 极快 | 停机仍按日收磁盘费 | 6~15 元起(A10/V100) | 已有阿里云生态、要做正式服务 |
| RunPod / vast.ai | Visa/Mastercard,美元结算,起充 $10~25 | 拉国内站模型很慢,WebUI 延迟 180ms+ | 未彻底释放会持续扣卷存储费 | 视卡型 | 人在海外、要 A100/H100 |
综合首推 AutoDL,原因只有三条,都是新手会真切碰到的:扫码 5 元起充不用信用卡;内置 ModelScope 高速专线,拉 30GB 权重不用梯子;关机免费保留环境 15 天,下次开机一切都在。
如果你本来就要接生产流量,PAI 的 ComfyUI 模型服务部署是更正规的路子,只是对个人尝鲜来说成本结构不友好。
有别的更合适的平台,欢迎告诉我,我把这张表更新掉。
- 选卡:别一进来就冲 4090
进算力市场你会发现 4090 长期显示 0 张空闲,价格还被炒到 2.2 元以上/小时。
| 卡型 | 时租 | 显存 | 单张 1024×1024 / 30 步 | 结论 |
|---|---|---|---|---|
| RTX 4090 | 2.2 元+ | 24GB | 约 20 秒 | 极致算力卡皇,但常年缺货、显存刚好卡在满血权重线上 |
| **vGPU-32GB(RTX 4080 SUPER 32G 显存版)** | **约 1.58 元** | **32GB** | **约 31 秒** | **本教程推荐:便宜 30%,多出的显存是安全冗余,现货充足免排队** |
| 24GB 档 + FP8/GGUF 量化 | 更低 | 24GB | 更快 | 见第 8 节,显存不够时的降精度方案 |
核心判断:满血 BF16 显存占用逼近 30GB,24GB 卡跑满血是有风险的。多花的等待时间和爆显存的报错,比每小时省下的 0.6 元贵得多。
- 开机:实例创建与基础镜像
- 打开 AutoDL 控制台,进入「算力市场」;
- 区域勾选库存充足的西北 B 区,GPU 型号勾选 vGPU-32GB;
- 镜像选官方自带环境的基础镜像:PyTorch 2.5 / Python 3.12 / CUDA 12.4(13.x 亦可);
- 计费方式选按量计费,点击「立即创建」。
创建成功后状态变为绿色「运行中」,控制台会给出专属 SSH 命令与端口,形如:
ssh -p <你的端口> root@region-xx.autodl.com
连入服务器有两条路,任选其一:
- 零配置:控制台点「JupyterLab」→ 打开 Web 终端(Terminal),直接在网页里敲命令;
- 本地终端:用上面那条 SSH 命令连入(推荐配好密钥,或配合 XShell/MobaXterm)。
- 环境:两行命令装完
# 1. 激活平台自带的 conda 环境
source /root/miniconda3/etc/profile.d/conda.sh && conda activate base
# 2. 开启平台学术加速,并安装支持 Qwen-Image-2.1 的 diffusers 主线 + 推理依赖
source /etc/network_turbo
pip install -q git+https://github.com/huggingface/diffusers.git \
transformers accelerate sentencepiece protobuf torchvision gradio modelscope
三条说明,避免你踩坑:
pip install -q git+...diffusers是必需的。Qwen-Image-2.1 太新,PyPI 上的稳定版还没有对应 pipeline 类,官方 README 给的也是这条 git 安装命令。装错版本的典型症状是ImportError: cannot import name 'QwenImage21Pipeline',解决办法就是重跑这行升级。source /etc/network_turbo是 AutoDL 的学术加速开关,只影响 GitHub / Hugging Face 拉取;退出加速用source /etc/network_turbo_close。- 不需要手动装 CUDA 和 cuDNN——基础镜像里已经和 PyTorch 对齐了。这也是我们选平台镜像而不是自己从零搭的原因。
验证一下:
python -c "import torch, diffusers; print(torch.__version__, torch.cuda.get_device_name(0), diffusers.__version__)"
看到显卡名出现在中间,说明 GPU 可用。
- 第一件事不是下载,是保命:把缓存指到数据盘
新手在云上部署大模型最常见的报错:
OSError: Not enough disk space / No space left on device
原因很直白:AutoDL 系统根目录 / 默认只有 30GB,而满血权重体积在 30GB 量级,直接下到默认缓存目录必然撑爆系统盘,而且爆完之后连系统都卡。
平台额外挂了 50GB 免费临时数据盘 /root/autodl-tmp/ ,正确做法是把两个缓存路径都指过去:
export MODELSCOPE_CACHE=/root/autodl-tmp/modelscope_cache
export HF_HOME=/root/autodl-tmp/hf_cache
mkdir -p /root/autodl-tmp/modelscope_cache
注意:export 只在当前 shell 会话生效。 关掉终端再进来要重新执行,否则缓存又会写回系统盘。想一劳永逸就写进 /root/.bashrc:
cat >> /root/.bashrc <<'EOF'
export MODELSCOPE_CACHE=/root/autodl-tmp/modelscope_cache
export HF_HOME=/root/autodl-tmp/hf_cache
EOF
- 路线 A:脚本出图(最快验证跑通)
新建文件 /root/autodl-tmp/gen.py:
import os
import torch
# 铁律:强制把缓存落在 50G 数据盘,杜绝系统盘写满
os.environ["MODELSCOPE_CACHE"] = "/root/autodl-tmp/modelscope_cache"
os.environ["HF_HOME"] = "/root/autodl-tmp/hf_cache"
from modelscope import snapshot_download
from diffusers import QwenImage21Pipeline
# 1. 走国内高速通道缓存权重(免梯子,实测 50~100MB/s)
print("正在通过 ModelScope 通道拉取 Qwen-Image-2.1 完整权重...")
model_dir = snapshot_download("Qwen/Qwen-Image-2.1",
cache_dir="/root/autodl-tmp/modelscope_cache")
# 2. 载入满血 BF16 管道(显存占用约 28~31GB,32GB 卡可承受)
pipe = QwenImage21Pipeline.from_pretrained(model_dir, torch_dtype=torch.bfloat16).to("cuda")
# 3. 出图:30 步 + true_cfg 4.0,直接拿 RGBA 透明底
prompt = ("This is an RGBA image with transparency. A high-fashion futuristic "
"cyberpunk editorial portrait, translucent holographic trench coat, "
"glowing neon cyan circuit etchings, wet glass reflections, clean "
"transparent background, 8k, award-winning aesthetics")
image = pipe(prompt=prompt,
num_inference_steps=30,
true_cfg_scale=4.0,
width=1024, height=1024).images[0]
image.save("qwen_rgba.png") # PNG 保留 alpha 通道
print(f"已保存 qwen_rgba.png,模式={image.mode},尺寸={image.size}")
运行:
cd /root/autodl-tmp && python gen.py
第一次跑会先下载权重(几分钟,取决于线路),之后直接复用缓存。脚本会加载模型再出图,冷启动到出图之间那段时间显存和 GPU 利用率拉满是正常的。
出图后用 image.mode 应当是 RGBA——这就是原生透明底的证据,不需要任何抠图插件。
- 路线 B:Gradio WebUI(像 Midjourney 一样点鼠标出图)
新建 /root/autodl-tmp/app.py:
import os
import torch
import gradio as gr
os.environ["MODELSCOPE_CACHE"] = "/root/autodl-tmp/modelscope_cache"
os.environ["HF_HOME"] = "/root/autodl-tmp/hf_cache"
from modelscope import snapshot_download
from diffusers import QwenImage21Pipeline
model_dir = snapshot_download("Qwen/Qwen-Image-2.1",
cache_dir="/root/autodl-tmp/modelscope_cache")
pipe = QwenImage21Pipeline.from_pretrained(model_dir, torch_dtype=torch.bfloat16).to("cuda")
def generate(prompt, steps, cfg, width, height):
return pipe(prompt=prompt,
num_inference_steps=int(steps),
true_cfg_scale=float(cfg),
width=int(width), height=int(height)).images[0]
with gr.Blocks(title="阿里 Qwen-Image-2.1 极速出图大厅 (RTX 4080 SUPER 32GB)") as demo:
gr.Markdown("# 阿里 Qwen-Image-2.1 极速出图大厅\n"
"**实机环境:AutoDL 西北B区 · vGPU-32GB · Diffusers 原生推理**")
with gr.Row():
with gr.Column():
prompt_input = gr.Textbox(
label="Prompt(支持原生 RGBA 透明通道)",
value="This is an RGBA image with transparency. A high-fashion futuristic "
"cyberpunk editorial portrait, clean transparent background, 8k",
lines=4)
steps_slider = gr.Slider(10, 50, value=30, step=1, label="去噪步数 (Inference Steps)")
cfg_slider = gr.Slider(1.0, 10.0, value=4.0, step=0.5, label="引导强度 (True CFG Scale)")
width_slider = gr.Slider(512, 2048, value=1024, step=64, label="宽")
height_slider = gr.Slider(512, 2048, value=1024, step=64, label="高")
btn = gr.Button("立即出图 (Generate)", variant="primary")
with gr.Column():
output_img = gr.Image(label="生成结果预览")
btn.click(generate,
inputs=[prompt_input, steps_slider, cfg_slider, width_slider, height_slider],
outputs=output_img)
# 只监听本机回环,靠 SSH 隧道访问,不要把端口裸奔到公网
demo.launch(server_name="127.0.0.1", server_port=6006)
启动:
python /root/autodl-tmp/app.py
怎么在本地浏览器打开
- 方法一(最省事) :AutoDL 控制台实例列表 → 右侧「自定义服务」→「访问 6006 端口」,直接打开网页工作台。
- 方法二(本地极速通道) :本地终端建隧道,然后浏览器访问
http://localhost:6006:
ssh -CNg -L 6006:127.0.0.1:6006 root@<你的SSH域名> -p <你的SSH端口>
安全提醒:网上很多教程会让你写
server_name="0.0.0.0"。按量计费的云主机 IP 是公网可达的,WebUI 又没有任何鉴权,端口暴露出去等于把 GPU 免费送给扫描器,别人拿去刷图扣的是你的余额。上面的脚本用127.0.0.1+ SSH 隧道(或 AutoDL 自定义服务入口)访问;确实需要监听全网时,务必给 Gradio 加auth=("user", "强密码")。
- 实测数据长什么样
参考原教程在 AutoDL 西北 B 区 vGPU-32GB(RTX 4080 SUPER 32GB)上的联调结果:
| 指标 | 实测值 |
|---|---|
| 分辨率 / 步数 | 1024×1024 / 30 步 |
| 引导强度 | true\_cfg\_scale = 4.0 |
| 单张耗时 | **31.73 秒**(约每秒 1 步) |
| 显存占用 | 稳定 28.5~31.2GB |
| OOM | 全程 0 次 |
| 对比 4090 | 约慢 10 秒,换来满血精度与零爆显存 |
这些数字是单次实测,你的结果会受机房负载、分辨率、步数影响。想追求秒级出图,可以再叠加注意力优化与步数压缩(Turbo/Lightning 类方案),但那属于另一篇教程。
参数起点建议:
num_inference_steps:30(够用)→ 40(细节更满,官方示例口径);true_cfg_scale:4.0 是稳妥起点,文字排版类需求可试 4.5~5.0;- 透明底:Prompt 里显式写 RGBA / transparent background,输出保存为 PNG 才留得住 alpha。
- 显存只有 24GB 或更低?走量化路线
满血 BF16 不是唯一选择。社区量化版本可直接用:
| 权重 | 仓库 ID | 显存门槛 | 说明 |
|---|---|---|---|
| 满血 BF16 | `Qwen/Qwen-Image-2.1` | 约 24~32GB | 本文主线,32GB 卡无压力 |
| FP8 | `unsloth/Qwen-Image-2.1-FP8` | 约 24GB | 24GB 卡跑满血画质的现实选择 |
| GGUF Q4 | `unsloth/Qwen-Image-2.1-GGUF` | 约 11GB | ComfyUI 加载,12~16GB 卡可用;CPU offload 时明显变慢 |
改法只有一行,把脚本里的 pipeline 来源换掉即可:
pipe = QwenImage21Pipeline.from_pretrained("unsloth/Qwen-Image-2.1-FP8",
torch_dtype=torch.bfloat16).to("cuda")
如果你更习惯图形界面:Qwen-Image-2.1 在 ComfyUI 是 Day-0 原生支持,权重可从 Comfy-Org/Qwen-Image-2.1 取,按 diffusion_model / text_encoders / vae 分目录放进 ComfyUI 的 models/ 下对应子目录即可,无需额外自定义节点。注意:ComfyUI 走 GGUF 时的文件名与目录摆放,请以你下载的量化仓库内 README 为准——不同上传者切的文件粒度不一样,写错目录的典型症状是加载时提示找不到 UNet。
- 玩完一定要收尾:这是唯一会真花钱的地方
新手最容易犯的致命失误:关掉网页就走人,以为没事了,后台按秒持续扣费。
- 点「关机」→ GPU 算力立刻停止计费,状态变为「已关机(GPU 充足)」;
- 系统盘和 50GB 数据盘免费完整保留 15 天,配好的环境、下载好的权重、跑出来的图全都在;
- 第二天只想下载图片或改代码:用「无卡开机」,每小时几分钱,进 JupyterLab 拿文件即可,千万别为了传图开 GPU。
成本对账(本教程全流程实测口径)
| 项目 | 金额 |
|---|---|
| 微信扫码充值 | 5.00 元 |
| 实际占用 GPU:创建实例 + 下权重 + 配环境 + 跑通出图与 WebUI 联调,约 15 分钟 | 约 0.40 元 |
| 账户剩余 | 4.60 元 |
不到 4 毛钱,跑通 7B 原生透明通道大模型的全链路——代价对比花一万五换电脑,信息差和工具链的价值就在这。
- 故障速查表
| 症状 | 真实原因 | 处理 |
|---|---|---|
| `No space left on device` | 权重写进了 30GB 的系统盘 | 见第 6 节,重设 `HF_HOME` / `MODELSCOPE_CACHE` 后删掉 `~/.cache` 重来 |
| `ImportError: cannot import name 'QwenImage21Pipeline'` | diffusers 版本过旧 | `pip install -U git+https://github.com/huggingface/diffusers.git` |
| `CUDA out of memory` | 显存不足,或同时开了两个脚本 | 先确认没有残留 python 进程(`nvidia-smi` 查,`pkill -f python` 清);仍不足就降到 1024×1024 或换 FP8/GGUF |
| 下载只有几百 KB/s | 没开学术加速,或走了 HF 而不是 ModelScope | `source /etc/network_turbo`,优先用 `modelscope.snapshot_download` |
| 出图 1~2 分钟一张 | 权重被 offload 到内存,显存不够 | 换 32GB 卡,或降低量化档次的同时确认权重全在显存 |
| WebUI 打不开 | 隧道没建 / 端口没通 / 服务已退出 | 确认脚本还在跑;重建 `ssh -L`;用控制台「自定义服务」入口交叉验证 |
| 余额掉得飞快 | 忘关机 | 控制台看实例状态,立刻关机;调试期用开机-关机配合无卡开机 |
- 一句话总结流程
AutoDL 西北B区 + vGPU-32GB + PyTorch2.5/CUDA12.4 镜像
→ source /etc/network_turbo && pip install git+diffusers
→ export HF_HOME / MODELSCOPE_CACHE 到 /root/autodl-tmp
→ modelscope 拉 Qwen/Qwen-Image-2.1
→ QwenImage21Pipeline(bf16) 出 RGBA 图 / 或 Gradio WebUI
→ 玩完立刻关机,传图用无卡开机
参考资料
- 官方仓库与 Diffusers 用法:github.com/QwenLM/Qwen…
- 官方博客(能力与参数说明):www.alibabacloud.com/blog/qwen-i…
- Unsloth 量化运行文档(FP8 / GGUF 显存门槛):unsloth.ai/docs/zh/mo-…
- 阿里云 PAI 的 ComfyUI 模型服务部署(企业路线):help.aliyun.com/zh/pai/use-…
适合没有本地显卡、想低成本尝鲜图像生成与编辑的开发者。选对平台与显存规格是关键,避坑清单比命令本身更值钱。