当前位置: 首页 > news >正文

AIGC-文生图与图生图

在之前的文章中,我们知道了如何通过Web UI和Confy UI两种SD工具来进行图片生成,今天进一步地讲解其中的参数用处及如何调节。

文生图

参数详解

所谓文生图,就是通过文字描述我们想要图片包含的内容。初学的话,还是以Web UI为例来看看,在整个过程中,涉及到了哪些参数,以及我们可以做哪些事情来调整最后的效果。
请添加图片描述
我们先来看看上面标记的5个位置:
1、Stable Diffusion模型:这是生成图片的基石,目前该模型也有很多版本,比如SD1.0、SD1.5、SD2.0、SDXL、SD3.0、SD3.5等,可以根据我们自己的需要选择。不过目前基本不会用最原始的版本,而是使用在该模型上经过微调后的模型,图中的anything-v5模型就是在SD1.5原始模型上微调过。
2、外挂VAE模型:可以将原始图片空间映射到低维空间,减少显存占用率。使用VAE模型,可以让生成的图像颜色更鲜艳、细节更锐利,在一定程度上改善局部细节的生成质量。目前很多大模型已经自带VAE了,不需要我们手动选择,除非作者在模型发布页面着重提到需要外挂的VAE模型。
3、文生图:这是核心功能区域,可以看到其后面还有各种各样的功能模块,比如图生图、后期处理等,我们需要用到哪一部分,就点击该选项即可。
4、正向提示词:用来描述我们想要生成的图像呈现的效果,提示词框下面是已经内置的一些提示词,方便我们快速设置。
5、负向提示词:用来描述我们不想要图像呈现的效果,和正向提示词一样,也有一些内置的提示词。
请添加图片描述

然后再看看剩下标记的10个位置(均处于生成选项栏,其余的后续会介绍):
1、采样方法:决定如何从噪声图像估计无噪声的图像,直接影响生成图像的速度、质量及风格,目前内置了数十种采样方法,需要依据我们想要实现的效果进行选择。
2、调度类型:控制扩散模型中去噪的时间步和噪声的分布,和采样方法共同决定了最后呈现的图像效果。
3、迭代步数:步数越少,生成速度越快,但是细节可能不足,步数越多,细节更丰富,但是计算量更大。
4、高分辨率修复:默认不开启,开启后会在文生图之后,先对生成的图像放大相应的倍数,然后对放大后的图像重绘以添加更多的细节。
5、Refiner:默认不开启,开启后会在文生图之后,借助refiner模型提升分辨率,进一步优化和改进生成的图像质量。
6、宽度和高度:控制最后生成的图像大小。
7、总批次数:控制同参数下进行文生图的批次数。
8、单批数量:控制同参数下单批次生成的图像数目。
9、提示词引导系数:控制我们的正向、负向提示词对于图像的影响程度,数值越大越会限制模型的创意。
10、随机数种子:决定了生成图像时的随机性,默认为-1,表示每次生成图像都是随机状态,也可以直接填写一个数值,那么后续生成图像时都会参考这个种子,以便最大限度地保证结果一致。
了解了基本功能后,我们再着重讲讲模型选择、提示词书写、采样方法与调度类型的选择这三个方面,其他设置大家可以多尝试一下。

如何选择模型

目前大家用的比较多的模型可以分为三类:

  • 二次元类模型:Anything V5、Counterfeit V2.5、Dreamlike Diffusion。
  • 真实性模型:Deliberate、Realistic Vision、LOFI。
  • 2.5D模型:Never Ending Dream、Protogen、国风3。

假如我们的正向提示词为:a girl, cute,负向提示词不写,生成的选项如下所示:
请添加图片描述

分别采用Anything V5、Deliberate、国风3模型得到的效果如下。
Anything V5效果图
Deliberate效果图
国风3模型

如何书写提示词

模型选择好之后,我们再来看看如何书写好的提示词(参考了B站Nenly同学教学),在实际使用中,可以将其分为两大类:

  • 内容型提示词
  • 标准化提示词

所谓内容型提示词,就是指我们想要呈现的画面内容,可以从四个角度书写:

  • 人物及主体特征:服饰穿搭(white dress)、发型发色(long hair)、五官特点(small eyes)、面部表情(smilling)、肢体动作(stretchinig arms)。
  • 场景特征:室内室外(indoor、outdoor)、大场景(forest、city、street)、小细节(tree、bush、white flower)。
  • 环境光照:白天黑夜(day、night)、特定时段(morning、sunset)、光环境(sunlight、bright)、天空(blue sky)。
  • 画幅视角:距离(close-up)、人物比例(full body、upper body)、观察视角(from above)、镜头类型(wide angle)。
    而标准化提示词,则可从两个角度书写:
  • 画质提示词:通用高画质(best quality、masterpiece、8k)、特定高分辨率类型(unreel engine rendered)。
  • 画风提示词:插画风(illustration、painting)、二次元(anime、comic)、写实系(realistic)。

另外提示词还有一些特殊的写法:

  • 权重分配
    • 括号加数字: ( w h i t e f l o w e r : 1.5 ) (white flower:1.5) (whiteflower:1.5)代表权重调整为以前的1.5倍。
    • 套括号
      • 圆括号:每套一层,权重调整为之前的1.1倍, ( ( ( w h i t e f l o w e r ) ) ) (((white flower))) (((whiteflower)))为以前的1.331倍。
      • 大括号:每套一层,权重调整为之前的1.05倍, w h i t e f l o w e r {{{white flower}}} whiteflower为以前的1.15倍。
      • 方括号:每套一层,权重调整为之前的0.9倍, [ [ [ w h i t e f l o w e r ] ] ] [[[white flower]]] [[[whiteflower]]]为以前的0.729倍。
  • 混合:混合两个描述同一对象的提示词要素, w h i t e ∣ y e l l o w f l o w e r white | yellow flower whiteyellowflower生成黄白相混合的花。
  • 迁移:连续生成具有多个不同特征的对象, [ w h i t e ∣ r e d ∣ y e l l o w ] f l o w e r [white|red|yellow] flower [whiteredyellow]flower先生成白花,再生成红花,最后生成黄花。
  • 迭代:与采样过程关联,一定阶段以后再生成特定对象, ( w h i t e f l o w e r : b u s h : 0.8 ) (white flower:bush:0.8) (whiteflower:bush:0.8)进程达到80%以前生成黄色的花,之后再生成灌木。

如何选择采样方法和调度类型

除了模型和提示词之外,采样方法和调度类型也极大地影响了生成图像的质量,SD提供了多种采样器,不同采样器生成图像的细节、风格和速度各有特点。以下是常见的采样器及其特点:
请添加图片描述

当我们选择采样方法的时候,可以先依据下面的技巧:

  • 快速测试:选择 DDIMEuler,可以快速生成图像,便于调整参数。
  • 写实风格图像:选择 LMSDPM++ 2M Karras,能生成细节丰富、清晰的图像。
  • 艺术风格图像:选择 Euler aPLMS,可以生成带有艺术风格的多样化图像。
  • 高分辨率图像:选择 DPM++ 系列UniPC,可以更好地处理细节和边缘。

同样地,不同的调度类型也有自己的特点,下面是几种常见的调度器对比:
请添加图片描述
当我们选择调度器的时候,也可以先依据下面的技巧:

  • 高分辨率图像生成:选择 Karras 调度器,能更好地优化细节。
  • 快速生成任务:选择 Linear 调度器,简单高效。
  • 平滑细腻图像:选择 Cosine 调度器,能提升艺术风格图像的质量。

不过大多数情况下,我们将调度类型设置为Automatic即可。

图生图

上面已经介绍完了文生图,我们再看看图生图,实际上它俩最大的区别有两个地方:

  • 图生图需要事先上传一个图片,作为后续生成的参照。
  • 除了提示词引导系数外,还有个重绘幅度,用于控制参照图片的影响程度。
    请添加图片描述
    请添加图片描述
    我们使用Anything V5模型,正向提示词和之前保持不变,仍然是a girl, cute,生成选项也与之前保持不变,上传一张照片:

请添加图片描述

然后点击生成,可以看到与原图相比,保留的元素不多,更多是模型自由发挥:
请添加图片描述

但如果我们把重绘幅度调到0.5,生成出来的图则保持了原图更多的元素:
请添加图片描述

总结

本篇文章介绍了SD中文生图和图生图的基本用法,相信阅读后大家对于SD都有个基本的了解,剩下的就是多去实操,在这个去中心化时代,每个人都可以成为不可忽略的重要节点。

相关文章:

  • Vision Mamba修改为自己的目标检测数据集
  • linux多线(进)程编程——(2)身外化身fork()
  • 概率论与数理统计核心知识点与公式总结(就业版)
  • C++进阶——异常
  • 计算机组成原理-系统总线
  • Hibernate(JPA) 和 MyBatis 的对比
  • Java基础关键_036_Stream
  • 使用Python实现矢量路径的压缩、解压与可视化
  • Python | 在Pandas中按照中值对箱形图排序
  • 二叉树的最近公共祖先二叉搜索树的最近公共祖先
  • 25届双非控制硕士求职回顾
  • ARM架构FFmpeg极致优化交叉编译指南
  • Linux:DNS服务配置(课堂实验总结)
  • 怎么免费下载GLTF/GLB格式模型文件,还可以在线编辑修改
  • instructor 库实现缓存
  • 【C#】.NET 8适配器模式实战:用C#实现高可用系统集成与接口桥接艺术
  • AutoGen参数说明
  • Kubernetes中的Label和Selector核心作用与应用场景
  • AI相关视频
  • 字符串与栈和队列-算法小结
  • 全国游泳冠军赛:孙杨、潘展乐同进400自决赛,今晚将正面对决
  • 穆迪下调美国主权信用评级
  • 梅花奖在上海|湘剧《夫人如见》竞梅,长沙文旅来沪推广
  • 国家防汛抗旱总指挥部对15个重点省份开展汛前实地督导检查
  • 最高人民法院原副院长唐德华逝世,享年89岁
  • 北方产粮大省遭遇气象干旱,夏粮用水如何解决?