Create clip variant type, create new fucntions for discerning clipL and clipG in the frontend

This commit is contained in:
Brandon Rising
2024-10-30 11:10:08 -04:00
committed by Brandon
parent 1eca4f12c8
commit b87f4e59a5
5 changed files with 84 additions and 16 deletions

View File

@@ -2711,6 +2711,8 @@ export type components = {
* @enum {string}
*/
type: "clip_embed";
/** @default large */
variant?: components["schemas"]["ClipVariantType"];
};
/** CLIPField */
CLIPField: {
@@ -3515,6 +3517,12 @@ export type components = {
*/
deleted: number;
};
/**
* ClipVariantType
* @description Variant type.
* @enum {string}
*/
ClipVariantType: "large" | "gigantic";
/**
* CollectInvocation
* @description Collects values into a collection
@@ -14216,7 +14224,7 @@ export type components = {
/**
* CFG Scale
* @description Classifier-Free Guidance scale
* @default 7
* @default 3.5
*/
cfg_scale?: number | number[];
/**
@@ -16259,6 +16267,8 @@ export type components = {
/** Path Or Prefix */
path_or_prefix: string;
model_type: components["schemas"]["ModelType"];
/** Variant */
variant?: components["schemas"]["ModelRepoVariant"] | components["schemas"]["ClipVariantType"] | null;
};
/**
* Subtract Integers

View File

@@ -75,21 +75,25 @@ export type AnyModelConfig =
| MainModelConfig
| CLIPVisionDiffusersConfig;
const check_submodel_model_type = (submodels: AnyModelConfig['submodels'], model_type: string): boolean => {
const check_submodel = (submodels: AnyModelConfig['submodels'], check_str: string): boolean => {
for (const submodel in submodels) {
if (submodel && submodels[submodel] && submodels[submodel].model_type === model_type) {
if (
submodel &&
submodels[submodel] &&
(submodels[submodel].model_type === check_str || submodels[submodel].variant === check_str)
) {
return true;
}
}
return false;
};
const check_submodels = (indentifier: string, config: AnyModelConfig): boolean => {
return (
(config.type === 'main' &&
const check_submodels = (indentifiers: string[], config: AnyModelConfig): boolean => {
return indentifiers.every(
(indentifier) =>
config.type === 'main' &&
config.submodels &&
(indentifier in config.submodels || check_submodel_model_type(config.submodels, indentifier))) ||
false
(indentifier in config.submodels || check_submodel(config.submodels, indentifier))
);
};
@@ -98,15 +102,15 @@ export const isLoRAModelConfig = (config: AnyModelConfig): config is LoRAModelCo
};
export const isVAEModelConfig = (config: AnyModelConfig): config is VAEModelConfig | MainModelConfig => {
return config.type === 'vae' || check_submodels('vae', config);
return config.type === 'vae' || check_submodels(['vae'], config);
};
export const isNonFluxVAEModelConfig = (config: AnyModelConfig): config is VAEModelConfig | MainModelConfig => {
return (config.type === 'vae' || check_submodels('vae', config)) && config.base !== 'flux';
return (config.type === 'vae' || check_submodels(['vae'], config)) && config.base !== 'flux';
};
export const isFluxVAEModelConfig = (config: AnyModelConfig): config is VAEModelConfig | MainModelConfig => {
return (config.type === 'vae' || check_submodels('vae', config)) && config.base === 'flux';
return (config.type === 'vae' || check_submodels(['vae'], config)) && config.base === 'flux';
};
export const isControlNetModelConfig = (config: AnyModelConfig): config is ControlNetModelConfig => {
@@ -128,11 +132,23 @@ export const isT2IAdapterModelConfig = (config: AnyModelConfig): config is T2IAd
export const isT5EncoderModelConfig = (
config: AnyModelConfig
): config is T5EncoderModelConfig | T5EncoderBnbQuantizedLlmInt8bModelConfig | MainModelConfig => {
return config.type === 't5_encoder' || check_submodels('t5_encoder', config);
return config.type === 't5_encoder' || check_submodels(['t5_encoder'], config);
};
export const isCLIPEmbedModelConfig = (config: AnyModelConfig): config is CLIPEmbedModelConfig | MainModelConfig => {
return config.type === 'clip_embed' || check_submodels('clip_embed', config);
return config.type === 'clip_embed' || check_submodels(['clip_embed'], config);
};
export const isCLIPLEmbedModelConfig = (config: AnyModelConfig): config is CLIPEmbedModelConfig | MainModelConfig => {
return (
(config.type === 'clip_embed' && config.variant === 'large') || check_submodels(['clip_embed', 'gigantic'], config)
);
};
export const isCLIPGEmbedModelConfig = (config: AnyModelConfig): config is CLIPEmbedModelConfig | MainModelConfig => {
return (
(config.type === 'clip_embed' && config.variant === 'gigantic') || check_submodels(['clip_embed', 'large'], config)
);
};
export const isSpandrelImageToImageModelConfig = (