Stable Diffusion教程:图生图

"图生图"是 Stable Diffusion的 核心功能之一,它的主要能力是根据现有的图片 + 提示词生成新的改造图片,这在日常的工作和生活中都特别有用。

话不多说,让我们看看它都有什么神奇的魔法吧。

基本使用

本节以生成人物的二次元风格的照片为例,具体步骤如下:

1、在Stable Diffusion 大模型这里选择一个二次元模型:

2、在"图生图"这里上传一张人物肖像照,并编写对应的提示词和反向提示词。这里提示词是可选的,但是不填写可能会导致生成的图片效果质量不佳。

提示词:

best quality, masterpiece, super high resolution, 4k, adult women, asia, full body:1.4, long black hair, looking at viewer, beautiful detailed eyes, small breasts, white t-shirt:1.6, white pants:1.6, wide shot:1.3, strolling, beach:1.3, tree, beautiful detailed sky, blue sky

反向提示词:

deformed,bad anatomy,disfigured,poorly drawn face,out of frame,bad hands,unclear eyes,cloned face,bad face, disfigured, deformed, cross-eye

3、设置 Stable Diffusino的相关参数:

(1)缩放模式:因为参考图片和新生成的图片尺寸可能不一致,所以我们需要选择生成新图片时怎么处理参考图片。

这里有四种模式:拉伸、裁剪、填充和直接缩放,如果没有特殊需求,大家应该都不会喜欢拉伸和直接缩放的效果,它们的效果如下图所示:

当然如果参考图片和新生成图片的尺寸是一样的,这个【缩放模式】怎么设置都没有问题。

(2)采样器、采样步数:大部分采样器的效果差别不是很大,一般 Euler a 和20步采样就够了,其它的可以试试DPM+系列。后边会有文章专门讲采样器。

(3)生成图片的尺寸:一般保持和原图一样,也可以更改,更改时需要考虑【缩放模式】的影响。

(4)生成次数和每次数量:默认都是1,也就是只生成一次且每次只生成一张图片。增加【生成次数】会明显增加生成时间,增加【每次数量】会明显增大显存使用。

(5)提示词引导系数:默认为7,值越大生成图片越贴近提示词的描述,值越小AI自我发挥的越多,常见的设置是 5-12。

(6)重绘强度:新生成的图片会多大程度上改变参考图片,值越大新图片自由发挥的越多,越不像参考图片。这里我们不想让人物的二次元照片与原图相差太大,所以值设置的比较小。相同的值在不同的模型或者图片上的效果都可能是不同的,所以实际处理图片时还需根据效果进行调整。

然后我们就可以生成图片了,下边是我使用不同的重绘幅度做的图:

涂鸦绘制

涂鸦绘制就是在原图上画一个代表某种事物的形状,然后让Stable Diffusion结合我们的提示词在图片中生成对应的元素。下面这个例子是给女孩添加一副天使的翅膀。

1、选择合适的大模型,提示词中声明你想要在画面中出现的元素。

2、在下面的 Generation 选项卡中选择"涂鸦绘制",上传一张要涂鸦的图片,然后使用画笔工具在图片上画出你想要的形状,这里可以选择我们想要的颜色。天使的翅膀我想是白色的,但不应该是纯白,所以我这里选择一个有点灰的白色。

3、Stable Diffusion 的参数没什么好说的,注意缩放模式和图片尺寸的搭配,重绘强度建议从0.5开始,然后根据实际出图效果调整。

4、然后就可以生成图片了,看下边的效果。

可以看到,翅膀是画出来了,不过画面上的其它部分也产生了一些变化,涂鸦绘制是整张图片的重绘,某些场景下这不够完美,解决这个问题需要使用下文介绍的涂鸦蒙版。

使用这个技术,我们还可以在图片上写几个字,Stable Diffusion会把文字处理成画笔书写的效果,比较好看一些。

局部绘制

局部绘制是只更改原图片的部分区域,具体方式是使用画笔涂抹盖住一些部分,然后我们可以选择只重新绘制盖住的部分,或者只重新绘制没有盖住的部分。在 Stable Diffusion 中盖住的部分称为蒙版内容。

这里以把姑娘的头发颜色修改成金色为例。

1、基础模型选择一个匹配照片风格的;为了修改颜色,我们需要在提示词中着重描述重绘需求。提示词可以只描述要重绘的部分,也可以是一个完整的图片描述,重绘幅度较大时建议只描述要重绘的部分,否则重绘的部分可能与原图衔接不好。

2、在 Generation 选项卡中点击"局部绘制",上传一张图片后,使用画笔工具涂抹要重绘的部分。

3、其它 Stable Diffusion 参数如下:

(1)蒙版模糊度:设置重绘部分与原图的衔接处的模糊度,起到渐变的作用,让衔接看起来比较自然。衔接不好时可以调大一点看看。

(2)蒙版模式:绘制蒙版内容,也就是绘制被蒙住的内容;绘制非蒙版内容,也就是绘制没有蒙住的部分。怎么选择?我的经验是哪个涂抹的少选择哪个,给自己减少一些工作。比如这里要重绘头发,头发的区域相比整个图片要小很多,我们就涂抹头发,这里选择绘制蒙版内容;如果头发的区域很大,我们就可以涂抹其它区域,然后这里选择绘制非蒙版内容。

(3)绘制区域:选择全图时Stable Diffusion会先重绘整张图片,最后出图时再替换到原图中;仅蒙版时,Stable Diffusion只绘制需要重绘的部分。个人感觉出图效果没有太大差别,有兴趣的可以多试试对比下。

(4)仅蒙版绘制参考半径:绘制区域仅蒙版时,绘制区域向外拓展的数量,单位是像素。使用这个参数可以解决蒙版边缘不好涂抹的问题,效果类似我们手动涂抹时向外多涂抹一点,让新生成的部分与原图衔接的更好。

(5)图片尺寸:根据需要设置,注意选择合适的缩放模式。我这里只改颜色,所以和原图保持一致。

(6)重绘强度:多大程度上改变原图的内容。因为改头发颜色还是相对困难的,所以我这里火力全开,设置为最大的1。默认是0.75,需要根据实际出图效果调整设置。

4、最后给大家看下局部重绘的效果:

可以看到头发已经变成金色的了,但是头发的外形也发生了一些变化,这说明 Stable Diffusion是重新绘制,而不是简单的上色;而且只有蒙版蒙住的部分重新绘制了,其它部分都没什么变化。

这个技术用途比较大,比如给模特换衣服,当然如果要换指定的衣服还得结合其它技术才行。

局部绘制(涂鸦蒙版)

上面我们介绍了涂鸦绘制,但是涂鸦绘制会重绘整张图片,涂鸦蒙版可以解决这个问题。

还是以给人物加上天使的翅膀为例。

1、选择匹配画面风格的大模型,填写想要绘制的画面内容,上传图片,选择合适的颜色,在图片上画出想要的形状。

2、Stable Diffusion 的参数中多了一个蒙版透明度,值越大绘制的内容越透明;另外这里的重绘强度我们可以选择的高一点,因为重绘只针对图片的部分画面,我们不需要担心其它部分会被改变的太多。

3、话不多说,还是看一下效果:

4、再分享几个例子:

给姑娘头上戴上一朵小黄花。

给姑娘剪个头发。

在天上画个地图(区域有点小了,大家可以试试大图)。

局部绘制(上传蒙版)

上面我们演示了涂鸦蒙版的效果,但是这种手绘的蒙版还有个问题:不够精准,绘制起来也比较麻烦。

上传蒙版可以解决这个问题,我们可以使用别的工具来制作一个精准的模版,然后上传到局部绘制,再进行重绘。

还是以本文的姑娘照片为例,我们将使用上传蒙版分别重绘人物和背景。

1、选择匹配画面风格的大模型,在提示词中编写想要重绘的内容。

提示词1(绘制蒙版内容,亚洲姑娘换成金发碧眼的美国姑娘):

best quality, masterpiece, super high resolution, 4k, 1girl, american, full body:1.4, long golden hair, looking at viewer, beautiful detailed eyes, brown t-shirt:1.31, blue jeans:1.31

提示词2(绘制非蒙版内容,背景换成战火纷飞的街道):

best quality, masterpiece, super high resolution, 4k, 1girl standing in the middle of war-torn streets

反向提示词:

deformed,bad anatomy,disfigured,poorly drawn face,out of frame,bad hands,bad fingers,unclear eyes,cloned face,bad face, disfigured, deformed, cross-eye, EasyNegative

2、在"局部绘制(上传蒙版)"中分别上传原图和蒙版图。

蒙版图可以使用 Stable Diffusion WebUI 的一个抠图插件制作:stable-diffusion-webui-rembg

3、Stable Diffusion 参数设置。注意我们这里要使用两种蒙版模式分别绘制。

4、然后就可以生成图片了,效果图如下:

批量处理

"批量处理"可以完成一组图片的"图生图"处理。

1、我们首先还得选择一个大模型,编写相关的提示词(不过这个提示词也可以不填,具体原因后边的内容会有说明)。

2、再往下看,"批量处理"有一组特别的参数,如下图所示:

(1)输入目录:原图所在的目录,必须设置。

(2)输出目录:新生成图片的存放目录,必须设置。

(3)批量绘制遮罩图片目录:如果需要根据蒙版进行局部绘制,这里制定蒙版图片所在的目录,蒙版图片的文件名需要和"输入目录"中的文件名一一对应。

(4)Controlnet输入目录:如果使用Controlnet,这里需要指定Controlnet中使用的参考图片。留空则使用"输入目录"中的文件。

(5)PNG info:提取一组图片中的信息作为批量"图生图"时每张图片的参数。比如我们提前生成好了一组图片,现在想把它们转换为另外的风格,通过启用这个参数,就可以在生成新图片时使用原图片的生成信息,以最大化保留原图中的各种元素。启用这个参数,需要勾选上"Append png info to prompts",它还有几个子参数:

  • "PNG info directory"设置用来提取生成参数的图片目录,其中的图片文件名需要和"输入目录"中的文件名一一对应,默认为"输入目录";
  • "Parameters to Take from png info" 为想要使用的图片生成参数,按照自己的需要勾选就可以了,注意如果勾选了提示词,它会被追加到"图生图"的提示词中。如果我们想完全使用这些图片的提示词,可以把页面上方"图生图"的提示词和反向提示词留空。

3、再往下,是 Stable Diffusion 的一些标准参数。注意如果勾选了"Append png info to prompts",生成图片时下图红框中的参数会被替换掉。

批量生成后,我们可以在输出目录找到新生成的图片,图片处理效果上面都演示过了,这里就不展示了。

总结

通过以上演示,我们可以看到,图生图能够参考原图,再依据我们的指令生成新图。在这个重绘的过程中,我们可以使用涂鸦、蒙版等来影响出图的效果,这是一种精准控制的能力,不过这还不够,如果需要更多的精准控制,我们需要使用ControlNet:Stable Diffusion基础:精准控制之ControlNet

写在最后

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

相关推荐
B站计算机毕业设计超人44 分钟前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
学术头条1 小时前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
18号房客1 小时前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
feifeikon1 小时前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归
游客5201 小时前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉
古希腊掌管学习的神1 小时前
[机器学习]sklearn入门指南(2)
人工智能·机器学习·sklearn
凡人的AI工具箱1 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
咸鱼桨2 小时前
《庐山派从入门到...》PWM板载蜂鸣器
人工智能·windows·python·k230·庐山派
强哥之神2 小时前
Nexa AI发布OmniAudio-2.6B:一款快速的音频语言模型,专为边缘部署设计
人工智能·深度学习·机器学习·语言模型·自然语言处理·音视频·openai
yusaisai大鱼2 小时前
tensorflow_probability与tensorflow版本依赖关系
人工智能·python·tensorflow