当前位置: 首页 > article >正文

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

在过往,不管使用 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绘画 | 为你所做的学习过滤


http://www.kler.cn/a/325110.html

相关文章:

  • ES6进阶知识二
  • 基于Python实现的HDR图像处理算法
  • 2、计算机网络七层封包和解包的过程
  • spi 回环
  • 前端基础(四十一):实时获取麦克风音量
  • PyTorch实战-手写数字识别-单层感知机
  • 多旋翼无人机光伏发电站吊运技术详解
  • nodejs基于vue电子产品商城销售网站的设计与实现 _bugfu
  • 19 vue3之自定义指令Directive按钮鉴权
  • Qt --- 其他控件的介绍 --- 多元素控件
  • 【在Linux世界中追寻伟大的One Piece】验证TCP
  • 数据工程师岗位常见面试问题-1(附回答)
  • yolo自动化项目实例解析(七)自建UI--工具栏选项
  • 【JavaEE初阶】深入解析单例模式中的饿汉模式,懒汉模式的实现以及线程安全问题
  • IDEA服务启动时无法输出日志
  • 用C++游戏开发
  • 【观察】华为:构筑先进AI存力底座,引领时代更创造时代
  • 企业如何提升知识产权管理效率?
  • linux StarRocks 安装
  • linux开启wol (网络唤醒)
  • MySQL Mail服务器集成:如何配置发送邮件?
  • 信号分解降噪 | Matlab实现基于TVFEMD-IMF能量熵增量的数据降噪方法
  • 华为OD机试 - 新学校选址(Python/JS/C/C++ 2024 E卷 100分)
  • 2024icpc(Ⅱ)网络赛补题E
  • C++(list的简单实现,着重点是迭代器)
  • navicat连接postgresql的ERROR: column datlastsysoid