Skip to content

Commit

Permalink
feat(ui): add type extraction helpers
Browse files Browse the repository at this point in the history
  • Loading branch information
psychedelicious committed Jun 27, 2023
1 parent 3c30368 commit 1f3e558
Showing 1 changed file with 60 additions and 62 deletions.
122 changes: 60 additions & 62 deletions invokeai/frontend/web/src/services/api/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,91 +4,89 @@ import { components } from './schema';
type schemas = components['schemas'];

/**
* Helper type to extract the invocation type from the schema.
* Also flags the `type` property as required.
* Extracts the schema type from the schema.
*/
type Invocation<T extends keyof schemas> = O.Required<schemas[T], 'type'>;
type S<T extends keyof components['schemas']> = components['schemas'][T];

/**
* Types from the API, re-exported from the types generated by `openapi-typescript`.
* Extracts the node type from the schema.
* Also flags the `type` property as required.
*/
type N<T extends keyof components['schemas']> = O.Required<
components['schemas'][T],
'type'
>;

// Images
export type ImageDTO = schemas['ImageDTO'];
export type BoardDTO = schemas['BoardDTO'];
export type BoardChanges = schemas['BoardChanges'];
export type ImageChanges = schemas['ImageRecordChanges'];
export type ImageCategory = schemas['ImageCategory'];
export type ResourceOrigin = schemas['ResourceOrigin'];
export type ImageField = schemas['ImageField'];
export type ImageDTO = S<'ImageDTO'>;
export type BoardDTO = S<'BoardDTO'>;
export type BoardChanges = S<'BoardChanges'>;
export type ImageChanges = S<'ImageRecordChanges'>;
export type ImageCategory = S<'ImageCategory'>;
export type ResourceOrigin = S<'ResourceOrigin'>;
export type ImageField = S<'ImageField'>;
export type OffsetPaginatedResults_BoardDTO_ =
schemas['OffsetPaginatedResults_BoardDTO_'];
S<'OffsetPaginatedResults_BoardDTO_'>;
export type OffsetPaginatedResults_ImageDTO_ =
schemas['OffsetPaginatedResults_ImageDTO_'];
S<'OffsetPaginatedResults_ImageDTO_'>;

// Models
export type ModelType = schemas['ModelType'];
export type BaseModelType = schemas['BaseModelType'];
export type PipelineModelField = schemas['PipelineModelField'];
export type ModelsList = schemas['ModelsList'];
export type ModelType = S<'ModelType'>;
export type BaseModelType = S<'BaseModelType'>;
export type PipelineModelField = S<'PipelineModelField'>;
export type ModelsList = S<'ModelsList'>;

// Graphs
export type Graph = schemas['Graph'];
export type Edge = schemas['Edge'];
export type GraphExecutionState = schemas['GraphExecutionState'];
export type Graph = S<'Graph'>;
export type Edge = S<'Edge'>;
export type GraphExecutionState = S<'GraphExecutionState'>;

// General nodes
export type CollectInvocation = Invocation<'CollectInvocation'>;
export type IterateInvocation = Invocation<'IterateInvocation'>;
export type RangeInvocation = Invocation<'RangeInvocation'>;
export type RandomRangeInvocation = Invocation<'RandomRangeInvocation'>;
export type RangeOfSizeInvocation = Invocation<'RangeOfSizeInvocation'>;
export type InpaintInvocation = Invocation<'InpaintInvocation'>;
export type ImageResizeInvocation = Invocation<'ImageResizeInvocation'>;
export type RandomIntInvocation = Invocation<'RandomIntInvocation'>;
export type CompelInvocation = Invocation<'CompelInvocation'>;
export type DynamicPromptInvocation = Invocation<'DynamicPromptInvocation'>;
export type NoiseInvocation = Invocation<'NoiseInvocation'>;
export type TextToLatentsInvocation = Invocation<'TextToLatentsInvocation'>;
export type LatentsToLatentsInvocation =
Invocation<'LatentsToLatentsInvocation'>;
export type ImageToLatentsInvocation = Invocation<'ImageToLatentsInvocation'>;
export type LatentsToImageInvocation = Invocation<'LatentsToImageInvocation'>;
export type PipelineModelLoaderInvocation =
Invocation<'PipelineModelLoaderInvocation'>;
export type CollectInvocation = N<'CollectInvocation'>;
export type IterateInvocation = N<'IterateInvocation'>;
export type RangeInvocation = N<'RangeInvocation'>;
export type RandomRangeInvocation = N<'RandomRangeInvocation'>;
export type RangeOfSizeInvocation = N<'RangeOfSizeInvocation'>;
export type InpaintInvocation = N<'InpaintInvocation'>;
export type ImageResizeInvocation = N<'ImageResizeInvocation'>;
export type RandomIntInvocation = N<'RandomIntInvocation'>;
export type CompelInvocation = N<'CompelInvocation'>;
export type DynamicPromptInvocation = N<'DynamicPromptInvocation'>;
export type NoiseInvocation = N<'NoiseInvocation'>;
export type TextToLatentsInvocation = N<'TextToLatentsInvocation'>;
export type LatentsToLatentsInvocation = N<'LatentsToLatentsInvocation'>;
export type ImageToLatentsInvocation = N<'ImageToLatentsInvocation'>;
export type LatentsToImageInvocation = N<'LatentsToImageInvocation'>;
export type PipelineModelLoaderInvocation = N<'PipelineModelLoaderInvocation'>;

// ControlNet Nodes
export type ControlNetInvocation = Invocation<'ControlNetInvocation'>;
export type CannyImageProcessorInvocation =
Invocation<'CannyImageProcessorInvocation'>;
export type ControlNetInvocation = N<'ControlNetInvocation'>;
export type CannyImageProcessorInvocation = N<'CannyImageProcessorInvocation'>;
export type ContentShuffleImageProcessorInvocation =
Invocation<'ContentShuffleImageProcessorInvocation'>;
export type HedImageProcessorInvocation =
Invocation<'HedImageProcessorInvocation'>;
N<'ContentShuffleImageProcessorInvocation'>;
export type HedImageProcessorInvocation = N<'HedImageProcessorInvocation'>;
export type LineartAnimeImageProcessorInvocation =
Invocation<'LineartAnimeImageProcessorInvocation'>;
N<'LineartAnimeImageProcessorInvocation'>;
export type LineartImageProcessorInvocation =
Invocation<'LineartImageProcessorInvocation'>;
N<'LineartImageProcessorInvocation'>;
export type MediapipeFaceProcessorInvocation =
Invocation<'MediapipeFaceProcessorInvocation'>;
N<'MediapipeFaceProcessorInvocation'>;
export type MidasDepthImageProcessorInvocation =
Invocation<'MidasDepthImageProcessorInvocation'>;
export type MlsdImageProcessorInvocation =
Invocation<'MlsdImageProcessorInvocation'>;
N<'MidasDepthImageProcessorInvocation'>;
export type MlsdImageProcessorInvocation = N<'MlsdImageProcessorInvocation'>;
export type NormalbaeImageProcessorInvocation =
Invocation<'NormalbaeImageProcessorInvocation'>;
N<'NormalbaeImageProcessorInvocation'>;
export type OpenposeImageProcessorInvocation =
Invocation<'OpenposeImageProcessorInvocation'>;
export type PidiImageProcessorInvocation =
Invocation<'PidiImageProcessorInvocation'>;
N<'OpenposeImageProcessorInvocation'>;
export type PidiImageProcessorInvocation = N<'PidiImageProcessorInvocation'>;
export type ZoeDepthImageProcessorInvocation =
Invocation<'ZoeDepthImageProcessorInvocation'>;
N<'ZoeDepthImageProcessorInvocation'>;

// Node Outputs
export type ImageOutput = schemas['ImageOutput'];
export type MaskOutput = schemas['MaskOutput'];
export type PromptOutput = schemas['PromptOutput'];
export type IterateInvocationOutput = schemas['IterateInvocationOutput'];
export type CollectInvocationOutput = schemas['CollectInvocationOutput'];
export type LatentsOutput = schemas['LatentsOutput'];
export type GraphInvocationOutput = schemas['GraphInvocationOutput'];
export type ImageOutput = S<'ImageOutput'>;
export type MaskOutput = S<'MaskOutput'>;
export type PromptOutput = S<'PromptOutput'>;
export type IterateInvocationOutput = S<'IterateInvocationOutput'>;
export type CollectInvocationOutput = S<'CollectInvocationOutput'>;
export type LatentsOutput = S<'LatentsOutput'>;
export type GraphInvocationOutput = S<'GraphInvocationOutput'>;

0 comments on commit 1f3e558

Please sign in to comment.