Skip to content

Commit f1c195a

Browse files
author
Lincoln Stein
committed
Merge branch 'main' into refactor/model-manager-2
2 parents 3b363d0 + d7f0a79 commit f1c195a

29 files changed

Lines changed: 995 additions & 1382 deletions

File tree

docs/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ The list of schedulers has been completely revamped and brought up to date:
198198
| **dpmpp_2m** | DPMSolverMultistepScheduler | original noise scnedule |
199199
| **dpmpp_2m_k** | DPMSolverMultistepScheduler | using karras noise schedule |
200200
| **unipc** | UniPCMultistepScheduler | CPU only |
201+
| **lcm** | LCMScheduler | |
201202

202203
Please see [3.0.0 Release Notes](https://github.com/invoke-ai/InvokeAI/releases/tag/v3.0.0) for further details.
203204

invokeai/app/api/sockets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ async def _handle_sub_queue(self, sid, data, *args, **kwargs):
3434

3535
async def _handle_unsub_queue(self, sid, data, *args, **kwargs):
3636
if "queue_id" in data:
37-
await self.__sio.enter_room(sid, data["queue_id"])
37+
await self.__sio.leave_room(sid, data["queue_id"])

invokeai/app/invocations/baseinvocation.py

Lines changed: 1 addition & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from pydantic_core import PydanticUndefined
1717

1818
from invokeai.app.services.config.config_default import InvokeAIAppConfig
19+
from invokeai.app.shared.fields import FieldDescriptions
1920
from invokeai.app.util.misc import uuid_string
2021

2122
if TYPE_CHECKING:
@@ -30,74 +31,6 @@ class InvalidFieldError(TypeError):
3031
pass
3132

3233

33-
class FieldDescriptions:
34-
denoising_start = "When to start denoising, expressed a percentage of total steps"
35-
denoising_end = "When to stop denoising, expressed a percentage of total steps"
36-
cfg_scale = "Classifier-Free Guidance scale"
37-
scheduler = "Scheduler to use during inference"
38-
positive_cond = "Positive conditioning tensor"
39-
negative_cond = "Negative conditioning tensor"
40-
noise = "Noise tensor"
41-
clip = "CLIP (tokenizer, text encoder, LoRAs) and skipped layer count"
42-
unet = "UNet (scheduler, LoRAs)"
43-
vae = "VAE"
44-
cond = "Conditioning tensor"
45-
controlnet_model = "ControlNet model to load"
46-
vae_model = "VAE model to load"
47-
lora_model = "LoRA model to load"
48-
main_model = "Main model (UNet, VAE, CLIP) to load"
49-
sdxl_main_model = "SDXL Main model (UNet, VAE, CLIP1, CLIP2) to load"
50-
sdxl_refiner_model = "SDXL Refiner Main Modde (UNet, VAE, CLIP2) to load"
51-
onnx_main_model = "ONNX Main model (UNet, VAE, CLIP) to load"
52-
lora_weight = "The weight at which the LoRA is applied to each model"
53-
compel_prompt = "Prompt to be parsed by Compel to create a conditioning tensor"
54-
raw_prompt = "Raw prompt text (no parsing)"
55-
sdxl_aesthetic = "The aesthetic score to apply to the conditioning tensor"
56-
skipped_layers = "Number of layers to skip in text encoder"
57-
seed = "Seed for random number generation"
58-
steps = "Number of steps to run"
59-
width = "Width of output (px)"
60-
height = "Height of output (px)"
61-
control = "ControlNet(s) to apply"
62-
ip_adapter = "IP-Adapter to apply"
63-
t2i_adapter = "T2I-Adapter(s) to apply"
64-
denoised_latents = "Denoised latents tensor"
65-
latents = "Latents tensor"
66-
strength = "Strength of denoising (proportional to steps)"
67-
metadata = "Optional metadata to be saved with the image"
68-
metadata_collection = "Collection of Metadata"
69-
metadata_item_polymorphic = "A single metadata item or collection of metadata items"
70-
metadata_item_label = "Label for this metadata item"
71-
metadata_item_value = "The value for this metadata item (may be any type)"
72-
workflow = "Optional workflow to be saved with the image"
73-
interp_mode = "Interpolation mode"
74-
torch_antialias = "Whether or not to apply antialiasing (bilinear or bicubic only)"
75-
fp32 = "Whether or not to use full float32 precision"
76-
precision = "Precision to use"
77-
tiled = "Processing using overlapping tiles (reduce memory consumption)"
78-
detect_res = "Pixel resolution for detection"
79-
image_res = "Pixel resolution for output image"
80-
safe_mode = "Whether or not to use safe mode"
81-
scribble_mode = "Whether or not to use scribble mode"
82-
scale_factor = "The factor by which to scale"
83-
blend_alpha = (
84-
"Blending factor. 0.0 = use input A only, 1.0 = use input B only, 0.5 = 50% mix of input A and input B."
85-
)
86-
num_1 = "The first number"
87-
num_2 = "The second number"
88-
mask = "The mask to use for the operation"
89-
board = "The board to save the image to"
90-
image = "The image to process"
91-
tile_size = "Tile size"
92-
inclusive_low = "The inclusive low value"
93-
exclusive_high = "The exclusive high value"
94-
decimal_places = "The number of decimal places to round to"
95-
freeu_s1 = 'Scaling factor for stage 1 to attenuate the contributions of the skip features. This is done to mitigate the "oversmoothing effect" in the enhanced denoising process.'
96-
freeu_s2 = 'Scaling factor for stage 2 to attenuate the contributions of the skip features. This is done to mitigate the "oversmoothing effect" in the enhanced denoising process.'
97-
freeu_b1 = "Scaling factor for stage 1 to amplify the contributions of backbone features."
98-
freeu_b2 = "Scaling factor for stage 2 to amplify the contributions of backbone features."
99-
100-
10134
class Input(str, Enum):
10235
"""
10336
The type of input a field accepts.

invokeai/app/invocations/compel.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from compel.prompt_parser import Blend, Conjunction, CrossAttentionControlSubstitute, FlattenedPrompt, Fragment
88

99
from invokeai.app.invocations.primitives import ConditioningField, ConditioningOutput
10+
from invokeai.app.shared.fields import FieldDescriptions
1011
from invokeai.backend.stable_diffusion.diffusion.conditioning_data import (
1112
BasicConditioningInfo,
1213
ExtraConditioningInfo,
@@ -19,7 +20,6 @@
1920
from .baseinvocation import (
2021
BaseInvocation,
2122
BaseInvocationOutput,
22-
FieldDescriptions,
2323
Input,
2424
InputField,
2525
InvocationContext,

invokeai/app/invocations/controlnet_image_processors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828

2929
from invokeai.app.invocations.primitives import ImageField, ImageOutput
3030
from invokeai.app.services.image_records.image_records_common import ImageCategory, ResourceOrigin
31+
from invokeai.app.shared.fields import FieldDescriptions
3132

3233
from ...backend.model_management import BaseModelType
3334
from .baseinvocation import (
3435
BaseInvocation,
3536
BaseInvocationOutput,
36-
FieldDescriptions,
3737
Input,
3838
InputField,
3939
InvocationContext,

invokeai/app/invocations/image.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,11 @@
99

1010
from invokeai.app.invocations.primitives import BoardField, ColorField, ImageField, ImageOutput
1111
from invokeai.app.services.image_records.image_records_common import ImageCategory, ResourceOrigin
12+
from invokeai.app.shared.fields import FieldDescriptions
1213
from invokeai.backend.image_util.invisible_watermark import InvisibleWatermark
1314
from invokeai.backend.image_util.safety_checker import SafetyChecker
1415

15-
from .baseinvocation import (
16-
BaseInvocation,
17-
FieldDescriptions,
18-
Input,
19-
InputField,
20-
InvocationContext,
21-
WithMetadata,
22-
WithWorkflow,
23-
invocation,
24-
)
16+
from .baseinvocation import BaseInvocation, Input, InputField, InvocationContext, WithMetadata, WithWorkflow, invocation
2517

2618

2719
@invocation("show_image", title="Show Image", tags=["image"], category="image", version="1.0.0")

invokeai/app/invocations/ip_adapter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from invokeai.app.invocations.baseinvocation import (
88
BaseInvocation,
99
BaseInvocationOutput,
10-
FieldDescriptions,
1110
Input,
1211
InputField,
1312
InvocationContext,
@@ -17,6 +16,7 @@
1716
invocation_output,
1817
)
1918
from invokeai.app.invocations.primitives import ImageField
19+
from invokeai.app.shared.fields import FieldDescriptions
2020
from invokeai.backend.model_management.models.base import BaseModelType, ModelType
2121
from invokeai.backend.model_management.models.ip_adapter import get_ip_adapter_image_encoder_model_id
2222

invokeai/app/invocations/latent.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import torchvision.transforms as T
1111
from diffusers import AutoencoderKL, AutoencoderTiny
1212
from diffusers.image_processor import VaeImageProcessor
13-
from diffusers.models.adapter import FullAdapterXL, T2IAdapter
13+
from diffusers.models.adapter import T2IAdapter
1414
from diffusers.models.attention_processor import (
1515
AttnProcessor2_0,
1616
LoRAAttnProcessor2_0,
@@ -34,6 +34,7 @@
3434
)
3535
from invokeai.app.invocations.t2i_adapter import T2IAdapterField
3636
from invokeai.app.services.image_records.image_records_common import ImageCategory, ResourceOrigin
37+
from invokeai.app.shared.fields import FieldDescriptions
3738
from invokeai.app.util.controlnet_utils import prepare_control_image
3839
from invokeai.app.util.step_callback import stable_diffusion_step_callback
3940
from invokeai.backend.ip_adapter.ip_adapter import IPAdapter, IPAdapterPlus
@@ -57,7 +58,6 @@
5758
from .baseinvocation import (
5859
BaseInvocation,
5960
BaseInvocationOutput,
60-
FieldDescriptions,
6161
Input,
6262
InputField,
6363
InvocationContext,
@@ -562,10 +562,6 @@ def run_t2i_adapters(
562562
t2i_adapter_model: T2IAdapter
563563
with t2i_adapter_model_info as t2i_adapter_model:
564564
total_downscale_factor = t2i_adapter_model.total_downscale_factor
565-
if isinstance(t2i_adapter_model.adapter, FullAdapterXL):
566-
# HACK(ryand): Work around a bug in FullAdapterXL. This is being addressed upstream in diffusers by
567-
# this PR: https://github.com/huggingface/diffusers/pull/5134.
568-
total_downscale_factor = total_downscale_factor // 2
569565

570566
# Resize the T2I-Adapter input image.
571567
# We select the resize dimensions so that after the T2I-Adapter's total_downscale_factor is applied, the

invokeai/app/invocations/math.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
from pydantic import ValidationInfo, field_validator
77

88
from invokeai.app.invocations.primitives import FloatOutput, IntegerOutput
9+
from invokeai.app.shared.fields import FieldDescriptions
910

10-
from .baseinvocation import BaseInvocation, FieldDescriptions, InputField, InvocationContext, invocation
11+
from .baseinvocation import BaseInvocation, InputField, InvocationContext, invocation
1112

1213

1314
@invocation("add", title="Add Integers", tags=["math", "add"], category="math", version="1.0.0")

invokeai/app/invocations/metadata.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from invokeai.app.invocations.baseinvocation import (
66
BaseInvocation,
77
BaseInvocationOutput,
8-
FieldDescriptions,
98
InputField,
109
InvocationContext,
1110
MetadataField,
@@ -19,6 +18,7 @@
1918
from invokeai.app.invocations.model import LoRAModelField, MainModelField, VAEModelField
2019
from invokeai.app.invocations.primitives import ImageField
2120
from invokeai.app.invocations.t2i_adapter import T2IAdapterField
21+
from invokeai.app.shared.fields import FieldDescriptions
2222

2323
from ...version import __version__
2424

0 commit comments

Comments
 (0)