Skip to content

stable diffusion 1.5 文生图

控制台创建Notebook

进入控制台,在控制台首页,选择“人工智能”进入创建Notebook界面,选择mindspore 2.2镜像 img_4.png

待notebook创建成功后,点击"访问服务"进入jupterlab页面,点击进入控制台 img_1.png

克隆代码仓库

git clone https://gitee.com/mindspore-lab/mindone.git

准备权重

bash
#权重放在mindone/examples/stable_diffusion_v2/models 目录
cd mindone/examples/stable_diffusion_v2/models
wget https://download.mindspore.cn/toolkits/mindone/stable_diffusion/sd_v1.5-d0ab7146.ckpt
#如果wget提示报错,可尝试执行
# unset http_proxy  
# unset https_proxy

安装依赖

bash
cd mindone/examples/stable_diffusion_v2
pip install -r requirements.txt

执行推理

bash
cd mindone/examples/stable_diffusion_v2
#python text_to_image.py --prompt {text prompt} -v {model version}
python text_to_image.py --prompt --prompt  "Iron Man and the Kitten" -v 1.5

执行完成会显示如下提示,结果存在output/samples目录 img_2.png

结果展示

创建一个新的notebook页面,执行如下代码

python
import os
from PIL import Image
import matplotlib.pyplot as plt

directory_path = '/home/ma-user/work/mindone-master/examples/stable_diffusion_v2/output/samples/'
# 获取目录中的所有图片文件
image_files = [f for f in os.listdir(directory_path) if f.endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp'))]

# 计算需要的子图数量
num_images = len(image_files)
num_rows = (num_images + 3) // 4  # 每行4张图片

# 创建子图
fig, axes = plt.subplots(num_rows, 4, figsize=(16, 4 * num_rows))
axes = axes.flatten()  # 将二维数组展平为一维数组

# 遍历图片文件并展示
for i, filename in enumerate(image_files):
    image_path = os.path.join(directory_path, filename)
    img = Image.open(image_path)

    ax = axes[i]
    ax.imshow(img)
    ax.set_title(filename)
    ax.axis('off')  # 关闭坐标轴

# 移除多余的子图
for j in range(i + 1, len(axes)):
    fig.delaxes(axes[j])

plt.tight_layout()
plt.show()

img.png