diff --git a/invokeai/backend/__init__.py b/invokeai/backend/__init__.py index 82014807ba..16ced6d9d3 100644 --- a/invokeai/backend/__init__.py +++ b/invokeai/backend/__init__.py @@ -1,6 +1,7 @@ ''' Initialization file for invokeai.backend ''' -from .invoke_ai_web_server import InvokeAIWebServer +# this is causing circular import issues +# from .invoke_ai_web_server import InvokeAIWebServer diff --git a/invokeai/generator/__init__.py b/invokeai/backend/generator/__init__.py similarity index 100% rename from invokeai/generator/__init__.py rename to invokeai/backend/generator/__init__.py diff --git a/invokeai/generator/base.py b/invokeai/backend/generator/base.py similarity index 100% rename from invokeai/generator/base.py rename to invokeai/backend/generator/base.py diff --git a/invokeai/generator/diffusers_pipeline.py b/invokeai/backend/generator/diffusers_pipeline.py similarity index 99% rename from invokeai/generator/diffusers_pipeline.py rename to invokeai/backend/generator/diffusers_pipeline.py index 709617c37f..db86fbaf11 100644 --- a/invokeai/generator/diffusers_pipeline.py +++ b/invokeai/backend/generator/diffusers_pipeline.py @@ -27,11 +27,11 @@ from transformers import CLIPFeatureExtractor, CLIPTextModel, CLIPTokenizer from typing_extensions import ParamSpec from ldm.invoke.globals import Globals -from invokeai.models.diffusion.shared_invokeai_diffusion import InvokeAIDiffuserComponent, PostprocessingSettings +from ..models.diffusion import InvokeAIDiffuserComponent, PostprocessingSettings from ldm.modules.textual_inversion_manager import TextualInversionManager from ldm.invoke.devices import normalize_device, CPU_DEVICE from ldm.invoke.offloading import LazilyLoadedModelGroup, FullyLoadedModelGroup, ModelGroup -from ..models.diffusion.cross_attention_map_saving import AttentionMapSaver +from ..models.diffusion import AttentionMapSaver from compel import EmbeddingsProvider @dataclass diff --git a/invokeai/generator/embiggen.py b/invokeai/backend/generator/embiggen.py similarity index 100% rename from invokeai/generator/embiggen.py rename to invokeai/backend/generator/embiggen.py diff --git a/invokeai/generator/img2img.py b/invokeai/backend/generator/img2img.py similarity index 97% rename from invokeai/generator/img2img.py rename to invokeai/backend/generator/img2img.py index aed066d1bd..8cc2004745 100644 --- a/invokeai/generator/img2img.py +++ b/invokeai/backend/generator/img2img.py @@ -7,7 +7,7 @@ from diffusers import logging from .base import Generator from .diffusers_pipeline import StableDiffusionGeneratorPipeline, ConditioningData -from ..models.diffusion.shared_invokeai_diffusion import PostprocessingSettings +from ..models.diffusion import PostprocessingSettings class Img2Img(Generator): def __init__(self, model, precision): diff --git a/invokeai/generator/inpaint.py b/invokeai/backend/generator/inpaint.py similarity index 100% rename from invokeai/generator/inpaint.py rename to invokeai/backend/generator/inpaint.py diff --git a/invokeai/generator/omnibus.py b/invokeai/backend/generator/omnibus.py similarity index 100% rename from invokeai/generator/omnibus.py rename to invokeai/backend/generator/omnibus.py diff --git a/invokeai/generator/txt2img.py b/invokeai/backend/generator/txt2img.py similarity index 100% rename from invokeai/generator/txt2img.py rename to invokeai/backend/generator/txt2img.py diff --git a/invokeai/generator/txt2img2img.py b/invokeai/backend/generator/txt2img2img.py similarity index 100% rename from invokeai/generator/txt2img2img.py rename to invokeai/backend/generator/txt2img2img.py diff --git a/invokeai/backend/invoke_ai_web_server.py b/invokeai/backend/invoke_ai_web_server.py index c93e5e2a60..f624cb7710 100644 --- a/invokeai/backend/invoke_ai_web_server.py +++ b/invokeai/backend/invoke_ai_web_server.py @@ -27,7 +27,7 @@ from invokeai.backend.modules.parameters import parameters_to_command from ldm.generate import Generate from ldm.invoke.args import Args, APP_ID, APP_VERSION, calculate_init_img_hash from ldm.invoke.conditioning import get_tokens_for_prompt_object, get_prompt_structure, get_tokenizer -from ..generator import infill_methods, PipelineIntermediateState +from .generator import infill_methods, PipelineIntermediateState from ldm.invoke.globals import ( Globals, global_converted_ckpts_dir, global_models_dir ) diff --git a/invokeai/models/__init__.py b/invokeai/backend/models/__init__.py similarity index 86% rename from invokeai/models/__init__.py rename to invokeai/backend/models/__init__.py index 70abd4358e..bd11ddb78c 100644 --- a/invokeai/models/__init__.py +++ b/invokeai/backend/models/__init__.py @@ -1,5 +1,5 @@ ''' -Initialization file for the invokeai.models package +Initialization file for the invokeai.backend.models package ''' from .model_manager import ModelManager, SDLegacyType from .diffusion import InvokeAIDiffuserComponent diff --git a/invokeai/models/__init__.py~ b/invokeai/backend/models/__init__.py~ similarity index 100% rename from invokeai/models/__init__.py~ rename to invokeai/backend/models/__init__.py~ diff --git a/invokeai/models/__pycache__/__init__.cpython-310.pyc b/invokeai/backend/models/__pycache__/__init__.cpython-310.pyc similarity index 58% rename from invokeai/models/__pycache__/__init__.cpython-310.pyc rename to invokeai/backend/models/__pycache__/__init__.cpython-310.pyc index 01511dd53a..0d3b9ff6c5 100644 Binary files a/invokeai/models/__pycache__/__init__.cpython-310.pyc and b/invokeai/backend/models/__pycache__/__init__.cpython-310.pyc differ diff --git a/invokeai/models/__pycache__/autoencoder.cpython-310.pyc b/invokeai/backend/models/__pycache__/autoencoder.cpython-310.pyc similarity index 99% rename from invokeai/models/__pycache__/autoencoder.cpython-310.pyc rename to invokeai/backend/models/__pycache__/autoencoder.cpython-310.pyc index a47741b0d4..e4bd363253 100644 Binary files a/invokeai/models/__pycache__/autoencoder.cpython-310.pyc and b/invokeai/backend/models/__pycache__/autoencoder.cpython-310.pyc differ diff --git a/invokeai/models/__pycache__/model_manager.cpython-310.pyc b/invokeai/backend/models/__pycache__/model_manager.cpython-310.pyc similarity index 94% rename from invokeai/models/__pycache__/model_manager.cpython-310.pyc rename to invokeai/backend/models/__pycache__/model_manager.cpython-310.pyc index b12ee54703..bfa9a24f27 100644 Binary files a/invokeai/models/__pycache__/model_manager.cpython-310.pyc and b/invokeai/backend/models/__pycache__/model_manager.cpython-310.pyc differ diff --git a/invokeai/models/autoencoder.py b/invokeai/backend/models/autoencoder.py similarity index 100% rename from invokeai/models/autoencoder.py rename to invokeai/backend/models/autoencoder.py diff --git a/invokeai/backend/models/diffusion/__init__.py b/invokeai/backend/models/diffusion/__init__.py new file mode 100644 index 0000000000..569c22c429 --- /dev/null +++ b/invokeai/backend/models/diffusion/__init__.py @@ -0,0 +1,6 @@ +''' +Initialization file for invokeai.models.diffusion +''' +from .shared_invokeai_diffusion import InvokeAIDiffuserComponent, PostprocessingSettings +from .cross_attention_control import InvokeAICrossAttentionMixin +from .cross_attention_map_saving import AttentionMapSaver diff --git a/invokeai/models/diffusion/__init__.py~ b/invokeai/backend/models/diffusion/__init__.py~ similarity index 100% rename from invokeai/models/diffusion/__init__.py~ rename to invokeai/backend/models/diffusion/__init__.py~ diff --git a/invokeai/backend/models/diffusion/__pycache__/__init__.cpython-310.pyc b/invokeai/backend/models/diffusion/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000..6864fb12ad Binary files /dev/null and b/invokeai/backend/models/diffusion/__pycache__/__init__.cpython-310.pyc differ diff --git a/invokeai/models/diffusion/__pycache__/cross_attention_control.cpython-310.pyc b/invokeai/backend/models/diffusion/__pycache__/cross_attention_control.cpython-310.pyc similarity index 98% rename from invokeai/models/diffusion/__pycache__/cross_attention_control.cpython-310.pyc rename to invokeai/backend/models/diffusion/__pycache__/cross_attention_control.cpython-310.pyc index 7836a01912..b90123b2d2 100644 Binary files a/invokeai/models/diffusion/__pycache__/cross_attention_control.cpython-310.pyc and b/invokeai/backend/models/diffusion/__pycache__/cross_attention_control.cpython-310.pyc differ diff --git a/invokeai/models/diffusion/__pycache__/cross_attention_map_saving.cpython-310.pyc b/invokeai/backend/models/diffusion/__pycache__/cross_attention_map_saving.cpython-310.pyc similarity index 96% rename from invokeai/models/diffusion/__pycache__/cross_attention_map_saving.cpython-310.pyc rename to invokeai/backend/models/diffusion/__pycache__/cross_attention_map_saving.cpython-310.pyc index 40c81818c6..a34e3f17ee 100644 Binary files a/invokeai/models/diffusion/__pycache__/cross_attention_map_saving.cpython-310.pyc and b/invokeai/backend/models/diffusion/__pycache__/cross_attention_map_saving.cpython-310.pyc differ diff --git a/invokeai/models/diffusion/__pycache__/ddim.cpython-310.pyc b/invokeai/backend/models/diffusion/__pycache__/ddim.cpython-310.pyc similarity index 96% rename from invokeai/models/diffusion/__pycache__/ddim.cpython-310.pyc rename to invokeai/backend/models/diffusion/__pycache__/ddim.cpython-310.pyc index 4435ff4af2..5139f6e8a7 100644 Binary files a/invokeai/models/diffusion/__pycache__/ddim.cpython-310.pyc and b/invokeai/backend/models/diffusion/__pycache__/ddim.cpython-310.pyc differ diff --git a/invokeai/models/diffusion/__pycache__/ddpm.cpython-310.pyc b/invokeai/backend/models/diffusion/__pycache__/ddpm.cpython-310.pyc similarity index 99% rename from invokeai/models/diffusion/__pycache__/ddpm.cpython-310.pyc rename to invokeai/backend/models/diffusion/__pycache__/ddpm.cpython-310.pyc index c26d71c3b4..d19a2eb9b1 100644 Binary files a/invokeai/models/diffusion/__pycache__/ddpm.cpython-310.pyc and b/invokeai/backend/models/diffusion/__pycache__/ddpm.cpython-310.pyc differ diff --git a/invokeai/models/diffusion/__pycache__/ksampler.cpython-310.pyc b/invokeai/backend/models/diffusion/__pycache__/ksampler.cpython-310.pyc similarity index 96% rename from invokeai/models/diffusion/__pycache__/ksampler.cpython-310.pyc rename to invokeai/backend/models/diffusion/__pycache__/ksampler.cpython-310.pyc index f8d88acc70..01ace311ac 100644 Binary files a/invokeai/models/diffusion/__pycache__/ksampler.cpython-310.pyc and b/invokeai/backend/models/diffusion/__pycache__/ksampler.cpython-310.pyc differ diff --git a/invokeai/models/diffusion/__pycache__/plms.cpython-310.pyc b/invokeai/backend/models/diffusion/__pycache__/plms.cpython-310.pyc similarity index 97% rename from invokeai/models/diffusion/__pycache__/plms.cpython-310.pyc rename to invokeai/backend/models/diffusion/__pycache__/plms.cpython-310.pyc index 4b8c259d07..0583aa0b4e 100644 Binary files a/invokeai/models/diffusion/__pycache__/plms.cpython-310.pyc and b/invokeai/backend/models/diffusion/__pycache__/plms.cpython-310.pyc differ diff --git a/invokeai/models/diffusion/__pycache__/sampler.cpython-310.pyc b/invokeai/backend/models/diffusion/__pycache__/sampler.cpython-310.pyc similarity index 99% rename from invokeai/models/diffusion/__pycache__/sampler.cpython-310.pyc rename to invokeai/backend/models/diffusion/__pycache__/sampler.cpython-310.pyc index d749938ac4..c76f8373aa 100644 Binary files a/invokeai/models/diffusion/__pycache__/sampler.cpython-310.pyc and b/invokeai/backend/models/diffusion/__pycache__/sampler.cpython-310.pyc differ diff --git a/invokeai/models/diffusion/__pycache__/shared_invokeai_diffusion.cpython-310.pyc b/invokeai/backend/models/diffusion/__pycache__/shared_invokeai_diffusion.cpython-310.pyc similarity index 99% rename from invokeai/models/diffusion/__pycache__/shared_invokeai_diffusion.cpython-310.pyc rename to invokeai/backend/models/diffusion/__pycache__/shared_invokeai_diffusion.cpython-310.pyc index 644fb9f1dc..eee71d9aed 100644 Binary files a/invokeai/models/diffusion/__pycache__/shared_invokeai_diffusion.cpython-310.pyc and b/invokeai/backend/models/diffusion/__pycache__/shared_invokeai_diffusion.cpython-310.pyc differ diff --git a/invokeai/models/diffusion/classifier.py b/invokeai/backend/models/diffusion/classifier.py similarity index 100% rename from invokeai/models/diffusion/classifier.py rename to invokeai/backend/models/diffusion/classifier.py diff --git a/invokeai/models/diffusion/cross_attention_control.py b/invokeai/backend/models/diffusion/cross_attention_control.py similarity index 100% rename from invokeai/models/diffusion/cross_attention_control.py rename to invokeai/backend/models/diffusion/cross_attention_control.py diff --git a/invokeai/models/diffusion/cross_attention_map_saving.py b/invokeai/backend/models/diffusion/cross_attention_map_saving.py similarity index 100% rename from invokeai/models/diffusion/cross_attention_map_saving.py rename to invokeai/backend/models/diffusion/cross_attention_map_saving.py diff --git a/invokeai/models/diffusion/ddim.py b/invokeai/backend/models/diffusion/ddim.py similarity index 100% rename from invokeai/models/diffusion/ddim.py rename to invokeai/backend/models/diffusion/ddim.py diff --git a/invokeai/models/diffusion/ddpm.py b/invokeai/backend/models/diffusion/ddpm.py similarity index 100% rename from invokeai/models/diffusion/ddpm.py rename to invokeai/backend/models/diffusion/ddpm.py diff --git a/invokeai/models/diffusion/ksampler.py b/invokeai/backend/models/diffusion/ksampler.py similarity index 100% rename from invokeai/models/diffusion/ksampler.py rename to invokeai/backend/models/diffusion/ksampler.py diff --git a/invokeai/models/diffusion/plms.py b/invokeai/backend/models/diffusion/plms.py similarity index 100% rename from invokeai/models/diffusion/plms.py rename to invokeai/backend/models/diffusion/plms.py diff --git a/invokeai/models/diffusion/sampler.py b/invokeai/backend/models/diffusion/sampler.py similarity index 100% rename from invokeai/models/diffusion/sampler.py rename to invokeai/backend/models/diffusion/sampler.py diff --git a/invokeai/models/diffusion/shared_invokeai_diffusion.py b/invokeai/backend/models/diffusion/shared_invokeai_diffusion.py similarity index 100% rename from invokeai/models/diffusion/shared_invokeai_diffusion.py rename to invokeai/backend/models/diffusion/shared_invokeai_diffusion.py diff --git a/invokeai/models/model_manager.py b/invokeai/backend/models/model_manager.py similarity index 100% rename from invokeai/models/model_manager.py rename to invokeai/backend/models/model_manager.py index b204cf9444..e4dc5ffe40 100644 --- a/invokeai/models/model_manager.py +++ b/invokeai/backend/models/model_manager.py @@ -32,13 +32,13 @@ from omegaconf.dictconfig import DictConfig from picklescan.scanner import scan_file_path from ldm.invoke.devices import CPU_DEVICE -from ..generator.diffusers_pipeline import StableDiffusionGeneratorPipeline from ldm.invoke.globals import Globals, global_cache_dir from ldm.util import ( ask_user, download_with_resume, url_attachment_name, ) +from ..generator.diffusers_pipeline import StableDiffusionGeneratorPipeline class SDLegacyType(Enum): diff --git a/invokeai/models/diffusion/__init__.py b/invokeai/models/diffusion/__init__.py deleted file mode 100644 index 749f5c3f6e..0000000000 --- a/invokeai/models/diffusion/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -''' -Initialization file for invokeai.models.diffusion -''' -from .shared_invokeai_diffusion import InvokeAIDiffuserComponent diff --git a/invokeai/models/diffusion/__pycache__/__init__.cpython-310.pyc b/invokeai/models/diffusion/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index f528d77f34..0000000000 Binary files a/invokeai/models/diffusion/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/ldm/generate.py b/ldm/generate.py index a639360491..00c94b6a83 100644 --- a/ldm/generate.py +++ b/ldm/generate.py @@ -27,9 +27,8 @@ from pytorch_lightning import logging, seed_everything import ldm.invoke.conditioning -from invokeai.models import ModelManager -from invokeai.generator import infill_methods -from invokeai.models import (DDIMSampler, KSampler, PLMSSampler ) +from invokeai.backend.models import (ModelManager,DDIMSampler, KSampler, PLMSSampler) +from invokeai.backend.generator import infill_methods from ldm.invoke.args import metadata_from_png from ldm.invoke.concepts_lib import HuggingFaceConceptsLibrary from ldm.invoke.conditioning import get_uc_and_c_and_ec @@ -898,7 +897,7 @@ class Generate: return self._load_generator(".inpaint", "Inpaint") def _load_generator(self, module, class_name): - mn = f"invokeai.generator{module}" + mn = f"invokeai.backend.generator{module}" cn = class_name module = importlib.import_module(mn) constructor = getattr(module, cn) diff --git a/ldm/invoke/CLI.py b/ldm/invoke/CLI.py index 05aa4482d0..42fe6638aa 100644 --- a/ldm/invoke/CLI.py +++ b/ldm/invoke/CLI.py @@ -21,11 +21,11 @@ import ldm.invoke from ..generate import Generate from .args import (Args, dream_cmd_from_png, metadata_dumps, metadata_from_png) -from invokeai.generator import PipelineIntermediateState +from invokeai.backend.generator import PipelineIntermediateState from .globals import Globals from .image_util import make_grid from .log import write_log -from invokeai.models import ModelManager +from invokeai.backend.models import ModelManager from .pngwriter import PngWriter, retrieve_metadata, write_metadata from .readline import Completer, get_completer from ..util import url_attachment_name @@ -1022,7 +1022,7 @@ def get_next_command(infile=None, model_name="no model") -> str: # command stri def invoke_ai_web_server_loop(gen: Generate, gfpgan, codeformer, esrgan): print("\n* --web was specified, starting web server...") - from invokeai.backend import InvokeAIWebServer + from invokeai.backend.invoke_ai_web_server import InvokeAIWebServer # Change working directory to the stable-diffusion directory os.chdir(os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) diff --git a/ldm/invoke/conditioning.py b/ldm/invoke/conditioning.py index 7ff99c252e..68bf65069d 100644 --- a/ldm/invoke/conditioning.py +++ b/ldm/invoke/conditioning.py @@ -14,7 +14,7 @@ from transformers import CLIPTokenizer, CLIPTextModel from compel import Compel from compel.prompt_parser import FlattenedPrompt, Blend, Fragment, CrossAttentionControlSubstitute, PromptParser from .devices import torch_dtype -from invokeai.models import InvokeAIDiffuserComponent +from invokeai.backend.models import InvokeAIDiffuserComponent from ldm.invoke.globals import Globals def get_tokenizer(model) -> CLIPTokenizer: diff --git a/ldm/invoke/config/model_install_backend.py b/ldm/invoke/config/model_install_backend.py index d86bd14b00..428a46b96b 100644 --- a/ldm/invoke/config/model_install_backend.py +++ b/ldm/invoke/config/model_install_backend.py @@ -18,9 +18,9 @@ from tqdm import tqdm from typing import List import invokeai.configs as configs -from invokeai.generator.diffusers_pipeline import StableDiffusionGeneratorPipeline +from invokeai.backend.generator import StableDiffusionGeneratorPipeline from ..globals import Globals, global_cache_dir, global_config_dir -from invokeai.models import ModelManager +from invokeai.backend.models import ModelManager warnings.filterwarnings("ignore") diff --git a/ldm/invoke/merge_diffusers.py b/ldm/invoke/merge_diffusers.py index 5c100fcf8b..16e5340e8f 100644 --- a/ldm/invoke/merge_diffusers.py +++ b/ldm/invoke/merge_diffusers.py @@ -23,11 +23,10 @@ from omegaconf import OmegaConf from ldm.invoke.config.widgets import FloatTitleSlider from ldm.invoke.globals import (Globals, global_cache_dir, global_config_file, global_models_dir, global_set_root) -from invokeai.models import ModelManager +from invokeai.backend.models import ModelManager DEST_MERGED_MODEL_DIR = "merged_models" - def merge_diffusion_models( model_ids_or_paths: List[Union[str, Path]], alpha: float = 0.5, diff --git a/ldm/modules/attention.py b/ldm/modules/attention.py index 0cd69366ce..11b2b45cff 100644 --- a/ldm/modules/attention.py +++ b/ldm/modules/attention.py @@ -7,7 +7,7 @@ import torch.nn.functional as F from torch import nn, einsum from einops import rearrange, repeat -from invokeai.models.diffusion.cross_attention_control import InvokeAICrossAttentionMixin +from invokeai.backend.models.diffusion import InvokeAICrossAttentionMixin from ldm.modules.diffusionmodules.util import checkpoint def exists(val):