latent-diffusion
海德堡大学开源的隐扩散模型(Latent Diffusion),将高分辨率图像生成算力降低50倍,是
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
海德堡大学开源的隐扩散模型(Latent Diffusion),将高分辨率图像生成算力降低50倍,是
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2021年底,当大多数研究者还在为如何在高分辨率图像上训练扩散模型而头疼时,海德堡大学 CompVis 实验室的一支团队悄然发布了一篇论文,提出了一种看似简单却改变游戏规则的思路——不要在像素空间里做扩散,去隐空间(latent space)里做。这篇论文便是《High-Resolution Image Synthesis with Latent Diffusion Models》,代码仓库 CompVis/latent-diffusion 在 GitHub 上迅速积累超过 1.4 万颗星,成为当年最具影响力的 AI 开源项目之一。
更鲜为人知的是,正是这个代码库,成为了后来 Stable Diffusion 的技术基石。2022 年,Stability AI 在 Latent Diffusion 的基础上,结合 LAION 数据集和更多工程优化,推出了震惊世界的 Stable Diffusion,掀起了生成式 AI 的全民浪潮。

图1:Latent Diffusion 在文生图、图像修复、类别条件生成等多个任务上的效果展示
要理解 Latent Diffusion 的重要性,先要理解它的前身——像素级扩散模型(Pixel-space Diffusion)——的根本问题。
传统扩散模型(DDPM、ADM 等)在像素空间直接进行前向加噪和反向去噪。以生成一张 512x512 的 RGB 图像为例,模型每一步迭代需要在约 78.9 万个维度(512x512x3)的空间中进行计算。训练一个能在高分辨率下工作的模型,算力需求惊人——通常需要 64-128 块 A100 GPU 训练数周,普通人根本无法参与。
Latent Diffusion 引入了一个巧妙的两步走策略,彻底改变了这一局面:
Stage 1:压缩(Compression)
训练一个 Autoencoder(VQ-VAE 或 VAE),将高分辨率图像压缩到一个低维的 latent 空间。一个 512x512x3 的图像被压缩到如 64x64x4,维度从约 78.9 万骤降至约 1.6 万,压缩比达到 1/48。
Stage 2:生成(Generation)
在这个大幅精简的 latent 空间里运行标准的扩散模型(DDPM/DDIM/PLMS)。由于维度降低了近 50 倍,计算量相应大幅减少,训练和推理速度均可提升数倍。
解码(Decoding)
最后,用 Autoencoder 的解码器(Decoder)将 latent 表示还原为真实图像。
用生活化的比喻来理解:传统扩散模型就像直接在高清画布上作画,笔笔都要精雕细琢;而 Latent Diffusion 相当于先在缩略图上打好草稿,再放大还原——效率天差地别,质量却不打折。

图2:Latent Diffusion 整体架构:Encoder 将图像压缩到 latent 空间,Diffusion Model 在低维空间生成,Decoder 还原为高分辨率图像
Latent Diffusion 支持多种采样器(sampler),其中两种最为关键:
DDIM(Denoising Diffusion Implicit Models):Song 等人 2021 年提出的加速采样方法。与标准 DDPM 需要数百甚至上千步迭代不同,DDIM 通过非马尔可夫过程大幅缩短采样步数。代码中默认使用 --ddim-steps=200。
PLMS(Pseudo Numerical Methods):由 Katherine Crowson 在 2022 年对 DDIM 的进一步优化,采样速度提升约 2 倍,同时保持相近的图像质量。Latent Diffusion 仓库是首个公开集成 PLMS 的实现。
这两种采样器使 Latent Diffusion 的推理时间从分钟级降至秒级,是文生图应用落地的重要前提。
Latent Diffusion 支持 Classifier-Free Guidance,这是一种让条件扩散模型(以文本为条件的文生图)效果更好的训练技巧。传统方法需要单独训练一个分类器来引导生成方向,而无分类器引导通过在训练时随机丢弃条件信息,让模型同时学习有条件和无条件的生成,从而实现自引导,显著提升生成质量。
项目还包含了更前沿的 Retrieval-Augmented Diffusion Models(RDM) 实现。通过在生成过程中引入检索模块(基于 ScaNN 相似度搜索),从外部数据库中找到与当前 prompt 相似的图像 CLIP embedding 作为额外条件,引导模型生成更符合用户意图的图像。

图3:检索增强扩散模型效果示意:检索模块在生成过程中引入外部图像先验
Latent Diffusion 在多个基准数据集上验证了效果:
训练数据来源:
项目提供 environment.yaml 一键创建 conda 环境:
conda env create -f environment.yaml
conda activate ldm
依赖包含:PyTorch 1.7 + CUDA 11.0、pytorch-lightning、transformers、einops、omegaconf 等。最低配置要求 NVIDIA RTX 2070 或更新,8GB+ 显存,16GB+ 内存,10GB+ 磁盘。
推理脚本 scripts/txt2img.py 是最常用的入口,支持 --prompt 指定文本提示词、--ddim-steps 控制采样步数、--plms 启用 PLMS 加速采样。
项目内置 Streamlit Web UI,运行 streamlit run scripts/webui.py 即可在浏览器 http://localhost:8501 上交互式生成图像。
此外,项目已在 HuggingFace Spaces 提供了在线 Demo,无需本地部署即可体验:
👉 https://huggingface.co/spaces/multimodalart/latentdiffusion
推理需要下载预训练权重(通过 scripts/download_models.sh),权重文件较大(单个模型通常 2-5GB),下载速度依赖网络状况。这也是目前该项目的最大使用门槛之一。
模型权重许可证问题:Latent Diffusion 本身代码为 MIT 许可证,但预训练模型权重涉及 LAION 数据集的使用权问题。LAION-400M 包含了大量从互联网上采集的图文对,其中部分内容可能涉及版权、肖像权争议。Stability AI 后续发布 Stable Diffusion 时也遭到了部分艺术家和版权方的抗议,要求提供 opt-out 机制让创作者选择不被用于训练。
生成内容的可控性:虽然 Latent Diffusion 支持文本条件生成,但在细节控制上仍有局限。复杂构图、多对象场景、精确文字渲染(Stable Diffusion 至今也未能完全解决文字渲染难题)仍是挑战。
非生产级工程化:作为学术研究代码,无 Docker 支持,模型权重需手动下载,大分辨率图像仍需要高显存,FP16 优化未在默认配置中启用。
Latent Diffusion 的意义远超一个效果好的论文代码。它的核心技术——在 latent 空间做扩散——将高分辨率图像生成的算力门槛降低了数十倍,使得:
从技术演进脉络来看:DDPM → DDIM → Latent Diffusion → Stable Diffusion → SDXL → SD3,每一步都有 Latent Diffusion 的影子。Robin Rombach 等作者后来也参与了 Stable Diffusion 的核心研发,将学术成果成功转化为改变行业的产品。
对于今天的 AI 开发者和爱好者而言,CompVis/latent-diffusion 不仅是理解扩散模型原理的最佳学习素材,更是 AI 图像生成时代来临的见证者和起点。