【腾讯云 HAI域探秘】StableDiffusionWebUI 让我找到了宫崎骏动漫里的夏天

news2024/11/20 9:39:24

目录

  • 前言
  • 一、HAI
  • 二、应用场景
  • 三、构建 Stable Diffusion 模型
    • 1、新建HAI应用
    • 2、StableDiffusionWebUI
      • (1)功能介绍
      • (2)页面转中文
      • (3)AI绘图
        • ① 正向提示词语
        • ② 反向提示词
        • ③ “+” 、“ AND”、“|” 用法
        • ④ 权重
        • ⑤ Euler a 取样方法
        • ⑥ DPM++ 2M Karras 取样方法
        • ⑦ 新增提示词案例
  • 四、总结

在这里插入图片描述

前言

一直以来想部署一个自己的 StableDiffusion 模型,但是在构建模型过程中遇到许多问题,后来发现可以用 HAI 可以快速构建并且部署,给我带来了极大的便利,省去了许多麻烦事。

高性能应用服务(Hyper Application Inventor,HAI)是一款面向 AI 和科学计算的 GPU/NPU 应用服务产品,提供即插即用的强大算力和常见环境。它可以帮助中小企业和开发者快速部署语言模型、AI 绘图、数据科学等高性能应用,原生集成配套的开发工具和组件,大大提升应用层的开发生产效率。

如果你想快速构建一套AI模型,比如Stable Diffusion、ChatGLM2 6B、Llama2 7B、Llama2 13B,又或者是想搭建一套AI框架,比如Pytorch2.0.0、Tensorflow2.9.0,HAI 可成为你的首选。本文通过构建Stable Diffusion模型进行二次元AI绘画,主要利用深度学习算法进行创作绘图,应用场景也是十分广泛。

一、HAI

高性能应用服务 HAI 以应用为中心,匹配GPU云算力资源,助力中小企业及开发者快速部署LLM、AI作画、数据科学等高性能应用。其优势十分显著:

1、简单易用。通过简化计算、网络和存储等基础设施的配置流程,大幅降低了云服务操作和管理的复杂度
2、应用环境快速部署。支持多种 AI 环境快速部署,如 ChatGLM-6B、StableDiffusion 等,使用户可专注业务及应用场景创新。
3、高灵活性。支持用户登录实例,对 AI 模型及实例环境进行灵活配置。可进行内部开发、业务测试,或对外提供业务服务。
4、多种登录方式。除传统连接方式外,支持通过 jupyterlab、WebUI 等方式一键启动,提供更贴合使用场景的登录方式。
5、算力种类丰富。提供多种算力套餐选择,未来还将加入更多种类供用户选择。

二、应用场景

HAI 应用场景十分广泛,可以应用于AI 作画/设计、AI 对话/写作、AI 开发测试以及数据科学等方面。
在AI 作画/设计方面,设计师和开发者可以使用高性能应用服务快速地部署和优化 AI 绘画模型。高性能应用服务预置 Stable Diffusion 等主流 AI 作画模型及常用插件,提供 GUI 图形化界面即开即用,大幅降低上手门槛。在AI 对话/写作方面,研究者和开发者可以使用高性能应用服务快速部署和运行大型语言模型,如 LLAMA2、ChatGLM 等,进行自然语言处理任务,如文本生成、情感分析、文本分类等。高性能应用服务提供的算力支持和优化环境确保了语言模型可以在最短的时间内进行部署,同时还能保持高稳定性和可靠性。在AI 开发测试方面,高性能应用服务的预配置环境支持大多数流行的 AI 框架和工具,如 TensorFlow、PyTorch 等,使得开发者可以专注于算法设计和模型优化。AI 研究者可以在高性能应用服务上进行模型的开发、训练、测试和优化,无需担心硬件兼容性和软件配置问题。如新算法的原型开发、模型微调与迁移学习、深度学习框架的交叉测试等。在数据科学方面,数据科学家们可使用高性能应用服务,快速进行数据分析和图标处理。高性能应用服务预置了 Notebook、Python 环境,以及主流分析软件。

三、构建 Stable Diffusion 模型

上面讲解了HAI的优势以及应用场景,那么接下来就开始使用 HAI 构建 Stable Diffusion 模型。Stable Diffusion,直接从字面意思翻译是稳定的扩散,当然这也将图像生成模型的工作原理点出来了。它是一种生成模型,可用于生成高质量的图像,其原理是将噪声添加懂真实图像,然后通过神经网络将噪声去除掉,随着噪声逐渐去除,真实图像便逐渐恢复。那么怎么使用 HAI 构建 Stable Diffusion 模型呢

1、新建HAI应用

首先在算力管理页面点击新建,这就是构建HAI应用的入口了。

在这里插入图片描述
在AI模型中选择Stable Diffusion,这就是我们需要的模型,然后点击购买。
在这里插入图片描述
购买完成后HAI应用就会自动创建,创建过程大概需要3-8分钟,静候即可。
在这里插入图片描述

创建完成之后,点击算力连接,在下拉中选择stable_diffusion_webui

在这里插入图片描述

2、StableDiffusionWebUI

我们可以看到StableDiffusionWebUI 主页面,具体如下图所示:
在这里插入图片描述

(1)功能介绍

StableDiffusionWebUI是基于StableDiffusion开源模型开发的,具有以下功能:

  • 文生图
    根据描述生成任何图像

  • 智能识别:Stable Diffusion 可以智能识别用户上传的图片,并自动调整图片质量和色彩,让图片更加清晰、饱满。

  • 风格转换:Stable Diffusion 可以将用户上传的图片转换成不同的艺术风格,如印象派、后印象派、立体派等等,让图片更加艺术化。

  • 人像修复:Stable Diffusion 可以自动识别人像并进行修复,去除皱纹、瑕疵等不良痕迹,让人像更加美观自然。

  • 图像融合:Stable Diffusion 可以将多张图片进行融合,生成全新的图像,让用户可以尝试不同的创意和设计。

  • 图像去噪:Stable Diffusion 可以自动去除图片中的噪点,让图片更加干净、清晰。

(2)页面转中文

首先我们先把页面换成中文。选择页面中Extensions菜单中的Available菜单,然后取消localization勾选,勾选script,之后点击 Load from,大概需要等30-60s。
在这里插入图片描述
然后在搜索框中搜索:zh_CN,
在这里插入图片描述
点击Install进行安装。
在这里插入图片描述

安装成功后,我们可以在Extensions菜单中的Installed菜单看到安装的stable-diffusion-webui-localization-zh_CN
在这里插入图片描述
最后在Setting菜单中选择User interface,在Localization (requires restart) 下拉菜单中选择zh_CN
在这里插入图片描述
最后先点击Apply setting,然后再点击Reload UI,页面就变成中文了。

(3)AI绘图

Stable Diffusion可以根据你输入的提示词(prompt)来绘制出想象中的画面。在进行文生图之前,先讲解一下StableDiffusionWebUI主页面的基本属性,相关配置属性解释如下:

属性描述
提示词主要描述图像,包括内容风格等信息,原始的webui会对这个地方有字数的限制,可以安装一些插件突破字数的限制。简单来说就是你想要生成一副什么样的图片,包含主体、风格、色彩、质量要求等等
反向提示词告诉模型我们不需要的风格,表示你不想要什么,比如不想要图片出现什么,不想图片质量差,不想人物模糊或者多手多脚等
提示词相关性(CFG scale)分类器自由引导尺度,图像与提示符的一致程度越低的值产生的结果越有创意,数值越大成图越贴近描述文本。一般设置为7
采样方法(Sampling method)扩散算法的去噪声采样模式会影响其效果,不同的采样模式的结果会有很大差异
采样迭代步数(Sampling steps)在使用扩散模型生成图片时所进行的迭代步骤。每经过一次迭代,AI就有更多的机会去比对prompt和当前结果,并作出相应的调整。需要注意的是,更高的迭代步数会消耗更多的计算时间和成本,但并不意味着一定会得到更好的结果。然而,如果迭代步数过少,一般不少于50,则图像质量肯定会下降
随机种子(Seed)生成每张图片时的随机种子,这个种子是用来作为确定扩散初始状态的基础。-1表示不基于图片种子进行绘制,完全基于你的prompt生成,如果填写一个图片的种子值,则会参考你填写的图片种子,在此图片基础上进行二次绘制。
高清修复将生成的图片进行高清放大,提升分辨率,显存不够的宝子们慎用
生成批次表示本次绘制时通过几个批次进行绘画,显存低的宝子们可以调大,以时间换空间
每批数量表示每批生成几张图片,也是看显存大小进行设置

其中提示词是非常重要的,是生成图像最基本的要求。提示词(prompt)由多个词缀构成。提示词分为正向提示词(positive prompt)和反向提示词(negative prompt),用来告诉AI哪些需要,哪些不需要。反向提示词听起来有些耐人寻味,其实就是我们不想出现什么的描述。提示词与反提示词实际上看你的想象力,当初也要转换成英文描述的术语才能更好地生效,个人认为没有什么定格公式,会限制人的想象力,总之你想什么就填上去,尽情发挥想象力。

① 正向提示词语

这里提供一些正向提示词语,可以斟酌添加到模型中。

prompt描述
HDR, UHD, 64K(HDR、UHD、4K、8K和64K)这样的质量词可以带来巨大的差异提升照片的质量
Highly detailed画出更多详细的细节
Studio lighting添加演播室的灯光,可以为图像添加一些漂亮的纹理
Professional加入该词可以大大改善图像的色彩对比和细节
Vivid Colors给图片添加鲜艳的色彩,可以为你的图像增添活力
Bokeh虚化模糊了背景,突出了主体,像iPhone的人像模式
High resolution scan让你的照片具有老照片的样子赋予年代感
Sketch素描
Painting绘画
② 反向提示词

一些返向提示词案例,针对你要生成的图像,通过反向提示,避免出现不符合预期的图片

Negative PromptDescription
Mutated hands and fingers变异的手和手指
Deformed畸形的
Bad anatomy解剖不良
Disfigured毁容
Poorly drawn face脸部画得不好
Mutated变异的
Extra limb多余的肢体
Ugly丑陋
Poorly drawn hands手部画得很差
Missing limb缺少的肢体
Floating limbs漂浮的四肢
Disconnected limbs肢体不连贯
Malformed hands畸形的手
Out of focus脱离焦点
Long neck长颈
Long body身体长
③ “+” 、“ AND”、“|” 用法
  • “+”和“AND”:这两个符号都用于连接短标签或关键词。使用“+”或者“AND”来将标签连接在一起。要注意的是,在使用“AND”连接标签时,两端需要加上空格。此外,“+”可以大致等同于“AND”。

  • “|”:这是用作循环绘制符号或融合符号。在这种上下文中,它可能表示一种绘图操作,可以用来融合或循环绘制某些元素或标签。

④ 权重

使用括号和不同格式来调整单词的权重:

  • (PromptA:权重):调整权重比例为给定的权重。
  • (PromptA):默认权重为1.1,等同于(PromptA:1.1)
  • {PromptB}:默认权重为1.05,等同于(PromptB:1.05)
  • [PromptC]:默认权重为0.952,等同于(PromptC:0.952)
  • ((PromptD)):权重为1.21,等于(PromptD:1.1*1.1)
  • {{PromptE}}:权重为1.1025,等于(PromptE:1.05*1.05)
  • [[PromptF]]:权重为0.905504,等于(PromptF:0.952*0.952)

此外,根据标签的位置,权重也会受到影响。比如,如果景色标签在前,人物可能会被缩小;反之,人物可能会变大或显示为半身。

⑤ Euler a 取样方法

使用Euler a取样方法生成图像,本文案例使用下面的配置:

正向提示词:((studio ghibli)), (1cute girl) walking in street, half body,
反向提示词:easynegative
取样方法:Euler a
取样步骤:65
高解析度修正(Hires.fix):放大演算算法选择SwinIR_4x,高解析步骤为10,重绘幅度为0.71
提示次相关性(CFG):7
随机种子:3472141699
产生批次:1
每批数量:8

在这里插入图片描述

然后生成如下图,宫崎骏动漫里的夏天真的太好看啦

请添加图片描述请添加图片描述请添加图片描述
请添加图片描述请添加图片描述请添加图片描述
请添加图片描述请添加图片描述

Euler a的优势
适用性:欧拉采样方法在生成二次元图像中可能不是首选,因为它主要用于模拟物理系统或动态系统的数值积分,对于艺术风格的图像生成并不是其主要应用。
特点:
欧拉方法更适用于模拟动态系统中的物体运动或相机路径等,对于艺术性较高的二次元图像可能无法提供所需的效果和细节。

⑥ DPM++ 2M Karras 取样方法

之后了解到DPM++ 2M Karras基于深度学习和神经网络技术,能够生成高质量、细节丰富的图像。Euler采样方法主要用于模拟物理系统或动态系统的数值积分,对于艺术风格的图像生成并不是其主要应用。因此将取样方法修改为DPM++ 2M Karras,并对其他属性做了调整,如下:

正向提示词:((studio ghibli)), (1cute girl) walking in street, half body,
反向提示词:easynegative
取样方法:DPM++ 2M Karras
取样步骤:60
高解析度修正(Hires.fix):放大演算算法选择SwinIR_4x,高解析步骤为10,重绘幅度为0.4
提示次相关性(CFG):7
随机种子:3472141699
产生批次:1
每批数量:8

请添加图片描述请添加图片描述请添加图片描述
请添加图片描述请添加图片描述请添加图片描述
请添加图片描述请添加图片描述

很明显可以看出来两个取样方法生成的图片有很大的不同,用DPM++ 2M Karras方法生成的图片色彩更鲜艳,人物形象也更生动。

DPM++ 2M Karras 的优势
适用性: DPM++ 2M Karras可能更适合生成二次元图像,因为它基于深度学习和神经网络技术,能够生成高质量、细节丰富的图像。
特点:这种方法能够更好地保持模型的细节,并且可以更快速地生成需要的图像。它适用于生成二次元风格的图像,特别是在处理角色造型、背景细节等方面有着较好的效果。

⑦ 新增提示词案例

依旧使用上面的DPM++ 2M Karras方法取样,新增一些正向提示词和反向提示词,看看与上面生成的图片有什么不同,本次配置提示词更丰富,限制的要求比较多。

提示词描述
prompt((studio ghibli)), (1cute girl) walking in street, half body, 64K, Professional,Makoto Shinkai, Katsuhiro Otomo, Masashi Kishimoto, Kentaro Miura
negative prompt(low quality, worst quality:1.4), (bad_prompt:0.8), (monochrome:1.1), (greyscale), username, watermark, signature, text, logo, nsfw
请添加图片描述请添加图片描述请添加图片描述
请添加图片描述请添加图片描述请添加图片描述
请添加图片描述请添加图片描述

可以看到生成的图片虽然使用了DPM++ 2M Karras取样方法,但是新添加的提示词(64K, Professional,Makoto Shinkai, Katsuhiro Otomo, Masashi Kishimoto, Kentaro Miura)的作用也是非常明显,生的的图像色彩对比更明显,图像的细节也更多了。并且图像的面部、肢体也和正常人物形象没有什么很大差别,并没有出现多余的肢体、畸形的手等变异的地方。

四、总结

StableDiffusionWebUI 的出神入化让我十分震惊,HAI不仅可以构建应用,而且也提供了部署的功能,这让我一个嫌麻烦的人似乎找到了归宿。本来自己构建模型的话就挺复杂了,HAI 彻底解决了我的问题。在体验过程中,对 HAI 构建应用有一些自己的看法:

缺陷以及优化建议:

1、构建HAI应用地域的选择有点少,像北京这样的一线城市选项竟然么有,有一些诧异。
2、生成图像过程中会出现卡顿现象,虽然显示图像在生成中,但是进度一直不动,卡的时间比较长,只能重启应用来解决问题,如果能监控到图像生成的问题并给予提示就更好了。个人认为是算力不够,在处理更大尺寸的图像、采样步数过大等问题,会有限制。
3、对于有经验的使用者,对目标图像生成时,配置参数有自己的着重点。但是对于新手使用,提示词积累比较少,生成图像可能跟自己的预期大相径庭,能提供一些提示词案例就更好了。

优点:

1、HAI 提供了简单易用的API接口和友好的开发工具,方便用户开发和调试。
2、快速构建和部署,我觉得这是很多使用者都能看到的优点,真的很方便。
3、HAI 使用先进的架构和算法,能够处理大量并发请求,并提供高吞吐量和低延迟的服务,这让使用者在使用应用过程中体验更好。
4、可以搭建一套服务,让多个应用一起使用,这样不仅节约了经费,还节省了时间。

附:HAI官方地址:https://cloud.tencent.com/product/hai

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

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

相关文章

网上下载的pdf文件,为什么不能复制文字?

不知道大家有没有到过这种情况?在网上下载的PDF文件打开之后,发现选中文字之后无法复制。甚至其他功能也都无法使用,这是怎么回事?该怎么办? 当我们发现文件打开之后,编辑功能无法使用,很可能是…

基于MATLAB的BPSK调制解调仿真(仿真图超多,结果超清晰)

基于MATLAB的BPSK调制解调仿真(包含中间各个环节的时域波形、功率谱、频谱图、抽样后的星座图和眼图、理论与仿真的误码率曲线) 目录 前言 一、BPSK基本原理 二、BPSK调制解调过程 三、仿真结果 1、码元信噪比eb/n0-10dB时 1、双极性不归零基带信号 2、成型滤波(根升余弦…

uni-app应用设置 可以根据手机屏幕旋转进行 (横/竖) 屏切换

首先 我们打开项目的 pages.json 在左侧导航栏中找到 源码视图 然后找到 app-plus 配置 在下面加上 "orientation": [//竖屏正方向"portrait-primary",//竖屏反方向"portrait-secondary",//横屏正方向"landscape-primary",//横屏反方…

Other -- ChatGPT 原理

本文为个人理解,帮助小白(本人就是)了解正在创建新时代的 AI 产品,如文中理解有误欢迎留言。 [参考链接--](https://baijiahao.baidu.com/s?id1765556782543603120&wfrspider&forpc) 1. 了解一些基本概念 大语言模型&a…

安卓MediaRecorder(2)录制源码分析

文章目录 前言JAVA new MediaRecorder() 源码分析android_media_MediaRecorder.cpp native_init()MediaRecorder.java postEventFromNativeandroid_media_MediaRecorder.cpp native_setup() MediaRecorder 参数设置MediaRecorder.prepare 分析MediaRecorder.start 分析MediaRec…

[面试题~Docker] 云原生必问基础篇

文章目录 基础相关1. Docker 是什么?2. 镜像是什么3. 容器是什么4. 数据卷是什么5. Docker 和虚拟机的区别?6. Docker 常用命令有哪些? 原理相关1. docker 有几种网络模式host 模式container模式none模式bridge模式 2. docker 网络实现在Linu…

AGILE-SCRUM

一个复杂的汽车ECU开发。当时开发队伍遍布全球7个国家,10多个地区,需要同时为多款车型定制不同的软件,头疼的地方是: 涉及到多方人员协调,多模块集成和管理不同软件团队使用的设计工具、验证工具,数据、工…

C语言数据结构-基于单链表实现通讯录

文章目录 1 基础要求2 通讯录功能2.1 引入单链表的文件2.2 定义联系人数据结构2.3 打开通讯录2.4 保存数据后销毁通讯录2.5 添加联系人2.6 删除联系人2.7 修改联系人2.8 查找联系人2.9 查看通讯录 3 通讯录代码展示3.1 SeqList_copy.h3.2 SeqList_copy.c3.3 Contact.h3.4 Conta…

【论文阅读】Reachability and distance queries via 2-hop labels

Cohen E, Halperin E, Kaplan H, et al. Reachability and distance queries via 2-hop labels[J]. SIAM Journal on Computing, 2003, 32(5): 1338-1355. Abstract 图中的可达性和距离查询是许多应用的基础,从地理导航系统到互联网路由。其中一些应用程序涉及到巨…

免费开源-数字孪生城市污水处理平台

智慧城市污水处理平台,基于污水厂三维模型可视化场景,结合物联网IOT、视频监控以及综合运营数据,增加污水处理厂的掌控力度。飞渡科技利用数字孪生技术结合物联网IOT技术,直观展现各污水处理站点的整体建设规模,以及污…

pytorch:YOLOV1的pytorch实现

pytorch:YOLOV1的pytorch实现 注:本篇仅为学习记录、学习笔记,请谨慎参考,如果错误请评论指出。 参考: 动手学习深度学习pytorch版——从零开始实现YOLOv1 目标检测模型YOLO-V1损失函数详解 3.1 YOLO系列理论合集(YOL…

Windows Service Name重复问题

Windows Service Name重复问题 1,问题 2,打开命令提示符,管理员身份运行 3,输入命令:sc delete MYSQL57 4,验证一下,可以看见已经没有感叹号啦 ,可以看见已经没有感叹号啦

基于Qt的Live2D模型显示以及控制

基于Qt的Live2D模型显示以及控制 基本说明 Live2D官方提供有控制Live2D模型的SDK,而且还提供了一个基于OpenGL的C项目Example,我们可以基于该项目改成Qt的项目,做一个桌面端的Live2D桌宠程序。 官方例子 经过改造效果如下图所示。 官方项目配置 下载官方提供的SD…

视觉检测系统在半导体行业的应用

一、半导体产业链概述 半导体产业链是现代电子工业的核心组成部分,涵盖了从原材料到最终产品的整个生产过程。这个产业链主要分为以下几个环节: 1.原材料供应:半导体行业的基石是半导体材料,如硅片、化合物半导体等。这些材料需要…

CentOS7安装Docker,DockerCompose

安装docker 1、卸载docker 查看是否有旧版本docker docker info首先检测我们虚拟机是否已经安装过Docker,如果安装则需卸载。代码中“\”符号为换行符,相当于一行内容分为多行,这是检测docker的各种组件 yum remove docker \docker-clien…

高项备考葵花宝典-项目进度管理输入、输出、工具和技术(上,很详细考试必过)

项目进度管理的目标是使项目按时完成。有效的进度管理是项目管理成功的关键之一,进度问题在项目生命周期内引起的冲突最多。 小型项目中,定义活动、排列活动顺序、估算活动持续时间及制定进度模型形成进度计划等过程的联系非常密切,可以视为一…

高项备考葵花宝典-项目进度管理输入、输出、工具和技术(中,很详细考试必过)

项目进度管理的目标是使项目按时完成。有效的进度管理是项目管理成功的关键之一,进度问题在项目生命周期内引起的冲突最多。 小型项目中,定义活动、排列活动顺序、估算活动持续时间及制定进度模型形成进度计划等过程的联系非常密切,可以视为一…

LeetCode算法题解(单调栈)|LeetCode84. 柱状图中最大的矩形

一、LeetCode84. 柱状图中最大的矩形 题目链接:84. 柱状图中最大的矩形 题目描述: 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大…

更改Android Studio的.android和.gradle文件夹默认位置

一、首先关闭Android Studio, 二、目标位置新建文件夹 这一步,为了省去麻烦,我并没有直接在我的目标位置新建文件夹,而是把C盘下的.android和.gradle文件夹整个复制过来,和SDK都在同一目录下,感觉这样可以…

Sql Server 2017主从配置之:AlwaysOn高可用

AlwaysOn高可用功能,真正实现了数据库的灾备切换、高可用。 AlwaysOn通过Windows Server故障转移群集,部署高可用数据库组。 在故障转移群集基础上完成部署读写分离,只读负载平衡最多3个写入节点实现故障转移最多3个数据实时同步节点 环境…