pytorch-stable-diffusion

手写 Stable Diffusion 源码,从论文到图像生成一步到位

这是一个从零开始、逐行实现 Stable Diffusion 的 PyTorch 教程项目,完全基于论文《High-Resolution Image Synthesis with Latent Diffusion Models》复现,不依赖现成的扩散模型库。它解决了初学者难以理解 Stable Diffusion 内部原理的问题,通过清晰的代码结构和详细的 Jupyter Notebook 讲解,逐步拆解 VAE、U-Net、CLIP 文本编码器、扩散过程、采样器(如 DDPM、DDIM)等核心组件。项目覆盖了从模型架构到训练、推理的完整流程,并提供了预训练权重加载和图像生成示例。核心能力包括:完整的代码实现、论文对照讲解、模块化设计便于二次开发,以及支持自定义训练和采样。适合希望深入理解扩散模型原理、从事 AI 绘画底层研究或进行模型定制的开发者。

开源 free 图像生成
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1078
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类图像生成
开发团队hkproj
所属国家
官网地址
定价模式free
价格说明开源项目,MIT许可证,完全免费,需自行部署。
访问状态
是否开源是
开源协议MIT
主要语言Jupyter Notebook
技术栈/模型diffusion-models,latent-diffusion-models,paper-implementations,pytorch,pytorch-implementation,stable-diffusion
GitHub 星标★ 1078
30天Star增速
HF 下载量
上线时间2023-09-24 00:00:00
最近更新2026-09-20 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:进阶 约 30 分钟 部署方式:本地安装 6 步

⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。

环境要求

  • 能运行 Jupyter Notebook 的本地环境(README 未给出具体依赖安装步骤)
  • Git(用于克隆仓库,README 未显式说明)
  • 足够的磁盘空间存放 stable-diffusion-v1-5 的权重文件
  • 可访问 Hugging Face 网站以下载模型与分词器文件

安装与启动步骤

  1. 1克隆项目仓库

    从 GitHub 获取源码,README 未提供安装命令,此步为通用准备动作,需自行准备 Jupyter 环境。

    git clone https://github.com/hkproj/pytorch-stable-diffusion.git
  2. 2进入项目目录

    切换到仓库根目录,后续下载的权重与分词器文件都要放在其 data 目录下。

    cd pytorch-stable-diffusion
  3. 3创建 data 目录

    README 要求把文件保存到 data 文件夹,若目录不存在需先创建,注意大小写与路径。

    mkdir -p data
  4. 4下载分词器文件

    打开 stable-diffusion-v1-5 的 tokenizer 页面,下载 vocab.json 和 merges.txt 两个文件,保存到 data 文件夹。

  5. 5下载模型权重

    从 stable-diffusion-v1-5 仓库主页面下载 v1-5-pruned-emaonly.ckpt,保存到 data 文件夹,文件较大请耐心等待。

  6. 6(可选)下载微调权重

    README 测试过任意不超过 v1.5 的微调 ckpt,如 InkPunk Diffusion、Illustration Diffusion,下载后同样放入 data。

如何确认成功

README 未给出启动命令,确认 data 目录下已存在 vocab.json、merges.txt、v1-5-pruned-emaonly.ckpt 三个文件即完成准备。

常见问题

Q:下载的文件应该放在哪里?

A:README 明确要求全部保存在项目的 data 文件夹中,包括 vocab.json、merges.txt 和 v1-5-pruned-emaonly.ckpt。

Q:必须用官方的 v1-5 权重吗?

A:不是。README 说明可以下载任意微调版 Stable Diffusion 的 ckpt(最高到 v1.5 版本)放入 data 使用。

Q:分词器文件从哪下载?

A:从 huggingface.co 的 stable-diffusion-v1-5 仓库 tokenizer 目录下载 vocab.json 与 merges.txt 两个文件。

Q:README 为什么没有安装依赖的命令?

A:README 节选中只提供了权重与分词器的下载说明,未给出 pip 安装或运行命令,需自行参考项目 Notebook。

注意事项

  • README 未提供任何 pip/conda 依赖安装命令,运行前请自行确认 Python 与 PyTorch 环境可用。
  • 权重文件为 Hugging Face 网页链接,需手动下载或用浏览器/命令行工具获取,README 未给出直链命令。
  • 除官方 v1-5 权重外,README 还验证过 InkPunk Diffusion 与 Illustration Diffusion 两类微调模型。

核心亮点

  • 逐模块复现论文,代码与公式一一对应,学习曲线清晰
  • 不依赖高封装库,暴露全部底层细节,便于深入研究和魔改
  • Jupyter Notebook 形式,图文并茂,适合教学和自学者

不足之处

  • 训练代码示例较少,主要侧重推理和结构讲解
  • 文档/社区待观察

适用场景

  • 深度学习研究者快速理解扩散模型原理
  • AI 绘画开发者定制或优化 Stable Diffusion 底层结构
  • 高校或培训机构的生成模型课程教学

替代项目

diffusers、stable-diffusion-webui、k-diffusion

项目介绍

pytorch-stable-diffusion 是开源模型领域的开源项目,由 hkproj 开发,2023 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(1,078)位列前 30%,在开源模型分类中处于中上游。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-20。MIT许可证,完全免费,需自行部署。

它主要面向的使用场景是:深度学习研究者快速理解扩散模型原理。同类可对比的替代方案包括 diffusers、stable-diffusion-webui、k-diffusion。

上一篇:sd-akashic

下一篇:GenAI_LLM_timeline

同类项目推荐

Machine-Learning 开源

跟着博客笔记,边看边跑机器学习代码

All content related to machine learning from my blog

★ 115 2026-08-09
awesome-ltx2 开源

找齐 LTX-2 模型、工作流和 LoRA,一键上手视频生成。

All available LTX-2 models, encoders, workflows, LoRAs for ComfyUI

★ 593 2026-08-10