This commit is contained in:
lllyasviel 2023-10-22 08:28:25 -07:00
parent 4c94f0f590
commit 576aa9283f
3 changed files with 12 additions and 22 deletions

View File

@ -1 +1 @@
version = '2.1.729'
version = '2.1.730'

View File

@ -218,19 +218,21 @@ def get_previewer(model):
def ksampler(model, positive, negative, latent, seed=None, steps=30, cfg=7.0, sampler_name='dpmpp_2m_sde_gpu',
scheduler='karras', denoise=1.0, disable_noise=False, start_step=None, last_step=None,
force_full_denoise=False, callback_function=None, refiner=None, refiner_switch=-1,
previewer_start=None, previewer_end=None, sigmas=None, noise=None):
previewer_start=None, previewer_end=None, sigmas=None, noise_offset=None):
if sigmas is not None:
sigmas = sigmas.clone().to(fcbh.model_management.get_torch_device())
latent_image = latent["samples"]
if noise is None:
if disable_noise:
noise = torch.zeros(latent_image.size(), dtype=latent_image.dtype, layout=latent_image.layout, device="cpu")
else:
batch_inds = latent["batch_index"] if "batch_index" in latent else None
noise = fcbh.sample.prepare_noise(latent_image, seed, batch_inds)
if disable_noise:
noise = torch.zeros(latent_image.size(), dtype=latent_image.dtype, layout=latent_image.layout, device="cpu")
else:
batch_inds = latent["batch_index"] if "batch_index" in latent else None
noise = fcbh.sample.prepare_noise(latent_image, seed, batch_inds)
if isinstance(noise_offset, torch.Tensor):
noise = noise + noise_offset
noise_mask = None
if "noise_mask" in latent:

View File

@ -3,7 +3,6 @@ import os
import torch
import modules.patch
import modules.path
import fcbh.sample
import fcbh.model_management
import fcbh.latent_formats
import modules.inpaint_worker
@ -279,14 +278,6 @@ def vae_parse(latent):
return {'samples': result}
@torch.no_grad()
@torch.inference_mode()
def noise_parse(latent: torch.Tensor, seed: int, noise_inds=None, k=0.9):
noise = fcbh.sample.prepare_noise(latent, seed=seed, noise_inds=noise_inds)
offset = torch.mean(latent, dim=1, keepdim=True)
return offset * k + noise
@torch.no_grad()
@torch.inference_mode()
def calculate_sigmas_all(sampler, model, scheduler, steps):
@ -477,10 +468,7 @@ def process_diffusion(positive_cond, negative_cond, steps, switch, width, height
denoise=denoise)[switch:] * k_sigmas
len_sigmas = len(sigmas) - 1
residual_noise = noise_parse(
modules.patch.eps_record,
seed=image_seed+1,
noise_inds=sampled_latent["batch_index"] if "batch_index" in sampled_latent else None)
noise_offset = torch.mean(modules.patch.eps_record, dim=1, keepdim=True) * 0.9
if modules.inpaint_worker.current_task is not None:
modules.inpaint_worker.current_task.swap()
@ -500,7 +488,7 @@ def process_diffusion(positive_cond, negative_cond, steps, switch, width, height
previewer_start=switch,
previewer_end=steps,
sigmas=sigmas,
noise=residual_noise
noise_offset=noise_offset
)
target_model = final_refiner_vae