consistency_models
consistency_models 是 OpenAI 官方开源的一致性模型代码库,基于 PyTorch 构建,旨在推动高效图像生成技术的发展。传统扩散模型虽然生成质量高,但通常需要数十甚至上百步迭代才能输出一张清晰图片,导致推理速度较慢。consistency_models 通过独特的“一致性训练”和“一致性蒸馏”技术,成功将生成过程压缩至单步或极少步数,在保持高质量的同时大幅提升了生成效率,解决了速度与质量难以兼得的痛点。
该项目复现了论文中的核心算法,支持在 ImageNet、LSUN 卧室及猫咪等数据集上进行大规模实验,并提供了完整的预训练模型权重、训练脚本及评估工具(如 FID、Inception Score 计算)。此外,它还兼容 Hugging Face 的 diffusers 库,方便开发者快速集成调用。
consistency_models 主要面向 AI 研究人员和深度学习开发者,适合希望探索前沿生成模型架构、进行复现实验或开发实时图像应用的专业人士。对于需要快速原型验证的研究团队,其提供的丰富基线和详细文档极具价值。虽然普通用户难以直接运行底层代码,但可通过集成该技术的上层应用间接体验其带来的极速生成能力。作为扩散模型领域的重要演进,它为实时创意工具和低延迟应用场景开辟了新的可能性。
使用场景
某电商平台的视觉设计团队需要快速生成大量高分辨率、风格统一的商品背景图,以支持每日更新的促销活动页面。
没有 consistency_models 时
- 生成速度缓慢:依赖传统扩散模型(如 EDM)生成一张高质量图片通常需要数十甚至上百步去噪,导致批量生产时等待时间过长,无法响应紧急运营需求。
- 推理成本高昂:多步采样过程消耗大量 GPU 算力,使得在大规模并发场景下的服务器负载和云资源账单居高不下。
- 实时交互困难:由于单次生成耗时久,设计师无法在后台工具中进行“即时预览”或微调,严重拖慢了创意迭代和选图效率。
- 部署门槛较高:为了平衡速度与质量,往往需要复杂的蒸馏流程或牺牲图像细节,难以在保证高保真度的同时实现单步生成。
使用 consistency_models 后
- 单步极速生成:利用一致性蒸馏(Consistency Distillation)技术,consistency_models 能将生成步骤压缩至 1-2 步,将单张图片的生成时间从秒级降低至毫秒级。
- 大幅降低成本:推理步数的断崖式减少直接降低了 GPU 占用率,使同等硬件资源下的吞吐量提升数十倍,显著优化了运营成本。
- 支持实时编辑:极快的推理速度让设计师能够实时调整提示词并立即看到结果,实现了流畅的交互式图像创作体验。
- 质量速度兼得:在实现单步生成的同时,该工具在 ImageNet 和 LSUN 等数据集上仍保持了与传统多步模型相当的 FID 分数和视觉清晰度。
consistency_models 的核心价值在于打破了生成速度与图像质量之间的传统权衡,让高保真图像生成真正具备了实时性和大规模落地的能力。
运行环境要求
- 未说明
需要 NVIDIA GPU (基于 PyTorch 和 CUDA 支持),具体型号和显存大小未说明,但提及在 ImageNet-64 和 LSUN-256 上进行大规模实验通常需要高性能 GPU
未说明

快速开始
一致性模型
本仓库包含 一致性模型 的代码库,使用 PyTorch 实现,用于在 ImageNet-64、LSUN Bedroom-256 和 LSUN Cat-256 数据集上进行大规模实验。我们的仓库基于 openai/guided-diffusion,该仓库最初以 MIT 许可证发布。我们对代码进行了修改,支持一致性蒸馏、一致性训练,以及论文中讨论的多种采样和编辑算法。
CIFAR-10 数据集上的实验代码库采用 JAX 编写,位于 openai/consistency_models_cifar10。
预训练模型
我们发布了论文中主要模型的检查点。在使用这些模型之前,请查阅相应的 模型卡片,以了解这些模型的预期用途及局限性。
以下是各模型检查点的下载链接:
- ImageNet-64 上的 EDM:edm_imagenet64_ema.pt
- ImageNet-64 上使用 l2 度量的一致性蒸馏:cd_imagenet64_l2.pt
- ImageNet-64 上使用 LPIPS 度量的一致性蒸馏:cd_imagenet64_lpips.pt
- ImageNet-64 上的一致性训练:ct_imagenet64.pt
- LSUN Bedroom-256 上的 EDM:edm_bedroom256_ema.pt
- LSUN Bedroom-256 上使用 l2 度量的一致性蒸馏:cd_bedroom256_l2.pt
- LSUN Bedroom-256 上使用 LPIPS 度量的一致性蒸馏:cd_bedroom256_lpips.pt
- LSUN Bedroom-256 上的一致性训练:ct_bedroom256.pt
- LSUN Cat-256 上的 EDM:edm_cat256_ema.pt
- LSUN Cat-256 上使用 l2 度量的一致性蒸馏:cd_cat256_l2.pt
- LSUN Cat-256 上使用 LPIPS 度量的一致性蒸馏:cd_cat256_lpips.pt
- LSUN Cat-256 上的一致性训练:ct_cat256.pt
依赖项
要安装本代码库及其所有依赖项,请运行:
pip install -e .
若使用 Docker 安装,请执行以下命令:
cd docker && make build && make run
模型训练与采样
我们在 scripts/launch.sh 中提供了 EDM 训练、一致性蒸馏、一致性训练、单步生成和多步生成的示例。
评估
为了比较不同的生成模型,我们使用 FID、Precision、Recall 和 Inception Score 等指标。这些指标均可通过存储在 .npz(numpy)文件中的样本批次来计算。可以使用 cm/evaluations/evaluator.py 对样本进行评估,方法与 openai/guided-diffusion 中描述的一致,并参考其中提供的参考数据集批次。
在 🧨 diffusers 中的使用
一致性模型已在 🧨 diffusers 中通过 ConsistencyModelPipeline 类 得到支持。以下是一个示例:
import torch
from diffusers import ConsistencyModelPipeline
device = "cuda"
# 加载 cd_imagenet64_l2 检查点。
model_id_or_path = "openai/diffusers-cd_imagenet64_l2"
pipe = ConsistencyModelPipeline.from_pretrained(model_id_or_path, torch_dtype=torch.float16)
pipe.to(device)
# 单步采样
image = pipe(num_inference_steps=1).images[0]
image.save("consistency_model_onestep_sample.png")
# 单步采样,条件式图像生成
# ImageNet-64 类标签 145 对应帝企鹅
class_id = 145
class_id = torch.tensor(class_id, dtype=torch.long)
image = pipe(num_inference_steps=1, class_labels=class_id).images[0]
image.save("consistency_model_onestep_sample_penguin.png")
# 多步采样,条件式图像生成
# 步骤数可以显式指定;以下步骤来自原始 GitHub 仓库。
# https://github.com/openai/consistency_models/blob/main/scripts/launch.sh#L77
image = pipe(timesteps=[22, 0], class_labels=class_id).images[0]
image.save("consistency_model_multistep_sample_penguin.png")
您还可以通过在 pipe.unet 上使用 torch.compile() 来进一步加速推理过程(仅支持 PyTorch 2.0 及以上版本)。更多详情请参阅 官方文档。此支持由 dg845 和 ayushtues 贡献给 🧨 diffusers。
引用
如果您认为本方法和/或代码有用,请考虑引用以下文献:
@article{song2023consistency,
title={Consistency Models},
author={Song, Yang and Dhariwal, Prafulla and Chen, Mark and Sutskever, Ilya},
journal={arXiv preprint arXiv:2303.01469},
year={2023},
}
常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。
tesseract
Tesseract 是一款历史悠久且备受推崇的开源光学字符识别(OCR)引擎,最初由惠普实验室开发,后由 Google 维护,目前由全球社区共同贡献。它的核心功能是将图片中的文字转化为可编辑、可搜索的文本数据,有效解决了从扫描件、照片或 PDF 文档中提取文字信息的难题,是数字化归档和信息自动化的重要基础工具。 在技术层面,Tesseract 展现了强大的适应能力。从版本 4 开始,它引入了基于长短期记忆网络(LSTM)的神经网络 OCR 引擎,显著提升了行识别的准确率;同时,为了兼顾旧有需求,它依然支持传统的字符模式识别引擎。Tesseract 原生支持 UTF-8 编码,开箱即用即可识别超过 100 种语言,并兼容 PNG、JPEG、TIFF 等多种常见图像格式。输出方面,它灵活支持纯文本、hOCR、PDF、TSV 等多种格式,方便后续数据处理。 Tesseract 主要面向开发者、研究人员以及需要构建文档处理流程的企业用户。由于它本身是一个命令行工具和库(libtesseract),不包含图形用户界面(GUI),因此最适合具备一定编程能力的技术人员集成到自动化脚本或应用程序中