本地布署Diffusers库实现文生图

本次随笔,记录开源Python库Diffusers库的使用。

Diffusers库由Hugging Face维护,拥有活跃的社区和丰富的文档。
Diffusers库是专注于扩散模型(Diffusion Models)的开源Python库。
Diffusers库多任务支持​​:支持无条件图像生成、文本到图像、图像到图像、超分辨率、图像修复、音频生成等多种任务

 

一,#本机环境检查

执行nvidia-smi,查看右上角。验证显卡驱动已安装最高支持的版本。

nvidia-smi

执行nvcc -V验证cuda

nvcc -V

执行conda --version验证conda版本

conda --version

#列出所有已创建的Conda 环境​​:

conda env list
或
conda info --envs

#若存在,先删除已存在环境

conda env remove -n diffusers_qwen_image

#创建新环境

conda create -n diffusers_qwen_image python=3.10

#激活环境

conda activate diffusers_qwen_image

 

二,库和依赖包安装

#安装最新版本的 diffusers

pip install git+https://github.com/huggingface/diffusers

#安装最新版本的 diffusers,临时清华镜像源下载

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple diffusers[torch]

​​#验证 diffusers库是否安装成功

python3 -c "import diffusers; print('diffusers 导入成功,版本:', diffusers.__version__)"

 

#安装 transformers库和依赖。 Stable Diffusion 所需的其他常见依赖也一并安装。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade transformers diffusers accelerate scipy ftfy

#验证transformers库是否安装成功

python3 -c "import transformers; print('transformers 版本:', transformers.__version__)"

 

根据CUDA版本安装PyTorch​​:
​​CUDA 12.1​​:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

​​CUDA 12.2​​:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu122

 

#验证PyTorch是否能正确识别GPU

python3 -c "import torch; print('PyTorch版本:', torch.__version__); print('CUDA可用:', torch.cuda.is_available()); print('CUDA版本:', torch.version.cuda); print('GPU设备:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None'); print('GPU数量:', torch.cuda.device_count());"

 

三,设置环境变量,运行轻量级模型

首次运行 DiffusionPipeline.from_pretrained时,程序会从 Hugging Face Hub下载预训练模型。如果网络连接不稳定,下载可能会非常慢或失败,导致程序卡在下载阶段
​​解决方法:配置国内镜像加速。在运行你的Python命令​​之前​​,先在终端执行以下命令:

#设置环境变量,使用Hugging Face国内镜像站:

export HF_ENDPOINT=https://hf-mirror.com

 

#使用轻量级模型​​: "runwayml/stable-diffusion-v1-5",用于验证流程。本次我本机指定第7张和第8张显卡运行

CUDA_VISIBLE_DEVICES=6,7 python3 -c "
from diffusers import DiffusionPipeline
import torch

# 使用镜像站后,直接加载模型,不指定 revision(使用默认版本)
pipe = DiffusionPipeline.from_pretrained('runwayml/stable-diffusion-v1-5', torch_dtype=torch.float16)

# 根据CUDA可用性决定设备
device = 'cuda' if torch.cuda.is_available() else 'cpu'
pipe.to(device)

# 如果使用CPU或内存有限,可以启用模型卸载(但会慢一些)
# pipe.enable_attention_slicing()

print('Pipeline加载完成,开始生成图像...')
# 生成图像
image = pipe('一只猫', num_inference_steps=20).images[0] # 减少步数以加快速度
image.save('test_output_sd.png')
print('图像已保存为 test_output_sd.png')
"

效果图

 

image

 

 

image

 

posted on 2025-09-13 21:55  yi-sheng  阅读(47)  评论(0)    收藏  举报