亚马逊云科技与伊克罗德推出AI绘画解决方案——imAgine

news2024/11/29 8:46:37

 在过去的数月中,亚马逊云科技已经推出了多篇介绍如何在亚马逊云科技上部署Stable Diffusion,或是如何结合Amazon SageMaker与Stable Diffusion进行模型训练和推理任务的内容。

 为了帮助客户快速、安全地在亚马逊云科技上构建、部署和管理应用程序,众多合作伙伴与亚马逊云科技紧密合作。他们提供各种各样的服务、深入的技术知识、最佳实践和解决方案,包括基础设施迁移、应用程序现代化、安全和合规性、数据分析、机器学习、人工智能、云托管、DevOps、咨询和培训。

 最近,亚马逊云科技核心级服务合作伙伴eCloudrover(伊克罗德)推出了基于Stable Diffusion的AI绘画解决方案——imAgine,既拥有经过广泛验证且易于部署的先进AI算法模型,又提供丰富且高性价比的云端资源以优化成本,旨在帮助游戏、电商、媒体、影视、广告、传媒等行业快速构建AIGC应用通路,打造AI时代的领先生产力。

 Stable Diffusion实战技巧

 古语有云:“万事开头难”,“致广大而尽精微”。这对应了在Stable Diffusion实战中,客户最常遇到的两方面问题,一是如何选择合适的提示词起手式,来生成满足期望的图片;二是如何对图片进行细节优化,使最终产出的结果能够满足生产应用需求。

 根据过往服务客户使用Stable Diffusion的经验,整理了以下内容作为推荐的最佳实践,希望对读者使用Stable Diffusion进行创作时提供参考。

 提示词工程

 随着Stable Diffusion版本不断迭代,AI对语义的理解越来越接近“常识”之后,对提示词(Prompts)的要求也会越来越高。很多提示词上的误区有时会对绘图产生反作用。

 Prompt的基本概念

 提示词分为正向提示词(positive prompt)和反向提示词(negative prompt),用来告诉AI哪些需要,哪些不需要。

 Prompt的误区

  • Prompt在于精确,不在于数量;用最简短的单词阐述画面,比自然语言要更有效。

  • 提升质量的描绘词绝不是无脑堆砌、越多越好。

  • 经常出现的起手式:“masterpiece”“best quality”等,很多时候会成为提示词中的累赘。这些词语在NovelAI时代是有意义的,因为当时NovelAI训练模型时大量使用了这些词汇来对图像进行评价;但在如今,经过Civitai上模型作者们不断重新炼制模型,这些提示词已经很难在生图结果中展现应有的作用。

 调整提示词的权重

  • 词缀的权重默认值都是1,从左到右依次减弱

  • 提示词权重会显著影响画面生成结果

  • 通过小括号+冒号+数字来指定提示词权重,写法如(one girl:1.5)

 注意提示词的顺序

  • 比如景色Tag在前,人物就会小,相反的人物会变大或半身

  • 选择正确的顺序、语法来使用提示词,将更好、更快、更有效率地展现所想所愿的画面

 Prompt中的Emoji

  • Prompt支持使用emoji,且表现力较好,对于特定的人脸表情或动作,可通过添加emoji图来达到效果

  • 为了防止语义偏移,优先考虑emoji,然后少用不必要的with一类的复杂语法

 视角Prompt推荐

 参数

 解释

 extreme closeup

 脸部特写

 close up

 头部

 medium close up

 证件照

 medium shot

 半身

 cowboy shot

 无腿

 medium full shot

 无脚

 full shot

 全身

 图片优化

 很多时候我们生成了一张差强人意的图片,希望对这个结果进行进一步的优化,但往往不知道从何下手。这时您或许可以参考以下图片参数调优的最佳实践:

 哪些参数需要调整

  • CFG Scale:图像与提示词的相关度。该值越高,提示词对最终生成结果的影响越大,契合度越高。

 CFG 2-6:有创意,但可能太扭曲,没有遵循提示。对于简短的提示来说,可以很有趣和有用。

 CFG 7-10:推荐用于大多数提示。创造力和引导力度之间的良好平衡。

 CFG 10-15:当您确定提示是详细且非常清晰的,对图片内容有极明确的要求时使用。

 CFG 16-20:除非提示非常详细,否则通常不推荐。可能影响一致性和质量。

 CFG >20:几乎无法使用。

  • Sampling Steps迭代步数:步骤越多,每一步图像的调整也就越小、越精确。同时也会成比例地增加生成图像所需要的时间。

 对于大部分采样器,迭代越多次效果越好,但超过50步后就收效甚微。

  • Sampling method采样方法:不同的采样方法,对应的最佳迭代步数是不同的,在进行对比时需要综合考虑。

 Euler a:富有创造力,不同步数可以生产出不同的图片。并且这是一个效率较高的采样方法,可以用来快速检查prompt效果的好坏。

 DPM2 a Karras:适合跑真实模型,30步以后不好把控。

 DPM++ 2M Karras:在高步数下表现优异,步数越高细节越多。

 DDIM:收敛快,但效率相对较低,因为需要很多step才能获得好的结果,适合在重绘时候使用。

 不同模型与采样方法搭配出的结果也不同,以上仅供参考,在进行采样方法的选择时,最好使用X/Y/Z图表进行对比。

  • Seed随机种子:随机种子值很多时候对构图的影响是巨大的,这也是SD生图随机性的最主要来源。

 保持种子不变,同样的提示词和模型,保持所有参数一致的情况下,相同的种子可以多次生成(几乎)相同的图像。

 在确定好一个合适的画面构图时,固定种子,对细节进行进一步打磨,是最合适的做法。

 如何对比寻找最佳参数

 利用X/Y/Z图找最佳参数:通过使用X/Y/Z图,我们可以很清晰地对比不同参数下的结果,快速定位合适的参数范围,进行进一步的生成控制。

 图片尺寸优化

  • 图片质量并不直接与图像尺寸挂钩。

  • 但尺寸在一定程度上影响了主题/图片内容,因为它潜在代表选择的类别(比如竖屏人物,横屏风景,小分辨率表情包等)。

  • 当出图尺寸太宽时,图中可能会出现多个主体。

  • 1024之上的尺寸可能会出现不理想的结果,并且对服务器显存压力是巨大的。推荐使用小尺寸分辨率+高清修复。

 优化多人物/宽幅单人物的生成

  • 单纯使用txt2img无法有效指定多人物情况下,单个人物的特征。

  • 较为推荐的方案是制作草稿+img2img或ControlNet的方式。

  • 宽幅画作+单人物生成最好打草图,进行色彩涂抹,确定画面主体;或使用ControlNet的OpenPose做好人物骨架。

  • 多人物确定人物数量,最好使用ControlNet的OpenPose来指定;该方案也适合画同一人物的三视图。

 进行手部修复

  • 将图片送入img2img inpaint,使用大致相同的提示词,将关于“手”的提示放在前面,根据希望手部特征变动多少来设置重绘幅度(如果只是希望手更完整,调至0.25以下),然后保留步骤和CFG与txt2img相同。

  • 找到一个满足期望的手部图片,借助ControlNet的Canny或OpenPose_hands等预处理器+模型,结合inpaint操作,能实现更精确的手部控制。

 进行面部修复

  • 在绘制人物主体较小的图片时,经常会出现面部崩坏的情况。尤其是本文之后会介绍的生成艺术二维码流程,人物的面部经常会因为二维码码点的存在而崩坏。

  • 对面部的重绘,更推荐使用!After Detailer插件实现,通称ADetailer。

  • 该插件会使用yolo算法对图片中的物体进行识别,我们设定其识别人物面部,并提供面部重绘的提示词和模型;该插件会在识别到的面部位置进行局部重绘,完成面部修复。

  • ADetailer插件可以满足面部和手部的识别与修复。

  • 在ADetailer中也能引用Lora模型进行局部重绘生成。

原标题:借助 ControlNet生成艺术二维码——基于Stable Diffusion的AI绘画方案

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

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

相关文章

OpenCV之形态学操作

形态学操作包含以下操作: 腐蚀 (Erosion)膨胀 (Dilation)开运算 (Opening)闭运算 (Closing)形态梯度 (Morphological Gradient)顶帽 (Top Hat)黑帽(Black Hat) 其中腐蚀和膨胀操作是最基本的操作,其他操作由这两个操作变换而来。 腐蚀 用一个结构元素…

谷歌Chrome庆祝15周年,推出全新设计!了解最新信息!

谷歌浏览器本月将满15岁,为了纪念这一时刻,它正在进行改造和升级。 这一点意义重大,因为Chrome在全球有数十亿人使用,因此谷歌所做的每一项改变都会对互联网以及这些人与互联网的互动方式产生巨大影响。即使你不使用Chrome或不关…

深入了解HTTP代理的工作原理

HTTP代理是一种常见的网络代理方式,它可以帮助用户隐藏自己的IP地址,保护个人隐私和安全。了解HTTP代理的工作原理对于使用HTTP代理的用户来说非常重要。本文将深入介绍HTTP代理的工作原理。 代理服务器的作用 HTTP代理的工作原理基于代理服务器的作用。…

一文讲透【静态脱敏实操】

1&#xff1a;直接上工具类 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version> </dependency>2:Hutool 支持的脱敏数据类型 现阶段最新版本的 Hutool 支持的脱敏数据类…

浅析目标检测入门算法:YOLOv1,SSD,YOLOv2,YOLOv3,CenterNet,EfficientDet,YOLOv4

本文致力于让读者对以下这些模型的创新点和设计思想有一个大体的认识&#xff0c;从而知晓YOLOv1到YOLOv4的发展源流和历史演进&#xff0c;进而对目标检测技术有更为宏观和深入的认知。本文讲解的模型包括&#xff1a;YOLOv1,SSD,YOLOv2,YOLOv3,CenterNet,EfficientDet,YOLOv4…

LaTeX总结-2023年9月8日

1. LaTeX总结 文章目录 1. LaTeX总结1.1. 定义作者&#xff0c;通讯作者&#xff0c;地址&#xff0c;宏包1.1.1. Example 11.1.2. Example 21.1.3. 特殊符号——作者标注注 1.2. 调整字体1.2.1. 数学模式下使用正体1.2.2. LaTeX内使用中文1.2.3. 正文文字 1.3. 常用符号及字母…

java - lua - redis 完成商品库存的删减

java调用lua脚本完成对商品库存的管理 主页链接 微风轻吟挽歌的主页 如若有帮助请帮忙点赞 //lua脚本 获取到内存不够的商品StringBuilder sb new StringBuilder();//定义一个数组存储可能缺少库存的值sb.append(" local table {} ");//获取值sb.append(" …

Java中的内部类

文章目录 &#x1f412;个人主页&#x1f3c5;JavaSE系列专栏&#x1f4d6;前言&#xff1a;&#x1f380;什么是内部类&#x1f415;内部类的分类&#x1f9f8;成员内部类&#x1f9f8;静态内部类&#x1f9f8;局部内部类&#x1f9f8;匿名内部类 &#x1f415;内部类的特点&a…

navicat设置mysql自动根据插入时间更新时间

使用navicat时间字段要素根据当前数据插入时间自动填充&#xff0c;可设置now()函数

CentOS 8 通过YUM方式升级最新内核

CentOS 8 通过YUM方式升级最新内核 查看当前内核 uname -r 4.18.0-193.6.3.el8_2.x86_64导入 ELRepo 仓库的公钥&#xff1a; rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org安装升级内核相关的yum源仓库(安装 ELRepo 仓库的 yum 源) yum install https://www…

栈和队列的概念及实现

文章目录 一、栈1.栈的概念2.数组作为顺序栈存储方式特点3.链栈特点4.代码实现栈(1).Stack.h(2).Stack.c(3).Test.c 二、队列2.区分顺序存储的队空和队满的三种处理方式3.代码实现(1).Quene.h(2).Quene.c 一、栈 1.栈的概念 栈的本质就是线性表&#xff0c;但它和队列一样&…

Nginx 学习(九)集群概述与LVS工作模式的配置

一 集群 1 概述 通过高速网络将很多服务器集中起来一起提供同一种服务&#xff0c;在客户端看来就像是只有一个服务器可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益任务调度是集群系统中的核心技术 2 目的 提高性能。如计算密集型应用&…

记LGSVL Map Annotation使用

导入点云 内置的点云导入器工具提供了将最流行的点云文件格式&#xff08;PCD、PLY、LAS、LAZ&#xff09;转换为可用于仿真的数据所需的所有功能。 要访问点云导入器窗口&#xff0c;请在 Unity 编辑器中打开模拟器项目&#xff0c;然后导航到 Simulator/Import Point Cloud…

java 前缀树的实现,敏感词的匹配和标记

目录 一、前缀树的介绍和定义1.前缀树的定义2.前缀树的结构 二、前缀树的实现1.向前缀树中增加词语2.向前缀树中删除词语3.对于使用前缀树进行词语标识&#xff1a;4.前缀树的实现代码 三、前缀树使用及测试1.向前缀树上增加词语2.根据输入匹配前缀树上的词语3.判断前缀树上是否…

Java 基于SpringBoot+Vue的社区医院管理系统的实现

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 1、效果演示2、 前言介绍3. 技术栈4系统设计4.1数据库设计4.2系统整体设计4.2.1 系统设计思想4.2.…

加拿大CCPSA-SOR/2016-152(婴儿床、摇篮和婴儿摇篮法规)认证要求解答

亚马逊加拿大站儿童床垫CCPSA认证: ●SOR/2016-152&#xff08;婴儿床、摇篮和婴儿摇篮法规&#xff09; ●SOR/2018-83&#xff08;含铅消费品法规&#xff09; ●SOR/2016-193&#xff08;表面涂层材料法规 - 铅&#xff09; ●SOR/2016-188&#xff08;邻苯二甲酸盐&…

大漠插件普通定制版内存调用与com对象调用方法

首先.打开大漠类库生成工具.拖入定制版的dll文件会生成各个语言的调用例子 如下图所示 详见视频教程 大漠插件普通定制版内存调用与com对象调用方法

qt作业day5

//客户端&#xff0c;#include "tcpcli.h" #include "ui_tcpcli.h"TcpCli::TcpCli(QWidget *parent) :QWidget(parent),ui(new Ui::TcpCli) {ui->setupUi(this);//给客户端指针实例化对象cli_sock new QTcpSocket(this);ui->discntBtn->setEnabl…

Docker的运行机制和底层技术简介

&#xff08;笔记总结自《微服务架构基础》书籍&#xff09; 一、Docker的引擎 Docker Engine&#xff08;Docker引擎&#xff09;是Docker的核心部分&#xff0c;使用的是客户端-服务器&#xff08;C/S&#xff09;架构模式&#xff1a; ①Docker Cli&#xff1a;Docker命令…