简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)

在上一篇笔记中简单学习了Layer Diffusion的操作方法,其实也不难,主要的问题是现在这个Layer Diffusion还不太成熟。

目前大家比较熟悉的WebUI对于这项技术适配程度不高,很容易出问题。为了这个Layer Diffusion还要专门去下载一个ForgeUI,虽说Comfy UI也能用但是就没那么方便。

但是我毕竟都写了个开头了还是学完会比较好,你们可以不看但我不能不学啊。

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

Layer Diffusion的进阶操作

在上篇笔记中用LayerDiffusion生成了透明的图片,其实光生成这个也没那么厉害,在Layer Diffusion中有个Method方案。

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

这点开之后可以发现有很多种方案可以选择:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

放大来看这些对应了不同版本底模下的处理方式,其区别在于运行的Layer Diffusion模型,在每次启用时后台都会自动下载对应的模型文件。

当然如果下载失败了也可以去文末的链接中下载对应文件,然后手动放到模型存储路径即可:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

先看哪些有SDXL的方案:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

第一种:Foreground to blending根据前景补全背景

在绘画前会先将一张图片定义成前景(Foreground)和背景(Background):

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

像这样的一张图片,在前面的人物就是前景,后面的高楼大厦就是背景,而这样子一张图融合在一起则是被称为Blending(前背景融合的成品)

选择了之后会多出一个可以导入前景的窗口,在这里可以导入一张透明底的PNG图片:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

导入之后在上方提示词框中输入根据图片形象和预想的完整画面内容,例如导入了一张女孩的图片,那么提示词可以输入:

best quality, masterpiece, original, 1girl wearing white cloth and black skirt in the classroom, indoors, afternoon, sunset, cinematic lights

这样图片就会根据人物和提示词生成并融合一张图片出来:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

如果生成之后只想要那个背景的话,则选择方案中的From Foreground and Blending to Background

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

这样一来下方就会变成两个输入框:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

左边输入前景、右边输入融合图:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

如果只是要背景的话提示词部分需要去掉关于人物的描述,或者加入no_humans这类限制词。

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

这样一来就可以把融合图里的背景“提取”出来了,如果在每一次操作后都手动保存一下成品的话就可以同时得到图片的前景层和背景层。

第二种:根据背景生成前景From Background to Blending

有了根据前景生成背景,当然也有根据背景生成前景的操作。

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

这里导入的就是背景图了:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

在导入图片后在提示词中描述想要在图片里出现的前景图内容:

A photo of a woman wearing yellow dress walking on the street, outdoors, day, cloudy blue sky, plants.

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

虽说乍一看没啥问题,但是多生成几次的话会发现其对空间关系、比例大小的理解还不够,换句话说就是不知道这个生成的东西要摆在哪里好。

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

在开发者日记中也有提到AI会部分影响画面色彩和细节,所以这个操作在目前并不是很常用到,比较稳妥的方法还是直接生成透明底内容然后再合成进画面里。

当然还有另一种,就是在有了背景图和融合结果的情况下智能扣出背景图:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

操作是一样的,只不过导入的换成了背景图和融合图,这样一来生成的部分就是前景啦:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

Only Generate Transparent Image像是这样的仅透明选项对应的是一开始示范的直接生成透明底PNG的玩法

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

这两个版本的区别在于训练模型的时候一个是针对常规注意力层(Attn),另一个则是针对卷积层的(Conv),如果不太了解这俩的可以看我这篇笔记:

加入光荣的进化吧!(AI深度学习-卷积)

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

而根据开发者说明,卷积版本理论上可以更好地理解提示词的语义,但是会对原模型的风格造成较大影响,如果还是不清楚那就直接选择尾缀为(Attention Injection)版本即可。

上述的选项都是基于SDXL模型训练出来的,而在上方还有(SD1.5)为开头的选项,这些则是基于SD1.5的模型训练出来的。

如果选择了这些模型的话,主页面左上角的Stable Diffusion模型记得切换为SD1.5的大模型。

最基本的仅透明Only Transparent模型和XL的一样直接出透明底图片,其他的选项也和上面说的大同小异。但是这里还有一个额外的选项是SDXL没有的:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

这个选项就是Layer Diffusion的最终操作,直接生成一个“三合一”的前景、背景、融合图组合。

不过有几点要注意:

上方参数的单批数量Batch size的设置为3或者3的倍数

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

因为这个选项是一次性输出三张图片(前景+背景+融合图)

另一个则是LayerDiffusion下面的菜单中会出现三个额外的Prompt输入框:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

这三个输入框分别对应前景、背景和整体的画面描述,这些提示词可以更好地引导画面进行图像生成。

在最上方的提示词框中可以只保留最基本的质量提示词,例如high quality, masterpiece等。

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

worst quality, text, ugly, (deformed iris, defomed puplis), text, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, (extra fingers),(mutated hands),poorly drawn hands, poorly drawn face, mutation,

在下方的提示词框中则是可以输入自己想要画面生成的内容(描述人和场景):

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

这样之后点击生成就能一步到位生成出完整的前景、背景和融合图了:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

至于为什么SDXL的模型选项没有这么一个功能,根据开发者说明提到:其实这个功能已经在炼制的过程中了,但是由于占用的资源太多所以暂时搁置了:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

 

Layer Diffusion的扩展延伸

Layer Diffusion其实不太依赖模型,它几乎可以和任何风格的1.5/XL模型搭配使用。当然也会有点小瑕疵,例如会出现画面崩坏的情况(因为对提示词理解不准确,常见于1.5版本);或者是生成对象的位置/比例不合理的情况。

其AI绘画的随机性仍然存在,遇到这种情况最好的还是重新多“抽”几次或者简单的后期处理。

高清修复等一系列在之前的Stable Diffusion操作也可以在这里使用,甚至LoRA也能混合着使用。而另一个重点:ControlNet也是可以在Forge UI中使用的。

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

ControlNet就不必我多说了,它进一步提高了LayerDiffusion的可控性。不过要注意的是,现阶段输出的透明底PNG似乎不会直接被保存到输出文件夹中,所以有觉得不错的成品记得手动下载保存下来。

 

问题解决方案汇总

可能有些小伙伴在下载安装后打开Forge UI会遇到这样一个问题:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

这个就是困扰了我两天的难题,不过好在我找到了解决方法。

出现这个问题可能有两种可能,第一种是可能有小伙伴开启了VPN导致链接出现了问题,这里直接把VPN关掉后重启整个Forge UI即可。

另一种是我自己用的方法:环境配置问题,如果关闭了VPN之后还是这样的话就跟着我的方法进行环境配置。

第一、找到ForgeUI的web.bat文件,在ForgeUI的根目录中找到webui文件夹点击进去:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

第二、鼠标右键选择在文本编辑器中打开,不要直接双击打开

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

第三、在最下方添加这么一行代码:

set COMMANDLINE_ARGS=–no-gradio-queue 

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

第四、在文本编辑器的左上角文件选择保存,并关闭文件。

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

第五、Run ForgeUI,后台会自动进行配置下载,等待一段时间即可。

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

这样就能顺利出图了:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

当然我也是写的差不多了才发现这个今天竟然没有报错,所以文章部分的素材是来源自B站UP主Nenly同学。

在不同的环境的SD WebUI之间进行模型分享

原教程UP主Nenly同学还分享了一个可以帮助到之前下载了WebUI同学的方法,就是能让之前下载的模型直接在ForgeUI里用,不用再去重新复制过去。

第一、在ForgeUI根目录下找到webui-user.bat文件,用文本编辑器打开:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

第二、将红框部分的”@REM”全部删除

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

第三、将红框中的”Your A1111 checkout dir”替换为存了模型的主力WebUI根目录:

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

我填写的是我WebUI里面放模型的位置,如果跟我一样从电脑上直接复制路径的话记得把斜杠改过来,把”\”改为”/”。

第四、在底部红框位置额外添加ConrtolNet目录(有一个下划线):

–controlnet-dir %A1111_Home%models/ControlNet

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

然后保存关闭即可。

今天的内容就到这里结束啦!

差点没把我折腾死,这玩意儿说实话还需要等开发者再优化一下。

虽然已经可以使用并且有较大的应用场景,但是对于真的什么都不懂的萌新来说还是有点难度的。

希望这篇文章能够帮助到大家,大伙下篇笔记见,拜了个拜!

《简单地把人和背景给拆开,这下想去哪就去哪了(Stable Diffusion进阶篇:Layer Diffusion2)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

<lora:GirlfriendMix2:1>

1girl, Tokyo street,night, cityscape,city lights, upper body,close-up, 8k, RAW photo, best quality, masterpiece,realistic, photo-realistic,

Negative prompt: ng_deepnegative_v1_75t, badhandv4 (worst quality:2), (low quality:2), (normal quality:2), lowres, bad anatomy, bad hands, normal quality, ((monochrome)), ((grayscale)),breasts,cleavage

  • Steps: 30
  • Sampler: DPM++ 2M Karras
  • CFG scale: 7
  • Seed: 3667381741
  • Size: 512×512
  • Model hash: 7c819b6d13
  • Model: majicmixRealistic_v7
  • Denoising strength: 0.7
  • Clip skip: 2
  • Hires upscale: 2
  • Hires upscaler: R-ESRGAN 4x+
  • Lora hashes: “GirlfriendMix2: 5bdc6a1fc805”
  • Version: v1.8.0

部分文章素材来源:

解决方案:

https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/9132

https://github.com/d8ahazard/sd_dreambooth_extension/issues/980

https://www.reddit.com/r/StableDiffusion/comments/14jzkx4/psa_if_a111_webui_becomes_unresponsive_try/

0

评论0

请先
显示验证码