Stable Diffusion 保姆级教程|HF 国内镜像配置 + 一键安装 + 本地模型加载 + 完整代码

张开发
2026/4/17 20:55:36 15 分钟阅读

分享文章

Stable Diffusion 保姆级教程|HF 国内镜像配置 + 一键安装 + 本地模型加载 + 完整代码
Stable Diffusion 保姆级教程HF 国内镜像配置 一键安装 本地模型加载 完整代码设置 Hugging Face 国内镜像设置 Hugging Face 国内镜像的环境变量解决下载模型diffusers/transformers超时、失败问题让你能快速下载 Stable Diffusion、LLM 等模型。不同系统使用方法1. Windows 系统CMD 命令行set HF_ENDPOINThttps://hf-mirror.com2. Windows 系统PowerShell$env:HF_ENDPOINThttps://hf-mirror.com3. Mac / Linux 系统exportHF_ENDPOINThttps://hf-mirror.com永久配置推荐不用每次都输Windows右键此电脑→ 属性 → 高级系统设置 → 环境变量新建用户变量变量名HF_ENDPOINT变量值https://hf-mirror.comMac/Linuxechoexport HF_ENDPOINThttps://hf-mirror.com~/.bashrcsource~/.bashrc配置完镜像后再运行AI 绘画、模型下载代码速度会大幅提升。一键安装命令最常用、最稳定CPU版直接复制运行pipinstalldiffusers transformers accelerate torch safetensors pillowGPU版如果你有NVIDIA GPU强烈建议安装CUDA 版本的 PyTorch速度快 10~50 倍pipinstall--pretorch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu132 pipinstalldiffusers transformers accelerate safetensors pillow补充依赖依据自己的需求酌情安装pipinstallmodelscope pipinstallhuggingface_hub diffusers torch transformers每个库的作用diffusersHugging Face 官方的扩散模型库专门用来跑Stable Diffusion、文生图、图生图、超分、换脸、视频生成等 AI 绘画模型。transformers跑大语言模型LLM、CLIP 文本编码器的核心库Stable Diffusion 里的文本理解全靠它。accelerate让 PyTorch 模型自动加速、支持 GPU/TPU、多卡训练不用自己写复杂的分布式代码。torch就是PyTorch深度学习框架所有 AI 模型的底层运行环境。safetensors比.bin更安全、更快的模型权重存储格式现在 Stable Diffusion 模型几乎都用这个。pillowPython 图像处理库用来打开、保存、显示图片AI 绘画必用。它们之间的关系一句话总结torch是地基transformers提供文本理解diffusers提供图像生成accelerate加速训练/推理safetensors安全存储模型pillow处理最终图片最小可运行代码文生图直接复制用最简代码# 从 diffusers 库导入 StableDiffusionPipeline 类# diffusers 是 Hugging Face 提供的扩散模型库用于图像生成fromdiffusersimportStableDiffusionPipeline# 导入 PyTorch 深度学习框架importtorch# # 模型加载部分# # 定义模型 ID指向 Hugging Face Hub 上的 runwayml/stable-diffusion-v1-5 模型# 这是 Stable Diffusion 1.5 版本由 Runway ML 团队发布model_idrunwayml/stable-diffusion-v1-5# 从预训练模型加载 Stable Diffusion 管道pipeStableDiffusionPipeline.from_pretrained(model_id,# 模型标识符torch_dtypetorch.float16,# 使用半精度浮点数FP16减少显存占用约50%use_safetensorsTrue# 使用 safetensors 格式加载权重比传统 .bin 更安全、更快).to(cuda)# 将模型移动到 GPUCUDA 设备进行加速推理# # 图像生成部分# # 定义文本提示词prompt描述想要生成的图像内容# a cute cat running on the grass - 一只可爱的猫在草地上奔跑# 8k - 提示高质量图像# realistic - 提示写实风格prompta cute cat running on the grass, 8k, realistic# 调用管道生成图像# pipe(prompt) 执行完整的扩散过程文本编码 → 潜空间去噪 → 图像解码# .images[0] 获取返回的 PIL Image 对象列表中的第一张图imagepipe(prompt).images[0]# # 保存结果部分# # 使用 Pillow (PIL) 的 save 方法将图像保存为 PNG 文件image.save(cat.png)# 打印确认信息提示用户图像已保存print(图片已保存cat.png)关键概念补充组件说明StableDiffusionPipeline端到端的图像生成管道包含文本编码器 (CLIP)、UNet 去噪网络、VAE 解码器torch_dtypetorch.float16FP16 精度显存需求从 ~6GB 降至 ~3-4GB速度更快use_safetensors替代 PyTorch 的 pickle 格式防止恶意代码执行.to(cuda)必须在有 NVIDIA GPU 且安装了 CUDA 的环境中运行pipe()参数可传num_inference_steps步数默认50、guidance_scaleCFG 强度默认7.5、seed随机种子等文件拆分文件一download_model.py— 下载并保存模型# 从 diffusers 库导入 StableDiffusionPipeline 管道类# 这是 Hugging Face 提供的 Stable Diffusion 封装接口fromdiffusersimportStableDiffusionPipeline# 导入 PyTorch 深度学习框架importtorch# # 配置参数# # Hugging Face 模型仓库 ID# runwayml/stable-diffusion-v1-5 是官方发布的 SD 1.5 版本model_idrunwayml/stable-diffusion-v1-5# 本地保存路径./ 表示当前目录下的 models 文件夹# 模型文件将保存在这里方便下次离线加载local_path./models/stable-diffusion-v1-5# # 下载模型# # 从 Hugging Face Hub 下载预训练模型# from_pretrained 会自动下载权重、配置文件、分词器等pipeStableDiffusionPipeline.from_pretrained(model_id,# 远程模型标识符torch_dtypetorch.float16,# 使用半精度浮点数减少显存和磁盘占用use_safetensorsTrue# 使用 safetensors 格式比 pickle 更安全)# # 保存到本地# # 将下载的完整模型保存到本地路径# 包括UNet、VAE、文本编码器、调度器、分词器等所有组件pipe.save_pretrained(local_path)# 打印确认信息提示用户保存位置print(f✓ 模型已保存到:{local_path})文件二generate_image.py— 从本地加载并生成图片# 从 diffusers 库导入 StableDiffusionPipeline 管道类fromdiffusersimportStableDiffusionPipeline# 导入 PyTorch 深度学习框架importtorch# # 配置参数# # 本地模型路径指向之前 download_model.py 保存的目录# 必须是完整路径包含 model_index.json 和所有子文件夹local_path./models/stable-diffusion-v1-5# # 加载本地模型# # 从本地路径加载预训练模型# 与下载时不同这里使用 local_path 而不是 model_idpipeStableDiffusionPipeline.from_pretrained(local_path,# 本地模型目录路径torch_dtypetorch.float16,# 保持与保存时一致的精度use_safetensorsTrue,# 使用 safetensors 格式加载local_files_onlyTrue# 强制只使用本地文件禁止联网下载# 如果本地文件缺失会报错不会自动去 HF 下载).to(cuda)# 将模型移动到 GPU 加速推理# # 生成图片# # 定义文本提示词描述想要生成的图像内容# a cute cat running on the grass: 主体内容可爱的猫在草地上奔跑# 8k: 提示高质量、高分辨率# realistic: 提示写实摄影风格prompta cute cat running on the grass, 8k, realistic# 执行图像生成# pipe(prompt) 内部流程# 1. 文本编码器将 prompt 转为语义向量# 2. UNet 在潜空间进行多步去噪默认 50 步# 3. VAE 将潜变量解码为像素图像# .images[0] 获取返回的 PIL Image 列表中的第一张图imagepipe(prompt).images[0]# 使用 Pillow 保存图像为 PNG 格式image.save(cat.png)# 打印完成信息print(✓ 图片已保存: cat.png)文件三sd_generate.py— 智能判断自动下载或本地加载# 从 diffusers 库导入 StableDiffusionPipeline 管道类fromdiffusersimportStableDiffusionPipeline# 导入 PyTorch 深度学习框架importtorch# 导入操作系统模块用于文件路径判断importos# # 配置参数# # Hugging Face 远程模型 ID用于首次下载model_idrunwayml/stable-diffusion-v1-5# 本地模型保存/加载路径local_path./models/stable-diffusion-v1-5# # 智能判断本地存在则用本地否则下载# # 使用 os.path.exists 检查本地模型目录是否存在# 判断依据目录存在且包含有效模型文件至少要有 model_index.jsonifos.path.exists(local_path):# 本地模型已存在进入此分支print( 从本地加载模型...)# 从本地路径加载不联网pipeStableDiffusionPipeline.from_pretrained(local_path,# 使用本地路径torch_dtypetorch.float16,use_safetensorsTrue,local_files_onlyTrue# 强制离线模式)else:# 本地模型不存在首次运行或模型被删除print( 从 Hugging Face 下载模型...)# 从远程 Hub 下载完整模型pipeStableDiffusionPipeline.from_pretrained(model_id,# 使用远程模型 IDtorch_dtypetorch.float16,use_safetensorsTrue)# 将下载的模型保存到本地方便下次使用pipe.save_pretrained(local_path)# 提示用户模型已缓存print(f✓ 模型已缓存到:{local_path})# # 统一处理移动到 GPU# # 无论上面哪个分支都将模型加载到 CUDA GPU# 注意这一步在 save_pretrained 之后因为保存不需要 GPUpipepipe.to(cuda)# # 生成图片# # 定义提示词描述想要的图像内容prompta cute cat running on the grass, 8k, realistic# 执行扩散过程生成图像imagepipe(prompt).images[0]# 保存生成的图像image.save(cat.png)# 打印完成信息print(✓ 图片已保存: cat.png)三个文件关系图首次运行 ──→ download_model.py ──→ 保存模型到 ./models/ │ └────→ sd_generate.py ───────→ 自动检测 → 下载 → 保存 → 生成 ↑ 日常运行 ──→ generate_image.py ──→ 直接从本地加载 → 生成 ↑ sd_generate.py ───────→ 检测到本地存在 → 直接加载 → 生成文件用途运行次数download_model.py仅下载保存1 次或更新模型时generate_image.py仅生图依赖本地模型无数次sd_generate.py二合一自动判断任意首次会下载

更多文章