diff --git a/modules/initialize.py b/modules/initialize.py index 180e1f8e..455a514c 100644 --- a/modules/initialize.py +++ b/modules/initialize.py @@ -3,7 +3,6 @@ import logging import os import sys import warnings -import os from threading import Thread @@ -40,7 +39,7 @@ def imports(): startup_timer.record("setup paths") import ldm.modules.encoders.modules # noqa: F401 - import ldm.modules.diffusionmodules.model + import ldm.modules.diffusionmodules.model # noqa: F401 startup_timer.record("import ldm") import sgm.modules.encoders.modules # noqa: F401 diff --git a/modules/lowvram.py b/modules/lowvram.py index 908b5962..eed04fb0 100644 --- a/modules/lowvram.py +++ b/modules/lowvram.py @@ -1,5 +1,5 @@ import torch -from modules import devices, shared + module_in_gpu = None cpu = torch.device("cpu") diff --git a/modules/paths.py b/modules/paths.py index 545b1313..7e18b11a 100644 --- a/modules/paths.py +++ b/modules/paths.py @@ -3,6 +3,7 @@ import sys from modules.paths_internal import models_path, script_path, data_path, extensions_dir, extensions_builtin_dir, cwd # noqa: F401 import modules.safe # noqa: F401 +import ldm_patched.utils.path_utils as ldm_patched_path_utils def mute_sdxl_imports(): @@ -64,8 +65,6 @@ for d, must_exist, what, options in path_dirs: paths[what] = d -import ldm_patched.utils.path_utils as ldm_patched_path_utils - ldm_patched_path_utils.base_path = data_path ldm_patched_path_utils.models_dir = models_path ldm_patched_path_utils.output_directory = os.path.join(data_path, "output") diff --git a/modules/processing.py b/modules/processing.py index f477c9b1..94a08ec5 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -16,7 +16,7 @@ from skimage import exposure from typing import Any import modules.sd_hijack -from modules import devices, prompt_parser, masking, sd_samplers, lowvram, infotext_utils, extra_networks, sd_vae_approx, scripts, sd_samplers_common, sd_unet, errors, rng +from modules import devices, prompt_parser, masking, sd_samplers, infotext_utils, extra_networks, sd_vae_approx, scripts, sd_samplers_common, sd_unet, rng from modules.rng import slerp # noqa: F401 from modules.sd_hijack import model_hijack from modules.sd_samplers_common import images_tensor_to_samples, decode_first_stage, approximation_indexes @@ -517,9 +517,9 @@ class StableDiffusionProcessing: class Processed: - def __init__(self, p: StableDiffusionProcessing, images_list, seed=-1, info="", subseed=None, all_prompts=None, all_negative_prompts=None, all_seeds=None, all_subseeds=None, index_of_first_image=0, infotexts=None, comments="", extra_images_list=[]): + def __init__(self, p: StableDiffusionProcessing, images_list, seed=-1, info="", subseed=None, all_prompts=None, all_negative_prompts=None, all_seeds=None, all_subseeds=None, index_of_first_image=0, infotexts=None, comments="", extra_images_list=None): self.images = images_list - self.extra_images = extra_images_list + self.extra_images = extra_images_list if extra_images_list is not None else [] self.prompt = p.prompt self.negative_prompt = p.negative_prompt self.seed = seed diff --git a/modules/sd_hijack.py b/modules/sd_hijack.py index e55cd217..8a286237 100644 --- a/modules/sd_hijack.py +++ b/modules/sd_hijack.py @@ -1,11 +1,8 @@ import torch -from torch.nn.functional import silu from types import MethodType -from modules import devices, sd_hijack_optimizations, shared, script_callbacks, errors, sd_unet, patches -from modules.hypernetworks import hypernetwork +from modules import devices, sd_hijack_optimizations, shared, script_callbacks, sd_unet, patches from modules.shared import cmd_opts -from modules import sd_hijack_clip, sd_hijack_open_clip, sd_hijack_unet, sd_hijack_xlmr, xlmr, xlmr_m18 import ldm.modules.attention import ldm.modules.diffusionmodules.model diff --git a/modules/sd_models.py b/modules/sd_models.py index 83d9cb80..4364857c 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -6,22 +6,17 @@ import threading import torch import re import safetensors.torch -from omegaconf import OmegaConf, ListConfig +from omegaconf import ListConfig from os import mkdir from urllib import request import ldm.modules.midas as midas import gc -from ldm.util import instantiate_from_config - -from modules import paths, shared, modelloader, devices, script_callbacks, sd_vae, sd_disable_initialization, errors, hashes, sd_models_config, sd_unet, sd_models_xl, cache, extra_networks, processing, lowvram, sd_hijack, patches +from modules import paths, shared, modelloader, devices, script_callbacks, sd_vae, errors, hashes, cache, extra_networks, processing, patches from modules.timer import Timer import numpy as np from modules_forge import forge_loader -import modules_forge.ops as forge_ops -from ldm_patched.modules.ops import manual_cast from ldm_patched.modules import model_management as model_management -import ldm_patched.modules.model_patcher model_dir = "Stable-diffusion" diff --git a/modules/sd_samplers_cfg_denoiser.py b/modules/sd_samplers_cfg_denoiser.py index b1dca624..f52080a6 100644 --- a/modules/sd_samplers_cfg_denoiser.py +++ b/modules/sd_samplers_cfg_denoiser.py @@ -1,10 +1,9 @@ import torch -from modules import prompt_parser, devices, sd_samplers_common +from modules import prompt_parser, sd_samplers_common -from modules.shared import opts, state +from modules.shared import state import modules.shared as shared from modules.script_callbacks import CFGDenoiserParams, cfg_denoiser_callback -from modules.script_callbacks import CFGDenoisedParams, cfg_denoised_callback from modules.script_callbacks import AfterCFGCallbackParams, cfg_after_cfg_callback from modules_forge import forge_sampler diff --git a/modules/sd_unet.py b/modules/sd_unet.py index 151d682b..c9801039 100644 --- a/modules/sd_unet.py +++ b/modules/sd_unet.py @@ -1,6 +1,6 @@ import torch.nn -from modules import script_callbacks, shared, devices +from modules import script_callbacks, shared unet_options = [] current_unet_option = None diff --git a/modules/sd_vae.py b/modules/sd_vae.py index 62fd6524..672a8d6d 100644 --- a/modules/sd_vae.py +++ b/modules/sd_vae.py @@ -2,7 +2,7 @@ import os import collections from dataclasses import dataclass -from modules import paths, shared, devices, script_callbacks, sd_models, extra_networks, lowvram, sd_hijack, hashes +from modules import paths, shared, script_callbacks, sd_models, extra_networks, sd_hijack, hashes import glob from copy import deepcopy diff --git a/modules/shared_init.py b/modules/shared_init.py index a1cd09af..a7b8d4a2 100644 --- a/modules/shared_init.py +++ b/modules/shared_init.py @@ -1,7 +1,5 @@ import os -import torch - from modules import shared from modules.shared import cmd_opts diff --git a/modules/ui.py b/modules/ui.py index 5744f192..4cb4d7a8 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -171,7 +171,7 @@ def update_token_counter(text, steps, *, is_positive=True): cond_stage_model = sd_models.model_data.sd_model.cond_stage_model assert cond_stage_model is not None except Exception: - return f"?/?" + return "?/?" flat_prompts = reduce(lambda list1, list2: list1+list2, prompt_schedules) prompts = [prompt_text for step, prompt_text in flat_prompts] diff --git a/modules/upscaler.py b/modules/upscaler.py index b89b86ef..8dbf08b0 100644 --- a/modules/upscaler.py +++ b/modules/upscaler.py @@ -14,7 +14,7 @@ def prepare_free_memory(aggressive=False): model_management.unload_all_models() print('Upscale script freed all memory.') return - + model_management.free_memory(memory_required=1024*1024*3, device=model_management.get_torch_device()) print('Upscale script freed memory successfully.') diff --git a/modules_forge/forge_loader.py b/modules_forge/forge_loader.py index d662f8dd..58ebf1a0 100644 --- a/modules_forge/forge_loader.py +++ b/modules_forge/forge_loader.py @@ -71,7 +71,6 @@ def no_clip(): def load_checkpoint_guess_config(sd, output_vae=True, output_clip=True, output_clipvision=False, embedding_directory=None, output_model=True): - sd_keys = sd.keys() clip = None clipvision = None vae = None @@ -99,7 +98,6 @@ def load_checkpoint_guess_config(sd, output_vae=True, output_clip=True, output_c if output_model: inital_load_device = model_management.unet_inital_load_device(parameters, unet_dtype) - offload_device = model_management.unet_offload_device() model = model_config.get_model(sd, "model.diffusion_model.", device=inital_load_device) model.load_model_weights(sd, "model.diffusion_model.") diff --git a/modules_forge/initialization.py b/modules_forge/initialization.py index 98bd6d2e..4f3bc8e1 100644 --- a/modules_forge/initialization.py +++ b/modules_forge/initialization.py @@ -30,10 +30,10 @@ def initialize_forge(): for bad in bad_list: if bad in sys.argv: print(f'Arg {bad} is removed in Forge.') - print(f'Now memory management is fully automatic and you do not need any command flags.') - print(f'Please just remove this flag.') - print(f'In extreme cases, if you want to force previous lowvram/medvram behaviors, ' - f'please use --always-offload-from-vram') + print('Now memory management is fully automatic and you do not need any command flags.') + print('Please just remove this flag.') + print('In extreme cases, if you want to force previous lowvram/medvram behaviors, ' + 'please use --always-offload-from-vram') from ldm_patched.modules import args_parser diff --git a/modules_forge/ops.py b/modules_forge/ops.py index a0a0d171..35c2566d 100644 --- a/modules_forge/ops.py +++ b/modules_forge/ops.py @@ -2,7 +2,6 @@ import time import torch import contextlib from ldm_patched.modules import model_management -from ldm_patched.modules.ops import use_patched_ops @contextlib.contextmanager diff --git a/modules_forge/patch_basic.py b/modules_forge/patch_basic.py index 5b61819a..42706cae 100644 --- a/modules_forge/patch_basic.py +++ b/modules_forge/patch_basic.py @@ -29,8 +29,8 @@ def build_loaded(module, loader_name): if os.path.exists(path): os.remove(path) exp += f'Forge has tried to move the corrupted file to {corrupted_backup_file} \n' - exp += f'You may try again now and Forge will download models again. \n' - raise ValueError(exp) + exp += 'You may try again now and Forge will download models again. \n' + raise ValueError(exp) from e return result setattr(module, loader_name, loader) diff --git a/modules_forge/shared.py b/modules_forge/shared.py index 8b03e788..0ba622a8 100644 --- a/modules_forge/shared.py +++ b/modules_forge/shared.py @@ -34,7 +34,7 @@ def try_load_supported_control_model(ckpt_path): global supported_control_models state_dict = ldm_patched.modules.utils.load_torch_file(ckpt_path, safe_load=True) for supported_type in supported_control_models: - state_dict_copy = {k: v for k, v in state_dict.items()} + state_dict_copy = dict(state_dict) model = supported_type.try_build_from_state_dict(state_dict_copy, ckpt_path) if model is not None: return model diff --git a/pyproject.toml b/pyproject.toml index d03036e7..cb723298 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,13 +12,15 @@ extend-select = [ exclude = [ "extensions", "extensions-disabled", + "extensions-builtin", + "ldm_patched", ] ignore = [ "E501", # Line too long "E721", # Do not compare types, use `isinstance` "E731", # Do not assign a `lambda` expression, use a `def` - + "I001", # Import block is un-sorted or un-formatted "C901", # Function is too complex "C408", # Rewrite as a literal