mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
fix(nodes): move InvocationConfig to baseinvocation.py
This commit is contained in:
parent
07e3a0ec15
commit
1f2c1e14db
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from inspect import signature
|
from inspect import signature
|
||||||
from typing import get_args, get_type_hints
|
from typing import get_args, get_type_hints, Dict, List, Literal, TypedDict
|
||||||
|
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
@ -76,3 +76,56 @@ class BaseInvocation(ABC, BaseModel):
|
|||||||
#fmt: off
|
#fmt: off
|
||||||
id: str = Field(description="The id of this node. Must be unique among all nodes.")
|
id: str = Field(description="The id of this node. Must be unique among all nodes.")
|
||||||
#fmt: on
|
#fmt: on
|
||||||
|
|
||||||
|
|
||||||
|
# TODO: figure out a better way to provide these hints
|
||||||
|
# TODO: when we can upgrade to python 3.11, we can use the`NotRequired` type instead of `total=False`
|
||||||
|
class UIConfig(TypedDict, total=False):
|
||||||
|
type_hints: Dict[
|
||||||
|
str,
|
||||||
|
Literal[
|
||||||
|
"integer",
|
||||||
|
"float",
|
||||||
|
"boolean",
|
||||||
|
"string",
|
||||||
|
"enum",
|
||||||
|
"image",
|
||||||
|
"latents",
|
||||||
|
"model",
|
||||||
|
],
|
||||||
|
]
|
||||||
|
tags: List[str]
|
||||||
|
|
||||||
|
|
||||||
|
class CustomisedSchemaExtra(TypedDict):
|
||||||
|
ui: UIConfig
|
||||||
|
|
||||||
|
|
||||||
|
class InvocationConfig(BaseModel.Config):
|
||||||
|
"""Customizes pydantic's BaseModel.Config class for use by Invocations.
|
||||||
|
|
||||||
|
Provide `schema_extra` a `ui` dict to add hints for generated UIs.
|
||||||
|
|
||||||
|
`tags`
|
||||||
|
- A list of strings, used to categorise invocations.
|
||||||
|
|
||||||
|
`type_hints`
|
||||||
|
- A dict of field types which override the types in the invocation definition.
|
||||||
|
- Each key should be the name of one of the invocation's fields.
|
||||||
|
- Each value should be one of the valid types:
|
||||||
|
- `integer`, `float`, `boolean`, `string`, `enum`, `image`, `latents`, `model`
|
||||||
|
|
||||||
|
```python
|
||||||
|
class Config(InvocationConfig):
|
||||||
|
schema_extra = {
|
||||||
|
"ui": {
|
||||||
|
"tags": ["stable-diffusion", "image"],
|
||||||
|
"type_hints": {
|
||||||
|
"initial_image": "image",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
```
|
||||||
|
"""
|
||||||
|
|
||||||
|
schema_extra: CustomisedSchemaExtra
|
||||||
|
@ -6,10 +6,9 @@ import cv2 as cv
|
|||||||
import numpy
|
import numpy
|
||||||
from PIL import Image, ImageOps
|
from PIL import Image, ImageOps
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
from invokeai.app.invocations.models.config import InvocationConfig
|
|
||||||
|
|
||||||
from invokeai.app.models.image import ImageField, ImageType
|
from invokeai.app.models.image import ImageField, ImageType
|
||||||
from .baseinvocation import BaseInvocation, InvocationContext
|
from .baseinvocation import BaseInvocation, InvocationContext, InvocationConfig
|
||||||
from .image import ImageOutput
|
from .image import ImageOutput
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,13 +7,10 @@ import numpy as np
|
|||||||
from torch import Tensor
|
from torch import Tensor
|
||||||
|
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
from invokeai.app.invocations.models.config import (
|
|
||||||
InvocationConfig,
|
|
||||||
)
|
|
||||||
|
|
||||||
from invokeai.app.models.image import ImageField, ImageType
|
from invokeai.app.models.image import ImageField, ImageType
|
||||||
from invokeai.app.invocations.util.get_model import choose_model
|
from invokeai.app.invocations.util.get_model import choose_model
|
||||||
from .baseinvocation import BaseInvocation, InvocationContext
|
from .baseinvocation import BaseInvocation, InvocationContext, InvocationConfig
|
||||||
from .image import ImageOutput
|
from .image import ImageOutput
|
||||||
from ...backend.generator import Txt2Img, Img2Img, Inpaint, InvokeAIGenerator
|
from ...backend.generator import Txt2Img, Img2Img, Inpaint, InvokeAIGenerator
|
||||||
from ...backend.stable_diffusion import PipelineIntermediateState
|
from ...backend.stable_diffusion import PipelineIntermediateState
|
||||||
|
@ -7,11 +7,9 @@ import numpy
|
|||||||
from PIL import Image, ImageFilter, ImageOps
|
from PIL import Image, ImageFilter, ImageOps
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
from invokeai.app.invocations.models.config import InvocationConfig
|
|
||||||
|
|
||||||
from ..models.image import ImageField, ImageType
|
from ..models.image import ImageField, ImageType
|
||||||
from ..services.invocation_services import InvocationServices
|
from ..services.invocation_services import InvocationServices
|
||||||
from .baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationContext
|
from .baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationContext, InvocationConfig
|
||||||
|
|
||||||
|
|
||||||
class PILInvocationConfig(BaseModel):
|
class PILInvocationConfig(BaseModel):
|
||||||
|
@ -4,7 +4,6 @@ from typing import Literal, Optional
|
|||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
import torch
|
import torch
|
||||||
|
|
||||||
from invokeai.app.invocations.models.config import InvocationConfig
|
|
||||||
from invokeai.app.models.exceptions import CanceledException
|
from invokeai.app.models.exceptions import CanceledException
|
||||||
from invokeai.app.invocations.util.get_model import choose_model
|
from invokeai.app.invocations.util.get_model import choose_model
|
||||||
from invokeai.app.util.step_callback import diffusers_step_callback_adapter
|
from invokeai.app.util.step_callback import diffusers_step_callback_adapter
|
||||||
@ -15,7 +14,7 @@ from ...backend.stable_diffusion.diffusion.shared_invokeai_diffusion import Post
|
|||||||
from ...backend.image_util.seamless import configure_model_padding
|
from ...backend.image_util.seamless import configure_model_padding
|
||||||
from ...backend.prompting.conditioning import get_uc_and_c_and_ec
|
from ...backend.prompting.conditioning import get_uc_and_c_and_ec
|
||||||
from ...backend.stable_diffusion.diffusers_pipeline import ConditioningData, StableDiffusionGeneratorPipeline
|
from ...backend.stable_diffusion.diffusers_pipeline import ConditioningData, StableDiffusionGeneratorPipeline
|
||||||
from .baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationContext
|
from .baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationContext, InvocationConfig
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from ..services.image_storage import ImageType
|
from ..services.image_storage import ImageType
|
||||||
from .baseinvocation import BaseInvocation, InvocationContext
|
from .baseinvocation import BaseInvocation, InvocationContext
|
||||||
|
@ -4,9 +4,7 @@ from typing import Literal
|
|||||||
|
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
from invokeai.app.invocations.models.config import InvocationConfig
|
from .baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationContext, InvocationConfig
|
||||||
|
|
||||||
from .baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationContext
|
|
||||||
|
|
||||||
|
|
||||||
class MathInvocationConfig(BaseModel):
|
class MathInvocationConfig(BaseModel):
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
from typing import Dict, List, Literal, TypedDict
|
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
|
|
||||||
# TODO: when we can upgrade to python 3.11, we can use the`NotRequired` type instead of `total=False`
|
|
||||||
class UIConfig(TypedDict, total=False):
|
|
||||||
type_hints: Dict[
|
|
||||||
str,
|
|
||||||
Literal[
|
|
||||||
"integer",
|
|
||||||
"float",
|
|
||||||
"boolean",
|
|
||||||
"string",
|
|
||||||
"enum",
|
|
||||||
"image",
|
|
||||||
"latents",
|
|
||||||
"model",
|
|
||||||
],
|
|
||||||
]
|
|
||||||
tags: List[str]
|
|
||||||
|
|
||||||
|
|
||||||
class CustomisedSchemaExtra(TypedDict):
|
|
||||||
ui: UIConfig
|
|
||||||
|
|
||||||
|
|
||||||
class InvocationConfig(BaseModel.Config):
|
|
||||||
"""Customizes pydantic's BaseModel.Config class for use by Invocations.
|
|
||||||
|
|
||||||
Provide `schema_extra` a `ui` dict to add hints for generated UIs.
|
|
||||||
|
|
||||||
`tags`
|
|
||||||
- A list of strings, used to categorise invocations.
|
|
||||||
|
|
||||||
`type_hints`
|
|
||||||
- A dict of field types which override the types in the invocation definition.
|
|
||||||
- Each key should be the name of one of the invocation's fields.
|
|
||||||
- Each value should be one of the valid types:
|
|
||||||
- `integer`, `float`, `boolean`, `string`, `enum`, `image`, `latents`, `model`
|
|
||||||
|
|
||||||
```python
|
|
||||||
class Config(InvocationConfig):
|
|
||||||
schema_extra = {
|
|
||||||
"ui": {
|
|
||||||
"tags": ["stable-diffusion", "image"],
|
|
||||||
"type_hints": {
|
|
||||||
"initial_image": "image",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
```
|
|
||||||
"""
|
|
||||||
|
|
||||||
schema_extra: CustomisedSchemaExtra
|
|
@ -2,11 +2,10 @@ from datetime import datetime, timezone
|
|||||||
from typing import Literal, Union
|
from typing import Literal, Union
|
||||||
|
|
||||||
from pydantic import Field
|
from pydantic import Field
|
||||||
from invokeai.app.invocations.models.config import InvocationConfig
|
|
||||||
|
|
||||||
from invokeai.app.models.image import ImageField, ImageType
|
from invokeai.app.models.image import ImageField, ImageType
|
||||||
from ..services.invocation_services import InvocationServices
|
from ..services.invocation_services import InvocationServices
|
||||||
from .baseinvocation import BaseInvocation, InvocationContext
|
from .baseinvocation import BaseInvocation, InvocationContext, InvocationConfig
|
||||||
from .image import ImageOutput
|
from .image import ImageOutput
|
||||||
|
|
||||||
class RestoreFaceInvocation(BaseInvocation):
|
class RestoreFaceInvocation(BaseInvocation):
|
||||||
|
@ -4,11 +4,10 @@ from datetime import datetime, timezone
|
|||||||
from typing import Literal, Union
|
from typing import Literal, Union
|
||||||
|
|
||||||
from pydantic import Field
|
from pydantic import Field
|
||||||
from invokeai.app.invocations.models.config import InvocationConfig
|
|
||||||
|
|
||||||
from invokeai.app.models.image import ImageField, ImageType
|
from invokeai.app.models.image import ImageField, ImageType
|
||||||
from ..services.invocation_services import InvocationServices
|
from ..services.invocation_services import InvocationServices
|
||||||
from .baseinvocation import BaseInvocation, InvocationContext
|
from .baseinvocation import BaseInvocation, InvocationContext, InvocationConfig
|
||||||
from .image import ImageOutput
|
from .image import ImageOutput
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user