Stable Diffusion绘画 | LCM模型:实现秒出图

发布于:2024-10-10 ⋅ 阅读:(62) ⋅ 点赞:(0)

在过往,不管使用 SD 还是 MJ,生成一张图片起码要等上10秒。

而现在,有了 LCM 技术的加持,已经能做到秒出图,甚至是实时出图。

LCM(潜空间一致性模型) 是由 清华大学信息科学技术研究院 研发的大模型,它最大的特点就是生成图片速度超级快,能在2-4步生成质量不错的图片。

安装部署

LoRA下载

Latent Consistency Model (LCM) LoRA: SDXL 下载链接:

https://huggingface.co/latent-consistency/lcm-lora-sdxl/tree/main

Latent Consistency Model (LCM) LoRA: SDv1-5 下载链接:

https://huggingface.co/latent-consistency/lcm-lora-sdv1-5/tree/main

以上两个模型下载后,放置位置:SD安装目录\models\Lora\lcm

模型下载

目前唯一支持 SD webui 的LCM模型:LCM_Dreamshaper_v7

下载链接:https://huggingface.co/SimianLuo/LCM_Dreamshaper_v7/tree/main

模型下载后,放置在:SD安装目录\models\Stable-diffusion

sd-webui-lcm 插件

PS:LCM_Dreamshaper_v7 模型不能直接使用,需要搭配 sd-webui-lcm插件 使用。

下载链接:https://github.com/0xbitches/sd-webui-lcm

插件下载解压后,放置在:SD安装目录\extensions

修改代码

SD安装目录\modules 中找到 sd_samplers_extra.pysd_samplers_kdiffusion.py 两个文件。

在修改之前,切记要把这两个文件进行复制备份,以免改坏了还能还原回来。

sd_samplers_kdiffusion.py 修改:

在对应位置添加代码后保存:('LCM', sd_samplers_extra.sample_lcm, ['k_lcm'], {}),

sd_samplers_extra.py 修改:

在如下位置添加代码后保存:

@torch.no_grad()
def sample_lcm(model, x, sigmas, extra_args=None, callback=None, disable=None, noise_sampler=None):
    extra_args = {} if extra_args is None else extra_args
    noise_sampler = k_diffusion.sampling.default_noise_sampler(x) if noise_sampler is None else noise_sampler
    s_in = x.new_ones([x.shape[0]])
    for i in tqdm.auto.trange(len(sigmas) - 1, disable=disable):
        denoised = model(x, sigmas[i] * s_in, **extra_args)
        if callback is not None:
            callback({"x": x, "i": i, "sigma": sigmas[i], "sigma_hat": sigmas[i], "denoised": denoised})
        x = denoised
        if sigmas[i+1] > 0:
            x += sigmas[i+1] * noise_sampler(sigmas[i], sigmas[i+1])
    return x

LCM 速度测试

输入一段提示词,把 LoRA 添加进来:

按照下图修改配置参数:

用时 3.6s 就能出图:

不同采样器出图效果对比:

再来看看,不同迭代步数的出图效果对比:

xyz_grid-0004-1578771093

xyz_grid-0005-1578771093

当 迭代步数 达到4步时,图片已达到基本可用的程度,

在 5步 之后,每增加 1步,画面会更加锐利,

增加到 第9步 之后,继续增加迭代步数,画质提升不太明显。

LCM 技术的加入,确实能提高出图效率,

尽管生成图片的质量不算太高,但在该技术的帮助下,我们完全可以使用较低的步数,快速的大批量出图,

然后再挑选满意的图片进行高清放大处理,有效避免了不断重复抽卡的烦恼。

今天先分享到这里~


开启实践:SD绘画 | 为你所做的学习过滤