From 0f49c0a16b2ac8ee6919053ae5dc1f4f0e81818b Mon Sep 17 00:00:00 2001 From: Alexander Eichhorn Date: Sun, 11 Oct 2026 02:53:24 +0200 Subject: [PATCH] feat(model-manager): load ComfyUI single-file T5-XXL encoders Identify t5xxl_fp16 / t5xxl_fp8_e4m3fn(_scaled) as T5 encoder checkpoints; refuse UMT5, non-XXL and int8/nvfp4/mxfp8 builds at install. fp8 builds keep their Linear weights in fp8 on capable GPUs (~4.9 instead of ~9.5 GB), always dequantized per forward. Share T5 config inference and the feed-forward dtype fix with the GGUF loader. --- .../03.Models/03.model-format-support.mdx | 10 +- .../03.Models/Local Models/flux-1.mdx | 3 + .../03.Models/Local Models/sd-3.mdx | 3 + .../text_encoder/flux_text_encoder.py | 3 +- .../backend/model_manager/configs/factory.py | 2 + .../configs/identification_utils.py | 40 ++ .../model_manager/configs/t5_encoder.py | 66 +++ .../model_manager/load/model_loaders/flux.py | 237 +++++----- invokeai/backend/t5/t5_encoder.py | 139 ++++++ invokeai/frontend/api/openapi.json | 185 ++++++++ invokeai/frontend/api/schema.ts | 113 ++++- .../test_t5_encoder_checkpoint_config.py | 178 ++++++++ .../load/state_dicts/t5xxl_fp16_comfy_keys.py | 30 ++ .../t5xxl_fp8_e4m3fn_comfy_keys.py | 28 ++ .../t5xxl_fp8_e4m3fn_scaled_comfy_keys.py | 36 ++ .../umt5_xxl_fp8_scaled_comfy_keys.py | 428 ++++++++++++++++++ .../model_manager/load/state_dicts/utils.py | 33 +- .../model_manager/load/test_t5_gguf_loader.py | 122 +---- .../load/test_t5_single_file_loader.py | 218 +++++++++ tests/backend/t5/test_t5_encoder.py | 131 ++++++ 20 files changed, 1750 insertions(+), 255 deletions(-) create mode 100644 invokeai/backend/t5/t5_encoder.py create mode 100644 tests/backend/model_manager/configs/test_t5_encoder_checkpoint_config.py create mode 100644 tests/backend/model_manager/load/state_dicts/t5xxl_fp16_comfy_keys.py create mode 100644 tests/backend/model_manager/load/state_dicts/t5xxl_fp8_e4m3fn_comfy_keys.py create mode 100644 tests/backend/model_manager/load/state_dicts/t5xxl_fp8_e4m3fn_scaled_comfy_keys.py create mode 100644 tests/backend/model_manager/load/state_dicts/umt5_xxl_fp8_scaled_comfy_keys.py create mode 100644 tests/backend/model_manager/load/test_t5_single_file_loader.py create mode 100644 tests/backend/t5/test_t5_encoder.py diff --git a/docs/src/content/docs/Users Guide/03.Models/03.model-format-support.mdx b/docs/src/content/docs/Users Guide/03.Models/03.model-format-support.mdx index f80f88c5c96..eb8716d1fdf 100644 --- a/docs/src/content/docs/Users Guide/03.Models/03.model-format-support.mdx +++ b/docs/src/content/docs/Users Guide/03.Models/03.model-format-support.mdx @@ -1,7 +1,7 @@ --- title: Model Format Support description: Which file formats and quantizations InvokeAI loads for every model family, text encoder, VAE and adapter. -lastUpdated: 2026-10-10 +lastUpdated: 2026-10-11 sidebar: order: 3 --- @@ -54,7 +54,7 @@ Ministral 3B encoder. Others are recognized by their layer names and fail, or mi | Encoder | Used by | Folder | Single file (bf16) | fp8 scaled | int8 | nvfp4 | GGUF | SDNQ | |---|---|---|---|---|---|---|---|---| -| T5-XXL | FLUX.1, SD 3 | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ (and bitsandbytes int8) | +| T5-XXL | FLUX.1, SD 3 | ✓ | ✓ | ✓ | R | R | ✓ | ✓ (and bitsandbytes int8) | | CLIP-L / CLIP-G | SD, SDXL, FLUX.1, SD 3 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | CLIP-L inside a FLUX.1 SDNQ pipeline | | Qwen3 0.6B / 4B / 8B | Z-Image, FLUX.2 Klein, Anima | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | Qwen3-VL 4B / 8B | Krea-2, Ideogram 4 | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | @@ -67,6 +67,12 @@ Ministral 3B encoder. Others are recognized by their layer names and fail, or mi | Gemma-4 12B | LTX-2 | ✓ (bf16 or int8) | ✗ | L | in the folder | L | ✗ | ✗ | | UMT5 | Wan 2.2 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | +The single-file T5-XXL builds are ComfyUI's `t5xxl_fp16`, `t5xxl_fp8_e4m3fn` and `t5xxl_fp8_e4m3fn_scaled`. The +fp8 builds keep their weights in fp8 on a GPU that can hold them, about 4.9 GB instead of about 9.5 GB. Prefer +`t5xxl_fp8_e4m3fn_scaled` over `t5xxl_fp8_e4m3fn`: the unscaled build stores every tensor in fp8, its layer norms +included, and its prompt embeddings stray measurably further from the full-precision encoder. Wan's UMT5 file looks +similar but is not a T5-XXL and is not recognized as one. + The Qwen3-VL GGUF encoder is the language model only; a separate `mmproj` vision file is refused, and split multi-part GGUFs have to be joined before installing. The Gemma-4 encoder installs only as a folder: its `config.json` and tokenizer files next to exactly one weight file, bf16 or int8. A standalone `.safetensors` file is diff --git a/docs/src/content/docs/Users Guide/03.Models/Local Models/flux-1.mdx b/docs/src/content/docs/Users Guide/03.Models/Local Models/flux-1.mdx index 14eea2ba68a..09ac1829776 100644 --- a/docs/src/content/docs/Users Guide/03.Models/Local Models/flux-1.mdx +++ b/docs/src/content/docs/Users Guide/03.Models/Local Models/flux-1.mdx @@ -71,6 +71,9 @@ components. Installing a starter model installs them as dependencies: | T5 encoder | bfloat16 (~9.5 GB), bitsandbytes int8 (~5 GB), GGUF Q6_K (~3.9 GB, near-lossless), GGUF Q3_K_S (~2.1 GB, lower quality) | | CLIP embed | `clip-vit-large-patch14` (~250 MB) | +You can also install the T5 encoder ComfyUI uses as a single file (`t5xxl_fp16`, or `t5xxl_fp8_e4m3fn_scaled` for +about half the VRAM) and select it here; see [Model Format Support](/users-guide/models/model-format-support/#text-encoders). + Select them in the **Components** section next to the model. The SDNQ pipeline carries its own encoders and VAE, so its component pickers stay empty. diff --git a/docs/src/content/docs/Users Guide/03.Models/Local Models/sd-3.mdx b/docs/src/content/docs/Users Guide/03.Models/Local Models/sd-3.mdx index 0cdf4949972..786cebfd140 100644 --- a/docs/src/content/docs/Users Guide/03.Models/Local Models/sd-3.mdx +++ b/docs/src/content/docs/Users Guide/03.Models/Local Models/sd-3.mdx @@ -58,6 +58,9 @@ you can replace any of them with a model you have installed separately: - **CLIP G** - **VAE**: only SD3 VAEs are offered +The T5 encoder can also be one of the single files ComfyUI uses: `t5xxl_fp16`, or `t5xxl_fp8_e4m3fn_scaled` for +about half the VRAM. + ## Generation settings When you select an SD3 model, InvokeAI applies these defaults, which come from the SD3.5 Medium diff --git a/invokeai/app/invocations/text_encoder/flux_text_encoder.py b/invokeai/app/invocations/text_encoder/flux_text_encoder.py index fab327fe710..3c0374d88e9 100644 --- a/invokeai/app/invocations/text_encoder/flux_text_encoder.py +++ b/invokeai/app/invocations/text_encoder/flux_text_encoder.py @@ -99,7 +99,8 @@ def _t5_encode(self, context: InvocationContext) -> torch.Tensor: # Determine if the model is quantized. # If the model is quantized, then we need to apply the LoRA weights as sidecar layers. This results in # slower inference than direct patching, but is agnostic to the quantization format. - if t5_encoder_config.format in [ModelFormat.T5Encoder, ModelFormat.Diffusers]: + # A single-file fp8 build may keep its Linear weights in float8; the patcher sidecars those itself. + if t5_encoder_config.format in [ModelFormat.T5Encoder, ModelFormat.Diffusers, ModelFormat.Checkpoint]: model_is_quantized = False elif t5_encoder_config.format in [ ModelFormat.BnbQuantizedLlmInt8b, diff --git a/invokeai/backend/model_manager/configs/factory.py b/invokeai/backend/model_manager/configs/factory.py index 9805cd34ef5..98f56f0e117 100644 --- a/invokeai/backend/model_manager/configs/factory.py +++ b/invokeai/backend/model_manager/configs/factory.py @@ -160,6 +160,7 @@ ) from invokeai.backend.model_manager.configs.t5_encoder import ( T5Encoder_BnBLLMint8_Config, + T5Encoder_Checkpoint_Config, T5Encoder_GGUF_Config, T5Encoder_SDNQ_Config, T5Encoder_T5Encoder_Config, @@ -527,6 +528,7 @@ def has_model_export(module: Any, name: Any, expected_bases: tuple[type, ...]) - Annotated[T5Encoder_BnBLLMint8_Config, T5Encoder_BnBLLMint8_Config.get_tag()], Annotated[T5Encoder_SDNQ_Config, T5Encoder_SDNQ_Config.get_tag()], Annotated[T5Encoder_GGUF_Config, T5Encoder_GGUF_Config.get_tag()], + Annotated[T5Encoder_Checkpoint_Config, T5Encoder_Checkpoint_Config.get_tag()], # Qwen3-VL Encoder (Qwen3-VL multimodal encoder for Krea-2) - checked BEFORE the text-only Qwen3 # encoder so single-file VL checkpoints (which also carry generic model.layers.* keys) are not # misclassified as the Z-Image Qwen3 encoder. The VL probe requires the visual tower. diff --git a/invokeai/backend/model_manager/configs/identification_utils.py b/invokeai/backend/model_manager/configs/identification_utils.py index 5231b73901a..d4ca6790ec1 100644 --- a/invokeai/backend/model_manager/configs/identification_utils.py +++ b/invokeai/backend/model_manager/configs/identification_utils.py @@ -184,6 +184,46 @@ def state_dict_has_any_keys_ending_with(state_dict: dict[str | int, Any], suffix return any(any(key.endswith(suffix) for suffix in _suffixes) for key in state_dict.keys() if isinstance(key, str)) +def raise_if_quantized_beyond_fp8( + mod: ModelOnDisk, state_dict: dict[str | int, Any], what: str, supported_note: str +) -> None: + """Refuse at install a single file quantized in a scheme a loader that only reads (scaled) fp8 cannot decode. + + ComfyUI redistributes text encoders as int8 (convrot), nvfp4 and mxfp8 builds next to the fp16 and fp8 + ones. Recognising such a file and registering it would leave a model that fails at its first use, so it is + an `InvalidMatchError`, worded for the caller's model. Identification has every dtype on the meta device but + no bytes, so the schemes are read from the weights' dtypes, nvfp4's second scale, and the header's + declarations (a header parse plus one seek per `.comfy_quant` marker). + """ + import torch + + if state_dict_has_any_keys_ending_with(state_dict, ".weight_scale_2"): + raise InvalidMatchError(f"This {what} is nvfp4-quantized, which is not supported. {supported_note}") + + integer_weights = sorted( + key + for key, value in state_dict.items() + if isinstance(key, str) + and key.endswith(".weight") + and getattr(value, "dtype", None) in (torch.int8, torch.uint8) + ) + if integer_weights: + raise InvalidMatchError( + f"This {what} carries {len(integer_weights)} integer-quantized weight(s) (e.g. '{integer_weights[0]}'), " + f"which are not supported. {supported_note}" + ) + + # Lazy: the loader package imports the config factory, which imports the configs calling this. + from invokeai.backend.model_manager.load.model_loaders._single_file_guards import ( + reject_formats_declared_in_the_header, + ) + + try: + reject_formats_declared_in_the_header(mod.path, what, None, {"float8_e4m3fn"}, supported_note) + except ValueError as e: + raise InvalidMatchError(str(e)) from e + + def common_config_paths(path: Path) -> set[Path]: """Returns common config file paths for models stored in directories.""" return {path / "config.json", path / "model_index.json"} diff --git a/invokeai/backend/model_manager/configs/t5_encoder.py b/invokeai/backend/model_manager/configs/t5_encoder.py index 9e0d73d8bfa..b2cb743d8a4 100644 --- a/invokeai/backend/model_manager/configs/t5_encoder.py +++ b/invokeai/backend/model_manager/configs/t5_encoder.py @@ -6,11 +6,13 @@ from invokeai.backend.model_manager.configs.base import Checkpoint_Config_Base, Config_Base from invokeai.backend.model_manager.configs.identification_utils import ( + InvalidMatchError, NotAMatchError, raise_for_class_name, raise_for_override_fields, raise_if_not_dir, raise_if_not_file, + raise_if_quantized_beyond_fp8, state_dict_has_any_keys_ending_with, state_dict_has_any_keys_starting_with, ) @@ -18,6 +20,10 @@ from invokeai.backend.model_manager.taxonomy import BaseModelType, ModelFormat, ModelType from invokeai.backend.quantization.gguf.ggml_tensor import GGMLTensor from invokeai.backend.quantization.sdnq.detection import folder_has_sdnq_keys +from invokeai.backend.t5.t5_tokenizer import T5_VOCAB_SIZE + +# The width of T5 v1.1 XXL, the encoder FLUX.1 and SD 3 condition on. +T5_XXL_D_MODEL = 4096 def _safetensors_dir_has_sdnq_keys(directory) -> bool: @@ -231,3 +237,63 @@ def raise_if_doesnt_look_like_gguf_quantized(cls, mod: ModelOnDisk) -> None: has_ggml = any(isinstance(v, GGMLTensor) for v in mod.load_state_dict().values()) if not has_ggml: raise NotAMatchError("state dict does not look like GGUF quantized") + + +class T5Encoder_Checkpoint_Config(Checkpoint_Config_Base, Config_Base): + """Configuration for a T5 encoder in a single safetensors file with transformers key names. + + This is how ComfyUI distributes T5-XXL (``t5xxl_fp16``, ``t5xxl_fp8_e4m3fn`` and + ``t5xxl_fp8_e4m3fn_scaled``): the ``T5EncoderModel`` state dict as is, with no config and no tokenizer. + """ + + base: Literal[BaseModelType.Any] = Field(default=BaseModelType.Any) + type: Literal[ModelType.T5Encoder] = Field(default=ModelType.T5Encoder) + format: Literal[ModelFormat.Checkpoint] = Field(default=ModelFormat.Checkpoint) + cpu_only: bool | None = Field(default=None, description="Whether this model should run on CPU only") + + @classmethod + def from_model_on_disk(cls, mod: ModelOnDisk, override_fields: dict[str, Any]) -> Self: + raise_if_not_file(mod) + + raise_for_override_fields(cls, override_fields) + + if mod.path.suffix != ".safetensors": + raise NotAMatchError("not a safetensors file") + + state_dict = mod.load_state_dict() + cls._raise_if_not_t5_encoder(state_dict) + cls._raise_if_not_t5_xxl(state_dict) + raise_if_quantized_beyond_fp8( + mod, state_dict, "T5 encoder", "Use the fp16 or fp8 (scaled) build of T5-XXL instead." + ) + + return cls(**override_fields) + + @classmethod + def _raise_if_not_t5_encoder(cls, state_dict: dict[str | int, Any]) -> None: + if "encoder.block.0.layer.0.SelfAttention.q.weight" not in state_dict or not ( + "shared.weight" in state_dict or "encoder.embed_tokens.weight" in state_dict + ): + raise NotAMatchError("state dict does not look like a transformers T5 encoder") + # The first shard of a sharded export has block 0 and the embedding too; only a whole encoder ends in its norm. + if "encoder.final_layer_norm.weight" not in state_dict: + raise NotAMatchError("state dict has no encoder.final_layer_norm; not a complete T5 encoder") + if state_dict_has_any_keys_starting_with(state_dict, "decoder."): + raise NotAMatchError("state dict carries a T5 decoder; only encoder-only files are supported") + # UMT5 (Wan's text encoder) shares T5's key names but gives every block its own position bias, + # where T5 has one in the first block only. + if "encoder.block.1.layer.0.SelfAttention.relative_attention_bias.weight" in state_dict: + raise NotAMatchError("state dict looks like UMT5 (a relative attention bias in every block)") + # T5 v1.0 has a single, ungated input projection; v1.1 (what FLUX.1 and SD 3 use) is gated. + if "encoder.block.0.layer.1.DenseReluDense.wi_0.weight" not in state_dict: + raise NotAMatchError("state dict does not have T5 v1.1's gated feed-forward") + + @classmethod + def _raise_if_not_t5_xxl(cls, state_dict: dict[str | int, Any]) -> None: + embedding = state_dict.get("shared.weight", state_dict.get("encoder.embed_tokens.weight")) + vocab_size, d_model = (int(x) for x in getattr(embedding, "shape", (0, 0))) + if d_model != T5_XXL_D_MODEL or vocab_size != T5_VOCAB_SIZE: + raise InvalidMatchError( + f"this T5 encoder has width {d_model} and vocabulary {vocab_size}, but FLUX.1 and SD 3 need " + f"T5 v1.1 XXL (width {T5_XXL_D_MODEL}, vocabulary {T5_VOCAB_SIZE})." + ) diff --git a/invokeai/backend/model_manager/load/model_loaders/flux.py b/invokeai/backend/model_manager/load/model_loaders/flux.py index efd233e425a..1e5b432bce8 100644 --- a/invokeai/backend/model_manager/load/model_loaders/flux.py +++ b/invokeai/backend/model_manager/load/model_loaders/flux.py @@ -56,6 +56,7 @@ ) from invokeai.backend.model_manager.configs.t5_encoder import ( T5Encoder_BnBLLMint8_Config, + T5Encoder_Checkpoint_Config, T5Encoder_GGUF_Config, T5Encoder_SDNQ_Config, T5Encoder_T5Encoder_Config, @@ -64,6 +65,7 @@ from invokeai.backend.model_manager.load.fp8_capability import Unimplemented from invokeai.backend.model_manager.load.load_default import ( ModelLoader, + _device_supports_fp8_storage, _model_declared_skip_patterns, resolve_submodel_path, ) @@ -85,6 +87,7 @@ convert_bundle_to_flux_transformer_checkpoint, ) from invokeai.backend.quantization.fp8_scaled import ( + FP8_WEIGHT_DTYPES, Fp8ScaledLayer, attach_fp8_scales, can_stay_quantized, @@ -99,6 +102,7 @@ parse_quantization_metadata, read_safetensors_metadata, reject_quantized_side_channel, + should_keep_fp8_weights, split_fp8_scaled_layers, strip_layer_path_prefix, warn_on_unattached_scales, @@ -116,6 +120,8 @@ from invokeai.backend.quantization.load_plan import reserve_for_load from invokeai.backend.quantization.sdnq.detection import is_sdnq_folder from invokeai.backend.quantization.sdnq.loaders import raise_on_incomplete_sdnq_load, sdnq_sd_loader +from invokeai.backend.t5.t5_encoder import infer_t5_encoder_config, make_t5_feed_forward_safe +from invokeai.backend.util.devices import TorchDevice from invokeai.backend.util.logging import InvokeAILogger from invokeai.backend.util.silence_warnings import SilenceWarnings from invokeai.backend.util.state_dict_loading import load_state_dict_ignoring_extras @@ -528,7 +534,7 @@ def _load_from_gguf(self, config: T5Encoder_GGUF_Config) -> AnyModel: sd = self._convert_t5_gguf_to_transformers(sd) - t5_config = self._infer_t5_config_from_state_dict(sd) + t5_config = infer_t5_encoder_config(sd) with accelerate.init_empty_weights(): model = T5EncoderModel(t5_config) @@ -552,7 +558,7 @@ def _load_from_gguf(self, config: T5Encoder_GGUF_Config) -> AnyModel: rel_bias.get_dequantized_tensor(), requires_grad=False ) - self._make_feed_forward_gguf_safe(model) + make_t5_feed_forward_safe(model) # Fail loudly if anything was left unloaded (meta tensors). meta_params = [name for name, p in model.named_parameters() if p.is_meta] @@ -564,123 +570,6 @@ def _load_from_gguf(self, config: T5Encoder_GGUF_Config) -> AnyModel: return model - @staticmethod - def _make_feed_forward_gguf_safe(model: T5EncoderModel) -> None: - """Work around a transformers T5 quirk that breaks GGUF-quantized ``wo`` weights. - - ``T5DenseGatedActDense.forward`` casts its activations to ``self.wo.weight.dtype`` unless that - dtype is ``torch.int8`` (a guard meant for bitsandbytes 8-bit quantization, see transformers - issue #20287). GGML stores quantized weights as ``torch.uint8``, which slips past the ``int8`` - guard and causes the activations to be cast to an integer dtype, corrupting them. We rebind the - forward of each feed-forward module so the cast only happens for genuine floating-point weights; - the quantized ``wo`` is dequantized on-the-fly by the autocast Linear regardless. - """ - import types - - def gated_forward(self, hidden_states): # mirrors T5DenseGatedActDense.forward - hidden_gelu = self.act(self.wi_0(hidden_states)) - hidden_linear = self.wi_1(hidden_states) - hidden_states = hidden_gelu * hidden_linear - hidden_states = self.dropout(hidden_states) - if self.wo.weight.is_floating_point() and hidden_states.dtype != self.wo.weight.dtype: - hidden_states = hidden_states.to(self.wo.weight.dtype) - hidden_states = self.wo(hidden_states) - return hidden_states - - def act_forward(self, hidden_states): # mirrors T5DenseActDense.forward - hidden_states = self.wi(hidden_states) - hidden_states = self.act(hidden_states) - hidden_states = self.dropout(hidden_states) - if self.wo.weight.is_floating_point() and hidden_states.dtype != self.wo.weight.dtype: - hidden_states = hidden_states.to(self.wo.weight.dtype) - hidden_states = self.wo(hidden_states) - return hidden_states - - patched = 0 - for module in model.modules(): - cls_name = module.__class__.__name__ - if cls_name == "T5DenseGatedActDense": - module.forward = types.MethodType(gated_forward, module) - patched += 1 - elif cls_name == "T5DenseActDense": - module.forward = types.MethodType(act_forward, module) - patched += 1 - - # Guard against a silent no-op: if transformers ever renames these feed-forward classes, the - # match above would patch nothing and the uint8-cast bug would silently corrupt encoder output. - # Fail loudly instead so the mismatch is caught at load time rather than in the generated images. - if patched == 0: - raise RuntimeError( - "Failed to patch any T5 feed-forward modules (expected T5DenseGatedActDense / T5DenseActDense). " - "The installed transformers version may have renamed these classes; the GGUF T5 encoder " - "cannot be loaded safely without the wo-dtype workaround." - ) - - def _infer_t5_config_from_state_dict(self, sd: dict[str, torch.Tensor]) -> "object": - """Reconstruct a ``T5Config`` from the (transformers-named) GGUF tensors. - - This only supports the T5 v1.1 XXL encoder family (e.g. city96/t5-v1_1-xxl-encoder-gguf), which - is what the starter models and FLUX pipelines use. Dimensions that vary (vocab, d_model, layer - count, head/ff sizes) are read from tensor shapes; the fixed architectural constants below - (``relative_attention_max_distance``, ``layer_norm_epsilon``, gated-gelu activation) are the T5 - v1.1 defaults and would need revisiting for other T5 variants. - - Note: ``.shape`` on a ``GGMLTensor`` already returns the dequantized (logical) shape, so quantized - and unquantized tensors can be read the same way here. - """ - from transformers import T5Config - - # Number of encoder blocks. - num_layers = 0 - for key in sd.keys(): - if isinstance(key, str) and key.startswith("encoder.block."): - try: - num_layers = max(num_layers, int(key.split(".")[2]) + 1) - except (IndexError, ValueError): - pass - - shared = sd.get("shared.weight") - if shared is None: - raise ValueError("Could not find shared.weight (token embeddings) in T5 GGUF state dict") - vocab_size, d_model = (int(x) for x in shared.shape) - - # Inner attention dim from q projection: nn.Linear(d_model, inner_dim) -> weight (inner_dim, d_model). - q_weight = sd.get("encoder.block.0.layer.0.SelfAttention.q.weight") - if q_weight is None: - raise ValueError("Could not find SelfAttention.q.weight in T5 GGUF state dict") - inner_dim = int(q_weight.shape[0]) - - # Number of heads and buckets from the relative attention bias: nn.Embedding(num_buckets, num_heads). - rel_bias = sd.get("encoder.block.0.layer.0.SelfAttention.relative_attention_bias.weight") - if rel_bias is None: - raise ValueError("Could not find relative_attention_bias.weight in T5 GGUF state dict") - num_buckets = int(rel_bias.shape[0]) - num_heads = int(rel_bias.shape[1]) - d_kv = inner_dim // num_heads - - # Feed-forward dim from the gated FFN: nn.Linear(d_model, d_ff) -> weight (d_ff, d_model). - wi_0 = sd.get("encoder.block.0.layer.1.DenseReluDense.wi_0.weight") - if wi_0 is None: - raise ValueError("Could not find DenseReluDense.wi_0.weight in T5 GGUF state dict") - d_ff = int(wi_0.shape[0]) - - return T5Config( - vocab_size=vocab_size, - d_model=d_model, - d_kv=d_kv, - d_ff=d_ff, - num_layers=num_layers, - num_heads=num_heads, - relative_attention_num_buckets=num_buckets, - relative_attention_max_distance=128, # T5 v1.1 default - layer_norm_epsilon=1e-6, # T5 v1.1 default - feed_forward_proj="gated-gelu", - is_gated_act=True, - dense_act_fn="gelu_new", - tie_word_embeddings=False, - use_cache=False, - ) - def _convert_t5_gguf_to_transformers(self, sd: dict[str, Any]) -> dict[str, Any]: """Convert llama.cpp T5 encoder GGUF keys to HuggingFace transformers T5 naming. @@ -747,6 +636,116 @@ def _convert_t5_gguf_to_transformers(self, sd: dict[str, Any]) -> dict[str, Any] return new_sd +@ModelLoaderRegistry.register(base=BaseModelType.Any, type=ModelType.T5Encoder, format=ModelFormat.Checkpoint) +class T5EncoderSingleFileLoader(ModelLoader): + """Load a T5 encoder from one safetensors file with transformers key names (ComfyUI's ``t5xxl_*``). + + fp16 and bf16 files are cast to the compute dtype. fp8 files, raw or scaled, keep their Linear weights in + float8 where the device can hold them: that is what such a file is chosen for, ~4.9 GB resident instead of + ~9.5 GB. Text encoders are excluded from FP8 Storage by design, so there is no per-model setting behind this; + elsewhere the scales are folded and everything is cast, as on a device without float8. Kept weights are + dequantized per forward and never multiplied in fp8, whatever `fp8_compute` says. + """ + + def get_size_fs( + self, config: AnyModelConfig, model_path: Path, submodel_type: Optional[SubModelType] = None + ) -> int: + # The tokenizer is bundled, not read from the file: sizing it as the file would make room for the + # whole encoder and evict models to load a few hundred kilobytes. + if submodel_type in (SubModelType.Tokenizer2, SubModelType.Tokenizer3): + return 0 + return super().get_size_fs(config, model_path, submodel_type) + + def _load_model( + self, + config: AnyModelConfig, + submodel_type: Optional[SubModelType] = None, + ) -> AnyModel: + if not isinstance(config, T5Encoder_Checkpoint_Config): + raise ValueError("Only T5Encoder_Checkpoint_Config models are supported here.") + + match submodel_type: + case SubModelType.Tokenizer2 | SubModelType.Tokenizer3: + from invokeai.backend.t5.t5_tokenizer import load_bundled_t5_tokenizer + + return load_bundled_t5_tokenizer() + case SubModelType.TextEncoder2 | SubModelType.TextEncoder3: + return self._load_text_encoder(config, submodel_type) + + raise ValueError( + f"Only Tokenizer and TextEncoder submodels are currently supported. Received: {submodel_type.value if submodel_type else 'None'}" + ) + + def _load_text_encoder(self, config: T5Encoder_Checkpoint_Config, submodel_type: SubModelType) -> T5EncoderModel: + model_path = Path(config.path) + device = self._get_execution_device(config, submodel_type) or self._torch_device + model_dtype = TorchDevice.choose_bfloat16_safe_dtype(device) + + sd = load_file(model_path) + # ComfyUI writes the token embedding twice, as `shared` and as the encoder's `embed_tokens`, which the + # model ties to one parameter. Dropping the copy before anything is cast or reserved saves its size; a file + # with only the encoder's copy has it renamed, with any scale beside it. + has_shared = "shared.weight" in sd + for key in [key for key in sd if key.startswith("encoder.embed_tokens.")]: + value = sd.pop(key) + if not has_shared: + sd["shared." + key.removeprefix("encoder.embed_tokens.")] = value + + layer_hints = { + **extract_comfy_quant_hints(sd), + **parse_quantization_metadata(read_safetensors_metadata(model_path, self._logger)), + } + # Pops every scale and the `scaled_fp8` marker, so what is left loads into a model that knows no fp8. + fp8_layers = extract_fp8_scaled_layers(sd, layer_hints=layer_hints) + keep_fp8 = should_keep_fp8_weights(device) or _device_supports_fp8_storage(device, self._logger) + + with accelerate.init_empty_weights(): + model = T5EncoderModel(infer_t5_encoder_config(sd)) + + # One reservation for the state dict as it will be held, before the fold or the cast widens anything. + reserve_for_load( + self._ram_cache.make_room, + sd, + model_dtype, + keep_fp8=keep_fp8, + model=model, + fp8_layers=fp8_layers if keep_fp8 else {}, + nvfp4_payloads={}, + ) + if keep_fp8: + # Folds the layers that cannot stay fp8, so the cast below never drops a scale. + fp8_layers = split_fp8_scaled_layers(sd, fp8_layers, model_dtype, model=model) + else: + dequantize_fp8_scaled(sd, fp8_layers, model_dtype) + fp8_layers = {} + kept = cast_state_dict(sd, model_dtype, keep_fp8=keep_fp8, model=model) + + load_state_dict_ignoring_extras( + model, + sd, + source="single-file T5 encoder", + assign=True, + allowed_missing={"encoder.embed_tokens.weight"}, + ) + # `assign=True` replaces `shared` without the encoder's tied alias following it. + model.encoder.embed_tokens.weight = model.shared.weight + make_t5_feed_forward_safe(model) + + if fp8_layers: + attached = attach_fp8_scales(model, fp8_layers) + warn_on_unattached_scales(self._logger, "T5 encoder", attached, fp8_layers) + if kept: + # Storage only: the fp8 matmul quantizes activations too, and T5's feed-forward outliers make that + # measurably worse (scaled build vs bf16, worst-token cosine 0.87 -> 0.46) for a speedup a single + # encoder pass per prompt does not need. + for module in model.modules(): + if isinstance(module, torch.nn.Linear) and module.weight.dtype in FP8_WEIGHT_DTYPES: + module._fp8_full_precision_matmul = True + self._logger.info(f"T5 encoder: kept {kept} weight(s) in fp8, dequantized per forward") + + return model + + @ModelLoaderRegistry.register(base=BaseModelType.Flux, type=ModelType.Main, format=ModelFormat.Checkpoint) class FluxCheckpointModel(ModelLoader): """Class to load main models.""" diff --git a/invokeai/backend/t5/t5_encoder.py b/invokeai/backend/t5/t5_encoder.py new file mode 100644 index 00000000000..17ec28b2447 --- /dev/null +++ b/invokeai/backend/t5/t5_encoder.py @@ -0,0 +1,139 @@ +"""Building a transformers ``T5EncoderModel`` from a bare state dict. + +Shared by the single-file T5 loaders (GGUF and ComfyUI-style safetensors): neither format ships a +``config.json``, so the architecture is read from tensor shapes, and both need the feed-forward +workaround below because their ``wo`` weights may not be in the compute dtype. +""" + +import types +from typing import Any + +import torch +from transformers import T5Config + +from invokeai.backend.quantization.fp8_scaled import FP8_WEIGHT_DTYPES + + +def infer_t5_encoder_config(sd: dict[str, Any]) -> T5Config: + """Reconstruct a ``T5Config`` from a transformers-named T5 encoder state dict. + + This only supports the T5 v1.1 encoder family (e.g. google/t5-v1_1-xxl as used by FLUX.1 and SD 3). + Dimensions that vary (vocab, d_model, layer count, head/ff sizes) are read from tensor shapes; the + fixed architectural constants below (``relative_attention_max_distance``, ``layer_norm_epsilon``, + gated-gelu activation) are the T5 v1.1 defaults and would need revisiting for other T5 variants. + + ``.shape`` on a ``GGMLTensor`` returns the dequantized (logical) shape, so quantized and unquantized + tensors are read the same way. + """ + num_layers = 0 + for key in sd.keys(): + if isinstance(key, str) and key.startswith("encoder.block."): + try: + num_layers = max(num_layers, int(key.split(".")[2]) + 1) + except (IndexError, ValueError): + pass + + shared = sd.get("shared.weight") + if shared is None: + shared = sd.get("encoder.embed_tokens.weight") + if shared is None: + raise ValueError("Could not find shared.weight (token embeddings) in T5 state dict") + vocab_size, d_model = (int(x) for x in shared.shape) + + # Inner attention dim from q projection: nn.Linear(d_model, inner_dim) -> weight (inner_dim, d_model). + q_weight = sd.get("encoder.block.0.layer.0.SelfAttention.q.weight") + if q_weight is None: + raise ValueError("Could not find SelfAttention.q.weight in T5 state dict") + inner_dim = int(q_weight.shape[0]) + + # Number of heads and buckets from the relative attention bias: nn.Embedding(num_buckets, num_heads). + rel_bias = sd.get("encoder.block.0.layer.0.SelfAttention.relative_attention_bias.weight") + if rel_bias is None: + raise ValueError("Could not find relative_attention_bias.weight in T5 state dict") + num_buckets = int(rel_bias.shape[0]) + num_heads = int(rel_bias.shape[1]) + d_kv = inner_dim // num_heads + + # Feed-forward dim from the gated FFN: nn.Linear(d_model, d_ff) -> weight (d_ff, d_model). + wi_0 = sd.get("encoder.block.0.layer.1.DenseReluDense.wi_0.weight") + if wi_0 is None: + raise ValueError("Could not find DenseReluDense.wi_0.weight in T5 state dict") + d_ff = int(wi_0.shape[0]) + + return T5Config( + vocab_size=vocab_size, + d_model=d_model, + d_kv=d_kv, + d_ff=d_ff, + num_layers=num_layers, + num_heads=num_heads, + relative_attention_num_buckets=num_buckets, + relative_attention_max_distance=128, # T5 v1.1 default + layer_norm_epsilon=1e-6, # T5 v1.1 default + feed_forward_proj="gated-gelu", + is_gated_act=True, + dense_act_fn="gelu_new", + tie_word_embeddings=False, + use_cache=False, + ) + + +def _casts_activations_to(weight: torch.Tensor) -> bool: + """Whether the feed-forward may cast its activations to ``weight``'s dtype before ``wo``. + + Not to a quantized storage dtype: GGML's ``uint8`` would turn them into integers, and a ``wo`` kept in + float8 would round them to fp8 before a layer that dequantizes its weight to the compute dtype anyway. + """ + return weight.is_floating_point() and weight.dtype not in FP8_WEIGHT_DTYPES + + +def make_t5_feed_forward_safe(model: torch.nn.Module) -> None: + """Work around a transformers T5 quirk that breaks ``wo`` weights stored in a non-compute dtype. + + ``T5DenseGatedActDense.forward`` casts its activations to ``self.wo.weight.dtype`` unless that + dtype is ``torch.int8`` (a guard meant for bitsandbytes 8-bit quantization, see transformers + issue #20287). GGML stores quantized weights as ``torch.uint8``, which slips past the ``int8`` + guard and causes the activations to be cast to an integer dtype, corrupting them; a ``wo`` kept in + float8 would round them to fp8. We rebind the + forward of each feed-forward module so the cast only happens for weights the activations may take + the dtype of; such a ``wo`` is dequantized on-the-fly by the autocast Linear regardless. + """ + + def gated_forward(self, hidden_states): # mirrors T5DenseGatedActDense.forward + hidden_gelu = self.act(self.wi_0(hidden_states)) + hidden_linear = self.wi_1(hidden_states) + hidden_states = hidden_gelu * hidden_linear + hidden_states = self.dropout(hidden_states) + if _casts_activations_to(self.wo.weight) and hidden_states.dtype != self.wo.weight.dtype: + hidden_states = hidden_states.to(self.wo.weight.dtype) + hidden_states = self.wo(hidden_states) + return hidden_states + + def act_forward(self, hidden_states): # mirrors T5DenseActDense.forward + hidden_states = self.wi(hidden_states) + hidden_states = self.act(hidden_states) + hidden_states = self.dropout(hidden_states) + if _casts_activations_to(self.wo.weight) and hidden_states.dtype != self.wo.weight.dtype: + hidden_states = hidden_states.to(self.wo.weight.dtype) + hidden_states = self.wo(hidden_states) + return hidden_states + + patched = 0 + for module in model.modules(): + cls_name = module.__class__.__name__ + if cls_name == "T5DenseGatedActDense": + module.forward = types.MethodType(gated_forward, module) + patched += 1 + elif cls_name == "T5DenseActDense": + module.forward = types.MethodType(act_forward, module) + patched += 1 + + # Guard against a silent no-op: if transformers ever renames these feed-forward classes, the + # match above would patch nothing and the dtype-cast bug would silently corrupt encoder output. + # Fail loudly instead so the mismatch is caught at load time rather than in the generated images. + if patched == 0: + raise RuntimeError( + "Failed to patch any T5 feed-forward modules (expected T5DenseGatedActDense / T5DenseActDense). " + "The installed transformers version may have renamed these classes; the T5 encoder " + "cannot be loaded safely without the wo-dtype workaround." + ) diff --git a/invokeai/frontend/api/openapi.json b/invokeai/frontend/api/openapi.json index 0d589f02b49..7e491d04a78 100644 --- a/invokeai/frontend/api/openapi.json +++ b/invokeai/frontend/api/openapi.json @@ -1673,6 +1673,9 @@ { "$ref": "#/components/schemas/T5Encoder_GGUF_Config" }, + { + "$ref": "#/components/schemas/T5Encoder_Checkpoint_Config" + }, { "$ref": "#/components/schemas/Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config" }, @@ -2149,6 +2152,9 @@ { "$ref": "#/components/schemas/T5Encoder_GGUF_Config" }, + { + "$ref": "#/components/schemas/T5Encoder_Checkpoint_Config" + }, { "$ref": "#/components/schemas/Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config" }, @@ -2625,6 +2631,9 @@ { "$ref": "#/components/schemas/T5Encoder_GGUF_Config" }, + { + "$ref": "#/components/schemas/T5Encoder_Checkpoint_Config" + }, { "$ref": "#/components/schemas/Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config" }, @@ -3146,6 +3155,9 @@ { "$ref": "#/components/schemas/T5Encoder_GGUF_Config" }, + { + "$ref": "#/components/schemas/T5Encoder_Checkpoint_Config" + }, { "$ref": "#/components/schemas/Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config" }, @@ -3694,6 +3706,9 @@ { "$ref": "#/components/schemas/T5Encoder_GGUF_Config" }, + { + "$ref": "#/components/schemas/T5Encoder_Checkpoint_Config" + }, { "$ref": "#/components/schemas/Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config" }, @@ -5114,6 +5129,9 @@ { "$ref": "#/components/schemas/T5Encoder_GGUF_Config" }, + { + "$ref": "#/components/schemas/T5Encoder_Checkpoint_Config" + }, { "$ref": "#/components/schemas/Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config" }, @@ -19677,6 +19695,9 @@ { "$ref": "#/components/schemas/T5Encoder_GGUF_Config" }, + { + "$ref": "#/components/schemas/T5Encoder_Checkpoint_Config" + }, { "$ref": "#/components/schemas/Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config" }, @@ -85246,6 +85267,9 @@ { "$ref": "#/components/schemas/T5Encoder_GGUF_Config" }, + { + "$ref": "#/components/schemas/T5Encoder_Checkpoint_Config" + }, { "$ref": "#/components/schemas/Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config" }, @@ -85968,6 +85992,9 @@ { "$ref": "#/components/schemas/T5Encoder_GGUF_Config" }, + { + "$ref": "#/components/schemas/T5Encoder_Checkpoint_Config" + }, { "$ref": "#/components/schemas/Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config" }, @@ -86575,6 +86602,9 @@ { "$ref": "#/components/schemas/T5Encoder_GGUF_Config" }, + { + "$ref": "#/components/schemas/T5Encoder_Checkpoint_Config" + }, { "$ref": "#/components/schemas/Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config" }, @@ -87038,6 +87068,9 @@ { "$ref": "#/components/schemas/T5Encoder_GGUF_Config" }, + { + "$ref": "#/components/schemas/T5Encoder_Checkpoint_Config" + }, { "$ref": "#/components/schemas/Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config" }, @@ -87991,6 +88024,9 @@ { "$ref": "#/components/schemas/T5Encoder_GGUF_Config" }, + { + "$ref": "#/components/schemas/T5Encoder_Checkpoint_Config" + }, { "$ref": "#/components/schemas/Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config" }, @@ -103202,6 +103238,155 @@ "title": "T5Encoder_BnBLLMint8_Config", "description": "Configuration for T5 Encoder models quantized by bitsandbytes' LLM.int8." }, + "T5Encoder_Checkpoint_Config": { + "properties": { + "key": { + "type": "string", + "title": "Key", + "description": "A unique key for this model." + }, + "hash": { + "type": "string", + "title": "Hash", + "description": "The hash of the model file(s)." + }, + "path": { + "type": "string", + "title": "Path", + "description": "Path to the model on the filesystem. Relative paths are relative to the Invoke root directory." + }, + "file_size": { + "type": "integer", + "title": "File Size", + "description": "The size of the model in bytes." + }, + "name": { + "type": "string", + "title": "Name", + "description": "Name of the model." + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description", + "description": "Model description" + }, + "source": { + "type": "string", + "title": "Source", + "description": "The original source of the model (path, URL or repo_id)." + }, + "source_type": { + "$ref": "#/components/schemas/ModelSourceType", + "description": "The type of source" + }, + "source_api_response": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Source Api Response", + "description": "The original API response from the source, as stringified JSON." + }, + "source_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Source Url", + "description": "Optional URL for the model (e.g. download page or model page)." + }, + "cover_image": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Cover Image", + "description": "Url for image to preview model" + }, + "config_path": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Config Path", + "description": "Path to the config for this model, if any." + }, + "base": { + "type": "string", + "const": "any", + "title": "Base", + "default": "any" + }, + "type": { + "type": "string", + "const": "t5_encoder", + "title": "Type", + "default": "t5_encoder" + }, + "format": { + "type": "string", + "const": "checkpoint", + "title": "Format", + "default": "checkpoint" + }, + "cpu_only": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Cpu Only", + "description": "Whether this model should run on CPU only" + } + }, + "type": "object", + "required": [ + "key", + "hash", + "path", + "file_size", + "name", + "description", + "source", + "source_type", + "source_api_response", + "source_url", + "cover_image", + "config_path", + "base", + "type", + "format", + "cpu_only" + ], + "title": "T5Encoder_Checkpoint_Config", + "description": "Configuration for a T5 encoder in a single safetensors file with transformers key names.\n\nThis is how ComfyUI distributes T5-XXL (``t5xxl_fp16``, ``t5xxl_fp8_e4m3fn`` and\n``t5xxl_fp8_e4m3fn_scaled``): the ``T5EncoderModel`` state dict as is, with no config and no tokenizer." + }, "T5Encoder_GGUF_Config": { "properties": { "key": { diff --git a/invokeai/frontend/api/schema.ts b/invokeai/frontend/api/schema.ts index 03d8f34e719..db3e44b9912 100644 --- a/invokeai/frontend/api/schema.ts +++ b/invokeai/frontend/api/schema.ts @@ -5508,7 +5508,7 @@ export type components = { * @enum {string} */ AnimaVariantType: "anima_qwen3" | "anima_qwen35"; - AnyModelConfig: components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; + AnyModelConfig: components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["T5Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; /** * AppVersion * @description App Version Response @@ -36753,7 +36753,7 @@ export type components = { * Config * @description The installed model's config */ - config: components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; + config: components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["T5Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; }; /** * ModelInstallDownloadProgressEvent @@ -36919,7 +36919,7 @@ export type components = { * Config Out * @description After successful installation, this will hold the configuration object. */ - config_out?: (components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]) | null; + config_out?: (components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["T5Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]) | null; /** * Inplace * @description Leave model in its current location; otherwise install under models directory @@ -37005,7 +37005,7 @@ export type components = { * Config * @description The model's config */ - config: components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; + config: components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["T5Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; /** * @description The submodel type, if any * @default null @@ -37032,7 +37032,7 @@ export type components = { * Config * @description The model's config */ - config: components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; + config: components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["T5Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; /** * @description The submodel type, if any * @default null @@ -37259,7 +37259,7 @@ export type components = { */ ModelsList: { /** Models */ - models: (components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"])[]; + models: (components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["T5Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"])[]; }; /** * Multiply Integers @@ -45379,6 +45379,95 @@ export type components = { */ cpu_only: boolean | null; }; + /** + * T5Encoder_Checkpoint_Config + * @description Configuration for a T5 encoder in a single safetensors file with transformers key names. + * + * This is how ComfyUI distributes T5-XXL (``t5xxl_fp16``, ``t5xxl_fp8_e4m3fn`` and + * ``t5xxl_fp8_e4m3fn_scaled``): the ``T5EncoderModel`` state dict as is, with no config and no tokenizer. + */ + T5Encoder_Checkpoint_Config: { + /** + * Key + * @description A unique key for this model. + */ + key: string; + /** + * Hash + * @description The hash of the model file(s). + */ + hash: string; + /** + * Path + * @description Path to the model on the filesystem. Relative paths are relative to the Invoke root directory. + */ + path: string; + /** + * File Size + * @description The size of the model in bytes. + */ + file_size: number; + /** + * Name + * @description Name of the model. + */ + name: string; + /** + * Description + * @description Model description + */ + description: string | null; + /** + * Source + * @description The original source of the model (path, URL or repo_id). + */ + source: string; + /** @description The type of source */ + source_type: components["schemas"]["ModelSourceType"]; + /** + * Source Api Response + * @description The original API response from the source, as stringified JSON. + */ + source_api_response: string | null; + /** + * Source Url + * @description Optional URL for the model (e.g. download page or model page). + */ + source_url: string | null; + /** + * Cover Image + * @description Url for image to preview model + */ + cover_image: string | null; + /** + * Config Path + * @description Path to the config for this model, if any. + */ + config_path: string | null; + /** + * Base + * @default any + * @constant + */ + base: "any"; + /** + * Type + * @default t5_encoder + * @constant + */ + type: "t5_encoder"; + /** + * Format + * @default checkpoint + * @constant + */ + format: "checkpoint"; + /** + * Cpu Only + * @description Whether this model should run on CPU only + */ + cpu_only: boolean | null; + }; /** * T5Encoder_GGUF_Config * @description Configuration for GGUF-quantized T5 text encoder models in a single .gguf file. @@ -53153,7 +53242,7 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; + "application/json": components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["T5Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; }; }; /** @description Validation Error */ @@ -53185,7 +53274,7 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; + "application/json": components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["T5Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; }; }; /** @description Validation Error */ @@ -53237,7 +53326,7 @@ export interface operations { * "upcast_attention": false * } */ - "application/json": components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; + "application/json": components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["T5Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; }; }; /** @description Bad request */ @@ -53351,7 +53440,7 @@ export interface operations { * "upcast_attention": false * } */ - "application/json": components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; + "application/json": components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["T5Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; }; }; /** @description Bad request */ @@ -53424,7 +53513,7 @@ export interface operations { * "upcast_attention": false * } */ - "application/json": components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; + "application/json": components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["T5Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; }; }; /** @description Bad request */ @@ -54225,7 +54314,7 @@ export interface operations { * "upcast_attention": false * } */ - "application/json": components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; + "application/json": components["schemas"]["Main_Diffusers_SD1_Config"] | components["schemas"]["Main_Diffusers_SD2_Config"] | components["schemas"]["Main_Diffusers_SDXL_Config"] | components["schemas"]["Main_Diffusers_SDXLRefiner_Config"] | components["schemas"]["Main_Diffusers_SD3_Config"] | components["schemas"]["Main_Diffusers_FLUX_Config"] | components["schemas"]["Main_Diffusers_Flux2_Config"] | components["schemas"]["Main_Diffusers_CogView4_Config"] | components["schemas"]["Main_Diffusers_QwenImage_Config"] | components["schemas"]["Main_Diffusers_Wan_Config"] | components["schemas"]["Main_Diffusers_ZImage_Config"] | components["schemas"]["Main_Diffusers_ErnieImage_Config"] | components["schemas"]["Main_Diffusers_Ideogram4_Config"] | components["schemas"]["Main_Diffusers_Krea2_Config"] | components["schemas"]["Main_Diffusers_MiniMaxH3_Config"] | components["schemas"]["Main_Diffusers_LTX2_Config"] | components["schemas"]["Main_Checkpoint_SD1_Config"] | components["schemas"]["Main_Checkpoint_SD2_Config"] | components["schemas"]["Main_Checkpoint_SDXL_Config"] | components["schemas"]["Main_Checkpoint_SDXLRefiner_Config"] | components["schemas"]["Main_Checkpoint_Flux2_Config"] | components["schemas"]["Main_Checkpoint_FLUX_Config"] | components["schemas"]["Main_Checkpoint_QwenImage_Config"] | components["schemas"]["Main_Checkpoint_Wan_Config"] | components["schemas"]["Main_Checkpoint_ZImage_Config"] | components["schemas"]["Main_Checkpoint_ErnieImage_Config"] | components["schemas"]["Main_Checkpoint_Ideogram4_Config"] | components["schemas"]["Main_Checkpoint_Krea2_Config"] | components["schemas"]["Main_Checkpoint_Anima_Config"] | components["schemas"]["Main_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Main_Checkpoint_LTX2_Config"] | components["schemas"]["Main_BnBNF4_FLUX_Config"] | components["schemas"]["Main_GGUF_Flux2_Config"] | components["schemas"]["Main_GGUF_FLUX_Config"] | components["schemas"]["Main_GGUF_QwenImage_Config"] | components["schemas"]["Main_GGUF_Wan_Config"] | components["schemas"]["Main_GGUF_ZImage_Config"] | components["schemas"]["Main_GGUF_Krea2_Config"] | components["schemas"]["Main_GGUF_Ideogram4_Config"] | components["schemas"]["Main_GGUF_ErnieImage_Config"] | components["schemas"]["Main_SDNQ_Diffusers_Flux2_Config"] | components["schemas"]["Main_SDNQ_Diffusers_FLUX_Config"] | components["schemas"]["Main_SDNQ_Diffusers_ZImage_Config"] | components["schemas"]["VAE_Checkpoint_SD1_Config"] | components["schemas"]["VAE_Checkpoint_SD2_Config"] | components["schemas"]["VAE_Checkpoint_SDXL_Config"] | components["schemas"]["VAE_Checkpoint_FLUX_Config"] | components["schemas"]["VAE_Checkpoint_SD3_Config"] | components["schemas"]["VAE_Checkpoint_Flux2_Config"] | components["schemas"]["VAE_Checkpoint_Wan_Config"] | components["schemas"]["VAE_Checkpoint_QwenImage_Config"] | components["schemas"]["VAE_Checkpoint_Anima_Config"] | components["schemas"]["VAE_Diffusers_SD1_Config"] | components["schemas"]["VAE_Diffusers_SDXL_Config"] | components["schemas"]["VAE_Diffusers_FLUX_Config"] | components["schemas"]["VAE_Diffusers_SD3_Config"] | components["schemas"]["VAE_Diffusers_Flux2_Config"] | components["schemas"]["VAE_Diffusers_Wan_Config"] | components["schemas"]["PiDDecoder_Checkpoint_FLUX_Config"] | components["schemas"]["PiDDecoder_Checkpoint_Flux2_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SD3_Config"] | components["schemas"]["PiDDecoder_Checkpoint_SDXL_Config"] | components["schemas"]["PiDDecoder_Checkpoint_QwenImage_Config"] | components["schemas"]["ControlNet_Checkpoint_SD1_Config"] | components["schemas"]["ControlNet_Checkpoint_SD2_Config"] | components["schemas"]["ControlNet_Checkpoint_SDXL_Config"] | components["schemas"]["ControlNet_Checkpoint_FLUX_Config"] | components["schemas"]["ControlNet_Checkpoint_ZImage_Config"] | components["schemas"]["ControlNet_Checkpoint_Anima_Config"] | components["schemas"]["ControlNet_Diffusers_SD1_Config"] | components["schemas"]["ControlNet_Diffusers_SD2_Config"] | components["schemas"]["ControlNet_Diffusers_SDXL_Config"] | components["schemas"]["ControlNet_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_SD1_Config"] | components["schemas"]["LoRA_LyCORIS_SD2_Config"] | components["schemas"]["LoRA_LyCORIS_SDXL_Config"] | components["schemas"]["LoRA_LyCORIS_Flux2_Config"] | components["schemas"]["LoRA_LyCORIS_FLUX_Config"] | components["schemas"]["LoRA_LyCORIS_ZImage_Config"] | components["schemas"]["LoRA_LyCORIS_Krea2_Config"] | components["schemas"]["LoRA_LyCORIS_QwenImage_Config"] | components["schemas"]["LoRA_LyCORIS_LTX2_Config"] | components["schemas"]["LoRA_LyCORIS_MiniMaxH3_Config"] | components["schemas"]["LoRA_LyCORIS_Wan_Config"] | components["schemas"]["LoRA_LyCORIS_Anima_Config"] | components["schemas"]["LoRA_OMI_SDXL_Config"] | components["schemas"]["LoRA_OMI_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_SD1_Config"] | components["schemas"]["LoRA_Diffusers_SD2_Config"] | components["schemas"]["LoRA_Diffusers_SDXL_Config"] | components["schemas"]["LoRA_Diffusers_Flux2_Config"] | components["schemas"]["LoRA_Diffusers_FLUX_Config"] | components["schemas"]["LoRA_Diffusers_ZImage_Config"] | components["schemas"]["ControlLoRA_LyCORIS_FLUX_Config"] | components["schemas"]["T5Encoder_T5Encoder_Config"] | components["schemas"]["T5Encoder_BnBLLMint8_Config"] | components["schemas"]["T5Encoder_SDNQ_Config"] | components["schemas"]["T5Encoder_GGUF_Config"] | components["schemas"]["T5Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_MiniMaxH3_Config"] | components["schemas"]["Qwen3VLEncoder_Checkpoint_Config"] | components["schemas"]["Qwen3VLEncoder_GGUF_Config"] | components["schemas"]["Qwen3VLEncoder_Qwen3VLEncoder_Config"] | components["schemas"]["Qwen35Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_Qwen3Encoder_Config"] | components["schemas"]["Qwen3Encoder_Checkpoint_Config"] | components["schemas"]["Qwen3Encoder_GGUF_Config"] | components["schemas"]["Qwen3Encoder_SDNQ_Folder_Config"] | components["schemas"]["MistralEncoder_Diffusers_Config"] | components["schemas"]["MistralEncoder_Checkpoint_Config"] | components["schemas"]["MistralEncoder_GGUF_Config"] | components["schemas"]["Gemma2Encoder_Gemma2Encoder_Config"] | components["schemas"]["Gemma4Encoder_Gemma4Encoder_LTX2_Config"] | components["schemas"]["Gemma2Encoder_GGUF_Config"] | components["schemas"]["QwenVLEncoder_Diffusers_Config"] | components["schemas"]["QwenVLEncoder_Checkpoint_Config"] | components["schemas"]["WanT5Encoder_WanT5Encoder_Config"] | components["schemas"]["TI_File_SD1_Config"] | components["schemas"]["TI_File_SD2_Config"] | components["schemas"]["TI_File_SDXL_Config"] | components["schemas"]["TI_Folder_SD1_Config"] | components["schemas"]["TI_Folder_SD2_Config"] | components["schemas"]["TI_Folder_SDXL_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD1_Config"] | components["schemas"]["IPAdapter_InvokeAI_SD2_Config"] | components["schemas"]["IPAdapter_InvokeAI_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD1_Config"] | components["schemas"]["IPAdapter_Checkpoint_SD2_Config"] | components["schemas"]["IPAdapter_Checkpoint_SDXL_Config"] | components["schemas"]["IPAdapter_Checkpoint_FLUX_Config"] | components["schemas"]["T2IAdapter_Diffusers_SD1_Config"] | components["schemas"]["T2IAdapter_Diffusers_SDXL_Config"] | components["schemas"]["Spandrel_Checkpoint_Config"] | components["schemas"]["CLIPEmbed_Diffusers_G_Config"] | components["schemas"]["CLIPEmbed_Diffusers_L_Config"] | components["schemas"]["CLIPVision_Diffusers_Config"] | components["schemas"]["SigLIP_Diffusers_Config"] | components["schemas"]["FLUXRedux_Checkpoint_Config"] | components["schemas"]["LTX2DurationHead_Checkpoint_Config"] | components["schemas"]["LlavaOnevision_Diffusers_Config"] | components["schemas"]["TextLLM_Diffusers_Config"] | components["schemas"]["ExternalApiModelConfig"] | components["schemas"]["Unknown_Config"]; }; }; /** @description Bad request */ diff --git a/tests/backend/model_manager/configs/test_t5_encoder_checkpoint_config.py b/tests/backend/model_manager/configs/test_t5_encoder_checkpoint_config.py new file mode 100644 index 00000000000..a590437d681 --- /dev/null +++ b/tests/backend/model_manager/configs/test_t5_encoder_checkpoint_config.py @@ -0,0 +1,178 @@ +"""Identifying ComfyUI's single-file T5-XXL encoders, through the whole config factory. + +Each case is a captured header written back without its data (`write_header_only_safetensors`): +identification reads nothing else, so every config class sees the real key names, shapes and dtypes and +the test proves no other config claims the file -- and that the T5 config claims nothing it must not. +""" + +from pathlib import Path +from typing import Any + +import pytest +import torch +from pydantic import TypeAdapter +from safetensors.torch import save_file + +from invokeai.backend.model_manager.configs.factory import AnyModelConfig, ModelConfigFactory +from invokeai.backend.model_manager.configs.identification_utils import ( + InvalidMatchError, + raise_if_quantized_beyond_fp8, +) +from invokeai.backend.model_manager.configs.t5_encoder import T5Encoder_Checkpoint_Config +from invokeai.backend.model_manager.load.model_loader_registry import ModelLoaderRegistry +from invokeai.backend.model_manager.load.model_loaders.flux import T5EncoderSingleFileLoader +from invokeai.backend.model_manager.model_on_disk import ModelOnDisk +from invokeai.backend.model_manager.taxonomy import BaseModelType, ModelFormat, ModelType, SubModelType +from tests.backend.model_manager.load.state_dicts import ( + t5xxl_fp8_e4m3fn_comfy_keys, + t5xxl_fp8_e4m3fn_scaled_comfy_keys, + t5xxl_fp16_comfy_keys, + umt5_xxl_fp8_scaled_comfy_keys, +) +from tests.backend.model_manager.load.state_dicts.utils import write_header_only_safetensors +from tests.fixtures.quantized_payloads import comfy_quant_marker, mxfp8_marker + +_OVERRIDE_FIELDS: dict[str, object] = { + "hash": "blake3:fakehash", + "path": "/fake/models/t5xxl", + "file_size": 1000, + "name": "t5xxl", + "description": "test", + "source": "test", + "source_type": "path", + "key": "test-key", +} + +Keys = dict[str, tuple[list[int], str]] + + +def _identify(tmp_path: Path, keys: Keys, name: str = "t5xxl.safetensors") -> Any: + path = write_header_only_safetensors(tmp_path / name, keys) + return ModelConfigFactory.from_model_on_disk(path, dict(_OVERRIDE_FIELDS), allow_unknown=False) + + +@pytest.mark.parametrize( + "keys", + [ + t5xxl_fp16_comfy_keys.state_dict_keys, + t5xxl_fp8_e4m3fn_comfy_keys.state_dict_keys, + t5xxl_fp8_e4m3fn_scaled_comfy_keys.state_dict_keys, + ], + ids=["fp16", "fp8_e4m3fn", "fp8_e4m3fn_scaled"], +) +def test_each_comfy_t5xxl_build_is_a_single_file_t5_encoder(tmp_path: Path, keys: Keys) -> None: + result = _identify(tmp_path, keys) + + assert isinstance(result.config, T5Encoder_Checkpoint_Config) + assert (result.config.type, result.config.format, result.config.base) == ( + ModelType.T5Encoder, + ModelFormat.Checkpoint, + BaseModelType.Any, + ) + assert result.match_count == 1 + + +def test_a_stored_record_reads_back_and_resolves_to_the_single_file_loader(tmp_path: Path) -> None: + stored = _identify(tmp_path, _fp16()).config.model_dump(mode="json") + + restored = TypeAdapter(AnyModelConfig).validate_python(stored) + loader, _, _ = ModelLoaderRegistry.get_implementation(restored, SubModelType.TextEncoder2) + + assert isinstance(restored, T5Encoder_Checkpoint_Config) + assert loader is T5EncoderSingleFileLoader + + +def test_the_first_shard_of_a_sharded_export_is_not_a_t5_encoder(tmp_path: Path) -> None: + # It carries the embedding and block 0 at full width; only the last shard ends in the final norm. + keys = _fp16() + del keys["encoder.final_layer_norm.weight"] + + result = _identify(tmp_path, keys) + + assert result.config is None + assert not result.invalid_matches + + +def test_wans_umt5_is_not_taken_for_t5(tmp_path: Path) -> None: + result = _identify(tmp_path, umt5_xxl_fp8_scaled_comfy_keys.state_dict_keys, "umt5_xxl.safetensors") + + assert result.config is None + assert not result.invalid_matches + + +def test_an_encoder_decoder_checkpoint_is_not_an_encoder(tmp_path: Path) -> None: + keys = {**t5xxl_fp16_comfy_keys.state_dict_keys, "decoder.final_layer_norm.weight": ([4096], "F16")} + + assert _identify(tmp_path, keys).config is None + + +def test_a_t5_narrower_than_xxl_is_refused_with_the_width_flux_needs(tmp_path: Path) -> None: + # T5 v1.1 XL: the same names at half the width. FLUX.1 and SD 3 cannot condition on it. + keys = {key: ([2048 if d == 4096 else d for d in shape], dtype) for key, (shape, dtype) in _fp16().items()} + + result = _identify(tmp_path, keys) + + assert result.config is None + assert [str(e) for e in result.invalid_matches] == [ + "this T5 encoder has width 2048 and vocabulary 32128, but FLUX.1 and SD 3 need T5 v1.1 XXL " + "(width 4096, vocabulary 32128)." + ] + + +@pytest.mark.parametrize( + ("change", "reason"), + [ + pytest.param( + lambda keys: { + k: (shape, "I8" if k.endswith("SelfAttention.q.weight") else dtype) + for k, (shape, dtype) in keys.items() + }, + "integer-quantized weight(s)", + id="int8", + ), + pytest.param( + lambda keys: {**keys, "encoder.block.0.layer.0.SelfAttention.q.weight_scale_2": ([], "F32")}, + "nvfp4-quantized", + id="nvfp4", + ), + ], +) +def test_builds_quantized_past_fp8_are_refused_at_install(tmp_path: Path, change, reason: str) -> None: + result = _identify(tmp_path, change(_fp16())) + + assert result.config is None + assert len(result.invalid_matches) == 1 + assert reason in str(result.invalid_matches[0]) + + +@pytest.mark.parametrize( + ("marker", "refused"), + [({"format": "float8_e4m3fn"}, False), (mxfp8_marker(), True)], + ids=["fp8_marker", "mxfp8_marker"], +) +def test_a_format_declared_in_the_header_is_refused_unless_it_is_fp8( + tmp_path: Path, marker: dict[str, Any], refused: bool +) -> None: + # A real file: the per-layer `.comfy_quant` markers are read from tensor bytes, not from the header. + path = tmp_path / "t5xxl.safetensors" + save_file( + { + "encoder.block.0.layer.0.SelfAttention.q.weight": torch.zeros(2, 2), + "encoder.block.0.layer.0.SelfAttention.q.comfy_quant": comfy_quant_marker(marker), + }, + str(path), + ) + mod = ModelOnDisk(path) + + def check() -> None: + raise_if_quantized_beyond_fp8(mod, mod.load_state_dict(), "T5 encoder", "Use the fp16 build.") + + if refused: + with pytest.raises(InvalidMatchError, match=r"Unsupported quantization format\(s\) \['mxfp8'\]"): + check() + else: + check() + + +def _fp16() -> Keys: + return dict(t5xxl_fp16_comfy_keys.state_dict_keys) diff --git a/tests/backend/model_manager/load/state_dicts/t5xxl_fp16_comfy_keys.py b/tests/backend/model_manager/load/state_dicts/t5xxl_fp16_comfy_keys.py new file mode 100644 index 00000000000..b1231540e82 --- /dev/null +++ b/tests/backend/model_manager/load/state_dicts/t5xxl_fp16_comfy_keys.py @@ -0,0 +1,30 @@ +"""Key layout of ComfyUI's fp16 T5-XXL encoder (`t5xxl_fp16`), as FLUX.1 and SD 3 users bring it. + +Captured on 2026-10-11 with `scripts/capture_state_dict_fixture.py`, +which reads the header only, from +`comfyanonymous/flux_text_encoders/t5xxl_fp16.safetensors`. + +Subsetting rule: `encoder.block` index 0, plus every key outside a stack. Values are `(shape, dtype)`. + +It is `T5EncoderModel`'s own state dict, key for key: no prefix, no config, no tokenizer. The token +embedding is written twice, as `shared.weight` and `encoder.embed_tokens.weight`, which the model ties +to one parameter -- the loader drops the copy rather than hold 256 MiB twice. Only block 0 carries a +`relative_attention_bias`; UMT5, which shares every other name, has one per block, and that is what +keeps the two apart. +""" + +state_dict_keys: dict[str, tuple[list[int], str]] = { + "encoder.block.0.layer.0.SelfAttention.k.weight": ([4096, 4096], "F16"), + "encoder.block.0.layer.0.SelfAttention.o.weight": ([4096, 4096], "F16"), + "encoder.block.0.layer.0.SelfAttention.q.weight": ([4096, 4096], "F16"), + "encoder.block.0.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.0.layer.0.SelfAttention.v.weight": ([4096, 4096], "F16"), + "encoder.block.0.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.0.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F16"), + "encoder.block.0.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F16"), + "encoder.block.0.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F16"), + "encoder.block.0.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.embed_tokens.weight": ([32128, 4096], "F16"), + "encoder.final_layer_norm.weight": ([4096], "F16"), + "shared.weight": ([32128, 4096], "F16"), +} diff --git a/tests/backend/model_manager/load/state_dicts/t5xxl_fp8_e4m3fn_comfy_keys.py b/tests/backend/model_manager/load/state_dicts/t5xxl_fp8_e4m3fn_comfy_keys.py new file mode 100644 index 00000000000..b13bcad3096 --- /dev/null +++ b/tests/backend/model_manager/load/state_dicts/t5xxl_fp8_e4m3fn_comfy_keys.py @@ -0,0 +1,28 @@ +"""Key layout of ComfyUI's raw fp8 T5-XXL encoder (`t5xxl_fp8_e4m3fn`). + +Captured on 2026-10-11 with `scripts/capture_state_dict_fixture.py`, +which reads the header only, from +`comfyanonymous/flux_text_encoders/t5xxl_fp8_e4m3fn.safetensors`. + +Subsetting rule: `encoder.block` index 0, plus every key outside a stack. Values are `(shape, dtype)`. + +The fp16 layout with *every* tensor cast to float8 and no scale anywhere -- the layer norms, the +position bias and both embeddings included. Only the Linear weights may stay fp8 at load; the rest +have to be widened, or the first norm hands fp8 activations to the next layer. +""" + +state_dict_keys: dict[str, tuple[list[int], str]] = { + "encoder.block.0.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.0.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.0.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.0.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F8_E4M3"), + "encoder.block.0.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.0.layer.0.layer_norm.weight": ([4096], "F8_E4M3"), + "encoder.block.0.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.0.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.0.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.0.layer.1.layer_norm.weight": ([4096], "F8_E4M3"), + "encoder.embed_tokens.weight": ([32128, 4096], "F8_E4M3"), + "encoder.final_layer_norm.weight": ([4096], "F8_E4M3"), + "shared.weight": ([32128, 4096], "F8_E4M3"), +} diff --git a/tests/backend/model_manager/load/state_dicts/t5xxl_fp8_e4m3fn_scaled_comfy_keys.py b/tests/backend/model_manager/load/state_dicts/t5xxl_fp8_e4m3fn_scaled_comfy_keys.py new file mode 100644 index 00000000000..e8640c581b2 --- /dev/null +++ b/tests/backend/model_manager/load/state_dicts/t5xxl_fp8_e4m3fn_scaled_comfy_keys.py @@ -0,0 +1,36 @@ +"""Key layout of ComfyUI's scaled fp8 T5-XXL encoder (`t5xxl_fp8_e4m3fn_scaled`). + +Captured on 2026-10-11 with `scripts/capture_state_dict_fixture.py`, +which reads the header only, from +`comfyanonymous/flux_text_encoders/t5xxl_fp8_e4m3fn_scaled.safetensors`. + +Subsetting rule: `encoder.block` index 0, plus every key outside a stack. Values are `(shape, dtype)`. + +Linear weights in float8, each with a scalar float32 `scale_weight` (per tensor, the older spelling +of `weight_scale`), beside a zero-element `scaled_fp8` marker that names no layer. Norms, the position +bias and the embeddings stay fp16. The same file is redistributed in Comfy-Org's SD 3.5 repositories. +""" + +state_dict_keys: dict[str, tuple[list[int], str]] = { + "encoder.block.0.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.0.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.0.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.0.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.0.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.0.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.0.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.0.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.0.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.0.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.0.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.0.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.0.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.0.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.0.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.0.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.0.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.embed_tokens.weight": ([32128, 4096], "F16"), + "encoder.final_layer_norm.weight": ([4096], "F16"), + "scaled_fp8": ([0], "F8_E4M3"), + "shared.weight": ([32128, 4096], "F16"), +} diff --git a/tests/backend/model_manager/load/state_dicts/umt5_xxl_fp8_scaled_comfy_keys.py b/tests/backend/model_manager/load/state_dicts/umt5_xxl_fp8_scaled_comfy_keys.py new file mode 100644 index 00000000000..e5b038d53f0 --- /dev/null +++ b/tests/backend/model_manager/load/state_dicts/umt5_xxl_fp8_scaled_comfy_keys.py @@ -0,0 +1,428 @@ +"""Key layout of ComfyUI's scaled fp8 UMT5-XXL encoder, the text encoder of Wan. + +Captured on 2026-10-11 with `scripts/capture_state_dict_fixture.py`, +which reads the header only, from +`Comfy-Org/Wan_2.1_ComfyUI_repackaged/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors`. + +Subsetting rule: none -- every key in the file. Values are `(shape, dtype)`. + +Every T5 key name at T5-XXL's widths, which is why it is here: the T5 single-file probe must not +claim it. What differs is a `relative_attention_bias` in every block instead of block 0 only, a +256384-token vocabulary, no `encoder.embed_tokens.weight`, and the tokenizer itself shipped as a uint8 +`spiece_model` tensor. +""" + +state_dict_keys: dict[str, tuple[list[int], str]] = { + "encoder.block.0.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.0.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.0.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.0.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.0.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.0.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.0.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.0.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.0.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.0.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.0.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.0.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.0.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.0.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.0.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.0.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.0.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.1.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.1.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.1.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.1.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.1.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.1.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.1.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.1.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.1.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.1.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.1.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.1.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.1.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.1.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.1.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.1.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.1.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.10.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.10.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.10.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.10.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.10.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.10.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.10.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.10.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.10.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.10.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.10.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.10.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.10.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.10.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.10.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.10.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.10.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.11.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.11.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.11.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.11.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.11.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.11.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.11.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.11.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.11.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.11.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.11.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.11.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.11.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.11.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.11.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.11.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.11.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.12.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.12.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.12.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.12.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.12.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.12.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.12.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.12.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.12.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.12.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.12.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.12.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.12.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.12.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.12.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.12.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.12.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.13.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.13.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.13.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.13.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.13.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.13.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.13.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.13.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.13.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.13.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.13.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.13.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.13.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.13.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.13.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.13.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.13.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.14.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.14.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.14.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.14.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.14.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.14.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.14.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.14.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.14.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.14.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.14.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.14.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.14.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.14.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.14.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.14.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.14.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.15.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.15.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.15.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.15.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.15.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.15.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.15.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.15.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.15.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.15.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.15.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.15.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.15.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.15.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.15.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.15.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.15.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.16.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.16.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.16.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.16.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.16.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.16.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.16.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.16.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.16.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.16.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.16.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.16.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.16.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.16.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.16.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.16.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.16.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.17.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.17.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.17.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.17.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.17.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.17.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.17.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.17.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.17.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.17.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.17.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.17.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.17.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.17.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.17.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.17.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.17.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.18.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.18.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.18.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.18.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.18.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.18.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.18.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.18.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.18.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.18.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.18.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.18.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.18.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.18.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.18.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.18.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.18.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.19.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.19.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.19.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.19.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.19.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.19.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.19.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.19.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.19.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.19.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.19.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.19.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.19.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.19.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.19.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.19.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.19.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.2.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.2.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.2.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.2.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.2.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.2.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.2.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.2.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.2.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.2.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.2.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.2.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.2.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.2.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.2.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.2.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.2.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.20.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.20.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.20.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.20.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.20.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.20.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.20.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.20.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.20.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.20.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.20.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.20.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.20.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.20.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.20.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.20.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.20.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.21.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.21.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.21.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.21.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.21.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.21.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.21.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.21.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.21.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.21.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.21.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.21.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.21.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.21.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.21.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.21.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.21.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.22.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.22.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.22.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.22.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.22.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.22.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.22.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.22.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.22.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.22.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.22.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.22.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.22.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.22.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.22.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.22.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.22.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.23.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.23.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.23.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.23.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.23.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.23.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.23.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.23.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.23.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.23.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.23.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.23.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.23.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.23.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.23.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.23.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.23.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.3.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.3.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.3.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.3.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.3.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.3.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.3.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.3.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.3.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.3.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.3.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.3.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.3.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.3.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.3.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.3.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.3.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.4.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.4.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.4.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.4.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.4.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.4.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.4.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.4.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.4.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.4.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.4.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.4.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.4.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.4.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.4.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.4.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.4.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.5.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.5.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.5.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.5.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.5.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.5.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.5.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.5.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.5.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.5.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.5.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.5.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.5.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.5.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.5.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.5.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.5.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.6.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.6.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.6.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.6.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.6.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.6.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.6.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.6.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.6.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.6.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.6.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.6.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.6.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.6.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.6.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.6.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.6.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.7.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.7.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.7.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.7.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.7.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.7.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.7.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.7.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.7.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.7.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.7.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.7.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.7.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.7.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.7.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.7.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.7.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.8.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.8.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.8.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.8.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.8.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.8.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.8.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.8.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.8.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.8.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.8.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.8.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.8.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.8.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.8.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.8.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.8.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.block.9.layer.0.SelfAttention.k.scale_weight": ([], "F32"), + "encoder.block.9.layer.0.SelfAttention.k.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.9.layer.0.SelfAttention.o.scale_weight": ([], "F32"), + "encoder.block.9.layer.0.SelfAttention.o.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.9.layer.0.SelfAttention.q.scale_weight": ([], "F32"), + "encoder.block.9.layer.0.SelfAttention.q.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.9.layer.0.SelfAttention.relative_attention_bias.weight": ([32, 64], "F16"), + "encoder.block.9.layer.0.SelfAttention.v.scale_weight": ([], "F32"), + "encoder.block.9.layer.0.SelfAttention.v.weight": ([4096, 4096], "F8_E4M3"), + "encoder.block.9.layer.0.layer_norm.weight": ([4096], "F16"), + "encoder.block.9.layer.1.DenseReluDense.wi_0.scale_weight": ([], "F32"), + "encoder.block.9.layer.1.DenseReluDense.wi_0.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.9.layer.1.DenseReluDense.wi_1.scale_weight": ([], "F32"), + "encoder.block.9.layer.1.DenseReluDense.wi_1.weight": ([10240, 4096], "F8_E4M3"), + "encoder.block.9.layer.1.DenseReluDense.wo.scale_weight": ([], "F32"), + "encoder.block.9.layer.1.DenseReluDense.wo.weight": ([4096, 10240], "F8_E4M3"), + "encoder.block.9.layer.1.layer_norm.weight": ([4096], "F16"), + "encoder.final_layer_norm.weight": ([4096], "F16"), + "scaled_fp8": ([0], "F8_E4M3"), + "shared.weight": ([256384, 4096], "F16"), + "spiece_model": ([4548313], "U8"), +} diff --git a/tests/backend/model_manager/load/state_dicts/utils.py b/tests/backend/model_manager/load/state_dicts/utils.py index 575570e2eaf..7e320fb7f50 100644 --- a/tests/backend/model_manager/load/state_dicts/utils.py +++ b/tests/backend/model_manager/load/state_dicts/utils.py @@ -1,10 +1,17 @@ """Shared helpers for model-loader state-dict fixtures. Mirrors `tests/backend/patches/lora_conversions/lora_state_dicts/utils.py`: a fixture module -exports `state_dict_keys: dict[str, list[int]]` (key name -> shape, captured from a real -checkpoint) and tests expand it to a mock state dict with `keys_to_mock_state_dict()`. +exports `state_dict_keys`, key name -> shape (or `(shape, dtype)` for the layouts +`scripts/capture_state_dict_fixture.py` captures from a real checkpoint's header). Tests expand it to a +mock state dict with `keys_to_mock_state_dict()`, or write it back as a header with +`write_header_only_safetensors()`. """ +import json +import math +import struct +from pathlib import Path + import torch @@ -24,3 +31,25 @@ def token_extents(shape: list[int]) -> list[int]: instead. """ return [min(extent, 4) for extent in shape] + + +_SAFETENSORS_DTYPE_BYTES = {"F32": 4, "F16": 2, "BF16": 2, "F8_E4M3": 1, "F8_E5M2": 1, "I8": 1, "U8": 1} + + +def write_header_only_safetensors(path: Path, keys: dict[str, tuple[list[int], str]]) -> Path: + """Write a safetensors file that has a fixture's real header and none of its data. + + Identification reads a safetensors file's header and nothing else, so a captured layout can be probed at its + real shapes -- a T5-XXL is told from a smaller T5 by its width -- without writing gigabytes. Anything that + reads tensor data from such a file fails, which is the point: identification must not. + """ + header: dict[str, dict] = {} + offset = 0 + for key, (shape, dtype) in keys.items(): + nbytes = _SAFETENSORS_DTYPE_BYTES[dtype] * math.prod(shape) + header[key] = {"dtype": dtype, "shape": shape, "data_offsets": [offset, offset + nbytes]} + offset += nbytes + encoded = json.dumps(header).encode("utf-8") + encoded += b" " * (-len(encoded) % 8) + path.write_bytes(struct.pack(" HF transformers key remapping) -- ``_infer_t5_config_from_state_dict`` (tensor-shape -> ``T5Config`` inference) -- ``_make_feed_forward_gguf_safe`` (the wo-dtype workaround and its fail-loud guard) +These cover the llama.cpp -> HF transformers key remapping of ``T5EncoderGGUFModel`` in isolation +(``_convert_t5_gguf_to_transformers``). The config inference and the feed-forward workaround it shares +with the single-file loader are covered in ``tests/backend/t5/test_t5_encoder.py``. The loader's ``__init__`` needs the full model-cache infrastructure, but the methods under test only use the static ``_shape_of`` helper, so the tests instantiate the class via ``object.__new__`` @@ -12,7 +11,6 @@ import re -import pytest import torch from invokeai.backend.model_manager.load.model_loaders.flux import T5EncoderGGUFModel @@ -86,120 +84,6 @@ def test_non_string_and_unrelated_keys_pass_through(self): assert set(out.keys()) == {0, "some.unrelated.key"} -def _synthetic_t5_state_dict( - *, - vocab_size: int = 32, - d_model: int = 8, - inner_dim: int = 16, - num_buckets: int = 4, - num_heads: int = 2, - d_ff: int = 24, - num_layers: int = 2, -) -> dict[str, torch.Tensor]: - """A minimal HF-named T5 encoder state dict with the shapes the inference reads.""" - sd: dict[str, torch.Tensor] = { - "shared.weight": torch.empty(vocab_size, d_model), - "encoder.block.0.layer.0.SelfAttention.q.weight": torch.empty(inner_dim, d_model), - "encoder.block.0.layer.0.SelfAttention.relative_attention_bias.weight": torch.empty(num_buckets, num_heads), - "encoder.block.0.layer.1.DenseReluDense.wi_0.weight": torch.empty(d_ff, d_model), - } - # Add keys for the remaining blocks so num_layers is inferred correctly. - for i in range(1, num_layers): - sd[f"encoder.block.{i}.layer.0.SelfAttention.q.weight"] = torch.empty(inner_dim, d_model) - return sd - - -class TestInferT5ConfigFromStateDict: - def test_infers_expected_dimensions(self): - sd = _synthetic_t5_state_dict() - config = _loader()._infer_t5_config_from_state_dict(sd) - - assert config.vocab_size == 32 - assert config.d_model == 8 - assert config.num_heads == 2 - assert config.d_kv == 8 # inner_dim (16) // num_heads (2) - assert config.d_ff == 24 - assert config.num_layers == 2 - assert config.relative_attention_num_buckets == 4 - # Fixed values expected for the targeted T5 v1.1 XXL family. - assert config.feed_forward_proj == "gated-gelu" - assert config.is_gated_act is True - - @pytest.mark.parametrize( - "missing_key", - [ - "shared.weight", - "encoder.block.0.layer.0.SelfAttention.q.weight", - "encoder.block.0.layer.0.SelfAttention.relative_attention_bias.weight", - "encoder.block.0.layer.1.DenseReluDense.wi_0.weight", - ], - ) - def test_missing_required_key_raises(self, missing_key: str): - sd = _synthetic_t5_state_dict(num_layers=1) - del sd[missing_key] - with pytest.raises(ValueError): - _loader()._infer_t5_config_from_state_dict(sd) - - -class TestMakeFeedForwardGGUFSafe: - def _tiny_t5_encoder(self): - from transformers import T5Config, T5EncoderModel - - config = T5Config( - vocab_size=32, - d_model=8, - d_kv=4, - d_ff=16, - num_layers=1, - num_heads=2, - feed_forward_proj="gated-gelu", - is_gated_act=True, - dense_act_fn="gelu_new", - ) - return T5EncoderModel(config) - - def test_gated_feed_forward_is_patched(self): - model = self._tiny_t5_encoder() - T5EncoderGGUFModel._make_feed_forward_gguf_safe(model) - - patched = [m for m in model.modules() if m.__class__.__name__ == "T5DenseGatedActDense"] - assert patched, "expected at least one gated feed-forward module in a gated-gelu T5" - for module in patched: - # The forward was rebound to the module-local ``gated_forward`` closure. - assert module.forward.__func__.__name__ == "gated_forward" - - def test_patched_forward_does_not_cast_to_integer_weight_dtype(self): - # Regression guard for the uint8/int8 dtype bug: with a fake uint8 (non-floating) wo weight, - # the patched forward must NOT cast activations to the weight dtype. - model = self._tiny_t5_encoder() - T5EncoderGGUFModel._make_feed_forward_gguf_safe(model) - ff = next(m for m in model.modules() if m.__class__.__name__ == "T5DenseGatedActDense") - - # Swap wo for a stub whose weight is a uint8 tensor and record the dtype it receives. - received_dtypes = [] - - class _RecordingWo(torch.nn.Module): - def __init__(self): - super().__init__() - self.weight = torch.zeros(8, 16, dtype=torch.uint8) - - def forward(self, x): - received_dtypes.append(x.dtype) - return x.to(torch.float32)[..., :8] - - ff.wo = _RecordingWo() - ff(torch.randn(1, 3, 8)) - - assert received_dtypes and received_dtypes[0].is_floating_point - - def test_raises_when_no_feed_forward_modules_match(self): - # If transformers ever renames the T5 feed-forward classes, patching would be a silent no-op. - # The guard must fail loudly instead. - model = torch.nn.Linear(2, 2) - with pytest.raises(RuntimeError, match="Failed to patch any T5 feed-forward modules"): - T5EncoderGGUFModel._make_feed_forward_gguf_safe(model) - - def test_convert_keys_use_expected_block_regex(): # Sanity check that the module's block pattern only matches ``enc.blk.N.*`` keys. pattern = re.compile(r"^enc\.blk\.(\d+)\.(.+)$") diff --git a/tests/backend/model_manager/load/test_t5_single_file_loader.py b/tests/backend/model_manager/load/test_t5_single_file_loader.py new file mode 100644 index 00000000000..4db8cbde692 --- /dev/null +++ b/tests/backend/model_manager/load/test_t5_single_file_loader.py @@ -0,0 +1,218 @@ +"""Loading a T5 encoder from one safetensors file in the layouts ComfyUI distributes T5-XXL in. + +A tiny T5 v1.1 stands in for the 4.7B encoder: the loader reads the architecture from tensor shapes, so the +same code path builds both. Each file is written the way ComfyUI writes it -- the token embedding twice, and +for the fp8 builds either every tensor in float8 (``t5xxl_fp8_e4m3fn``) or the Linear weights in float8 with a +per-tensor ``scale_weight`` and a ``scaled_fp8`` marker beside fp16 norms (``t5xxl_fp8_e4m3fn_scaled``). + +Forwards run in float32: CPU bf16 matmuls fault on part of the hosted Windows fleet. +""" + +from pathlib import Path +from unittest.mock import MagicMock + +import pytest +import torch +from safetensors.torch import save_file +from transformers import T5Config, T5EncoderModel + +import invokeai.backend.model_manager.load.model_loaders.flux as loader_module +from invokeai.backend.model_manager.configs.t5_encoder import T5Encoder_Checkpoint_Config +from invokeai.backend.model_manager.load.load_default import put_in_eval_mode +from invokeai.backend.model_manager.load.model_cache.torch_module_autocast.torch_module_autocast import ( + apply_custom_layers_to_model, +) +from invokeai.backend.model_manager.load.model_loaders.flux import T5EncoderSingleFileLoader +from invokeai.backend.model_manager.taxonomy import SubModelType +from invokeai.backend.util.logging import InvokeAILogger + +FP8 = torch.float8_e4m3fn +LINEAR_SUFFIXES = ( + "SelfAttention.q.weight", + "SelfAttention.k.weight", + "SelfAttention.v.weight", + "SelfAttention.o.weight", + "DenseReluDense.wi_0.weight", + "DenseReluDense.wi_1.weight", + "DenseReluDense.wo.weight", +) + + +def _is_linear_weight(key: str) -> bool: + return key.endswith(LINEAR_SUFFIXES) + + +def _tiny_reference() -> T5EncoderModel: + torch.manual_seed(0) + config = T5Config( + vocab_size=32, + d_model=16, + d_kv=4, + d_ff=32, + num_layers=2, + num_heads=4, + feed_forward_proj="gated-gelu", + is_gated_act=True, + dense_act_fn="gelu_new", + use_cache=False, + ) + model = T5EncoderModel(config).eval() + # T5 initializes some weights near zero; spread them so fp8 rounding and a lost scale are both visible. + with torch.no_grad(): + for param in model.parameters(): + param.copy_(torch.randn_like(param) * 0.5) + return model + + +def _comfy_state_dict(reference: T5EncoderModel) -> dict[str, torch.Tensor]: + """The reference's state dict as ComfyUI saves it: `shared` and `encoder.embed_tokens` both present.""" + sd = {key: value.detach().clone() for key, value in reference.state_dict().items()} + sd["encoder.embed_tokens.weight"] = sd["shared.weight"].clone() + return sd + + +def _write_fp16(reference: T5EncoderModel, path: Path) -> dict[str, torch.Tensor]: + sd = {key: value.half() for key, value in _comfy_state_dict(reference).items()} + save_file(sd, str(path)) + return {key: value.float() for key, value in sd.items()} + + +def _write_fp16_embed_tokens_only(reference: T5EncoderModel, path: Path) -> dict[str, torch.Tensor]: + """A file that carries the token embedding only as the encoder's copy.""" + sd = {key: value.half() for key, value in _comfy_state_dict(reference).items() if key != "shared.weight"} + save_file(sd, str(path)) + dequantized = {key: value.float() for key, value in sd.items()} + dequantized["shared.weight"] = dequantized["encoder.embed_tokens.weight"] + return dequantized + + +def _write_raw_fp8(reference: T5EncoderModel, path: Path) -> dict[str, torch.Tensor]: + sd = {key: value.to(FP8) for key, value in _comfy_state_dict(reference).items()} + save_file(sd, str(path)) + return {key: value.float() for key, value in sd.items()} + + +def _write_scaled_fp8(reference: T5EncoderModel, path: Path) -> dict[str, torch.Tensor]: + file_sd: dict[str, torch.Tensor] = {"scaled_fp8": torch.empty(0, dtype=FP8)} + dequantized: dict[str, torch.Tensor] = {} + for key, value in _comfy_state_dict(reference).items(): + if _is_linear_weight(key): + scale = (value.abs().max() / 448.0).float() + quantized = (value / scale).to(FP8) + file_sd[key] = quantized + file_sd[key[: -len(".weight")] + ".scale_weight"] = scale + dequantized[key] = quantized.float() * scale + else: + file_sd[key] = value.half() + dequantized[key] = file_sd[key].float() + save_file(file_sd, str(path)) + return dequantized + + +@pytest.fixture +def loader(monkeypatch: pytest.MonkeyPatch) -> T5EncoderSingleFileLoader: + loader = object.__new__(T5EncoderSingleFileLoader) + loader._ram_cache = MagicMock() + loader._logger = InvokeAILogger.get_logger("test") + loader._torch_device = torch.device("cpu") + monkeypatch.setattr(loader_module.TorchDevice, "choose_bfloat16_safe_dtype", staticmethod(lambda _: torch.float32)) + return loader + + +def _keep_fp8(monkeypatch: pytest.MonkeyPatch, keep: bool) -> None: + monkeypatch.setattr(loader_module, "should_keep_fp8_weights", lambda _device: keep) + monkeypatch.setattr(loader_module, "_device_supports_fp8_storage", lambda _device, _logger=None: keep) + + +def _load_encoder(loader: T5EncoderSingleFileLoader, path: Path) -> T5EncoderModel: + # `put_in_eval_mode` is what `ModelLoader.load_model` wraps every `_load_model` in. + return put_in_eval_mode(loader._load_model(_config(path), SubModelType.TextEncoder2)) + + +def _config(path: Path) -> T5Encoder_Checkpoint_Config: + return T5Encoder_Checkpoint_Config.model_construct(path=str(path), name=path.stem, cpu_only=None) + + +def _expected_output(dequantized: dict[str, torch.Tensor], reference: T5EncoderModel) -> torch.Tensor: + """The encoder's output with the file's weights as they decode, built without the loader.""" + expected = T5EncoderModel(reference.config).eval() + expected.load_state_dict(dequantized, strict=False) + return _encode(expected) + + +def _encode(model: torch.nn.Module) -> torch.Tensor: + input_ids = torch.tensor([[3, 7, 1, 30, 12, 0]]) + with torch.no_grad(): + return model(input_ids=input_ids).last_hidden_state + + +@pytest.mark.parametrize("writer", [_write_fp16, _write_fp16_embed_tokens_only, _write_raw_fp8, _write_scaled_fp8]) +def test_a_folded_load_reproduces_the_weights_the_file_decodes_to( + loader: T5EncoderSingleFileLoader, monkeypatch: pytest.MonkeyPatch, tmp_path: Path, writer +) -> None: + _keep_fp8(monkeypatch, False) + reference = _tiny_reference() + path = tmp_path / "t5xxl.safetensors" + dequantized = writer(reference, path) + + model = _load_encoder(loader, path) + + assert [name for name, p in model.named_parameters() if p.is_meta] == [] + assert all(p.dtype == torch.float32 for p in model.parameters()) + # One embedding, tied: the duplicate the file carries is not held twice. + assert model.encoder.embed_tokens.weight is model.shared.weight + for name, param in model.state_dict().items(): + assert torch.equal(param, dequantized[name]), name + torch.testing.assert_close(_encode(model), _expected_output(dequantized, reference)) + + +@pytest.mark.parametrize("writer", [_write_raw_fp8, _write_scaled_fp8]) +def test_a_kept_load_holds_linear_weights_in_fp8_and_encodes_the_same( + loader: T5EncoderSingleFileLoader, monkeypatch: pytest.MonkeyPatch, tmp_path: Path, writer +) -> None: + _keep_fp8(monkeypatch, True) + reference = _tiny_reference() + path = tmp_path / "t5xxl.safetensors" + dequantized = writer(reference, path) + + model = _load_encoder(loader, path) + + for name, param in model.named_parameters(): + # Only Linear weights may stay quantized: an fp8 norm or embedding would hand fp8 to the next layer. + assert param.dtype == (FP8 if _is_linear_weight(name) else torch.float32), name + assert model.encoder.embed_tokens.weight is model.shared.weight + # Kept for storage only: the fp8 matmul would also quantize T5's outlier-heavy activations. + fp8_linears = [m for m in model.modules() if isinstance(m, torch.nn.Linear) and m.weight.dtype == FP8] + assert fp8_linears and all(m._fp8_full_precision_matmul for m in fp8_linears) + # `wo` reads its own weight's dtype; in fp8 the activations would be rounded to fp8 without the patch. + apply_custom_layers_to_model(model) + torch.testing.assert_close(_encode(model), _expected_output(dequantized, reference)) + + +def test_keeping_fp8_reserves_less_than_folding( + loader: T5EncoderSingleFileLoader, monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + path = tmp_path / "t5xxl.safetensors" + _write_scaled_fp8(_tiny_reference(), path) + + reserved = {} + for keep in (False, True): + _keep_fp8(monkeypatch, keep) + loader._ram_cache = MagicMock() + _load_encoder(loader, path) + loader._ram_cache.make_room.assert_called_once() + reserved[keep] = loader._ram_cache.make_room.call_args.args[0] + + assert 0 < reserved[True] < reserved[False] + + +def test_the_tokenizer_is_the_bundled_one_and_reserves_nothing( + loader: T5EncoderSingleFileLoader, tmp_path: Path +) -> None: + from invokeai.backend.t5.t5_tokenizer import load_bundled_t5_tokenizer + + path = tmp_path / "t5xxl.safetensors" + config = _config(path) + + assert loader._load_model(config, SubModelType.Tokenizer2) is load_bundled_t5_tokenizer() + assert loader.get_size_fs(config, path, SubModelType.Tokenizer3) == 0 diff --git a/tests/backend/t5/test_t5_encoder.py b/tests/backend/t5/test_t5_encoder.py new file mode 100644 index 00000000000..4aba05b7f76 --- /dev/null +++ b/tests/backend/t5/test_t5_encoder.py @@ -0,0 +1,131 @@ +"""Unit tests for building a T5 encoder from a bare state dict (shared by the GGUF and single-file loaders).""" + +import pytest +import torch + +from invokeai.backend.t5.t5_encoder import infer_t5_encoder_config, make_t5_feed_forward_safe + + +def _synthetic_t5_state_dict( + *, + vocab_size: int = 32, + d_model: int = 8, + inner_dim: int = 16, + num_buckets: int = 4, + num_heads: int = 2, + d_ff: int = 24, + num_layers: int = 2, +) -> dict[str, torch.Tensor]: + """A minimal HF-named T5 encoder state dict with the shapes the inference reads.""" + sd: dict[str, torch.Tensor] = { + "shared.weight": torch.empty(vocab_size, d_model), + "encoder.block.0.layer.0.SelfAttention.q.weight": torch.empty(inner_dim, d_model), + "encoder.block.0.layer.0.SelfAttention.relative_attention_bias.weight": torch.empty(num_buckets, num_heads), + "encoder.block.0.layer.1.DenseReluDense.wi_0.weight": torch.empty(d_ff, d_model), + } + # Add keys for the remaining blocks so num_layers is inferred correctly. + for i in range(1, num_layers): + sd[f"encoder.block.{i}.layer.0.SelfAttention.q.weight"] = torch.empty(inner_dim, d_model) + return sd + + +class TestInferT5ConfigFromStateDict: + def test_infers_expected_dimensions(self): + sd = _synthetic_t5_state_dict() + config = infer_t5_encoder_config(sd) + + assert config.vocab_size == 32 + assert config.d_model == 8 + assert config.num_heads == 2 + assert config.d_kv == 8 # inner_dim (16) // num_heads (2) + assert config.d_ff == 24 + assert config.num_layers == 2 + assert config.relative_attention_num_buckets == 4 + # Fixed values expected for the targeted T5 v1.1 XXL family. + assert config.feed_forward_proj == "gated-gelu" + assert config.is_gated_act is True + + @pytest.mark.parametrize( + "missing_key", + [ + "shared.weight", + "encoder.block.0.layer.0.SelfAttention.q.weight", + "encoder.block.0.layer.0.SelfAttention.relative_attention_bias.weight", + "encoder.block.0.layer.1.DenseReluDense.wi_0.weight", + ], + ) + def test_missing_required_key_raises(self, missing_key: str): + sd = _synthetic_t5_state_dict(num_layers=1) + del sd[missing_key] + with pytest.raises(ValueError): + infer_t5_encoder_config(sd) + + +class TestMakeT5FeedForwardSafe: + def _tiny_t5_encoder(self): + from transformers import T5Config, T5EncoderModel + + config = T5Config( + vocab_size=32, + d_model=8, + d_kv=4, + d_ff=16, + num_layers=1, + num_heads=2, + feed_forward_proj="gated-gelu", + is_gated_act=True, + dense_act_fn="gelu_new", + ) + return T5EncoderModel(config) + + def test_gated_feed_forward_is_patched(self): + model = self._tiny_t5_encoder() + make_t5_feed_forward_safe(model) + + patched = [m for m in model.modules() if m.__class__.__name__ == "T5DenseGatedActDense"] + assert patched, "expected at least one gated feed-forward module in a gated-gelu T5" + for module in patched: + # The forward was rebound to the module-local ``gated_forward`` closure. + assert module.forward.__func__.__name__ == "gated_forward" + + @pytest.mark.parametrize("storage_dtype", [torch.uint8, torch.float8_e4m3fn]) + def test_patched_forward_keeps_activations_out_of_quantized_storage_dtypes(self, storage_dtype: torch.dtype): + # Regression guard: GGML stores wo as uint8 and a single-file fp8 checkpoint can keep it in float8. + # Neither may become the activations' dtype; the Linear dequantizes its weight instead. + model = self._tiny_t5_encoder() + make_t5_feed_forward_safe(model) + ff = next(m for m in model.modules() if m.__class__.__name__ == "T5DenseGatedActDense") + + received_dtypes = [] + + class _RecordingWo(torch.nn.Module): + def __init__(self): + super().__init__() + self.weight = torch.zeros(8, 16, dtype=storage_dtype) + + def forward(self, x): + received_dtypes.append(x.dtype) + return x.to(torch.float32)[..., :8] + + ff.wo = _RecordingWo() + ff(torch.randn(1, 3, 8)) + + assert received_dtypes == [torch.float32] + + def test_patched_forward_casts_to_a_compute_dtype_wo(self): + # The cast transformers performs for a wo held in another float compute dtype is preserved. + model = self._tiny_t5_encoder() + make_t5_feed_forward_safe(model) + ff = next(m for m in model.modules() if m.__class__.__name__ == "T5DenseGatedActDense") + ff.wo = ff.wo.to(torch.float64) + + out = ff(torch.randn(1, 3, 8)) + + assert out.dtype == torch.float64 + + def test_raises_when_no_feed_forward_modules_match(self): + # If transformers ever renames the T5 feed-forward classes, patching would be a silent no-op. + # The guard must fail loudly instead. + model = torch.nn.Linear(2, 2) + with pytest.raises(RuntimeError, match="Failed to patch any T5 feed-forward modules"): + make_t5_feed_forward_safe(model)