InvokeAI 4.2.9.dev5__py3-none-any.whl → 4.2.9.dev6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: InvokeAI
3
- Version: 4.2.9.dev5
3
+ Version: 4.2.9.dev6
4
4
  Summary: An implementation of Stable Diffusion which provides various new features and options to aid the image generation process
5
5
  Author-email: The InvokeAI Project <lincoln.stein@gmail.com>
6
6
  License: Apache License
@@ -16,7 +16,7 @@ invokeai/app/api/routers/utilities.py,sha256=ohGZhpDzRF4X_3qpUpYUEe0bAB0VFhmcjs1
16
16
  invokeai/app/api/routers/workflows.py,sha256=7rFCCi9lRL70bD8cmwrGWDFLIe9DD-Y9AjNYIp_enjY,3298
17
17
  invokeai/app/assets/images/caution.png,sha256=wxzdQg0_d7Wl4YcsGWPA5UzveRnvRtRpq8NQxJx8fLE,34023
18
18
  invokeai/app/invocations/__init__.py,sha256=CLBsJlbFAivZkonWYZDt5EPLkr9MmW33gfun1F5zR6s,1244
19
- invokeai/app/invocations/baseinvocation.py,sha256=z9ZPNm2LkBGZ5vbZ7kb_sST8dLhUk6M3ZVtQrljXqNU,22619
19
+ invokeai/app/invocations/baseinvocation.py,sha256=Oo65GQHQ3jhMM23Dc-ZAzT2QbV4TfaWtYzOWnv_Txs8,22190
20
20
  invokeai/app/invocations/blend_latents.py,sha256=cSBnqT2vvxyztACxaZsguMqwIDEeC0VyZYNTdS1OtI8,3829
21
21
  invokeai/app/invocations/collections.py,sha256=qZyShdUplRs5KxxDRTYuJoHUofFEMKyoa6pWgInUGAY,3060
22
22
  invokeai/app/invocations/compel.py,sha256=IPbvSvPHWuy6AFcC8dgtMJIFd9mkWmt9fcu2HyMvTdc,19857
@@ -391,12 +391,12 @@ invokeai/frontend/cli/arg_parser.py,sha256=6_y2ZB0iDmMvy2b_MJRWSdlqW1hToptmOoFl0
391
391
  invokeai/frontend/install/__init__.py,sha256=aAlRfyPocCx3Bm7NRB2I3Y_88Ug5omU4M5thFiNaw1A,57
392
392
  invokeai/frontend/install/import_images.py,sha256=wddGRowy3HQGEnRHTGAkOA1fhzPz9qT4IbGoZqX9xlc,34417
393
393
  invokeai/frontend/web/__init__.py,sha256=H4ye3hqaqVMEuzTnUNGeYBSHDhYLDcUWzS1XOr1zUWw,54
394
- invokeai/frontend/web/dist/index.html,sha256=KIjX7JDBV3ye8BUtMTEowugflMpSdJgV0BRUWNM9m2I,682
394
+ invokeai/frontend/web/dist/index.html,sha256=dJ00ulTGW5TT7iQb1R4dqmAzB7r5wKTMptXs-MGUWhQ,682
395
395
  invokeai/frontend/web/dist/assets/App-DEu4J2pT.css,sha256=HLO_vKmG5ANNQg2BEeOD8KYUvV8sL3rH0i2S1Cwe4T0,7322
396
- invokeai/frontend/web/dist/assets/App-DY31F4eS.js,sha256=GJBme6ZtF6Atu3bCKJi_xzdORbJy3OrRY8CmEOUgfR8,719437
396
+ invokeai/frontend/web/dist/assets/App-vCM7oRzD.js,sha256=Oxjdx7IcEqkMmrd9aDGQGTlviXRHP4UrJZd5HeOOvoQ,761872
397
397
  invokeai/frontend/web/dist/assets/ThemeLocaleProvider-B2NxUfIp.css,sha256=AX2miGfzdvzaNF5JUMZdLSevO2nzgbeG8CvPMIBzQMs,15298
398
- invokeai/frontend/web/dist/assets/ThemeLocaleProvider-CHTCW1Vd.js,sha256=eivjPxcujNBPO5GQvX6YuAg424YNhvgjtoQ_632WNjA,605
399
- invokeai/frontend/web/dist/assets/index-DL1l-JWO.js,sha256=yzIcmZRy5mnVvvwm6BittvhAeAKfwZ005dUivabQ8xQ,2143805
398
+ invokeai/frontend/web/dist/assets/ThemeLocaleProvider-C04frtGG.js,sha256=gB1QS3v_1_X0eIY6fq13Tjqxe8jXC6PMVdMKnwhHgrE,605
399
+ invokeai/frontend/web/dist/assets/index-do3ah3Ti.js,sha256=1B217FN8GdLorVebezYTLq8d5Z9hIb5Voe4Dcsx1h_w,2144807
400
400
  invokeai/frontend/web/dist/assets/inter-cyrillic-ext-wght-normal-B2xhLi22.woff2,sha256=wpY9x2Wg6ArPJplunuyuJEXzN4PVPGFdwBSovnKqwXA,25888
401
401
  invokeai/frontend/web/dist/assets/inter-cyrillic-wght-normal-CMZtQduZ.woff2,sha256=YswB2u9yw-p2olhEU2jS9KuNBakfkcU_0S98QuMyWUI,18740
402
402
  invokeai/frontend/web/dist/assets/inter-greek-ext-wght-normal-CGAr0uHJ.woff2,sha256=akF8_kBanIieL9Y6ZyibhaaIaBwPpk8SFedKwUcaNv4,11200
@@ -431,7 +431,7 @@ invokeai/frontend/web/dist/locales/ar.json,sha256=tfE9ecaXVwPjLe6RK1WxypBPJnjiw2
431
431
  invokeai/frontend/web/dist/locales/az.json,sha256=gssN5Q1lHAHJQj4-qvjg6dP3Sh-ZPNb6pb6FLE7xTxk,62
432
432
  invokeai/frontend/web/dist/locales/bg.json,sha256=BlR-CNtSfdYBxKpPNry8czGAHryF1kqC64CEft-nk7w,2797
433
433
  invokeai/frontend/web/dist/locales/de.json,sha256=I0a4pKjvNYVFBB92rg9_vxhjpLZiBvAffpCNlsNtBdo,53387
434
- invokeai/frontend/web/dist/locales/en.json,sha256=1BAr9rFlHt0QOdT0GcWJuaFqHpSg-6ktvCQnlZN3ZaU,85543
434
+ invokeai/frontend/web/dist/locales/en.json,sha256=YEG6vFNmGK7Xmvh1IqKi5T9QzQ0psd11j2ji-HXzD2k,85629
435
435
  invokeai/frontend/web/dist/locales/es.json,sha256=cM0Y11TD3yagTWW-UEWNsl3UJSczQ9sjXtYKYzdAh1Y,28050
436
436
  invokeai/frontend/web/dist/locales/fi.json,sha256=m3l-thXyvRoGIeRbo99AziHPhx5nkcpQEiELOHGeqrc,1725
437
437
  invokeai/frontend/web/dist/locales/fr.json,sha256=8iUSmE3g44tFPiOw6sjLbK2ZMHksvIaHzU-FXwCorbs,19666
@@ -457,12 +457,12 @@ invokeai/frontend/web/scripts/clean_translations.py,sha256=-3KLLgb8fvvp0yglxKIkj
457
457
  invokeai/frontend/web/static/docs/invoke-favicon-docs.svg,sha256=2DfWaNhjgplnQK8V79yXjQ34JDCk94ZPH29CiTk90y8,779
458
458
  invokeai/invocation_api/__init__.py,sha256=PJgu7yu-0hukEyAHOm0sfw4kPZ2OvbAnXI6n7NtIt4A,5339
459
459
  invokeai/version/__init__.py,sha256=22G4uBmmfLuldDclGKINkVS-rgPfNFQUJH_ag8m_OcM,529
460
- invokeai/version/invokeai_version.py,sha256=Ka_f4-2HOmNKxxozrK096OChralMNFdgh5fdnbLj2XM,27
461
- InvokeAI-4.2.9.dev5.dist-info/LICENSE,sha256=OTAVifLLp_QCl8faBcfl0WT3BMqpeWZbEXw1MgPJzwM,10146
462
- InvokeAI-4.2.9.dev5.dist-info/LICENSE-SD1+SD2.txt,sha256=GbsztR5dRQiKsmF33NYkGL-GFJhSc2oG9gQPwzo-7Tg,14555
463
- InvokeAI-4.2.9.dev5.dist-info/LICENSE-SDXL.txt,sha256=JV_wPIqRG79iLCB8HrwY1J8jBimjUblcUxfnDbUMaqs,14213
464
- InvokeAI-4.2.9.dev5.dist-info/METADATA,sha256=qLXHW8qeDihlx9n4lOngL_u6DjdSOScoFOCBxUkz-1o,27028
465
- InvokeAI-4.2.9.dev5.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
466
- InvokeAI-4.2.9.dev5.dist-info/entry_points.txt,sha256=LCFZSg_rueHvY38L2CPqClMIlBIkCf3LCd564kgtzkw,200
467
- InvokeAI-4.2.9.dev5.dist-info/top_level.txt,sha256=69I61eoKb6LXiuo6Zz2l_6lhY1eRGBCqP8i9SMqp9Gg,9
468
- InvokeAI-4.2.9.dev5.dist-info/RECORD,,
460
+ invokeai/version/invokeai_version.py,sha256=eLcXaMDVPdF7m5asu7K0mWTmhSTllSeAwbCOI4wG6qw,27
461
+ InvokeAI-4.2.9.dev6.dist-info/LICENSE,sha256=OTAVifLLp_QCl8faBcfl0WT3BMqpeWZbEXw1MgPJzwM,10146
462
+ InvokeAI-4.2.9.dev6.dist-info/LICENSE-SD1+SD2.txt,sha256=GbsztR5dRQiKsmF33NYkGL-GFJhSc2oG9gQPwzo-7Tg,14555
463
+ InvokeAI-4.2.9.dev6.dist-info/LICENSE-SDXL.txt,sha256=JV_wPIqRG79iLCB8HrwY1J8jBimjUblcUxfnDbUMaqs,14213
464
+ InvokeAI-4.2.9.dev6.dist-info/METADATA,sha256=AYyOdJ0bgzK5r-pSzEb8VnpXtqJ9RG3YMeNbn2_apjs,27028
465
+ InvokeAI-4.2.9.dev6.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
466
+ InvokeAI-4.2.9.dev6.dist-info/entry_points.txt,sha256=LCFZSg_rueHvY38L2CPqClMIlBIkCf3LCd564kgtzkw,200
467
+ InvokeAI-4.2.9.dev6.dist-info/top_level.txt,sha256=69I61eoKb6LXiuo6Zz2l_6lhY1eRGBCqP8i9SMqp9Gg,9
468
+ InvokeAI-4.2.9.dev6.dist-info/RECORD,,
@@ -20,7 +20,6 @@ from typing import (
20
20
  Type,
21
21
  TypeVar,
22
22
  Union,
23
- cast,
24
23
  )
25
24
 
26
25
  import semver
@@ -80,7 +79,7 @@ class UIConfigBase(BaseModel):
80
79
  version: str = Field(
81
80
  description='The node\'s version. Should be a valid semver string e.g. "1.0.0" or "3.8.13".',
82
81
  )
83
- node_pack: Optional[str] = Field(default=None, description="Whether or not this is a custom node")
82
+ node_pack: str = Field(description="The node pack that this node belongs to, will be 'invokeai' for built-in nodes")
84
83
  classification: Classification = Field(default=Classification.Stable, description="The node's classification")
85
84
 
86
85
  model_config = ConfigDict(
@@ -230,18 +229,16 @@ class BaseInvocation(ABC, BaseModel):
230
229
  @staticmethod
231
230
  def json_schema_extra(schema: dict[str, Any], model_class: Type[BaseInvocation]) -> None:
232
231
  """Adds various UI-facing attributes to the invocation's OpenAPI schema."""
233
- uiconfig = cast(UIConfigBase | None, getattr(model_class, "UIConfig", None))
234
- if uiconfig is not None:
235
- if uiconfig.title is not None:
236
- schema["title"] = uiconfig.title
237
- if uiconfig.tags is not None:
238
- schema["tags"] = uiconfig.tags
239
- if uiconfig.category is not None:
240
- schema["category"] = uiconfig.category
241
- if uiconfig.node_pack is not None:
242
- schema["node_pack"] = uiconfig.node_pack
243
- schema["classification"] = uiconfig.classification
244
- schema["version"] = uiconfig.version
232
+ if title := model_class.UIConfig.title:
233
+ schema["title"] = title
234
+ if tags := model_class.UIConfig.tags:
235
+ schema["tags"] = tags
236
+ if category := model_class.UIConfig.category:
237
+ schema["category"] = category
238
+ if node_pack := model_class.UIConfig.node_pack:
239
+ schema["node_pack"] = node_pack
240
+ schema["classification"] = model_class.UIConfig.classification
241
+ schema["version"] = model_class.UIConfig.version
245
242
  if "required" not in schema or not isinstance(schema["required"], list):
246
243
  schema["required"] = []
247
244
  schema["class"] = "invocation"
@@ -312,7 +309,7 @@ class BaseInvocation(ABC, BaseModel):
312
309
  json_schema_extra={"field_kind": FieldKind.NodeAttribute},
313
310
  )
314
311
 
315
- UIConfig: ClassVar[Type[UIConfigBase]]
312
+ UIConfig: ClassVar[UIConfigBase]
316
313
 
317
314
  model_config = ConfigDict(
318
315
  protected_namespaces=(),
@@ -441,30 +438,25 @@ def invocation(
441
438
  validate_fields(cls.model_fields, invocation_type)
442
439
 
443
440
  # Add OpenAPI schema extras
444
- uiconfig_name = cls.__qualname__ + ".UIConfig"
445
- if not hasattr(cls, "UIConfig") or cls.UIConfig.__qualname__ != uiconfig_name:
446
- cls.UIConfig = type(uiconfig_name, (UIConfigBase,), {})
447
- cls.UIConfig.title = title
448
- cls.UIConfig.tags = tags
449
- cls.UIConfig.category = category
450
- cls.UIConfig.classification = classification
451
-
452
- # Grab the node pack's name from the module name, if it's a custom node
453
- is_custom_node = cls.__module__.rsplit(".", 1)[0] == "invokeai.app.invocations"
454
- if is_custom_node:
455
- cls.UIConfig.node_pack = cls.__module__.split(".")[0]
456
- else:
457
- cls.UIConfig.node_pack = None
441
+ uiconfig: dict[str, Any] = {}
442
+ uiconfig["title"] = title
443
+ uiconfig["tags"] = tags
444
+ uiconfig["category"] = category
445
+ uiconfig["classification"] = classification
446
+ # The node pack is the module name - will be "invokeai" for built-in nodes
447
+ uiconfig["node_pack"] = cls.__module__.split(".")[0]
458
448
 
459
449
  if version is not None:
460
450
  try:
461
451
  semver.Version.parse(version)
462
452
  except ValueError as e:
463
453
  raise InvalidVersionError(f'Invalid version string for node "{invocation_type}": "{version}"') from e
464
- cls.UIConfig.version = version
454
+ uiconfig["version"] = version
465
455
  else:
466
456
  logger.warn(f'No version specified for node "{invocation_type}", using "1.0.0"')
467
- cls.UIConfig.version = "1.0.0"
457
+ uiconfig["version"] = "1.0.0"
458
+
459
+ cls.UIConfig = UIConfigBase(**uiconfig)
468
460
 
469
461
  if use_cache is not None:
470
462
  cls.model_fields["use_cache"].default = use_cache