【案例共创】昇腾NPU部署SDXL文生图模型

最新案例动态,请查阅【案例共创】昇腾NPU部署SDXL文生图模型。小伙伴们快来领取华为开发者空间进行实操吧!

1 概述

1.1 案例介绍

SDXL (Stable Diffusion XL) 是Stable Diffusion系列中最先进的文生图(text-to-image)模型,其主要特点是:模型规模更大、图像质量更高、文本理解能力更强。

本案例通过实际操作,借助华为开发者空间提供的免费昇腾NPU资源Notebook进行代码开发,使用模型stable-diffusion-xl-base-1_0,进行文生图推理体验。

1.2 适用对象

  • 个人开发者

  • 高校学生

1.3 案例时间

本案例总时长预计30分钟。

1.4 案例流程

说明:

  1. 用户进入开发者空间配置Notebook环境;

  2. 启动Notebook,编写代码,进行文生图推理体验;

1.5 资源总览

本案例预计花费0元。

资源名称 规格 单价(元) 时长(分钟) 开发者空间-Notebook

NPU basic · 1 * NPU 910B · 8v CPU · 24GB

euler2.9-py310-torch2.1.0-cann8.0-openmind0.9.1-notebook

0 30

2 环境配置

2.1 开发者空间配置

面向广大开发者群体,华为开发者空间提供免费昇腾NPU资源的Notebook,方便开发者学习昇腾相关的专业知识以及配套实验。

开发者可以直接进入华为开发者空间工作台界面,找到右侧AI Notebook,点击立即前往> 立即启动>查看Notebook,进去到Notebook界面。

预制镜像:euler2.9-py310-torch2.1.0-cann8.0-openmind0.9.1-notebook;

关联模型:stable-diffusion-xl-base-1_0;

立即启动:

启动中,请耐心等待:

查看Notebook:

3 使用Diffusers运行SDXL模型

3.1 运行环境更新

进入Notebook后,点击终端:

打开终端窗口:

根据当前环境的pytorch版本更新Diffusers等框架的版本。

在终端输入以下命令行:

pip install --upgrade diffusers[torch]

pip install --upgrade transformers[torch]

当安装完成后,如下图通过pip list查看所有安装的三方库:

3.2 文生图推理

回到Notebook首页,点击笔记本下方的Python3:

将以下代码复制到单元格中:

import torch

from diffusers import DiffusionPipeline

# 推理配置

# 模型地址如果是单独下载的请在模型目录执行pwd命令查看具体的路径

# 预置路径:model/stable-diffusion-xl-base-1_0

model_path = "model/stable-diffusion-xl-base-1_0"

device="npu"

# 此处的文生图提示词是我让deepseek帮我写的:我正在使用sdxl-base-1.0模型进行文生图创作,需要生成一张三体太空电梯的图片,请帮忙写提示词,提示词要小于70个tokens

prompt = "Space elevator from Earth's equator to space, anchored by ocean base. Translucent nanotube cable extending to orbital station. Glowing climbers ascending, starry cosmos background. Three-Body sci-fi aesthetic, volumetric lighting --ar 4:3"

# 加载模型

pipe = DiffusionPipeline.from_pretrained(model_path, torch_dtype=torch.float16, use_safetensors=True, variant="fp16")

pipe.to(device)

# if using torch < 2.0

# pipe.enable_xformers_memory_efficient_attention()

# 推理

image = pipe(prompt=prompt).images[0]

# 保存图片

image.save("output1.png")

# 显示图片

import matplotlib.pyplot as plt

plt.axis("off")

plt.imshow(image)

注意:本案例使用的昇腾专区的Notebook已经预置了sdxl-base模型,预置路径:model/stable-diffusion-xl-base-1_0

使用stable-diffusion-xl-base-1_0模型推理,文本生成图片,生成一张三体太空电梯的图片。

点击左上角运行按钮,运行单元格中的代码:

运行成功后,生成太空电梯图片:

output1.png

成功生成一张三体太空电梯的图片!

3.3 验证文生图推理

生成一张中国古风美女的图片:

提示词:唐朝优雅女子,穿着丝绸汉服,凤凰发簪,瓷白肌肤。桃花背景,月光照耀,水墨风格,飘逸优雅。

# 更换提示词重新生成,deepseek联网+深度思考:我正在使用sdxl-base-1.0模型进行文生图创作,需要生成一张中国古风美女的图片,请帮忙写提示词,提示词要小于70个tokens

prompt=“Elegant Tang dynasty lady in silk hanfu, phoenix hairpin, porcelain skin. Peach blossoms background, moonlight glow, ink-wash style, ethereal grace --ar 4:3”

将以下完整代码复制到单元格中:

import torch

from diffusers import DiffusionPipeline

# 推理配置

# 模型地址如果是单独下载的请在模型目录执行pwd命令查看具体的路径

# 预置路径:model/stable-diffusion-xl-base-1_0

model_path = "model/stable-diffusion-xl-base-1_0"

device="npu"

# 更换提示词重新生成,deepseek联网+深度思考:我正在使用sdxl-base-1.0模型进行文生图创作,需要生成一张中国古风美女的图片,请帮忙写提示词,提示词要小于70个tokens

prompt="Elegant Tang dynasty lady in silk hanfu, phoenix hairpin, porcelain skin. Peach blossoms background, moonlight glow, ink-wash style, ethereal grace --ar 4:3"

# 加载模型

pipe = DiffusionPipeline.from_pretrained(model_path, torch_dtype=torch.float16, use_safetensors=True, variant="fp16")

pipe.to(device)

# if using torch < 2.0

# pipe.enable_xformers_memory_efficient_attention()

# 推理

image = pipe(prompt=prompt).images[0]

# 保存图片

image.save("output2.png")

# 显示图片

import matplotlib.pyplot as plt

plt.axis("off")

plt.imshow(image)

点击左上角运行按钮,运行单元格中的代码:

运行成功后,生成中国古风美女图片:

output2.png

生成一张蒙古草原景色的图片:

提示词: 宁静的蒙古草原景观,清澈的蓝天下的广阔绿色平原,散落的野花,远处的传统蒙古包,放牧的马匹,柔和的阳光,宁静的气氛,高度详细,4K摄影,现实主义风格。

# 更换提示词重新生成,deepseek联网+深度思考:我正在使用sdxl-base-1.0模型进行文生图创作,需要生成一张蒙古草原景色图片,请帮忙写提示词,提示词要小于70个tokens

prompt=“Serene Mongolian grassland landscape, vast green plains under clear blue sky, scattered wildflowers, traditional yurts in distance, grazing horses, soft sunlight, peaceful atmosphere, highly detailed, 4K photography, realistic style --ar 4:3”

将以下完整代码复制到单元格中:

import torch

from diffusers import DiffusionPipeline

# 推理配置

# 模型地址如果是单独下载的请在模型目录执行pwd命令查看具体的路径

# 预置路径:model/stable-diffusion-xl-base-1_0

model_path = "model/stable-diffusion-xl-base-1_0"

device="npu"

# 更换提示词重新生成,deepseek联网+深度思考:我正在使用sdxl-base-1.0模型进行文生图创作,需要生成一张蒙古草原景色图片,请帮忙写提示词,提示词要小于70个tokens

prompt="Serene Mongolian grassland landscape, vast green plains under clear blue sky, scattered wildflowers, traditional yurts in distance, grazing horses, soft sunlight, peaceful atmosphere, highly detailed, 4K photography, realistic style --ar 4:3"

# 加载模型

pipe = DiffusionPipeline.from_pretrained(model_path, torch_dtype=torch.float16, use_safetensors=True, variant="fp16")

pipe.to(device)

# if using torch < 2.0

# pipe.enable_xformers_memory_efficient_attention()

# 推理

image = pipe(prompt=prompt).images[0]

# 保存图片

image.save("output3.png")

# 显示图片

import matplotlib.pyplot as plt

plt.axis("off")

plt.imshow(image)

点击左上角运行按钮,运行单元格中的代码:

运行成功后,生成蒙古草原图片:

output3.png

至此,昇腾NPU部署SDXL文生图模型的案例内容已全部完成。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值