作者mayasoo (mayasoo)
看板AI_Art
标题[分享] 修改取样器设定
时间Fri Mar 10 18:54:50 2023
简单来说效果
用色彩对比的弱化换取画面细节的提升
原文件
https://www.reddit.com/r/StableDiffusion/comments/11ngyd9/new_dpm_2m_and_dpm_2m_karras_sampling_update_in/
要修改两个文件
下面有贴但是建议到原帖复制比较好,有点怕分行与空格出问题
文件1. 修改
\repositories\k-diffusion\k_diffusion\sampling.py
文件底端加上以下文字
@torch.no_grad()
def sample_dpmpp_2m_v2(model, x, sigmas, extra_args=None, callback=None,
disable=None):
"""DPM-Solver++(2M)."""
extra_args = {} if extra_args is None else extra_args
s_in = x.new_ones([x.shape[0]])
sigma_fn = lambda t: t.neg().exp()
t_fn = lambda sigma: sigma.log().neg()
old_denoised = None
for i in 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})
t, t_next = t_fn(sigmas[i]), t_fn(sigmas[i + 1])
h = t_next - t
if old_denoised is None or sigmas[i + 1] == 0:
x = (sigma_fn(t_next) / sigma_fn(t)) * x - (-h).expm1() * denoised
else:
h_last = t - t_fn(sigmas[i - 1])
r = h_last / h
denoised_d = (1 + 1 / (2 * r)) * denoised - (1 / (2 * r)) *
old_denoised
x = (sigma_fn(t_next) / sigma_fn(t)) * x - (-h_last).expm1() *
denoised_d
old_denoised = denoised
return x
--------------------------------
文件2.
\modules\sd_samplers_kdiffusion.py
samplers_k_diffusion = [
中贴上两行文字,我是贴在30和31行
('DPM++ 2M v2', 'sample_dpmpp_2m_v2', ['k_dpmpp_2m'], {}),
('DPM++ 2M Karras v2', 'sample_dpmpp_2m_v2', ['k_dpmpp_2m_ka'], {'scheduler': 'karras'}),
效果原文有范例
虽然说是有文字编辑器就可以做的动作
但最好还是有一点程式编辑的常识
并且务必事先备份免得出问题
另外我实际测试DPM++ 2M Karras v2还好 DPM++ 2M v2颜色完全褪色
不知道是不是和模型有关系
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.35.119.221 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AI_Art/M.1678445694.A.D4A.html
※ 编辑: mayasoo (114.35.119.221 台湾), 03/10/2023 19:04:11