GitHub - layerdiffusion/sd-forge-layerdiffusion: [WIP] Layer Diffusion for WebUI (via Forge)

内容

sd-forge-layerdiffusion

sd-forge-layerdiffusion

使用潜在透明度进行透明图像层扩散

image

这是一个用于 SD WebUI 的 WIP 扩展 (通过 Forge),用于生成透明图像和图层。

图像生成和基本层功能现在已经可用,但透明的 img2img 还没有完成(将在约一周内完成)

这个代码库非常动态,可能在接下来的一个月内发生很多变化。如果您来自专业内容创作工作室,并且需要严格复制所有先前的结果,您可以考虑在每次更新时备份文件。

开始之前

开始之前

因为很多人可能会对透明扩散过程中的潜在预览效果感到好奇,所以我录制了一个视频,让你在下载模型和扩展之前可以看到它:

screen_record.mp4

你可以看到,原生透明扩散可以处理透明玻璃、半透明发光效果等,这是简单背景去除方法无法实现的。原生透明扩散还可以为你呈现详细的毛发、头发、胡须,以及骨架等详细结构。

模型说明

模型注释

请注意,所有当前发布的模型均适用于SDXL。如果有需求,稍后可能会提供适用于SD1.5的模型。

请注意,在此扩展中,所有模型的下载/选择都是完全自动的。事实上,大多数用户可以直接跳过此部分。

以下是发布的模型:

以下型号可能很快发布(如果有必要):

  1. 可以同时生成前景和背景的模型(使用类似于AnimateDiff的注意力共享)。我暂时搁置了这个模型,原因是:(1)其他发布的模型已经能够实现所有功能,而这个模型并没有带来更多功能。(2)这个模型的推理速度比其他模型慢3倍,需要的VRAM比其他发布的模型多4倍,如果必要的话,我正在努力减少这个模型的VRAM。(3)这个模型将涉及更多的超参数,如果需要,我将在发布之前调查最佳的推理/训练实践。2. 当前的基于背景的前景模型可能有点轻量级。我可能会发布一个更重的模型,具有更多参数和不同的行为(也请参见后面的讨论)。3. 由于扩散器训练和k-扩散推理之间的差异,我可以观察到一些神秘的问题,比如有时DPM++会产生伪影,但Euler A会修复它。我正在研究这个问题,可能会提供一些修订后的模型,以便更好地适用于所有A1111采样器。

健全性检查

使用的两个模型是:

  1. Juggernaut XL V6(请注意使用的是V6版本,而不是v7或v8或v9)
  2. anima_pencil-XL 1.0.0(请注意使用的是1.0.0版本,而不是1.5.0)

我们将首先测试透明图像生成。将您的扩展设置为此:

image

苹果,高品质

负面提示:糟糕,丑陋

步骤: 20, 采样器: DPM++ 2M SDE Karras, CFG 比例: 5, 种子: 12345, 尺寸: 1024x1024, 模型哈希: 1fe6c7ec54, 模型: juggernautXL_version6Rundiffusion, layerdiffusion_enabled: True, layerdiffusion_method: Only Generate Transparent Image (Attention Injection), layerdiffusion_weight: 1, layerdiffusion_ending_step: 1, layerdiffusion_fg_image: False, layerdiffusion_bg_image: False, layerdiffusion_blend_image: False, layerdiffusion_resize_mode: Crop and Resize, 版本: f0.0.17v1.8.0rc-latest-269-gef35383b

确保你拿到这个苹果

image

image

image

女性,凌乱的头发,高质量

负面提示:糟糕,丑陋

步骤: 20, 采样器: DPM++ 2M SDE Karras, CFG 比例: 5, 种子: 12345, 尺寸: 1024x1024, 模型哈希: 1fe6c7ec54, 模型: juggernautXL_version6Rundiffusion, layerdiffusion_enabled: True, layerdiffusion_method: Only Generate Transparent Image (Attention Injection), layerdiffusion_weight: 1, layerdiffusion_ending_step: 1, layerdiffusion_fg_image: False, layerdiffusion_bg_image: False, layerdiffusion_blend_image: False, layerdiffusion_resize_mode: Crop and Resize, 版本: f0.0.17v1.8.0rc-latest-269-gef35383b

确保你找到的女人头发像这样一样凌乱

image

image

玻璃制成的杯子,高质量

负面提示:糟糕,丑陋

步骤: 20, 采样器: DPM++ 2M SDE Karras, CFG 比例: 5, 种子: 12345, 尺寸: 1024x1024, 模型哈希: 1fe6c7ec54, 模型: juggernautXL_version6Rundiffusion, layerdiffusion_enabled: True, layerdiffusion_method: Only Generate Transparent Image (Attention Injection), layerdiffusion_weight: 1, layerdiffusion_ending_step: 1, layerdiffusion_fg_image: False, layerdiffusion_bg_image: False, layerdiffusion_blend_image: False, layerdiffusion_resize_mode: Crop and Resize, 版本: f0.0.17v1.8.0rc-latest-269-gef35383b

确保你拿到这个杯子

image

image

发光效果,魔法书,高品质

步骤: 20, 采样器: DPM++ 2M SDE Karras, CFG 比例: 7, 种子: 12345, 尺寸: 1024x1024, 模型哈希: 1fe6c7ec54, 模型: juggernautXL_version6Rundiffusion, layerdiffusion_enabled: True, layerdiffusion_method: Only Generate Transparent Image (Attention Injection), layerdiffusion_weight: 1, layerdiffusion_ending_step: 1, layerdiffusion_fg_image: True, layerdiffusion_bg_image: False, layerdiffusion_blend_image: True, layerdiffusion_resize_mode: Crop and Resize, 版本: f0.0.17v1.8.0rc-latest-269-gef35383b

确保你拿到这本发光的书

image

image

好的,那么让我们继续下一个稍长一点的提示:

拍摄特写肖像照片,女拳击手正在训练,认真、坚毅,具有电影感的4k高清细节照片,使用柯达拍摄,具有细致的背景虚化,带有HBO风格的黑暗沉郁氛围

负面提示:(最差质量,低质量,正常质量,低分辨率,低细节,过度饱和,欠饱和,曝光过度,曝光不足,灰度,黑白,糟糕的照片,糟糕的摄影,糟糕的艺术:1.4),(水印,签名,文字字体,用户名,错误,标志,词语,字母,数字,签名,商标,名称:1.2),(模糊,模糊,颗粒状),病态,丑陋,不对称,变异畸形,残缺,光线不足,阴影不佳,草图,裁剪,超出画面,截断,被审查,JPEG伪影,焦点不准,故障,重复,(气刷,卡通,动漫,半写实,CGI,渲染,搅拌机,数字艺术,漫画,业余:1.3),(3D,3D游戏,3D游戏场景,3D角色:1.1),(糟糕的手,糟糕的解剖,糟糕的身体,糟糕的脸,糟糕的牙齿,糟糕的手臂,糟糕的腿,畸形:1.3)

步骤: 20, 采样器: DPM++ 2M SDE Karras, CFG 比例: 7, 种子: 12345, 尺寸: 896x1152, 模型哈希: 1fe6c7ec54, 模型: juggernautXL_version6Rundiffusion, layerdiffusion_enabled: True, layerdiffusion_method: Only Generate Transparent Image (Attention Injection), layerdiffusion_weight: 1, layerdiffusion_ending_step: 1, layerdiffusion_fg_image: False, layerdiffusion_bg_image: False, layerdiffusion_blend_image: False, layerdiffusion_resize_mode: Crop and Resize, 版本: f0.0.17v1.8.0rc-latest-269-gef35383b

image

image

动漫模型测试:

穿着裙子的女孩,高品质

负面提示:不安全内容,糟糕,丑陋,文字,水印

步骤: 20, 采样器: DPM++ 2M SDE Karras, CFG 比例: 7, 种子: 12345, 尺寸: 896x1152, 模型哈希: 7ed8da12d9, 模型: animaPencilXL_v100, layerdiffusion_enabled: True, layerdiffusion_method: Only Generate Transparent Image (Attention Injection), layerdiffusion_weight: 1, layerdiffusion_ending_step: 1, layerdiffusion_fg_image: False, layerdiffusion_bg_image: False, layerdiffusion_blend_image: False, layerdiffusion_resize_mode: Crop and Resize, 版本: f0.0.17v1.8.0rc-latest-269-gef35383b

image

image

(我不太擅长用AnimagineXL格式编写提示,也许您可以通过更好的提示获得更好的结果)

背景条件

背景条件

首先下载这张图片:

image

然后设置接口为

image

然后设置参数

老人坐着,高质量

负面提示:糟糕,丑陋

步骤: 20, 采样器: DPM++ 2M SDE Karras, CFG 比例: 7, 种子: 12345, 尺寸: 896x1152, 模型哈希: 1fe6c7ec54, 模型: juggernautXL_version6Rundiffusion, layerdiffusion_enabled: True, layerdiffusion_method: 从背景到混合, layerdiffusion_weight: 1, layerdiffusion_ending_step: 1, layerdiffusion_fg_image: False, layerdiffusion_bg_image: True, layerdiffusion_blend_image: False, layerdiffusion_resize_mode: 裁剪和调整大小, 版本: f0.0.17v1.8.0rc-latest-269-gef35383b

image

然后设置接口(首先更改模式,然后将图像从结果拖到接口中)

image

然后将采样器更改为Euler A或UniPC或其他不是dpm的采样器(这可能是因为扩散器训练脚本和webui的k-diffusion之间的某些差异。我仍在研究中,可能很快会修改我的训练脚本和模型,以便删除这一步。)

image

常见问题:

好的。但我怎样才能获得这样的背景图片?

您可以使用前景条件来获得这样的背景。我们将在下一节中进行描述。

或者您可以使用旧的修复技术对任何图像进行前景移除,以获得这样的背景。

等等。为什么你要分两步生成它?我能一次生成吗?

两步操作可以实现更灵活的编辑。如果必要,我们将很快发布一步操作模型,但该模型体积是原来的两倍,需要四倍的显存,并且我们仍在努力降低该模型的计算需求。(但在我的测试中,目前的解决方案在大多数情况下都比那个模型更好。)

另外,您可以看到当前模型约为680MB,我认为它有点太轻量了,很快将发布一个相对更重的模型,以便更好地理解结构(但这仍在实验阶段)。

前景条件

前景条件

首先我们生成一只狗

一只坐着的狗,高质量

负面提示:糟糕,丑陋

步骤: 20, 采样器: DPM++ 2M SDE Karras, CFG 比例: 7, 种子: 12345, 尺寸: 896x1152, 模型哈希: 1fe6c7ec54, 模型: juggernautXL_version6Rundiffusion, layerdiffusion_enabled: True, layerdiffusion_method: Only Generate Transparent Image (Attention Injection), layerdiffusion_weight: 1, layerdiffusion_ending_step: 1, layerdiffusion_fg_image: True, layerdiffusion_bg_image: False, layerdiffusion_blend_image: False, layerdiffusion_resize_mode: Crop and Resize, 版本: f0.0.17v1.8.0rc-latest-269-gef35383b

image

image

然后更改为从前景到混合,并将透明图像拖动到前景输入。

请注意拖动真实透明图像,而不是带有棋盘背景的可视化效果。确保您看到这一点

image

然后做这个

一只坐在房间里的狗,高质量

负面提示:糟糕,丑陋

步骤: 20, 采样器: DPM++ 2M SDE Karras, CFG 比例: 7, 种子: 12345, 尺寸: 896x1152, 模型哈希: 1fe6c7ec54, 模型: juggernautXL_version6Rundiffusion, layerdiffusion_enabled: True, layerdiffusion_method: 从前景到混合, layerdiffusion_weight: 1, layerdiffusion_ending_step: 1, layerdiffusion_fg_image: True, layerdiffusion_bg_image: False, layerdiffusion_blend_image: False, layerdiffusion_resize_mode: 裁剪和调整大小, 版本: f0.0.17v1.8.0rc-latest-269-gef35383b

image

然后更改模式,拖动您的图像,这样

image

(请注意,这里我将 stop 设置为 0.5,以获得更好的结果,因为我不需要背景完全相同)

然后将采样器更改为 Euler A 或 UniPC 或其他不是 dpm 的采样器(这可能是因为扩散器训练脚本和 webui 的 k-扩散之间的某些差异。我仍在研究中,可能很快会修改我的训练脚本和模型,以便删除这一步。)

然后做这个

房间,高品质

负面提示:糟糕,丑陋

步骤: 20, 采样器: UniPC, CFG 比例: 7, 种子: 12345, 尺寸: 896x1152, 模型哈希: 1fe6c7ec54, 模型: juggernautXL_version6Rundiffusion, layerdiffusion_enabled: True, layerdiffusion_method: 从前景和混合到背景, layerdiffusion_weight: 1, layerdiffusion_ending_step: 0.5, layerdiffusion_fg_image: True, layerdiffusion_bg_image: False, layerdiffusion_blend_image: True, layerdiffusion_resize_mode: 裁剪和调整大小, 版本: f0.0.17v1.8.0rc-latest-269-gef35383b

image

总结
这篇文章介绍了一个使用潜在透明度的透明图像层扩散方法。目前,代码基础已经实现了图像生成和基本层功能,但透明的图像到图像的部分尚未完成。文章提到了发布的模型,包括将SDXL转换为透明图像生成器的LoRA模型、前景生成模型、背景生成模型等。未来可能发布的模型包括前景和背景一起生成的模型等。作者还提到了一些模型的轻量化和参数减少,以减少VRAM需求。需要注意的是,所有模型下载和选择都是完全自动的。