From 084f1dfb726c5d456758f115b7d048a2e75ae4e3 Mon Sep 17 00:00:00 2001 From: lllyasviel Date: Sat, 19 Aug 2023 14:35:25 -0700 Subject: [PATCH] update dep, sampler (#217) --- fooocus_version.py | 2 +- launch.py | 2 +- modules/core.py | 17 +++++++++-------- readme.md | 2 +- update_log.md | 4 ++++ 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/fooocus_version.py b/fooocus_version.py index a330f44f..61219054 100644 --- a/fooocus_version.py +++ b/fooocus_version.py @@ -1 +1 @@ -version = '1.0.37' +version = '1.0.38' diff --git a/launch.py b/launch.py index ad965c73..5102097d 100644 --- a/launch.py +++ b/launch.py @@ -20,7 +20,7 @@ def prepare_environment(): xformers_package = os.environ.get('XFORMERS_PACKAGE', 'xformers==0.0.20') comfy_repo = os.environ.get('COMFY_REPO', "https://github.com/comfyanonymous/ComfyUI") - comfy_commit_hash = os.environ.get('COMFY_COMMIT_HASH', "2bc12d3d22efb5c63ae3a7fc342bb2dd16b31735") + comfy_commit_hash = os.environ.get('COMFY_COMMIT_HASH', "c9b562aed153cb35d4ce4126caf86995b0c63b12") print(f"Python {sys.version}") print(f"Fooocus version: {fooocus_version.version}") diff --git a/modules/core.py b/modules/core.py index 55e1eae4..0c83e24b 100644 --- a/modules/core.py +++ b/modules/core.py @@ -9,7 +9,7 @@ import comfy.utils from comfy.sd import load_checkpoint_guess_config from nodes import VAEDecode, EmptyLatentImage, CLIPTextEncode -from comfy.sample import prepare_mask, broadcast_cond, load_additional_models, cleanup_additional_models +from comfy.sample import prepare_mask, broadcast_cond, get_additional_models, cleanup_additional_models from modules.samplers_advanced import KSampler, KSamplerWithRefiner from modules.patch import patch_all @@ -92,7 +92,7 @@ def get_previewer(device, latent_format): @torch.no_grad() -def ksampler(model, positive, negative, latent, seed=None, steps=30, cfg=7.0, sampler_name='dpmpp_2m_sde_gpu', +def ksampler(model, positive, negative, latent, seed=None, steps=30, cfg=7.0, sampler_name='uni_pc', scheduler='karras', denoise=1.0, disable_noise=False, start_step=None, last_step=None, force_full_denoise=False, callback_function=None): # SCHEDULERS = ["normal", "karras", "exponential", "simple", "ddim_uniform"] @@ -133,7 +133,6 @@ def ksampler(model, positive, negative, latent, seed=None, steps=30, cfg=7.0, sa if noise_mask is not None: noise_mask = prepare_mask(noise_mask, noise.shape, device) - comfy.model_management.load_model_gpu(model) real_model = model.model noise = noise.to(device) @@ -142,7 +141,9 @@ def ksampler(model, positive, negative, latent, seed=None, steps=30, cfg=7.0, sa positive_copy = broadcast_cond(positive, noise.shape[0], device) negative_copy = broadcast_cond(negative, noise.shape[0], device) - models = load_additional_models(positive, negative, model.model_dtype()) + models = get_additional_models(positive, negative) + comfy.model_management.load_models_gpu([model] + models, comfy.model_management.batch_area_memory( + noise.shape[0] * noise.shape[2] * noise.shape[3])) sampler = KSampler(real_model, steps=steps, device=device, sampler=sampler_name, scheduler=scheduler, denoise=denoise, model_options=model.model_options) @@ -164,7 +165,7 @@ def ksampler(model, positive, negative, latent, seed=None, steps=30, cfg=7.0, sa @torch.no_grad() def ksampler_with_refiner(model, positive, negative, refiner, refiner_positive, refiner_negative, latent, - seed=None, steps=30, refiner_switch_step=20, cfg=7.0, sampler_name='dpmpp_2m_sde_gpu', + seed=None, steps=30, refiner_switch_step=20, cfg=7.0, sampler_name='uni_pc', scheduler='karras', denoise=1.0, disable_noise=False, start_step=None, last_step=None, force_full_denoise=False, callback_function=None): # SCHEDULERS = ["normal", "karras", "exponential", "simple", "ddim_uniform"] @@ -205,8 +206,6 @@ def ksampler_with_refiner(model, positive, negative, refiner, refiner_positive, if noise_mask is not None: noise_mask = prepare_mask(noise_mask, noise.shape, device) - comfy.model_management.load_model_gpu(model) - noise = noise.to(device) latent_image = latent_image.to(device) @@ -216,7 +215,9 @@ def ksampler_with_refiner(model, positive, negative, refiner, refiner_positive, refiner_positive_copy = broadcast_cond(refiner_positive, noise.shape[0], device) refiner_negative_copy = broadcast_cond(refiner_negative, noise.shape[0], device) - models = load_additional_models(positive, negative, model.model_dtype()) + models = get_additional_models(positive, negative) + comfy.model_management.load_models_gpu([model] + models, comfy.model_management.batch_area_memory( + noise.shape[0] * noise.shape[2] * noise.shape[3])) sampler = KSamplerWithRefiner(model=model, refiner_model=refiner, steps=steps, device=device, sampler=sampler_name, scheduler=scheduler, diff --git a/readme.md b/readme.md index 89471383..52dbafc8 100644 --- a/readme.md +++ b/readme.md @@ -103,7 +103,7 @@ Note that some of these tricks are currently (2023 Aug 11) impossible to reprodu 6. The parameters of samplers are carefully tuned. 7. Because XL uses positional encoding for generation resolution, images generated by several fixed resolutions look a bit better than that from arbitrary resolutions (because the positional encoding is not very good at handling int numbers that are unseen during training). This suggests that the resolutions in UI may be hard coded for best results. 8. Separated prompts for two different text encoders seem unnecessary. Separated prompts for base model and refiner may work but the effects are random, and we refrain from implement this. -9. DPM family seems well-suited for XL, since XL sometimes generates overly smooth texture but DPM family sometimes generate overly dense detail in texture. Their joint effect looks neutral and appealing to human perception. +9. DPM family (or UniPC) seems well-suited for XL, since XL sometimes generates overly smooth texture but DPM family sometimes generate overly dense detail in texture. Their joint effect looks neutral and appealing to human perception. (Update 2023 Aug 19, changed to UniPC.) ## Advanced Features diff --git a/update_log.md b/update_log.md index 838a45d8..e3a46b73 100644 --- a/update_log.md +++ b/update_log.md @@ -1,3 +1,7 @@ +### 1.0.38 + +* Update dependency, update to sampler. + ### 1.0.37 * Cinematic-default v2.