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

目录

  • 前言
  • 一、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.mzph.cn/news/210032.shtml

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

相关文章

网络协议与 IP 编址

网络协议与 IP 编址 之前大概了解过了网络的一些基础概念,见文章: 网络基础概念。 之前简单了解OSI模型分层: TCP/IP模型OSI模型TCP/IP对等模型应用层应用层表示层应用层会话层主机到主机层传输层传输层因特网层网络层网络层网络接入层数据链…

C语言数组(下)

我希望各位可以在思考之后去看本期练习,并且在观看之后独立编写一遍,以加深理解,巩固知识点。 练习一:编写代码,演⽰多个字符从两端移动,向中间汇聚 我们依旧先上代码 //编写代码,演⽰多个字…

数据库Delete的多种用法

数据库的Delete操作是用来删除数据库中的数据记录的,它是数据库操作中的一种重要操作,能够帮助用户删除不需要的数据,以便保持数据库的整洁和高效。在使用Delete操作时,需要注意确保操作的准确性和安全性,以免误删重要…

基于 Gin 的 HTTP 中间人代理 Demo

前面实现的代理对于 HTTPS 流量是进行盲转的,也就是说直接在 TCP 连接上传输 TLS 流量,但是我们无法查看或者修改它的内容。当然了,通常来说这也是不必要的。不过对于某些场景下还是有必要的,例如使用 Fiddler 进行抓包或者监控其…

触想嵌入式工业一体机在智能垃圾分类站的应用

1、行业发展背景 根据住建部给出的目标,到2025年前,全国地级及以上城市要基本建成垃圾分类处理系统。随着垃圾分类政策在全国强制落地,终端执行层面面临的最迫切问题是垃圾分类的准确性与社会参与意愿,而这两点与垃圾分类操作的简…

CNN发展史脉络 概述图整理

CNN发展史脉络概述图整理,学习心得,供参考,错误请批评指正。 相关论文: LeNet:Handwritten Digit Recognition with a Back-Propagation Network; Gradient-Based Learning Applied to Document Recogniti…

Python 中的数学运算(Python Math)

更多资料获取 📚 个人网站:ipengtao.com Python中的math模块是数学运算的重要工具,提供了丰富的数学函数和常数。本文将深入探讨math模块的功能和用法,使您能够更好地利用Python进行数学运算。 Python的math模块是一个强大的工具…

C51--OLED

GME12864-12 OLED写入指令数据: 1、start()开始 2、slave address 存积地址:011110 xx 写入:b 0111 1000 (0x78)(R / W位置为0时,表示写入) 3、ACK 4、cotro…

操作系统———磁盘调度算法模拟

实验目的 磁盘是可供多个进程共享的设备,当有多个进程都要求访问磁盘是,应采用一种最佳调度算法,以使各进程对磁盘的平均访问时间最小。目前最成用的磁盘调度算法有先来先服务(FCFS),最短寻道时间优先&…

Spring Boot的配置文件

配置文件的作用 整个项目中所有重要的数据都是在配置文件中配置,如数据库的连接信息,项目的启动端口,用于发现和定位问题的普通日志和异常日志等等。配置文件可以分为两类 系统使用的配置文件(系统配置文件)&#xf…

JS基础源码之手写模拟new

JS基础源码之手写模拟new 手写模拟new初步实现最终实现 手写模拟new new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象类型之一。 我们先看看new实现了哪些功能: function Person (name,age){this.name name;this.age age;this.habit Games;…

开发猿的平平淡淡周末---2023/12/9

上周回顾 完成了遗留的开发任务,基本全部完成进一步了解了系统当时设计的原理熟悉了代码的重构 2023.12.9 天气晴 温度适宜 前言 小伙伴们大家好,时间很快,又来到了周末,也是一个平平淡淡的周末。上周只更了一篇博客...原…

渗透测试 | 渗透测试之信息收集

渗透测试(penetration test,pentest)是实施安全评估(即审计)的具体手段。 渗透测试可能是单独进行的一项工作,也可能是常规研发生命周期(例如,Microsoft SDLC)里 IT 安全…

Unicode编码解码

一、Unicode概述 Unicode是一种字符编码标准,旨在解决不同字符集之间的兼容性问题。它为全球所有语言提供了一种统一的编码方式,使得各种字符能够在计算机系统中正确显示和处理。Unicode字符集包含了世界上几乎所有的字符,包括中文字符、英文…

算法Day23 简单吃饭(0-1背包)

简单吃饭(0-1背包) Description Input Output Sample 代码 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt();int total scanner.nextInt(…

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

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

情深不必纠缠

那一年,男孩女孩在万千人中相遇了。多年后女人的一封邮件,让男人与女人的灵魂相遇了。他们无缘夫妻,却发现彼此是灵魂的陪伴。不能携手相守,却懂得彼此的心灵。 有一天,女人告诉男人要回家了,问男人心里会不…

VMware安装Ubuntu20.04并使用Xshell连接虚拟机

文章目录 虚拟机环境准备重置虚拟网络适配器属性(可选)配置NAT模式的静态IP创建虚拟机虚拟机安装配置 Xshell连接虚拟机 虚拟机环境准备 VMware WorkStation Pro 17.5:https://customerconnect.vmware.com/cn/downloads/details?downloadGr…

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

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

AlexNet

概念 过拟合:根本原因是特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合的函数完美的预测训练集,但对新数据的测试集预测结果差。 过度的拟合了训练数据,而没有考虑到…