看板 AI_Art 關於我們 聯絡資訊
簡單來說效果 用色彩對比的弱化換取畫面細節的提升 原文件 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://www.ptt.cc/bbs/AI_Art/M.1678445694.A.D4A.html ※ 編輯: mayasoo (114.35.119.221 臺灣), 03/10/2023 19:04:11