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.xdnf.cn/news/1483771.html

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

相关文章

科技核心~书法用纸结合

书法用纸******对墨迹扩散的影响 传统书法用纸制作****与现代改进 书法用纸的*****表面结构关系研究

ARM架构(二)—— arm v7/v8/v9寄存器介绍

1、ARM v7寄存器 1.1 通用寄存器 V7 V8开始 FIQ个IRQ优先级一样&#xff0c; 通用寄存器&#xff1a;31个 1.2 程序状态寄存器 CPSR是程序状态毒存器&#xff0c;保存条件标志位&#xff0c;中断禁止位&#xff0c;当前处理器模式等控制和状态位。每种异常模式下还存在SPSR&…

网络连接—HTTP

HTTP请求数据 导入http模块 import http from ohos.net.http 使用http模块发送请求&#xff0c;处理响应 创建一个http的请求对象&#xff0c;不可复用 let httpRequest http.createHttp() 发起网络请求 HttpRequest.request(http://localhos t:8080/users, //请求U…

报错:QSqlDatabase: QSQLITE driver not loaded...

&#x1f3c6;本文收录于《CSDN问答解答》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

Unity 导入MRTK,使用URP 升级材质,MRTK的材质还是洋红色

控制台显示信息 ToggleBackground material was not upgraded. There’s no upgrader to convert Mixed Reality Toolkit/Standard shader to selected pipeline UnityEditor.Rendering.Universal.UniversalRenderPipelineMaterialUpgrader:UpgradeProjectMaterials() (at 点击…

Linux系统学习日记——vim操作手册

Vim编辑器是linux下的一个命令行编辑器&#xff0c;类似于我们windows下的记事本。 目录 打开文件 编辑 保存退出 打开文件 打开 hello.c不存在也可以打开&#xff0c;保存时vim会自动创建。 效果 Vim打开时&#xff0c;处于命令模式&#xff0c;即执行命令的模式&#x…

Hadoop-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; HadoopHDFSMapReduceHiveFlumeSqoopZookeeperHBaseRedis 章节内容 上一节我们完成了&#xff1a; HBase …

在国产芯片上实现YOLOv5/v8图像AI识别-【1.3】YOLOv5的介绍及使用(训练、导出)更多内容见视频

本专栏主要是提供一种国产化图像识别的解决方案&#xff0c;专栏中实现了YOLOv5/v8在国产化芯片上的使用部署&#xff0c;并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。 B站配套视频&#xff1a;https://www.bilibili.com/video/BV1or421T74f 数据…

01 安装

安装和卸载中&#xff0c;用户全部切换为root&#xff0c;一旦安装&#xff0c;普通用户也能使用 初期不进行用户管理&#xff0c;全部用root进行&#xff0c;使用mysql语句 1. 卸载内置环境 检查是否有mariadb存在&#xff0c;存在走a部分卸载 ps axj | grep mysql ps ajx |…

前端:Vue学习-2

前端&#xff1a;Vue学习-2 1. vue的生命周期2. 工程化开发和脚手架Vue CLI2.1 组件化开发2.2 scoped解决样式冲突2.3 data是一个函数2.4 组件通信2.5 非父子通信- event bus事件&#xff0c;provide&inject 3.v-model原理->实现父子组件双向绑定4. sync 修饰符->实现…

C++ ───List的使用

目录 1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用 1.2.3 list capacity 1.2.4 list element access 1.2.5 list modifiers 1.2.6 list的迭代器失效 1.1 list的介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&…

亚马逊自发货erp,虚拟自动化发货功能以及1688订单采购

亚马逊自发货erp自动化功能&#xff0c;自动同步订单&#xff0c;1688订单同步。 大家好&#xff0c;今天分享一个非常实用并且节省时间的功能&#xff1a;自动化发货以及1688同步订单。 首先来看下自动化发货功能怎么操作。 →要在商品信息里面添加商品信息&#xff0c;上传…

sql常见50道查询练习题

sql常见50道查询练习题 1. 表创建1.1 表创建1.2 数据插入 2. 简单查询例题(3题&#xff09;2.1 查询"李"姓老师的数量2.2 查询男生、女生人数2.3 查询名字中含有"风"字的学生信息 3. 日期相关例题(6题&#xff09;3.1 查询各学生的年龄3.2 查询本周过生日的…

CentOS6minimal安装nginx-1.26.1.tar.gz 笔记240718

CentOS6安装新版nginx 240718, CentOS6.1-minimal 安装 nginx-1.26.1.tar.gz 下载 nginx-1.26.1.tar.gz 的页面 : https://nginx.org/en/download.html 下载 nginx-1.26.1.tar.gz : https://nginx.org/download/nginx-1.26.1.tar.gz CentOS6.1已过期, 给它更换yum源, 将下面…

用 Bytebase 实现可回滚的数据库数据变更

在修改数据库的数据时&#xff0c;建议先备份即将修改的数据&#xff0c;以便在需要时能够恢复。Bytebase 提供了「数据回滚」的功能来帮助实现这一功能。本教程将为你演示这一过程。 准备 请确保已安装 Docker&#xff0c;如果本地没有重要的现有 Bytebase 数据&#xff0c;可…

github上的工程如何下载子模块.gitmodules如何下载指定的模块download submodules开源项目子模块下载externals

github上的工程如何下载子模块.gitmodules如何下载指定的模块download submodules 说明(废话)解决方案无法执行下载子模块无法下载子项目 说明(废话) 今天在编译一个开源库时&#xff0c;该开源库依赖其他项目&#xff0c;并且项目还挺多的&#xff0c;所以有此解决方案 在编…

IDEA2023版本创建JavaWeb项目及配置Tomcat详细步骤!

一、创建JavaWeb项目 第一步 之前的版本能够在创建时直接选成Web项目&#xff0c;但是2023版本在创建项目时没有该选项&#xff0c;需要在创建项目之后才能配置&#xff0c;首先先创建一个项目。 第二步 在创建好的项目中选中项目后&#xff08;一定要注意选中项目名称然后继…

UE4-打包游戏,游戏模式,默认关卡

一.打包游戏 注意windows系统无法打包苹果系统的执行包&#xff0c;只能使用苹果系统打包。 打包完之后是一个.exe文件。 打包要点&#xff1a; 1.确定好要操控的角色和生成位置。 2.设置默认加载的关卡和游戏模式。 在这个界面可以配置游戏的默认地图和游戏的模式&#xff0c;…

C/C++ xml库

文章目录 一、介绍1.1 xml 介绍1.2 xml 标准1.3 xml 教程1.4 xml 构成 二、C/C xml 库选型2.1 选型范围2.2 RapidXML2.3 tinyxml22.4 pugixml2.5 libxml 五、性能比较5.1 C xml 相关的操作有哪些5.2 rapidxml、Pugixml、TinyXML2 文件读取性能比较 六、其他问题6.1 version和 e…

Jangow

关于靶场环境配置&#xff0c;确实这个靶场存在很大的问题&#xff0c;不仅仅是网络的配置问题&#xff0c;更重要的是明知道如何修改网络环境配置&#xff0c;但是键盘存在很大的问题。许多字符输入不一致。 Vulnhub靶场&#xff0c;Jangow靶机环境找不到ip解决方法。_jangow…