roshikhan301's picture
Upload 2113 files
8a37e0a verified
import type { Templates } from 'features/nodes/store/types';
import type { InvocationTemplate } from 'features/nodes/types/invocation';
import { buildInvocationNode } from 'features/nodes/util/node/buildInvocationNode';
import type { OpenAPIV3_1 } from 'openapi-types';
import type { Edge } from 'reactflow';
export const buildEdge = (source: string, sourceHandle: string, target: string, targetHandle: string): Edge => ({
source,
sourceHandle,
target,
targetHandle,
type: 'default',
id: `reactflow__edge-${source}${sourceHandle}-${target}${targetHandle}`,
});
export const buildNode = (template: InvocationTemplate) => buildInvocationNode({ x: 0, y: 0 }, template);
export const add: InvocationTemplate = {
title: 'Add Integers',
type: 'add',
version: '1.0.1',
tags: ['math', 'add'],
description: 'Adds two numbers',
outputType: 'integer_output',
inputs: {
a: {
name: 'a',
title: 'A',
required: false,
description: 'The first number',
fieldKind: 'input',
input: 'any',
ui_hidden: false,
type: {
name: 'IntegerField',
cardinality: 'SINGLE',
},
default: 0,
},
b: {
name: 'b',
title: 'B',
required: false,
description: 'The second number',
fieldKind: 'input',
input: 'any',
ui_hidden: false,
type: {
name: 'IntegerField',
cardinality: 'SINGLE',
},
default: 0,
},
},
outputs: {
value: {
fieldKind: 'output',
name: 'value',
title: 'Value',
description: 'The output integer',
type: {
name: 'IntegerField',
cardinality: 'SINGLE',
},
ui_hidden: false,
},
},
useCache: true,
nodePack: 'invokeai',
classification: 'stable',
};
export const sub: InvocationTemplate = {
title: 'Subtract Integers',
type: 'sub',
version: '1.0.1',
tags: ['math', 'subtract'],
description: 'Subtracts two numbers',
outputType: 'integer_output',
inputs: {
a: {
name: 'a',
title: 'A',
required: false,
description: 'The first number',
fieldKind: 'input',
input: 'any',
ui_hidden: false,
type: {
name: 'IntegerField',
cardinality: 'SINGLE',
},
default: 0,
},
b: {
name: 'b',
title: 'B',
required: false,
description: 'The second number',
fieldKind: 'input',
input: 'any',
ui_hidden: false,
type: {
name: 'IntegerField',
cardinality: 'SINGLE',
},
default: 0,
},
},
outputs: {
value: {
fieldKind: 'output',
name: 'value',
title: 'Value',
description: 'The output integer',
type: {
name: 'IntegerField',
cardinality: 'SINGLE',
},
ui_hidden: false,
},
},
useCache: true,
nodePack: 'invokeai',
classification: 'stable',
};
export const collect: InvocationTemplate = {
title: 'Collect',
type: 'collect',
version: '1.0.0',
tags: [],
description: 'Collects values into a collection',
outputType: 'collect_output',
inputs: {
item: {
name: 'item',
title: 'Collection Item',
required: false,
description: 'The item to collect (all inputs must be of the same type)',
fieldKind: 'input',
input: 'connection',
ui_hidden: false,
ui_type: 'CollectionItemField',
type: {
name: 'CollectionItemField',
cardinality: 'SINGLE',
},
},
},
outputs: {
collection: {
fieldKind: 'output',
name: 'collection',
title: 'Collection',
description: 'The collection of input items',
type: {
name: 'CollectionField',
cardinality: 'COLLECTION',
},
ui_hidden: false,
ui_type: 'CollectionField',
},
},
useCache: true,
nodePack: 'invokeai',
classification: 'stable',
};
const scheduler: InvocationTemplate = {
title: 'Scheduler',
type: 'scheduler',
version: '1.0.0',
tags: ['scheduler'],
description: 'Selects a scheduler.',
outputType: 'scheduler_output',
inputs: {
scheduler: {
name: 'scheduler',
title: 'Scheduler',
required: false,
description: 'Scheduler to use during inference',
fieldKind: 'input',
input: 'any',
ui_hidden: false,
ui_type: 'SchedulerField',
type: {
name: 'SchedulerField',
cardinality: 'SINGLE',
originalType: {
name: 'EnumField',
cardinality: 'SINGLE',
},
},
default: 'euler',
},
},
outputs: {
scheduler: {
fieldKind: 'output',
name: 'scheduler',
title: 'Scheduler',
description: 'Scheduler to use during inference',
type: {
name: 'SchedulerField',
cardinality: 'SINGLE',
originalType: {
name: 'EnumField',
cardinality: 'SINGLE',
},
},
ui_hidden: false,
ui_type: 'SchedulerField',
},
},
useCache: true,
nodePack: 'invokeai',
classification: 'stable',
};
export const main_model_loader: InvocationTemplate = {
title: 'Main Model',
type: 'main_model_loader',
version: '1.0.2',
tags: ['model'],
description: 'Loads a main model, outputting its submodels.',
outputType: 'model_loader_output',
inputs: {
model: {
name: 'model',
title: 'Model',
required: true,
description: 'Main model (UNet, VAE, CLIP) to load',
fieldKind: 'input',
input: 'direct',
ui_hidden: false,
ui_type: 'MainModelField',
type: {
name: 'MainModelField',
cardinality: 'SINGLE',
originalType: {
name: 'ModelIdentifierField',
cardinality: 'SINGLE',
},
},
},
},
outputs: {
vae: {
fieldKind: 'output',
name: 'vae',
title: 'VAE',
description: 'VAE',
type: {
name: 'VAEField',
cardinality: 'SINGLE',
},
ui_hidden: false,
},
clip: {
fieldKind: 'output',
name: 'clip',
title: 'CLIP',
description: 'CLIP (tokenizer, text encoder, LoRAs) and skipped layer count',
type: {
name: 'CLIPField',
cardinality: 'SINGLE',
},
ui_hidden: false,
},
unet: {
fieldKind: 'output',
name: 'unet',
title: 'UNet',
description: 'UNet (scheduler, LoRAs)',
type: {
name: 'UNetField',
cardinality: 'SINGLE',
},
ui_hidden: false,
},
},
useCache: true,
nodePack: 'invokeai',
classification: 'stable',
};
export const img_resize: InvocationTemplate = {
title: 'Resize Image',
type: 'img_resize',
version: '1.2.2',
tags: ['image', 'resize'],
description: 'Resizes an image to specific dimensions',
outputType: 'image_output',
inputs: {
board: {
name: 'board',
title: 'Board',
required: false,
description: 'The board to save the image to',
fieldKind: 'input',
input: 'direct',
ui_hidden: false,
type: {
name: 'BoardField',
cardinality: 'SINGLE',
},
},
metadata: {
name: 'metadata',
title: 'Metadata',
required: false,
description: 'Optional metadata to be saved with the image',
fieldKind: 'input',
input: 'connection',
ui_hidden: false,
type: {
name: 'MetadataField',
cardinality: 'SINGLE',
},
},
image: {
name: 'image',
title: 'Image',
required: true,
description: 'The image to resize',
fieldKind: 'input',
input: 'any',
ui_hidden: false,
type: {
name: 'ImageField',
cardinality: 'SINGLE',
},
},
width: {
name: 'width',
title: 'Width',
required: false,
description: 'The width to resize to (px)',
fieldKind: 'input',
input: 'any',
ui_hidden: false,
type: {
name: 'IntegerField',
cardinality: 'SINGLE',
},
default: 512,
exclusiveMinimum: 0,
},
height: {
name: 'height',
title: 'Height',
required: false,
description: 'The height to resize to (px)',
fieldKind: 'input',
input: 'any',
ui_hidden: false,
type: {
name: 'IntegerField',
cardinality: 'SINGLE',
},
default: 512,
exclusiveMinimum: 0,
},
resample_mode: {
name: 'resample_mode',
title: 'Resample Mode',
required: false,
description: 'The resampling mode',
fieldKind: 'input',
input: 'any',
ui_hidden: false,
type: {
name: 'EnumField',
cardinality: 'SINGLE',
},
options: ['nearest', 'box', 'bilinear', 'hamming', 'bicubic', 'lanczos'],
default: 'bicubic',
},
},
outputs: {
image: {
fieldKind: 'output',
name: 'image',
title: 'Image',
description: 'The output image',
type: {
name: 'ImageField',
cardinality: 'SINGLE',
},
ui_hidden: false,
},
width: {
fieldKind: 'output',
name: 'width',
title: 'Width',
description: 'The width of the image in pixels',
type: {
name: 'IntegerField',
cardinality: 'SINGLE',
},
ui_hidden: false,
},
height: {
fieldKind: 'output',
name: 'height',
title: 'Height',
description: 'The height of the image in pixels',
type: {
name: 'IntegerField',
cardinality: 'SINGLE',
},
ui_hidden: false,
},
},
useCache: true,
nodePack: 'invokeai',
classification: 'stable',
};
const iterate: InvocationTemplate = {
title: 'Iterate',
type: 'iterate',
version: '1.1.0',
tags: [],
description: 'Iterates over a list of items',
outputType: 'iterate_output',
inputs: {
collection: {
name: 'collection',
title: 'Collection',
required: false,
description: 'The list of items to iterate over',
fieldKind: 'input',
input: 'connection',
ui_hidden: false,
ui_type: 'CollectionField',
type: {
name: 'CollectionField',
cardinality: 'COLLECTION',
},
},
},
outputs: {
item: {
fieldKind: 'output',
name: 'item',
title: 'Collection Item',
description: 'The item being iterated over',
type: {
name: 'CollectionItemField',
cardinality: 'SINGLE',
},
ui_hidden: false,
ui_type: 'CollectionItemField',
},
index: {
fieldKind: 'output',
name: 'index',
title: 'Index',
description: 'The index of the item',
type: {
name: 'IntegerField',
cardinality: 'SINGLE',
},
ui_hidden: false,
},
total: {
fieldKind: 'output',
name: 'total',
title: 'Total',
description: 'The total number of items',
type: {
name: 'IntegerField',
cardinality: 'SINGLE',
},
ui_hidden: false,
},
},
useCache: true,
nodePack: 'invokeai',
classification: 'stable',
};
export const templates: Templates = {
add,
sub,
collect,
iterate,
scheduler,
main_model_loader,
img_resize,
};
export const schema = {
openapi: '3.1.0',
info: {
title: 'Invoke - Community Edition',
description: 'An API for invoking AI image operations',
version: '1.0.0',
},
components: {
schemas: {
AddInvocation: {
properties: {
id: {
type: 'string',
title: 'Id',
description: 'The id of this instance of an invocation. Must be unique among all instances of invocations.',
field_kind: 'node_attribute',
},
is_intermediate: {
type: 'boolean',
title: 'Is Intermediate',
description: 'Whether or not this is an intermediate invocation.',
default: false,
field_kind: 'node_attribute',
ui_type: 'IsIntermediate',
},
use_cache: {
type: 'boolean',
title: 'Use Cache',
description: 'Whether or not to use the cache',
default: true,
field_kind: 'node_attribute',
},
a: {
type: 'integer',
title: 'A',
description: 'The first number',
default: 0,
field_kind: 'input',
input: 'any',
orig_default: 0,
orig_required: false,
ui_hidden: false,
},
b: {
type: 'integer',
title: 'B',
description: 'The second number',
default: 0,
field_kind: 'input',
input: 'any',
orig_default: 0,
orig_required: false,
ui_hidden: false,
},
type: {
type: 'string',
enum: ['add'],
const: 'add',
title: 'type',
default: 'add',
field_kind: 'node_attribute',
},
},
type: 'object',
required: ['type', 'id'],
title: 'Add Integers',
description: 'Adds two numbers',
category: 'math',
classification: 'stable',
node_pack: 'invokeai',
tags: ['math', 'add'],
version: '1.0.1',
output: {
$ref: '#/components/schemas/IntegerOutput',
},
class: 'invocation',
},
IntegerOutput: {
description: 'Base class for nodes that output a single integer',
properties: {
value: {
description: 'The output integer',
field_kind: 'output',
title: 'Value',
type: 'integer',
ui_hidden: false,
},
type: {
const: 'integer_output',
default: 'integer_output',
enum: ['integer_output'],
field_kind: 'node_attribute',
title: 'type',
type: 'string',
},
},
required: ['value', 'type', 'type'],
title: 'IntegerOutput',
type: 'object',
class: 'output',
},
SchedulerInvocation: {
properties: {
id: {
type: 'string',
title: 'Id',
description: 'The id of this instance of an invocation. Must be unique among all instances of invocations.',
field_kind: 'node_attribute',
},
is_intermediate: {
type: 'boolean',
title: 'Is Intermediate',
description: 'Whether or not this is an intermediate invocation.',
default: false,
field_kind: 'node_attribute',
ui_type: 'IsIntermediate',
},
use_cache: {
type: 'boolean',
title: 'Use Cache',
description: 'Whether or not to use the cache',
default: true,
field_kind: 'node_attribute',
},
scheduler: {
type: 'string',
enum: [
'ddim',
'ddpm',
'deis',
'lms',
'lms_k',
'pndm',
'heun',
'heun_k',
'euler',
'euler_k',
'euler_a',
'kdpm_2',
'kdpm_2_a',
'dpmpp_2s',
'dpmpp_2s_k',
'dpmpp_2m',
'dpmpp_2m_k',
'dpmpp_2m_sde',
'dpmpp_2m_sde_k',
'dpmpp_sde',
'dpmpp_sde_k',
'unipc',
'lcm',
'tcd',
],
title: 'Scheduler',
description: 'Scheduler to use during inference',
default: 'euler',
field_kind: 'input',
input: 'any',
orig_default: 'euler',
orig_required: false,
ui_hidden: false,
ui_type: 'SchedulerField',
},
type: {
type: 'string',
enum: ['scheduler'],
const: 'scheduler',
title: 'type',
default: 'scheduler',
field_kind: 'node_attribute',
},
},
type: 'object',
required: ['type', 'id'],
title: 'Scheduler',
description: 'Selects a scheduler.',
category: 'latents',
classification: 'stable',
node_pack: 'invokeai',
tags: ['scheduler'],
version: '1.0.0',
output: {
$ref: '#/components/schemas/SchedulerOutput',
},
class: 'invocation',
},
SchedulerOutput: {
properties: {
scheduler: {
description: 'Scheduler to use during inference',
enum: [
'ddim',
'ddpm',
'deis',
'lms',
'lms_k',
'pndm',
'heun',
'heun_k',
'euler',
'euler_k',
'euler_a',
'kdpm_2',
'kdpm_2_a',
'dpmpp_2s',
'dpmpp_2s_k',
'dpmpp_2m',
'dpmpp_2m_k',
'dpmpp_2m_sde',
'dpmpp_2m_sde_k',
'dpmpp_sde',
'dpmpp_sde_k',
'unipc',
'lcm',
'tcd',
],
field_kind: 'output',
title: 'Scheduler',
type: 'string',
ui_hidden: false,
ui_type: 'SchedulerField',
},
type: {
const: 'scheduler_output',
default: 'scheduler_output',
enum: ['scheduler_output'],
field_kind: 'node_attribute',
title: 'type',
type: 'string',
},
},
required: ['scheduler', 'type', 'type'],
title: 'SchedulerOutput',
type: 'object',
class: 'output',
},
MainModelLoaderInvocation: {
properties: {
id: {
type: 'string',
title: 'Id',
description: 'The id of this instance of an invocation. Must be unique among all instances of invocations.',
field_kind: 'node_attribute',
},
is_intermediate: {
type: 'boolean',
title: 'Is Intermediate',
description: 'Whether or not this is an intermediate invocation.',
default: false,
field_kind: 'node_attribute',
ui_type: 'IsIntermediate',
},
use_cache: {
type: 'boolean',
title: 'Use Cache',
description: 'Whether or not to use the cache',
default: true,
field_kind: 'node_attribute',
},
model: {
allOf: [
{
$ref: '#/components/schemas/ModelIdentifierField',
},
],
description: 'Main model (UNet, VAE, CLIP) to load',
field_kind: 'input',
input: 'direct',
orig_required: true,
ui_hidden: false,
ui_type: 'MainModelField',
},
type: {
type: 'string',
enum: ['main_model_loader'],
const: 'main_model_loader',
title: 'type',
default: 'main_model_loader',
field_kind: 'node_attribute',
},
},
type: 'object',
required: ['model', 'type', 'id'],
title: 'Main Model',
description: 'Loads a main model, outputting its submodels.',
category: 'model',
classification: 'stable',
node_pack: 'invokeai',
tags: ['model'],
version: '1.0.2',
output: {
$ref: '#/components/schemas/ModelLoaderOutput',
},
class: 'invocation',
},
ModelIdentifierField: {
properties: {
key: {
description: "The model's unique key",
title: 'Key',
type: 'string',
},
hash: {
description: "The model's BLAKE3 hash",
title: 'Hash',
type: 'string',
},
name: {
description: "The model's name",
title: 'Name',
type: 'string',
},
base: {
allOf: [
{
$ref: '#/components/schemas/BaseModelType',
},
],
description: "The model's base model type",
},
type: {
allOf: [
{
$ref: '#/components/schemas/ModelType',
},
],
description: "The model's type",
},
submodel_type: {
anyOf: [
{
$ref: '#/components/schemas/SubModelType',
},
{
type: 'null',
},
],
default: null,
description: 'The submodel to load, if this is a main model',
},
},
required: ['key', 'hash', 'name', 'base', 'type'],
title: 'ModelIdentifierField',
type: 'object',
},
BaseModelType: {
description: 'Base model type.',
enum: ['any', 'sd-1', 'sd-2', 'sdxl', 'sdxl-refiner'],
title: 'BaseModelType',
type: 'string',
},
ModelType: {
description: 'Model type.',
enum: ['onnx', 'main', 'vae', 'lora', 'controlnet', 'embedding', 'ip_adapter', 'clip_vision', 't2i_adapter'],
title: 'ModelType',
type: 'string',
},
SubModelType: {
description: 'Submodel type.',
enum: [
'unet',
'text_encoder',
'text_encoder_2',
'tokenizer',
'tokenizer_2',
'vae',
'vae_decoder',
'vae_encoder',
'scheduler',
'safety_checker',
],
title: 'SubModelType',
type: 'string',
},
ModelLoaderOutput: {
description: 'Model loader output',
properties: {
vae: {
allOf: [
{
$ref: '#/components/schemas/VAEField',
},
],
description: 'VAE',
field_kind: 'output',
title: 'VAE',
ui_hidden: false,
},
type: {
const: 'model_loader_output',
default: 'model_loader_output',
enum: ['model_loader_output'],
field_kind: 'node_attribute',
title: 'type',
type: 'string',
},
clip: {
allOf: [
{
$ref: '#/components/schemas/CLIPField',
},
],
description: 'CLIP (tokenizer, text encoder, LoRAs) and skipped layer count',
field_kind: 'output',
title: 'CLIP',
ui_hidden: false,
},
unet: {
allOf: [
{
$ref: '#/components/schemas/UNetField',
},
],
description: 'UNet (scheduler, LoRAs)',
field_kind: 'output',
title: 'UNet',
ui_hidden: false,
},
},
required: ['vae', 'type', 'clip', 'unet', 'type'],
title: 'ModelLoaderOutput',
type: 'object',
class: 'output',
},
UNetField: {
properties: {
unet: {
allOf: [
{
$ref: '#/components/schemas/ModelIdentifierField',
},
],
description: 'Info to load unet submodel',
},
scheduler: {
allOf: [
{
$ref: '#/components/schemas/ModelIdentifierField',
},
],
description: 'Info to load scheduler submodel',
},
loras: {
description: 'LoRAs to apply on model loading',
items: {
$ref: '#/components/schemas/LoRAField',
},
title: 'Loras',
type: 'array',
},
seamless_axes: {
description: 'Axes("x" and "y") to which apply seamless',
items: {
type: 'string',
},
title: 'Seamless Axes',
type: 'array',
},
freeu_config: {
anyOf: [
{
$ref: '#/components/schemas/FreeUConfig',
},
{
type: 'null',
},
],
default: null,
description: 'FreeU configuration',
},
},
required: ['unet', 'scheduler', 'loras'],
title: 'UNetField',
type: 'object',
class: 'output',
},
LoRAField: {
properties: {
lora: {
allOf: [
{
$ref: '#/components/schemas/ModelIdentifierField',
},
],
description: 'Info to load lora model',
},
weight: {
description: 'Weight to apply to lora model',
title: 'Weight',
type: 'number',
},
},
required: ['lora', 'weight'],
title: 'LoRAField',
type: 'object',
class: 'output',
},
FreeUConfig: {
description:
'Configuration for the FreeU hyperparameters.\n- https://huggingface.co/docs/diffusers/main/en/using-diffusers/freeu\n- https://github.com/ChenyangSi/FreeU',
properties: {
s1: {
description:
'Scaling factor for stage 1 to attenuate the contributions of the skip features. This is done to mitigate the "oversmoothing effect" in the enhanced denoising process.',
maximum: 3,
minimum: -1,
title: 'S1',
type: 'number',
},
s2: {
description:
'Scaling factor for stage 2 to attenuate the contributions of the skip features. This is done to mitigate the "oversmoothing effect" in the enhanced denoising process.',
maximum: 3,
minimum: -1,
title: 'S2',
type: 'number',
},
b1: {
description: 'Scaling factor for stage 1 to amplify the contributions of backbone features.',
maximum: 3,
minimum: -1,
title: 'B1',
type: 'number',
},
b2: {
description: 'Scaling factor for stage 2 to amplify the contributions of backbone features.',
maximum: 3,
minimum: -1,
title: 'B2',
type: 'number',
},
},
required: ['s1', 's2', 'b1', 'b2'],
title: 'FreeUConfig',
type: 'object',
class: 'output',
},
VAEField: {
properties: {
vae: {
allOf: [
{
$ref: '#/components/schemas/ModelIdentifierField',
},
],
description: 'Info to load vae submodel',
},
seamless_axes: {
description: 'Axes("x" and "y") to which apply seamless',
items: {
type: 'string',
},
title: 'Seamless Axes',
type: 'array',
},
},
required: ['vae'],
title: 'VAEField',
type: 'object',
class: 'output',
},
CLIPField: {
properties: {
tokenizer: {
allOf: [
{
$ref: '#/components/schemas/ModelIdentifierField',
},
],
description: 'Info to load tokenizer submodel',
},
text_encoder: {
allOf: [
{
$ref: '#/components/schemas/ModelIdentifierField',
},
],
description: 'Info to load text_encoder submodel',
},
skipped_layers: {
description: 'Number of skipped layers in text_encoder',
title: 'Skipped Layers',
type: 'integer',
},
loras: {
description: 'LoRAs to apply on model loading',
items: {
$ref: '#/components/schemas/LoRAField',
},
title: 'Loras',
type: 'array',
},
},
required: ['tokenizer', 'text_encoder', 'skipped_layers', 'loras'],
title: 'CLIPField',
type: 'object',
class: 'output',
},
CollectInvocation: {
properties: {
id: {
type: 'string',
title: 'Id',
description: 'The id of this instance of an invocation. Must be unique among all instances of invocations.',
field_kind: 'node_attribute',
},
is_intermediate: {
type: 'boolean',
title: 'Is Intermediate',
description: 'Whether or not this is an intermediate invocation.',
default: false,
field_kind: 'node_attribute',
ui_type: 'IsIntermediate',
},
use_cache: {
type: 'boolean',
title: 'Use Cache',
description: 'Whether or not to use the cache',
default: true,
field_kind: 'node_attribute',
},
item: {
anyOf: [
{},
{
type: 'null',
},
],
title: 'Collection Item',
description: 'The item to collect (all inputs must be of the same type)',
field_kind: 'input',
input: 'connection',
orig_required: false,
ui_hidden: false,
ui_type: 'CollectionItemField',
},
collection: {
items: {},
type: 'array',
title: 'Collection',
description: 'The collection, will be provided on execution',
default: [],
field_kind: 'input',
input: 'any',
orig_default: [],
orig_required: false,
ui_hidden: true,
},
type: {
type: 'string',
enum: ['collect'],
const: 'collect',
title: 'type',
default: 'collect',
field_kind: 'node_attribute',
},
},
type: 'object',
required: ['type', 'id'],
title: 'CollectInvocation',
node_pack: 'invokeai',
description: 'Collects values into a collection',
classification: 'stable',
version: '1.0.0',
output: {
$ref: '#/components/schemas/CollectInvocationOutput',
},
class: 'invocation',
},
CollectInvocationOutput: {
properties: {
collection: {
description: 'The collection of input items',
field_kind: 'output',
items: {},
title: 'Collection',
type: 'array',
ui_hidden: false,
ui_type: 'CollectionField',
},
type: {
const: 'collect_output',
default: 'collect_output',
enum: ['collect_output'],
field_kind: 'node_attribute',
title: 'type',
type: 'string',
},
},
required: ['collection', 'type', 'type'],
title: 'CollectInvocationOutput',
type: 'object',
class: 'output',
},
SubtractInvocation: {
properties: {
id: {
type: 'string',
title: 'Id',
description: 'The id of this instance of an invocation. Must be unique among all instances of invocations.',
field_kind: 'node_attribute',
},
is_intermediate: {
type: 'boolean',
title: 'Is Intermediate',
description: 'Whether or not this is an intermediate invocation.',
default: false,
field_kind: 'node_attribute',
ui_type: 'IsIntermediate',
},
use_cache: {
type: 'boolean',
title: 'Use Cache',
description: 'Whether or not to use the cache',
default: true,
field_kind: 'node_attribute',
},
a: {
type: 'integer',
title: 'A',
description: 'The first number',
default: 0,
field_kind: 'input',
input: 'any',
orig_default: 0,
orig_required: false,
ui_hidden: false,
},
b: {
type: 'integer',
title: 'B',
description: 'The second number',
default: 0,
field_kind: 'input',
input: 'any',
orig_default: 0,
orig_required: false,
ui_hidden: false,
},
type: {
type: 'string',
enum: ['sub'],
const: 'sub',
title: 'type',
default: 'sub',
field_kind: 'node_attribute',
},
},
type: 'object',
required: ['type', 'id'],
title: 'Subtract Integers',
description: 'Subtracts two numbers',
category: 'math',
classification: 'stable',
node_pack: 'invokeai',
tags: ['math', 'subtract'],
version: '1.0.1',
output: {
$ref: '#/components/schemas/IntegerOutput',
},
class: 'invocation',
},
ImageResizeInvocation: {
properties: {
board: {
anyOf: [
{
$ref: '#/components/schemas/BoardField',
},
{
type: 'null',
},
],
description: 'The board to save the image to',
field_kind: 'internal',
input: 'direct',
orig_required: false,
ui_hidden: false,
},
metadata: {
anyOf: [
{
$ref: '#/components/schemas/MetadataField',
},
{
type: 'null',
},
],
description: 'Optional metadata to be saved with the image',
field_kind: 'internal',
input: 'connection',
orig_required: false,
ui_hidden: false,
},
id: {
type: 'string',
title: 'Id',
description: 'The id of this instance of an invocation. Must be unique among all instances of invocations.',
field_kind: 'node_attribute',
},
is_intermediate: {
type: 'boolean',
title: 'Is Intermediate',
description: 'Whether or not this is an intermediate invocation.',
default: false,
field_kind: 'node_attribute',
ui_type: 'IsIntermediate',
},
use_cache: {
type: 'boolean',
title: 'Use Cache',
description: 'Whether or not to use the cache',
default: true,
field_kind: 'node_attribute',
},
image: {
allOf: [
{
$ref: '#/components/schemas/ImageField',
},
],
description: 'The image to resize',
field_kind: 'input',
input: 'any',
orig_required: true,
ui_hidden: false,
},
width: {
type: 'integer',
exclusiveMinimum: 0,
title: 'Width',
description: 'The width to resize to (px)',
default: 512,
field_kind: 'input',
input: 'any',
orig_default: 512,
orig_required: false,
ui_hidden: false,
},
height: {
type: 'integer',
exclusiveMinimum: 0,
title: 'Height',
description: 'The height to resize to (px)',
default: 512,
field_kind: 'input',
input: 'any',
orig_default: 512,
orig_required: false,
ui_hidden: false,
},
resample_mode: {
type: 'string',
enum: ['nearest', 'box', 'bilinear', 'hamming', 'bicubic', 'lanczos'],
title: 'Resample Mode',
description: 'The resampling mode',
default: 'bicubic',
field_kind: 'input',
input: 'any',
orig_default: 'bicubic',
orig_required: false,
ui_hidden: false,
},
type: {
type: 'string',
enum: ['img_resize'],
const: 'img_resize',
title: 'type',
default: 'img_resize',
field_kind: 'node_attribute',
},
},
type: 'object',
required: ['type', 'id'],
title: 'Resize Image',
description: 'Resizes an image to specific dimensions',
category: 'image',
classification: 'stable',
node_pack: 'invokeai',
tags: ['image', 'resize'],
version: '1.2.2',
output: {
$ref: '#/components/schemas/ImageOutput',
},
class: 'invocation',
},
ImageField: {
description: 'An image primitive field',
properties: {
image_name: {
description: 'The name of the image',
title: 'Image Name',
type: 'string',
},
},
required: ['image_name'],
title: 'ImageField',
type: 'object',
class: 'output',
},
ImageOutput: {
description: 'Base class for nodes that output a single image',
properties: {
image: {
allOf: [
{
$ref: '#/components/schemas/ImageField',
},
],
description: 'The output image',
field_kind: 'output',
ui_hidden: false,
},
width: {
description: 'The width of the image in pixels',
field_kind: 'output',
title: 'Width',
type: 'integer',
ui_hidden: false,
},
height: {
description: 'The height of the image in pixels',
field_kind: 'output',
title: 'Height',
type: 'integer',
ui_hidden: false,
},
type: {
const: 'image_output',
default: 'image_output',
enum: ['image_output'],
field_kind: 'node_attribute',
title: 'type',
type: 'string',
},
},
required: ['image', 'width', 'height', 'type', 'type'],
title: 'ImageOutput',
type: 'object',
class: 'output',
},
MetadataField: {
description:
'Pydantic model for metadata with custom root of type dict[str, Any].\nMetadata is stored without a strict schema.',
title: 'MetadataField',
type: 'object',
class: 'output',
},
BoardField: {
properties: {
board_id: {
type: 'string',
title: 'Board Id',
description: 'The id of the board',
},
},
type: 'object',
required: ['board_id'],
title: 'BoardField',
description: 'A board primitive field',
},
IterateInvocation: {
properties: {
id: {
type: 'string',
title: 'Id',
description: 'The id of this instance of an invocation. Must be unique among all instances of invocations.',
field_kind: 'node_attribute',
},
is_intermediate: {
type: 'boolean',
title: 'Is Intermediate',
description: 'Whether or not this is an intermediate invocation.',
default: false,
field_kind: 'node_attribute',
ui_type: 'IsIntermediate',
},
use_cache: {
type: 'boolean',
title: 'Use Cache',
description: 'Whether or not to use the cache',
default: true,
field_kind: 'node_attribute',
},
collection: {
items: {},
type: 'array',
title: 'Collection',
description: 'The list of items to iterate over',
default: [],
field_kind: 'input',
input: 'any',
orig_default: [],
orig_required: false,
ui_hidden: false,
ui_type: 'CollectionField',
},
index: {
type: 'integer',
title: 'Index',
description: 'The index, will be provided on executed iterators',
default: 0,
field_kind: 'input',
input: 'any',
orig_default: 0,
orig_required: false,
ui_hidden: true,
},
type: {
type: 'string',
enum: ['iterate'],
const: 'iterate',
title: 'type',
default: 'iterate',
field_kind: 'node_attribute',
},
},
type: 'object',
required: ['type', 'id'],
title: 'IterateInvocation',
description: 'Iterates over a list of items',
classification: 'stable',
node_pack: 'invokeai',
version: '1.1.0',
output: {
$ref: '#/components/schemas/IterateInvocationOutput',
},
class: 'invocation',
},
IterateInvocationOutput: {
description: 'Used to connect iteration outputs. Will be expanded to a specific output.',
properties: {
item: {
description: 'The item being iterated over',
field_kind: 'output',
title: 'Collection Item',
ui_hidden: false,
ui_type: 'CollectionItemField',
},
index: {
description: 'The index of the item',
field_kind: 'output',
title: 'Index',
type: 'integer',
ui_hidden: false,
},
total: {
description: 'The total number of items',
field_kind: 'output',
title: 'Total',
type: 'integer',
ui_hidden: false,
},
type: {
const: 'iterate_output',
default: 'iterate_output',
enum: ['iterate_output'],
field_kind: 'node_attribute',
title: 'type',
type: 'string',
},
},
required: ['item', 'index', 'total', 'type', 'type'],
title: 'IterateInvocationOutput',
type: 'object',
class: 'output',
},
},
},
} as OpenAPIV3_1.Document;