diff --git a/docs/nodes/defaultNodes.md b/docs/nodes/defaultNodes.md
index ace51163ef..1f490dfe81 100644
--- a/docs/nodes/defaultNodes.md
+++ b/docs/nodes/defaultNodes.md
@@ -1,104 +1,106 @@
# List of Default Nodes
-The table below contains a list of the default nodes shipped with InvokeAI and their descriptions.
+The table below contains a list of the default nodes shipped with InvokeAI and
+their descriptions.
-| Node
| Function |
-|: ---------------------------------- | :--------------------------------------------------------------------------------------|
-|Add Integers | Adds two numbers|
-|Boolean Primitive Collection | A collection of boolean primitive values|
-|Boolean Primitive | A boolean primitive value|
-|Canny Processor | Canny edge detection for ControlNet|
-|CLIP Skip | Skip layers in clip text_encoder model.|
-|Collect | Collects values into a collection|
-|Color Correct | Shifts the colors of a target image to match the reference image, optionally using a mask to only color-correct certain regions of the target image.|
-|Color Primitive | A color primitive value|
-|Compel Prompt | Parse prompt using compel package to conditioning.|
-|Conditioning Primitive Collection | A collection of conditioning tensor primitive values|
-|Conditioning Primitive | A conditioning tensor primitive value|
-|Content Shuffle Processor | Applies content shuffle processing to image|
-|ControlNet | Collects ControlNet info to pass to other nodes|
-|Denoise Latents | Denoises noisy latents to decodable images|
-|Divide Integers | Divides two numbers|
-|Dynamic Prompt | Parses a prompt using adieyal/dynamicprompts' random or combinatorial generator|
-|[FaceMask](./detailedNodes/faceTools.md#facemask) | Generates masks for faces in an image to use with Inpainting|
-|[FaceIdentifier](./detailedNodes/faceTools.md#faceidentifier) | Identifies and labels faces in an image|
-|[FaceOff](./detailedNodes/faceTools.md#faceoff) | Creates a new image that is a scaled bounding box with a mask on the face for Inpainting|
-|Float Math | Perform basic math operations on two floats|
-|Float Primitive Collection | A collection of float primitive values|
-|Float Primitive | A float primitive value|
-|Float Range | Creates a range|
-|HED (softedge) Processor | Applies HED edge detection to image|
-|Blur Image | Blurs an image|
-|Extract Image Channel | Gets a channel from an image.|
-|Image Primitive Collection | A collection of image primitive values|
-|Integer Math | Perform basic math operations on two integers|
-|Convert Image Mode | Converts an image to a different mode.|
-|Crop Image | Crops an image to a specified box. The box can be outside of the image.|
-|Image Hue Adjustment | Adjusts the Hue of an image.|
-|Inverse Lerp Image | Inverse linear interpolation of all pixels of an image|
-|Image Primitive | An image primitive value|
-|Lerp Image | Linear interpolation of all pixels of an image|
-|Offset Image Channel | Add to or subtract from an image color channel by a uniform value.|
-|Multiply Image Channel | Multiply or Invert an image color channel by a scalar value.|
-|Multiply Images | Multiplies two images together using `PIL.ImageChops.multiply()`.|
-|Blur NSFW Image | Add blur to NSFW-flagged images|
-|Paste Image | Pastes an image into another image.|
-|ImageProcessor | Base class for invocations that preprocess images for ControlNet|
-|Resize Image | Resizes an image to specific dimensions|
-|Round Float | Rounds a float to a specified number of decimal places|
-|Float to Integer | Converts a float to an integer. Optionally rounds to an even multiple of a input number.|
-|Scale Image | Scales an image by a factor|
-|Image to Latents | Encodes an image into latents.|
-|Add Invisible Watermark | Add an invisible watermark to an image|
-|Solid Color Infill | Infills transparent areas of an image with a solid color|
-|PatchMatch Infill | Infills transparent areas of an image using the PatchMatch algorithm|
-|Tile Infill | Infills transparent areas of an image with tiles of the image|
-|Integer Primitive Collection | A collection of integer primitive values|
-|Integer Primitive | An integer primitive value|
-|Iterate | Iterates over a list of items|
-|Latents Primitive Collection | A collection of latents tensor primitive values|
-|Latents Primitive | A latents tensor primitive value|
-|Latents to Image | Generates an image from latents.|
-|Leres (Depth) Processor | Applies leres processing to image|
-|Lineart Anime Processor | Applies line art anime processing to image|
-|Lineart Processor | Applies line art processing to image|
-|LoRA Loader | Apply selected lora to unet and text_encoder.|
-|Main Model Loader | Loads a main model, outputting its submodels.|
-|Combine Mask | Combine two masks together by multiplying them using `PIL.ImageChops.multiply()`.|
-|Mask Edge | Applies an edge mask to an image|
-|Mask from Alpha | Extracts the alpha channel of an image as a mask.|
-|Mediapipe Face Processor | Applies mediapipe face processing to image|
-|Midas (Depth) Processor | Applies Midas depth processing to image|
-|MLSD Processor | Applies MLSD processing to image|
-|Multiply Integers | Multiplies two numbers|
-|Noise | Generates latent noise.|
-|Normal BAE Processor | Applies NormalBae processing to image|
-|ONNX Latents to Image | Generates an image from latents.|
-|ONNX Prompt (Raw) | A node to process inputs and produce outputs. May use dependency injection in __init__ to receive providers.|
-|ONNX Text to Latents | Generates latents from conditionings.|
-|ONNX Model Loader | Loads a main model, outputting its submodels.|
-|OpenCV Inpaint | Simple inpaint using opencv.|
-|Openpose Processor | Applies Openpose processing to image|
-|PIDI Processor | Applies PIDI processing to image|
-|Prompts from File | Loads prompts from a text file|
-|Random Integer | Outputs a single random integer.|
-|Random Range | Creates a collection of random numbers|
-|Integer Range | Creates a range of numbers from start to stop with step|
-|Integer Range of Size | Creates a range from start to start + size with step|
-|Resize Latents | Resizes latents to explicit width/height (in pixels). Provided dimensions are floor-divided by 8.|
-|SDXL Compel Prompt | Parse prompt using compel package to conditioning.|
-|SDXL LoRA Loader | Apply selected lora to unet and text_encoder.|
-|SDXL Main Model Loader | Loads an sdxl base model, outputting its submodels.|
-|SDXL Refiner Compel Prompt | Parse prompt using compel package to conditioning.|
-|SDXL Refiner Model Loader | Loads an sdxl refiner model, outputting its submodels.|
-|Scale Latents | Scales latents by a given factor.|
-|Segment Anything Processor | Applies segment anything processing to image|
-|Show Image | Displays a provided image, and passes it forward in the pipeline.|
-|Step Param Easing | Experimental per-step parameter easing for denoising steps|
-|String Primitive Collection | A collection of string primitive values|
-|String Primitive | A string primitive value|
-|Subtract Integers | Subtracts two numbers|
-|Tile Resample Processor | Tile resampler processor|
-|Upscale (RealESRGAN) | Upscales an image using RealESRGAN.|
-|VAE Loader | Loads a VAE model, outputting a VaeLoaderOutput|
-|Zoe (Depth) Processor | Applies Zoe depth processing to image|
\ No newline at end of file
+| Node
| Function |
+| :------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Add Integers | Adds two numbers |
+| Boolean Primitive Collection | A collection of boolean primitive values |
+| Boolean Primitive | A boolean primitive value |
+| Canny Processor | Canny edge detection for ControlNet |
+| CenterPadCrop | Pad or crop an image's sides from the center by specified pixels. Positive values are outside of the image. |
+| CLIP Skip | Skip layers in clip text_encoder model. |
+| Collect | Collects values into a collection |
+| Color Correct | Shifts the colors of a target image to match the reference image, optionally using a mask to only color-correct certain regions of the target image. |
+| Color Primitive | A color primitive value |
+| Compel Prompt | Parse prompt using compel package to conditioning. |
+| Conditioning Primitive Collection | A collection of conditioning tensor primitive values |
+| Conditioning Primitive | A conditioning tensor primitive value |
+| Content Shuffle Processor | Applies content shuffle processing to image |
+| ControlNet | Collects ControlNet info to pass to other nodes |
+| Denoise Latents | Denoises noisy latents to decodable images |
+| Divide Integers | Divides two numbers |
+| Dynamic Prompt | Parses a prompt using adieyal/dynamicprompts' random or combinatorial generator |
+| [FaceMask](./detailedNodes/faceTools.md#facemask) | Generates masks for faces in an image to use with Inpainting |
+| [FaceIdentifier](./detailedNodes/faceTools.md#faceidentifier) | Identifies and labels faces in an image |
+| [FaceOff](./detailedNodes/faceTools.md#faceoff) | Creates a new image that is a scaled bounding box with a mask on the face for Inpainting |
+| Float Math | Perform basic math operations on two floats |
+| Float Primitive Collection | A collection of float primitive values |
+| Float Primitive | A float primitive value |
+| Float Range | Creates a range |
+| HED (softedge) Processor | Applies HED edge detection to image |
+| Blur Image | Blurs an image |
+| Extract Image Channel | Gets a channel from an image. |
+| Image Primitive Collection | A collection of image primitive values |
+| Integer Math | Perform basic math operations on two integers |
+| Convert Image Mode | Converts an image to a different mode. |
+| Crop Image | Crops an image to a specified box. The box can be outside of the image. |
+| Image Hue Adjustment | Adjusts the Hue of an image. |
+| Inverse Lerp Image | Inverse linear interpolation of all pixels of an image |
+| Image Primitive | An image primitive value |
+| Lerp Image | Linear interpolation of all pixels of an image |
+| Offset Image Channel | Add to or subtract from an image color channel by a uniform value. |
+| Multiply Image Channel | Multiply or Invert an image color channel by a scalar value. |
+| Multiply Images | Multiplies two images together using `PIL.ImageChops.multiply()`. |
+| Blur NSFW Image | Add blur to NSFW-flagged images |
+| Paste Image | Pastes an image into another image. |
+| ImageProcessor | Base class for invocations that preprocess images for ControlNet |
+| Resize Image | Resizes an image to specific dimensions |
+| Round Float | Rounds a float to a specified number of decimal places |
+| Float to Integer | Converts a float to an integer. Optionally rounds to an even multiple of a input number. |
+| Scale Image | Scales an image by a factor |
+| Image to Latents | Encodes an image into latents. |
+| Add Invisible Watermark | Add an invisible watermark to an image |
+| Solid Color Infill | Infills transparent areas of an image with a solid color |
+| PatchMatch Infill | Infills transparent areas of an image using the PatchMatch algorithm |
+| Tile Infill | Infills transparent areas of an image with tiles of the image |
+| Integer Primitive Collection | A collection of integer primitive values |
+| Integer Primitive | An integer primitive value |
+| Iterate | Iterates over a list of items |
+| Latents Primitive Collection | A collection of latents tensor primitive values |
+| Latents Primitive | A latents tensor primitive value |
+| Latents to Image | Generates an image from latents. |
+| Leres (Depth) Processor | Applies leres processing to image |
+| Lineart Anime Processor | Applies line art anime processing to image |
+| Lineart Processor | Applies line art processing to image |
+| LoRA Loader | Apply selected lora to unet and text_encoder. |
+| Main Model Loader | Loads a main model, outputting its submodels. |
+| Combine Mask | Combine two masks together by multiplying them using `PIL.ImageChops.multiply()`. |
+| Mask Edge | Applies an edge mask to an image |
+| Mask from Alpha | Extracts the alpha channel of an image as a mask. |
+| Mediapipe Face Processor | Applies mediapipe face processing to image |
+| Midas (Depth) Processor | Applies Midas depth processing to image |
+| MLSD Processor | Applies MLSD processing to image |
+| Multiply Integers | Multiplies two numbers |
+| Noise | Generates latent noise. |
+| Normal BAE Processor | Applies NormalBae processing to image |
+| ONNX Latents to Image | Generates an image from latents. |
+| ONNX Prompt (Raw) | A node to process inputs and produce outputs. May use dependency injection in **init** to receive providers. |
+| ONNX Text to Latents | Generates latents from conditionings. |
+| ONNX Model Loader | Loads a main model, outputting its submodels. |
+| OpenCV Inpaint | Simple inpaint using opencv. |
+| Openpose Processor | Applies Openpose processing to image |
+| PIDI Processor | Applies PIDI processing to image |
+| Prompts from File | Loads prompts from a text file |
+| Random Integer | Outputs a single random integer. |
+| Random Range | Creates a collection of random numbers |
+| Integer Range | Creates a range of numbers from start to stop with step |
+| Integer Range of Size | Creates a range from start to start + size with step |
+| Resize Latents | Resizes latents to explicit width/height (in pixels). Provided dimensions are floor-divided by 8. |
+| SDXL Compel Prompt | Parse prompt using compel package to conditioning. |
+| SDXL LoRA Loader | Apply selected lora to unet and text_encoder. |
+| SDXL Main Model Loader | Loads an sdxl base model, outputting its submodels. |
+| SDXL Refiner Compel Prompt | Parse prompt using compel package to conditioning. |
+| SDXL Refiner Model Loader | Loads an sdxl refiner model, outputting its submodels. |
+| Scale Latents | Scales latents by a given factor. |
+| Segment Anything Processor | Applies segment anything processing to image |
+| Show Image | Displays a provided image, and passes it forward in the pipeline. |
+| Step Param Easing | Experimental per-step parameter easing for denoising steps |
+| String Primitive Collection | A collection of string primitive values |
+| String Primitive | A string primitive value |
+| Subtract Integers | Subtracts two numbers |
+| Tile Resample Processor | Tile resampler processor |
+| Upscale (RealESRGAN) | Upscales an image using RealESRGAN. |
+| VAE Loader | Loads a VAE model, outputting a VaeLoaderOutput |
+| Zoe (Depth) Processor | Applies Zoe depth processing to image |
diff --git a/invokeai/app/invocations/image.py b/invokeai/app/invocations/image.py
index 87e8392402..ad3b3aec71 100644
--- a/invokeai/app/invocations/image.py
+++ b/invokeai/app/invocations/image.py
@@ -100,6 +100,61 @@ class ImageCropInvocation(BaseInvocation, WithWorkflow, WithMetadata):
)
+@invocation(
+ invocation_type="img_pad_crop",
+ title="Center Pad or Crop Image",
+ category="image",
+ tags=["image", "pad", "crop"],
+ version="1.0.0",
+)
+class CenterPadCropInvocation(BaseInvocation):
+ """Pad or crop an image's sides from the center by specified pixels. Positive values are outside of the image."""
+
+ image: ImageField = InputField(description="The image to crop")
+ left: int = InputField(
+ default=0,
+ description="Number of pixels to pad/crop from the left (negative values crop inwards, positive values pad outwards)",
+ )
+ right: int = InputField(
+ default=0,
+ description="Number of pixels to pad/crop from the right (negative values crop inwards, positive values pad outwards)",
+ )
+ top: int = InputField(
+ default=0,
+ description="Number of pixels to pad/crop from the top (negative values crop inwards, positive values pad outwards)",
+ )
+ bottom: int = InputField(
+ default=0,
+ description="Number of pixels to pad/crop from the bottom (negative values crop inwards, positive values pad outwards)",
+ )
+
+ def invoke(self, context: InvocationContext) -> ImageOutput:
+ image = context.services.images.get_pil_image(self.image.image_name)
+
+ # Calculate and create new image dimensions
+ new_width = image.width + self.right + self.left
+ new_height = image.height + self.top + self.bottom
+ image_crop = Image.new(mode="RGBA", size=(new_width, new_height), color=(0, 0, 0, 0))
+
+ # Paste new image onto input
+ image_crop.paste(image, (self.left, self.top))
+
+ image_dto = context.services.images.create(
+ image=image_crop,
+ image_origin=ResourceOrigin.INTERNAL,
+ image_category=ImageCategory.GENERAL,
+ node_id=self.id,
+ session_id=context.graph_execution_state_id,
+ is_intermediate=self.is_intermediate,
+ )
+
+ return ImageOutput(
+ image=ImageField(image_name=image_dto.image_name),
+ width=image_dto.width,
+ height=image_dto.height,
+ )
+
+
@invocation("img_paste", title="Paste Image", tags=["image", "paste"], category="image", version="1.1.0")
class ImagePasteInvocation(BaseInvocation, WithWorkflow, WithMetadata):
"""Pastes an image into another image."""
diff --git a/invokeai/frontend/web/src/services/api/schema.d.ts b/invokeai/frontend/web/src/services/api/schema.d.ts
index 8204e50650..b6b6a0e8be 100644
--- a/invokeai/frontend/web/src/services/api/schema.d.ts
+++ b/invokeai/frontend/web/src/services/api/schema.d.ts
@@ -1196,6 +1196,61 @@ export type components = {
*/
type: "canny_image_processor";
};
+ /**
+ * Center Pad or Crop Image
+ * @description Pad or crop an image's sides from the center by specified pixels. Positive values are outside of the image.
+ */
+ CenterPadCropInvocation: {
+ /**
+ * 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"];
+ /**
+ * Left
+ * @description Number of pixels to pad/crop from the left (negative values crop inwards, positive values pad outwards)
+ * @default 0
+ */
+ left?: number;
+ /**
+ * Right
+ * @description Number of pixels to pad/crop from the right (negative values crop inwards, positive values pad outwards)
+ * @default 0
+ */
+ right?: number;
+ /**
+ * Top
+ * @description Number of pixels to pad/crop from the top (negative values crop inwards, positive values pad outwards)
+ * @default 0
+ */
+ top?: number;
+ /**
+ * Bottom
+ * @description Number of pixels to pad/crop from the bottom (negative values crop inwards, positive values pad outwards)
+ * @default 0
+ */
+ bottom?: number;
+ /**
+ * type
+ * @default img_pad_crop
+ * @constant
+ */
+ type: "img_pad_crop";
+ };
/**
* ClearResult
* @description Result of clearing the session queue
@@ -3231,7 +3286,7 @@ export type components = {
* @description The nodes in this graph
*/
nodes?: {
- [key: string]: components["schemas"]["StringJoinThreeInvocation"] | components["schemas"]["ImageToLatentsInvocation"] | components["schemas"]["LaMaInfillInvocation"] | components["schemas"]["ColorCorrectInvocation"] | components["schemas"]["FaceOffInvocation"] | components["schemas"]["ImageCollectionInvocation"] | components["schemas"]["IPAdapterInvocation"] | components["schemas"]["LatentsToImageInvocation"] | components["schemas"]["ImageLerpInvocation"] | components["schemas"]["StringSplitNegInvocation"] | components["schemas"]["RandomRangeInvocation"] | components["schemas"]["ImageHueAdjustmentInvocation"] | components["schemas"]["IntegerCollectionInvocation"] | components["schemas"]["PromptsFromFileInvocation"] | components["schemas"]["ONNXTextToLatentsInvocation"] | components["schemas"]["SDXLModelLoaderInvocation"] | components["schemas"]["ImageChannelMultiplyInvocation"] | components["schemas"]["RandomIntInvocation"] | components["schemas"]["SDXLRefinerCompelPromptInvocation"] | components["schemas"]["CoreMetadataInvocation"] | components["schemas"]["StringJoinInvocation"] | components["schemas"]["BlendLatentsInvocation"] | components["schemas"]["OnnxModelLoaderInvocation"] | components["schemas"]["ImageResizeInvocation"] | components["schemas"]["AddInvocation"] | components["schemas"]["BlankImageInvocation"] | components["schemas"]["RangeInvocation"] | components["schemas"]["TileResamplerProcessorInvocation"] | components["schemas"]["LatentsInvocation"] | components["schemas"]["MaskEdgeInvocation"] | components["schemas"]["LinearUIOutputInvocation"] | components["schemas"]["ContentShuffleImageProcessorInvocation"] | components["schemas"]["DivideInvocation"] | components["schemas"]["MlsdImageProcessorInvocation"] | components["schemas"]["ESRGANInvocation"] | components["schemas"]["ConditioningInvocation"] | components["schemas"]["SDXLLoraLoaderInvocation"] | components["schemas"]["T2IAdapterInvocation"] | components["schemas"]["MaskFromAlphaInvocation"] | components["schemas"]["ImageCropInvocation"] | components["schemas"]["ColorInvocation"] | components["schemas"]["FreeUInvocation"] | components["schemas"]["MidasDepthImageProcessorInvocation"] | components["schemas"]["OpenposeImageProcessorInvocation"] | components["schemas"]["ImageInverseLerpInvocation"] | components["schemas"]["FloatInvocation"] | components["schemas"]["SDXLRefinerModelLoaderInvocation"] | components["schemas"]["FloatToIntegerInvocation"] | components["schemas"]["FaceMaskInvocation"] | components["schemas"]["InfillTileInvocation"] | components["schemas"]["StringSplitInvocation"] | components["schemas"]["ZoeDepthImageProcessorInvocation"] | components["schemas"]["SDXLCompelPromptInvocation"] | components["schemas"]["CreateDenoiseMaskInvocation"] | components["schemas"]["RoundInvocation"] | components["schemas"]["StringReplaceInvocation"] | components["schemas"]["ScaleLatentsInvocation"] | components["schemas"]["NoiseInvocation"] | components["schemas"]["IntegerInvocation"] | components["schemas"]["MergeMetadataInvocation"] | components["schemas"]["RangeOfSizeInvocation"] | components["schemas"]["BooleanInvocation"] | components["schemas"]["InfillColorInvocation"] | components["schemas"]["MaskCombineInvocation"] | components["schemas"]["LineartImageProcessorInvocation"] | components["schemas"]["SchedulerInvocation"] | components["schemas"]["ResizeLatentsInvocation"] | components["schemas"]["LatentsCollectionInvocation"] | components["schemas"]["NormalbaeImageProcessorInvocation"] | components["schemas"]["GraphInvocation"] | components["schemas"]["ImageInvocation"] | components["schemas"]["LoraLoaderInvocation"] | components["schemas"]["ConditioningCollectionInvocation"] | components["schemas"]["ClipSkipInvocation"] | components["schemas"]["ImageScaleInvocation"] | components["schemas"]["PidiImageProcessorInvocation"] | components["schemas"]["ShowImageInvocation"] | components["schemas"]["ImageConvertInvocation"] | components["schemas"]["ImageChannelOffsetInvocation"] | components["schemas"]["InfillPatchMatchInvocation"] | components["schemas"]["MultiplyInvocation"] | components["schemas"]["FloatLinearRangeInvocation"] | components["schemas"]["CollectInvocation"] | components["schemas"]["DynamicPromptInvocation"] | components["schemas"]["ImageMultiplyInvocation"] | components["schemas"]["SegmentAnythingProcessorInvocation"] | components["schemas"]["ImagePasteInvocation"] | components["schemas"]["ImageWatermarkInvocation"] | components["schemas"]["LineartAnimeImageProcessorInvocation"] | components["schemas"]["HedImageProcessorInvocation"] | components["schemas"]["FloatMathInvocation"] | components["schemas"]["ONNXLatentsToImageInvocation"] | components["schemas"]["ControlNetInvocation"] | components["schemas"]["CvInpaintInvocation"] | components["schemas"]["RandomFloatInvocation"] | components["schemas"]["LeresImageProcessorInvocation"] | components["schemas"]["FloatCollectionInvocation"] | components["schemas"]["MainModelLoaderInvocation"] | components["schemas"]["ImageChannelInvocation"] | components["schemas"]["ColorMapImageProcessorInvocation"] | components["schemas"]["SubtractInvocation"] | components["schemas"]["StringCollectionInvocation"] | components["schemas"]["FaceIdentifierInvocation"] | components["schemas"]["ONNXPromptInvocation"] | components["schemas"]["MediapipeFaceProcessorInvocation"] | components["schemas"]["VaeLoaderInvocation"] | components["schemas"]["MetadataItemInvocation"] | components["schemas"]["SaveImageInvocation"] | components["schemas"]["CV2InfillInvocation"] | components["schemas"]["IntegerMathInvocation"] | components["schemas"]["StepParamEasingInvocation"] | components["schemas"]["ImageNSFWBlurInvocation"] | components["schemas"]["IterateInvocation"] | components["schemas"]["DenoiseLatentsInvocation"] | components["schemas"]["ImageBlurInvocation"] | components["schemas"]["StringInvocation"] | components["schemas"]["MetadataInvocation"] | components["schemas"]["CompelInvocation"] | components["schemas"]["CannyImageProcessorInvocation"] | components["schemas"]["SeamlessModeInvocation"] | components["schemas"]["BooleanCollectionInvocation"];
+ [key: string]: components["schemas"]["BlankImageInvocation"] | components["schemas"]["DenoiseLatentsInvocation"] | components["schemas"]["AddInvocation"] | components["schemas"]["ImageResizeInvocation"] | components["schemas"]["T2IAdapterInvocation"] | components["schemas"]["SDXLRefinerCompelPromptInvocation"] | components["schemas"]["SaveImageInvocation"] | components["schemas"]["ImageMultiplyInvocation"] | components["schemas"]["MainModelLoaderInvocation"] | components["schemas"]["StringCollectionInvocation"] | components["schemas"]["PidiImageProcessorInvocation"] | components["schemas"]["SDXLModelLoaderInvocation"] | components["schemas"]["CV2InfillInvocation"] | components["schemas"]["ImageWatermarkInvocation"] | components["schemas"]["FloatToIntegerInvocation"] | components["schemas"]["ImageChannelMultiplyInvocation"] | components["schemas"]["FloatCollectionInvocation"] | components["schemas"]["CollectInvocation"] | components["schemas"]["LoraLoaderInvocation"] | components["schemas"]["IntegerCollectionInvocation"] | components["schemas"]["ImageCropInvocation"] | components["schemas"]["CoreMetadataInvocation"] | components["schemas"]["LaMaInfillInvocation"] | components["schemas"]["RoundInvocation"] | components["schemas"]["IterateInvocation"] | components["schemas"]["OpenposeImageProcessorInvocation"] | components["schemas"]["ImageCollectionInvocation"] | components["schemas"]["RangeOfSizeInvocation"] | components["schemas"]["StringReplaceInvocation"] | components["schemas"]["LeresImageProcessorInvocation"] | components["schemas"]["MaskCombineInvocation"] | components["schemas"]["ImageBlurInvocation"] | components["schemas"]["ImageNSFWBlurInvocation"] | components["schemas"]["MediapipeFaceProcessorInvocation"] | components["schemas"]["CompelInvocation"] | components["schemas"]["ClipSkipInvocation"] | components["schemas"]["LineartAnimeImageProcessorInvocation"] | components["schemas"]["MetadataItemInvocation"] | components["schemas"]["StringSplitNegInvocation"] | components["schemas"]["BooleanInvocation"] | components["schemas"]["CannyImageProcessorInvocation"] | components["schemas"]["RandomIntInvocation"] | components["schemas"]["VaeLoaderInvocation"] | components["schemas"]["FloatLinearRangeInvocation"] | components["schemas"]["ShowImageInvocation"] | components["schemas"]["ImageToLatentsInvocation"] | components["schemas"]["FreeUInvocation"] | components["schemas"]["HedImageProcessorInvocation"] | components["schemas"]["MidasDepthImageProcessorInvocation"] | components["schemas"]["LinearUIOutputInvocation"] | components["schemas"]["SchedulerInvocation"] | components["schemas"]["IntegerInvocation"] | components["schemas"]["TileResamplerProcessorInvocation"] | components["schemas"]["SeamlessModeInvocation"] | components["schemas"]["FloatInvocation"] | components["schemas"]["MaskFromAlphaInvocation"] | components["schemas"]["ESRGANInvocation"] | components["schemas"]["LatentsInvocation"] | components["schemas"]["FaceOffInvocation"] | components["schemas"]["SegmentAnythingProcessorInvocation"] | components["schemas"]["ColorMapImageProcessorInvocation"] | components["schemas"]["BooleanCollectionInvocation"] | components["schemas"]["CenterPadCropInvocation"] | components["schemas"]["CvInpaintInvocation"] | components["schemas"]["DivideInvocation"] | components["schemas"]["StringJoinInvocation"] | components["schemas"]["ONNXLatentsToImageInvocation"] | components["schemas"]["InfillTileInvocation"] | components["schemas"]["StringInvocation"] | components["schemas"]["ONNXTextToLatentsInvocation"] | components["schemas"]["SDXLRefinerModelLoaderInvocation"] | components["schemas"]["StringJoinThreeInvocation"] | components["schemas"]["FaceMaskInvocation"] | components["schemas"]["FloatMathInvocation"] | components["schemas"]["NormalbaeImageProcessorInvocation"] | components["schemas"]["RandomRangeInvocation"] | components["schemas"]["ImageScaleInvocation"] | components["schemas"]["MaskEdgeInvocation"] | components["schemas"]["MultiplyInvocation"] | components["schemas"]["RandomFloatInvocation"] | components["schemas"]["ControlNetInvocation"] | components["schemas"]["ImageConvertInvocation"] | components["schemas"]["OnnxModelLoaderInvocation"] | components["schemas"]["ContentShuffleImageProcessorInvocation"] | components["schemas"]["IntegerMathInvocation"] | components["schemas"]["ImageChannelOffsetInvocation"] | components["schemas"]["ImageInvocation"] | components["schemas"]["ZoeDepthImageProcessorInvocation"] | components["schemas"]["ImageLerpInvocation"] | components["schemas"]["NoiseInvocation"] | components["schemas"]["ImageInverseLerpInvocation"] | components["schemas"]["ColorInvocation"] | components["schemas"]["DynamicPromptInvocation"] | components["schemas"]["SubtractInvocation"] | components["schemas"]["ImageChannelInvocation"] | components["schemas"]["ONNXPromptInvocation"] | components["schemas"]["PromptsFromFileInvocation"] | components["schemas"]["CreateDenoiseMaskInvocation"] | components["schemas"]["ImageHueAdjustmentInvocation"] | components["schemas"]["BlendLatentsInvocation"] | components["schemas"]["GraphInvocation"] | components["schemas"]["InfillPatchMatchInvocation"] | components["schemas"]["StringSplitInvocation"] | components["schemas"]["ColorCorrectInvocation"] | components["schemas"]["SDXLCompelPromptInvocation"] | components["schemas"]["ConditioningInvocation"] | components["schemas"]["ResizeLatentsInvocation"] | components["schemas"]["MlsdImageProcessorInvocation"] | components["schemas"]["InfillColorInvocation"] | components["schemas"]["ScaleLatentsInvocation"] | components["schemas"]["LatentsToImageInvocation"] | components["schemas"]["MergeMetadataInvocation"] | components["schemas"]["StepParamEasingInvocation"] | components["schemas"]["MetadataInvocation"] | components["schemas"]["IPAdapterInvocation"] | components["schemas"]["RangeInvocation"] | components["schemas"]["LatentsCollectionInvocation"] | components["schemas"]["ConditioningCollectionInvocation"] | components["schemas"]["FaceIdentifierInvocation"] | components["schemas"]["ImagePasteInvocation"] | components["schemas"]["SDXLLoraLoaderInvocation"] | components["schemas"]["LineartImageProcessorInvocation"];
};
/**
* Edges
@@ -3268,7 +3323,7 @@ export type components = {
* @description The results of node executions
*/
results: {
- [key: string]: components["schemas"]["SDXLModelLoaderOutput"] | components["schemas"]["BooleanOutput"] | components["schemas"]["T2IAdapterOutput"] | components["schemas"]["SchedulerOutput"] | components["schemas"]["ImageOutput"] | components["schemas"]["ColorCollectionOutput"] | components["schemas"]["IntegerCollectionOutput"] | components["schemas"]["String2Output"] | components["schemas"]["ConditioningCollectionOutput"] | components["schemas"]["MetadataOutput"] | components["schemas"]["ColorOutput"] | components["schemas"]["SDXLLoraLoaderOutput"] | components["schemas"]["BooleanCollectionOutput"] | components["schemas"]["FaceMaskOutput"] | components["schemas"]["StringPosNegOutput"] | components["schemas"]["IntegerOutput"] | components["schemas"]["UNetOutput"] | components["schemas"]["MetadataItemOutput"] | components["schemas"]["StringOutput"] | components["schemas"]["CollectInvocationOutput"] | components["schemas"]["ImageCollectionOutput"] | components["schemas"]["StringCollectionOutput"] | components["schemas"]["SeamlessModeOutput"] | components["schemas"]["FloatCollectionOutput"] | components["schemas"]["LoraLoaderOutput"] | components["schemas"]["ClipSkipInvocationOutput"] | components["schemas"]["NoiseOutput"] | components["schemas"]["GraphInvocationOutput"] | components["schemas"]["ControlOutput"] | components["schemas"]["DenoiseMaskOutput"] | components["schemas"]["FaceOffOutput"] | components["schemas"]["VAEOutput"] | components["schemas"]["ONNXModelLoaderOutput"] | components["schemas"]["LatentsOutput"] | components["schemas"]["FloatOutput"] | components["schemas"]["SDXLRefinerModelLoaderOutput"] | components["schemas"]["ModelLoaderOutput"] | components["schemas"]["IterateInvocationOutput"] | components["schemas"]["LatentsCollectionOutput"] | components["schemas"]["CLIPOutput"] | components["schemas"]["IPAdapterOutput"] | components["schemas"]["ConditioningOutput"];
+ [key: string]: components["schemas"]["BooleanCollectionOutput"] | components["schemas"]["SDXLLoraLoaderOutput"] | components["schemas"]["ONNXModelLoaderOutput"] | components["schemas"]["ClipSkipInvocationOutput"] | components["schemas"]["FaceOffOutput"] | components["schemas"]["IPAdapterOutput"] | components["schemas"]["IterateInvocationOutput"] | components["schemas"]["LatentsCollectionOutput"] | components["schemas"]["SchedulerOutput"] | components["schemas"]["SDXLRefinerModelLoaderOutput"] | components["schemas"]["IntegerCollectionOutput"] | components["schemas"]["StringPosNegOutput"] | components["schemas"]["FloatCollectionOutput"] | components["schemas"]["LoraLoaderOutput"] | components["schemas"]["MetadataItemOutput"] | components["schemas"]["StringOutput"] | components["schemas"]["ControlOutput"] | components["schemas"]["NoiseOutput"] | components["schemas"]["StringCollectionOutput"] | components["schemas"]["ImageCollectionOutput"] | components["schemas"]["MetadataOutput"] | components["schemas"]["FloatOutput"] | components["schemas"]["String2Output"] | components["schemas"]["ConditioningCollectionOutput"] | components["schemas"]["LatentsOutput"] | components["schemas"]["GraphInvocationOutput"] | components["schemas"]["SDXLModelLoaderOutput"] | components["schemas"]["VAEOutput"] | components["schemas"]["CollectInvocationOutput"] | components["schemas"]["IntegerOutput"] | components["schemas"]["ColorCollectionOutput"] | components["schemas"]["ConditioningOutput"] | components["schemas"]["BooleanOutput"] | components["schemas"]["ImageOutput"] | components["schemas"]["FaceMaskOutput"] | components["schemas"]["ModelLoaderOutput"] | components["schemas"]["SeamlessModeOutput"] | components["schemas"]["ColorOutput"] | components["schemas"]["UNetOutput"] | components["schemas"]["DenoiseMaskOutput"] | components["schemas"]["CLIPOutput"] | components["schemas"]["T2IAdapterOutput"];
};
/**
* Errors
@@ -9703,17 +9758,23 @@ 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";
/**
- * ControlNetModelFormat
+ * StableDiffusionOnnxModelFormat
* @description An enumeration.
* @enum {string}
*/
- ControlNetModelFormat: "checkpoint" | "diffusers";
+ StableDiffusionOnnxModelFormat: "olive" | "onnx";
/**
- * T2IAdapterModelFormat
+ * CLIPVisionModelFormat
* @description An enumeration.
* @enum {string}
*/
- T2IAdapterModelFormat: "diffusers";
+ CLIPVisionModelFormat: "diffusers";
+ /**
+ * StableDiffusion1ModelFormat
+ * @description An enumeration.
+ * @enum {string}
+ */
+ StableDiffusion1ModelFormat: "checkpoint" | "diffusers";
/**
* StableDiffusionXLModelFormat
* @description An enumeration.
@@ -9727,11 +9788,11 @@ export type components = {
*/
StableDiffusion2ModelFormat: "checkpoint" | "diffusers";
/**
- * StableDiffusion1ModelFormat
+ * T2IAdapterModelFormat
* @description An enumeration.
* @enum {string}
*/
- StableDiffusion1ModelFormat: "checkpoint" | "diffusers";
+ T2IAdapterModelFormat: "diffusers";
/**
* IPAdapterModelFormat
* @description An enumeration.
@@ -9739,17 +9800,11 @@ export type components = {
*/
IPAdapterModelFormat: "invokeai";
/**
- * StableDiffusionOnnxModelFormat
+ * ControlNetModelFormat
* @description An enumeration.
* @enum {string}
*/
- StableDiffusionOnnxModelFormat: "olive" | "onnx";
- /**
- * CLIPVisionModelFormat
- * @description An enumeration.
- * @enum {string}
- */
- CLIPVisionModelFormat: "diffusers";
+ ControlNetModelFormat: "checkpoint" | "diffusers";
};
responses: never;
parameters: never;