作者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/m.aspx?n=bbs/AI_Art/M.1678445694.A.D4A.html
※ 編輯: mayasoo (114.35.119.221 臺灣), 03/10/2023 19:04:11