小白上手AIGC-基于PAI-DSW部署Stable Diffusion文生图Lora模型

小白上手AIGC-基于PAI-DSW部署Stable Diffusion文生图Lora模型

  • 前言
  • 资源准备
    • 开启体验服务
    • 创建工作空间
  • 部署服务
    • 创建DSW实例
    • 安装Diffusers
    • 启动WebUI
  • 写在最后

前言

在上一篇博文小白上手AIGC-基于FC部署stable-diffusion 中,说到基于函数计算应用模板部署AIGC文生图应用,部署后实验的参数比较局限,可选参数不多,因此不太能更好的深入体验AIGC,这一篇博文我们部署一款基于PAI-DSW部署Stable Diffusion文生图Lora模型,希望可以达到我们想要的效果。拭目以待…

资源准备

开启体验服务

再开始实验之前,我们需要先开通交互式建模PAI-DSW 的服务,趁着阿里云推出的免费试用的机会,赶快来体验吧,试用中心地址:阿里云免费试用 找到机器学习平台PAI的类别,点击【立即试用】
在这里插入图片描述
开通交互式建模PAI-DSW服务之后,需要创建默认工作空间,

创建工作空间

创建默认工作空间,官方文档地址:开通并创建默认工作空间,比如选择地域杭州
在这里插入图片描述
点击【开通PAI并创建默认工作空间】,完成授权及勾选操作
在这里插入图片描述
点击【确认开通并创建默认工作空间】完成默认工作空间的创建。

部署服务

回到PAI控制台首页,可以在工作空间列表中看到我们刚才创建的默认工作空间信息,
在这里插入图片描述
在控制台选择菜单【交互式建模(DSW)】
在这里插入图片描述

创建DSW实例

这里会默认选中我们刚才创建的工作空间,点击【进入DSW】
在这里插入图片描述
点击【创建实例】
在这里插入图片描述
输入实例名称,点击tab 【GPU规格】,选择规格【ecs.gn7i-c8g1.2xlarge】
在这里插入图片描述
继续选择镜像【stable-diffusion-webui-env:pytorch1.13-gpu-py310-cu117-ubuntu22.04】点击【下一步】
在这里插入图片描述
确认完信息之后点击【创建实例】
在这里插入图片描述

安装Diffusers

下载Diffusers开源库并安装,为后续下载stable-diffusion-webui开源库做准备。
点击【打开】
在这里插入图片描述
Notebook,选择【Python3】如图
在这里插入图片描述
输入命令下载Diffusers开源库

! git clone https://github.com/huggingface/diffusers

下载开源库过程中,如果遇到超时的情况可以再次执行下载即可
在这里插入图片描述
验证一下是否安装成功

import diffusers

在这里插入图片描述
配置accelerate,选择Terminal输入配置命令

accelerate config

确认之后,通过键盘上下键选中This machine并确认
在这里插入图片描述
然后在选择multi-GPU
在这里插入图片描述
选中之后确认,后面的一次按截图的内容选择即可
在这里插入图片描述
最后选中fp16 点击确认
在这里插入图片描述
此时可以看到accelerate配置完成了。下面继续回到python3页面安装文生图算法相关依赖库

! cd diffusers/examples/text_to_image && pip install -r requirements.txt

在这里插入图片描述
下面开始下载stable-diffusion-webui开源库,执行命令

! git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git && \cd stable-diffusion-webui && \git checkout a9fed7c364061ae6efb37f797b6b522cb3cf7aa2! cd stable-diffusion-webui && mkdir -p repositories && cd repositories && \git clone https://github.com/sczhou/CodeFormer.git

下载过程中如果遇到这种情况,再次执行以下命令就可以了
在这里插入图片描述
最后下载完成。继续下载示例数据集,后续会使用该数据集进行模型训练。执行如下命令

! wget http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/datasets/try_on/cloth_train_example.tar.gz && tar -xvf cloth_train_example.tar.gz
! wget http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/datasets/try_on/train_text_to_image_lora.py

数据集下载完成之后可以看到
在这里插入图片描述
查看一下示例服装,执行命令

from PIL import Image
display(Image.open("cloth_train_example/train/20230407174450.jpg"))

执行结果可以看到
在这里插入图片描述
继续下载预训练模型并转化成diffusers格式,执行命令

! cd stable-diffusion-webui/models/Stable-diffusion && wget -c https://huggingface.co/naonovn/chilloutmix_NiPrunedFp32Fix/resolve/main/chilloutmix_NiPrunedFp32Fix.safetensors -O chilloutmix_NiPrunedFp32Fix.safetensors
! python diffusers/scripts/convert_original_stable_diffusion_to_diffusers.py \
--checkpoint_path=stable-diffusion-webui/models/Stable-diffusion/chilloutmix_NiPrunedFp32Fix.safetensors \
--dump_path=chilloutmix-ni --from_safetensors

执行结果如图
在这里插入图片描述
执行命令,设置num_train_epochs为200,进行lora模型的训练

! export MODEL_NAME="chilloutmix-ni" && \export DATASET_NAME="cloth_train_example" && \accelerate launch --mixed_precision="fp16" train_text_to_image_lora.py \--pretrained_model_name_or_path=$MODEL_NAME \--dataset_name=$DATASET_NAME --caption_column="text" \--width=640 --height=768 --random_flip \--train_batch_size=1 \--num_train_epochs=200 --checkpointing_steps=5000 \--learning_rate=1e-04 --lr_scheduler="constant" --lr_warmup_steps=0 \--seed=42 \--output_dir="cloth-model-lora" \--validation_prompt="cloth1" --validation_epochs=100

训练完成之后可以看到
在这里插入图片描述
然后将lora模型转化成WebUI支持格式并拷贝到WebUI所在目录

! wget -c http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/datasets/convert-to-safetensors.py
! python convert-to-safetensors.py --file='cloth-model-lora/pytorch_lora_weights.bin'
! mkdir stable-diffusion-webui/models/Lora
! cp cloth-model-lora/pytorch_lora_weights_converted.safetensors stable-diffusion-webui/models/Lora/cloth_lora_weights.safetensors

执行结果如图
在这里插入图片描述
准备其他模型文件

! mkdir stable-diffusion-webui/models/Codeformer
! cd stable-diffusion-webui/repositories/CodeFormer/weights/facelib/ && \
wget -c http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/datasets/try_on/detection_Resnet50_Final.pth && \
wget -c http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/datasets/try_on/parsing_parsenet.pth
! cd stable-diffusion-webui/models/Codeformer && wget -c http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/datasets/try_on/codeformer-v0.1.0.pth
! cd stable-diffusion-webui/embeddings && wget -c http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/datasets/try_on/ng_deepnegative_v1_75t.pt
! cd stable-diffusion-webui/models/Lora && wget -c https://huggingface.co/Kanbara/doll-likeness-series/resolve/main/koreanDollLikeness_v10.safetensors

执行结果如图
在这里插入图片描述

启动WebUI

在Notebook中,执行如下命令,启动WebUI

! cd stable-diffusion-webui && python -m venv --system-site-packages --symlinks venv
! cd stable-diffusion-webui && \sed -i 's/can_run_as_root=0/can_run_as_root=1/g' webui.sh && \./webui.sh --no-download-sd-model --xformers

这个命令执行过程中可能会遇到多种情况的错误,每次遇到错误情况时重新执行命令即可,错误情况比如
在这里插入图片描述
或者是
在这里插入图片描述
最后执行成功的界面如下
在这里插入图片描述
启动成功之后单机链接地址进入模型训练页面
在这里插入图片描述
输入待生成模型文本等待生成结果。

写在最后

整体来说,本次操作的时间会耗时比较久,两个小时左右,在部署过程中可能会遇到各种不成功的情况,不用担心,再次执行命令即可。
另外,对于AIGC文生图的操作,对于生成图像与文字描述是否匹配,这个主要还是取决于你当前使用的文生图模型的训练程度,模型训练的结果直接决定了AIGC文生图的准确度,由此及彼的来看,对于AIGC文生图、图生文、文生视频、文生音频等的操作,随着模型训练的不断丰富话,后续想要生成更加准确的切合文字内容的图片及视频都是很有可能的,目前一直希望可以准确生成《少年闰土》中的一段情节
:深蓝的天空中挂着一轮金黄的圆月,下面是海边的沙地,都种着一望无际的碧绿的西瓜。其间有一个十一二岁的少年,项戴银圈,手捏一柄钢叉,向一匹猹用力地刺去。那猹却将身一扭,反从他的胯下逃走了。多方查找还没找到比较生成图比较接近的,后续会继续尝试基于其他云产品的AIGC服务。

活动推广:https://developer.aliyun.com/huodong/dashiblogger?userCode=fkssw94w

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/37500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python基础语法 004-1流程控制- 条件控制

1 条件控制 1.1 表达 条件表达式冒号缩进 1.1.1 单个条件:满足表达式 """ ############if的表示 if 条件表达式:(缩进)条件满足以后要运行的代码例子: #遇到冒号要缩进 #缩进:1个缩进用4个空格,整个篇幅缩进需要统一 #4个…

揭开统计分析的秘密:独立样本和配对样本T检验实战案例

一、独立样本T检验 1.收集20名学生的自信心值 见下表,试问该指标是否与性别有关?(非参数检验或参数检验) 数据值 性别 1,1,1,1,2,2,1,1&#…

国产操作系统上netstat命令详解 _ 统信 _ 麒麟 _ 中科方德

原文链接:国产操作系统上netstat命令详解 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天给大家带来一篇在国产操作系统上使用netstat命令的详解文章。netstat是网络统计(network statistics)的缩写,它是一…

【股指期权投教】一手股指期权大概多少钱?

一手股指期权的权利金大概在几千人民币左右,如果是作为期权卖方还需要另外缴纳保证金的。国内的股指期权有三种,沪深300、上证50、中证1000股指期权,每点合约人民币100 元。 期权合约的价值计算可以通过此公式得出:权利金的支付或…

软件工程实验

实验环境和需求 用户可以对相片进行按类别管理,用户可以设定不同的类别,然后上传照片到相应的类别中,并能进行照片的删除,注释 运行 运行并访问 localhost 8090,图片在数据库中的信息是D:/upgrade 后面的内容 se…

windographer数据操作教程

目录 通道设置将4个windographer文件拼到一起映射关系通道设置 先把风速列选中,将Type改为 wind speed 无需额外操作,确认一下即可

QT4-QT5(6)-const char* QString 乱码转换

我简单粗暴的给出个结论: QString GBK编码正常,可以转UTF-8编码,但会有少量乱码。 const char* 编码就不要转编码,转哪个都是乱码。 UTF-8.cpp 下 1.QString GBK->UTF-8 2.const char * GBK->UTF-8 const char *…

数据可视化在智慧园区中的重要作用

在现代智慧园区的建设和管理中,数据的作用越来越重要。智慧园区利用物联网、云计算、大数据等技术,实现了园区各类信息的实时采集和处理。数据可视化作为数据处理和展示的重要工具,为智慧园区的各个方面提供了强有力的支持。 首先&#xff0c…

mybatis的高级映射

mybatis的高级映射(重点) 表与表之间的关系: 一对一关系: 栗子:一个人对应一个身份证号 一对多关系: 栗子:一个用户可以有多个订单 1. 分析需求&…

[深度学习] 自编码器Autoencoder

自编码器(Autoencoder)是一种无监督学习算法,主要用于数据的降维、特征提取和数据重建。自编码器由两个主要部分组成:编码器(Encoder)和解码器(Decoder)。其基本思想是将输入数据映射…

文心一言 VS 讯飞星火 VS chatgpt (290)-- 算法导论21.3 3题

三、给出一个包含 m 个 MAKE-SET 、UNION 和 FINDSET 操作的序列(其中有 n 个是 MAKE-SET 操作),当仅使用按秩合并时,需要 Ω(mlgn) 的时间。如果要写代码,请用go语言。 文心一言: 在并查集(Union-Find)数…

2024最出色的代理软件评估及推荐

随着网络技术的飞速发展,代理软件已成为许多网络活动不可或缺的工具,特别是在数据抓取、网络安全防护等方面。在众多代理软件中,哪些能真正满足用户需求,提供卓越的性能和服务呢?我们的测评团队经过深入研究和测试&…

笔记本电脑安装CentOS

正文共:1234 字 24 图,预估阅读时间:2 分钟 前面我们对VPP进行了多次介绍(羡慕!大佬的VPP能达到180G性能,而我的却只有13.5G),可以发现他的很多优点,但是我们也可以发现它…

【Sklearn-驯化】sklearn中决策树cart的用法,看这篇就够了

【Sklearn-驯化】sklearn中决策树cart的用法,看这篇就够了 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内容文档…

鸿蒙NEXT

[中国,东莞,2024年6月24日] 华为开发者大会(HDC)正式开幕,带来全新的 HarmonyOS NEXT、盘古大模型5.0等最创新成果,持续为消费者和开发者带来创新体验。 HarmonyOS NEXT 鸿蒙生态 星河璀璨 鸿蒙生态设备数…

【实战指南】SpringBoot结合Zookeeper/Nacos构建Dubbo微服务

1、微服务架构 微服务架构是一种设计复杂应用程序的方法,它提倡将单一应用程序开发为一组小型、独立的服务,每个服务运行在其自己的进程中,并通过轻量级通信(通常是HTTP协议)进行交互。每个服务都是围绕业务功能构建的…

通讯录管理系统——显示联系人

功能描述:显示通讯录中已有的联系人信息 显示联系人实现步骤: 1.封装显示联系人函数 2.测试显示联系人功能 一、封装显示联系人函数 思路:判断如果当前通讯录中没有人员,就提示记录为空;人数大于0,显示…

Java代码基础算法练习-计算看完一本书的天数-2024.06.29

任务描述: 一本书有 n 页,小明第一天看 1 页,以后每天都比前一天多看 2 页,计算小明看完整本书 需要多少天? 解决思路: 每天都比前一天多看 2 页,输入的页数 n 为判断标准,while 循…

【提交ACM出版 | EIScopus检索稳定 | 高录用】第五届大数据与社会科学国际学术会议(ICBDSS 2024,8月16-18)

第五届大数据与社会科学国际学术会议(ICBDSS 2024)将于2024年08月16-18日在中国-上海隆重举行。 ICBDSS会议在各专家教授的支持下,去年已成功举办了四届会议。为了让更多的学者有机会参与会议分享交流经验。本次会议主要围绕“大数据”、“社…

【nvm】如何使用nvm优雅的管理Node.js

希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 关注 收藏 支持一下博主吧~ 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、什么是nvm?2.1 概念2.1 安装2.1.1 对于Mac系统2.1.2 对于Windows系统2.1.3 对于…