绳锯木断,水滴石穿。——罗大经鹤林玉露

https://github.com/NVlabs/Sana

Sana:这位来自 NVlabs 的高效画师,正在把高分辨率图像生成拉进“又快又美”的新时代

如果说许多文生图模型像天赋异禀但有点“吃资源”的艺术家,那么 Sana 更像一位动作利落、思路清晰、下笔飞快的高阶画师。它不只会画,而且画得高、画得快、画得稳,还特别懂得如何在效率和质量之间拿出一套漂亮的平衡术。根据项目描述,Sana 是一个面向高分辨率图像与视频生成的效率导向型代码库,提供了完整的训练与推理流水线;仓库中包含的不只是 Sana 本体,还覆盖了 SANA、SANA-1.5、SANA-Sprint、SANA-Video 和 Sol-RL。(github.com)

光看这段介绍,你就能感受到它的气质:它不是只想当一个“会出图的模型”,它更像一个已经搭好舞台、灯光、后台、跑道和出口的完整系统。你既可以把它当成高效图像生成方案,也可以把它当成一个不断扩张能力边界的生成框架。(github.com)

它是谁

Sana 的仓库描述写得很直接:Efficient High-Resolution Image Synthesis with Linear Diffusion Transformer。也就是说,它瞄准的是“高分辨率图像生成”这件事里最难、最贵、最容易卡性能的一段路,并且选择用 Linear Diffusion Transformer 这条技术路线去破局。(github.com)

这名字取得很有意思。Sana 听起来像一个安静的人,但它做起事来一点不安静。你让它面对高分辨率生成这块公认的硬骨头,它没有退,而是拿出一整套“高效优先”的工程与模型设计思路。它像一位不喜欢喊口号的工程师型艺术家,嘴上不吵,手里全是硬活。

它想解决什么问题

高分辨率图像生成一直都很迷人,但也一直很“贵”。

分辨率一上去,token 数量上去,注意力开销就上去,显存和速度压力也跟着往上窜。很多模型在低分辨率下看起来还算轻盈,一旦进入高分辨率场景,就像背着全套行李爬楼梯,气喘吁吁、寸步难行。Sana 的目标非常明确:让高分辨率图像和视频生成,不再天然等同于高昂代价。(github.com)

README 里给出的介绍非常有冲击力。它把 Sana 系列的定位写得很清楚:

  • SANA:支持最高到 4K 分辨率的文生图生成,并声称相比 Flux-12B 体量小 20 倍、速度快 100 倍。
  • SANA-1.5:通过训练时和推理时的计算扩展策略进一步提升质量。
  • SANA-Sprint:通过 sCM distillation 实现一步或少步生成,在 H100 上可做到每张 1024px 图像约 0.1 秒。
  • SANA-Video / LongSANA:面向高效视频生成,引入 Block Linear Attention 以及更长时序能力。
  • Sol-RL:通过 NVFP4 rollout 与 BF16 training 的组合,加快强化学习训练收敛。 (github.com)

读到这里,你会发现 Sana 并不是一个单点模型,而更像一个家族。这个家族里有擅长高分图像的,有擅长提质扩展的,有擅长极速生成的,有把目光投向视频的,还有往后训练和强化学习方向继续延展的。它不是站在一个结果上停住,而是像一个越长越大的研究体系,边跑边扩容。

它为什么让人眼前一亮

因为它抓住了一个非常现实的问题:大家都喜欢更大、更清晰、更细腻的图,但没有人真心喜欢更慢、更贵、更卡。

Sana 的魅力,不在于它只会“画图”,而在于它试图把高质量生成从“重器”变成“可用工具”。它不像某些模型那样,仿佛是一位穿着华丽斗篷的宫廷画师,画得确实绝,但每次动笔都要清场、点灯、烧预算。Sana 更像一位训练有素的现代画师,出手稳、动作快、流程规范,还知道怎样让更多人真的用得起。(github.com)

README 中对它的总结也很鲜明:这是一个完全开源的框架,整合了高效训练、快速推理以及灵活部署,覆盖图像和视频生成;并且通过 4-bit 量化,甚至可部署在 小于 8GB VRAM 的笔记本 GPU 上。(github.com)

这句话的分量不小。因为它透露出的不是“实验室里某个跑分很好看的模型”,而是“一个在部署和现实使用层面认真做过设计的系统”。当一个高分辨率生成框架开始认真谈笔记本 GPU、量化和灵活部署,它就不再只属于研究演示,它是在努力走向更广泛的真实场景。(github.com)

它的核心技术路线,像一套精心打磨的轻装上阵方案

Sana 并不是单纯靠“堆模型参数”来换质量。它的 README 里把关键技术讲得非常清楚,而这些技术组合在一起,恰好拼出它那种“高效画师”的人格。

Linear Attention

Sana 用 Linear Attention 替换了 DiT 中的传统 attention,目的就是在高分辨率下提升效率。这个选择很像把原本一辆油耗惊人的重型跑车,换成一台同样能高速奔跑、但更懂节能的发动机。对于高分辨率任务来说,这不是小修小补,而是直接对最核心的计算瓶颈动刀。(github.com)

DC-AE

它还引入了 DC-AE,实现 32× 图像压缩,而不是传统常见的 8×。这意味着 latent token 数量被大幅压缩,从源头上减少了后续计算负担。你可以把它理解为:别急着让整个工厂一起加班,先把搬上流水线的货物整理得更精炼。这样速度自然就快起来了。(github.com)

Decoder-only Text Encoder

Sana 使用了现代 decoder-only LLM 作为文本编码器,并强调了 in-context learning 对文本图像对齐的帮助。这个思路很有趣,它像是给画师配了一位更会听话、更能理解上下文的文案导演。用户的 prompt 不再只是被“读一遍”,而是被更有语境感地理解。(github.com)

Flow-DPM-Solver

为了进一步减少采样步数,它引入了 Flow-DPM-Solver。这一步像是在告诉生成流程:你不需要每一级楼梯都踩得那么重,有时候找到更聪明的路径,比一味多走几步更重要。(github.com)

sCM Distillation

在 SANA-Sprint 中,项目采用 continuous-time consistency distillation 实现一步或少步生成。这使得它在“快”这个维度上显得格外锋利。你可以把它看作是让一个原本需要认真铺陈、慢慢润色的画师,学会了几乎抬手就成像的本事。(github.com)

面向视频的高效结构

到了视频生成,Sana 家族又引入 Block Causal Linear AttentionCausal Mix-FFN,用于更高效地处理长视频生成问题。这里它就像一位从静态画布转向动态分镜的导演,既要顾每一帧,还得顾镜头之间的呼吸和连续性。(github.com)

Sol-RL

Sol-RL 则把视角带到了后训练与强化学习上,用低精度 rollout 配合高精度优化,追求更快收敛。它让 Sana 不只是“出图器”,还像一位会在幕后不断训练自己、修正自己、精进自己的长期主义选手。(github.com)

它的能力版图,不是一个点,而是一整片大陆

Sana 仓库并没有把自己局限在单一模型介绍,而是给出了一套非常完整的使用与扩展地图。README 的 Getting Started 部分列出了一整套文档入口,包括:

  • Installation Guide
  • Model Zoo
  • Sana Inference & Training
  • SANA-Sprint
  • SANA-Video
  • LongSANA
  • ControlNet
  • LoRA / DreamBooth
  • Sol-RL Post-Training
  • Quantization
  • ComfyUI
  • SGLang (github.com)

这很能说明问题。

一个项目如果只有主模型和几条推理命令,那它更像一个作品;而 Sana 明显在往“生态框架”方向走。它不仅在说“我能做什么”,也在说“你可以怎样训练我、加速我、微调我、部署我、接入不同工作流、把我扩展成你自己的生产工具”。(github.com)

这就像一位画师不只是拿出几张代表作,还把自己的画室、颜料架、速写本、教学方案、进阶课程和合作通道全部打开。你不只是能看它画,你还能走进它的工作方法里。

快速启动:它没有故作神秘,反而很愿意让你立刻上手

对于很多生成模型项目来说,最劝退人的不是论文,而是第一步环境配置。README 在这方面做得很直给,Quick Start 就是两步:

1
2
git clone https://github.com/NVlabs/Sana.git
cd Sana && ./environment_setup.sh sana

这两行命令像 Sana 的开场白:门没锁,你进来吧。(github.com)

它没有把自己包装成遥不可及的“只适合论文作者使用”的项目,而是明确给出环境准备方式,让人一眼就能判断如何启动。对于一个覆盖图像生成、视频生成、训练、量化和部署的大型仓库来说,这种清晰的入口非常重要。(github.com)

如果你更熟悉 diffusers,它也准备好了

README 还给出了非常实用的 diffusers 推理示例。这段代码不只是“能跑”,它很能体现 Sana 的气质:清楚、现代、面向实际使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import torch
from diffusers import SanaPipeline

pipe = SanaPipeline.from_pretrained(
"Efficient-Large-Model/SANA1.5_1.6B_1024px_diffusers",
torch_dtype=torch.bfloat16,
)
pipe.to("cuda")

pipe.vae.to(torch.bfloat16)
pipe.text_encoder.to(torch.bfloat16)

prompt = 'a cyberpunk cat with a neon sign that says "Sana"'
image = pipe(
prompt=prompt,
height=1024,
width=1024,
guidance_scale=4.5,
num_inference_steps=20,
generator=torch.Generator(device="cuda").manual_seed(42),
)[0]

image[0].save("sana.png")

这段示例像一张很友好的邀请函。你不需要先翻半天文档,不需要先猜模型该怎么接,只要你熟悉 PyTorch 和 diffusers,马上就能让 Sana 开始工作。它甚至已经帮你把 dtype、分辨率、采样步数、guidance scale 和随机种子这些关键细节摆在台面上。(github.com)

而这张图的 prompt 也写得很可爱:一只赛博朋克猫,配上一块写着 “Sana” 的霓虹灯牌。仿佛项目自己都知道,既然是图像生成模型,第一面最好就让大家看见一点想象力发光的样子。(github.com)

它的性能数字,确实很会说话

README 中给出了一张 1024×1024 图像生成性能表,这部分是 Sana 最有说服力的地方之一。表中显示,和 Flux-dev 相比,多个 Sana 变体在吞吐、延迟、参数规模和质量指标上都拿出了相当强的表现。比如:

  • FLUX-dev:吞吐 0.04 samples/s,延迟 23.0s,参数 12.0B
  • Sana-0.6B:吞吐 1.7 samples/s,延迟 0.9s,参数 0.6B,速度提升 39.5×
  • Sana-1.6B:吞吐 1.0 samples/s,延迟 1.2s,参数 1.6B,速度提升 23.3×
  • Sana-1.5 1.6B:延续 1.2s 左右延迟,同时在 CLIP、GenEval 等指标上进一步提升
  • Sana-1.5 4.8B:虽然更大,但仍保持明显的速度优势。 (github.com)

这组数字特别像一位平时不爱炫耀的人,关键时刻掏出成绩单:我不是不能慢慢画,我只是没必要那么慢。

其中最抓人的一句,还是 README 开头那句:SANA 文生图最高可到 4K 分辨率,并且比 Flux-12B 小 20 倍、快 100 倍。 这几乎可以看作 Sana 递给所有关注高分辨率生成的人一张名片。(github.com)

这不是只有图像,还是朝着视频一路长过去的系统

很多项目在图像上做得好,但一到视频就变得像突然换了一个人。Sana 给人的感觉则是:它早就不满足只做静态画面了。

README 明确写到了 SANA-VideoLongSANA,并把它们纳入同一代码库体系。前者面向高效视频生成,后者则继续加强长视频场景能力。与此同时,仓库目录里也能看到与视频相关的脚本和训练入口,比如 inference_video_scriptstrain_video_scripts 这样的目录结构。(github.com)

这意味着 Sana 的视野并不局限于“单张图像漂亮就行”。它像一个本来擅长画插画的创作者,后来开始学分镜、学镜头、学节奏、学长时序叙事,最后干脆把静帧和动态都纳入了自己的能力版图。(github.com)

它还是一个非常“现代工程化”的仓库

从仓库结构上看,Sana 不是一个为了发论文临时整理出来的代码包。它有文档、有配置、有 app、有 tests、有 scripts,也有专门的训练与视频训练脚本目录。搜索结果展示的仓库顶层包括:

  • app
  • configs
  • diffusion
  • docs
  • inference_video_scripts
  • sana
  • scripts
  • tests/bash
  • tools
  • train_scripts
  • train_video_scripts
  • Dockerfile
  • environment_setup.sh
  • pyproject.toml 等。 (github.com)

这一眼看过去就知道,它不是只准备让你“看”,而是真打算让你“用”。这种工程组织方式也很符合 NVlabs 一贯的风格:研究不只是论文结果,更要有尽可能完整的代码与体系支撑。(github.com)

作为开源项目,它也在不断生长

Sana 的 GitHub 页面显示它是 Apache-2.0 许可证开源项目;搜索结果还显示该仓库已有数千 star,并且存在 release、issues、pull requests、actions 等持续活跃的开源协作痕迹。搜索结果里可以看到发布页包含 v1.0.0v1.5.0 等版本信息,而 README 展示出的系列能力也正对应着项目逐步扩展的节奏。(github.com)

这说明 Sana 不是一颗静止的样品,而是一台还在持续推进的机器。它一边扩展模型家族,一边开放文档入口,一边更新发布版本,一边让社区参与进来。它像一个还在成长的实验室成员,边跑边学,边学边把成果摆到大家面前。

如果要用拟人化方式来形容 Sana

它像一位高效、克制、审美在线的数字画师。

别的模型可能穿着厚重长袍,拖着大箱子颜料和巨大的显卡预算,一边喘气一边说“我能画”;Sana 则像一位提着轻便工具箱、步伐很快、却依然能把高分辨率画面铺得细致漂亮的专业选手。它不靠喧哗吸引人,而是靠那种“你一用就知道确实顺手”的可靠感取胜。(github.com)

它也像一个很懂效率哲学的导演。

你给它一段文字,它不只是把词拆开来看,而是试图更聪明地理解、压缩、建模、采样,再把结果呈现出来。它一边盯质量,一边盯速度,一边还惦记着部署成本。像极了那种既关心作品呈现、又关心预算表和拍摄周期的成熟导演。(github.com)

它更像一个愿意长期成长的系统角色。

今天它会画高分图,明天它能一步生成,后天它开始拍视频,再后来它还学会了怎么通过后训练进一步变强。它不是一次性绽放的烟火,更像一棵正在稳定伸展枝叶的树。(github.com)

为什么 Sana 值得认真看

因为它不只是“又一个文生图项目”。

它真正值得关注的地方在于:它把高分辨率生成这件本来很容易陷入高成本困局的事情,重新设计成了一套强调效率、质量和可部署性的系统路径。它在 README 中明确展示了自己的核心技术、性能指标、模型家族、快速启动方式、diffusers 适配、训练与微调入口,以及朝视频与后训练继续扩张的版图。(github.com)

这种项目最吸引人的地方,不是某一个数字,而是它身上那种“方向很清楚”的感觉。它知道自己要解决什么问题,也知道自己靠什么方法去解决,还愿意把这条路开放给更多开发者和研究者一起走。

结尾

Sana 这个名字听上去温和,但它做的事一点都不温吞。

它正试图告诉整个生成式 AI 世界:高分辨率,不一定非得沉重;高质量,不一定非得臃肿;大模型时代,也依然可以认真追求效率这件事。Sana 不是那种只在舞台上亮一瞬间的表演者,它更像一个把工具箱整理得很好的长期建设者,安静地把高效图像与视频生成这件事往前推。(github.com)

如果你关心高分辨率文生图、在意推理速度、关注部署现实性,也对图像到视频、训练到后训练这一整条路线感兴趣,那么 Sana 很值得被你认真打开一次。

因为它不像是在说“我也能画”。

它更像是在说:

来吧,把分辨率调高一点,把速度要求也提上来,我们不只要画出来,还要画得漂亮、画得快、画得真正能落地。