LLM大模型实战项目--基于Stable Diffusion的电商平台虚拟试衣

本文详细讲解LLM大模型实战项目,基于Stable Diffusion的电商平台虚拟试衣

一、项目介绍

二、阿里PAI平台介绍

三、阿里云注册及开通PAI

四、PAI_DSW环境搭建

五、SD+LORA模型微调

一、项目介绍

        AI虚拟试衣是一种创新的技术,利用人工智能和计算机视觉技术,能够让用户在线上购物时实时试穿衣物,以便更好地了解衣物的效果和适合程度。以下是AI虚拟试衣的一些功能和优势:

1. 实时试穿:用户可以通过上传照片或使用摄像头,将自己的身体映射到虚拟试衣系统中,实时试穿衣物。这样,用户无需亲自到实体店试衣,也能够得到试穿的体验。

2. 个性化推荐:AI虚拟试衣系统可以根据用户的身体特征和喜好,推荐最适合的衣物款式和尺寸。这样,用户能够更快地找到满意的衣物,提高购物的效率。

3. 多角度展示:AI虚拟试衣系统可以将衣物在虚拟身体上的效果以多个角度展示给用户,让用户全面了解衣物的外观和质感。这有助于用户更准确地评估衣物的适合度。

4. 试衣反馈:AI虚拟试衣系统可以提供试衣反馈,比如衣物的松紧度、长度等方面是否合适。用户可以根据反馈进行调整,以便找到最适合自己的衣物。

5. 节省时间和成本:AI虚拟试衣系统能够帮助用户节省试衣的时间和成本,无需去实体店试穿,也无需购买后再退换。用户可以在家中轻松地试穿衣物,提高购物的便利性。

        AI虚拟试衣为用户提供了更方便、更个性化的在线购物体验,同时也为商家提供了更好的销售和推广渠道。这项技术的发展,将有助于改变人们的购物方式,并推动线上购物的发展。

 该项目基于stable diffusion,使用Lora进行服饰训练和可控生成。

通过添加少量的可微调参数和使用少量的数据集,快速进行模型的微调,从而为模特、动作、背景等提供广泛的生成空间

二、阿里PAI平台介绍

        阿里巴巴PAI平台(Ali Prediction AI Platform)是阿里巴巴集团开发的一种集成化AI开发平台。PAI平台提供了一系列AI算法和工具,可用于构建和部署各种AI应用。PAI平台提供了丰富的AI算法库,包括图像和视频识别、自然语言处理、声音和语音处理等多种领域。开发者可以使用这些算法来构建自己的AI模型,并通过PAI平台的模型训练和部署功能进行模型的训练和使用。PAI平台还提供了一套完整的工具链,用于支持AI应用的开发和管理。这些工具包括数据处理工具、模型训练和调试工具、模型部署和监控工具等,可帮助开发者高效地进行AI应用的开发和运维。PAI平台还提供了一些额外的功能,如模型评估和推理加速等。开发者可以使用这些功能来评估和优化自己的AI模型,并提供更高效的推理性能。

按照机器学习全流程,PAI分别提供了数据准备、模型开发与训练及模型部署阶段的产品:

        1. 数据准备:PAI提供了智能标注,支持在多种场景下进行数据标注和数据集管理。

        2. 模型开发与训练:PAI提供了可视化建模(Designer)、交互式建模(DSW)、分布式 训练(DLC)以及特征平台(FeatureStore),满足不同的建模需求。

        3. 模型部署:PAI提供了模型在线服务(EAS)和推理加速工具(Blade),帮助您快速地 将模型部署为服务。同时,PAI提供了智能生态市场,您可以获取业务解决方案和模型 算法,实现相关业务和技术的高效对接。

业务层:PAI应用于金融、医疗、教育、交通以及安全等各个领域。阿里巴巴集团内部的搜索 系统、推荐系统及金融服务系统等,均依赖于PAI进行数据挖掘。

本项目基于PAI平台实现。

三、阿里云注册及开通PAI

        进入阿里云官网www.aliyun.com,单击页面右上角的登录/注册按钮,点击注册。

个人实名认证

登录PAI控制台

选择需要开通的地域后,单击页面中间的开通引导按钮

        在右侧弹出的订单详情页面确认开通基本信息,并配置影响开通的关键参数, 完成后可单击前往默认工作空间或进入PAI控制台,进行后续的AI开发工作。

四、PAI_DSW环境搭建

        PAI-DSW是PAI产品的云端机 器学习开发IDE,适用于不同 水平的开发者。DSW集成了开源JupyterLab ,以插件化的形式进行深度定 制化开发,提供丰富的计算资 源,且对接多种数据源。通过EASCMD的方式,可以将 DSW获得的训练模型部署为 EAS模型服务。

        点击DSW,创建一个实例。

创建DSW实例-实例信息设置

名字自己写一个

配置要选一个24GB的GPU,显存太小跑的太慢。

创建DSW实例-环境配置,选择Stable Diffusion WebUI和torch2.0和python3.10版本的

点击下一步,构建环境,大约需要5-15分钟的时间进行构建。 

创建DSW实例-启动实例

启动实例后即可进行虚拟试衣项目的开发。

在Notebook页签的Launcher页面,单击快速开始区域Tool下的DSW Gallery,打开DSW Gallery页面。

        在DSW Gallery页面中,搜索并找到AIGC Stable diffusion文生图Lora模型微调实现虚拟上装教程,单击教 程卡片中的在DSW中打开。

单击后即会自动将本教程所需的资源和教程文件下载至DSW实例中,并在下载完成后自动打开教程文件。

        在打开的教程文件stable_diffusion_try_on.ipynb文件中,可以直接看到教程文本,您可以在教程文件中 直接运行对应的步骤的命令,当成功运行结束一个步骤命令后,再顺次运行下个步骤的命令。

Diffusers安装

! pip install -U http://pai-vision-data-hz.oss-cnzhangjiakou.aliyuncs.com/EasyCV/datasets/diffusers-0.22.0.dev0-py3-noneany.whl

配置accelerate。可以直接运行命令下载默认配置文件,若需要自定义配置则在Terminal中执行命令:accelerate config,并根据DSW实例详情,选择对应配置。

! mkdir -p /root/.cache/huggingface/accelerate/
! wget -c http://pai-vision-data-sh.oss-cn-shanghai.aliyuncs.com/aigcdata/accelerate/default_config.yaml -O
/root/.cache/huggingface/accelerate/default_config.yaml

下载stable-diffusion-webui开源库。为了提升下载速度,本示例在OSS上缓存了代码包,直接执行如下命令即可完成下载

import os
! apt update
! apt install -y aria2 def aria2(url, filename, d):
!aria2c --console-log-level=error -c -x 16 -s 16 {url} -o {filename} -d {d} url_prefix
= { "cn-shanghai": "http://pai-vision-data-sh.oss-cn-shanghaiinternal.aliyuncs.com", "cn-hangzhou": "http://pai-vision-data-hz2.oss-cnhangzhou-internal.aliyuncs.com", "cn-shenzhen": "http://pai-vision-datasz.oss-cn-shenzhen-internal.aliyuncs.com", "cn-beijing": "http://pai-visiondata-bj.oss-cn-beijing-internal.aliyuncs.com", "ap-southeast-1": "http://paivision-data-ap-southeast.oss-ap-southeast-1-internal.aliyuncs.com" }
dsw_region = os.environ.get("dsw_region") prefix = url_prefix[dsw_region] if
dsw_region in url_prefix else "http://pai-vision-data-sh.oss-cnshanghai.aliyuncs.com" webui_url = f"{prefix}/aigc-data/code/stable-diffusionwebui-v1.tar.gz" aria2(webui_url, webui_url.split("/")[-1], "./")

下载完成后进行配置

! tar -xf stable-diffusion-webui-v1.tar.gz
! cd stable-diffusion-webui && wget -c http://pai-vision-data-sh.oss-cnshanghai.aliyuncs.com/aigc-data/webui_config/config_tryon.json -O
config.json

五、SD+LORA模型微调

准备数据集及训练代码

! wget -c http://pai-vision-data-hz.oss-cnzhangjiakou.aliyuncs.com/EasyCV/datasets/try_on/cloth_train_example.tar.gz &&
tar -xvf cloth_train_example.tar.gz
! wget -c http://pai-vision-data-hz.oss-cnzhangjiakou.aliyuncs.com/EasyCV/datasets/try_on/train_text_to_image_lora_v2.p
y

查看示例图片

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

下载预训练模型并转化成diffusers格式

safety_checker_url = f"{prefix}/aigc-data/hug_model/models--CompVis--stablediffusion-safety-checker.tar.gz" aria2(safety_checker_url,
safety_checker_url.split("/")[-1], "./")
! tar -xf models--CompVis--stable-diffusion-safety-checker.tar.gz -C
/root/.cache/huggingface/hub/ clip_url = f"{prefix}/aigcdata/hug_model/models--openai--clip-vit-large-patch14.tar.gz" aria2(clip_url,
clip_url.split("/")[-1], "./")
! tar -xf models--openai--clip-vit-large-patch14.tar.gz -C
/root/.cache/huggingface/hub/ model_url = f"{prefix}/aigcdata/sd_models/chilloutmix_NiPrunedFp32Fix.safetensors" aria2(model_url,
model_url.split("/")[-1], "stable-diffusion-webui/models/Stable-diffusion/")
! wget -c http://pai-vision-data-hz.oss-cnzhangjiakou.aliyuncs.com/EasyCV/datasets/convert_original_stable_diffusion_to_
diffusers.py ! python convert_original_stable_diffusion_to_diffusers.py \ --
checkpoint_path=stable-diffusion-webui/models/Stablediffusion/chilloutmix_NiPrunedFp32Fix.safetensors \ --dump_path=chilloutmix-ni
--from_safetensors

下载预训练模型并转化成diffusers格式

模型训练

! export MODEL_NAME="chilloutmix-ni" && \
export DATASET_NAME="cloth_train_example" && \
accelerate launch
--mixed_precision="fp16" train_text_to_image_lora_v2.py \
--pretrained_model_name_or_path=$MODEL_NAME \
--train_data_dir=$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 --rank=128

模型部署

将lora模型转化成WebUI支持格式并拷贝到WebUI所在目录

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

 Lora模型运行结果

额外模型文件

为了加速下载在oss做了缓存,可以运行如下命令直接下载

embedding_url = f"{prefix}/aigc-data/embedding/ng_deepnegative_v1_75t.pt"
aria2(embedding_url, embedding_url.split("/")[-1], "stable-diffusionwebui/embeddings/")
model_lora_url = f"{prefix}/aigcdata/lora/koreanDollLikeness_v10.safetensors"
aria2(model_lora_url, model_lora_url.split("/")[-1], "stable-diffusionwebui/models/Lora/")
bert_url = f"{prefix}/aigc-data/hug_model/models--bert-base-uncased.tar.gz"
aria2(bert_url, bert_url.split("/")[-1], "~/.cache/huggingface/hub") ! cd
~/.cache/huggingface/hub && tar -xvf models--bert-base-uncased.tar.gz

额外模型文件输出结果

在DSW中启动WebUI

! cd stable-diffusion-webui && python launch.py --no-half-vae --xformers

在WebUI页签配置以下参数

Prompt:cloth1,<lora:koreanDollLikeness_v10:0.4>, (extremely detailed CG unity 8k
wallpaper),(RAW photo, best quality), (realistic, photo-realistic:1.2), a close up
portrait photo, 1girl, shopping mall rooftop cafe, outdoor, smile, (high detailed
skin:1.4), puffy eyes, gorgeous hair, air bangs, brown black hair, soft lighting, high
quality,<lora:cloth_lora_weights:1>
Negative prompt:ng_deepnegative_v1_75t,paintings, sketches, (worst quality:2),
(low quality:2), (normal quality:2), lowres, ((monochrome)), (grayscale:1.2), skin
spots, acnes, skin blemishes, age spot, glans,extra fingers,fewer
fingers,(watermark:1.2),(letters:1.2),(nsfw:1.2),teeth

在WebUI页签配置以下参数

采样方法(Sampler): Euler a

采样迭代步数(Steps): 50

宽度**和**高度: 640,768

随机种子(seed): 1400244389

提示词相关性(CFG Scale):7

选中codeformer面部修复复选框

点击生成:

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

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

相关文章

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 卢小姐的生日礼物(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测…

为什么现在的小家电换了Type-C接口后需要PD诱骗芯片

在当今科技飞速发展的时代&#xff0c;小家电产品正经历着前所未有的变革。随着消费者对于便捷性、高效性和安全性的要求不断提高&#xff0c;小家电产品的接口设计也逐渐向Type-C接口靠拢。然而&#xff0c;这一转变并非简单的接口替换&#xff0c;它背后隐藏着对PD诱骗芯片的…

【PG】PostgreSQL高可用之repmgr事件通知

目录 描述 结合脚本 占位符 repmgr命令 生成的事件&#xff1a; repmgrd 生成的事件&#xff08;流复制模式&#xff09;&#xff1a; 描述 每次repmgr或repmgrd执行重大事件时&#xff0c;都会将该事件的记录连同时间戳、失败或成功的标识以及进一步的详细信息&#xff08…

docker安装好了,但是启动失败

新项目要用docker部署,但是docker安装完后,启动失败,服务器用的是国产化的(之前的服务器非国产化,之前也没任何问题),国产化的使用起来问题一大堆,还是bclinux 安装好后重启一直显示 使用journalctl -xe也没任何报错 使用systemctl status docker查看docker状态是灰…

VScode:前端项目中yarn包的安装和使用

一、首先打开PowerShell-管理员身份运行ISE 输入命令&#xff1a; set-ExecutionPolicy RemoteSigned 选择“全是”&#xff0c;表示允许在本地计算机上运行由本地用户创建的脚本&#xff0c;没有报错就行了 二、接着打开VScode集成终端&#xff0c;安装yarn插件 输入 npm ins…

ELK日志分析系统部署文档

一、ELK说明 ELK是Elasticsearch&#xff08;ES&#xff09; Logstash Kibana 这三个开源工具组成&#xff0c;官方网站: The Elastic Search AI Platform — Drive real-time insights | Elastic 简单的ELK架构 ES: 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它…

前端pc和小程序接入快递100(跳转方式和api方式)====实时查询接口

文章目录 跳转方式微信小程序&#xff08;我以uniapp为例&#xff09;pc api接入说明关于签名计算成功示例 跳转方式 没有任何开发成本&#xff0c;直接一键接入 可以直接看官方文档 https://www.kuaidi100.com/openapi/api_wxmp.shtml 微信小程序&#xff08;我以uniapp为例…

Python求均值,方差,标准差

参考链接&#xff1a;变异系数&#xff08;Coefficient of Variation,COV&#xff09;和协方差&#xff08;Covariance, Cov&#xff09;-CSDN博客 参考链接&#xff1a;pandas中std和numpy的np.std区别_numpy pandas std-CSDN博客 在计算蛋白质谱数据中的每个蛋白对应的变异…

C++内存管理(区别C语言)深度对比

欢迎来到我的Blog&#xff0c;点击关注哦&#x1f495; 前言 前面已经介绍了类和对象&#xff0c;对C面向对象编程已经有了全面认识&#xff0c;接下来要学习对语言学习比较重要的是对内存的管理。 一、内存的分区 代码区&#xff1a;存放程序的机器指令&#xff0c;通常是可…

从操作系统层面认识Linux

描述进程-PCB Linux操作系统下的PCB是: task_struct https://www.cnblogs.com/tongyan2/p/5544887.htmlhttps://www.cnblogs.com/tongyan2/p/5544887.html校招必背操作系统面试题-什么是 PCB&#xff08;进程控制块&#xff09; &#xff1f;_哔哩哔哩_bilibili校招必背操作系…

WSL-Ubuntu20.04环境使用YOLOv8 TensorRT推理加速

在阅读本章内容之前,需要把部署环境以及训练环境都安装好。 1.TensorRTX下载 这里使用Wang-xinyu大佬维护的TensorRTX库来对YOLOv8进行推理加速的演示,顺便也验证一下前面环境配置的成果。 github地址:GitHub - wang-xinyu/tensorrtx,下载后放到wsl的路径下,我这里放在/h…

transformer论文讲解

1.标题 作者 Transformer 开创了继 MLP 、CNN和 RN 之后的第四大类模型。200页综述&#xff08;来自评论区&#xff1a; https://arxiv.org/pdf/2108.07258.pdf &#xff09;建议将Transformer作为基础模型。 标题&#xff1a;XXX is all you need. 头条标题。 Attention i…

Docker部署内网穿透服务

前提 首先&#xff01;市面上的可下载的内网穿透是不是都非常的不好用&#xff0c;本地开发测试用起来都不方便。免费版本的各有限制。从无条件免费到后面维护的越来越复杂。无脑人&#xff08;我&#xff09;只需要下面这个。 一个是随机域名不定期会更换&#xff0c;一个是隧…

【数据结构】链表(LinkedList)详解

文章目录 [toc] 前言1. 链表的介绍1.1 链表的定义1.2 链表的结构种类 2. 单向链表的模拟实现2.1 创建链表2.2 打印链表2.3 求链表长度 3. 单向链表常见方法的模拟实现3.1 头插法3.2 尾插法3.3 指定位置插入3.4 查找值 key 的节点是否在链表中3.5 删除值为 key 的节点3.6 删除所…

栈(用C语言实现)

1. 栈 1.1 概念与结构 栈&#xff1a;⼀种特殊的线性表&#xff0c;其只允许在固定的⼀端进行插入和删除元素操作。进行数据插入和删除操作的⼀端称为栈顶&#xff0c;另⼀端称为栈底。栈中的数据元素遵守后进先出 LIFO&#xff08;Last In First Out&#xff09;的原则。 压…

Richteck立锜科技电源管理芯片简介及器件选择指南

一、电源管理简介 电源管理组件的选择和应用本身的电源输入和输出条件是高度关联的。 输入电源是交流或直流&#xff1f;需求的输出电压比输入电压高或是低&#xff1f;负载电流多大&#xff1f;系统是否对噪讯非常敏感&#xff1f;也许系统需要的是恒流而不是稳压 (例如 LED…

【产品那些事】固件安全-关于OTA升级包分析

文章目录 前言什么是OTA?升级包(固件)的类型和架构案例tp-link路由器升级包怎么解包分析?binwalk安装及使用ubi_reader安装及使用unsquashfs安装及使用某车企OTA升级包通用Android OTA解包相关分区第二层解包前言 什么是OTA? OTA(Over-the-Air)是一种通过无线通信网络(…

adb查看网卡信息,并修改网卡mac地址

这种方法修改mac后&#xff0c;关机后会失效! 文章结尾有永久修改mac地址的方法! 1. 查看网卡的信息&#xff0c;以及mac地址&#xff0c;ip地址&#xff0c;子网掩码等 //查看所有网卡信息adb shell ifconfig//MAC地址&#xff1a; HWaddr 5e:2c:e9:58:3e:4f //IP地址&a…

小试牛刀-Telebot区块链游戏机器人

目录 1.编写目的 2.实现功能 2.1 Wallet功能 2.2 游戏功能 2.3 提出功能 2.4 辅助功能 3.功能实现详解 3.1 wallet功能 3.2 游戏功能 3.3 提出功能 3.4 辅助功能 4.测试视频 Welcome to Code Blocks blog 本篇文章主要介绍了 [Telebot区块链游戏机器人] ❤博主…

专业PDF编辑工具:Acrobat Pro DC 2024.002.20933绿色版,提升你的工作效率!

软件介绍 Adobe Acrobat Pro DC 2024绿色便携版是一款功能强大的PDF编辑和转换软件&#xff0c;由Adobe公司推出。它是Acrobat XI系列的后续产品&#xff0c;提供了全新的用户界面和增强功能。用户可以借助这款软件将纸质文件转换为可编辑的电子文件&#xff0c;便于传输、签署…