人工智能服务
>
实践案例
>
stable diffusion 1.5 文生图
进入控制台,在控制台首页,选择“人工智能”进入创建Notebook界面,选择mindspore 2.2镜像
待notebook创建成功后,点击"访问服务"进入jupterlab页面,点击进入控制台
git clone https://gitee.com/mindspore-lab/mindone.git
#权重放在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
cd mindone/examples/stable_diffusion_v2
pip install -r requirements.txt
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目录
创建一个新的notebook页面,执行如下代码
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()