MCPcopy
hub / github.com/lllyasviel/Fooocus / ksampler

Function ksampler

modules/core.py:265–325  ·  view source on GitHub ↗
(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_mean=None, disable_preview=False)

Source from the content-addressed store, hash-verified

263@torch.no_grad()
264@torch.inference_mode()
265def ksampler(model, positive, negative, latent, seed=None, steps=30, cfg=7.0, sampler_name='dpmpp_2m_sde_gpu',
266 scheduler='karras', denoise=1.0, disable_noise=False, start_step=None, last_step=None,
267 force_full_denoise=False, callback_function=None, refiner=None, refiner_switch=-1,
268 previewer_start=None, previewer_end=None, sigmas=None, noise_mean=None, disable_preview=False):
269
270 if sigmas is not None:
271 sigmas = sigmas.clone().to(ldm_patched.modules.model_management.get_torch_device())
272
273 latent_image = latent["samples"]
274
275 if disable_noise:
276 noise = torch.zeros(latent_image.size(), dtype=latent_image.dtype, layout=latent_image.layout, device="cpu")
277 else:
278 batch_inds = latent["batch_index"] if "batch_index" in latent else None
279 noise = ldm_patched.modules.sample.prepare_noise(latent_image, seed, batch_inds)
280
281 if isinstance(noise_mean, torch.Tensor):
282 noise = noise + noise_mean - torch.mean(noise, dim=1, keepdim=True)
283
284 noise_mask = None
285 if "noise_mask" in latent:
286 noise_mask = latent["noise_mask"]
287
288 previewer = get_previewer(model)
289
290 if previewer_start is None:
291 previewer_start = 0
292
293 if previewer_end is None:
294 previewer_end = steps
295
296 def callback(step, x0, x, total_steps):
297 ldm_patched.modules.model_management.throw_exception_if_processing_interrupted()
298 y = None
299 if previewer is not None and not disable_preview:
300 y = previewer(x0, previewer_start + step, previewer_end)
301 if callback_function is not None:
302 callback_function(previewer_start + step, x0, x, previewer_end, y)
303
304 disable_pbar = False
305 modules.sample_hijack.current_refiner = refiner
306 modules.sample_hijack.refiner_switch_step = refiner_switch
307 ldm_patched.modules.samplers.sample = modules.sample_hijack.sample_hacked
308
309 try:
310 samples = ldm_patched.modules.sample.sample(model,
311 noise, steps, cfg, sampler_name, scheduler,
312 positive, negative, latent_image,
313 denoise=denoise, disable_noise=disable_noise,
314 start_step=start_step,
315 last_step=last_step,
316 force_full_denoise=force_full_denoise, noise_mask=noise_mask,
317 callback=callback,
318 disable_pbar=disable_pbar, seed=seed, sigmas=sigmas)
319
320 out = latent.copy()
321 out["samples"] = samples
322 finally:

Callers

nothing calls this directly

Calls 5

toMethod · 0.80
get_previewerFunction · 0.70
cloneMethod · 0.45
sampleMethod · 0.45
copyMethod · 0.45

Tested by

no test coverage detected