Stable Diffusion教程:4000字说清楚图生图

2023-12-05 09:44

本文主要是介绍Stable Diffusion教程:4000字说清楚图生图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文:Stable Diffusion教程:4000字说清楚图生图 - 知乎

目录

收起

基本使用

涂鸦绘制

局部绘制

局部绘制(涂鸦蒙版)

局部绘制(上传蒙版)

批量处理

总结

资源下载

“图生图”是 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抠图的教程。

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,即可获取下载地址。


这篇关于Stable Diffusion教程:4000字说清楚图生图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/457060

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

沁恒CH32在MounRiver Studio上环境配置以及使用详细教程

目录 1.  RISC-V简介 2.  CPU架构现状 3.  MounRiver Studio软件下载 4.  MounRiver Studio软件安装 5.  MounRiver Studio软件介绍 6.  创建工程 7.  编译代码 1.  RISC-V简介         RISC就是精简指令集计算机(Reduced Instruction SetCom

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less的中文官网:https://lesscss.cn/ 2. less编译工具 koala 官网 http://koala-app.

【Shiro】Shiro 的学习教程(三)之 SpringBoot 集成 Shiro

目录 1、环境准备2、引入 Shiro3、实现认证、退出3.1、使用死数据实现3.2、引入数据库,添加注册功能后端代码前端代码 3.3、MD5、Salt 的认证流程 4.、实现授权4.1、基于角色授权4.2、基于资源授权 5、引入缓存5.1、EhCache 实现缓存5.2、集成 Redis 实现 Shiro 缓存 1、环境准备 新建一个 SpringBoot 工程,引入依赖:

Windows环境利用VS2022编译 libvpx 源码教程

libvpx libvpx 是一个开源的视频编码库,由 WebM 项目开发和维护,专门用于 VP8 和 VP9 视频编码格式的编解码处理。它支持高质量的视频压缩,广泛应用于视频会议、在线教育、视频直播服务等多种场景中。libvpx 的特点包括跨平台兼容性、硬件加速支持以及灵活的接口设计,使其可以轻松集成到各种应用程序中。 libvpx 的安装和配置过程相对简单,用户可以从官方网站下载源代码

PHP APC缓存函数使用教程

APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”。它为我们提供了缓存和优化PHP的中间代码的框架。 APC的缓存分两部分:系统缓存和用户数据缓存。(Linux APC扩展安装) 系统缓存 它是指APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记。如果未过期,则使用缓存的中间代码运行。默认缓存 3600s(一小时)。但是这样仍会浪费大量C

Qt多语种开发教程

Qt作为跨平台的开发工具,早已应用到各行各业的软件开发中。 今天讲讲,Qt开发的正序怎么做多语言开发。就是说,你设置中文,就中文显示;设置英语就英文显示,设置繁体就繁体显示,设置发育就显示法语等。 开发环境(其实多语种这块根环境没太大关系):win10,Qt.5.12.10 一.先用QtCreator创建一个简单的桌面程序 1.工程就随便命名“LanguageTest”,其他默认。 2.在设计师

C#设计模式(1)——单例模式(讲解非常清楚)

一、引言 最近在学设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二同时可以给一些初学设计模式的朋友一些参考。首先我介绍的是设计模式中比较简单的一个模式——单例模式(因为这里只牵涉到一个类) 二、单例模式的介绍 说到单例模式,大家第一