跳到主要内容

文生图 · 扩散 Transformer

HunyuanDiT 本地部署,14GB 显存就能画中文

1.5B 的中文 DiT 主干,fp16 出图峰值 14GB,量化路线 6GB 起跑。RTX 3090 24GB $0.193/卡·时,按秒计费,从开机到第一张图不到 0.2 美元。

HunyuanDiT 是腾讯混元 2024 年 5 月开源的文生图扩散 Transformer(论文 arXiv:2405.08748),主干只有 1.5B 参数,却是第一批把中文语义吃得很细的开源 DiT——「渔舟唱晚」「青花瓷风格」这类词它不需要先翻译成英文再画。仓库现在挂在 github.com/Tencent-Hunyuan/HunyuanDiT,v1.2 是当前主线权重,Diffusers、ComfyUI 都已原生支持。

它省显存和它吃显存,原因是同一个:DiT 主干很轻,但前面挂了两个文本编码器——一个 350M 的双语 CLIP,一个 1.6B 的多语 mT5(t5-v1_1-xxl 系)。VAE 用的是 sdxl-vae-fp16-fix,所以 fp16 直接跑不会出黑图,不用像原版 SDXL 那样折腾 VAE。官方实测 batch=1 出 1024×1024,A100 峰值 11GB,RTX 3090/RTX 4090 峰值 14GB;把 mT5 压到 8-bit 再上 bitsandbytes,6GB 的 Ampere 卡也能跑完整条链路。

得说清楚混元图像线的现状:2025 年 9 月的 HunyuanImage 2.1 是 17B、只出 2K 图(出 1K 会有伪影),FP8 加 CPU offload 才刚好塞进 24GB;同月的 HunyuanImage 3.0 是 80B MoE、13B 激活的自回归统一框架,官方起步就要 3×80GB。HunyuanDiT 没有被废弃,它的位置反而更清楚了——一张消费级卡、约 9GB 权重、中文提示词直出,ControlNet(canny/depth/pose)、LoRA、IP-Adapter 生态齐全,是做中文出图业务最便宜的自托管起点。

01 —

版本与显存对照

以下显存数字全部来自官方仓库 batch=1 的实测表,不是估算。

版本参数量显存上下文说明
HunyuanDiT-v1.2 / v1.2-Diffusers1.5B(DiT 主干)fp16 峰值 11GB(A100)/14GB(RTX 3090·4090)1024×1024,10 档分辨率桶当前主线权重,中文语义最稳,新项目直接从这个版本起步。
HunyuanDiT-v1.2-Diffusers-Distilled1.5B同 v1.2,fp16 峰值约 14GB25 步 / 1024×1024蒸馏版,支持 25 步出图,官方口径在 NVIDIA GPU 上提速约 50%;另有 TensorRT 版提速约 47%。批量出图首选。
HunyuanDiT-v1.11.5Bfp16 峰值约 14GB(消费卡)1024×1024相对 v1.0 的核心改动是压掉画面过饱和,老 LoRA 生态仍有不少挂在 v1.1 上。
DialogGen + HunyuanDiT(提示词增强全链路)7.0B + 1.5Bfp16 峰值 32GB;加 --load-4bit 降到 22GB多轮对话改写 → 出图DialogGen 是负责把口语提示词改写成精细描述的多模态大模型,不需要就加 --no-enhance,否则显存直接翻三倍。
lite/inference.py 低显存路线1.5B(蒸馏权重)约 6GB(bitsandbytes 量化 + mT5 8-bit 加载)1024×1024需要 PyTorch 2.7.1 以上,且卡必须是 Ampere 及以上架构(RTX 3070/3080/4080/4090、A100)。

02 —

该租哪张卡

按官方峰值显存对号入座,价格是 NexGPU 每卡每小时的公开单价。

  • 单卡 fp16 出图、效果验证、跑 1024×1024

    RTX 3090 24GB$0.193/卡·时

    官方在 3090/4090 上实测峰值 14GB,24GB 显存留足余量,连量化都不用配,而且 Ampere 架构同时满足 Flash Attention v2 和 6GB lite 路线的硬性要求。

  • 批量出图、挂 ControlNet、开 torch.compile 压延迟

    RTX 4090 24GB$0.540/卡·时

    Ada 架构 fp16 吞吐显著高于 3090,配蒸馏版 25 步跑量最划算,canny/depth/pose 三个 ControlNet 加载后仍在 24GB 之内。

  • DialogGen 提示词增强全开,不做 4bit 降级

    RTX 5090 32GB$0.723/卡·时

    7B 的 DialogGen 与 DiT 同时常驻的官方峰值正好是 32GB,这张卡不用 --load-4bit 就能承住完整的多轮改写链路。

  • LoRA 微调、全参数微调、ControlNet 训练

    A100 PCIE 80GB$0.824/卡·时

    官方全参数训练最低 20GB、推荐 30GB 以避免显存 offload;A100 80GB 与 A6000 48GB($0.817)价差不到一分钱,多出的显存直接换成更大 batch。

03 —

四步跑通

在 NexGPU 的 PyTorch 预置镜像上,从开机到第一张图通常四十分钟以内。

  1. 01

    开卡、拉仓库、装依赖

    控制台选一张 RTX 3090 24GB,镜像从 2,000+ 预置镜像里挑 PyTorch(CUDA 12.x)。仓库要求 CUDA 11.7 以上、推荐 12.0 以上、Linux 环境;打算用 --infer-mode fa 走 Flash Attention v2 的话,CUDA 需要 11.6+ 且显卡是 Ampere 及以上。SSH、Jupyter、Web 终端三条路都能进。

    git clone https://github.com/Tencent-Hunyuan/HunyuanDiT && cd HunyuanDiT && pip install -r requirements.txt
  2. 02

    下权重

    t2i/model 目录下 pytorch_model_ema.pt 约 6GB、pytorch_model_module.pt 约 3GB,再加 mT5(1.6B)、双语 CLIP(350M)、sdxl-vae-fp16-fix(83M),整包按 10GB 量级准备磁盘。存储按 $0.414/GB·月 中位价单独计费,权重留在卷里比每次重新下载划算得多。

    huggingface-cli download Tencent-Hunyuan/HunyuanDiT-v1.2 --local-dir ./ckpts
  3. 03

    出第一张图

    --no-enhance 是这一步的关键:不加它会连带加载 7B 的 DialogGen,显存峰值从 11GB 直接跳到 32GB。--image-size 只在官方那十档分辨率桶里选,随手填一个 1344×768 构图会散。

    python sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --no-enhance --image-size 1280 768
  4. 04

    接进业务:Diffusers 或 Gradio

    要做服务化就直接用 diffusers 的 HunyuanDiTPipeline,蒸馏版 25 步即可;想先给团队一个可点的界面,跑 python app/hydit_app.py --infer-mode fa 起 Gradio。显存吃紧时加 pipeline.transformer.enable_forward_chunking(chunk_size=1, dim=1) 换时间。

    python -c "import torch; from diffusers import HunyuanDiTPipeline; p=HunyuanDiTPipeline.from_pretrained('Tencent-Hunyuan/HunyuanDiT-v1.2-Diffusers-Distilled', torch_dtype=torch.float16).to('cuda'); p('一个宇航员在骑马').images[0].save('out.png')"

一张图到底多少钱

拿官方在 A100 80GB 上的实测当基准:HunyuanDiT-v1.2 默认 50 步出一张 1024×1024,不开 torch.compile 是 20.57 秒,开 max-autotune 编译后 12.47 秒。按 NexGPU A100 PCIE 80GB $0.824/卡·时 折算——未编译 3600÷20.57≈175 张/小时,单张 0.824÷175≈$0.0047;编译后 3600÷12.47≈289 张/小时,单张降到 0.824÷289≈$0.0029。编译本身要花几分钟,跑够两百张就回本。如果只是验证效果,RTX 3090 24GB $0.193/卡·时 更合适:14GB 峰值它装得下,拉镜像 + 下 9GB 权重 + 跑通首图算 40 分钟,0.193×0.67≈$0.13;接着挂 6 小时批量出图也才 0.193×6≈$1.16。要做 LoRA 微调,官方建议 30GB 以上显存,A100 PCIE 80GB 连跑 8 小时是 0.824×8≈$6.59,而仓库自带的青花瓷 rank64 示例是千步量级,通常根本用不满。计费按秒计量、按小时计价,没有起租时长、没有开通费、不用申请配额;实例一停计算就停止计费,只有存储卷会继续按 $0.414/GB·月 计到你销毁为止。

04 —

常见问题

HunyuanDiT 到底需要多大显存?6GB 显卡真的能跑吗?

官方 batch=1 的实测表写得很明确:只跑 HunyuanDiT,A100 峰值 11GB,RTX 3090/RTX 4090 峰值 14GB。要压到 6GB 得走 lite/inference.py 那条路——bitsandbytes 量化配合 mT5 8-bit 加载,需要 PyTorch 2.7.1 以上,而且卡必须是 Ampere 及以上(RTX 3070/3080/4080/4090、A100)。与其在 6GB 上跟 OOM 拉扯,NexGPU 的 RTX 3090 24GB 只要 $0.193/卡·时,14GB 峰值放进 24GB 里,什么量化参数都不用调。

混元都出到 HunyuanImage 3.0 了,现在还值得部署 HunyuanDiT 吗?

这是三个不同量级的东西。HunyuanImage 2.1 是 17B、只支持 2K 出图(强出 1K 会有伪影),FP8 加 CPU offload 才刚好 24GB;HunyuanImage 3.0 是 80B MoE、13B 激活的自回归模型,官方最低要求 3×80GB,Instruct 版要 8×80GB。HunyuanDiT 是 1.5B、单张消费卡、约 9GB 权重,ControlNet 和 LoRA 生态成熟,做量大价廉的中文出图仍然是最省的一档。三条线在 NexGPU 都开得起来:3090/4090 跑 DiT,RTX 5090 32GB 或 A6000 48GB 跑 2.1,H200 141GB 多卡上 3.0,单节点最多 14 张卡、最高 2,152GB 显存。

v1.0、v1.1、v1.2 和蒸馏版该选哪个?

v1.1 相对 v1.0 的核心改动是压掉画面过饱和,v1.2 是当前主线,新项目直接上 v1.2 就好。批量出图选 HunyuanDiT-v1.2-Diffusers-Distilled,25 步即可成图,官方口径在 NVIDIA GPU 上提速约 50%,另有 TensorRT 版提速约 47%。想再快就叠 torch.compile:官方在 A100 80GB 上,默认 50 步是 20.57 秒/张,max-autotune 编译后 12.47 秒/张。NexGPU 的 A100 PCIE 80GB 是 $0.824/卡·时,这两个数字直接就是你的单张成本基准。

HunyuanDiT 可以商用吗?许可有什么坑?

权重按 Tencent Hunyuan Community License Agreement 发布,允许商用,但有两条硬约束需要自己核对 LICENSE.txt 原文:一是许可地域为「全球,但不含欧盟」,协议里明写不适用于欧盟;二是在版本发布日的前一个自然月,你名下所有产品与服务的月活合计超过 1 亿的,必须单独向腾讯申请授权。算力这一侧倒是没有审批环节——NexGPU 不需要提工单申请配额,注册后直接开卡,51 个国家和地区、1,175 个已验证可租节点,落地区域自己挑。

为什么我一改分辨率画面就崩?

HunyuanDiT 是多分辨率训练的,但只训了固定几档桶。diffusers 里 use_resolution_binning 默认为 True,会把你的尺寸吸附到最近的合法档:1024×1024、1280×1280、1024×768、1152×864、1280×960、768×1024、864×1152、960×1280、1280×768、768×1280。关掉它再传 1344×768,构图就会散。另一个高频坑是忘了 --no-enhance——DialogGen 会悄悄把提示词重写一遍,画出来的和你写的不是一回事,同时显存从 11GB 蹿到 32GB。想一次把十档桶都试一遍,NexGPU 按秒计费,开四张 RTX 4090 24GB 并行跑一小时也就 $2.16。

LoRA 微调 HunyuanDiT 需要什么卡?

官方口径是全参数训练最低单卡 20GB、推荐 30GB 左右以避免显存 offload;LoRA 走仓库里的 lora/train_lora_with_fa.sh,自带 porcelain(青花瓷)示例数据集,rank64、千步量级就能看出风格迁移。20GB 那条线意味着 24GB 卡是临界状态,真跑起来建议 RTX A6000 48GB($0.817/卡·时)或 A100 PCIE 80GB($0.824/卡·时)——两者价差不到一分钱,直接选 A100 更省心。NexGPU 按秒计量,训练一停计算就停止计费,训完的 LoRA 权重留在存储卷里随时挂回推理实例。

开始使用 NexGPU

无论你是企业研发团队还是独立开发者,都可以在几分钟内跑起第一个任务。

注册即可浏览全网实时价格,无需绑定支付方式。