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://xiahunao.cn/news/3250638.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

MacBook电脑远程连接Linux系统的服务器方法

一、问题简介 Windows 操作系统的电脑可使用Xshell等功能强大的远程连接软件。通过连接软件&#xff0c;用户可以在一台电脑上访问并控制另一台远程计算机。这对于远程技术支持、远程办公等场景非常有用。但是MacBook电脑的macOS无法使用Xshell。 在Mac上远程连接到Windows服…

Golang | Leetcode Golang题解之第238题除自身以外数组的乘积

题目&#xff1a; 题解&#xff1a; func productExceptSelf(nums []int) []int {length : len(nums)// L 和 R 分别表示左右两侧的乘积列表L, R, answer : make([]int, length), make([]int, length), make([]int, length)// L[i] 为索引 i 左侧所有元素的乘积// 对于索引为 …

Java(二十二)---队列

文章目录 前言1.队列(Queue)的概念2.Queue的使用3.队列的模拟实现4.循环队列5.双端队列6.面试题[1. 用队列实现栈](https://leetcode.cn/problems/implement-stack-using-queues/description/)[2. 用栈实现队列](https://leetcode.cn/problems/implement-queue-using-stacks/de…

django中日志模块logging的配置和使用

一、文件的配置 settings.py文件中添加LOGGING块的配置&#xff0c;配置如下 # 日志记录 LOGGING {"version": 1,"disable_existing_loggers": False, # 用于确定在应用新的日志配置时是否禁用之前配置的日志器# 格式器"formatters": {"v…

自动化测试中如何应对网页弹窗的挑战!

在自动化测试中&#xff0c;网页弹窗的出现常常成为测试流程中的一个难点。无论是警告框、确认框、提示框&#xff0c;还是更复杂的模态对话框&#xff0c;都可能中断测试脚本的正常执行&#xff0c;导致测试结果的不确定性。本文将探讨几种有效的方法来应对网页弹窗的挑战&…

Android 视频亮度图标

源码 import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View;import androidx.annotation.Nullable;public class VideoBrightness …

优雅的软件工程师

今天写算法的时候、通过两道题深深意识到了&#xff0c;什么是优雅的代码&#xff08;应该说不按套路出牌的代码&#xff09; 我被折服了 第一个就是141. 环形链表 - 力扣&#xff08;LeetCode&#xff09; 判断换环状链表 我的思路就是用快慢指针判断&#xff0c;非常平平无…

SAP MR21 和 MR22 区别

MR21和MR22用来调整库存金额的话&#xff0c;两者之间有什么区别呢 一个是直接修改金额 一个是在原来的基础上进行加减。 MR21改的是单个物料的价格。 MR22改的是库存总价值。 MR**是不能改标准价格的&#xff0c;即使改了也到PRD去了&#xff0c;只能改移动平均价 MR21 : 商品…

HTTP协议、Wireshark抓包工具、json解析、天气爬虫

HTTP超文本传输协议 HTTP&#xff08;Hyper Text Transfer Protocol&#xff09;&#xff1a; 全称超文本传输协议&#xff0c;是用于从万维网&#xff08;WWW:World Wide Web &#xff09;服务器传输超文本到本地浏览器的传送协议。 HTTP 协议的重要特点&#xff1a; 一发一收…

简过网:备考25年国考的朋友,你的时间规划做好了吗?

备考25年国考的朋友&#xff0c;你的时间规划做好了吗&#xff1f; 根据以往考试时间&#xff0c;我们先预测一下25年的国考时间&#xff1a; 国考报名&#xff1a;24年10月中旬 国考笔试&#xff1a;24年11月底 省考报名&#xff1a;25年1-2月 省考笔试&#xff1a;25年3…

AnalyticsCloud 分析云 任意文件读取漏洞复现

0x01 产品简介 AnalyticsCloud 分析云集成了先进的数据分析技术和工具&#xff0c;能够处理来自各种数据源的数据&#xff0c;包括云数据、本地数据、传统数据和大数据等。它提供了从数据收集、整理、分析到应用的全链路解决方案&#xff0c;帮助企业更好地理解和利用数据&…

处理.git文件夹过大出现臃肿问题

1、问题背景 在软件开发过程中&#xff0c;版本控制是一个至关重要的环节。Git 作为一种流行的分布式版本控制系统&#xff0c;被广泛应用于各种项目中。然而&#xff0c;近期我们发现在进行项目发版时&#xff0c;Git 克隆项目的时间显著增加&#xff0c;严重影响了发版的效率…

深入理解Java并发编程:从synchronized到Lock的演进

目录 引言 一、synchronized关键字基础 二、Lock接口及其实现 三、ReentrantLock实战 1. 原子类&#xff08;Atomic Classes&#xff09; 2. 并发集合&#xff08;Concurrent Collections&#xff09; 3. 线程池&#xff08;ThreadPool&#xff09; 4. 并发工具类&…

四川赤橙宏海商务信息咨询有限公司真实可靠吗?

在当今数字化浪潮中&#xff0c;电商行业正以前所未有的速度蓬勃发展&#xff0c;而抖音作为短视频领域的佼佼者&#xff0c;其电商服务更是异军突起&#xff0c;成为众多商家争相入驻的新蓝海。四川赤橙宏海商务信息咨询有限公司&#xff0c;正是这一领域的佼佼者&#xff0c;…

【Git标签管理】理解标签 | 创建标签 | 查看标签 | 删除标签 | 推送标签

目录 1.理解标签 2.创建标签 3.查看标签 4.删除本地仓库的标签 5.推送标签 6.删除远程仓库的标签 1.理解标签 Git提供一个打标签的功能tag&#xff0c;对某一次事务/提交的表示&#xff08;作用/意义&#xff09;。标签 tag &#xff0c;可以简单的理解为是对某次 comm…

Python调用搜索引擎Meilisearch

文章目录 简介安装初试参考文献 简介 Meilisearch 是一个 Rust 语言编写的开源搜索引擎&#xff0c;用于快速构建全文搜索。2018 年发布&#xff0c;支持中文。 特点&#xff1a; 速度至上&#xff1a;50 毫秒返回结果。相关性优先&#xff1a;最相关的结果排在前面开发者友好…

request.getParameter()与request.getAttribute()的区别

request.getParameter&#xff08;&#xff09;与request.getAttribute&#xff08;&#xff09;的区别 1、数据来源2、使用范围3、数据类型4、使用场景 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、数据来源 getParameter()&#xf…

C#数字医学影像系统(RIS/PACS)源码,Oracle数据库,C/S架构,运行稳定

数字医学影像系统&#xff08;RIS/PACS&#xff09;源码&#xff0c;三甲以下的医院都能满足。PACS 系统全套成品源码。 开发技术&#xff1a;C/S架构&#xff0c;C#开发语言&#xff0c;数据库服务器采用Oracle数据库。 医学影像存储与传输系统&#xff0c;融合了医学信息化…

独立站外链如何影响搜索引擎排名?

独立站的外链对搜索引擎排名有着非常重要的影响。简单来说&#xff0c;外链就像是别的网站对你的网站投的信任票。每一条外链都告诉搜索引擎&#xff1a;“这个网站的内容是有价值的&#xff0c;值得推荐。”因此&#xff0c;外链的数量和质量直接影响你的网站在搜索引擎中的排…

力扣3202:找出有效子序列的最大长度||

class Solution { public:int maximumLength(vector<int>& nums, int k) {int res0;for(int m0;m<k;m){//假设子序列两数%k之后的结果为m 相当于枚举vector<int> v(k,0);for(auto num:nums){v[num%k]v[(m-num%kk)%k]1; //知道m之后可以知道需要的子序列当前…