一键打造你的定制化AIGC文生图工具

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 【8月更文挑战第2天】一键打造你的定制化AIGC文生图工具

领取试用

本次体验使用到阿里云交互式建模(PAI-DSW),如果你是新用户,则可以先领取产品试用。点击前往,领取试用。如下:

领取试用时认真阅读试用说明,确认后点击立即试用。如下:

  • 主机规格抵扣规则:
    A10机型(ecs.gn7i-c8g1.2xlarge):每使用1小时,消耗6.99计算时
    V100机型(ecs.gn6v-c8g1.2xlarge):每使用1小时,消耗14.55计算时
    G6机型(ecs.g6.xlarge):每使用1小时,消耗0.57计算时
  • 可用区
    中国内地公共云DSW开服Region通用,包括北京、上海、杭州、深圳
  • 有效期
    有效期3个月,试用期间免费,超过试用期限会自动停机或释放

领取试用后,可在我的账单中查看到具体的明细,如下:

开通默认工作空间

登录PAI控制台,如果你是首次使用PAI,会需要先开通个默认的工作空间。如下:

为了方便,这里地域就直接选择了杭州。如下:

由于本次体验不需要开通其他产品,所以组合服务这里取消默认的组合服务勾选,以免产生不必要的费用。首次开通需要授权,点击授权前往RAM访问控制。如下:

点击同意授权即可。如下:

完成授权后返回点击刷新,继续点击“确认开通并创建默认工作空间”。如下:

这里需要等待一小会,即可完成服务的开通。如下:

新建实例

进入PAI控制台,在左侧导航栏中单击工作空间列表,选择交互式建模(DSW),点击新建实例。

配置参数

区域这里选择华东1(杭州)

实例名称为AIGC_test

资源规则选择GPU类别中的ecs.gn7i-c8g1.2xlarge (8 vCPU, 30 GiB, NVIDIA A10 * 1),这也是试用的规格之一,支持资源包抵扣的。

镜像这里我们选择stable-diffusion-webui-develop:1.0-pytorch1.13-gpu-py310-cu117-ubuntu22.04,专用于DSW实例环境的。

在点击确定开始创建时会遇到如下异常,是因为所在区域的可用资源不足导致的,需要更换到其他可用区域重新提交。

其他配置保持默认,点击左下角的确定,开始创建。

创建过程中,可以通过事件查看到创建时的日志记录。

2分钟后,可以看到状态显示运行中,此时就表明实例创建成功。

点击操作项的打开,即可进入PAI-DSW实例开发环境。

安装依赖

单击快速开始区域Notebook下的Python 3(ipykernel)

从GitHub下载Diffusers开源库,并安装相关依赖:

! git clone https://github.com/huggingface/diffusers
! cd diffusers && git checkout e126a82cc5d9afbeb9b476455de24dd3e7dd358a
! cd diffusers && pip install .

可以通过如下命令验证环境是否完成安装,如下:

import diffusers

执行如下命令,下载默认配置文件,配置accelerate。

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

接下来,安装文生图算法相关依赖库。

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

接着最重要的一步,就是下载stable-diffusion-webui开源库。

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-shanghai-internal.aliyuncs.com",
    "cn-hangzhou": "http://pai-vision-data-hz2.oss-cn-hangzhou-internal.aliyuncs.com",
    "cn-shenzhen": "http://pai-vision-data-sz.oss-cn-shenzhen-internal.aliyuncs.com",
    "cn-beijing": "http://pai-vision-data-bj.oss-cn-beijing-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-cn-shanghai.aliyuncs.com"
! git clone https://gitcode.net/mirrors/AUTOMATIC1111/stable-diffusion-webui.git
%cd stable-diffusion-webui
! git checkout a9fed7c364061ae6efb37f797b6b522cb3cf7aa2
repositories_url = f"{prefix}/aigc-data/code/repositories.tar.gz"
aria2(repositories_url, repositories_url.split("/")[-1], "./")
! tar -xf repositories.tar.gz
%cd extensions
! git clone https://gitcode.net/mirrors/DominikDoom/a1111-sd-webui-tagcomplete.git
! git clone https://gitcode.net/ranting8323/stable-diffusion-webui-localization-zh_CN
%cd .. 
! wget -c http://pai-vision-data-sh.oss-cn-shanghai.aliyuncs.com/aigc-data/webui_config/config_tryon.json -O config.json
%cd ..

若需更新最新版本,你可以点击下面的开源链接前往进行下载。

stable-diffusion-webui

stablediffusion

taming-transformers

k-diffusion

CodeFormer

blip

通过命令运行窗口可以直观看到当前进度。

这个资源包有点大,需要耐心等待一下。

完成后,下载示例数据集及训练代码。

! 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格式。

safety_checker_url = f"{prefix}/aigc-data/hug_model/models--CompVis--stable-diffusion-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}/aigc-data/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}/aigc-data/sd_models/chilloutmix_NiPrunedFp32Fix.safetensors"
aria2(model_url, model_url.split("/")[-1], "stable-diffusion-webui/models/Stable-diffusion/")
! 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

准备额外模型文件。

detection_url = f"{prefix}/aigc-data/codeformer/detection_Resnet50_Final.pth"
aria2(detection_url, detection_url.split("/")[-1], "stable-diffusion-webui/repositories/CodeFormer/weights/facelib/")
parse_url = f"{prefix}/aigc-data/codeformer/parsing_parsenet.pth"
aria2(parse_url, parse_url.split("/")[-1], "stable-diffusion-webui/repositories/CodeFormer/weights/facelib/")
codeformer_url = f"{prefix}/aigc-data/codeformer/codeformer-v0.1.0.pth"
aria2(codeformer_url, codeformer_url.split("/")[-1], "stable-diffusion-webui/models/Codeformer/")
embedding_url = f"{prefix}/aigc-data/embedding/ng_deepnegative_v1_75t.pt"
aria2(embedding_url, embedding_url.split("/")[-1], "stable-diffusion-webui/embeddings/")
model_lora_url = f"{prefix}/aigc-data/lora/koreanDollLikeness_v10.safetensors"
aria2(model_lora_url, model_lora_url.split("/")[-1], "stable-diffusion-webui/models/Lora/")

在DSW中启动WebUI

执行如下命令,启动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 --gradio-queue

在返回结果中,单击URL链接(http://127.0.0.1:7860),即可进入WebUI页面。

到这,我们已经完成了所有操作,成功完成了AIGC文生图模型微调训练及WebUI部署。接下来可以在WebUI页面,进行模型推理验证。

如果这个步骤因为拉取资源频繁失败,其实还有一种方法可以实施,那就是DSW Gallery。进入方式有两种,第一种:

在页面中输入Lora搜索,找到“AIGC Stable Diffusion文生图Lora模型微调实现虚拟上装”。

第二种,可以直接在工作空间左侧的快速开始——Notebook Gallery。

按照图示步骤挨个执行即可了,比起Notebook下的Python 3(ipykernel)要直观方便不少。

模型推理验证

正向prompt:cloth1,, (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,

负向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

采样方法:Euler a

采样步数:50

宽高: 640,768

随机种子:1400244389

CFG Scale:7

使用高清修复

资源清理

登录PAI控制台,在工作空间页面的左侧导航栏选择模型开发与训练>交互式建模(DSW),进入交互式建模(DSW)页面。单击目标实例操作列下的停止,成功停止后即可停止资源消耗。也就是达到了资源清理的效果。

如果你不再使用这个实例,可以继续点击更多进行删除。

体验总结

1、整个体验流程还是通畅的,但在某几个步骤时还是非常考验耐心的,由于需要从github拉取资源,而这个来源是存在网络时好时坏的,这块急需优化,非常影响体验。此外,由于参考的实验链接发布有点旧,里面使用到的资源链接都失效了,比如https://gitcode.net/mirrors/AUTOMATIC1111/stable-diffusion-webui.git,这个是404的。希望往后的体验能够及时修正这些细节。

2、如果有产品试用,其实整个体验的费用还是可以抵扣的。如果是老用户,这块的体验费用就非常高了,因为前面提到的拉取资源会非常耗时,这就从侧面增加了体验费用,此外,训练模型需要的耗时也是挺高的,所以如果你是整个流程都认真体验下来,这块的费用还是挺高的,可以达到30元以上。非常期待后期的体验可以缩减这块费用,让更多感兴趣的小伙伴前来体验。而不是现在的这个情况,从已经发布的话题内容来看,没一个朋友是实际购买实例进行体验的,都是直接挪用了实验中的图或者之前文章中的图稍作修改得来的。

3、非常建议类似这样需要搭建环境配置过程的话题,能否修改成一个专门的评测体验,一方面可以让更多优秀的作者加入体验,一方面可以很好地收集有关产品的建议和意见。

4、既然作为一个话题拿出来讨论,就应该让整个体验过程变得简约,比如魔塔社区模型体验那般就非常适合。建议往后的话题讨论能够简化整体的流程,比如无需部署基础环境,开箱即用。

5、加强与阿里云其他服务的整合,其实本次体验为了简化部署流程,是完全可以融合函数计算FC的。希望后期可以加强这方面的能力。

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
2月前
|
数据采集 机器学习/深度学习 人工智能
Datawhale AI夏令营第四期魔搭-AIGC文生图方向Task1笔记
这段内容介绍了一个使用Stable Diffusion与LoRA技术创建定制化二次元图像生成模型的全流程。首先,通过安装必要的软件包如Data-Juicer和DiffSynth-Studio准备开发环境。接着,下载并处理二次元图像数据集,利用Data-Juicer进行数据清洗和筛选,确保图像质量和尺寸的一致性。随后,训练一个针对二次元风格优化的LoRA模型,并调整参数以控制模型复杂度。完成训练后,加载模型并通过精心设计的提示词(prompt)生成一系列高质量的二次元图像,展示模型对细节和艺术风格的理解与再现能力。整个过程展示了从数据准备到模型训练及结果生成的完整步骤,为定制化图像提供了方向。
|
3月前
|
存储 自然语言处理 API
通义万相AIGC技术Web服务体验评测
随着人工智能技术的不断进步,图像生成技术已成为创意产业的一大助力。通义万相AIGC技术,作为阿里云推出的一项先进技术,旨在通过文本到图像、涂鸦转换、人像风格重塑及人物写真创建等功能,加速艺术家和设计师的创作流程。本文将详细评测这一技术的实际应用体验。
167 4
|
14天前
|
Linux Shell API
ollama 大模型部署 工具 | AIGC
Ollama是一个集成了多种大型语言模型的工具,它支持模型的部署、运行以及API的整合和调用。Ollama为不同操作系统的用户提供了便捷的安装方式,并具备丰富的命令行界面(CLI)和API接口,使得用户可以轻松地管理和运行大型模型。【10月更文挑战第1天】
50 0
|
2月前
|
数据采集 机器学习/深度学习 人工智能
Datawhale AI夏令营第四期魔搭-AIGC文生图方向Task1笔记
这段内容介绍了一个使用LoRA技术定制Stable Diffusion模型的工作流程。首先定义了提示词的结构,接着概述了LoRA作为轻量级微调方法的角色。ComfyUI作为一个图形化工具,简化了AI模型的配置与操作。示例脚本展示了如何通过Data-Juicer和DiffSynth-Studio进行数据准备、模型训练,并最终生成特定风格的二次元图像。通过不同的种子和提示词,生成了一系列具有一致风格但内容各异的高质量二次元角色图像。
|
3月前
|
弹性计算 人工智能 自然语言处理
通义万相AIGC快速生成图像体验测评
通义万相AI绘画创作部署与体验。
|
3月前
|
人工智能 编解码 API
通义万相AIGC技术测评报告
**摘要:** 通义万相是阿里云的AI绘画模型,提供清晰的部署指南和易用的API,适合新手。资源部署耗时约10分钟,API响应快,支持多种风格图片生成,适用于广告、媒体等领域。产品性价比高,功能包括文本到图像转换等,但仍有改进空间,如增加服装纹理选项、互动功能和更多API接口。建议完善功能、加强推广和降低成本以吸引更多用户。[链接](https://developer.aliyun.com/topic/tongyi-wanxiang?spm=a2c6h.27063436.J_6978680750.5.3a774f461hv8qD)
208 6
|
4月前
|
机器学习/深度学习 人工智能 搜索推荐
人工智能技术--AI作画工具
AI作画工具是一种运用人工智能技术,特别是深度学习和生成对抗网络(GAN)等算法,自动生成或辅助创作视觉艺术作品的技术。通过机器学习,分析和模拟人类艺术家的创作风格和技巧,从而创作出具有艺术性的画作。
111 1
|
4月前
|
人工智能 程序员 API
通义万相AIGC技术的测试体验
通义万相AIGC技术的测试体验
105 3
|
4月前
|
机器学习/深度学习 人工智能 算法
|
4月前
|
机器学习/深度学习 人工智能 JSON