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,我在之前的文章中介绍过它,点击此处前往:AI抠图使用指南: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

资源下载

如果你对 Stable Diffusion 感兴趣,我整理了很多 SD 相关的模型、插件,都已经上传到我整理的 Stable Diffusion 绘画资源中,后续也会持续更新,如有需要,请关/注/公/众/号:萤火遛AI(yinghuo6ai),发消息:SD,即可获取下载地址。


以上就是本文的主要内容了,如有问题,欢迎留言沟通交流。

相关推荐
用户5191495848454 小时前
使用Python ConfigParser解析INI配置文件完全指南
人工智能·aigc
小溪彼岸5 小时前
分享一个Claude Code宝藏网站Claude Code Templates
aigc·claude
YFCodeDream6 小时前
MLLM技术报告 核心创新一览
python·gpt·aigc
蛋先生DX8 小时前
RAG 切片利器 LumberChunker 是如何智能地把文档切割成 LLM 爱吃的块
llm·aigc·ai编程
土丁爱吃大米饭8 小时前
AIGC工具助力2D游戏美术全流程
aigc·小游戏·游戏开发·ai助力
安思派Anspire10 小时前
为何你的RAG系统无法处理复杂问题(二)
aigc·openai·agent
Mintopia11 小时前
🧠 可解释性AIGC:Web场景下模型决策透明化的技术路径
前端·javascript·aigc
用户51914958484511 小时前
Flutter应用设置插件 - 轻松打开iOS和Android系统设置
人工智能·aigc
墨风如雪1 天前
DeepSeek OCR:用'眼睛'阅读长文本,AI记忆新纪元?
aigc
算家计算1 天前
SAIL-VL2本地部署教程:2B/8B参数媲美大规模模型,为轻量级设备量身打造的多模态大脑
人工智能·开源·aigc