AuraFlow 由 fal 与 @cloneofsimo(Simo Ryu)、@isidentical 一起做出来,是一条纯 flow matching 的文生图路线。它的骨架从 Stable Diffusion 3 出发,但没有照抄 MMDiT:官方把绝大多数联合注意力块换成了更宽的单塔 DiT 块,最终配置是 4 层 MMDiT + 32 层 single DiT,一共 36 层,隐藏维 3072(12 头 × 256 head dim),换来大约 15% 的 MFU 提升。文本侧不用 CLIP,直接上 EleutherAI/pile-t5-xl 的编码器(joint_attention_dim 2048),VAE 沿用 SDXL 那颗 4 通道的 AutoencoderKL,采样器是 FlowMatchEulerDiscreteScheduler,默认 50 步、guidance_scale 3.5。训练过程用了 muP 做学习率跨尺度迁移,走 256 → 512 → 1024 三段升分辨率,GenEval 打到 0.64,配上提示词增强管线能到 0.703。
说点实话:官方版本线停在 v0.3。fal/AuraFlow-v0.3 的权重从 2024 年 8 月之后就没再动过,README 上到今天还写着 beta。但这条线没死在生态里——diffusers 在 2025 年 4 月合进了 AstraliteHeart 提交的 AuraFlowTransformer2DModel 重写,让 torch.compile 在变分辨率下不再反复重编译;city96 出了完整的 GGUF 量化梯队;p1atdev 有 fp8_e4m3fn 和 bnb-nf4 版本;SimpleTuner 专门给 AuraFlow 写了一份 quickstart,里面那条「adamw_bf16 最稳」的建议直接来自 Pony Flow 作者。原因很简单:在需要真正拥有模型权重、拿去商用、拿去改架构的场景里,代码和权重双 Apache 2.0 的大参数量文生图模型没几个,AuraFlow 是其中最好啃的一块底座。
所以「AuraFlow 需要多大显存」的答案很硬:fp16 下 transformer 分片 9.94GB + 3.77GB = 13.7GB,Pile-T5-XL 编码器再吃 2.95GB,加上 VAE,官方那个单文件 aura_flow_0.3.safetensors 就是 16.5GB。这意味着 16GB 的卡在不做量化、不开 offload 的前提下根本装不下,24GB 才是真正的地板。想省显存有现成的梯子:GGUF 从 Q8_0 的 7.35GB 一路降到 Q2_K 的 2.4GB,Q4_K_M 是 4.05GB 的甜点位。NexGPU 上 RTX 3090 24GB 每卡时 $0.193,按秒计费、没有起租时长、没有配额申请,拉完 16.5GB 权重出第一张图的成本大概是几分钱。
01 —
AuraFlow 版本与量化档位
官方线停在 v0.3,但量化与剪枝分支把显存门槛拉到了 2.4GB
| 版本 | 参数量 | 显存 | 上下文 | 说明 |
|---|---|---|---|---|
| fal/AuraFlow-v0.3 | 6.8B(HF 标签写 7B) | fp16 ~16.7GB(transformer 13.7GB + Pile-T5 2.95GB)/单文件 16.5GB/fp32 transformer 27.4GB | 最长边 1536 / 提示词 256 token | 当前终点版本,比 v0.2 多喂了算力并在美学数据上微调过,支持 1536 以内的任意宽高比,README 仍标 beta。 |
| fal/AuraFlow-v0.2 | 6.8B | fp16 transformer ~13.7GB | 1024×1024 为主 | ComfyUI 官方示例页默认下载的就是 aura_flow_0.2.safetensors,放进 ComfyUI/checkpoints 就能跑原生节点。 |
| fal/AuraFlow(v0.1) | 6.8B | fp16 transformer ~13.7GB | 1024×1024 | 首发版,diffusers 文档里 bitsandbytes 8-bit 的示例默认指向它;做架构复现或对照实验时用。 |
| city96/AuraFlow-v0.3-gguf | 6.8B(仅 transformer) | F16 13.7GB / Q8_0 7.35GB / Q6_K 5.7GB / Q5_K_M 4.85GB / Q4_K_M 4.05GB / Q3_K_M 3.13GB / Q2_K 2.4GB | 同 v0.3,最长边 1536 | diffusers 原生支持 GGUFQuantizationConfig + from_single_file;注意它只量化 transformer,Pile-T5 编码器和 VAE 仍要从 fal/AuraFlow-v0.3 拉。 |
| p1atdev/AuraFlow-v0.3-fp8 / -bnb-nf4 | 6.8B | fp8_e4m3fn 约为 fp16 的一半,nf4 再降一档 | 同 v0.3 | fp8 版把 flow transformer 的线性层全部 cast 成 torch.float8_e4m3fn,只保留 t_embedder、final_linear、modF 原精度;Ada / Blackwell 卡上跑最划算。 |
| jimmycarter/auraflow-3.8b / auraflow-4.8b | 3.8B / 4.8B | 按比例低于原版,fp16 约 7.6GB / 9.6GB | 同架构 | 把 36 层从中间挖掉 18 层剪成 18 层的实验分支,作者明说不微调几千步就是坏图,属于二次训练的起点而非可用成品。 |
02 —
AuraFlow 该租哪张卡
按显存诚实匹配:16GB 卡装不下 fp16 全量,别去试
GGUF Q4_K_M / fp8 单卡试水,先验证风格对不对路
RTX 3090 24GB$0.193/卡·时
平台上每卡时最便宜的 24GB 卡,Q4_K_M 的 4.05GB 加 2.95GB 文本编码器峰值不到 10GB,剩下的显存直接留给 1536 长边。
fp16 原版权重常驻出图,1024×1024、50 步生产
RTX 4090 24GB$0.540/卡·时
16.7GB fp16 权重整卡装下不用 enable_model_cpu_offload,Ada 的 fp16/bf16 吞吐把 36 层 DiT 的单张耗时压到分钟以内。
1536×1536 满分辨率 + torch.compile 批量并发
RTX 5090 32GB$0.723/卡·时
9216 个 patch token 打满时的注意力激活加上编译缓存需要 24GB 之外的余量,32GB 才能同时开大 batch 和 fullgraph 编译。
SimpleTuner 上做 LoKr / LyCORIS 微调
RTX A6000 48GB$0.817/卡·时
官方文档给的 24GB 门槛必须配 grouped offloading 才勉强跑通,48GB 可以关掉 offload、开 int8-quanto 直接跑 1024 分桶。
03 —
在 NexGPU 上四步跑起 AuraFlow
从空实例到第一张 1536×768 图,权重下载和推理都在同一台机器上
- 01
开实例,装依赖
控制台在 console.nexgpu.net,挑一个 PyTorch 预置镜像开 RTX 3090 或 4090,SSH / Jupyter / Web 终端任选。AuraFlow 的 tokenizer 走 sentencepiece,protobuf 也别漏,这两个是新手最常踩的 ImportError。
pip install -U "diffusers>=0.31" transformers accelerate protobuf sentencepiece - 02
fp16 全精度拉起 pipeline
带 variant="fp16" 只会下 9.94GB + 3.77GB 两个 fp16 分片,而不是 27.4GB 的 fp32 三分片,能省一大半下载时间和磁盘。官方默认 50 步、guidance_scale 3.5,宽高任意组合但单边不能超 1536。
from diffusers import AuraFlowPipeline import torch pipe = AuraFlowPipeline.from_pretrained("fal/AuraFlow-v0.3", torch_dtype=torch.float16, variant="fp16").to("cuda") image = pipe("rampage of the iguana character riding F1, cinematic movie poster", width=1536, height=768, num_inference_steps=50, guidance_scale=3.5).images[0] image.save("out.png") - 03
显存吃紧就换 GGUF 量化 transformer
Q4_K_M 把 13.7GB 的 transformer 压到 4.05GB,pipeline 其余部分照旧从 fal/AuraFlow-v0.3 加载。跑在 Turing 架构(比如 T4)上时把 compute_dtype 从 bfloat16 改成 float16,Turing 没有原生 bf16。
from diffusers import AuraFlowPipeline, AuraFlowTransformer2DModel, GGUFQuantizationConfig import torch transformer = AuraFlowTransformer2DModel.from_single_file( "https://huggingface.co/city96/AuraFlow-v0.3-gguf/blob/main/aura_flow_0.3-Q4_K_M.gguf", quantization_config=GGUFQuantizationConfig(compute_dtype=torch.bfloat16), torch_dtype=torch.bfloat16, ) pipe = AuraFlowPipeline.from_pretrained("fal/AuraFlow-v0.3", transformer=transformer, torch_dtype=torch.bfloat16).to("cuda") - 04
开 torch.compile,或者直接进 ComfyUI
use_duck_shape 必须关掉,否则换一次分辨率就重编译一次;官方给的收益是低分辨率最高 100%、1536×1536 约 30%。不想写代码就用 ComfyUI 预置镜像,把 aura_flow_0.3.safetensors 丢进 ComfyUI/checkpoints,仓库里自带 comfy_workflow.json;GGUF 权重则需要 city96 的 ComfyUI-GGUF 节点来加载。
import torch torch.fx.experimental._config.use_duck_shape = False pipe.transformer = torch.compile(pipe.transformer, fullgraph=True, dynamic=True)
跑一天 AuraFlow 到底多少钱
算一笔完整的账。评估阶段:RTX 3090 24GB $0.193/卡·时,拉 16.5GB 单文件权重按 0.1 小时计费约 $0.019;1024×1024、50 步、fp16,保守按 30 秒一张估,一小时就是 120 张,$0.193 ÷ 120 ≈ $0.0016 一张图,出满 1000 张需要约 8.3 小时 × $0.193 = $1.60。微调阶段:换 RTX A6000 48GB $0.817/卡·时跑 SimpleTuner 的 LoKr,6 小时 × $0.817 = $4.90。存储:权重加输出留 20GB 卷,$0.414/GB·月 × 20 = $8.28/月,只用 3 天就是 8.28 ÷ 30 × 3 ≈ $0.83,任务做完销毁卷即停止计费。三项加起来 1.60 + 4.90 + 0.83 ≈ $7.33,一个完整的「评估 + 微调 + 出图」闭环不到 8 美元。注意计费口径:算力按秒计量、按小时定价,实例一停算力就不计费,存储要到卷销毁才停;没有起租门槛、没有开通费、不需要提配额工单。
04 —
