isort wip

This commit is contained in:
Martin Kristiansen 2023-08-18 10:57:18 -04:00 committed by Kent Keirsey
parent 4390a051ca
commit 5615c31799
48 changed files with 185 additions and 212 deletions

View File

@ -1,13 +1,9 @@
# Copyright (c) 2022 Kyle Schouviller (https://github.com/kyle0654) # Copyright (c) 2022 Kyle Schouviller (https://github.com/kyle0654)
from logging import Logger from logging import Logger
from invokeai.app.services.board_image_record_storage import (
SqliteBoardImageRecordStorage, from invokeai.app.services.board_image_record_storage import SqliteBoardImageRecordStorage
) from invokeai.app.services.board_images import BoardImagesService, BoardImagesServiceDependencies
from invokeai.app.services.board_images import (
BoardImagesService,
BoardImagesServiceDependencies,
)
from invokeai.app.services.board_record_storage import SqliteBoardRecordStorage from invokeai.app.services.board_record_storage import SqliteBoardRecordStorage
from invokeai.app.services.boards import BoardService, BoardServiceDependencies from invokeai.app.services.boards import BoardService, BoardServiceDependencies
from invokeai.app.services.config import InvokeAIAppConfig from invokeai.app.services.config import InvokeAIAppConfig
@ -19,16 +15,16 @@ from invokeai.backend.util.logging import InvokeAILogger
from invokeai.version.invokeai_version import __version__ from invokeai.version.invokeai_version import __version__
from ..services.default_graphs import create_system_graphs from ..services.default_graphs import create_system_graphs
from ..services.latent_storage import DiskLatentsStorage, ForwardCacheLatentsStorage
from ..services.graph import GraphExecutionState, LibraryGraph from ..services.graph import GraphExecutionState, LibraryGraph
from ..services.image_file_storage import DiskImageFileStorage from ..services.image_file_storage import DiskImageFileStorage
from ..services.invocation_queue import MemoryInvocationQueue from ..services.invocation_queue import MemoryInvocationQueue
from ..services.invocation_services import InvocationServices from ..services.invocation_services import InvocationServices
from ..services.invocation_stats import InvocationStatsService
from ..services.invoker import Invoker from ..services.invoker import Invoker
from ..services.latent_storage import DiskLatentsStorage, ForwardCacheLatentsStorage
from ..services.model_manager_service import ModelManagerService
from ..services.processor import DefaultInvocationProcessor from ..services.processor import DefaultInvocationProcessor
from ..services.sqlite import SqliteItemStorage from ..services.sqlite import SqliteItemStorage
from ..services.model_manager_service import ModelManagerService
from ..services.invocation_stats import InvocationStatsService
from .events import FastAPIEventService from .events import FastAPIEventService

View File

@ -1,20 +1,17 @@
import io import io
from typing import Optional from typing import Optional
from PIL import Image
from fastapi import Body, HTTPException, Path, Query, Request, Response, UploadFile from fastapi import Body, HTTPException, Path, Query, Request, Response, UploadFile
from fastapi.responses import FileResponse from fastapi.responses import FileResponse
from fastapi.routing import APIRouter from fastapi.routing import APIRouter
from PIL import Image
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from invokeai.app.invocations.metadata import ImageMetadata from invokeai.app.invocations.metadata import ImageMetadata
from invokeai.app.models.image import ImageCategory, ResourceOrigin from invokeai.app.models.image import ImageCategory, ResourceOrigin
from invokeai.app.services.image_record_storage import OffsetPaginatedResults from invokeai.app.services.image_record_storage import OffsetPaginatedResults
from invokeai.app.services.models.image_record import ( from invokeai.app.services.models.image_record import ImageDTO, ImageRecordChanges, ImageUrlsDTO
ImageDTO,
ImageRecordChanges,
ImageUrlsDTO,
)
from ..dependencies import ApiDependencies from ..dependencies import ApiDependencies
images_router = APIRouter(prefix="/v1/images", tags=["images"]) images_router = APIRouter(prefix="/v1/images", tags=["images"])

View File

@ -2,7 +2,7 @@
import pathlib import pathlib
from typing import Literal, List, Optional, Union from typing import List, Literal, Optional, Union
from fastapi import Body, Path, Query, Response from fastapi import Body, Path, Query, Response
from fastapi.routing import APIRouter from fastapi.routing import APIRouter
@ -10,13 +10,13 @@ from pydantic import BaseModel, parse_obj_as
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from invokeai.backend import BaseModelType, ModelType from invokeai.backend import BaseModelType, ModelType
from invokeai.backend.model_management import MergeInterpolationMethod
from invokeai.backend.model_management.models import ( from invokeai.backend.model_management.models import (
OPENAPI_MODEL_CONFIGS, OPENAPI_MODEL_CONFIGS,
SchedulerPredictionType,
ModelNotFoundException,
InvalidModelException, InvalidModelException,
ModelNotFoundException,
SchedulerPredictionType,
) )
from invokeai.backend.model_management import MergeInterpolationMethod
from ..dependencies import ApiDependencies from ..dependencies import ApiDependencies

View File

@ -9,13 +9,7 @@ from pydantic.fields import Field
# Importing * is bad karma but needed here for node detection # Importing * is bad karma but needed here for node detection
from ...invocations import * # noqa: F401 F403 from ...invocations import * # noqa: F401 F403
from ...invocations.baseinvocation import BaseInvocation from ...invocations.baseinvocation import BaseInvocation
from ...services.graph import ( from ...services.graph import Edge, EdgeConnection, Graph, GraphExecutionState, NodeAlreadyExecutedError
Edge,
EdgeConnection,
Graph,
GraphExecutionState,
NodeAlreadyExecutedError,
)
from ...services.item_storage import PaginatedResults from ...services.item_storage import PaginatedResults
from ..dependencies import ApiDependencies from ..dependencies import ApiDependencies

View File

@ -1,16 +1,18 @@
# Copyright (c) 2023 Kyle Schouviller (https://github.com/kyle0654) # Copyright (c) 2023 Kyle Schouviller (https://github.com/kyle0654)
from abc import ABC, abstractmethod
import argparse import argparse
from abc import ABC, abstractmethod
from typing import Any, Callable, Iterable, Literal, Union, get_args, get_origin, get_type_hints from typing import Any, Callable, Iterable, Literal, Union, get_args, get_origin, get_type_hints
from pydantic import BaseModel, Field
import networkx as nx
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import networkx as nx
from pydantic import BaseModel, Field
import invokeai.backend.util.logging as logger import invokeai.backend.util.logging as logger
from ..invocations.baseinvocation import BaseInvocation from ..invocations.baseinvocation import BaseInvocation
from ..invocations.image import ImageField from ..invocations.image import ImageField
from ..services.graph import GraphExecutionState, LibraryGraph, Edge from ..services.graph import Edge, GraphExecutionState, LibraryGraph
from ..services.invoker import Invoker from ..services.invoker import Invoker

View File

@ -6,15 +6,15 @@ completer object.
import atexit import atexit
import readline import readline
import shlex import shlex
from pathlib import Path from pathlib import Path
from typing import List, Dict, Literal, get_args, get_type_hints, get_origin from typing import Dict, List, Literal, get_args, get_origin, get_type_hints
import invokeai.backend.util.logging as logger import invokeai.backend.util.logging as logger
from ...backend import ModelManager from ...backend import ModelManager
from ..invocations.baseinvocation import BaseInvocation from ..invocations.baseinvocation import BaseInvocation
from .commands import BaseCommand
from ..services.invocation_services import InvocationServices from ..services.invocation_services import InvocationServices
from .commands import BaseCommand
# singleton object, class variable # singleton object, class variable
completer = None completer = None

View File

@ -5,16 +5,15 @@ from typing import List, Union
import torch import torch
from compel import Compel, ReturnedEmbeddingsType from compel import Compel, ReturnedEmbeddingsType
from compel.prompt_parser import Blend, Conjunction, CrossAttentionControlSubstitute, FlattenedPrompt, Fragment from compel.prompt_parser import Blend, Conjunction, CrossAttentionControlSubstitute, FlattenedPrompt, Fragment
from invokeai.app.invocations.primitives import ConditioningField, ConditioningOutput
from invokeai.app.invocations.primitives import ConditioningField, ConditioningOutput
from invokeai.backend.stable_diffusion.diffusion.shared_invokeai_diffusion import ( from invokeai.backend.stable_diffusion.diffusion.shared_invokeai_diffusion import (
BasicConditioningInfo, BasicConditioningInfo,
SDXLConditioningInfo, SDXLConditioningInfo,
) )
from ...backend.model_management.models import ModelType
from ...backend.model_management.lora import ModelPatcher from ...backend.model_management.lora import ModelPatcher
from ...backend.model_management.models import ModelNotFoundException from ...backend.model_management.models import ModelNotFoundException, ModelType
from ...backend.stable_diffusion.diffusion import InvokeAIDiffuserComponent from ...backend.stable_diffusion.diffusion import InvokeAIDiffuserComponent
from ...backend.util.devices import torch_dtype from ...backend.util.devices import torch_dtype
from .baseinvocation import ( from .baseinvocation import (

View File

@ -28,15 +28,14 @@ from pydantic import BaseModel, Field, validator
from invokeai.app.invocations.primitives import ImageField, ImageOutput from invokeai.app.invocations.primitives import ImageField, ImageOutput
from ...backend.model_management import BaseModelType from ...backend.model_management import BaseModelType
from ..models.image import ImageCategory, ResourceOrigin from ..models.image import ImageCategory, ResourceOrigin
from .baseinvocation import ( from .baseinvocation import (
BaseInvocation, BaseInvocation,
BaseInvocationOutput, BaseInvocationOutput,
FieldDescriptions, FieldDescriptions,
InputField,
Input, Input,
InputField,
InvocationContext, InvocationContext,
OutputField, OutputField,
UIType, UIType,
@ -44,7 +43,6 @@ from .baseinvocation import (
invocation_output, invocation_output,
) )
CONTROLNET_MODE_VALUES = Literal["balanced", "more_prompt", "more_control", "unbalanced"] CONTROLNET_MODE_VALUES = Literal["balanced", "more_prompt", "more_control", "unbalanced"]
CONTROLNET_RESIZE_VALUES = Literal[ CONTROLNET_RESIZE_VALUES = Literal[
"just_resize", "just_resize",

View File

@ -4,8 +4,8 @@
import cv2 as cv import cv2 as cv
import numpy import numpy
from PIL import Image, ImageOps from PIL import Image, ImageOps
from invokeai.app.invocations.primitives import ImageField, ImageOutput
from invokeai.app.invocations.primitives import ImageField, ImageOutput
from invokeai.app.models.image import ImageCategory, ResourceOrigin from invokeai.app.models.image import ImageCategory, ResourceOrigin
from .baseinvocation import BaseInvocation, InputField, InvocationContext, invocation from .baseinvocation import BaseInvocation, InputField, InvocationContext, invocation

View File

@ -25,8 +25,8 @@ from .baseinvocation import (
BaseInvocation, BaseInvocation,
BaseInvocationOutput, BaseInvocationOutput,
FieldDescriptions, FieldDescriptions,
InputField,
Input, Input,
InputField,
InvocationContext, InvocationContext,
OutputField, OutputField,
UIComponent, UIComponent,

View File

@ -3,7 +3,6 @@ from typing import Literal, Optional
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import numpy as np import numpy as np
import PIL.Image import PIL.Image
from easing_functions import ( from easing_functions import (
BackEaseIn, BackEaseIn,

View File

@ -7,8 +7,8 @@ import numpy as np
from basicsr.archs.rrdbnet_arch import RRDBNet from basicsr.archs.rrdbnet_arch import RRDBNet
from PIL import Image from PIL import Image
from realesrgan import RealESRGANer from realesrgan import RealESRGANer
from invokeai.app.invocations.primitives import ImageField, ImageOutput
from invokeai.app.invocations.primitives import ImageField, ImageOutput
from invokeai.app.models.image import ImageCategory, ResourceOrigin from invokeai.app.models.image import ImageCategory, ResourceOrigin
from .baseinvocation import BaseInvocation, InputField, InvocationContext, invocation from .baseinvocation import BaseInvocation, InputField, InvocationContext, invocation

View File

@ -1,13 +1,10 @@
from abc import ABC, abstractmethod
import sqlite3 import sqlite3
import threading import threading
from abc import ABC, abstractmethod
from typing import Optional, cast from typing import Optional, cast
from invokeai.app.services.image_record_storage import OffsetPaginatedResults from invokeai.app.services.image_record_storage import OffsetPaginatedResults
from invokeai.app.services.models.image_record import ( from invokeai.app.services.models.image_record import ImageRecord, deserialize_image_record
ImageRecord,
deserialize_image_record,
)
class BoardImageRecordStorageBase(ABC): class BoardImageRecordStorageBase(ABC):

View File

@ -1,12 +1,9 @@
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from logging import Logger from logging import Logger
from typing import Optional from typing import Optional
from invokeai.app.services.board_image_record_storage import BoardImageRecordStorageBase
from invokeai.app.services.board_record_storage import (
BoardRecord,
BoardRecordStorageBase,
)
from invokeai.app.services.board_image_record_storage import BoardImageRecordStorageBase
from invokeai.app.services.board_record_storage import BoardRecord, BoardRecordStorageBase
from invokeai.app.services.image_record_storage import ImageRecordStorageBase from invokeai.app.services.image_record_storage import ImageRecordStorageBase
from invokeai.app.services.models.board_record import BoardDTO from invokeai.app.services.models.board_record import BoardDTO
from invokeai.app.services.urls import UrlServiceBase from invokeai.app.services.urls import UrlServiceBase

View File

@ -1,15 +1,13 @@
import sqlite3
import threading import threading
import uuid import uuid
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from typing import Optional, Union, cast from typing import Optional, Union, cast
import sqlite3 from pydantic import BaseModel, Extra, Field
from invokeai.app.services.image_record_storage import OffsetPaginatedResults from invokeai.app.services.image_record_storage import OffsetPaginatedResults
from invokeai.app.services.models.board_record import ( from invokeai.app.services.models.board_record import BoardRecord, deserialize_board_record
BoardRecord,
deserialize_board_record,
)
from pydantic import BaseModel, Field, Extra
class BoardChanges(BaseModel, extra=Extra.forbid): class BoardChanges(BaseModel, extra=Extra.forbid):

View File

@ -1,17 +1,10 @@
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from logging import Logger from logging import Logger
from invokeai.app.services.board_image_record_storage import BoardImageRecordStorageBase from invokeai.app.services.board_image_record_storage import BoardImageRecordStorageBase
from invokeai.app.services.board_images import board_record_to_dto from invokeai.app.services.board_images import board_record_to_dto
from invokeai.app.services.board_record_storage import BoardChanges, BoardRecordStorageBase
from invokeai.app.services.board_record_storage import ( from invokeai.app.services.image_record_storage import ImageRecordStorageBase, OffsetPaginatedResults
BoardChanges,
BoardRecordStorageBase,
)
from invokeai.app.services.image_record_storage import (
ImageRecordStorageBase,
OffsetPaginatedResults,
)
from invokeai.app.services.models.board_record import BoardDTO from invokeai.app.services.models.board_record import BoardDTO
from invokeai.app.services.urls import UrlServiceBase from invokeai.app.services.urls import UrlServiceBase

View File

@ -1,12 +1,11 @@
from ..invocations.latent import LatentsToImageInvocation, DenoiseLatentsInvocation
from ..invocations.image import ImageNSFWBlurInvocation
from ..invocations.noise import NoiseInvocation
from ..invocations.compel import CompelInvocation from ..invocations.compel import CompelInvocation
from ..invocations.image import ImageNSFWBlurInvocation
from ..invocations.latent import DenoiseLatentsInvocation, LatentsToImageInvocation
from ..invocations.noise import NoiseInvocation
from ..invocations.primitives import IntegerInvocation from ..invocations.primitives import IntegerInvocation
from .graph import Edge, EdgeConnection, ExposedNodeInput, ExposedNodeOutput, Graph, LibraryGraph from .graph import Edge, EdgeConnection, ExposedNodeInput, ExposedNodeOutput, Graph, LibraryGraph
from .item_storage import ItemStorageABC from .item_storage import ItemStorageABC
default_text_to_image_graph_id = "539b2af5-2b4d-4d8c-8071-e54a3255fc74" default_text_to_image_graph_id = "539b2af5-2b4d-4d8c-8071-e54a3255fc74"

View File

@ -1,14 +1,10 @@
# Copyright (c) 2022 Kyle Schouviller (https://github.com/kyle0654) # Copyright (c) 2022 Kyle Schouviller (https://github.com/kyle0654)
from typing import Any, Optional from typing import Any, Optional
from invokeai.app.models.image import ProgressImage from invokeai.app.models.image import ProgressImage
from invokeai.app.services.model_manager_service import BaseModelType, ModelInfo, ModelType, SubModelType
from invokeai.app.util.misc import get_timestamp from invokeai.app.util.misc import get_timestamp
from invokeai.app.services.model_manager_service import (
BaseModelType,
ModelType,
SubModelType,
ModelInfo,
)
class EventServiceBase: class EventServiceBase:

View File

@ -9,11 +9,7 @@ from pydantic import BaseModel, Field
from pydantic.generics import GenericModel from pydantic.generics import GenericModel
from invokeai.app.models.image import ImageCategory, ResourceOrigin from invokeai.app.models.image import ImageCategory, ResourceOrigin
from invokeai.app.services.models.image_record import ( from invokeai.app.services.models.image_record import ImageRecord, ImageRecordChanges, deserialize_image_record
ImageRecord,
ImageRecordChanges,
deserialize_image_record,
)
T = TypeVar("T", bound=BaseModel) T = TypeVar("T", bound=BaseModel)

View File

@ -26,12 +26,7 @@ from invokeai.app.services.image_record_storage import (
OffsetPaginatedResults, OffsetPaginatedResults,
) )
from invokeai.app.services.item_storage import ItemStorageABC from invokeai.app.services.item_storage import ItemStorageABC
from invokeai.app.services.models.image_record import ( from invokeai.app.services.models.image_record import ImageDTO, ImageRecord, ImageRecordChanges, image_record_to_dto
ImageDTO,
ImageRecord,
ImageRecordChanges,
image_record_to_dto,
)
from invokeai.app.services.resource_name import NameServiceBase from invokeai.app.services.resource_name import NameServiceBase
from invokeai.app.services.urls import UrlServiceBase from invokeai.app.services.urls import UrlServiceBase
from invokeai.app.util.metadata import get_metadata_graph_from_raw_session from invokeai.app.util.metadata import get_metadata_graph_from_raw_session

View File

@ -3,9 +3,9 @@
import time import time
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from queue import Queue from queue import Queue
from typing import Optional
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from typing import Optional
class InvocationQueueItem(BaseModel): class InvocationQueueItem(BaseModel):

View File

@ -1,21 +1,23 @@
# Copyright (c) 2022 Kyle Schouviller (https://github.com/kyle0654) and the InvokeAI Team # Copyright (c) 2022 Kyle Schouviller (https://github.com/kyle0654) and the InvokeAI Team
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
if TYPE_CHECKING: if TYPE_CHECKING:
from logging import Logger from logging import Logger
from invokeai.app.services.board_images import BoardImagesServiceABC from invokeai.app.services.board_images import BoardImagesServiceABC
from invokeai.app.services.boards import BoardServiceABC from invokeai.app.services.boards import BoardServiceABC
from invokeai.app.services.images import ImageServiceABC
from invokeai.app.services.invocation_stats import InvocationStatsServiceBase
from invokeai.app.services.model_manager_service import ModelManagerServiceBase
from invokeai.app.services.events import EventServiceBase
from invokeai.app.services.latent_storage import LatentsStorageBase
from invokeai.app.services.invocation_queue import InvocationQueueABC
from invokeai.app.services.item_storage import ItemStorageABC
from invokeai.app.services.config import InvokeAIAppConfig from invokeai.app.services.config import InvokeAIAppConfig
from invokeai.app.services.events import EventServiceBase
from invokeai.app.services.graph import GraphExecutionState, LibraryGraph from invokeai.app.services.graph import GraphExecutionState, LibraryGraph
from invokeai.app.services.images import ImageServiceABC
from invokeai.app.services.invocation_queue import InvocationQueueABC
from invokeai.app.services.invocation_stats import InvocationStatsServiceBase
from invokeai.app.services.invoker import InvocationProcessorABC from invokeai.app.services.invoker import InvocationProcessorABC
from invokeai.app.services.item_storage import ItemStorageABC
from invokeai.app.services.latent_storage import LatentsStorageBase
from invokeai.app.services.model_manager_service import ModelManagerServiceBase
class InvocationServices: class InvocationServices:

View File

@ -28,22 +28,22 @@ The abstract base class for this class is InvocationStatsServiceBase. An impleme
writes to the system log is stored in InvocationServices.performance_statistics. writes to the system log is stored in InvocationServices.performance_statistics.
""" """
import psutil
import time import time
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from contextlib import AbstractContextManager from contextlib import AbstractContextManager
from dataclasses import dataclass, field from dataclasses import dataclass, field
from typing import Dict from typing import Dict
import psutil
import torch import torch
import invokeai.backend.util.logging as logger import invokeai.backend.util.logging as logger
from invokeai.backend.model_management.model_cache import CacheStats
from ..invocations.baseinvocation import BaseInvocation from ..invocations.baseinvocation import BaseInvocation
from .graph import GraphExecutionState from .graph import GraphExecutionState
from .item_storage import ItemStorageABC from .item_storage import ItemStorageABC
from .model_manager_service import ModelManagerService from .model_manager_service import ModelManagerService
from invokeai.backend.model_management.model_cache import CacheStats
# size of GIG in bytes # size of GIG in bytes
GIG = 1073741824 GIG = 1073741824

View File

@ -3,7 +3,7 @@
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from pathlib import Path from pathlib import Path
from queue import Queue from queue import Queue
from typing import Dict, Union, Optional from typing import Dict, Optional, Union
import torch import torch

View File

@ -5,27 +5,28 @@ from __future__ import annotations
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from logging import Logger from logging import Logger
from pathlib import Path from pathlib import Path
from pydantic import Field
from typing import Literal, Optional, Union, Callable, List, Tuple, TYPE_CHECKING
from types import ModuleType from types import ModuleType
from typing import TYPE_CHECKING, Callable, List, Literal, Optional, Tuple, Union
from invokeai.backend.model_management import (
ModelManager,
BaseModelType,
ModelType,
SubModelType,
ModelInfo,
AddModelResult,
SchedulerPredictionType,
ModelMerger,
MergeInterpolationMethod,
ModelNotFoundException,
)
from invokeai.backend.model_management.model_search import FindModels
from invokeai.backend.model_management.model_cache import CacheStats
import torch import torch
from pydantic import Field
from invokeai.app.models.exceptions import CanceledException from invokeai.app.models.exceptions import CanceledException
from invokeai.backend.model_management import (
AddModelResult,
BaseModelType,
MergeInterpolationMethod,
ModelInfo,
ModelManager,
ModelMerger,
ModelNotFoundException,
ModelType,
SchedulerPredictionType,
SubModelType,
)
from invokeai.backend.model_management.model_cache import CacheStats
from invokeai.backend.model_management.model_search import FindModels
from ...backend.util import choose_precision, choose_torch_device from ...backend.util import choose_precision, choose_torch_device
from .config import InvokeAIAppConfig from .config import InvokeAIAppConfig

View File

@ -1,6 +1,8 @@
from typing import Optional, Union
from datetime import datetime from datetime import datetime
from typing import Optional, Union
from pydantic import Field from pydantic import Field
from invokeai.app.util.misc import get_iso_timestamp from invokeai.app.util.misc import get_iso_timestamp
from invokeai.app.util.model_exclude_null import BaseModelExcludeNull from invokeai.app.util.model_exclude_null import BaseModelExcludeNull

View File

@ -1,6 +1,6 @@
import uuid
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from enum import Enum, EnumMeta from enum import Enum, EnumMeta
import uuid
class ResourceType(str, Enum, metaclass=EnumMeta): class ResourceType(str, Enum, metaclass=EnumMeta):

View File

@ -1,12 +1,12 @@
from typing import Union from typing import Union
import torch
import numpy as np
import cv2
from PIL import Image
from diffusers.utils import PIL_INTERPOLATION
from einops import rearrange import cv2
import numpy as np
import torch
from controlnet_aux.util import HWC3 from controlnet_aux.util import HWC3
from diffusers.utils import PIL_INTERPOLATION
from einops import rearrange
from PIL import Image
################################################################### ###################################################################
# Copy of scripts/lvminthin.py from Mikubill/sd-webui-controlnet # Copy of scripts/lvminthin.py from Mikubill/sd-webui-controlnet

View File

@ -1,4 +1,5 @@
import datetime import datetime
import numpy as np import numpy as np

View File

@ -1,6 +1,6 @@
from typing import Any from typing import Any
from pydantic import BaseModel
from pydantic import BaseModel
""" """
We want to exclude null values from objects that make their way to the client. We want to exclude null values from objects that make their way to the client.

View File

@ -1,11 +1,13 @@
import torch import torch
from PIL import Image from PIL import Image
from invokeai.app.models.exceptions import CanceledException from invokeai.app.models.exceptions import CanceledException
from invokeai.app.models.image import ProgressImage from invokeai.app.models.image import ProgressImage
from ..invocations.baseinvocation import InvocationContext
from ...backend.util.util import image_to_dataURL
from ...backend.stable_diffusion import PipelineIntermediateState
from ...backend.model_management.models import BaseModelType from ...backend.model_management.models import BaseModelType
from ...backend.stable_diffusion import PipelineIntermediateState
from ...backend.util.util import image_to_dataURL
from ..invocations.baseinvocation import InvocationContext
def sample_to_lowres_estimated_image(samples, latent_rgb_factors, smooth_matrix=None): def sample_to_lowres_estimated_image(samples, latent_rgb_factors, smooth_matrix=None):

View File

@ -1,4 +1,5 @@
import os import os
from PIL import Image from PIL import Image

View File

@ -6,25 +6,25 @@
# pylint: disable=broad-exception-caught # pylint: disable=broad-exception-caught
"""Script to import images into the new database system for 3.0.0""" """Script to import images into the new database system for 3.0.0"""
import os
import datetime import datetime
import shutil
import locale
import sqlite3
import json
import glob import glob
import json
import locale
import os
import re import re
import shutil
import sqlite3
import uuid import uuid
import yaml from pathlib import Path
import PIL import PIL
import PIL.ImageOps import PIL.ImageOps
import PIL.PngImagePlugin import PIL.PngImagePlugin
import yaml
from pathlib import Path
from prompt_toolkit import prompt from prompt_toolkit import prompt
from prompt_toolkit.shortcuts import message_dialog
from prompt_toolkit.completion import PathCompleter from prompt_toolkit.completion import PathCompleter
from prompt_toolkit.key_binding import KeyBindings from prompt_toolkit.key_binding import KeyBindings
from prompt_toolkit.shortcuts import message_dialog
from invokeai.app.services.config import InvokeAIAppConfig from invokeai.app.services.config import InvokeAIAppConfig

View File

@ -4,6 +4,7 @@ pip install <path_to_git_source>.
""" """
import os import os
import platform import platform
import pkg_resources import pkg_resources
import psutil import psutil
import requests import requests

View File

@ -11,6 +11,7 @@ The work is actually done in backend code in model_install_backend.py.
import argparse import argparse
import curses import curses
import logging
import sys import sys
import textwrap import textwrap
import traceback import traceback
@ -20,34 +21,28 @@ from multiprocessing.connection import Connection, Pipe
from pathlib import Path from pathlib import Path
from shutil import get_terminal_size from shutil import get_terminal_size
import logging
import npyscreen import npyscreen
import torch import torch
from npyscreen import widget from npyscreen import widget
from invokeai.backend.util.logging import InvokeAILogger from invokeai.app.services.config import InvokeAIAppConfig
from invokeai.backend.install.model_install_backend import InstallSelections, ModelInstall, SchedulerPredictionType
from invokeai.backend.install.model_install_backend import (
InstallSelections,
ModelInstall,
SchedulerPredictionType,
)
from invokeai.backend.model_management import ModelManager, ModelType from invokeai.backend.model_management import ModelManager, ModelType
from invokeai.backend.util import choose_precision, choose_torch_device from invokeai.backend.util import choose_precision, choose_torch_device
from invokeai.backend.util.logging import InvokeAILogger
from invokeai.frontend.install.widgets import ( from invokeai.frontend.install.widgets import (
MIN_COLS,
MIN_LINES,
BufferBox,
CenteredTitleText, CenteredTitleText,
CyclingForm,
MultiSelectColumns, MultiSelectColumns,
SingleSelectColumns, SingleSelectColumns,
TextBox, TextBox,
BufferBox,
set_min_terminal_size,
select_stable_diffusion_config_file,
CyclingForm,
MIN_COLS,
MIN_LINES,
WindowTooSmallException, WindowTooSmallException,
select_stable_diffusion_config_file,
set_min_terminal_size,
) )
from invokeai.app.services.config import InvokeAIAppConfig
config = InvokeAIAppConfig.get_config() config = InvokeAIAppConfig.get_config()
logger = InvokeAILogger.getLogger() logger = InvokeAILogger.getLogger()

View File

@ -5,16 +5,17 @@ import curses
import math import math
import os import os
import platform import platform
import pyperclip
import struct import struct
import subprocess import subprocess
import sys import sys
import npyscreen
import textwrap import textwrap
import npyscreen.wgmultiline as wgmultiline
from npyscreen import fmPopup
from shutil import get_terminal_size
from curses import BUTTON2_CLICKED, BUTTON3_CLICKED from curses import BUTTON2_CLICKED, BUTTON3_CLICKED
from shutil import get_terminal_size
import npyscreen
import npyscreen.wgmultiline as wgmultiline
import pyperclip
from npyscreen import fmPopup
# minimum size for UIs # minimum size for UIs
MIN_COLS = 150 MIN_COLS = 150

View File

@ -1,5 +1,5 @@
import sys
import argparse import argparse
import sys
def main(): def main():

View File

@ -16,13 +16,8 @@ from npyscreen import widget
import invokeai.backend.util.logging as logger import invokeai.backend.util.logging as logger
from invokeai.app.services.config import InvokeAIAppConfig from invokeai.app.services.config import InvokeAIAppConfig
from invokeai.backend.model_management import ( from invokeai.backend.model_management import BaseModelType, ModelManager, ModelMerger, ModelType
ModelMerger, from invokeai.frontend.install.widgets import FloatTitleSlider, SingleSelectColumns, TextBox
ModelManager,
ModelType,
BaseModelType,
)
from invokeai.frontend.install.widgets import FloatTitleSlider, TextBox, SingleSelectColumns
config = InvokeAIAppConfig.get_config() config = InvokeAIAppConfig.get_config()

View File

@ -21,8 +21,8 @@ from npyscreen import widget
from omegaconf import OmegaConf from omegaconf import OmegaConf
import invokeai.backend.util.logging as logger import invokeai.backend.util.logging as logger
from invokeai.app.services.config import InvokeAIAppConfig from invokeai.app.services.config import InvokeAIAppConfig
from ...backend.training import do_textual_inversion_training, parse_args from ...backend.training import do_textual_inversion_training, parse_args
TRAINING_DATA = "text-inversion-training-data" TRAINING_DATA = "text-inversion-training-data"

View File

@ -200,3 +200,7 @@ select = ["B", "C", "E", "F", "W", "T4"]
[tool.black] [tool.black]
line-length = 120 line-length = 120
[tool.isort]
profile = "black"
line_length = 120

View File

@ -1,30 +1,24 @@
from .test_invoker import create_edge import pytest
from .test_nodes import (
# This import must happen before other invoke imports or test in other files(!!) break
from .test_nodes import ( # isort: split
PromptCollectionTestInvocation,
PromptTestInvocation,
TestEventService, TestEventService,
TextToImageTestInvocation, TextToImageTestInvocation,
PromptTestInvocation,
PromptCollectionTestInvocation,
)
from invokeai.app.services.invocation_queue import MemoryInvocationQueue
from invokeai.app.services.processor import DefaultInvocationProcessor
from invokeai.app.services.sqlite import SqliteItemStorage, sqlite_memory
from invokeai.app.invocations.baseinvocation import (
BaseInvocation,
BaseInvocationOutput,
InvocationContext,
) )
from invokeai.app.invocations.baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationContext
from invokeai.app.invocations.collections import RangeInvocation from invokeai.app.invocations.collections import RangeInvocation
from invokeai.app.invocations.math import AddInvocation, MultiplyInvocation from invokeai.app.invocations.math import AddInvocation, MultiplyInvocation
from invokeai.app.services.graph import CollectInvocation, Graph, GraphExecutionState, IterateInvocation, LibraryGraph
from invokeai.app.services.invocation_queue import MemoryInvocationQueue
from invokeai.app.services.invocation_services import InvocationServices from invokeai.app.services.invocation_services import InvocationServices
from invokeai.app.services.invocation_stats import InvocationStatsService from invokeai.app.services.invocation_stats import InvocationStatsService
from invokeai.app.services.graph import ( from invokeai.app.services.processor import DefaultInvocationProcessor
Graph, from invokeai.app.services.sqlite import SqliteItemStorage, sqlite_memory
CollectInvocation,
IterateInvocation, from .test_invoker import create_edge
GraphExecutionState,
LibraryGraph,
)
import pytest
@pytest.fixture @pytest.fixture

View File

@ -1,23 +1,21 @@
import pytest
from invokeai.app.services.graph import Graph, GraphExecutionState, LibraryGraph
from invokeai.app.services.invocation_queue import MemoryInvocationQueue
from invokeai.app.services.invocation_services import InvocationServices
from invokeai.app.services.invocation_stats import InvocationStatsService
from invokeai.app.services.invoker import Invoker
from invokeai.app.services.processor import DefaultInvocationProcessor
from invokeai.app.services.sqlite import SqliteItemStorage, sqlite_memory
from .test_nodes import ( from .test_nodes import (
TestEventService,
ErrorInvocation, ErrorInvocation,
TextToImageTestInvocation,
PromptTestInvocation, PromptTestInvocation,
TestEventService,
TextToImageTestInvocation,
create_edge, create_edge,
wait_until, wait_until,
) )
from invokeai.app.services.invocation_queue import MemoryInvocationQueue
from invokeai.app.services.processor import DefaultInvocationProcessor
from invokeai.app.services.sqlite import SqliteItemStorage, sqlite_memory
from invokeai.app.services.invoker import Invoker
from invokeai.app.services.invocation_services import InvocationServices
from invokeai.app.services.invocation_stats import InvocationStatsService
from invokeai.app.services.graph import (
Graph,
GraphExecutionState,
LibraryGraph,
)
import pytest
@pytest.fixture @pytest.fixture

View File

@ -1,3 +1,4 @@
import pytest
from invokeai.app.invocations.baseinvocation import ( from invokeai.app.invocations.baseinvocation import (
BaseInvocation, BaseInvocation,
BaseInvocationOutput, BaseInvocationOutput,
@ -29,7 +30,25 @@ from invokeai.app.invocations.image import ShowImageInvocation
from invokeai.app.invocations.math import AddInvocation, SubtractInvocation from invokeai.app.invocations.math import AddInvocation, SubtractInvocation
from invokeai.app.invocations.primitives import FloatInvocation, IntegerInvocation from invokeai.app.invocations.primitives import FloatInvocation, IntegerInvocation
from invokeai.app.services.default_graphs import create_text_to_image from invokeai.app.services.default_graphs import create_text_to_image
import pytest from invokeai.app.services.graph import (
CollectInvocation,
Edge,
EdgeConnection,
Graph,
GraphInvocation,
InvalidEdgeError,
IterateInvocation,
NodeAlreadyInGraphError,
NodeNotFoundError,
are_connections_compatible,
)
from .test_nodes import (
ImageToImageTestInvocation,
ListPassThroughInvocation,
PromptTestInvocation,
TextToImageTestInvocation,
)
# Helpers # Helpers

View File

@ -78,7 +78,7 @@ class PromptCollectionTestInvocation(BaseInvocation):
return PromptCollectionTestInvocationOutput(collection=self.collection.copy()) return PromptCollectionTestInvocationOutput(collection=self.collection.copy())
# Importing these at the top breaks previous tests # Importing these must happen after test invocations are defined or they won't register
from invokeai.app.services.events import EventServiceBase # noqa: E402 from invokeai.app.services.events import EventServiceBase # noqa: E402
from invokeai.app.services.graph import Edge, EdgeConnection # noqa: E402 from invokeai.app.services.graph import Edge, EdgeConnection # noqa: E402

View File

@ -1,6 +1,7 @@
from invokeai.app.services.sqlite import SqliteItemStorage, sqlite_memory
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from invokeai.app.services.sqlite import SqliteItemStorage, sqlite_memory
class TestModel(BaseModel): class TestModel(BaseModel):
id: str = Field(description="ID") id: str = Field(description="ID")

View File

@ -6,8 +6,6 @@ import pytest
from omegaconf import OmegaConf from omegaconf import OmegaConf
from pydantic import ValidationError from pydantic import ValidationError
from invokeai.app.services.config import InvokeAIAppConfig
@pytest.fixture @pytest.fixture
def patch_rootdir(tmp_path: Path, monkeypatch: Any) -> None: def patch_rootdir(tmp_path: Path, monkeypatch: Any) -> None:
@ -166,6 +164,7 @@ def test_type_coercion(patch_rootdir):
""" """
) )
def test_deny_nodes(patch_rootdir): def test_deny_nodes(patch_rootdir):
from invokeai.app.services.config import InvokeAIAppConfig
# Allow integer, string and float, but explicitly deny float # Allow integer, string and float, but explicitly deny float
allow_deny_nodes_conf = OmegaConf.create( allow_deny_nodes_conf = OmegaConf.create(
""" """

View File

@ -3,7 +3,7 @@ from pathlib import Path
import pytest import pytest
from invokeai.app.services.config import InvokeAIAppConfig from invokeai.app.services.config import InvokeAIAppConfig
from invokeai.backend import ModelManager, BaseModelType, ModelType, SubModelType from invokeai.backend import BaseModelType, ModelManager, ModelType, SubModelType
BASIC_MODEL_NAME = ("SDXL base", BaseModelType.StableDiffusionXL, ModelType.Main) BASIC_MODEL_NAME = ("SDXL base", BaseModelType.StableDiffusionXL, ModelType.Main)
VAE_OVERRIDE_MODEL_NAME = ("SDXL with VAE", BaseModelType.StableDiffusionXL, ModelType.Main) VAE_OVERRIDE_MODEL_NAME = ("SDXL with VAE", BaseModelType.StableDiffusionXL, ModelType.Main)

View File

@ -2,14 +2,15 @@
Not really a test, but a way to verify that the paths are existing Not really a test, but a way to verify that the paths are existing
and fail early if they are not. and fail early if they are not.
""" """
import unittest
import pathlib import pathlib
import unittest
from os import path as osp from os import path as osp
from PIL import Image from PIL import Image
import invokeai.frontend.web.dist as frontend
import invokeai.configs as configs
import invokeai.app.assets.images as image_assets import invokeai.app.assets.images as image_assets
import invokeai.configs as configs
import invokeai.frontend.web.dist as frontend
class ConfigsTestCase(unittest.TestCase): class ConfigsTestCase(unittest.TestCase):