From f7998b4be06763c497b7ae9c358495bcbd91ffa2 Mon Sep 17 00:00:00 2001
From: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com>
Date: Sat, 10 Feb 2024 01:44:15 +0530
Subject: [PATCH] feat: Add DWPose to Linear UI
---
invokeai/frontend/web/public/locales/en.json | 5 +
.../ControlAdapterProcessorComponent.tsx | 5 +
.../components/processors/DWPoseProcessor.tsx | 66 +
.../controlAdapters/store/constants.ts | 18 +-
.../features/controlAdapters/store/types.ts | 21 +
.../frontend/web/src/services/api/schema.ts | 1722 ++++++++++++++++-
.../frontend/web/src/services/api/types.ts | 1 +
7 files changed, 1812 insertions(+), 26 deletions(-)
create mode 100644 invokeai/frontend/web/src/features/controlAdapters/components/processors/DWPoseProcessor.tsx
diff --git a/invokeai/frontend/web/public/locales/en.json b/invokeai/frontend/web/public/locales/en.json
index e204057fe5..508a0e8ff5 100644
--- a/invokeai/frontend/web/public/locales/en.json
+++ b/invokeai/frontend/web/public/locales/en.json
@@ -235,6 +235,9 @@
"fill": "Fill",
"h": "H",
"handAndFace": "Hand and Face",
+ "face": "Face",
+ "body": "Body",
+ "hands": "Hands",
"hed": "HED",
"hedDescription": "Holistically-Nested Edge Detection",
"hideAdvanced": "Hide Advanced",
@@ -263,6 +266,8 @@
"normalBaeDescription": "Normal BAE processing",
"openPose": "Openpose",
"openPoseDescription": "Human pose estimation using Openpose",
+ "dwPose": "DWPose",
+ "dwPoseDescription": "Human pose estimation using DWPose",
"pidi": "PIDI",
"pidiDescription": "PIDI image processing",
"processor": "Processor",
diff --git a/invokeai/frontend/web/src/features/controlAdapters/components/ControlAdapterProcessorComponent.tsx b/invokeai/frontend/web/src/features/controlAdapters/components/ControlAdapterProcessorComponent.tsx
index 73d4f801c7..c3931385f2 100644
--- a/invokeai/frontend/web/src/features/controlAdapters/components/ControlAdapterProcessorComponent.tsx
+++ b/invokeai/frontend/web/src/features/controlAdapters/components/ControlAdapterProcessorComponent.tsx
@@ -6,6 +6,7 @@ import CannyProcessor from './processors/CannyProcessor';
import ColorMapProcessor from './processors/ColorMapProcessor';
import ContentShuffleProcessor from './processors/ContentShuffleProcessor';
import DepthAnyThingProcessor from './processors/DepthAnyThingProcessor';
+import DWPoseProcessor from './processors/DWPoseProcessor';
import HedProcessor from './processors/HedProcessor';
import LineartAnimeProcessor from './processors/LineartAnimeProcessor';
import LineartProcessor from './processors/LineartProcessor';
@@ -77,6 +78,10 @@ const ControlAdapterProcessorComponent = ({ id }: Props) => {
return ;
}
+ if (processorNode.type === 'dwpose_image_processor') {
+ return ;
+ }
+
if (processorNode.type === 'pidi_image_processor') {
return ;
}
diff --git a/invokeai/frontend/web/src/features/controlAdapters/components/processors/DWPoseProcessor.tsx b/invokeai/frontend/web/src/features/controlAdapters/components/processors/DWPoseProcessor.tsx
new file mode 100644
index 0000000000..c48ef73722
--- /dev/null
+++ b/invokeai/frontend/web/src/features/controlAdapters/components/processors/DWPoseProcessor.tsx
@@ -0,0 +1,66 @@
+import { Flex, FormControl, FormLabel, Switch } from '@invoke-ai/ui-library';
+import { useProcessorNodeChanged } from 'features/controlAdapters/components/hooks/useProcessorNodeChanged';
+import { CONTROLNET_PROCESSORS } from 'features/controlAdapters/store/constants';
+import type { RequiredDWPoseImageProcessorInvocation } from 'features/controlAdapters/store/types';
+import type { ChangeEvent } from 'react';
+import { memo, useCallback } from 'react';
+import { useTranslation } from 'react-i18next';
+
+import ProcessorWrapper from './common/ProcessorWrapper';
+
+const DEFAULTS = CONTROLNET_PROCESSORS.dwpose_image_processor.default as RequiredDWPoseImageProcessorInvocation;
+
+type Props = {
+ controlNetId: string;
+ processorNode: RequiredDWPoseImageProcessorInvocation;
+ isEnabled: boolean;
+};
+
+const DWPoseProcessor = (props: Props) => {
+ const { controlNetId, processorNode, isEnabled } = props;
+ const { draw_body, draw_face, draw_hands } = processorNode;
+ const processorChanged = useProcessorNodeChanged();
+ const { t } = useTranslation();
+
+ const handleDrawBodyChanged = useCallback(
+ (e: ChangeEvent) => {
+ processorChanged(controlNetId, { draw_body: e.target.checked });
+ },
+ [controlNetId, processorChanged]
+ );
+
+ const handleDrawFaceChanged = useCallback(
+ (e: ChangeEvent) => {
+ processorChanged(controlNetId, { draw_face: e.target.checked });
+ },
+ [controlNetId, processorChanged]
+ );
+
+ const handleDrawHandsChanged = useCallback(
+ (e: ChangeEvent) => {
+ processorChanged(controlNetId, { draw_hands: e.target.checked });
+ },
+ [controlNetId, processorChanged]
+ );
+
+ return (
+
+
+
+ {t('controlnet.body')}
+
+
+
+ {t('controlnet.face')}
+
+
+
+ {t('controlnet.hands')}
+
+
+
+
+ );
+};
+
+export default memo(DWPoseProcessor);
diff --git a/invokeai/frontend/web/src/features/controlAdapters/store/constants.ts b/invokeai/frontend/web/src/features/controlAdapters/store/constants.ts
index 61af98afc4..73ccaf74a7 100644
--- a/invokeai/frontend/web/src/features/controlAdapters/store/constants.ts
+++ b/invokeai/frontend/web/src/features/controlAdapters/store/constants.ts
@@ -221,6 +221,22 @@ export const CONTROLNET_PROCESSORS: ControlNetProcessorsDict = {
hand_and_face: false,
},
},
+ dwpose_image_processor: {
+ type: 'dwpose_image_processor',
+ get label() {
+ return i18n.t('controlnet.dwPose');
+ },
+ get description() {
+ return i18n.t('controlnet.dwPoseDescription');
+ },
+ default: {
+ id: 'dwpose_image_processor',
+ type: 'dwpose_image_processor',
+ draw_body: true,
+ draw_face: false,
+ draw_hands: false,
+ },
+ },
pidi_image_processor: {
type: 'pidi_image_processor',
get label() {
@@ -266,7 +282,7 @@ export const CONTROLNET_MODEL_DEFAULT_PROCESSORS: {
lineart_anime: 'lineart_anime_image_processor',
softedge: 'hed_image_processor',
shuffle: 'content_shuffle_image_processor',
- openpose: 'openpose_image_processor',
+ openpose: 'dwpose_image_processor',
mediapipe: 'mediapipe_face_processor',
pidi: 'pidi_image_processor',
zoe: 'zoe_depth_image_processor',
diff --git a/invokeai/frontend/web/src/features/controlAdapters/store/types.ts b/invokeai/frontend/web/src/features/controlAdapters/store/types.ts
index 86aff63155..f761a7bc9b 100644
--- a/invokeai/frontend/web/src/features/controlAdapters/store/types.ts
+++ b/invokeai/frontend/web/src/features/controlAdapters/store/types.ts
@@ -11,6 +11,7 @@ import type {
ColorMapImageProcessorInvocation,
ContentShuffleImageProcessorInvocation,
DepthAnythingImageProcessorInvocation,
+ DWPoseImageProcessorInvocation,
HedImageProcessorInvocation,
LineartAnimeImageProcessorInvocation,
LineartImageProcessorInvocation,
@@ -41,6 +42,7 @@ export type ControlAdapterProcessorNode =
| MlsdImageProcessorInvocation
| NormalbaeImageProcessorInvocation
| OpenposeImageProcessorInvocation
+ | DWPoseImageProcessorInvocation
| PidiImageProcessorInvocation
| ZoeDepthImageProcessorInvocation;
@@ -150,6 +152,14 @@ export type RequiredOpenposeImageProcessorInvocation = O.Required<
'type' | 'detect_resolution' | 'image_resolution' | 'hand_and_face'
>;
+/**
+ * The DWPose processor node, with parameters flagged as required
+ */
+export type RequiredDWPoseImageProcessorInvocation = O.Required<
+ DWPoseImageProcessorInvocation,
+ 'type' | 'draw_body' | 'draw_face' | 'draw_hands'
+>;
+
/**
* The Pidi processor node, with parameters flagged as required
*/
@@ -180,6 +190,7 @@ export type RequiredControlAdapterProcessorNode =
| RequiredMlsdImageProcessorInvocation
| RequiredNormalbaeImageProcessorInvocation
| RequiredOpenposeImageProcessorInvocation
+ | RequiredDWPoseImageProcessorInvocation
| RequiredPidiImageProcessorInvocation
| RequiredZoeDepthImageProcessorInvocation,
'id'
@@ -308,6 +319,16 @@ export const isOpenposeImageProcessorInvocation = (obj: unknown): obj is Openpos
return false;
};
+/**
+ * Type guard for DWPoseImageProcessorInvocation
+ */
+export const isDWPoseImageProcessorInvocation = (obj: unknown): obj is DWPoseImageProcessorInvocation => {
+ if (isObject(obj) && 'type' in obj && obj.type === 'dwpose_image_processor') {
+ return true;
+ }
+ return false;
+};
+
/**
* Type guard for PidiImageProcessorInvocation
*/
diff --git a/invokeai/frontend/web/src/services/api/schema.ts b/invokeai/frontend/web/src/services/api/schema.ts
index a4f358640d..8a45d1923a 100644
--- a/invokeai/frontend/web/src/services/api/schema.ts
+++ b/invokeai/frontend/web/src/services/api/schema.ts
@@ -238,6 +238,20 @@ export type paths = {
*/
patch: operations["sync_models_to_config"];
};
+ "/api/v1/model/record/merge": {
+ /**
+ * Merge
+ * @description Merge diffusers models.
+ *
+ * keys: List of 2-3 model keys to merge together. All models must use the same base type.
+ * merged_model_name: Name for the merged model [Concat model names]
+ * alpha: Alpha value (0.0-1.0). Higher values give more weight to the second model [0.5]
+ * force: If true, force the merge even if the models were generated by different versions of the diffusers library [False]
+ * interp: Interpolation method. One of "weighted_sum", "sigmoid", "inv_sigmoid" or "add_difference" [weighted_sum]
+ * merge_dest_directory: Specify a directory to store the merged model in [models directory]
+ */
+ put: operations["merge"];
+ };
"/api/v1/download_queue/": {
/**
* List Downloads
@@ -666,6 +680,70 @@ export type components = {
*/
type: "add";
};
+ /**
+ * Adjust Image Hue Plus
+ * @description Adjusts the Hue of an image by rotating it in the selected color space
+ */
+ AdjustImageHuePlusInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description The image to adjust */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * Space
+ * @description Color space in which to rotate hue by polar coords (*: non-invertible)
+ * @default Okhsl
+ * @enum {string}
+ */
+ space?: "HSV / HSL / RGB" | "Okhsl" | "Okhsv" | "*Oklch / Oklab" | "*LCh / CIELab" | "*UPLab (w/CIELab_to_UPLab.icc)";
+ /**
+ * Degrees
+ * @description Degrees by which to rotate image hue
+ * @default 0
+ */
+ degrees?: number;
+ /**
+ * Preserve Lightness
+ * @description Whether to preserve CIELAB lightness values
+ * @default false
+ */
+ preserve_lightness?: boolean;
+ /**
+ * Ok Adaptive Gamut
+ * @description Higher preserves chroma at the expense of lightness (Oklab)
+ * @default 0.05
+ */
+ ok_adaptive_gamut?: number;
+ /**
+ * Ok High Precision
+ * @description Use more steps in computing gamut (Oklab/Okhsv/Okhsl)
+ * @default true
+ */
+ ok_high_precision?: boolean;
+ /**
+ * type
+ * @default img_hue_adjust_plus
+ * @constant
+ */
+ type: "img_hue_adjust_plus";
+ };
/**
* AppConfig
* @description App Config Response
@@ -1168,6 +1246,38 @@ export type components = {
*/
config?: Record | null;
};
+ /** Body_merge */
+ Body_merge: {
+ /**
+ * Keys
+ * @description Keys for two to three models to merge
+ */
+ keys: string[];
+ /**
+ * Merged Model Name
+ * @description Name of destination model
+ */
+ merged_model_name?: string | null;
+ /**
+ * Alpha
+ * @description Alpha weighting strength to apply to 2d and 3d models
+ * @default 0.5
+ */
+ alpha?: number;
+ /**
+ * Force
+ * @description Force merging of models created with different versions of diffusers
+ * @default false
+ */
+ force?: boolean;
+ /** @description Interpolation method */
+ interp?: components["schemas"]["MergeInterpolationMethod"] | null;
+ /**
+ * Merge Dest Directory
+ * @description Save the merged model to the designated directory (with 'merged_model_name' appended)
+ */
+ merge_dest_directory?: string | null;
+ };
/** Body_merge_models */
Body_merge_models: {
/** @description Model configuration */
@@ -1342,6 +1452,39 @@ export type components = {
*/
type: "boolean_output";
};
+ /**
+ * BRIA AI Background Removal
+ * @description Uses the new Bria 1.4 model to remove backgrounds from images.
+ */
+ BriaRemoveBackgroundInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description The image to crop */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * type
+ * @default bria_bg_remove
+ * @constant
+ */
+ type: "bria_bg_remove";
+ };
/**
* CLIPOutput
* @description Base class for invocations that output a CLIP field
@@ -1436,6 +1579,282 @@ export type components = {
/** @description Base model (usually 'Any') */
base_model: components["schemas"]["invokeai__backend__model_management__models__base__BaseModelType"];
};
+ /**
+ * CMYK Color Separation
+ * @description Get color images from a base color and two others that subtractively mix to obtain it
+ */
+ CMYKColorSeparationInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /**
+ * Width
+ * @description Desired image width
+ * @default 512
+ */
+ width?: number;
+ /**
+ * Height
+ * @description Desired image height
+ * @default 512
+ */
+ height?: number;
+ /**
+ * C Value
+ * @description Desired final cyan value
+ * @default 0
+ */
+ c_value?: number;
+ /**
+ * M Value
+ * @description Desired final magenta value
+ * @default 25
+ */
+ m_value?: number;
+ /**
+ * Y Value
+ * @description Desired final yellow value
+ * @default 28
+ */
+ y_value?: number;
+ /**
+ * K Value
+ * @description Desired final black value
+ * @default 76
+ */
+ k_value?: number;
+ /**
+ * C Split
+ * @description Desired cyan split point % [0..1.0]
+ * @default 0.5
+ */
+ c_split?: number;
+ /**
+ * M Split
+ * @description Desired magenta split point % [0..1.0]
+ * @default 1
+ */
+ m_split?: number;
+ /**
+ * Y Split
+ * @description Desired yellow split point % [0..1.0]
+ * @default 0
+ */
+ y_split?: number;
+ /**
+ * K Split
+ * @description Desired black split point % [0..1.0]
+ * @default 0.5
+ */
+ k_split?: number;
+ /**
+ * Profile
+ * @description CMYK Color Profile
+ * @default Default
+ * @enum {string}
+ */
+ profile?: "Default" | "PIL";
+ /**
+ * type
+ * @default cmyk_separation
+ * @constant
+ */
+ type: "cmyk_separation";
+ };
+ /**
+ * CMYK Merge
+ * @description Merge subtractive color channels (CMYK+alpha)
+ */
+ CMYKMergeInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description The c channel */
+ c_channel?: components["schemas"]["ImageField"] | null;
+ /** @description The m channel */
+ m_channel?: components["schemas"]["ImageField"] | null;
+ /** @description The y channel */
+ y_channel?: components["schemas"]["ImageField"] | null;
+ /** @description The k channel */
+ k_channel?: components["schemas"]["ImageField"] | null;
+ /** @description The alpha channel */
+ alpha_channel?: components["schemas"]["ImageField"] | null;
+ /**
+ * Profile
+ * @description CMYK Color Profile
+ * @default Default
+ * @enum {string}
+ */
+ profile?: "Default" | "PIL";
+ /**
+ * type
+ * @default cmyk_merge
+ * @constant
+ */
+ type: "cmyk_merge";
+ };
+ /**
+ * CMYKSeparationOutput
+ * @description Base class for invocations that output four L-mode images (C, M, Y, K)
+ */
+ CMYKSeparationOutput: {
+ /** @description Blank image of the specified color */
+ color_image: components["schemas"]["ImageField"];
+ /**
+ * Width
+ * @description The width of the image in pixels
+ */
+ width: number;
+ /**
+ * Height
+ * @description The height of the image in pixels
+ */
+ height: number;
+ /** @description Blank image of the first separated color */
+ part_a: components["schemas"]["ImageField"];
+ /**
+ * Rgb Red A
+ * @description R value of color part A
+ */
+ rgb_red_a: number;
+ /**
+ * Rgb Green A
+ * @description G value of color part A
+ */
+ rgb_green_a: number;
+ /**
+ * Rgb Blue A
+ * @description B value of color part A
+ */
+ rgb_blue_a: number;
+ /** @description Blank image of the second separated color */
+ part_b: components["schemas"]["ImageField"];
+ /**
+ * Rgb Red B
+ * @description R value of color part B
+ */
+ rgb_red_b: number;
+ /**
+ * Rgb Green B
+ * @description G value of color part B
+ */
+ rgb_green_b: number;
+ /**
+ * Rgb Blue B
+ * @description B value of color part B
+ */
+ rgb_blue_b: number;
+ /**
+ * type
+ * @default cmyk_separation_output
+ * @constant
+ */
+ type: "cmyk_separation_output";
+ };
+ /**
+ * CMYK Split
+ * @description Split an image into subtractive color channels (CMYK+alpha)
+ */
+ CMYKSplitInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description The image to halftone */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * Profile
+ * @description CMYK Color Profile
+ * @default Default
+ * @enum {string}
+ */
+ profile?: "Default" | "PIL";
+ /**
+ * type
+ * @default cmyk_split
+ * @constant
+ */
+ type: "cmyk_split";
+ };
+ /**
+ * CMYKSplitOutput
+ * @description Base class for invocations that output four L-mode images (C, M, Y, K)
+ */
+ CMYKSplitOutput: {
+ /** @description Grayscale image of the cyan channel */
+ c_channel: components["schemas"]["ImageField"];
+ /** @description Grayscale image of the magenta channel */
+ m_channel: components["schemas"]["ImageField"];
+ /** @description Grayscale image of the yellow channel */
+ y_channel: components["schemas"]["ImageField"];
+ /** @description Grayscale image of the k channel */
+ k_channel: components["schemas"]["ImageField"];
+ /** @description Grayscale image of the alpha channel */
+ alpha_channel: components["schemas"]["ImageField"];
+ /**
+ * Width
+ * @description The width of the image in pixels
+ */
+ width: number;
+ /**
+ * Height
+ * @description The height of the image in pixels
+ */
+ height: number;
+ /**
+ * type
+ * @default cmyk_split_output
+ * @constant
+ */
+ type: "cmyk_split_output";
+ };
/**
* CV2 Infill
* @description Infills transparent areas of an image using OpenCV Inpainting
@@ -3053,6 +3472,54 @@ export type components = {
*/
type: "cv_inpaint";
};
+ /**
+ * DWPose Image Processor
+ * @description Generates an openpose pose from an image using DWPose
+ */
+ DWPoseImageProcessorInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description The image to process */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * Draw Body
+ * @default true
+ */
+ draw_body?: boolean;
+ /**
+ * Draw Face
+ * @default false
+ */
+ draw_face?: boolean;
+ /**
+ * Draw Hands
+ * @default false
+ */
+ draw_hands?: boolean;
+ /**
+ * type
+ * @default dwpose_image_processor
+ * @constant
+ */
+ type: "dwpose_image_processor";
+ };
/** DeleteBoardResult */
DeleteBoardResult: {
/**
@@ -3523,6 +3990,39 @@ export type components = {
*/
priority: number;
};
+ /**
+ * Equivalent Achromatic Lightness
+ * @description Calculate Equivalent Achromatic Lightness from image
+ */
+ EquivalentAchromaticLightnessInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description Image from which to get channel */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * type
+ * @default ealightness
+ * @constant
+ */
+ type: "ealightness";
+ };
/** ExposedField */
ExposedField: {
/** Nodeid */
@@ -3775,6 +4275,39 @@ export type components = {
*/
y: number;
};
+ /**
+ * Flatten Histogram (Grayscale)
+ * @description Scales the values of an L-mode image by scaling them to the full range 0..255 in equal proportions
+ */
+ FlattenHistogramMono: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description Single-channel image for which to flatten the histogram */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * type
+ * @default flatten_histogram_mono
+ * @constant
+ */
+ type: "flatten_histogram_mono";
+ };
/**
* Float Collection Primitive
* @description A collection of float primitive values
@@ -4124,7 +4657,7 @@ export type components = {
* @description The nodes in this graph
*/
nodes?: {
- [key: string]: components["schemas"]["LatentConsistencyInvocation"] | components["schemas"]["SDXLModelLoaderInvocation"] | components["schemas"]["CannyImageProcessorInvocation"] | components["schemas"]["MidasDepthImageProcessorInvocation"] | components["schemas"]["FloatToIntegerInvocation"] | components["schemas"]["ControlNetInvocation"] | components["schemas"]["ScaleLatentsInvocation"] | components["schemas"]["FloatCollectionInvocation"] | components["schemas"]["ImageChannelMultiplyInvocation"] | components["schemas"]["DynamicPromptInvocation"] | components["schemas"]["BooleanCollectionInvocation"] | components["schemas"]["HedImageProcessorInvocation"] | components["schemas"]["LoraLoaderInvocation"] | components["schemas"]["AddInvocation"] | components["schemas"]["StringSplitInvocation"] | components["schemas"]["CompelInvocation"] | components["schemas"]["MediapipeFaceProcessorInvocation"] | components["schemas"]["ImagePasteInvocation"] | components["schemas"]["MergeTilesToImageInvocation"] | components["schemas"]["ImageResizeInvocation"] | components["schemas"]["CV2InfillInvocation"] | components["schemas"]["ImageChannelInvocation"] | components["schemas"]["StringReplaceInvocation"] | components["schemas"]["SeamlessModeInvocation"] | components["schemas"]["LinearUIOutputInvocation"] | components["schemas"]["PromptsFromFileInvocation"] | components["schemas"]["RangeInvocation"] | components["schemas"]["IPAdapterInvocation"] | components["schemas"]["ConditioningCollectionInvocation"] | components["schemas"]["ImageChannelOffsetInvocation"] | components["schemas"]["CalculateImageTilesMinimumOverlapInvocation"] | components["schemas"]["MlsdImageProcessorInvocation"] | components["schemas"]["MaskFromAlphaInvocation"] | components["schemas"]["LaMaInfillInvocation"] | components["schemas"]["BooleanInvocation"] | components["schemas"]["ONNXLatentsToImageInvocation"] | components["schemas"]["ResizeLatentsInvocation"] | components["schemas"]["LineartAnimeImageProcessorInvocation"] | components["schemas"]["RoundInvocation"] | components["schemas"]["CenterPadCropInvocation"] | components["schemas"]["BlendLatentsInvocation"] | components["schemas"]["FreeUInvocation"] | components["schemas"]["ShowImageInvocation"] | components["schemas"]["LineartImageProcessorInvocation"] | components["schemas"]["DivideInvocation"] | components["schemas"]["VaeLoaderInvocation"] | components["schemas"]["CvInpaintInvocation"] | components["schemas"]["ImageLerpInvocation"] | components["schemas"]["SaveImageInvocation"] | components["schemas"]["LatentsToImageInvocation"] | components["schemas"]["ZoeDepthImageProcessorInvocation"] | components["schemas"]["FloatMathInvocation"] | components["schemas"]["SDXLRefinerCompelPromptInvocation"] | components["schemas"]["ImageCropInvocation"] | components["schemas"]["MaskCombineInvocation"] | components["schemas"]["CalculateImageTilesEvenSplitInvocation"] | components["schemas"]["StringSplitNegInvocation"] | components["schemas"]["FaceOffInvocation"] | components["schemas"]["StringInvocation"] | components["schemas"]["RangeOfSizeInvocation"] | components["schemas"]["FaceIdentifierInvocation"] | components["schemas"]["GraphInvocation"] | components["schemas"]["ImageCollectionInvocation"] | components["schemas"]["InfillColorInvocation"] | components["schemas"]["StringJoinInvocation"] | components["schemas"]["FaceMaskInvocation"] | components["schemas"]["ImageScaleInvocation"] | components["schemas"]["CollectInvocation"] | components["schemas"]["CalculateImageTilesInvocation"] | components["schemas"]["ONNXPromptInvocation"] | components["schemas"]["InfillPatchMatchInvocation"] | components["schemas"]["ImageToLatentsInvocation"] | components["schemas"]["NoiseInvocation"] | components["schemas"]["SegmentAnythingProcessorInvocation"] | components["schemas"]["SDXLCompelPromptInvocation"] | components["schemas"]["BlankImageInvocation"] | components["schemas"]["MaskEdgeInvocation"] | components["schemas"]["ColorInvocation"] | components["schemas"]["PairTileImageInvocation"] | components["schemas"]["OpenposeImageProcessorInvocation"] | components["schemas"]["FloatInvocation"] | components["schemas"]["SchedulerInvocation"] | components["schemas"]["TileToPropertiesInvocation"] | components["schemas"]["SubtractInvocation"] | components["schemas"]["RandomRangeInvocation"] | components["schemas"]["MetadataInvocation"] | components["schemas"]["ImageInvocation"] | components["schemas"]["ClipSkipInvocation"] | components["schemas"]["RandomIntInvocation"] | components["schemas"]["ContentShuffleImageProcessorInvocation"] | components["schemas"]["IntegerMathInvocation"] | components["schemas"]["ColorCorrectInvocation"] | components["schemas"]["DenoiseLatentsInvocation"] | components["schemas"]["MultiplyInvocation"] | components["schemas"]["SDXLLoraLoaderInvocation"] | components["schemas"]["OnnxModelLoaderInvocation"] | components["schemas"]["UnsharpMaskInvocation"] | components["schemas"]["NormalbaeImageProcessorInvocation"] | components["schemas"]["CoreMetadataInvocation"] | components["schemas"]["FloatLinearRangeInvocation"] | components["schemas"]["IterateInvocation"] | components["schemas"]["CropLatentsCoreInvocation"] | components["schemas"]["TileResamplerProcessorInvocation"] | components["schemas"]["ImageInverseLerpInvocation"] | components["schemas"]["StepParamEasingInvocation"] | components["schemas"]["LatentsCollectionInvocation"] | components["schemas"]["StringJoinThreeInvocation"] | components["schemas"]["ImageMultiplyInvocation"] | components["schemas"]["ImageHueAdjustmentInvocation"] | components["schemas"]["InfillTileInvocation"] | components["schemas"]["RandomFloatInvocation"] | components["schemas"]["MainModelLoaderInvocation"] | components["schemas"]["ColorMapImageProcessorInvocation"] | components["schemas"]["ImageBlurInvocation"] | components["schemas"]["StringCollectionInvocation"] | components["schemas"]["ConditioningInvocation"] | components["schemas"]["T2IAdapterInvocation"] | components["schemas"]["SDXLRefinerModelLoaderInvocation"] | components["schemas"]["ONNXTextToLatentsInvocation"] | components["schemas"]["ImageConvertInvocation"] | components["schemas"]["MetadataItemInvocation"] | components["schemas"]["ESRGANInvocation"] | components["schemas"]["IntegerCollectionInvocation"] | components["schemas"]["LatentsInvocation"] | components["schemas"]["CreateDenoiseMaskInvocation"] | components["schemas"]["ImageNSFWBlurInvocation"] | components["schemas"]["IntegerInvocation"] | components["schemas"]["PidiImageProcessorInvocation"] | components["schemas"]["DepthAnythingImageProcessorInvocation"] | components["schemas"]["MergeMetadataInvocation"] | components["schemas"]["ImageWatermarkInvocation"] | components["schemas"]["IdealSizeInvocation"] | components["schemas"]["LeresImageProcessorInvocation"];
+ [key: string]: components["schemas"]["ResizeLatentsInvocation"] | components["schemas"]["MetadataInvocation"] | components["schemas"]["MergeTilesToImageInvocation"] | components["schemas"]["ImageEnhanceInvocation"] | components["schemas"]["SegmentAnythingProcessorInvocation"] | components["schemas"]["HandDepthMeshGraphormerProcessor"] | components["schemas"]["VaeLoaderInvocation"] | components["schemas"]["ImageNSFWBlurInvocation"] | components["schemas"]["FloatToIntegerInvocation"] | components["schemas"]["ONNXPromptInvocation"] | components["schemas"]["InfillTileInvocation"] | components["schemas"]["AddInvocation"] | components["schemas"]["ImageValueThresholdsInvocation"] | components["schemas"]["ControlNetInvocation"] | components["schemas"]["ShowImageInvocation"] | components["schemas"]["ImageResizeInvocation"] | components["schemas"]["OnnxModelLoaderInvocation"] | components["schemas"]["StringCollectionInvocation"] | components["schemas"]["StringReplaceInvocation"] | components["schemas"]["RoundInvocation"] | components["schemas"]["ONNXLatentsToImageInvocation"] | components["schemas"]["RandomRangeInvocation"] | components["schemas"]["IPAdapterInvocation"] | components["schemas"]["ImageConvertInvocation"] | components["schemas"]["ImageScaleInvocation"] | components["schemas"]["MultiplyInvocation"] | components["schemas"]["NormalbaeImageProcessorInvocation"] | components["schemas"]["FaceIdentifierInvocation"] | components["schemas"]["IntegerInvocation"] | components["schemas"]["StepParamEasingInvocation"] | components["schemas"]["ColorInvocation"] | components["schemas"]["SDXLRefinerCompelPromptInvocation"] | components["schemas"]["CollectInvocation"] | components["schemas"]["CalculateImageTilesMinimumOverlapInvocation"] | components["schemas"]["LineartAnimeImageProcessorInvocation"] | components["schemas"]["DivideInvocation"] | components["schemas"]["MaskedBlendLatentsInvocation"] | components["schemas"]["DWPoseImageProcessorInvocation"] | components["schemas"]["FlattenHistogramMono"] | components["schemas"]["ColorCorrectInvocation"] | components["schemas"]["EquivalentAchromaticLightnessInvocation"] | components["schemas"]["T2IAdapterInvocation"] | components["schemas"]["FloatInvocation"] | components["schemas"]["InfillPatchMatchInvocation"] | components["schemas"]["FloatMathInvocation"] | components["schemas"]["LeresImageProcessorInvocation"] | components["schemas"]["IntegerCollectionInvocation"] | components["schemas"]["MaskCombineInvocation"] | components["schemas"]["LatentConsistencyInvocation"] | components["schemas"]["CenterPadCropInvocation"] | components["schemas"]["ImageChannelMultiplyInvocation"] | components["schemas"]["IterateInvocation"] | components["schemas"]["MainModelLoaderInvocation"] | components["schemas"]["CreateDenoiseMaskInvocation"] | components["schemas"]["BlendLatentsInvocation"] | components["schemas"]["HedImageProcessorInvocation"] | components["schemas"]["ColorMapImageProcessorInvocation"] | components["schemas"]["NoiseImage2DInvocation"] | components["schemas"]["ShadowsHighlightsMidtonesMaskInvocation"] | components["schemas"]["FaceOffInvocation"] | components["schemas"]["DenoiseLatentsInvocation"] | components["schemas"]["StringSplitInvocation"] | components["schemas"]["TextToMaskClipsegInvocation"] | components["schemas"]["BlankImageInvocation"] | components["schemas"]["ImageInvocation"] | components["schemas"]["IntegerMathInvocation"] | components["schemas"]["PromptsFromFileInvocation"] | components["schemas"]["TileToPropertiesInvocation"] | components["schemas"]["UnsharpMaskInvocation"] | components["schemas"]["ImageHueAdjustmentInvocation"] | components["schemas"]["ImageCollectionInvocation"] | components["schemas"]["MergeMetadataInvocation"] | components["schemas"]["CvInpaintInvocation"] | components["schemas"]["ZoeDepthImageProcessorInvocation"] | components["schemas"]["MaskFromAlphaInvocation"] | components["schemas"]["CompelInvocation"] | components["schemas"]["FloatCollectionInvocation"] | components["schemas"]["CalculateImageTilesInvocation"] | components["schemas"]["StringInvocation"] | components["schemas"]["ESRGANInvocation"] | components["schemas"]["LatentsToImageInvocation"] | components["schemas"]["CMYKSplitInvocation"] | components["schemas"]["TileResamplerProcessorInvocation"] | components["schemas"]["ImageBlurInvocation"] | components["schemas"]["SeamlessModeInvocation"] | components["schemas"]["SubtractInvocation"] | components["schemas"]["PairTileImageInvocation"] | components["schemas"]["ImageRotateInvocation"] | components["schemas"]["ImageInverseLerpInvocation"] | components["schemas"]["CropLatentsCoreInvocation"] | components["schemas"]["StringSplitNegInvocation"] | components["schemas"]["MidasDepthImageProcessorInvocation"] | components["schemas"]["DepthAnythingImageProcessorInvocation"] | components["schemas"]["ImageMultiplyInvocation"] | components["schemas"]["NoiseSpectralInvocation"] | components["schemas"]["CMYKColorSeparationInvocation"] | components["schemas"]["RangeInvocation"] | components["schemas"]["ClipSkipInvocation"] | components["schemas"]["LatentsCollectionInvocation"] | components["schemas"]["LaMaInfillInvocation"] | components["schemas"]["FloatLinearRangeInvocation"] | components["schemas"]["BriaRemoveBackgroundInvocation"] | components["schemas"]["CMYKMergeInvocation"] | components["schemas"]["FaceMaskInvocation"] | components["schemas"]["RandomIntInvocation"] | components["schemas"]["MetadataItemInvocation"] | components["schemas"]["TextToMaskClipsegAdvancedInvocation"] | components["schemas"]["ConditioningInvocation"] | components["schemas"]["TextMaskInvocation"] | components["schemas"]["PidiImageProcessorInvocation"] | components["schemas"]["ImageChannelOffsetInvocation"] | components["schemas"]["CoreMetadataInvocation"] | components["schemas"]["ImageOffsetInvocation"] | components["schemas"]["IdealSizeInvocation"] | components["schemas"]["StringJoinInvocation"] | components["schemas"]["CalculateImageTilesEvenSplitInvocation"] | components["schemas"]["LineartImageProcessorInvocation"] | components["schemas"]["ImageLerpInvocation"] | components["schemas"]["ImageToLatentsInvocation"] | components["schemas"]["DynamicPromptInvocation"] | components["schemas"]["ImageCropInvocation"] | components["schemas"]["OpenposeImageProcessorInvocation"] | components["schemas"]["ImageChannelInvocation"] | components["schemas"]["SaveImageInvocation"] | components["schemas"]["SDXLRefinerModelLoaderInvocation"] | components["schemas"]["AdjustImageHuePlusInvocation"] | components["schemas"]["LatentsInvocation"] | components["schemas"]["CV2InfillInvocation"] | components["schemas"]["LinearUIOutputInvocation"] | components["schemas"]["ImageDilateOrErodeInvocation"] | components["schemas"]["RangeOfSizeInvocation"] | components["schemas"]["SDXLCompelPromptInvocation"] | components["schemas"]["InfillColorInvocation"] | components["schemas"]["ImageCompositorInvocation"] | components["schemas"]["ContentShuffleImageProcessorInvocation"] | components["schemas"]["ImagePasteInvocation"] | components["schemas"]["FreeUInvocation"] | components["schemas"]["MaskEdgeInvocation"] | components["schemas"]["GraphInvocation"] | components["schemas"]["RandomFloatInvocation"] | components["schemas"]["ConditioningCollectionInvocation"] | components["schemas"]["StringJoinThreeInvocation"] | components["schemas"]["OffsetLatentsInvocation"] | components["schemas"]["CannyImageProcessorInvocation"] | components["schemas"]["NoiseInvocation"] | components["schemas"]["ONNXTextToLatentsInvocation"] | components["schemas"]["ImageBlendInvocation"] | components["schemas"]["MediapipeFaceProcessorInvocation"] | components["schemas"]["BooleanInvocation"] | components["schemas"]["LoraLoaderInvocation"] | components["schemas"]["ImageWatermarkInvocation"] | components["schemas"]["BooleanCollectionInvocation"] | components["schemas"]["ScaleLatentsInvocation"] | components["schemas"]["SDXLModelLoaderInvocation"] | components["schemas"]["MlsdImageProcessorInvocation"] | components["schemas"]["SDXLLoraLoaderInvocation"] | components["schemas"]["SchedulerInvocation"];
};
/**
* Edges
@@ -4161,7 +4694,7 @@ export type components = {
* @description The results of node executions
*/
results: {
- [key: string]: components["schemas"]["ColorCollectionOutput"] | components["schemas"]["PairTileImageOutput"] | components["schemas"]["StringCollectionOutput"] | components["schemas"]["FaceOffOutput"] | components["schemas"]["StringOutput"] | components["schemas"]["SeamlessModeOutput"] | components["schemas"]["SDXLModelLoaderOutput"] | components["schemas"]["VAEOutput"] | components["schemas"]["ColorOutput"] | components["schemas"]["StringPosNegOutput"] | components["schemas"]["LoraLoaderOutput"] | components["schemas"]["IntegerCollectionOutput"] | components["schemas"]["ImageCollectionOutput"] | components["schemas"]["LatentsCollectionOutput"] | components["schemas"]["SchedulerOutput"] | components["schemas"]["NoiseOutput"] | components["schemas"]["CollectInvocationOutput"] | components["schemas"]["IntegerOutput"] | components["schemas"]["MetadataItemOutput"] | components["schemas"]["SDXLLoraLoaderOutput"] | components["schemas"]["T2IAdapterOutput"] | components["schemas"]["IdealSizeOutput"] | components["schemas"]["UNetOutput"] | components["schemas"]["TileToPropertiesOutput"] | components["schemas"]["SDXLRefinerModelLoaderOutput"] | components["schemas"]["FloatCollectionOutput"] | components["schemas"]["BooleanCollectionOutput"] | components["schemas"]["DenoiseMaskOutput"] | components["schemas"]["ConditioningOutput"] | components["schemas"]["GraphInvocationOutput"] | components["schemas"]["BooleanOutput"] | components["schemas"]["CLIPOutput"] | components["schemas"]["MetadataOutput"] | components["schemas"]["ConditioningCollectionOutput"] | components["schemas"]["FloatOutput"] | components["schemas"]["IterateInvocationOutput"] | components["schemas"]["ClipSkipInvocationOutput"] | components["schemas"]["ONNXModelLoaderOutput"] | components["schemas"]["IPAdapterOutput"] | components["schemas"]["LatentsOutput"] | components["schemas"]["String2Output"] | components["schemas"]["ModelLoaderOutput"] | components["schemas"]["FaceMaskOutput"] | components["schemas"]["CalculateImageTilesOutput"] | components["schemas"]["ControlOutput"] | components["schemas"]["ImageOutput"];
+ [key: string]: components["schemas"]["StringPosNegOutput"] | components["schemas"]["IntegerCollectionOutput"] | components["schemas"]["T2IAdapterOutput"] | components["schemas"]["SchedulerOutput"] | components["schemas"]["ImageOutput"] | components["schemas"]["CalculateImageTilesOutput"] | components["schemas"]["FaceOffOutput"] | components["schemas"]["ColorOutput"] | components["schemas"]["SDXLModelLoaderOutput"] | components["schemas"]["LatentsOutput"] | components["schemas"]["GraphInvocationOutput"] | components["schemas"]["UNetOutput"] | components["schemas"]["ColorCollectionOutput"] | components["schemas"]["MetadataOutput"] | components["schemas"]["PairTileImageOutput"] | components["schemas"]["CMYKSeparationOutput"] | components["schemas"]["IdealSizeOutput"] | components["schemas"]["String2Output"] | components["schemas"]["BooleanCollectionOutput"] | components["schemas"]["CLIPOutput"] | components["schemas"]["NoiseOutput"] | components["schemas"]["FaceMaskOutput"] | components["schemas"]["SDXLLoraLoaderOutput"] | components["schemas"]["StringOutput"] | components["schemas"]["SeamlessModeOutput"] | components["schemas"]["TileToPropertiesOutput"] | components["schemas"]["ConditioningOutput"] | components["schemas"]["IntegerOutput"] | components["schemas"]["LoraLoaderOutput"] | components["schemas"]["SDXLRefinerModelLoaderOutput"] | components["schemas"]["DenoiseMaskOutput"] | components["schemas"]["CollectInvocationOutput"] | components["schemas"]["ClipSkipInvocationOutput"] | components["schemas"]["ShadowsHighlightsMidtonesMasksOutput"] | components["schemas"]["HandDepthOutput"] | components["schemas"]["FloatOutput"] | components["schemas"]["BooleanOutput"] | components["schemas"]["IPAdapterOutput"] | components["schemas"]["StringCollectionOutput"] | components["schemas"]["ControlOutput"] | components["schemas"]["LatentsCollectionOutput"] | components["schemas"]["ImageCollectionOutput"] | components["schemas"]["ModelLoaderOutput"] | components["schemas"]["MetadataItemOutput"] | components["schemas"]["ONNXModelLoaderOutput"] | components["schemas"]["VAEOutput"] | components["schemas"]["ConditioningCollectionOutput"] | components["schemas"]["IterateInvocationOutput"] | components["schemas"]["FloatCollectionOutput"] | components["schemas"]["CMYKSplitOutput"];
};
/**
* Errors
@@ -4252,6 +4785,83 @@ export type components = {
/** Detail */
detail?: components["schemas"]["ValidationError"][];
};
+ /**
+ * Hand Depth w/ MeshGraphormer
+ * @description Generate hand depth maps to inpaint with using ControlNet
+ */
+ HandDepthMeshGraphormerProcessor: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description The image to process */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * Resolution
+ * @description Pixel resolution for output image
+ * @default 512
+ */
+ resolution?: number;
+ /**
+ * Mask Padding
+ * @description Amount to pad the hand mask by
+ * @default 30
+ */
+ mask_padding?: number;
+ /**
+ * Offload
+ * @description Offload model after usage
+ * @default false
+ */
+ offload?: boolean;
+ /**
+ * type
+ * @default hand_depth_mesh_graphormer_image_processor
+ * @constant
+ */
+ type: "hand_depth_mesh_graphormer_image_processor";
+ };
+ /**
+ * HandDepthOutput
+ * @description Base class for to output Meshgraphormer results
+ */
+ HandDepthOutput: {
+ /** @description Improved hands depth map */
+ image: components["schemas"]["ImageField"];
+ /** @description Hands area mask */
+ mask: components["schemas"]["ImageField"];
+ /**
+ * Width
+ * @description The width of the depth map in pixels
+ */
+ width: number;
+ /**
+ * Height
+ * @description The height of the depth map in pixels
+ */
+ height: number;
+ /**
+ * type
+ * @default meshgraphormer_output
+ * @constant
+ */
+ type: "meshgraphormer_output";
+ };
/**
* HED (softedge) Processor
* @description Applies HED edge detection to image
@@ -4622,6 +5232,87 @@ export type components = {
*/
type: "ideal_size_output";
};
+ /**
+ * Image Layer Blend
+ * @description Blend two images together, with optional opacity, mask, and blend modes
+ */
+ ImageBlendInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description The top image to blend */
+ layer_upper?: components["schemas"]["ImageField"];
+ /**
+ * Blend Mode
+ * @description Available blend modes
+ * @default Normal
+ * @enum {string}
+ */
+ blend_mode?: "Normal" | "Lighten Only" | "Darken Only" | "Lighten Only (EAL)" | "Darken Only (EAL)" | "Hue" | "Saturation" | "Color" | "Luminosity" | "Linear Dodge (Add)" | "Subtract" | "Multiply" | "Divide" | "Screen" | "Overlay" | "Linear Burn" | "Difference" | "Hard Light" | "Soft Light" | "Vivid Light" | "Linear Light" | "Color Burn" | "Color Dodge";
+ /**
+ * Opacity
+ * @description Desired opacity of the upper layer
+ * @default 1
+ */
+ opacity?: number;
+ /** @description Optional mask, used to restrict areas from blending */
+ mask?: components["schemas"]["ImageField"] | null;
+ /**
+ * Fit To Width
+ * @description Scale upper layer to fit base width
+ * @default false
+ */
+ fit_to_width?: boolean;
+ /**
+ * Fit To Height
+ * @description Scale upper layer to fit base height
+ * @default true
+ */
+ fit_to_height?: boolean;
+ /** @description The bottom image to blend */
+ layer_base?: components["schemas"]["ImageField"];
+ /**
+ * Color Space
+ * @description Available color spaces for blend computations
+ * @default Linear RGB
+ * @enum {string}
+ */
+ color_space?: "RGB" | "Linear RGB" | "HSL (RGB)" | "HSV (RGB)" | "Okhsl" | "Okhsv" | "Oklch (Oklab)" | "LCh (CIELab)";
+ /**
+ * Adaptive Gamut
+ * @description Adaptive gamut clipping (0=off). Higher prioritizes chroma over lightness
+ * @default 0
+ */
+ adaptive_gamut?: number;
+ /**
+ * High Precision
+ * @description Use more steps in computing gamut when possible
+ * @default true
+ */
+ high_precision?: boolean;
+ /**
+ * type
+ * @default img_blend
+ * @constant
+ */
+ type: "img_blend";
+ };
/**
* Blur Image
* @description Blurs an image
@@ -4867,6 +5558,77 @@ export type components = {
*/
type: "image_collection_output";
};
+ /**
+ * Image Compositor
+ * @description Removes backdrop from subject image then overlays subject on background image
+ */
+ ImageCompositorInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description Image of the subject on a plain monochrome background */
+ image_subject?: components["schemas"]["ImageField"];
+ /** @description Image of a background scene */
+ image_background?: components["schemas"]["ImageField"];
+ /**
+ * Chroma Key
+ * @description Can be empty for corner flood select, or CSS-3 color or tuple
+ * @default
+ */
+ chroma_key?: string;
+ /**
+ * Threshold
+ * @description Subject isolation flood-fill threshold
+ * @default 50
+ */
+ threshold?: number;
+ /**
+ * Fill X
+ * @description Scale base subject image to fit background width
+ * @default false
+ */
+ fill_x?: boolean;
+ /**
+ * Fill Y
+ * @description Scale base subject image to fit background height
+ * @default true
+ */
+ fill_y?: boolean;
+ /**
+ * X Offset
+ * @description x-offset for the subject
+ * @default 0
+ */
+ x_offset?: number;
+ /**
+ * Y Offset
+ * @description y-offset for the subject
+ * @default 0
+ */
+ y_offset?: number;
+ /**
+ * type
+ * @default img_composite
+ * @constant
+ */
+ type: "img_composite";
+ };
/**
* Convert Image Mode
* @description Converts an image to a different mode.
@@ -5044,6 +5806,127 @@ export type components = {
*/
board_id?: string | null;
};
+ /**
+ * Image Dilate or Erode
+ * @description Dilate (expand) or erode (contract) an image
+ */
+ ImageDilateOrErodeInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description The image from which to create a mask */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * Lightness Only
+ * @description If true, only applies to image lightness (CIELa*b*)
+ * @default false
+ */
+ lightness_only?: boolean;
+ /**
+ * Radius W
+ * @description Width (in pixels) by which to dilate(expand) or erode (contract) the image
+ * @default 4
+ */
+ radius_w?: number;
+ /**
+ * Radius H
+ * @description Height (in pixels) by which to dilate(expand) or erode (contract) the image
+ * @default 4
+ */
+ radius_h?: number;
+ /**
+ * Mode
+ * @description How to operate on the image
+ * @default Dilate
+ * @enum {string}
+ */
+ mode?: "Dilate" | "Erode";
+ /**
+ * type
+ * @default img_dilate_erode
+ * @constant
+ */
+ type: "img_dilate_erode";
+ };
+ /**
+ * Enhance Image
+ * @description Applies processing from PIL's ImageEnhance module.
+ */
+ ImageEnhanceInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description The image for which to apply processing */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * Invert
+ * @description Whether to invert the image colors
+ * @default false
+ */
+ invert?: boolean;
+ /**
+ * Color
+ * @description Color enhancement factor
+ * @default 1
+ */
+ color?: number;
+ /**
+ * Contrast
+ * @description Contrast enhancement factor
+ * @default 1
+ */
+ contrast?: number;
+ /**
+ * Brightness
+ * @description Brightness enhancement factor
+ * @default 1
+ */
+ brightness?: number;
+ /**
+ * Sharpness
+ * @description Sharpness enhancement factor
+ * @default 1
+ */
+ sharpness?: number;
+ /**
+ * type
+ * @default img_enhance
+ * @constant
+ */
+ type: "img_enhance";
+ };
/**
* ImageField
* @description An image primitive field
@@ -5283,6 +6166,57 @@ export type components = {
*/
type: "img_nsfw";
};
+ /**
+ * Offset Image
+ * @description Offsets an image by a given percentage (or pixel amount).
+ */
+ ImageOffsetInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /**
+ * As Pixels
+ * @description Interpret offsets as pixels rather than percentages
+ * @default false
+ */
+ as_pixels?: boolean;
+ /** @description Image to be offset */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * X Offset
+ * @description x-offset for the subject
+ * @default 0.5
+ */
+ x_offset?: number;
+ /**
+ * Y Offset
+ * @description y-offset for the subject
+ * @default 0.5
+ */
+ y_offset?: number;
+ /**
+ * type
+ * @default offset_image
+ * @constant
+ */
+ type: "offset_image";
+ };
/**
* ImageOutput
* @description Base class for nodes that output a single image
@@ -5444,6 +6378,63 @@ export type components = {
*/
type: "img_resize";
};
+ /**
+ * Rotate/Flip Image
+ * @description Rotates an image by a given angle (in degrees clockwise).
+ */
+ ImageRotateInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description Image to be rotated clockwise */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * Degrees
+ * @description Angle (in degrees clockwise) by which to rotate
+ * @default 90
+ */
+ degrees?: number;
+ /**
+ * Expand To Fit
+ * @description If true, extends the image boundary to fit the rotated content
+ * @default true
+ */
+ expand_to_fit?: boolean;
+ /**
+ * Flip Horizontal
+ * @description If true, flips the image horizontally
+ * @default false
+ */
+ flip_horizontal?: boolean;
+ /**
+ * Flip Vertical
+ * @description If true, flips the image vertically
+ * @default false
+ */
+ flip_vertical?: boolean;
+ /**
+ * type
+ * @default rotate_image
+ * @constant
+ */
+ type: "rotate_image";
+ };
/**
* Scale Image
* @description Scales an image by a factor
@@ -5556,6 +6547,69 @@ export type components = {
*/
thumbnail_url: string;
};
+ /**
+ * Image Value Thresholds
+ * @description Clip image to pure black/white past specified thresholds
+ */
+ ImageValueThresholdsInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description The image from which to create a mask */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * Invert Output
+ * @description Make light areas dark and vice versa
+ * @default false
+ */
+ invert_output?: boolean;
+ /**
+ * Renormalize Values
+ * @description Rescale remaining values from minimum to maximum
+ * @default false
+ */
+ renormalize_values?: boolean;
+ /**
+ * Lightness Only
+ * @description If true, only applies to image lightness (CIELa*b*)
+ * @default false
+ */
+ lightness_only?: boolean;
+ /**
+ * Threshold Upper
+ * @description Threshold above which will be set to full value
+ * @default 0.5
+ */
+ threshold_upper?: number;
+ /**
+ * Threshold Lower
+ * @description Threshold below which will be set to minimum value
+ * @default 0.5
+ */
+ threshold_lower?: number;
+ /**
+ * type
+ * @default img_val_thresholds
+ * @constant
+ */
+ type: "img_val_thresholds";
+ };
/**
* Add Invisible Watermark
* @description Add an invisible watermark to an image
@@ -7016,6 +8070,47 @@ export type components = {
*/
type: "tomask";
};
+ /**
+ * Blend Latents/Noise (Masked)
+ * @description Blend two latents using a given alpha and mask. Latents must have same size.
+ */
+ MaskedBlendLatentsInvocation: {
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description Latents tensor */
+ latents_a?: components["schemas"]["LatentsField"];
+ /** @description Latents tensor */
+ latents_b?: components["schemas"]["LatentsField"];
+ /** @description Mask for blending in latents B */
+ mask?: components["schemas"]["ImageField"];
+ /**
+ * Alpha
+ * @description Blending factor. 0.0 = use input A only, 1.0 = use input B only, 0.5 = 50% mix of input A and input B.
+ * @default 0.5
+ */
+ alpha?: number;
+ /**
+ * type
+ * @default lmblend
+ * @constant
+ */
+ type: "lmblend";
+ };
/**
* Mediapipe Face Processor
* @description Applies mediapipe face processing to image
@@ -7470,8 +8565,9 @@ export type components = {
/**
* Bytes
* @description For a remote model, the number of bytes downloaded so far (may not be available)
+ * @default 0
*/
- bytes?: number | null;
+ bytes?: number;
/**
* Total Bytes
* @description Total size of the model to be installed
@@ -7619,6 +8715,86 @@ export type components = {
*/
value: string | number;
};
+ /**
+ * 2D Noise Image
+ * @description Creates an image of 2D Noise approximating the desired characteristics
+ */
+ NoiseImage2DInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /**
+ * Noise Type
+ * @description Desired noise spectral characteristics
+ * @default White
+ * @enum {string}
+ */
+ noise_type?: "White" | "Red" | "Blue" | "Green";
+ /**
+ * Width
+ * @description Desired image width
+ * @default 512
+ */
+ width?: number;
+ /**
+ * Height
+ * @description Desired image height
+ * @default 512
+ */
+ height?: number;
+ /**
+ * Seed
+ * @description Seed for noise generation
+ * @default 0
+ */
+ seed?: number;
+ /**
+ * Iterations
+ * @description Noise approx. iterations
+ * @default 15
+ */
+ iterations?: number;
+ /**
+ * Blur Threshold
+ * @description Threshold used in computing noise (lower is better/slower)
+ * @default 0.2
+ */
+ blur_threshold?: number;
+ /**
+ * Sigma Red
+ * @description Sigma for strong gaussian blur LPF for red/green
+ * @default 3
+ */
+ sigma_red?: number;
+ /**
+ * Sigma Blue
+ * @description Sigma for weak gaussian blur HPF for blue/green
+ * @default 1
+ */
+ sigma_blue?: number;
+ /**
+ * type
+ * @default noiseimg_2d
+ * @constant
+ */
+ type: "noiseimg_2d";
+ };
/**
* Noise
* @description Generates latent noise.
@@ -7696,6 +8872,84 @@ export type components = {
*/
type: "noise_output";
};
+ /**
+ * Noise (Spectral characteristics)
+ * @description Creates an image of 2D Noise approximating the desired characteristics
+ */
+ NoiseSpectralInvocation: {
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /**
+ * Noise Type
+ * @description Desired noise spectral characteristics
+ * @default White
+ * @enum {string}
+ */
+ noise_type?: "White" | "Red" | "Blue" | "Green";
+ /**
+ * Width
+ * @description Desired image width
+ * @default 512
+ */
+ width?: number;
+ /**
+ * Height
+ * @description Desired image height
+ * @default 512
+ */
+ height?: number;
+ /**
+ * Seed
+ * @description Seed for noise generation
+ * @default 0
+ */
+ seed?: number;
+ /**
+ * Iterations
+ * @description Noise approx. iterations
+ * @default 15
+ */
+ iterations?: number;
+ /**
+ * Blur Threshold
+ * @description Threshold used in computing noise (lower is better/slower)
+ * @default 0.2
+ */
+ blur_threshold?: number;
+ /**
+ * Sigma Red
+ * @description Sigma for strong gaussian blur LPF for red/green
+ * @default 3
+ */
+ sigma_red?: number;
+ /**
+ * Sigma Blue
+ * @description Sigma for weak gaussian blur HPF for blue/green
+ * @default 1
+ */
+ sigma_blue?: number;
+ /**
+ * type
+ * @default noise_spectral
+ * @constant
+ */
+ type: "noise_spectral";
+ };
/**
* Normal BAE Processor
* @description Applies NormalBae processing to image
@@ -8091,6 +9345,49 @@ export type components = {
*/
type: "t2l_onnx";
};
+ /**
+ * Offset Latents
+ * @description Offsets a latents tensor by a given percentage of height/width.
+ */
+ OffsetLatentsInvocation: {
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description Latents tensor */
+ latents?: components["schemas"]["LatentsField"];
+ /**
+ * X Offset
+ * @description Approx percentage to offset (H)
+ * @default 0.5
+ */
+ x_offset?: number;
+ /**
+ * Y Offset
+ * @description Approx percentage to offset (V)
+ * @default 0.5
+ */
+ y_offset?: number;
+ /**
+ * type
+ * @default offset_latents
+ * @constant
+ */
+ type: "offset_latents";
+ };
/** OffsetPaginatedResults[BoardDTO] */
OffsetPaginatedResults_BoardDTO_: {
/**
@@ -9637,6 +10934,106 @@ export type components = {
*/
total: number;
};
+ /**
+ * Shadows/Highlights/Midtones
+ * @description Extract a Shadows/Highlights/Midtones mask from an image
+ */
+ ShadowsHighlightsMidtonesMaskInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description Image from which to extract mask */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * Invert Output
+ * @description Off: white on black / On: black on white
+ * @default true
+ */
+ invert_output?: boolean;
+ /**
+ * Highlight Threshold
+ * @description Threshold beyond which mask values will be at extremum
+ * @default 0.75
+ */
+ highlight_threshold?: number;
+ /**
+ * Upper Mid Threshold
+ * @description Threshold to which to extend mask border by 0..1 gradient
+ * @default 0.7
+ */
+ upper_mid_threshold?: number;
+ /**
+ * Lower Mid Threshold
+ * @description Threshold to which to extend mask border by 0..1 gradient
+ * @default 0.3
+ */
+ lower_mid_threshold?: number;
+ /**
+ * Shadow Threshold
+ * @description Threshold beyond which mask values will be at extremum
+ * @default 0.25
+ */
+ shadow_threshold?: number;
+ /**
+ * Mask Expand Or Contract
+ * @description Pixels to grow (or shrink) the mask areas
+ * @default 0
+ */
+ mask_expand_or_contract?: number;
+ /**
+ * Mask Blur
+ * @description Gaussian blur radius to apply to the masks
+ * @default 0
+ */
+ mask_blur?: number;
+ /**
+ * type
+ * @default shmmask
+ * @constant
+ */
+ type: "shmmask";
+ };
+ /** ShadowsHighlightsMidtonesMasksOutput */
+ ShadowsHighlightsMidtonesMasksOutput: {
+ /** @description Soft-edged highlights mask */
+ highlights_mask?: components["schemas"]["ImageField"];
+ /** @description Soft-edged midtones mask */
+ midtones_mask?: components["schemas"]["ImageField"];
+ /** @description Soft-edged shadows mask */
+ shadows_mask?: components["schemas"]["ImageField"];
+ /**
+ * Width
+ * @description Width of the input/outputs
+ */
+ width: number;
+ /**
+ * Height
+ * @description Height of the input/outputs
+ */
+ height: number;
+ /**
+ * type
+ * @default shmmask_output
+ * @constant
+ */
+ type: "shmmask_output";
+ };
/**
* Show Image
* @description Displays a provided image using the OS image viewer, and passes it forward in the pipeline.
@@ -10518,6 +11915,249 @@ export type components = {
/** Right */
right: number;
};
+ /**
+ * Text Mask
+ * @description Creates a 2D rendering of a text mask from a given font
+ */
+ TextMaskInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /**
+ * Width
+ * @description The width of the desired mask
+ * @default 512
+ */
+ width?: number;
+ /**
+ * Height
+ * @description The height of the desired mask
+ * @default 512
+ */
+ height?: number;
+ /**
+ * Text
+ * @description The text to render
+ * @default
+ */
+ text?: string;
+ /**
+ * Font
+ * @description Path to a FreeType-supported TTF/OTF font file
+ * @default
+ */
+ font?: string;
+ /**
+ * Size
+ * @description Desired point size of text to use
+ * @default 64
+ */
+ size?: number;
+ /**
+ * Angle
+ * @description Angle of rotation to apply to the text
+ * @default 0
+ */
+ angle?: number;
+ /**
+ * X Offset
+ * @description x-offset for text rendering
+ * @default 24
+ */
+ x_offset?: number;
+ /**
+ * Y Offset
+ * @description y-offset for text rendering
+ * @default 36
+ */
+ y_offset?: number;
+ /**
+ * Invert
+ * @description Whether to invert color of the output
+ * @default false
+ */
+ invert?: boolean;
+ /**
+ * type
+ * @default text_mask
+ * @constant
+ */
+ type: "text_mask";
+ };
+ /**
+ * Text to Mask Advanced (Clipseg)
+ * @description Uses the Clipseg model to generate an image mask from a text prompt
+ */
+ TextToMaskClipsegAdvancedInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description The image from which to create a mask */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * Invert Output
+ * @description Off: white on black / On: black on white
+ * @default true
+ */
+ invert_output?: boolean;
+ /**
+ * Prompt 1
+ * @description First prompt with which to create a mask
+ */
+ prompt_1?: string;
+ /**
+ * Prompt 2
+ * @description Second prompt with which to create a mask (optional)
+ */
+ prompt_2?: string;
+ /**
+ * Prompt 3
+ * @description Third prompt with which to create a mask (optional)
+ */
+ prompt_3?: string;
+ /**
+ * Prompt 4
+ * @description Fourth prompt with which to create a mask (optional)
+ */
+ prompt_4?: string;
+ /**
+ * Combine
+ * @description How to combine the results
+ * @default or
+ * @enum {string}
+ */
+ combine?: "or" | "and" | "none (rgba multiplex)";
+ /**
+ * Smoothing
+ * @description Radius of blur to apply before thresholding
+ * @default 4
+ */
+ smoothing?: number;
+ /**
+ * Subject Threshold
+ * @description Threshold above which is considered the subject
+ * @default 1
+ */
+ subject_threshold?: number;
+ /**
+ * Background Threshold
+ * @description Threshold below which is considered the background
+ * @default 0
+ */
+ background_threshold?: number;
+ /**
+ * type
+ * @default txt2mask_clipseg_adv
+ * @constant
+ */
+ type: "txt2mask_clipseg_adv";
+ };
+ /**
+ * Text to Mask (Clipseg)
+ * @description Uses the Clipseg model to generate an image mask from a text prompt
+ */
+ TextToMaskClipsegInvocation: {
+ /** @description Optional metadata to be saved with the image */
+ metadata?: components["schemas"]["MetadataField"] | null;
+ /**
+ * Id
+ * @description The id of this instance of an invocation. Must be unique among all instances of invocations.
+ */
+ id: string;
+ /**
+ * Is Intermediate
+ * @description Whether or not this is an intermediate invocation.
+ * @default false
+ */
+ is_intermediate?: boolean;
+ /**
+ * Use Cache
+ * @description Whether or not to use the cache
+ * @default true
+ */
+ use_cache?: boolean;
+ /** @description The image from which to create a mask */
+ image?: components["schemas"]["ImageField"];
+ /**
+ * Invert Output
+ * @description Off: white on black / On: black on white
+ * @default true
+ */
+ invert_output?: boolean;
+ /**
+ * Prompt
+ * @description The prompt with which to create a mask
+ */
+ prompt?: string;
+ /**
+ * Smoothing
+ * @description Radius of blur to apply before thresholding
+ * @default 4
+ */
+ smoothing?: number;
+ /**
+ * Subject Threshold
+ * @description Threshold above which is considered the subject
+ * @default 0.4
+ */
+ subject_threshold?: number;
+ /**
+ * Background Threshold
+ * @description Threshold below which is considered the background
+ * @default 0.4
+ */
+ background_threshold?: number;
+ /**
+ * Mask Expand Or Contract
+ * @description Pixels by which to grow (or shrink) mask after thresholding
+ * @default 0
+ */
+ mask_expand_or_contract?: number;
+ /**
+ * Mask Blur
+ * @description Radius of blur to apply after thresholding
+ * @default 0
+ */
+ mask_blur?: number;
+ /**
+ * type
+ * @default txt2mask_clipseg
+ * @constant
+ */
+ type: "txt2mask_clipseg";
+ };
/**
* TextualInversionConfig
* @description Model config for textual inversion embeddings.
@@ -11503,11 +13143,11 @@ export type components = {
*/
UIType: "SDXLMainModelField" | "SDXLRefinerModelField" | "ONNXModelField" | "VAEModelField" | "LoRAModelField" | "ControlNetModelField" | "IPAdapterModelField" | "SchedulerField" | "AnyField" | "CollectionField" | "CollectionItemField" | "DEPRECATED_Boolean" | "DEPRECATED_Color" | "DEPRECATED_Conditioning" | "DEPRECATED_Control" | "DEPRECATED_Float" | "DEPRECATED_Image" | "DEPRECATED_Integer" | "DEPRECATED_Latents" | "DEPRECATED_String" | "DEPRECATED_BooleanCollection" | "DEPRECATED_ColorCollection" | "DEPRECATED_ConditioningCollection" | "DEPRECATED_ControlCollection" | "DEPRECATED_FloatCollection" | "DEPRECATED_ImageCollection" | "DEPRECATED_IntegerCollection" | "DEPRECATED_LatentsCollection" | "DEPRECATED_StringCollection" | "DEPRECATED_BooleanPolymorphic" | "DEPRECATED_ColorPolymorphic" | "DEPRECATED_ConditioningPolymorphic" | "DEPRECATED_ControlPolymorphic" | "DEPRECATED_FloatPolymorphic" | "DEPRECATED_ImagePolymorphic" | "DEPRECATED_IntegerPolymorphic" | "DEPRECATED_LatentsPolymorphic" | "DEPRECATED_StringPolymorphic" | "DEPRECATED_MainModel" | "DEPRECATED_UNet" | "DEPRECATED_Vae" | "DEPRECATED_CLIP" | "DEPRECATED_Collection" | "DEPRECATED_CollectionItem" | "DEPRECATED_Enum" | "DEPRECATED_WorkflowField" | "DEPRECATED_IsIntermediate" | "DEPRECATED_BoardField" | "DEPRECATED_MetadataItem" | "DEPRECATED_MetadataItemCollection" | "DEPRECATED_MetadataItemPolymorphic" | "DEPRECATED_MetadataDict";
/**
- * StableDiffusionXLModelFormat
+ * StableDiffusion1ModelFormat
* @description An enumeration.
* @enum {string}
*/
- StableDiffusionXLModelFormat: "checkpoint" | "diffusers";
+ StableDiffusion1ModelFormat: "checkpoint" | "diffusers";
/**
* CLIPVisionModelFormat
* @description An enumeration.
@@ -11515,41 +13155,41 @@ export type components = {
*/
CLIPVisionModelFormat: "diffusers";
/**
- * ControlNetModelFormat
+ * StableDiffusionXLModelFormat
* @description An enumeration.
* @enum {string}
*/
- ControlNetModelFormat: "checkpoint" | "diffusers";
- /**
- * T2IAdapterModelFormat
- * @description An enumeration.
- * @enum {string}
- */
- T2IAdapterModelFormat: "diffusers";
- /**
- * StableDiffusion1ModelFormat
- * @description An enumeration.
- * @enum {string}
- */
- StableDiffusion1ModelFormat: "checkpoint" | "diffusers";
- /**
- * StableDiffusion2ModelFormat
- * @description An enumeration.
- * @enum {string}
- */
- StableDiffusion2ModelFormat: "checkpoint" | "diffusers";
+ StableDiffusionXLModelFormat: "checkpoint" | "diffusers";
/**
* StableDiffusionOnnxModelFormat
* @description An enumeration.
* @enum {string}
*/
StableDiffusionOnnxModelFormat: "olive" | "onnx";
+ /**
+ * StableDiffusion2ModelFormat
+ * @description An enumeration.
+ * @enum {string}
+ */
+ StableDiffusion2ModelFormat: "checkpoint" | "diffusers";
+ /**
+ * T2IAdapterModelFormat
+ * @description An enumeration.
+ * @enum {string}
+ */
+ T2IAdapterModelFormat: "diffusers";
/**
* IPAdapterModelFormat
* @description An enumeration.
* @enum {string}
*/
IPAdapterModelFormat: "invokeai";
+ /**
+ * ControlNetModelFormat
+ * @description An enumeration.
+ * @enum {string}
+ */
+ ControlNetModelFormat: "checkpoint" | "diffusers";
};
responses: never;
parameters: never;
@@ -12428,6 +14068,38 @@ export type operations = {
};
};
};
+ /**
+ * Merge
+ * @description Merge diffusers models.
+ *
+ * keys: List of 2-3 model keys to merge together. All models must use the same base type.
+ * merged_model_name: Name for the merged model [Concat model names]
+ * alpha: Alpha value (0.0-1.0). Higher values give more weight to the second model [0.5]
+ * force: If true, force the merge even if the models were generated by different versions of the diffusers library [False]
+ * interp: Interpolation method. One of "weighted_sum", "sigmoid", "inv_sigmoid" or "add_difference" [weighted_sum]
+ * merge_dest_directory: Specify a directory to store the merged model in [models directory]
+ */
+ merge: {
+ requestBody: {
+ content: {
+ "application/json": components["schemas"]["Body_merge"];
+ };
+ };
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ content: {
+ "application/json": (components["schemas"]["MainDiffusersConfig"] | components["schemas"]["MainCheckpointConfig"]) | (components["schemas"]["ONNXSD1Config"] | components["schemas"]["ONNXSD2Config"]) | (components["schemas"]["VaeDiffusersConfig"] | components["schemas"]["VaeCheckpointConfig"]) | (components["schemas"]["ControlNetDiffusersConfig"] | components["schemas"]["ControlNetCheckpointConfig"]) | components["schemas"]["LoRAConfig"] | components["schemas"]["TextualInversionConfig"] | components["schemas"]["IPAdapterConfig"] | components["schemas"]["CLIPVisionDiffusersConfig"] | components["schemas"]["T2IConfig"];
+ };
+ };
+ /** @description Validation Error */
+ 422: {
+ content: {
+ "application/json": components["schemas"]["HTTPValidationError"];
+ };
+ };
+ };
+ };
/**
* List Downloads
* @description Get a list of active and inactive jobs.
diff --git a/invokeai/frontend/web/src/services/api/types.ts b/invokeai/frontend/web/src/services/api/types.ts
index e8d2f1a863..64e56d3243 100644
--- a/invokeai/frontend/web/src/services/api/types.ts
+++ b/invokeai/frontend/web/src/services/api/types.ts
@@ -157,6 +157,7 @@ export type MidasDepthImageProcessorInvocation = s['MidasDepthImageProcessorInvo
export type MlsdImageProcessorInvocation = s['MlsdImageProcessorInvocation'];
export type NormalbaeImageProcessorInvocation = s['NormalbaeImageProcessorInvocation'];
export type OpenposeImageProcessorInvocation = s['OpenposeImageProcessorInvocation'];
+export type DWPoseImageProcessorInvocation = s['DWPoseImageProcessorInvocation'];
export type PidiImageProcessorInvocation = s['PidiImageProcessorInvocation'];
export type ZoeDepthImageProcessorInvocation = s['ZoeDepthImageProcessorInvocation'];