InvokeAI/invokeai/frontend/web/src/services/api/schema.d.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

8517 lines
238 KiB
TypeScript
Raw Normal View History

/**
* This file was auto-generated by openapi-typescript.
* Do not make direct changes to the file.
*/
2023-08-16 01:59:19 +00:00
export type paths = {
2023-08-16 01:59:19 +00:00
"/api/v1/sessions/": {
/**
2023-08-22 05:15:00 +00:00
* List Sessions
* @description Gets a list of sessions, optionally searching
*/
2023-08-16 01:59:19 +00:00
get: operations["list_sessions"];
/**
2023-08-22 05:15:00 +00:00
* Create Session
* @description Creates a new session, optionally initializing it with an invocation graph
*/
2023-08-16 01:59:19 +00:00
post: operations["create_session"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/sessions/{session_id}": {
/**
2023-08-22 05:15:00 +00:00
* Get Session
* @description Gets a session
*/
2023-08-16 01:59:19 +00:00
get: operations["get_session"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/sessions/{session_id}/nodes": {
/**
2023-08-22 05:15:00 +00:00
* Add Node
* @description Adds a node to the graph
*/
2023-08-16 01:59:19 +00:00
post: operations["add_node"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/sessions/{session_id}/nodes/{node_path}": {
/**
2023-08-22 05:15:00 +00:00
* Update Node
* @description Updates a node in the graph and removes all linked edges
*/
2023-08-16 01:59:19 +00:00
put: operations["update_node"];
/**
2023-08-22 05:15:00 +00:00
* Delete Node
* @description Deletes a node in the graph and removes all linked edges
*/
2023-08-16 01:59:19 +00:00
delete: operations["delete_node"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/sessions/{session_id}/edges": {
/**
2023-08-22 05:15:00 +00:00
* Add Edge
* @description Adds an edge to the graph
*/
2023-08-16 01:59:19 +00:00
post: operations["add_edge"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/sessions/{session_id}/edges/{from_node_id}/{from_field}/{to_node_id}/{to_field}": {
/**
2023-08-22 05:15:00 +00:00
* Delete Edge
* @description Deletes an edge from the graph
*/
2023-08-16 01:59:19 +00:00
delete: operations["delete_edge"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/sessions/{session_id}/invoke": {
/**
2023-08-22 05:15:00 +00:00
* Invoke Session
* @description Invokes a session
*/
2023-08-16 01:59:19 +00:00
put: operations["invoke_session"];
/**
2023-08-22 05:15:00 +00:00
* Cancel Session Invoke
* @description Invokes a session
*/
2023-08-16 01:59:19 +00:00
delete: operations["cancel_session_invoke"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/models/": {
/**
2023-08-22 05:15:00 +00:00
* List Models
* @description Gets a list of models
*/
2023-08-16 01:59:19 +00:00
get: operations["list_models"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/models/{base_model}/{model_type}/{model_name}": {
/**
2023-08-22 05:15:00 +00:00
* Delete Model
* @description Delete Model
*/
2023-08-16 01:59:19 +00:00
delete: operations["del_model"];
/**
2023-08-22 05:15:00 +00:00
* Update Model
2023-07-17 01:50:35 +00:00
* @description Update model contents with a new config. If the model name or base fields are changed, then the model is renamed.
*/
2023-08-16 01:59:19 +00:00
patch: operations["update_model"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/models/import": {
2023-07-15 15:06:57 +00:00
/**
2023-08-22 05:15:00 +00:00
* Import Model
2023-07-15 15:06:57 +00:00
* @description Add a model using its local path, repo_id, or remote URL. Model characteristics will be probed and configured automatically
*/
2023-08-16 01:59:19 +00:00
post: operations["import_model"];
2023-07-15 15:06:57 +00:00
};
2023-08-16 01:59:19 +00:00
"/api/v1/models/add": {
2023-07-15 15:06:57 +00:00
/**
2023-08-22 05:15:00 +00:00
* Add Model
2023-07-15 15:06:57 +00:00
* @description Add a model using the configuration information appropriate for its type. Only local models can be added by path
*/
2023-08-16 01:59:19 +00:00
post: operations["add_model"];
2023-07-15 15:06:57 +00:00
};
2023-08-16 01:59:19 +00:00
"/api/v1/models/convert/{base_model}/{model_type}/{model_name}": {
/**
2023-08-22 05:15:00 +00:00
* Convert Model
2023-07-15 15:06:57 +00:00
* @description Convert a checkpoint model into a diffusers model, optionally saving to the indicated destination directory, or `models` if none.
*/
2023-08-16 01:59:19 +00:00
put: operations["convert_model"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/models/search": {
2023-07-15 15:06:57 +00:00
/** Search For Models */
2023-08-16 01:59:19 +00:00
get: operations["search_for_models"];
2023-07-15 15:06:57 +00:00
};
2023-08-16 01:59:19 +00:00
"/api/v1/models/ckpt_confs": {
2023-07-15 15:06:57 +00:00
/**
2023-08-22 05:15:00 +00:00
* List Ckpt Configs
2023-07-15 15:06:57 +00:00
* @description Return a list of the legacy checkpoint configuration files stored in `ROOT/configs/stable-diffusion`, relative to ROOT.
*/
2023-08-16 01:59:19 +00:00
get: operations["list_ckpt_configs"];
2023-07-15 15:06:57 +00:00
};
2023-08-16 01:59:19 +00:00
"/api/v1/models/sync": {
2023-07-15 15:06:57 +00:00
/**
2023-08-22 05:15:00 +00:00
* Sync To Config
2023-07-15 15:06:57 +00:00
* @description Call after making changes to models.yaml, autoimport directories or models directory to synchronize
* in-memory data structures with disk data structures.
*/
2023-08-16 01:59:19 +00:00
post: operations["sync_to_config"];
2023-07-15 15:06:57 +00:00
};
2023-08-16 01:59:19 +00:00
"/api/v1/models/merge/{base_model}": {
/**
2023-08-22 05:15:00 +00:00
* Merge Models
* @description Convert a checkpoint model into a diffusers model
*/
2023-08-16 01:59:19 +00:00
put: operations["merge_models"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/images/upload": {
/**
2023-08-22 05:15:00 +00:00
* Upload Image
* @description Uploads an image
*/
2023-08-16 01:59:19 +00:00
post: operations["upload_image"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/images/i/{image_name}": {
/**
2023-08-22 05:15:00 +00:00
* Get Image Dto
2023-07-12 15:15:09 +00:00
* @description Gets an image's DTO
*/
2023-08-16 01:59:19 +00:00
get: operations["get_image_dto"];
/**
2023-08-22 05:15:00 +00:00
* Delete Image
* @description Deletes an image
*/
2023-08-16 01:59:19 +00:00
delete: operations["delete_image"];
/**
2023-08-22 05:15:00 +00:00
* Update Image
* @description Updates an image
*/
2023-08-16 01:59:19 +00:00
patch: operations["update_image"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/images/clear-intermediates": {
/**
2023-08-22 05:15:00 +00:00
* Clear Intermediates
* @description Clears all intermediates
*/
2023-08-16 01:59:19 +00:00
post: operations["clear_intermediates"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/images/i/{image_name}/metadata": {
/**
2023-08-22 05:15:00 +00:00
* Get Image Metadata
* @description Gets an image's metadata
*/
2023-08-16 01:59:19 +00:00
get: operations["get_image_metadata"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/images/i/{image_name}/full": {
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Get Image Full
2023-07-12 15:15:09 +00:00
* @description Gets a full-resolution image file
*/
2023-08-16 01:59:19 +00:00
get: operations["get_image_full"];
/**
2023-08-22 05:15:00 +00:00
* Get Image Full
* @description Gets a full-resolution image file
*/
2023-08-16 01:59:19 +00:00
head: operations["get_image_full"];
2023-07-12 15:15:09 +00:00
};
2023-08-16 01:59:19 +00:00
"/api/v1/images/i/{image_name}/thumbnail": {
/**
2023-08-22 05:15:00 +00:00
* Get Image Thumbnail
* @description Gets a thumbnail image file
*/
2023-08-16 01:59:19 +00:00
get: operations["get_image_thumbnail"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/images/i/{image_name}/urls": {
/**
2023-08-22 05:15:00 +00:00
* Get Image Urls
* @description Gets an image and thumbnail URL
*/
2023-08-16 01:59:19 +00:00
get: operations["get_image_urls"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/images/": {
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/**
2023-08-22 05:15:00 +00:00
* List Image Dtos
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description Gets a list of image DTOs
*/
2023-08-16 01:59:19 +00:00
get: operations["list_image_dtos"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
2023-08-16 01:59:19 +00:00
"/api/v1/images/delete": {
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/** Delete Images From List */
2023-08-16 01:59:19 +00:00
post: operations["delete_images_from_list"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
2023-08-16 01:59:19 +00:00
"/api/v1/images/star": {
/** Star Images In List */
2023-08-16 01:59:19 +00:00
post: operations["star_images_in_list"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/images/unstar": {
/** Unstar Images In List */
2023-08-16 01:59:19 +00:00
post: operations["unstar_images_in_list"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/boards/": {
/**
2023-08-22 05:15:00 +00:00
* List Boards
* @description Gets a list of boards
*/
2023-08-16 01:59:19 +00:00
get: operations["list_boards"];
/**
2023-08-22 05:15:00 +00:00
* Create Board
* @description Creates a board
*/
2023-08-16 01:59:19 +00:00
post: operations["create_board"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/boards/{board_id}": {
/**
2023-08-22 05:15:00 +00:00
* Get Board
* @description Gets a board
*/
2023-08-16 01:59:19 +00:00
get: operations["get_board"];
/**
2023-08-22 05:15:00 +00:00
* Delete Board
* @description Deletes a board
*/
2023-08-16 01:59:19 +00:00
delete: operations["delete_board"];
/**
2023-08-22 05:15:00 +00:00
* Update Board
* @description Updates a board
*/
2023-08-16 01:59:19 +00:00
patch: operations["update_board"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/boards/{board_id}/image_names": {
feat(ui): another go at gallery (#3791) * feat(ui): migrate listImages to RTK query using createEntityAdapter - see comments in `endpoints/images.ts` for explanation of the caching - so far, only manually updating `all` images when new image is generated. no other manual cache updates are implemented, but will be needed. - fixed some weirdness with loading state components (like the spinners in gallery) - added `useThumbnailFallback` for `IAIDndImage`, this displays the tiny webp thumbnail while the full-size images load - comment out some old thunk related stuff in gallerySlice, which is no longer needed * feat(ui): add manual cache updates for board changes (wip) - update RTK Query caches when adding/removing single image to/from board - work more on migrating all image-related operations to RTK Query * update AddImagesToBoardContext so that it works when user uses context menu + modal * handle case where no image is selected * get assets working for main list and boards - dnd only * feat(ui): migrate image uploads to RTK Query - minor refactor of `ImageUploader` and `useImageUploadButton` hooks, simplify some logic - style filesystem upload overlay to match existing UI - replace all old `imageUploaded` thunks with `uploadImage` RTK Query calls, update associated logic including canvas related uploads - simplify `PostUploadAction`s that only need to display user input * feat(ui): remove `receivedPageOfImages` thunks * feat(ui): remove `receivedImageUrls` thunk * feat(ui): finish removing all images thunks stuff now broken: - image usage - delete board images - on first load, no image selected * feat(ui): simplify `updateImage` cache manipulation - we don't actually ever change categories, so we can remove a lot of logic * feat(ui): simplify canvas autosave - instead of using a network request to set the canvas generation as not intermediate, we can just do that in the graph * feat(ui): simplify & handle edge cases in cache updates * feat(db, api): support `board_id='none'` for `get_many` images queries This allows us to get all images that are not on a board. * chore(ui): regen types * feat(ui): add `All Assets`, `No Board` boards Restructure boards: - `all images` is all images - `all assets` is all assets - `no board` is all images/assets without a board set - user boards may have images and assets Update caching logic - much simpler without every board having sub-views of images and assets - update drag and drop operations for all possible interactions * chore(ui): regen types * feat(ui): move download to top of context menu * feat(ui): improve drop overlay styles * fix(ui): fix image not selected on first load - listen for first load of all images board, then select the first image * feat(ui): refactor board deletion api changes: - add route to list all image names for a board. this is required to handle board + image deletion. we need to know every image in the board to determine the image usage across the app. this is fetched only when the delete board and images modal is opened so it's as efficient as it can be. - update the delete board route to respond with a list of deleted `board_images` and `images`, as image names. this is needed to perform accurate clientside state & cache updates after deleting. db changes: - remove unused `board_images` service method to get paginated images dtos for a board. this is now done thru the list images endpoint & images service. needs a small logic change on `images.delete_images_on_board` ui changes: - simplify the delete board modal - no context, just minor prop drilling. this is feasible for boards only because the components that need to trigger and manipulate the modal are very close together in the tree - add cache updates for `deleteBoard` & `deleteBoardAndImages` mutations - the only thing we cannot do directly is on `deleteBoardAndImages`, update the `No Board` board. we'd need to insert image dtos that we may not have loaded. instead, i am just invalidating the tags for that `listImages` cache. so when you `deleteBoardAndImages`, the `No Board` will re-fetch the initial image limit. i think this is more efficient than e.g. fetching all image dtos to insert then inserting them. - handle image usage for `deleteBoardAndImages` - update all (i think/hope) the little bits and pieces in the UI to accomodate these changes * fix(ui): fix board selection logic * feat(ui): add delete board modal loading state * fix(ui): use thumbnails for board cover images * fix(ui): fix race condition with board selection when selecting a board that doesn't have any images loaded, we need to wait until the images haveloaded before selecting the first image. this logic is debounced to ~1000ms. * feat(ui): name 'No Board' correctly, change icon * fix(ui): do not cache listAllImageNames query if we cache it, we can end up with stale image usage during deletion. we could of course manually update the cache as we are doing elsewhere. but because this is a relatively infrequent network request, i'd like to trade increased cache mgmt complexity here for increased resource usage. * feat(ui): reduce drag preview opacity, remove border * fix(ui): fix incorrect queryArg used in `deleteImage` and `updateImage` cache updates * fix(ui): fix doubled open in new tab * fix(ui): fix new generations not getting added to 'No Board' * fix(ui): fix board id not changing on new image when autosave enabled * fix(ui): context menu when selection is 0 need to revise how context menu is triggered later, when we approach multi select * fix(ui): fix deleting does not update counts for all images and all assets * fix(ui): fix all assets board name in boards list collapse button * fix(ui): ensure we never go under 0 for total board count * fix(ui): fix text overflow on board names --------- Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2023-07-19 16:06:38 +00:00
/**
2023-08-22 05:15:00 +00:00
* List All Board Image Names
feat(ui): another go at gallery (#3791) * feat(ui): migrate listImages to RTK query using createEntityAdapter - see comments in `endpoints/images.ts` for explanation of the caching - so far, only manually updating `all` images when new image is generated. no other manual cache updates are implemented, but will be needed. - fixed some weirdness with loading state components (like the spinners in gallery) - added `useThumbnailFallback` for `IAIDndImage`, this displays the tiny webp thumbnail while the full-size images load - comment out some old thunk related stuff in gallerySlice, which is no longer needed * feat(ui): add manual cache updates for board changes (wip) - update RTK Query caches when adding/removing single image to/from board - work more on migrating all image-related operations to RTK Query * update AddImagesToBoardContext so that it works when user uses context menu + modal * handle case where no image is selected * get assets working for main list and boards - dnd only * feat(ui): migrate image uploads to RTK Query - minor refactor of `ImageUploader` and `useImageUploadButton` hooks, simplify some logic - style filesystem upload overlay to match existing UI - replace all old `imageUploaded` thunks with `uploadImage` RTK Query calls, update associated logic including canvas related uploads - simplify `PostUploadAction`s that only need to display user input * feat(ui): remove `receivedPageOfImages` thunks * feat(ui): remove `receivedImageUrls` thunk * feat(ui): finish removing all images thunks stuff now broken: - image usage - delete board images - on first load, no image selected * feat(ui): simplify `updateImage` cache manipulation - we don't actually ever change categories, so we can remove a lot of logic * feat(ui): simplify canvas autosave - instead of using a network request to set the canvas generation as not intermediate, we can just do that in the graph * feat(ui): simplify & handle edge cases in cache updates * feat(db, api): support `board_id='none'` for `get_many` images queries This allows us to get all images that are not on a board. * chore(ui): regen types * feat(ui): add `All Assets`, `No Board` boards Restructure boards: - `all images` is all images - `all assets` is all assets - `no board` is all images/assets without a board set - user boards may have images and assets Update caching logic - much simpler without every board having sub-views of images and assets - update drag and drop operations for all possible interactions * chore(ui): regen types * feat(ui): move download to top of context menu * feat(ui): improve drop overlay styles * fix(ui): fix image not selected on first load - listen for first load of all images board, then select the first image * feat(ui): refactor board deletion api changes: - add route to list all image names for a board. this is required to handle board + image deletion. we need to know every image in the board to determine the image usage across the app. this is fetched only when the delete board and images modal is opened so it's as efficient as it can be. - update the delete board route to respond with a list of deleted `board_images` and `images`, as image names. this is needed to perform accurate clientside state & cache updates after deleting. db changes: - remove unused `board_images` service method to get paginated images dtos for a board. this is now done thru the list images endpoint & images service. needs a small logic change on `images.delete_images_on_board` ui changes: - simplify the delete board modal - no context, just minor prop drilling. this is feasible for boards only because the components that need to trigger and manipulate the modal are very close together in the tree - add cache updates for `deleteBoard` & `deleteBoardAndImages` mutations - the only thing we cannot do directly is on `deleteBoardAndImages`, update the `No Board` board. we'd need to insert image dtos that we may not have loaded. instead, i am just invalidating the tags for that `listImages` cache. so when you `deleteBoardAndImages`, the `No Board` will re-fetch the initial image limit. i think this is more efficient than e.g. fetching all image dtos to insert then inserting them. - handle image usage for `deleteBoardAndImages` - update all (i think/hope) the little bits and pieces in the UI to accomodate these changes * fix(ui): fix board selection logic * feat(ui): add delete board modal loading state * fix(ui): use thumbnails for board cover images * fix(ui): fix race condition with board selection when selecting a board that doesn't have any images loaded, we need to wait until the images haveloaded before selecting the first image. this logic is debounced to ~1000ms. * feat(ui): name 'No Board' correctly, change icon * fix(ui): do not cache listAllImageNames query if we cache it, we can end up with stale image usage during deletion. we could of course manually update the cache as we are doing elsewhere. but because this is a relatively infrequent network request, i'd like to trade increased cache mgmt complexity here for increased resource usage. * feat(ui): reduce drag preview opacity, remove border * fix(ui): fix incorrect queryArg used in `deleteImage` and `updateImage` cache updates * fix(ui): fix doubled open in new tab * fix(ui): fix new generations not getting added to 'No Board' * fix(ui): fix board id not changing on new image when autosave enabled * fix(ui): context menu when selection is 0 need to revise how context menu is triggered later, when we approach multi select * fix(ui): fix deleting does not update counts for all images and all assets * fix(ui): fix all assets board name in boards list collapse button * fix(ui): ensure we never go under 0 for total board count * fix(ui): fix text overflow on board names --------- Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2023-07-19 16:06:38 +00:00
* @description Gets a list of images for a board
*/
2023-08-16 01:59:19 +00:00
get: operations["list_all_board_image_names"];
feat(ui): another go at gallery (#3791) * feat(ui): migrate listImages to RTK query using createEntityAdapter - see comments in `endpoints/images.ts` for explanation of the caching - so far, only manually updating `all` images when new image is generated. no other manual cache updates are implemented, but will be needed. - fixed some weirdness with loading state components (like the spinners in gallery) - added `useThumbnailFallback` for `IAIDndImage`, this displays the tiny webp thumbnail while the full-size images load - comment out some old thunk related stuff in gallerySlice, which is no longer needed * feat(ui): add manual cache updates for board changes (wip) - update RTK Query caches when adding/removing single image to/from board - work more on migrating all image-related operations to RTK Query * update AddImagesToBoardContext so that it works when user uses context menu + modal * handle case where no image is selected * get assets working for main list and boards - dnd only * feat(ui): migrate image uploads to RTK Query - minor refactor of `ImageUploader` and `useImageUploadButton` hooks, simplify some logic - style filesystem upload overlay to match existing UI - replace all old `imageUploaded` thunks with `uploadImage` RTK Query calls, update associated logic including canvas related uploads - simplify `PostUploadAction`s that only need to display user input * feat(ui): remove `receivedPageOfImages` thunks * feat(ui): remove `receivedImageUrls` thunk * feat(ui): finish removing all images thunks stuff now broken: - image usage - delete board images - on first load, no image selected * feat(ui): simplify `updateImage` cache manipulation - we don't actually ever change categories, so we can remove a lot of logic * feat(ui): simplify canvas autosave - instead of using a network request to set the canvas generation as not intermediate, we can just do that in the graph * feat(ui): simplify & handle edge cases in cache updates * feat(db, api): support `board_id='none'` for `get_many` images queries This allows us to get all images that are not on a board. * chore(ui): regen types * feat(ui): add `All Assets`, `No Board` boards Restructure boards: - `all images` is all images - `all assets` is all assets - `no board` is all images/assets without a board set - user boards may have images and assets Update caching logic - much simpler without every board having sub-views of images and assets - update drag and drop operations for all possible interactions * chore(ui): regen types * feat(ui): move download to top of context menu * feat(ui): improve drop overlay styles * fix(ui): fix image not selected on first load - listen for first load of all images board, then select the first image * feat(ui): refactor board deletion api changes: - add route to list all image names for a board. this is required to handle board + image deletion. we need to know every image in the board to determine the image usage across the app. this is fetched only when the delete board and images modal is opened so it's as efficient as it can be. - update the delete board route to respond with a list of deleted `board_images` and `images`, as image names. this is needed to perform accurate clientside state & cache updates after deleting. db changes: - remove unused `board_images` service method to get paginated images dtos for a board. this is now done thru the list images endpoint & images service. needs a small logic change on `images.delete_images_on_board` ui changes: - simplify the delete board modal - no context, just minor prop drilling. this is feasible for boards only because the components that need to trigger and manipulate the modal are very close together in the tree - add cache updates for `deleteBoard` & `deleteBoardAndImages` mutations - the only thing we cannot do directly is on `deleteBoardAndImages`, update the `No Board` board. we'd need to insert image dtos that we may not have loaded. instead, i am just invalidating the tags for that `listImages` cache. so when you `deleteBoardAndImages`, the `No Board` will re-fetch the initial image limit. i think this is more efficient than e.g. fetching all image dtos to insert then inserting them. - handle image usage for `deleteBoardAndImages` - update all (i think/hope) the little bits and pieces in the UI to accomodate these changes * fix(ui): fix board selection logic * feat(ui): add delete board modal loading state * fix(ui): use thumbnails for board cover images * fix(ui): fix race condition with board selection when selecting a board that doesn't have any images loaded, we need to wait until the images haveloaded before selecting the first image. this logic is debounced to ~1000ms. * feat(ui): name 'No Board' correctly, change icon * fix(ui): do not cache listAllImageNames query if we cache it, we can end up with stale image usage during deletion. we could of course manually update the cache as we are doing elsewhere. but because this is a relatively infrequent network request, i'd like to trade increased cache mgmt complexity here for increased resource usage. * feat(ui): reduce drag preview opacity, remove border * fix(ui): fix incorrect queryArg used in `deleteImage` and `updateImage` cache updates * fix(ui): fix doubled open in new tab * fix(ui): fix new generations not getting added to 'No Board' * fix(ui): fix board id not changing on new image when autosave enabled * fix(ui): context menu when selection is 0 need to revise how context menu is triggered later, when we approach multi select * fix(ui): fix deleting does not update counts for all images and all assets * fix(ui): fix all assets board name in boards list collapse button * fix(ui): ensure we never go under 0 for total board count * fix(ui): fix text overflow on board names --------- Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2023-07-19 16:06:38 +00:00
};
2023-08-16 01:59:19 +00:00
"/api/v1/board_images/": {
/**
2023-08-22 05:15:00 +00:00
* Add Image To Board
* @description Creates a board_image
*/
2023-08-16 01:59:19 +00:00
post: operations["add_image_to_board"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/**
2023-08-22 05:15:00 +00:00
* Remove Image From Board
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description Removes an image from its board, if it had one
*/
2023-08-16 01:59:19 +00:00
delete: operations["remove_image_from_board"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
2023-08-16 01:59:19 +00:00
"/api/v1/board_images/batch": {
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/**
2023-08-22 05:15:00 +00:00
* Add Images To Board
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description Adds a list of images to a board
*/
2023-08-16 01:59:19 +00:00
post: operations["add_images_to_board"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
2023-08-16 01:59:19 +00:00
"/api/v1/board_images/batch/delete": {
/**
2023-08-22 05:15:00 +00:00
* Remove Images From Board
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description Removes a list of images from their board, if they had one
*/
2023-08-16 01:59:19 +00:00
post: operations["remove_images_from_board"];
};
2023-08-16 01:59:19 +00:00
"/api/v1/app/version": {
2023-07-08 09:31:17 +00:00
/** Get Version */
2023-08-16 01:59:19 +00:00
get: operations["app_version"];
2023-07-12 15:56:40 +00:00
};
2023-08-16 01:59:19 +00:00
"/api/v1/app/config": {
2023-07-12 15:56:40 +00:00
/** Get Config */
2023-08-16 01:59:19 +00:00
get: operations["get_config"];
2023-07-08 09:31:17 +00:00
};
2023-08-16 01:59:19 +00:00
"/api/v1/app/logging": {
2023-07-20 15:45:54 +00:00
/**
2023-08-22 05:15:00 +00:00
* Get Log Level
2023-07-20 15:45:54 +00:00
* @description Returns the log level
*/
2023-08-16 01:59:19 +00:00
get: operations["get_log_level"];
2023-07-20 15:45:54 +00:00
/**
2023-08-22 05:15:00 +00:00
* Set Log Level
2023-07-20 15:45:54 +00:00
* @description Sets the log verbosity level
*/
2023-08-16 01:59:19 +00:00
post: operations["set_log_level"];
2023-07-20 15:45:54 +00:00
};
};
export type webhooks = Record<string, never>;
export type components = {
schemas: {
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/** AddImagesToBoardResult */
AddImagesToBoardResult: {
/**
2023-08-22 05:15:00 +00:00
* Board Id
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description The id of the board the images were added to
*/
board_id: string;
/**
2023-08-22 05:15:00 +00:00
* Added Image Names
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description The image names that were added to the board
*/
2023-08-22 05:15:00 +00:00
added_image_names: string[];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* Add Integers
* @description Adds two numbers
*/
AddInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* A
* @description The first number
* @default 0
*/
a?: number;
/**
2023-08-22 05:15:00 +00:00
* B
* @description The second number
* @default 0
*/
b?: number;
/**
* Type
* @default add
* @enum {string}
*/
type: "add";
};
2023-07-08 09:31:17 +00:00
/**
2023-08-22 05:15:00 +00:00
* AppConfig
2023-07-12 15:56:40 +00:00
* @description App Config Response
*/
AppConfig: {
2023-07-13 05:22:18 +00:00
/**
2023-08-22 05:15:00 +00:00
* Infill Methods
2023-07-13 05:22:18 +00:00
* @description List of available infill methods
*/
2023-08-22 05:15:00 +00:00
infill_methods: string[];
/**
2023-08-22 05:15:00 +00:00
* Upscaling Methods
* @description List of upscaling methods
*/
2023-08-22 05:15:00 +00:00
upscaling_methods: components["schemas"]["Upscaler"][];
/**
2023-08-22 05:15:00 +00:00
* Nsfw Methods
* @description List of NSFW checking methods
*/
2023-08-22 05:15:00 +00:00
nsfw_methods: string[];
/**
2023-08-22 05:15:00 +00:00
* Watermarking Methods
* @description List of invisible watermark methods
*/
2023-08-22 05:15:00 +00:00
watermarking_methods: string[];
2023-07-12 15:56:40 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* AppVersion
2023-07-08 09:31:17 +00:00
* @description App Version Response
*/
AppVersion: {
2023-07-13 05:22:18 +00:00
/**
2023-08-22 05:15:00 +00:00
* Version
2023-07-13 05:22:18 +00:00
* @description App version
*/
2023-07-08 09:31:17 +00:00
version: string;
};
/**
2023-08-22 05:15:00 +00:00
* BaseModelType
* @description An enumeration.
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
BaseModelType: "sd-1" | "sd-2" | "sdxl" | "sdxl-refiner";
2023-08-23 19:25:24 +00:00
/**
* Blank Image
* @description Creates a blank image and forwards it to the pipeline
*/
BlankImageInvocation: {
/**
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
2023-08-23 19:25:24 +00:00
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
2023-08-23 19:25:24 +00:00
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
2023-08-23 19:25:24 +00:00
/**
* Width
* @description The width of the image
* @default 512
*/
width?: number;
/**
* Height
* @description The height of the image
* @default 512
*/
height?: number;
/**
* Mode
* @description The mode of the image
* @default RGB
* @enum {string}
*/
mode?: "RGB" | "RGBA";
/**
* Color
* @description The color of the image
* @default {
* "r": 0,
* "g": 0,
* "b": 0,
* "a": 255
* }
*/
color?: components["schemas"]["ColorField"];
/**
* Type
* @default blank_image
* @enum {string}
*/
type: "blank_image";
2023-08-23 19:25:24 +00:00
};
2023-08-22 05:15:00 +00:00
/**
* Blend Latents
* @description Blend two latents using a given alpha. Latents must have same size.
*/
BlendLatentsInvocation: {
/**
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
2023-08-22 05:15:00 +00:00
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
2023-08-22 05:15:00 +00:00
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
2023-08-22 05:15:00 +00:00
/**
* Latents A
* @description Latents tensor
*/
latents_a?: components["schemas"]["LatentsField"];
/**
* Latents B
* @description Latents tensor
*/
latents_b?: components["schemas"]["LatentsField"];
/**
* 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 lblend
* @enum {string}
*/
type: "lblend";
2023-08-22 05:15:00 +00:00
};
/** BoardChanges */
BoardChanges: {
/**
2023-08-22 05:15:00 +00:00
* Board Name
* @description The board's new name.
*/
board_name?: string;
/**
2023-08-22 05:15:00 +00:00
* Cover Image Name
* @description The name of the board's new cover image.
*/
cover_image_name?: string;
};
/**
2023-08-22 05:15:00 +00:00
* BoardDTO
* @description Deserialized board record with cover image URL and image count.
*/
BoardDTO: {
/**
2023-08-22 05:15:00 +00:00
* Board Id
* @description The unique ID of the board.
*/
board_id: string;
/**
2023-08-22 05:15:00 +00:00
* Board Name
* @description The name of the board.
*/
board_name: string;
/**
2023-08-22 05:15:00 +00:00
* Created At
* @description The created timestamp of the board.
*/
created_at: string;
/**
2023-08-22 05:15:00 +00:00
* Updated At
* @description The updated timestamp of the board.
*/
updated_at: string;
/**
2023-08-22 05:15:00 +00:00
* Deleted At
* @description The deleted timestamp of the board.
*/
deleted_at?: string;
/**
2023-08-22 05:15:00 +00:00
* Cover Image Name
* @description The name of the board's cover image.
*/
cover_image_name?: string;
/**
2023-08-22 05:15:00 +00:00
* Image Count
* @description The number of images in the board.
*/
image_count: number;
};
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/** Body_add_image_to_board */
Body_add_image_to_board: {
/**
2023-08-22 05:15:00 +00:00
* Board Id
* @description The id of the board to add to
*/
board_id: string;
/**
2023-08-22 05:15:00 +00:00
* Image Name
* @description The name of the image to add
*/
image_name: string;
};
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/** Body_add_images_to_board */
Body_add_images_to_board: {
/**
2023-08-22 05:15:00 +00:00
* Board Id
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description The id of the board to add to
*/
board_id: string;
/**
2023-08-22 05:15:00 +00:00
* Image Names
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description The names of the images to add
*/
2023-08-22 05:15:00 +00:00
image_names: string[];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
/** Body_delete_images_from_list */
Body_delete_images_from_list: {
/**
2023-08-22 05:15:00 +00:00
* Image Names
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description The list of names of images to delete
*/
2023-08-22 05:15:00 +00:00
image_names: string[];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
/** Body_import_model */
Body_import_model: {
/**
2023-08-22 05:15:00 +00:00
* Location
* @description A model path, repo_id or URL to import
*/
location: string;
/**
2023-08-22 05:15:00 +00:00
* Prediction Type
* @description Prediction type for SDv2 checkpoint files
* @default v_prediction
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
prediction_type?: "v_prediction" | "epsilon" | "sample";
};
/** Body_merge_models */
Body_merge_models: {
/**
2023-08-22 05:15:00 +00:00
* Model Names
* @description model name
*/
2023-08-22 05:15:00 +00:00
model_names: string[];
/**
2023-08-22 05:15:00 +00:00
* Merged Model Name
* @description Name of destination model
*/
merged_model_name: string;
/**
2023-08-22 05:15:00 +00:00
* Alpha
* @description Alpha weighting strength to apply to 2d and 3d models
* @default 0.5
*/
alpha?: number;
/** @description Interpolation method */
2023-08-16 01:59:19 +00:00
interp: components["schemas"]["MergeInterpolationMethod"];
/**
2023-08-22 05:15:00 +00:00
* Force
* @description Force merging of models created with different versions of diffusers
* @default false
*/
force?: boolean;
2023-07-15 15:06:57 +00:00
/**
2023-08-22 05:15:00 +00:00
* Merge Dest Directory
2023-07-15 15:06:57 +00:00
* @description Save the merged model to the designated directory (with 'merged_model_name' appended)
*/
merge_dest_directory?: string;
};
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/** Body_remove_image_from_board */
Body_remove_image_from_board: {
/**
2023-08-22 05:15:00 +00:00
* Image Name
* @description The name of the image to remove
*/
image_name: string;
};
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/** Body_remove_images_from_board */
Body_remove_images_from_board: {
/**
2023-08-22 05:15:00 +00:00
* Image Names
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description The names of the images to remove
*/
2023-08-22 05:15:00 +00:00
image_names: string[];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
/** Body_star_images_in_list */
Body_star_images_in_list: {
/**
2023-08-22 05:15:00 +00:00
* Image Names
* @description The list of names of images to star
*/
2023-08-22 05:15:00 +00:00
image_names: string[];
};
/** Body_unstar_images_in_list */
Body_unstar_images_in_list: {
/**
2023-08-22 05:15:00 +00:00
* Image Names
* @description The list of names of images to unstar
*/
2023-08-22 05:15:00 +00:00
image_names: string[];
};
/** Body_upload_image */
Body_upload_image: {
/**
2023-08-22 05:15:00 +00:00
* File
* Format: binary
*/
file: Blob;
};
/**
* Boolean Collection Primitive
* @description A collection of boolean primitive values
*/
BooleanCollectionInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Collection
* @description The collection of boolean values
*/
collection?: boolean[];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default boolean_collection
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "boolean_collection";
};
/**
2023-08-22 05:15:00 +00:00
* BooleanCollectionOutput
* @description Base class for nodes that output a collection of booleans
*/
BooleanCollectionOutput: {
/**
* Collection
* @description The output boolean collection
*/
collection: boolean[];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default boolean_collection_output
* @enum {string}
*/
type: "boolean_collection_output";
};
/**
2023-08-22 05:15:00 +00:00
* Boolean Primitive
* @description A boolean primitive value
*/
BooleanInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Value
* @description The boolean value
* @default false
*/
value?: boolean;
/**
* Type
* @default boolean
* @enum {string}
*/
type: "boolean";
};
/**
2023-08-22 05:15:00 +00:00
* BooleanOutput
* @description Base class for nodes that output a single boolean
*/
BooleanOutput: {
/**
* Value
* @description The output boolean
*/
value: boolean;
/**
2023-08-22 05:15:00 +00:00
* Type
* @default boolean_output
* @enum {string}
*/
type: "boolean_output";
};
2023-09-05 02:17:23 +00:00
/**
* CV2 Infill
* @description Infills transparent areas of an image using OpenCV Inpainting
*/
CV2InfillInvocation: {
/**
* 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;
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to infill
*/
image?: components["schemas"]["ImageField"];
/**
* Type
* @default infill_cv2
* @enum {string}
*/
type: "infill_cv2";
};
/**
2023-08-22 05:15:00 +00:00
* Canny Processor
* @description Canny edge detection for ControlNet
*/
CannyImageProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default canny_image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "canny_image_processor";
/**
2023-08-22 05:15:00 +00:00
* Low Threshold
* @description The low threshold of the Canny pixel gradient (0-255)
* @default 100
*/
low_threshold?: number;
/**
2023-08-22 05:15:00 +00:00
* High Threshold
* @description The high threshold of the Canny pixel gradient (0-255)
* @default 200
*/
high_threshold?: number;
};
/** ClipField */
ClipField: {
/**
2023-08-22 05:15:00 +00:00
* Tokenizer
* @description Info to load tokenizer submodel
*/
2023-08-16 01:59:19 +00:00
tokenizer: components["schemas"]["ModelInfo"];
/**
2023-08-22 05:15:00 +00:00
* Text Encoder
* @description Info to load text_encoder submodel
*/
2023-08-16 01:59:19 +00:00
text_encoder: components["schemas"]["ModelInfo"];
2023-07-06 17:57:39 +00:00
/**
2023-08-22 05:15:00 +00:00
* Skipped Layers
2023-07-06 17:57:39 +00:00
* @description Number of skipped layers in text_encoder
*/
skipped_layers: number;
/**
2023-08-22 05:15:00 +00:00
* Loras
* @description Loras to apply on model loading
*/
2023-08-22 05:15:00 +00:00
loras: components["schemas"]["LoraInfo"][];
};
2023-07-06 17:57:39 +00:00
/**
2023-08-22 05:15:00 +00:00
* CLIP Skip
2023-07-06 17:57:39 +00:00
* @description Skip layers in clip text_encoder model.
*/
ClipSkipInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
2023-07-06 17:57:39 +00:00
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
2023-07-06 17:57:39 +00:00
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
2023-07-06 17:57:39 +00:00
/**
2023-08-22 05:15:00 +00:00
* CLIP
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
2023-07-06 17:57:39 +00:00
*/
2023-08-16 01:59:19 +00:00
clip?: components["schemas"]["ClipField"];
2023-07-06 17:57:39 +00:00
/**
2023-08-22 05:15:00 +00:00
* Skipped Layers
* @description Number of layers to skip in text encoder
2023-07-06 17:57:39 +00:00
* @default 0
*/
skipped_layers?: number;
/**
* Type
* @default clip_skip
* @enum {string}
*/
type: "clip_skip";
2023-07-06 17:57:39 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* ClipSkipInvocationOutput
2023-07-06 17:57:39 +00:00
* @description Clip skip node output
*/
ClipSkipInvocationOutput: {
/**
* CLIP
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
clip?: components["schemas"]["ClipField"];
2023-07-06 17:57:39 +00:00
/**
2023-08-22 05:15:00 +00:00
* Type
* @default clip_skip_output
2023-07-06 17:57:39 +00:00
* @enum {string}
*/
type: "clip_skip_output";
2023-07-06 17:57:39 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* CollectInvocation
* @description Collects values into a collection
*/
CollectInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Collection Item
* @description The item to collect (all inputs must be of the same type)
*/
item?: unknown;
/**
2023-08-22 05:15:00 +00:00
* Collection
* @description The collection, will be provided on execution
*/
2023-08-22 05:15:00 +00:00
collection?: unknown[];
/**
* Type
* @default collect
* @enum {string}
*/
type: "collect";
};
/**
2023-08-22 05:15:00 +00:00
* CollectInvocationOutput
* @description Base class for all invocation outputs.
*
* All invocation outputs must use the `@invocation_output` decorator to provide their unique type.
*/
CollectInvocationOutput: {
/**
* Collection
* @description The collection of input items
*/
collection: unknown[];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default collect_output
* @enum {string}
*/
type: "collect_output";
};
/**
2023-08-22 05:15:00 +00:00
* ColorCollectionOutput
* @description Base class for nodes that output a collection of colors
*/
ColorCollectionOutput: {
/**
* Collection
* @description The output colors
*/
collection: components["schemas"]["ColorField"][];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default color_collection_output
* @enum {string}
*/
type: "color_collection_output";
};
/**
2023-08-22 05:15:00 +00:00
* Color Correct
2023-08-11 18:15:59 +00:00
* @description 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.
*/
ColorCorrectInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to color-correct
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Reference
* @description Reference image for color-correction
*/
2023-08-16 01:59:19 +00:00
reference?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Mask
* @description Mask to use when applying color-correction
*/
2023-08-16 01:59:19 +00:00
mask?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Mask Blur Radius
* @description Mask blur radius
* @default 8
*/
mask_blur_radius?: number;
/**
* Type
* @default color_correct
* @enum {string}
*/
type: "color_correct";
};
/**
2023-08-22 05:15:00 +00:00
* ColorField
* @description A color primitive field
*/
ColorField: {
/**
2023-08-22 05:15:00 +00:00
* R
* @description The red component
*/
r: number;
/**
2023-08-22 05:15:00 +00:00
* G
* @description The green component
*/
g: number;
/**
2023-08-22 05:15:00 +00:00
* B
* @description The blue component
*/
b: number;
/**
2023-08-22 05:15:00 +00:00
* A
* @description The alpha component
*/
a: number;
};
/**
2023-08-22 05:15:00 +00:00
* Color Primitive
* @description A color primitive value
*/
ColorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Color
* @description The color value
* @default {
* "r": 0,
* "g": 0,
* "b": 0,
* "a": 255
* }
*/
2023-08-16 01:59:19 +00:00
color?: components["schemas"]["ColorField"];
/**
* Type
* @default color
* @enum {string}
*/
type: "color";
};
/**
2023-08-22 05:15:00 +00:00
* ColorOutput
* @description Base class for nodes that output a single color
*/
ColorOutput: {
/**
* Color
* @description The output color
*/
color: components["schemas"]["ColorField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default color_output
* @enum {string}
*/
type: "color_output";
};
/**
* Prompt
* @description Parse prompt using compel package to conditioning.
*/
CompelInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Prompt
* @description Prompt to be parsed by Compel to create a conditioning tensor
* @default
*/
prompt?: string;
/**
* Type
* @default compel
* @enum {string}
*/
type: "compel";
/**
2023-08-22 05:15:00 +00:00
* CLIP
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip?: components["schemas"]["ClipField"];
};
/**
* Conditioning Collection Primitive
* @description A collection of conditioning tensor primitive values
*/
ConditioningCollectionInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Collection
* @description The collection of conditioning tensors
*/
2023-08-22 05:15:00 +00:00
collection?: components["schemas"]["ConditioningField"][];
/**
* Type
* @default conditioning_collection
* @enum {string}
*/
type: "conditioning_collection";
};
/**
2023-08-22 05:15:00 +00:00
* ConditioningCollectionOutput
* @description Base class for nodes that output a collection of conditioning tensors
*/
ConditioningCollectionOutput: {
/**
* Collection
* @description The output conditioning tensors
*/
collection: components["schemas"]["ConditioningField"][];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default conditioning_collection_output
* @enum {string}
*/
type: "conditioning_collection_output";
};
/**
2023-08-22 05:15:00 +00:00
* ConditioningField
* @description A conditioning tensor primitive value
*/
ConditioningField: {
/**
2023-08-22 05:15:00 +00:00
* Conditioning Name
* @description The name of conditioning tensor
*/
conditioning_name: string;
};
/**
2023-08-22 05:15:00 +00:00
* Conditioning Primitive
* @description A conditioning tensor primitive value
*/
ConditioningInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Conditioning
* @description Conditioning tensor
*/
conditioning?: components["schemas"]["ConditioningField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default conditioning
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "conditioning";
};
/**
2023-08-22 05:15:00 +00:00
* ConditioningOutput
* @description Base class for nodes that output a single conditioning tensor
*/
ConditioningOutput: {
/**
* Conditioning
* @description Conditioning tensor
*/
conditioning: components["schemas"]["ConditioningField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default conditioning_output
* @enum {string}
*/
type: "conditioning_output";
};
/**
2023-08-22 05:15:00 +00:00
* Content Shuffle Processor
* @description Applies content shuffle processing to image
*/
ContentShuffleImageProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default content_shuffle_image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "content_shuffle_image_processor";
/**
2023-08-22 05:15:00 +00:00
* Detect Resolution
* @description Pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* Image Resolution
* @description Pixel resolution for output image
* @default 512
*/
image_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* H
* @description Content shuffle `h` parameter
* @default 512
*/
h?: number;
/**
2023-08-22 05:15:00 +00:00
* W
* @description Content shuffle `w` parameter
* @default 512
*/
w?: number;
/**
2023-08-22 05:15:00 +00:00
* F
* @description Content shuffle `f` parameter
* @default 256
*/
f?: number;
};
/** ControlField */
ControlField: {
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The control image
*/
2023-08-16 01:59:19 +00:00
image: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Control Model
* @description The ControlNet model to use
*/
2023-08-16 01:59:19 +00:00
control_model: components["schemas"]["ControlNetModelField"];
/**
2023-08-22 05:15:00 +00:00
* Control Weight
* @description The weight given to the ControlNet
* @default 1
*/
2023-08-22 05:15:00 +00:00
control_weight?: number | number[];
/**
2023-08-22 05:15:00 +00:00
* Begin Step Percent
* @description When the ControlNet is first applied (% of total steps)
* @default 0
*/
begin_step_percent?: number;
/**
2023-08-22 05:15:00 +00:00
* End Step Percent
* @description When the ControlNet is last applied (% of total steps)
* @default 1
*/
end_step_percent?: number;
2023-06-25 04:04:16 +00:00
/**
2023-08-22 05:15:00 +00:00
* Control Mode
* @description The control mode to use
* @default balanced
2023-06-25 04:04:16 +00:00
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
control_mode?: "balanced" | "more_prompt" | "more_control" | "unbalanced";
/**
2023-08-22 05:15:00 +00:00
* Resize Mode
* @description The resize mode to use
* @default just_resize
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
resize_mode?: "just_resize" | "crop_resize" | "fill_resize" | "just_resize_simple";
};
/**
2023-08-22 05:15:00 +00:00
* ControlNet
* @description Collects ControlNet info to pass to other nodes
*/
ControlNetInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The control image
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Control Model
* @description ControlNet model to load
*/
feat: polymorphic fields Initial support for polymorphic field types. Polymorphic types are a single of or list of a specific type. For example, `Union[str, list[str]]`. Polymorphics do not yet have support for direct input in the UI (will come in the future). They will be forcibly set as Connection-only fields, in which case users will not be able to provide direct input to the field. If a polymorphic should present as a singleton type - which would allow direct input - the node must provide an explicit type hint. For example, `DenoiseLatents`' `CFG Scale` is polymorphic, but in the node editor, we want to present this as a number input. In the node definition, the field is given `ui_type=UIType.Float`, which tells the UI to treat this as a `float` field. The connection validation logic will prevent connecting a collection to `CFG Scale` in this situation, because it is typed as `float`. The workaround is to disable validation from the settings to make this specific connection. A future improvement will resolve this. This also introduces better support for collection field types. Like polymorphics, collection types are parsed automatically by the client and do not need any specific type hints. Also like polymorphics, there is no support yet for direct input of collection types in the UI. - Disabling validation in workflow editor now displays the visual hints for valid connections, but lets you connect to anything. - Added `ui_order: int` to `InputField` and `OutputField`. The UI will use this, if present, to order fields in a node UI. See usage in `DenoiseLatents` for an example. - Updated the field colors - duplicate colors have just been lightened a bit. It's not perfect but it was a quick fix. - Field handles for collections are the same color as their single counterparts, but have a dark dot in the center of them. - Field handles for polymorphics are a rounded square with dot in the middle. - Removed all fields that just render `null` from `InputFieldRenderer`, replaced with a single fallback - Removed logic in `zValidatedWorkflow`, which checked for existence of node templates for each node in a workflow. This logic introduced a circular dependency, due to importing the global redux `store` in order to get the node templates within a zod schema. It's actually fine to just leave this out entirely; The case of a missing node template is handled by the UI. Fixing it otherwise would introduce a substantial headache. - Fixed the `ControlNetInvocation.control_model` field default, which was a string when it shouldn't have one.
2023-09-01 09:40:27 +00:00
control_model: components["schemas"]["ControlNetModelField"];
2023-07-13 05:22:18 +00:00
/**
2023-08-22 05:15:00 +00:00
* Control Weight
* @description The weight given to the ControlNet
* @default 1
*/
2023-08-22 05:15:00 +00:00
control_weight?: number | number[];
/**
2023-08-22 05:15:00 +00:00
* Begin Step Percent
* @description When the ControlNet is first applied (% of total steps)
* @default 0
*/
begin_step_percent?: number;
/**
2023-08-22 05:15:00 +00:00
* End Step Percent
* @description When the ControlNet is last applied (% of total steps)
* @default 1
*/
end_step_percent?: number;
2023-06-25 04:04:16 +00:00
/**
2023-08-22 05:15:00 +00:00
* Control Mode
* @description The control mode used
* @default balanced
2023-06-25 04:04:16 +00:00
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
control_mode?: "balanced" | "more_prompt" | "more_control" | "unbalanced";
/**
2023-08-22 05:15:00 +00:00
* Resize Mode
* @description The resize mode used
* @default just_resize
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
resize_mode?: "just_resize" | "crop_resize" | "fill_resize" | "just_resize_simple";
/**
* Type
* @default controlnet
* @enum {string}
*/
type: "controlnet";
};
/** ControlNetModelCheckpointConfig */
ControlNetModelCheckpointConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-08-22 05:15:00 +00:00
* Model Type
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_type: "controlnet";
/** Path */
path: string;
/** Description */
description?: string;
/**
2023-08-22 05:15:00 +00:00
* Model Format
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_format: "checkpoint";
error?: components["schemas"]["ModelError"];
/** Config */
config: string;
};
/** ControlNetModelDiffusersConfig */
ControlNetModelDiffusersConfig: {
/** Model Name */
model_name: string;
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-08-22 05:15:00 +00:00
* Model Type
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_type: "controlnet";
/** Path */
path: string;
/** Description */
description?: string;
/**
2023-08-22 05:15:00 +00:00
* Model Format
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_format: "diffusers";
error?: components["schemas"]["ModelError"];
};
2023-07-08 09:31:45 +00:00
/**
2023-08-22 05:15:00 +00:00
* ControlNetModelField
2023-07-08 09:31:45 +00:00
* @description ControlNet model field
*/
ControlNetModelField: {
/**
2023-08-22 05:15:00 +00:00
* Model Name
2023-07-08 09:31:45 +00:00
* @description Name of the ControlNet model
*/
model_name: string;
/** @description Base model */
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
2023-07-08 09:31:45 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* ControlOutput
* @description node output for ControlNet info
*/
ControlOutput: {
/**
2023-08-22 05:15:00 +00:00
* Control
* @description ControlNet(s) to apply
*/
2023-08-16 01:59:19 +00:00
control: components["schemas"]["ControlField"];
/**
* Type
* @default control_output
* @enum {string}
*/
type: "control_output";
};
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* CoreMetadata
2023-07-12 15:15:09 +00:00
* @description Core generation metadata for an image generated in InvokeAI.
*/
CoreMetadata: {
/**
2023-08-22 05:15:00 +00:00
* App Version
* @description The version of InvokeAI used to generate this image
2023-09-02 01:36:07 +00:00
* @default 3.1.0
*/
app_version?: string;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Generation Mode
2023-07-12 15:15:09 +00:00
* @description The generation mode that output this image
*/
generation_mode: string;
2023-08-29 00:20:55 +00:00
/**
* Created By
* @description The name of the creator of the image
*/
created_by?: string;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Positive Prompt
2023-07-12 15:15:09 +00:00
* @description The positive prompt parameter
*/
positive_prompt: string;
/**
2023-08-22 05:15:00 +00:00
* Negative Prompt
2023-07-12 15:15:09 +00:00
* @description The negative prompt parameter
*/
negative_prompt: string;
/**
2023-08-22 05:15:00 +00:00
* Width
2023-07-12 15:15:09 +00:00
* @description The width parameter
*/
width: number;
/**
2023-08-22 05:15:00 +00:00
* Height
2023-07-12 15:15:09 +00:00
* @description The height parameter
*/
height: number;
/**
2023-08-22 05:15:00 +00:00
* Seed
2023-07-12 15:15:09 +00:00
* @description The seed used for noise generation
*/
seed: number;
/**
2023-08-22 05:15:00 +00:00
* Rand Device
2023-07-12 15:15:09 +00:00
* @description The device used for random number generation
*/
rand_device: string;
/**
2023-08-22 05:15:00 +00:00
* Cfg Scale
2023-07-12 15:15:09 +00:00
* @description The classifier-free guidance scale parameter
*/
cfg_scale: number;
/**
2023-08-22 05:15:00 +00:00
* Steps
2023-07-12 15:15:09 +00:00
* @description The number of steps used for inference
*/
steps: number;
/**
2023-08-22 05:15:00 +00:00
* Scheduler
2023-07-12 15:15:09 +00:00
* @description The scheduler used for inference
*/
scheduler: string;
/**
2023-08-22 05:15:00 +00:00
* Clip Skip
2023-07-12 15:15:09 +00:00
* @description The number of skipped CLIP layers
*/
clip_skip: number;
/**
2023-08-22 05:15:00 +00:00
* Model
2023-07-12 15:15:09 +00:00
* @description The main model used for inference
*/
2023-08-16 01:59:19 +00:00
model: components["schemas"]["MainModelField"];
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Controlnets
2023-07-12 15:15:09 +00:00
* @description The ControlNets used for inference
*/
2023-08-22 05:15:00 +00:00
controlnets: components["schemas"]["ControlField"][];
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Loras
2023-07-12 15:15:09 +00:00
* @description The LoRAs used for inference
*/
2023-08-22 05:15:00 +00:00
loras: components["schemas"]["LoRAMetadataField"][];
/**
2023-08-22 05:15:00 +00:00
* Vae
* @description The VAE used for decoding, if the main model's default was not used
*/
2023-08-16 01:59:19 +00:00
vae?: components["schemas"]["VAEModelField"];
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Strength
2023-07-12 15:15:09 +00:00
* @description The strength used for latents-to-latents
*/
strength?: number;
/**
2023-08-22 05:15:00 +00:00
* Init Image
2023-07-12 15:15:09 +00:00
* @description The name of the initial image
*/
init_image?: string;
/**
2023-08-22 05:15:00 +00:00
* Positive Style Prompt
* @description The positive style prompt parameter
2023-07-12 15:15:09 +00:00
*/
positive_style_prompt?: string;
/**
2023-08-22 05:15:00 +00:00
* Negative Style Prompt
* @description The negative style prompt parameter
*/
negative_style_prompt?: string;
/**
2023-08-22 05:15:00 +00:00
* Refiner Model
* @description The SDXL Refiner model used
*/
2023-08-16 01:59:19 +00:00
refiner_model?: components["schemas"]["MainModelField"];
/**
2023-08-22 05:15:00 +00:00
* Refiner Cfg Scale
* @description The classifier-free guidance scale parameter used for the refiner
*/
refiner_cfg_scale?: number;
/**
2023-08-22 05:15:00 +00:00
* Refiner Steps
* @description The number of steps used for the refiner
*/
refiner_steps?: number;
/**
2023-08-22 05:15:00 +00:00
* Refiner Scheduler
* @description The scheduler used for the refiner
*/
refiner_scheduler?: string;
/**
2023-09-02 01:36:07 +00:00
* Refiner Positive Aesthetic Score
* @description The aesthetic score used for the refiner
*/
2023-09-02 01:36:07 +00:00
refiner_positive_aesthetic_score?: number;
/**
2023-09-02 01:36:07 +00:00
* Refiner Negative Aesthetic Score
* @description The aesthetic score used for the refiner
*/
2023-09-02 01:36:07 +00:00
refiner_negative_aesthetic_score?: number;
/**
2023-08-22 05:15:00 +00:00
* Refiner Start
* @description The start value used for refiner denoising
*/
refiner_start?: number;
2023-07-12 15:15:09 +00:00
};
2023-08-29 00:20:55 +00:00
/**
* Create Denoise Mask
* @description Creates mask for denoising model run.
*/
CreateDenoiseMaskInvocation: {
/**
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
2023-08-29 00:20:55 +00:00
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
2023-08-29 00:20:55 +00:00
* @default false
*/
is_intermediate?: boolean;
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Vae
* @description VAE
*/
vae?: components["schemas"]["VaeField"];
/**
* Image
* @description Image which will be masked
*/
image?: components["schemas"]["ImageField"];
/**
* Mask
* @description The mask to use when pasting
*/
mask?: components["schemas"]["ImageField"];
/**
* Tiled
* @description Processing using overlapping tiles (reduce memory consumption)
* @default false
*/
tiled?: boolean;
/**
* Fp32
* @description Whether or not to use full float32 precision
* @default false
*/
fp32?: boolean;
/**
* Type
* @default create_denoise_mask
* @enum {string}
*/
type: "create_denoise_mask";
2023-08-29 00:20:55 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* OpenCV Inpaint
* @description Simple inpaint using opencv.
*/
CvInpaintInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to inpaint
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Mask
* @description The mask to use when inpainting
*/
2023-08-16 01:59:19 +00:00
mask?: components["schemas"]["ImageField"];
/**
* Type
* @default cv_inpaint
* @enum {string}
*/
type: "cv_inpaint";
};
feat(ui): another go at gallery (#3791) * feat(ui): migrate listImages to RTK query using createEntityAdapter - see comments in `endpoints/images.ts` for explanation of the caching - so far, only manually updating `all` images when new image is generated. no other manual cache updates are implemented, but will be needed. - fixed some weirdness with loading state components (like the spinners in gallery) - added `useThumbnailFallback` for `IAIDndImage`, this displays the tiny webp thumbnail while the full-size images load - comment out some old thunk related stuff in gallerySlice, which is no longer needed * feat(ui): add manual cache updates for board changes (wip) - update RTK Query caches when adding/removing single image to/from board - work more on migrating all image-related operations to RTK Query * update AddImagesToBoardContext so that it works when user uses context menu + modal * handle case where no image is selected * get assets working for main list and boards - dnd only * feat(ui): migrate image uploads to RTK Query - minor refactor of `ImageUploader` and `useImageUploadButton` hooks, simplify some logic - style filesystem upload overlay to match existing UI - replace all old `imageUploaded` thunks with `uploadImage` RTK Query calls, update associated logic including canvas related uploads - simplify `PostUploadAction`s that only need to display user input * feat(ui): remove `receivedPageOfImages` thunks * feat(ui): remove `receivedImageUrls` thunk * feat(ui): finish removing all images thunks stuff now broken: - image usage - delete board images - on first load, no image selected * feat(ui): simplify `updateImage` cache manipulation - we don't actually ever change categories, so we can remove a lot of logic * feat(ui): simplify canvas autosave - instead of using a network request to set the canvas generation as not intermediate, we can just do that in the graph * feat(ui): simplify & handle edge cases in cache updates * feat(db, api): support `board_id='none'` for `get_many` images queries This allows us to get all images that are not on a board. * chore(ui): regen types * feat(ui): add `All Assets`, `No Board` boards Restructure boards: - `all images` is all images - `all assets` is all assets - `no board` is all images/assets without a board set - user boards may have images and assets Update caching logic - much simpler without every board having sub-views of images and assets - update drag and drop operations for all possible interactions * chore(ui): regen types * feat(ui): move download to top of context menu * feat(ui): improve drop overlay styles * fix(ui): fix image not selected on first load - listen for first load of all images board, then select the first image * feat(ui): refactor board deletion api changes: - add route to list all image names for a board. this is required to handle board + image deletion. we need to know every image in the board to determine the image usage across the app. this is fetched only when the delete board and images modal is opened so it's as efficient as it can be. - update the delete board route to respond with a list of deleted `board_images` and `images`, as image names. this is needed to perform accurate clientside state & cache updates after deleting. db changes: - remove unused `board_images` service method to get paginated images dtos for a board. this is now done thru the list images endpoint & images service. needs a small logic change on `images.delete_images_on_board` ui changes: - simplify the delete board modal - no context, just minor prop drilling. this is feasible for boards only because the components that need to trigger and manipulate the modal are very close together in the tree - add cache updates for `deleteBoard` & `deleteBoardAndImages` mutations - the only thing we cannot do directly is on `deleteBoardAndImages`, update the `No Board` board. we'd need to insert image dtos that we may not have loaded. instead, i am just invalidating the tags for that `listImages` cache. so when you `deleteBoardAndImages`, the `No Board` will re-fetch the initial image limit. i think this is more efficient than e.g. fetching all image dtos to insert then inserting them. - handle image usage for `deleteBoardAndImages` - update all (i think/hope) the little bits and pieces in the UI to accomodate these changes * fix(ui): fix board selection logic * feat(ui): add delete board modal loading state * fix(ui): use thumbnails for board cover images * fix(ui): fix race condition with board selection when selecting a board that doesn't have any images loaded, we need to wait until the images haveloaded before selecting the first image. this logic is debounced to ~1000ms. * feat(ui): name 'No Board' correctly, change icon * fix(ui): do not cache listAllImageNames query if we cache it, we can end up with stale image usage during deletion. we could of course manually update the cache as we are doing elsewhere. but because this is a relatively infrequent network request, i'd like to trade increased cache mgmt complexity here for increased resource usage. * feat(ui): reduce drag preview opacity, remove border * fix(ui): fix incorrect queryArg used in `deleteImage` and `updateImage` cache updates * fix(ui): fix doubled open in new tab * fix(ui): fix new generations not getting added to 'No Board' * fix(ui): fix board id not changing on new image when autosave enabled * fix(ui): context menu when selection is 0 need to revise how context menu is triggered later, when we approach multi select * fix(ui): fix deleting does not update counts for all images and all assets * fix(ui): fix all assets board name in boards list collapse button * fix(ui): ensure we never go under 0 for total board count * fix(ui): fix text overflow on board names --------- Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2023-07-19 16:06:38 +00:00
/** DeleteBoardResult */
DeleteBoardResult: {
/**
2023-08-22 05:15:00 +00:00
* Board Id
feat(ui): another go at gallery (#3791) * feat(ui): migrate listImages to RTK query using createEntityAdapter - see comments in `endpoints/images.ts` for explanation of the caching - so far, only manually updating `all` images when new image is generated. no other manual cache updates are implemented, but will be needed. - fixed some weirdness with loading state components (like the spinners in gallery) - added `useThumbnailFallback` for `IAIDndImage`, this displays the tiny webp thumbnail while the full-size images load - comment out some old thunk related stuff in gallerySlice, which is no longer needed * feat(ui): add manual cache updates for board changes (wip) - update RTK Query caches when adding/removing single image to/from board - work more on migrating all image-related operations to RTK Query * update AddImagesToBoardContext so that it works when user uses context menu + modal * handle case where no image is selected * get assets working for main list and boards - dnd only * feat(ui): migrate image uploads to RTK Query - minor refactor of `ImageUploader` and `useImageUploadButton` hooks, simplify some logic - style filesystem upload overlay to match existing UI - replace all old `imageUploaded` thunks with `uploadImage` RTK Query calls, update associated logic including canvas related uploads - simplify `PostUploadAction`s that only need to display user input * feat(ui): remove `receivedPageOfImages` thunks * feat(ui): remove `receivedImageUrls` thunk * feat(ui): finish removing all images thunks stuff now broken: - image usage - delete board images - on first load, no image selected * feat(ui): simplify `updateImage` cache manipulation - we don't actually ever change categories, so we can remove a lot of logic * feat(ui): simplify canvas autosave - instead of using a network request to set the canvas generation as not intermediate, we can just do that in the graph * feat(ui): simplify & handle edge cases in cache updates * feat(db, api): support `board_id='none'` for `get_many` images queries This allows us to get all images that are not on a board. * chore(ui): regen types * feat(ui): add `All Assets`, `No Board` boards Restructure boards: - `all images` is all images - `all assets` is all assets - `no board` is all images/assets without a board set - user boards may have images and assets Update caching logic - much simpler without every board having sub-views of images and assets - update drag and drop operations for all possible interactions * chore(ui): regen types * feat(ui): move download to top of context menu * feat(ui): improve drop overlay styles * fix(ui): fix image not selected on first load - listen for first load of all images board, then select the first image * feat(ui): refactor board deletion api changes: - add route to list all image names for a board. this is required to handle board + image deletion. we need to know every image in the board to determine the image usage across the app. this is fetched only when the delete board and images modal is opened so it's as efficient as it can be. - update the delete board route to respond with a list of deleted `board_images` and `images`, as image names. this is needed to perform accurate clientside state & cache updates after deleting. db changes: - remove unused `board_images` service method to get paginated images dtos for a board. this is now done thru the list images endpoint & images service. needs a small logic change on `images.delete_images_on_board` ui changes: - simplify the delete board modal - no context, just minor prop drilling. this is feasible for boards only because the components that need to trigger and manipulate the modal are very close together in the tree - add cache updates for `deleteBoard` & `deleteBoardAndImages` mutations - the only thing we cannot do directly is on `deleteBoardAndImages`, update the `No Board` board. we'd need to insert image dtos that we may not have loaded. instead, i am just invalidating the tags for that `listImages` cache. so when you `deleteBoardAndImages`, the `No Board` will re-fetch the initial image limit. i think this is more efficient than e.g. fetching all image dtos to insert then inserting them. - handle image usage for `deleteBoardAndImages` - update all (i think/hope) the little bits and pieces in the UI to accomodate these changes * fix(ui): fix board selection logic * feat(ui): add delete board modal loading state * fix(ui): use thumbnails for board cover images * fix(ui): fix race condition with board selection when selecting a board that doesn't have any images loaded, we need to wait until the images haveloaded before selecting the first image. this logic is debounced to ~1000ms. * feat(ui): name 'No Board' correctly, change icon * fix(ui): do not cache listAllImageNames query if we cache it, we can end up with stale image usage during deletion. we could of course manually update the cache as we are doing elsewhere. but because this is a relatively infrequent network request, i'd like to trade increased cache mgmt complexity here for increased resource usage. * feat(ui): reduce drag preview opacity, remove border * fix(ui): fix incorrect queryArg used in `deleteImage` and `updateImage` cache updates * fix(ui): fix doubled open in new tab * fix(ui): fix new generations not getting added to 'No Board' * fix(ui): fix board id not changing on new image when autosave enabled * fix(ui): context menu when selection is 0 need to revise how context menu is triggered later, when we approach multi select * fix(ui): fix deleting does not update counts for all images and all assets * fix(ui): fix all assets board name in boards list collapse button * fix(ui): ensure we never go under 0 for total board count * fix(ui): fix text overflow on board names --------- Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2023-07-19 16:06:38 +00:00
* @description The id of the board that was deleted.
*/
board_id: string;
/**
2023-08-22 05:15:00 +00:00
* Deleted Board Images
feat(ui): another go at gallery (#3791) * feat(ui): migrate listImages to RTK query using createEntityAdapter - see comments in `endpoints/images.ts` for explanation of the caching - so far, only manually updating `all` images when new image is generated. no other manual cache updates are implemented, but will be needed. - fixed some weirdness with loading state components (like the spinners in gallery) - added `useThumbnailFallback` for `IAIDndImage`, this displays the tiny webp thumbnail while the full-size images load - comment out some old thunk related stuff in gallerySlice, which is no longer needed * feat(ui): add manual cache updates for board changes (wip) - update RTK Query caches when adding/removing single image to/from board - work more on migrating all image-related operations to RTK Query * update AddImagesToBoardContext so that it works when user uses context menu + modal * handle case where no image is selected * get assets working for main list and boards - dnd only * feat(ui): migrate image uploads to RTK Query - minor refactor of `ImageUploader` and `useImageUploadButton` hooks, simplify some logic - style filesystem upload overlay to match existing UI - replace all old `imageUploaded` thunks with `uploadImage` RTK Query calls, update associated logic including canvas related uploads - simplify `PostUploadAction`s that only need to display user input * feat(ui): remove `receivedPageOfImages` thunks * feat(ui): remove `receivedImageUrls` thunk * feat(ui): finish removing all images thunks stuff now broken: - image usage - delete board images - on first load, no image selected * feat(ui): simplify `updateImage` cache manipulation - we don't actually ever change categories, so we can remove a lot of logic * feat(ui): simplify canvas autosave - instead of using a network request to set the canvas generation as not intermediate, we can just do that in the graph * feat(ui): simplify & handle edge cases in cache updates * feat(db, api): support `board_id='none'` for `get_many` images queries This allows us to get all images that are not on a board. * chore(ui): regen types * feat(ui): add `All Assets`, `No Board` boards Restructure boards: - `all images` is all images - `all assets` is all assets - `no board` is all images/assets without a board set - user boards may have images and assets Update caching logic - much simpler without every board having sub-views of images and assets - update drag and drop operations for all possible interactions * chore(ui): regen types * feat(ui): move download to top of context menu * feat(ui): improve drop overlay styles * fix(ui): fix image not selected on first load - listen for first load of all images board, then select the first image * feat(ui): refactor board deletion api changes: - add route to list all image names for a board. this is required to handle board + image deletion. we need to know every image in the board to determine the image usage across the app. this is fetched only when the delete board and images modal is opened so it's as efficient as it can be. - update the delete board route to respond with a list of deleted `board_images` and `images`, as image names. this is needed to perform accurate clientside state & cache updates after deleting. db changes: - remove unused `board_images` service method to get paginated images dtos for a board. this is now done thru the list images endpoint & images service. needs a small logic change on `images.delete_images_on_board` ui changes: - simplify the delete board modal - no context, just minor prop drilling. this is feasible for boards only because the components that need to trigger and manipulate the modal are very close together in the tree - add cache updates for `deleteBoard` & `deleteBoardAndImages` mutations - the only thing we cannot do directly is on `deleteBoardAndImages`, update the `No Board` board. we'd need to insert image dtos that we may not have loaded. instead, i am just invalidating the tags for that `listImages` cache. so when you `deleteBoardAndImages`, the `No Board` will re-fetch the initial image limit. i think this is more efficient than e.g. fetching all image dtos to insert then inserting them. - handle image usage for `deleteBoardAndImages` - update all (i think/hope) the little bits and pieces in the UI to accomodate these changes * fix(ui): fix board selection logic * feat(ui): add delete board modal loading state * fix(ui): use thumbnails for board cover images * fix(ui): fix race condition with board selection when selecting a board that doesn't have any images loaded, we need to wait until the images haveloaded before selecting the first image. this logic is debounced to ~1000ms. * feat(ui): name 'No Board' correctly, change icon * fix(ui): do not cache listAllImageNames query if we cache it, we can end up with stale image usage during deletion. we could of course manually update the cache as we are doing elsewhere. but because this is a relatively infrequent network request, i'd like to trade increased cache mgmt complexity here for increased resource usage. * feat(ui): reduce drag preview opacity, remove border * fix(ui): fix incorrect queryArg used in `deleteImage` and `updateImage` cache updates * fix(ui): fix doubled open in new tab * fix(ui): fix new generations not getting added to 'No Board' * fix(ui): fix board id not changing on new image when autosave enabled * fix(ui): context menu when selection is 0 need to revise how context menu is triggered later, when we approach multi select * fix(ui): fix deleting does not update counts for all images and all assets * fix(ui): fix all assets board name in boards list collapse button * fix(ui): ensure we never go under 0 for total board count * fix(ui): fix text overflow on board names --------- Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2023-07-19 16:06:38 +00:00
* @description The image names of the board-images relationships that were deleted.
*/
2023-08-22 05:15:00 +00:00
deleted_board_images: string[];
feat(ui): another go at gallery (#3791) * feat(ui): migrate listImages to RTK query using createEntityAdapter - see comments in `endpoints/images.ts` for explanation of the caching - so far, only manually updating `all` images when new image is generated. no other manual cache updates are implemented, but will be needed. - fixed some weirdness with loading state components (like the spinners in gallery) - added `useThumbnailFallback` for `IAIDndImage`, this displays the tiny webp thumbnail while the full-size images load - comment out some old thunk related stuff in gallerySlice, which is no longer needed * feat(ui): add manual cache updates for board changes (wip) - update RTK Query caches when adding/removing single image to/from board - work more on migrating all image-related operations to RTK Query * update AddImagesToBoardContext so that it works when user uses context menu + modal * handle case where no image is selected * get assets working for main list and boards - dnd only * feat(ui): migrate image uploads to RTK Query - minor refactor of `ImageUploader` and `useImageUploadButton` hooks, simplify some logic - style filesystem upload overlay to match existing UI - replace all old `imageUploaded` thunks with `uploadImage` RTK Query calls, update associated logic including canvas related uploads - simplify `PostUploadAction`s that only need to display user input * feat(ui): remove `receivedPageOfImages` thunks * feat(ui): remove `receivedImageUrls` thunk * feat(ui): finish removing all images thunks stuff now broken: - image usage - delete board images - on first load, no image selected * feat(ui): simplify `updateImage` cache manipulation - we don't actually ever change categories, so we can remove a lot of logic * feat(ui): simplify canvas autosave - instead of using a network request to set the canvas generation as not intermediate, we can just do that in the graph * feat(ui): simplify & handle edge cases in cache updates * feat(db, api): support `board_id='none'` for `get_many` images queries This allows us to get all images that are not on a board. * chore(ui): regen types * feat(ui): add `All Assets`, `No Board` boards Restructure boards: - `all images` is all images - `all assets` is all assets - `no board` is all images/assets without a board set - user boards may have images and assets Update caching logic - much simpler without every board having sub-views of images and assets - update drag and drop operations for all possible interactions * chore(ui): regen types * feat(ui): move download to top of context menu * feat(ui): improve drop overlay styles * fix(ui): fix image not selected on first load - listen for first load of all images board, then select the first image * feat(ui): refactor board deletion api changes: - add route to list all image names for a board. this is required to handle board + image deletion. we need to know every image in the board to determine the image usage across the app. this is fetched only when the delete board and images modal is opened so it's as efficient as it can be. - update the delete board route to respond with a list of deleted `board_images` and `images`, as image names. this is needed to perform accurate clientside state & cache updates after deleting. db changes: - remove unused `board_images` service method to get paginated images dtos for a board. this is now done thru the list images endpoint & images service. needs a small logic change on `images.delete_images_on_board` ui changes: - simplify the delete board modal - no context, just minor prop drilling. this is feasible for boards only because the components that need to trigger and manipulate the modal are very close together in the tree - add cache updates for `deleteBoard` & `deleteBoardAndImages` mutations - the only thing we cannot do directly is on `deleteBoardAndImages`, update the `No Board` board. we'd need to insert image dtos that we may not have loaded. instead, i am just invalidating the tags for that `listImages` cache. so when you `deleteBoardAndImages`, the `No Board` will re-fetch the initial image limit. i think this is more efficient than e.g. fetching all image dtos to insert then inserting them. - handle image usage for `deleteBoardAndImages` - update all (i think/hope) the little bits and pieces in the UI to accomodate these changes * fix(ui): fix board selection logic * feat(ui): add delete board modal loading state * fix(ui): use thumbnails for board cover images * fix(ui): fix race condition with board selection when selecting a board that doesn't have any images loaded, we need to wait until the images haveloaded before selecting the first image. this logic is debounced to ~1000ms. * feat(ui): name 'No Board' correctly, change icon * fix(ui): do not cache listAllImageNames query if we cache it, we can end up with stale image usage during deletion. we could of course manually update the cache as we are doing elsewhere. but because this is a relatively infrequent network request, i'd like to trade increased cache mgmt complexity here for increased resource usage. * feat(ui): reduce drag preview opacity, remove border * fix(ui): fix incorrect queryArg used in `deleteImage` and `updateImage` cache updates * fix(ui): fix doubled open in new tab * fix(ui): fix new generations not getting added to 'No Board' * fix(ui): fix board id not changing on new image when autosave enabled * fix(ui): context menu when selection is 0 need to revise how context menu is triggered later, when we approach multi select * fix(ui): fix deleting does not update counts for all images and all assets * fix(ui): fix all assets board name in boards list collapse button * fix(ui): ensure we never go under 0 for total board count * fix(ui): fix text overflow on board names --------- Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2023-07-19 16:06:38 +00:00
/**
2023-08-22 05:15:00 +00:00
* Deleted Images
feat(ui): another go at gallery (#3791) * feat(ui): migrate listImages to RTK query using createEntityAdapter - see comments in `endpoints/images.ts` for explanation of the caching - so far, only manually updating `all` images when new image is generated. no other manual cache updates are implemented, but will be needed. - fixed some weirdness with loading state components (like the spinners in gallery) - added `useThumbnailFallback` for `IAIDndImage`, this displays the tiny webp thumbnail while the full-size images load - comment out some old thunk related stuff in gallerySlice, which is no longer needed * feat(ui): add manual cache updates for board changes (wip) - update RTK Query caches when adding/removing single image to/from board - work more on migrating all image-related operations to RTK Query * update AddImagesToBoardContext so that it works when user uses context menu + modal * handle case where no image is selected * get assets working for main list and boards - dnd only * feat(ui): migrate image uploads to RTK Query - minor refactor of `ImageUploader` and `useImageUploadButton` hooks, simplify some logic - style filesystem upload overlay to match existing UI - replace all old `imageUploaded` thunks with `uploadImage` RTK Query calls, update associated logic including canvas related uploads - simplify `PostUploadAction`s that only need to display user input * feat(ui): remove `receivedPageOfImages` thunks * feat(ui): remove `receivedImageUrls` thunk * feat(ui): finish removing all images thunks stuff now broken: - image usage - delete board images - on first load, no image selected * feat(ui): simplify `updateImage` cache manipulation - we don't actually ever change categories, so we can remove a lot of logic * feat(ui): simplify canvas autosave - instead of using a network request to set the canvas generation as not intermediate, we can just do that in the graph * feat(ui): simplify & handle edge cases in cache updates * feat(db, api): support `board_id='none'` for `get_many` images queries This allows us to get all images that are not on a board. * chore(ui): regen types * feat(ui): add `All Assets`, `No Board` boards Restructure boards: - `all images` is all images - `all assets` is all assets - `no board` is all images/assets without a board set - user boards may have images and assets Update caching logic - much simpler without every board having sub-views of images and assets - update drag and drop operations for all possible interactions * chore(ui): regen types * feat(ui): move download to top of context menu * feat(ui): improve drop overlay styles * fix(ui): fix image not selected on first load - listen for first load of all images board, then select the first image * feat(ui): refactor board deletion api changes: - add route to list all image names for a board. this is required to handle board + image deletion. we need to know every image in the board to determine the image usage across the app. this is fetched only when the delete board and images modal is opened so it's as efficient as it can be. - update the delete board route to respond with a list of deleted `board_images` and `images`, as image names. this is needed to perform accurate clientside state & cache updates after deleting. db changes: - remove unused `board_images` service method to get paginated images dtos for a board. this is now done thru the list images endpoint & images service. needs a small logic change on `images.delete_images_on_board` ui changes: - simplify the delete board modal - no context, just minor prop drilling. this is feasible for boards only because the components that need to trigger and manipulate the modal are very close together in the tree - add cache updates for `deleteBoard` & `deleteBoardAndImages` mutations - the only thing we cannot do directly is on `deleteBoardAndImages`, update the `No Board` board. we'd need to insert image dtos that we may not have loaded. instead, i am just invalidating the tags for that `listImages` cache. so when you `deleteBoardAndImages`, the `No Board` will re-fetch the initial image limit. i think this is more efficient than e.g. fetching all image dtos to insert then inserting them. - handle image usage for `deleteBoardAndImages` - update all (i think/hope) the little bits and pieces in the UI to accomodate these changes * fix(ui): fix board selection logic * feat(ui): add delete board modal loading state * fix(ui): use thumbnails for board cover images * fix(ui): fix race condition with board selection when selecting a board that doesn't have any images loaded, we need to wait until the images haveloaded before selecting the first image. this logic is debounced to ~1000ms. * feat(ui): name 'No Board' correctly, change icon * fix(ui): do not cache listAllImageNames query if we cache it, we can end up with stale image usage during deletion. we could of course manually update the cache as we are doing elsewhere. but because this is a relatively infrequent network request, i'd like to trade increased cache mgmt complexity here for increased resource usage. * feat(ui): reduce drag preview opacity, remove border * fix(ui): fix incorrect queryArg used in `deleteImage` and `updateImage` cache updates * fix(ui): fix doubled open in new tab * fix(ui): fix new generations not getting added to 'No Board' * fix(ui): fix board id not changing on new image when autosave enabled * fix(ui): context menu when selection is 0 need to revise how context menu is triggered later, when we approach multi select * fix(ui): fix deleting does not update counts for all images and all assets * fix(ui): fix all assets board name in boards list collapse button * fix(ui): ensure we never go under 0 for total board count * fix(ui): fix text overflow on board names --------- Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2023-07-19 16:06:38 +00:00
* @description The names of the images that were deleted.
*/
2023-08-22 05:15:00 +00:00
deleted_images: string[];
feat(ui): another go at gallery (#3791) * feat(ui): migrate listImages to RTK query using createEntityAdapter - see comments in `endpoints/images.ts` for explanation of the caching - so far, only manually updating `all` images when new image is generated. no other manual cache updates are implemented, but will be needed. - fixed some weirdness with loading state components (like the spinners in gallery) - added `useThumbnailFallback` for `IAIDndImage`, this displays the tiny webp thumbnail while the full-size images load - comment out some old thunk related stuff in gallerySlice, which is no longer needed * feat(ui): add manual cache updates for board changes (wip) - update RTK Query caches when adding/removing single image to/from board - work more on migrating all image-related operations to RTK Query * update AddImagesToBoardContext so that it works when user uses context menu + modal * handle case where no image is selected * get assets working for main list and boards - dnd only * feat(ui): migrate image uploads to RTK Query - minor refactor of `ImageUploader` and `useImageUploadButton` hooks, simplify some logic - style filesystem upload overlay to match existing UI - replace all old `imageUploaded` thunks with `uploadImage` RTK Query calls, update associated logic including canvas related uploads - simplify `PostUploadAction`s that only need to display user input * feat(ui): remove `receivedPageOfImages` thunks * feat(ui): remove `receivedImageUrls` thunk * feat(ui): finish removing all images thunks stuff now broken: - image usage - delete board images - on first load, no image selected * feat(ui): simplify `updateImage` cache manipulation - we don't actually ever change categories, so we can remove a lot of logic * feat(ui): simplify canvas autosave - instead of using a network request to set the canvas generation as not intermediate, we can just do that in the graph * feat(ui): simplify & handle edge cases in cache updates * feat(db, api): support `board_id='none'` for `get_many` images queries This allows us to get all images that are not on a board. * chore(ui): regen types * feat(ui): add `All Assets`, `No Board` boards Restructure boards: - `all images` is all images - `all assets` is all assets - `no board` is all images/assets without a board set - user boards may have images and assets Update caching logic - much simpler without every board having sub-views of images and assets - update drag and drop operations for all possible interactions * chore(ui): regen types * feat(ui): move download to top of context menu * feat(ui): improve drop overlay styles * fix(ui): fix image not selected on first load - listen for first load of all images board, then select the first image * feat(ui): refactor board deletion api changes: - add route to list all image names for a board. this is required to handle board + image deletion. we need to know every image in the board to determine the image usage across the app. this is fetched only when the delete board and images modal is opened so it's as efficient as it can be. - update the delete board route to respond with a list of deleted `board_images` and `images`, as image names. this is needed to perform accurate clientside state & cache updates after deleting. db changes: - remove unused `board_images` service method to get paginated images dtos for a board. this is now done thru the list images endpoint & images service. needs a small logic change on `images.delete_images_on_board` ui changes: - simplify the delete board modal - no context, just minor prop drilling. this is feasible for boards only because the components that need to trigger and manipulate the modal are very close together in the tree - add cache updates for `deleteBoard` & `deleteBoardAndImages` mutations - the only thing we cannot do directly is on `deleteBoardAndImages`, update the `No Board` board. we'd need to insert image dtos that we may not have loaded. instead, i am just invalidating the tags for that `listImages` cache. so when you `deleteBoardAndImages`, the `No Board` will re-fetch the initial image limit. i think this is more efficient than e.g. fetching all image dtos to insert then inserting them. - handle image usage for `deleteBoardAndImages` - update all (i think/hope) the little bits and pieces in the UI to accomodate these changes * fix(ui): fix board selection logic * feat(ui): add delete board modal loading state * fix(ui): use thumbnails for board cover images * fix(ui): fix race condition with board selection when selecting a board that doesn't have any images loaded, we need to wait until the images haveloaded before selecting the first image. this logic is debounced to ~1000ms. * feat(ui): name 'No Board' correctly, change icon * fix(ui): do not cache listAllImageNames query if we cache it, we can end up with stale image usage during deletion. we could of course manually update the cache as we are doing elsewhere. but because this is a relatively infrequent network request, i'd like to trade increased cache mgmt complexity here for increased resource usage. * feat(ui): reduce drag preview opacity, remove border * fix(ui): fix incorrect queryArg used in `deleteImage` and `updateImage` cache updates * fix(ui): fix doubled open in new tab * fix(ui): fix new generations not getting added to 'No Board' * fix(ui): fix board id not changing on new image when autosave enabled * fix(ui): context menu when selection is 0 need to revise how context menu is triggered later, when we approach multi select * fix(ui): fix deleting does not update counts for all images and all assets * fix(ui): fix all assets board name in boards list collapse button * fix(ui): ensure we never go under 0 for total board count * fix(ui): fix text overflow on board names --------- Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2023-07-19 16:06:38 +00:00
};
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/** DeleteImagesFromListResult */
DeleteImagesFromListResult: {
/** Deleted Images */
2023-08-22 05:15:00 +00:00
deleted_images: string[];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* Denoise Latents
* @description Denoises noisy latents to decodable images
*/
DenoiseLatentsInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Noise
* @description Noise tensor
*/
2023-08-16 01:59:19 +00:00
noise?: components["schemas"]["LatentsField"];
/**
2023-08-22 05:15:00 +00:00
* Steps
* @description Number of steps to run
* @default 10
*/
steps?: number;
/**
2023-08-22 05:15:00 +00:00
* CFG Scale
* @description Classifier-Free Guidance scale
* @default 7.5
*/
2023-08-22 05:15:00 +00:00
cfg_scale?: number | number[];
/**
2023-08-22 05:15:00 +00:00
* Denoising Start
* @description When to start denoising, expressed a percentage of total steps
* @default 0
*/
denoising_start?: number;
/**
2023-08-22 05:15:00 +00:00
* Denoising End
* @description When to stop denoising, expressed a percentage of total steps
* @default 1
*/
denoising_end?: number;
/**
2023-08-22 05:15:00 +00:00
* Scheduler
* @description Scheduler to use during inference
* @default euler
2023-08-16 01:59:19 +00:00
* @enum {string}
*/
scheduler?: "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";
/**
2023-08-22 05:15:00 +00:00
* Control
* @description ControlNet(s) to apply
*/
2023-08-22 05:15:00 +00:00
control?: components["schemas"]["ControlField"] | components["schemas"]["ControlField"][];
/**
2023-08-22 05:15:00 +00:00
* Latents
* @description Latents tensor
*/
2023-08-16 01:59:19 +00:00
latents?: components["schemas"]["LatentsField"];
/**
2023-08-29 00:20:55 +00:00
* Denoise Mask
* @description The mask to use for the operation
*/
2023-08-29 00:20:55 +00:00
denoise_mask?: components["schemas"]["DenoiseMaskField"];
/**
* Type
* @default denoise_latents
* @enum {string}
*/
type: "denoise_latents";
/**
2023-08-22 05:15:00 +00:00
* Positive Conditioning
* @description Positive conditioning tensor
*/
2023-08-16 01:59:19 +00:00
positive_conditioning?: components["schemas"]["ConditioningField"];
/**
2023-08-22 05:15:00 +00:00
* Negative Conditioning
* @description Negative conditioning tensor
*/
2023-08-16 01:59:19 +00:00
negative_conditioning?: components["schemas"]["ConditioningField"];
/**
2023-08-22 05:15:00 +00:00
* UNet
* @description UNet (scheduler, LoRAs)
*/
2023-08-16 01:59:19 +00:00
unet?: components["schemas"]["UNetField"];
};
2023-08-29 00:20:55 +00:00
/**
* DenoiseMaskField
* @description An inpaint mask field
*/
DenoiseMaskField: {
/**
* Mask Name
* @description The name of the mask image
*/
mask_name: string;
/**
* Masked Latents Name
* @description The name of the masked image latents
*/
masked_latents_name?: string;
};
/**
* DenoiseMaskOutput
* @description Base class for nodes that output a single image
*/
DenoiseMaskOutput: {
/**
* Denoise Mask
* @description Mask for denoise model run
*/
denoise_mask: components["schemas"]["DenoiseMaskField"];
2023-08-29 00:20:55 +00:00
/**
* Type
* @default denoise_mask_output
* @enum {string}
*/
type: "denoise_mask_output";
};
/**
2023-08-22 05:15:00 +00:00
* Divide Integers
* @description Divides two numbers
*/
DivideInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* A
* @description The first number
* @default 0
*/
a?: number;
/**
2023-08-22 05:15:00 +00:00
* B
* @description The second number
* @default 0
*/
b?: number;
/**
* Type
* @default div
* @enum {string}
*/
type: "div";
};
/**
2023-08-22 05:15:00 +00:00
* Dynamic Prompt
* @description Parses a prompt using adieyal/dynamicprompts' random or combinatorial generator
*/
DynamicPromptInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Prompt
* @description The prompt to parse with dynamicprompts
*/
prompt?: string;
/**
2023-08-22 05:15:00 +00:00
* Max Prompts
* @description The number of prompts to generate
* @default 1
*/
max_prompts?: number;
/**
2023-08-22 05:15:00 +00:00
* Combinatorial
* @description Whether to use the combinatorial generator
* @default false
*/
combinatorial?: boolean;
/**
* Type
* @default dynamic_prompt
* @enum {string}
*/
type: "dynamic_prompt";
};
2023-07-17 11:08:53 +00:00
/**
2023-08-22 05:15:00 +00:00
* Upscale (RealESRGAN)
2023-07-17 11:08:53 +00:00
* @description Upscales an image using RealESRGAN.
*/
ESRGANInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
2023-07-17 11:08:53 +00:00
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
2023-07-17 11:08:53 +00:00
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
2023-07-17 11:08:53 +00:00
/**
2023-08-22 05:15:00 +00:00
* Image
2023-07-17 11:08:53 +00:00
* @description The input image
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
2023-07-17 11:08:53 +00:00
/**
2023-08-22 05:15:00 +00:00
* Model Name
* @description The Real-ESRGAN model to use
* @default RealESRGAN_x4plus.pth
2023-07-17 11:08:53 +00:00
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_name?: "RealESRGAN_x4plus.pth" | "RealESRGAN_x4plus_anime_6B.pth" | "ESRGAN_SRx4_DF2KOST_official-ff704c30.pth" | "RealESRGAN_x2plus.pth";
/**
* Type
* @default esrgan
* @enum {string}
*/
type: "esrgan";
2023-07-17 11:08:53 +00:00
};
/** Edge */
Edge: {
/**
2023-08-22 05:15:00 +00:00
* Source
* @description The connection for the edge's from node and field
*/
2023-08-16 01:59:19 +00:00
source: components["schemas"]["EdgeConnection"];
/**
2023-08-22 05:15:00 +00:00
* Destination
* @description The connection for the edge's to node and field
*/
2023-08-16 01:59:19 +00:00
destination: components["schemas"]["EdgeConnection"];
};
/** EdgeConnection */
EdgeConnection: {
/**
2023-08-22 05:15:00 +00:00
* Node Id
* @description The id of the node for this edge connection
*/
node_id: string;
/**
2023-08-22 05:15:00 +00:00
* Field
* @description The field for this connection
*/
field: string;
};
/**
* Float Collection Primitive
* @description A collection of float primitive values
*/
FloatCollectionInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Collection
* @description The collection of float values
*/
collection?: number[];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default float_collection
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "float_collection";
};
/**
2023-08-22 05:15:00 +00:00
* FloatCollectionOutput
* @description Base class for nodes that output a collection of floats
*/
FloatCollectionOutput: {
/**
* Collection
* @description The float collection
*/
collection: number[];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default float_collection_output
* @enum {string}
*/
type: "float_collection_output";
};
/**
2023-08-22 05:15:00 +00:00
* Float Primitive
* @description A float primitive value
*/
FloatInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Value
* @description The float value
* @default 0
*/
value?: number;
/**
* Type
* @default float
* @enum {string}
*/
type: "float";
};
/**
2023-08-22 05:15:00 +00:00
* Float Range
* @description Creates a range
*/
FloatLinearRangeInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Start
* @description The first value of the range
* @default 5
*/
start?: number;
/**
2023-08-22 05:15:00 +00:00
* Stop
* @description The last value of the range
* @default 10
*/
stop?: number;
/**
2023-08-22 05:15:00 +00:00
* Steps
* @description number of values to interpolate over (including start and stop)
* @default 30
*/
steps?: number;
/**
* Type
* @default float_range
* @enum {string}
*/
type: "float_range";
};
/**
2023-08-22 05:15:00 +00:00
* FloatOutput
* @description Base class for nodes that output a single float
*/
FloatOutput: {
/**
* Value
* @description The output float
*/
value: number;
/**
2023-08-22 05:15:00 +00:00
* Type
* @default float_output
* @enum {string}
*/
type: "float_output";
};
/** Graph */
Graph: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this graph
*/
id?: string;
/**
2023-08-22 05:15:00 +00:00
* Nodes
* @description The nodes in this graph
*/
nodes?: {
2023-09-05 02:17:23 +00:00
[key: string]: components["schemas"]["BooleanInvocation"] | components["schemas"]["BooleanCollectionInvocation"] | components["schemas"]["IntegerInvocation"] | components["schemas"]["IntegerCollectionInvocation"] | components["schemas"]["FloatInvocation"] | components["schemas"]["FloatCollectionInvocation"] | components["schemas"]["StringInvocation"] | components["schemas"]["StringCollectionInvocation"] | components["schemas"]["ImageInvocation"] | components["schemas"]["ImageCollectionInvocation"] | components["schemas"]["LatentsInvocation"] | components["schemas"]["LatentsCollectionInvocation"] | components["schemas"]["ColorInvocation"] | components["schemas"]["ConditioningInvocation"] | components["schemas"]["ConditioningCollectionInvocation"] | components["schemas"]["ControlNetInvocation"] | components["schemas"]["ImageProcessorInvocation"] | components["schemas"]["MainModelLoaderInvocation"] | components["schemas"]["LoraLoaderInvocation"] | components["schemas"]["SDXLLoraLoaderInvocation"] | components["schemas"]["VaeLoaderInvocation"] | components["schemas"]["SeamlessModeInvocation"] | components["schemas"]["MetadataAccumulatorInvocation"] | components["schemas"]["RangeInvocation"] | components["schemas"]["RangeOfSizeInvocation"] | components["schemas"]["RandomRangeInvocation"] | components["schemas"]["CompelInvocation"] | components["schemas"]["SDXLCompelPromptInvocation"] | components["schemas"]["SDXLRefinerCompelPromptInvocation"] | components["schemas"]["ClipSkipInvocation"] | components["schemas"]["CvInpaintInvocation"] | components["schemas"]["ShowImageInvocation"] | components["schemas"]["BlankImageInvocation"] | components["schemas"]["ImageCropInvocation"] | components["schemas"]["ImagePasteInvocation"] | components["schemas"]["MaskFromAlphaInvocation"] | components["schemas"]["ImageMultiplyInvocation"] | components["schemas"]["ImageChannelInvocation"] | components["schemas"]["ImageConvertInvocation"] | components["schemas"]["ImageBlurInvocation"] | components["schemas"]["ImageResizeInvocation"] | components["schemas"]["ImageScaleInvocation"] | components["schemas"]["ImageLerpInvocation"] | components["schemas"]["ImageInverseLerpInvocation"] | components["schemas"]["ImageNSFWBlurInvocation"] | components["schemas"]["ImageWatermarkInvocation"] | components["schemas"]["MaskEdgeInvocation"] | components["schemas"]["MaskCombineInvocation"] | components["schemas"]["ColorCorrectInvocation"] | components["schemas"]["ImageHueAdjustmentInvocation"] | components["schemas"]["ImageChannelOffsetInvocation"] | components["schemas"]["ImageChannelMultiplyInvocation"] | components["schemas"]["InfillColorInvocation"] | components["schemas"]["InfillTileInvocation"] | components["schemas"]["InfillPatchMatchInvocation"] | components["schemas"]["LaMaInfillInvocation"] | components["schemas"]["CV2InfillInvocation"] | components["schemas"]["SchedulerInvocation"] | components["schemas"]["CreateDenoiseMaskInvocation"] | components["schemas"]["DenoiseLatentsInvocation"] | components["schemas"]["LatentsToImageInvocation"] | components["schemas"]["ResizeLatentsInvocation"] | components["schemas"]["ScaleLatentsInvocation"] | components["schemas"]["ImageToLatentsInvocation"] | components["schemas"]["BlendLatentsInvocation"] | components["schemas"]["AddInvocation"] | components["schemas"]["SubtractInvocation"] | components["schemas"]["MultiplyInvocation"] | components["schemas"]["DivideInvocation"] | components["schemas"]["RandomIntInvocation"] | components["schemas"]["NoiseInvocation"] | components["schemas"]["ONNXPromptInvocation"] | components["schemas"]["ONNXTextToLatentsInvocation"] | components["schemas"]["ONNXLatentsToImageInvocation"] | components["schemas"]["OnnxModelLoaderInvocation"] | components["schemas"]["FloatLinearRangeInvocation"] | components["schemas"]["StepParamEasingInvocation"] | components["schemas"]["DynamicPromptInvocation"] | components["schemas"]["PromptsFromFileInvocation"] | components["schemas"]["SDXLModelLoaderInvocation"] | components["schemas"]["SDXLRefinerModelLoaderInvocation"] | components["sche
2023-08-16 01:59:19 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* Edges
* @description The connections between nodes and their fields in this graph
*/
2023-08-22 05:15:00 +00:00
edges?: components["schemas"]["Edge"][];
};
/**
2023-08-22 05:15:00 +00:00
* GraphExecutionState
* @description Tracks the state of a graph execution
*/
GraphExecutionState: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of the execution state
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Graph
* @description The graph being executed
*/
2023-08-16 01:59:19 +00:00
graph: components["schemas"]["Graph"];
/**
2023-08-22 05:15:00 +00:00
* Execution Graph
* @description The expanded graph of activated and executed nodes
*/
2023-08-16 01:59:19 +00:00
execution_graph: components["schemas"]["Graph"];
/**
2023-08-22 05:15:00 +00:00
* Executed
* @description The set of node ids that have been executed
*/
2023-08-22 05:15:00 +00:00
executed: string[];
/**
2023-08-22 05:15:00 +00:00
* Executed History
* @description The list of node ids that have been executed, in order of execution
*/
2023-08-22 05:15:00 +00:00
executed_history: string[];
/**
2023-08-22 05:15:00 +00:00
* Results
* @description The results of node executions
*/
results: {
2023-09-05 02:17:23 +00:00
[key: string]: components["schemas"]["BooleanOutput"] | components["schemas"]["BooleanCollectionOutput"] | components["schemas"]["IntegerOutput"] | components["schemas"]["IntegerCollectionOutput"] | components["schemas"]["FloatOutput"] | components["schemas"]["FloatCollectionOutput"] | components["schemas"]["StringOutput"] | components["schemas"]["StringCollectionOutput"] | components["schemas"]["ImageOutput"] | components["schemas"]["ImageCollectionOutput"] | components["schemas"]["DenoiseMaskOutput"] | components["schemas"]["LatentsOutput"] | components["schemas"]["LatentsCollectionOutput"] | components["schemas"]["ColorOutput"] | components["schemas"]["ColorCollectionOutput"] | components["schemas"]["ConditioningOutput"] | components["schemas"]["ConditioningCollectionOutput"] | components["schemas"]["ControlOutput"] | components["schemas"]["ModelLoaderOutput"] | components["schemas"]["LoraLoaderOutput"] | components["schemas"]["SDXLLoraLoaderOutput"] | components["schemas"]["VaeLoaderOutput"] | components["schemas"]["SeamlessModeOutput"] | components["schemas"]["MetadataAccumulatorOutput"] | components["schemas"]["ClipSkipInvocationOutput"] | components["schemas"]["SchedulerOutput"] | components["schemas"]["NoiseOutput"] | components["schemas"]["ONNXModelLoaderOutput"] | components["schemas"]["SDXLModelLoaderOutput"] | components["schemas"]["SDXLRefinerModelLoaderOutput"] | components["schemas"]["GraphInvocationOutput"] | components["schemas"]["IterateInvocationOutput"] | components["schemas"]["CollectInvocationOutput"];
2023-08-16 01:59:19 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* Errors
* @description Errors raised when executing nodes
*/
errors: {
2023-08-22 05:15:00 +00:00
[key: string]: string;
};
/**
2023-08-22 05:15:00 +00:00
* Prepared Source Mapping
* @description The map of prepared nodes to original graph nodes
*/
prepared_source_mapping: {
2023-08-22 05:15:00 +00:00
[key: string]: string;
};
/**
2023-08-22 05:15:00 +00:00
* Source Prepared Mapping
* @description The map of original graph nodes to prepared nodes
*/
source_prepared_mapping: {
2023-08-22 05:15:00 +00:00
[key: string]: string[];
};
};
/**
2023-08-22 05:15:00 +00:00
* GraphInvocation
* @description Execute a graph
*/
GraphInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Graph
* @description The graph to run
*/
graph?: components["schemas"]["Graph"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default graph
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "graph";
};
/**
2023-08-22 05:15:00 +00:00
* GraphInvocationOutput
* @description Base class for all invocation outputs.
*
* All invocation outputs must use the `@invocation_output` decorator to provide their unique type.
*/
GraphInvocationOutput: {
/**
2023-08-22 05:15:00 +00:00
* Type
* @default graph_output
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "graph_output";
};
/** HTTPValidationError */
HTTPValidationError: {
/** Detail */
2023-08-22 05:15:00 +00:00
detail?: components["schemas"]["ValidationError"][];
};
/**
2023-08-22 05:15:00 +00:00
* HED (softedge) Processor
* @description Applies HED edge detection to image
*/
HedImageProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default hed_image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "hed_image_processor";
/**
2023-08-22 05:15:00 +00:00
* Detect Resolution
* @description Pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* Image Resolution
* @description Pixel resolution for output image
* @default 512
*/
image_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* Scribble
* @description Whether or not to use scribble mode
* @default false
*/
scribble?: boolean;
};
/**
2023-08-22 05:15:00 +00:00
* Blur Image
* @description Blurs an image
*/
ImageBlurInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to blur
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Radius
* @description The blur radius
* @default 8
*/
radius?: number;
/**
2023-08-22 05:15:00 +00:00
* Blur Type
* @description The type of blur
* @default gaussian
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
blur_type?: "gaussian" | "box";
/**
* Type
* @default img_blur
* @enum {string}
*/
type: "img_blur";
};
/**
2023-08-22 05:15:00 +00:00
* ImageCategory
* @description The category of an image.
2023-08-22 05:15:00 +00:00
*
* - GENERAL: The image is an output, init image, or otherwise an image without a specialized purpose.
* - MASK: The image is a mask image.
* - CONTROL: The image is a ControlNet control image.
* - USER: The image is a user-provide image.
2023-08-22 05:15:00 +00:00
* - OTHER: The image is some other type of image with a specialized purpose. To be used by external nodes.
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
ImageCategory: "general" | "mask" | "control" | "user" | "other";
/**
2023-08-22 05:15:00 +00:00
* Extract Image Channel
* @description Gets a channel from an image.
*/
ImageChannelInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to get the channel from
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Channel
* @description The channel to get
* @default A
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
channel?: "A" | "R" | "G" | "B";
/**
* Type
* @default img_chan
* @enum {string}
*/
type: "img_chan";
};
/**
* Multiply Image Channel
* @description Scale a specific color channel of an image.
*/
ImageChannelMultiplyInvocation: {
/**
* 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;
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to adjust
*/
image?: components["schemas"]["ImageField"];
/**
* Channel
* @description Which channel to adjust
* @enum {string}
*/
channel?: "Red (RGBA)" | "Green (RGBA)" | "Blue (RGBA)" | "Alpha (RGBA)" | "Cyan (CMYK)" | "Magenta (CMYK)" | "Yellow (CMYK)" | "Black (CMYK)" | "Hue (HSV)" | "Saturation (HSV)" | "Value (HSV)" | "Luminosity (LAB)" | "A (LAB)" | "B (LAB)" | "Y (YCbCr)" | "Cb (YCbCr)" | "Cr (YCbCr)";
/**
* Scale
* @description The amount to scale the channel by.
* @default 1
*/
scale?: number;
/**
* Invert Channel
* @description Invert the channel after scaling
* @default false
*/
invert_channel?: boolean;
/**
* Type
* @default img_channel_multiply
* @enum {string}
*/
type: "img_channel_multiply";
};
/**
* Offset Image Channel
* @description Add or subtract a value from a specific color channel of an image.
*/
ImageChannelOffsetInvocation: {
/**
* 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;
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to adjust
*/
image?: components["schemas"]["ImageField"];
/**
* Channel
* @description Which channel to adjust
* @enum {string}
*/
channel?: "Red (RGBA)" | "Green (RGBA)" | "Blue (RGBA)" | "Alpha (RGBA)" | "Cyan (CMYK)" | "Magenta (CMYK)" | "Yellow (CMYK)" | "Black (CMYK)" | "Hue (HSV)" | "Saturation (HSV)" | "Value (HSV)" | "Luminosity (LAB)" | "A (LAB)" | "B (LAB)" | "Y (YCbCr)" | "Cb (YCbCr)" | "Cr (YCbCr)";
/**
* Offset
* @description The amount to adjust the channel by
* @default 0
*/
offset?: number;
/**
* Type
* @default img_channel_offset
* @enum {string}
*/
type: "img_channel_offset";
};
/**
* Image Collection Primitive
* @description A collection of image primitive values
*/
ImageCollectionInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Collection
* @description The collection of image values
*/
2023-08-22 05:15:00 +00:00
collection?: components["schemas"]["ImageField"][];
/**
* Type
* @default image_collection
* @enum {string}
*/
type: "image_collection";
};
/**
2023-08-22 05:15:00 +00:00
* ImageCollectionOutput
* @description Base class for nodes that output a collection of images
*/
ImageCollectionOutput: {
/**
* Collection
* @description The output images
*/
collection: components["schemas"]["ImageField"][];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default image_collection_output
* @enum {string}
*/
type: "image_collection_output";
};
/**
2023-08-22 05:15:00 +00:00
* Convert Image Mode
* @description Converts an image to a different mode.
*/
ImageConvertInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to convert
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Mode
* @description The mode to convert to
* @default L
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
mode?: "L" | "RGB" | "RGBA" | "CMYK" | "YCbCr" | "LAB" | "HSV" | "I" | "F";
/**
* Type
* @default img_conv
* @enum {string}
*/
type: "img_conv";
};
/**
2023-08-22 05:15:00 +00:00
* Crop Image
* @description Crops an image to a specified box. The box can be outside of the image.
*/
ImageCropInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to crop
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* X
* @description The left x coordinate of the crop rectangle
* @default 0
*/
x?: number;
/**
2023-08-22 05:15:00 +00:00
* Y
* @description The top y coordinate of the crop rectangle
* @default 0
*/
y?: number;
/**
2023-08-22 05:15:00 +00:00
* Width
* @description The width of the crop rectangle
* @default 512
*/
width?: number;
/**
2023-08-22 05:15:00 +00:00
* Height
* @description The height of the crop rectangle
* @default 512
*/
height?: number;
/**
* Type
* @default img_crop
* @enum {string}
*/
type: "img_crop";
};
/**
2023-08-22 05:15:00 +00:00
* ImageDTO
* @description Deserialized image record, enriched for the frontend.
*/
ImageDTO: {
/**
2023-08-22 05:15:00 +00:00
* Image Name
* @description The unique name of the image.
*/
image_name: string;
/**
2023-08-22 05:15:00 +00:00
* Image Url
* @description The URL of the image.
*/
image_url: string;
/**
2023-08-22 05:15:00 +00:00
* Thumbnail Url
* @description The URL of the image's thumbnail.
*/
thumbnail_url: string;
/** @description The type of the image. */
2023-08-16 01:59:19 +00:00
image_origin: components["schemas"]["ResourceOrigin"];
/** @description The category of the image. */
2023-08-16 01:59:19 +00:00
image_category: components["schemas"]["ImageCategory"];
/**
2023-08-22 05:15:00 +00:00
* Width
* @description The width of the image in px.
*/
width: number;
/**
2023-08-22 05:15:00 +00:00
* Height
* @description The height of the image in px.
*/
height: number;
/**
2023-08-22 05:15:00 +00:00
* Created At
* @description The created timestamp of the image.
*/
created_at: string;
/**
2023-08-22 05:15:00 +00:00
* Updated At
* @description The updated timestamp of the image.
*/
updated_at: string;
/**
2023-08-22 05:15:00 +00:00
* Deleted At
* @description The deleted timestamp of the image.
*/
deleted_at?: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether this is an intermediate image.
*/
is_intermediate: boolean;
/**
2023-08-22 05:15:00 +00:00
* Session Id
* @description The session ID that generated this image, if it is a generated image.
*/
session_id?: string;
/**
2023-08-22 05:15:00 +00:00
* Node Id
* @description The node ID that generated this image, if it is a generated image.
*/
node_id?: string;
/**
2023-08-22 05:15:00 +00:00
* Starred
* @description Whether this image is starred.
*/
starred: boolean;
/**
2023-08-22 05:15:00 +00:00
* Board Id
* @description The id of the board the image belongs to, if one exists.
*/
board_id?: string;
};
/**
2023-08-22 05:15:00 +00:00
* ImageField
* @description An image primitive field
*/
ImageField: {
/**
2023-08-22 05:15:00 +00:00
* Image Name
* @description The name of the image
*/
image_name: string;
};
/**
* Adjust Image Hue
* @description Adjusts the Hue of an image.
*/
ImageHueAdjustmentInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to adjust
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Hue
* @description The degrees by which to rotate the hue, 0-360
* @default 0
*/
hue?: number;
/**
* Type
* @default img_hue_adjust
* @enum {string}
*/
type: "img_hue_adjust";
};
/**
2023-08-22 05:15:00 +00:00
* Inverse Lerp Image
* @description Inverse linear interpolation of all pixels of an image
*/
ImageInverseLerpInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to lerp
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Min
* @description The minimum input value
* @default 0
*/
min?: number;
/**
2023-08-22 05:15:00 +00:00
* Max
* @description The maximum input value
* @default 255
*/
max?: number;
/**
* Type
* @default img_ilerp
* @enum {string}
*/
type: "img_ilerp";
};
/**
2023-08-22 05:15:00 +00:00
* Image Primitive
* @description An image primitive value
*/
ImageInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to load
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default image
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "image";
};
/**
2023-08-22 05:15:00 +00:00
* Lerp Image
* @description Linear interpolation of all pixels of an image
*/
ImageLerpInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to lerp
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Min
* @description The minimum output value
* @default 0
*/
min?: number;
/**
2023-08-22 05:15:00 +00:00
* Max
* @description The maximum output value
* @default 255
*/
max?: number;
/**
* Type
* @default img_lerp
* @enum {string}
*/
type: "img_lerp";
};
/**
2023-08-22 05:15:00 +00:00
* ImageMetadata
2023-07-12 15:15:09 +00:00
* @description An image's generation metadata
*/
ImageMetadata: {
/**
2023-08-22 05:15:00 +00:00
* Metadata
2023-07-12 15:15:09 +00:00
* @description The image's core metadata, if it was created in the Linear or Canvas UI
*/
2023-07-12 15:15:09 +00:00
metadata?: Record<string, never>;
/**
2023-08-22 05:15:00 +00:00
* Graph
2023-07-12 15:15:09 +00:00
* @description The graph that created the image
*/
2023-07-12 15:15:09 +00:00
graph?: Record<string, never>;
};
/**
2023-08-22 05:15:00 +00:00
* Multiply Images
* @description Multiplies two images together using `PIL.ImageChops.multiply()`.
*/
ImageMultiplyInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image1
* @description The first image to multiply
*/
2023-08-16 01:59:19 +00:00
image1?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Image2
* @description The second image to multiply
*/
2023-08-16 01:59:19 +00:00
image2?: components["schemas"]["ImageField"];
/**
* Type
* @default img_mul
* @enum {string}
*/
type: "img_mul";
};
2023-07-23 20:24:34 +00:00
/**
2023-08-22 05:15:00 +00:00
* Blur NSFW Image
2023-07-23 20:24:34 +00:00
* @description Add blur to NSFW-flagged images
*/
2023-07-24 12:25:39 +00:00
ImageNSFWBlurInvocation: {
2023-07-23 20:24:34 +00:00
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
2023-07-23 20:24:34 +00:00
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
2023-07-23 20:24:34 +00:00
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Metadata
* @description Optional core metadata to be written to image
*/
metadata?: components["schemas"]["CoreMetadata"];
2023-07-23 20:24:34 +00:00
/**
2023-08-22 05:15:00 +00:00
* Type
* @default img_nsfw
2023-07-23 20:24:34 +00:00
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "img_nsfw";
2023-07-23 20:24:34 +00:00
/**
2023-08-22 05:15:00 +00:00
* Image
2023-07-24 12:25:39 +00:00
* @description The image to check
2023-07-23 20:24:34 +00:00
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
2023-07-23 20:24:34 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* ImageOutput
* @description Base class for nodes that output a single image
*/
ImageOutput: {
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The output image
*/
2023-08-16 01:59:19 +00:00
image: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Width
* @description The width of the image in pixels
*/
width: number;
/**
2023-08-22 05:15:00 +00:00
* Height
* @description The height of the image in pixels
*/
height: number;
/**
* Type
* @default image_output
* @enum {string}
*/
type: "image_output";
};
/**
2023-08-22 05:15:00 +00:00
* Paste Image
* @description Pastes an image into another image.
*/
ImagePasteInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Base Image
* @description The base image
*/
2023-08-16 01:59:19 +00:00
base_image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to paste
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Mask
* @description The mask to use when pasting
*/
2023-08-16 01:59:19 +00:00
mask?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* X
* @description The left x coordinate at which to paste the image
* @default 0
*/
x?: number;
/**
2023-08-22 05:15:00 +00:00
* Y
* @description The top y coordinate at which to paste the image
* @default 0
*/
y?: number;
/**
* Type
* @default img_paste
* @enum {string}
*/
type: "img_paste";
};
/**
* Base Image Processor
* @description Base class for invocations that preprocess images for ControlNet
*/
ImageProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "image_processor";
};
/**
2023-08-22 05:15:00 +00:00
* ImageRecordChanges
* @description A set of changes to apply to an image record.
2023-08-22 05:15:00 +00:00
*
* Only limited changes are valid:
* - `image_category`: change the category of an image
* - `session_id`: change the session associated with an image
* - `is_intermediate`: change the image's `is_intermediate` flag
* - `starred`: change whether the image is starred
*/
ImageRecordChanges: {
/** @description The image's new category. */
2023-08-16 01:59:19 +00:00
image_category?: components["schemas"]["ImageCategory"];
/**
2023-08-22 05:15:00 +00:00
* Session Id
* @description The image's new session ID.
*/
session_id?: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description The image's new `is_intermediate` flag.
*/
is_intermediate?: boolean;
/**
2023-08-22 05:15:00 +00:00
* Starred
* @description The image's new `starred` state
*/
starred?: boolean;
};
/**
2023-08-22 05:15:00 +00:00
* Resize Image
* @description Resizes an image to specific dimensions
*/
ImageResizeInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to resize
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Width
* @description The width to resize to (px)
* @default 512
*/
width?: number;
/**
2023-08-22 05:15:00 +00:00
* Height
* @description The height to resize to (px)
* @default 512
*/
height?: number;
/**
2023-08-22 05:15:00 +00:00
* Resample Mode
* @description The resampling mode
* @default bicubic
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
resample_mode?: "nearest" | "box" | "bilinear" | "hamming" | "bicubic" | "lanczos";
2023-08-29 00:20:55 +00:00
/**
* Metadata
* @description Optional core metadata to be written to image
*/
metadata?: components["schemas"]["CoreMetadata"];
/**
* Type
* @default img_resize
* @enum {string}
*/
type: "img_resize";
};
/**
2023-08-22 05:15:00 +00:00
* Scale Image
* @description Scales an image by a factor
*/
ImageScaleInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to scale
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Scale Factor
* @description The factor by which to scale the image
2023-07-17 11:08:53 +00:00
* @default 2
*/
2023-07-17 11:08:53 +00:00
scale_factor?: number;
/**
2023-08-22 05:15:00 +00:00
* Resample Mode
* @description The resampling mode
* @default bicubic
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
resample_mode?: "nearest" | "box" | "bilinear" | "hamming" | "bicubic" | "lanczos";
/**
* Type
* @default img_scale
* @enum {string}
*/
type: "img_scale";
};
/**
2023-08-22 05:15:00 +00:00
* Image to Latents
* @description Encodes an image into latents.
*/
ImageToLatentsInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to encode
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Vae
* @description VAE
*/
2023-08-16 01:59:19 +00:00
vae?: components["schemas"]["VaeField"];
/**
2023-08-22 05:15:00 +00:00
* Tiled
* @description Processing using overlapping tiles (reduce memory consumption)
* @default false
*/
tiled?: boolean;
/**
2023-08-22 05:15:00 +00:00
* Fp32
* @description Whether or not to use full float32 precision
* @default false
*/
fp32?: boolean;
/**
* Type
* @default i2l
* @enum {string}
*/
type: "i2l";
};
/**
2023-08-22 05:15:00 +00:00
* ImageUrlsDTO
* @description The URLs for an image and its thumbnail.
*/
ImageUrlsDTO: {
/**
2023-08-22 05:15:00 +00:00
* Image Name
* @description The unique name of the image.
*/
image_name: string;
/**
2023-08-22 05:15:00 +00:00
* Image Url
* @description The URL of the image.
*/
image_url: string;
/**
2023-08-22 05:15:00 +00:00
* Thumbnail Url
* @description The URL of the image's thumbnail.
*/
thumbnail_url: string;
};
2023-07-24 12:25:39 +00:00
/**
2023-08-22 05:15:00 +00:00
* Add Invisible Watermark
2023-07-24 12:25:39 +00:00
* @description Add an invisible watermark to an image
*/
ImageWatermarkInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
2023-07-24 12:25:39 +00:00
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
2023-07-24 12:25:39 +00:00
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
2023-07-24 12:25:39 +00:00
/**
2023-08-22 05:15:00 +00:00
* Image
2023-07-24 12:25:39 +00:00
* @description The image to check
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
2023-07-24 12:25:39 +00:00
/**
2023-08-22 05:15:00 +00:00
* Text
* @description Watermark text
2023-07-24 12:25:39 +00:00
* @default InvokeAI
*/
text?: string;
/**
2023-08-22 05:15:00 +00:00
* Metadata
* @description Optional core metadata to be written to image
2023-07-24 12:25:39 +00:00
*/
2023-08-16 01:59:19 +00:00
metadata?: components["schemas"]["CoreMetadata"];
/**
* Type
* @default img_watermark
* @enum {string}
*/
type: "img_watermark";
2023-07-24 12:25:39 +00:00
};
/** ImagesUpdatedFromListResult */
ImagesUpdatedFromListResult: {
/**
2023-08-22 05:15:00 +00:00
* Updated Image Names
* @description The image names that were updated
*/
2023-08-22 05:15:00 +00:00
updated_image_names: string[];
};
/**
2023-08-22 05:15:00 +00:00
* Solid Color Infill
* @description Infills transparent areas of an image with a solid color
*/
InfillColorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to infill
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Color
* @description The color to use to infill
* @default {
* "r": 127,
* "g": 127,
* "b": 127,
* "a": 255
* }
*/
2023-08-16 01:59:19 +00:00
color?: components["schemas"]["ColorField"];
/**
* Type
* @default infill_rgba
* @enum {string}
*/
type: "infill_rgba";
};
/**
2023-08-22 05:15:00 +00:00
* PatchMatch Infill
* @description Infills transparent areas of an image using the PatchMatch algorithm
*/
InfillPatchMatchInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to infill
*/
image?: components["schemas"]["ImageField"];
2023-09-05 02:17:23 +00:00
/**
* Downscale
* @description Run patchmatch on downscaled image to speedup infill
* @default 2
*/
downscale?: number;
/**
* Resample Mode
* @description The resampling mode
* @default bicubic
* @enum {string}
*/
resample_mode?: "nearest" | "box" | "bilinear" | "hamming" | "bicubic" | "lanczos";
/**
2023-08-22 05:15:00 +00:00
* Type
* @default infill_patchmatch
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "infill_patchmatch";
};
/**
2023-08-22 05:15:00 +00:00
* Tile Infill
* @description Infills transparent areas of an image with tiles of the image
*/
InfillTileInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to infill
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Tile Size
* @description The tile size (px)
* @default 32
*/
tile_size?: number;
/**
2023-08-22 05:15:00 +00:00
* Seed
* @description The seed to use for tile generation (omit for random)
*/
seed?: number;
/**
* Type
* @default infill_tile
* @enum {string}
*/
type: "infill_tile";
};
/**
* Integer Collection Primitive
* @description A collection of integer primitive values
*/
IntegerCollectionInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Collection
* @description The collection of integer values
*/
2023-08-22 05:15:00 +00:00
collection?: number[];
/**
* Type
* @default integer_collection
* @enum {string}
*/
type: "integer_collection";
};
/**
2023-08-22 05:15:00 +00:00
* IntegerCollectionOutput
* @description Base class for nodes that output a collection of integers
*/
IntegerCollectionOutput: {
/**
* Collection
* @description The int collection
*/
collection: number[];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default integer_collection_output
* @enum {string}
*/
type: "integer_collection_output";
};
/**
2023-08-22 05:15:00 +00:00
* Integer Primitive
* @description An integer primitive value
*/
IntegerInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Value
* @description The integer value
* @default 0
*/
value?: number;
/**
* Type
* @default integer
* @enum {string}
*/
type: "integer";
};
/**
2023-08-22 05:15:00 +00:00
* IntegerOutput
* @description Base class for nodes that output a single integer
*/
IntegerOutput: {
/**
* Value
* @description The output integer
*/
value: number;
/**
2023-08-22 05:15:00 +00:00
* Type
* @default integer_output
* @enum {string}
*/
type: "integer_output";
};
/**
2023-08-22 05:15:00 +00:00
* IterateInvocation
* @description Iterates over a list of items
*/
IterateInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Collection
* @description The list of items to iterate over
*/
2023-08-22 05:15:00 +00:00
collection?: unknown[];
/**
2023-08-22 05:15:00 +00:00
* Index
* @description The index, will be provided on executed iterators
* @default 0
*/
index?: number;
/**
* Type
* @default iterate
* @enum {string}
*/
type: "iterate";
};
/**
2023-08-22 05:15:00 +00:00
* IterateInvocationOutput
* @description Used to connect iteration outputs. Will be expanded to a specific output.
*/
IterateInvocationOutput: {
/**
* Collection Item
* @description The item being iterated over
*/
item?: unknown;
/**
2023-08-22 05:15:00 +00:00
* Type
* @default iterate_output
* @enum {string}
*/
type: "iterate_output";
};
2023-08-23 19:25:24 +00:00
/**
* LaMa Infill
* @description Infills transparent areas of an image using the LaMa model
*/
LaMaInfillInvocation: {
/**
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
2023-08-23 19:25:24 +00:00
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
2023-08-23 19:25:24 +00:00
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to infill
*/
image?: components["schemas"]["ImageField"];
2023-08-23 19:25:24 +00:00
/**
* Type
* @default infill_lama
* @enum {string}
*/
type: "infill_lama";
};
/**
* Latents Collection Primitive
* @description A collection of latents tensor primitive values
*/
LatentsCollectionInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Collection
* @description The collection of latents tensors
*/
collection?: components["schemas"]["LatentsField"][];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default latents_collection
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "latents_collection";
};
/**
2023-08-22 05:15:00 +00:00
* LatentsCollectionOutput
* @description Base class for nodes that output a collection of latents tensors
*/
LatentsCollectionOutput: {
/**
* Collection
* @description Latents tensor
*/
collection: components["schemas"]["LatentsField"][];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default latents_collection_output
* @enum {string}
*/
type: "latents_collection_output";
};
/**
2023-08-22 05:15:00 +00:00
* LatentsField
* @description A latents tensor primitive field
*/
LatentsField: {
/**
2023-08-22 05:15:00 +00:00
* Latents Name
* @description The name of the latents
*/
latents_name: string;
/**
2023-08-22 05:15:00 +00:00
* Seed
* @description Seed used to generate this latents
*/
seed?: number;
};
/**
2023-08-22 05:15:00 +00:00
* Latents Primitive
* @description A latents tensor primitive value
*/
LatentsInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Latents
* @description The latents tensor
*/
latents?: components["schemas"]["LatentsField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default latents
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "latents";
};
/**
2023-08-22 05:15:00 +00:00
* LatentsOutput
* @description Base class for nodes that output a single latents tensor
*/
LatentsOutput: {
/**
2023-08-22 05:15:00 +00:00
* Latents
* @description Latents tensor
*/
2023-08-16 01:59:19 +00:00
latents: components["schemas"]["LatentsField"];
/**
2023-08-22 05:15:00 +00:00
* Width
* @description Width of output (px)
*/
width: number;
/**
2023-08-22 05:15:00 +00:00
* Height
* @description Height of output (px)
*/
height: number;
/**
* Type
* @default latents_output
* @enum {string}
*/
type: "latents_output";
};
/**
2023-08-22 05:15:00 +00:00
* Latents to Image
* @description Generates an image from latents.
*/
LatentsToImageInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Tiled
* @description Processing using overlapping tiles (reduce memory consumption)
* @default false
*/
tiled?: boolean;
/**
2023-08-22 05:15:00 +00:00
* Fp32
* @description Whether or not to use full float32 precision
* @default false
*/
fp32?: boolean;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Metadata
* @description Optional core metadata to be written to image
2023-07-12 15:15:09 +00:00
*/
2023-08-16 01:59:19 +00:00
metadata?: components["schemas"]["CoreMetadata"];
/**
* Type
* @default l2i
* @enum {string}
*/
type: "l2i";
/**
2023-08-22 05:15:00 +00:00
* Latents
* @description Latents tensor
*/
2023-08-16 01:59:19 +00:00
latents?: components["schemas"]["LatentsField"];
/**
2023-08-22 05:15:00 +00:00
* Vae
* @description VAE
*/
2023-08-16 01:59:19 +00:00
vae?: components["schemas"]["VaeField"];
};
/**
2023-08-22 05:15:00 +00:00
* Leres (Depth) Processor
* @description Applies leres processing to image
*/
LeresImageProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default leres_image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "leres_image_processor";
/**
2023-08-22 05:15:00 +00:00
* Thr A
* @description Leres parameter `thr_a`
* @default 0
*/
thr_a?: number;
/**
2023-08-22 05:15:00 +00:00
* Thr B
* @description Leres parameter `thr_b`
* @default 0
*/
thr_b?: number;
/**
2023-08-22 05:15:00 +00:00
* Boost
* @description Whether to use boost mode
* @default false
*/
boost?: boolean;
/**
2023-08-22 05:15:00 +00:00
* Detect Resolution
* @description Pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* Image Resolution
* @description Pixel resolution for output image
* @default 512
*/
image_resolution?: number;
};
/**
2023-08-22 05:15:00 +00:00
* Lineart Anime Processor
* @description Applies line art anime processing to image
*/
LineartAnimeImageProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default lineart_anime_image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "lineart_anime_image_processor";
/**
2023-08-22 05:15:00 +00:00
* Detect Resolution
* @description Pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* Image Resolution
* @description Pixel resolution for output image
* @default 512
*/
image_resolution?: number;
};
/**
2023-08-22 05:15:00 +00:00
* Lineart Processor
* @description Applies line art processing to image
*/
LineartImageProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default lineart_image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "lineart_image_processor";
/**
2023-08-22 05:15:00 +00:00
* Detect Resolution
* @description Pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* Image Resolution
* @description Pixel resolution for output image
* @default 512
*/
image_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* Coarse
* @description Whether to use coarse mode
* @default false
*/
coarse?: boolean;
};
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* LoRAMetadataField
2023-07-12 15:15:09 +00:00
* @description LoRA metadata for an image generated in InvokeAI.
*/
LoRAMetadataField: {
/**
2023-08-22 05:15:00 +00:00
* Lora
2023-07-12 15:15:09 +00:00
* @description The LoRA model
*/
2023-08-16 01:59:19 +00:00
lora: components["schemas"]["LoRAModelField"];
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Weight
2023-07-12 15:15:09 +00:00
* @description The weight of the LoRA model
*/
weight: number;
};
/** LoRAModelConfig */
LoRAModelConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-08-22 05:15:00 +00:00
* Model Type
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_type: "lora";
/** Path */
path: string;
/** Description */
description?: string;
2023-08-16 01:59:19 +00:00
model_format: components["schemas"]["LoRAModelFormat"];
error?: components["schemas"]["ModelError"];
};
2023-07-04 11:12:49 +00:00
/**
2023-08-22 05:15:00 +00:00
* LoRAModelField
2023-07-04 11:12:49 +00:00
* @description LoRA model field
*/
LoRAModelField: {
/**
2023-08-22 05:15:00 +00:00
* Model Name
2023-07-04 11:12:49 +00:00
* @description Name of the LoRA model
*/
model_name: string;
/** @description Base model */
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
2023-07-04 11:12:49 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* LoRAModelFormat
* @description An enumeration.
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
LoRAModelFormat: "lycoris" | "diffusers";
2023-07-20 15:45:54 +00:00
/**
2023-08-22 05:15:00 +00:00
* LogLevel
* @description An enumeration.
2023-07-20 15:45:54 +00:00
* @enum {integer}
*/
LogLevel: 0 | 10 | 20 | 30 | 40 | 50;
/** LoraInfo */
LoraInfo: {
/**
2023-08-22 05:15:00 +00:00
* Model Name
* @description Info to load submodel
*/
model_name: string;
/** @description Base model */
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/** @description Info to load submodel */
2023-08-16 01:59:19 +00:00
model_type: components["schemas"]["ModelType"];
/** @description Info to load submodel */
2023-08-16 01:59:19 +00:00
submodel?: components["schemas"]["SubModelType"];
/**
2023-08-22 05:15:00 +00:00
* Weight
* @description Lora's weight which to use when apply to model
*/
weight: number;
};
/**
2023-08-22 05:15:00 +00:00
* LoRA
* @description Apply selected lora to unet and text_encoder.
*/
LoraLoaderInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* LoRA
* @description LoRA model to load
*/
2023-08-16 01:59:19 +00:00
lora: components["schemas"]["LoRAModelField"];
/**
2023-08-22 05:15:00 +00:00
* Weight
* @description The weight at which the LoRA is applied to each model
* @default 0.75
*/
weight?: number;
/**
2023-08-22 05:15:00 +00:00
* UNet
* @description UNet (scheduler, LoRAs)
*/
2023-08-16 01:59:19 +00:00
unet?: components["schemas"]["UNetField"];
/**
2023-08-22 05:15:00 +00:00
* CLIP
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip?: components["schemas"]["ClipField"];
/**
* Type
* @default lora_loader
* @enum {string}
*/
type: "lora_loader";
};
/**
2023-08-22 05:15:00 +00:00
* LoraLoaderOutput
* @description Model loader output
*/
LoraLoaderOutput: {
/**
2023-08-22 05:15:00 +00:00
* UNet
* @description UNet (scheduler, LoRAs)
*/
2023-08-16 01:59:19 +00:00
unet?: components["schemas"]["UNetField"];
/**
2023-08-22 05:15:00 +00:00
* CLIP
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip?: components["schemas"]["ClipField"];
/**
* Type
* @default lora_loader_output
* @enum {string}
*/
type: "lora_loader_output";
};
/**
2023-08-22 05:15:00 +00:00
* MainModelField
* @description Main model field
*/
MainModelField: {
/**
2023-08-22 05:15:00 +00:00
* Model Name
* @description Name of the model
*/
model_name: string;
/** @description Base model */
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/** @description Model Type */
2023-08-16 01:59:19 +00:00
model_type: components["schemas"]["ModelType"];
};
/**
2023-08-22 05:15:00 +00:00
* Main Model
* @description Loads a main model, outputting its submodels.
*/
MainModelLoaderInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Model
* @description Main model (UNet, VAE, CLIP) to load
*/
model: components["schemas"]["MainModelField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default main_model_loader
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "main_model_loader";
};
2023-08-11 18:15:59 +00:00
/**
* Combine Masks
2023-08-11 18:15:59 +00:00
* @description Combine two masks together by multiplying them using `PIL.ImageChops.multiply()`.
*/
MaskCombineInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
2023-08-11 18:15:59 +00:00
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
2023-08-11 18:15:59 +00:00
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
2023-08-11 18:15:59 +00:00
/**
2023-08-22 05:15:00 +00:00
* Mask1
2023-08-11 18:15:59 +00:00
* @description The first mask to combine
*/
2023-08-16 01:59:19 +00:00
mask1?: components["schemas"]["ImageField"];
2023-08-11 18:15:59 +00:00
/**
2023-08-22 05:15:00 +00:00
* Mask2
2023-08-11 18:15:59 +00:00
* @description The second image to combine
*/
2023-08-16 01:59:19 +00:00
mask2?: components["schemas"]["ImageField"];
/**
* Type
* @default mask_combine
* @enum {string}
*/
type: "mask_combine";
2023-08-11 18:15:59 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* Mask Edge
* @description Applies an edge mask to an image
*/
MaskEdgeInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to apply the mask to
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Edge Size
* @description The size of the edge
*/
edge_size?: number;
/**
2023-08-22 05:15:00 +00:00
* Edge Blur
* @description The amount of blur on the edge
*/
edge_blur?: number;
/**
2023-08-22 05:15:00 +00:00
* Low Threshold
* @description First threshold for the hysteresis procedure in Canny edge detection
*/
low_threshold?: number;
/**
2023-08-22 05:15:00 +00:00
* High Threshold
* @description Second threshold for the hysteresis procedure in Canny edge detection
*/
high_threshold?: number;
/**
* Type
* @default mask_edge
* @enum {string}
*/
type: "mask_edge";
};
/**
2023-08-22 05:15:00 +00:00
* Mask from Alpha
* @description Extracts the alpha channel of an image as a mask.
*/
MaskFromAlphaInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Image
* @description The image to create the mask from
*/
2023-08-16 01:59:19 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Invert
* @description Whether or not to invert the mask
* @default false
*/
invert?: boolean;
/**
* Type
* @default tomask
* @enum {string}
*/
type: "tomask";
};
/**
2023-08-22 05:15:00 +00:00
* Mediapipe Face Processor
* @description Applies mediapipe face processing to image
*/
MediapipeFaceProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default mediapipe_face_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "mediapipe_face_processor";
/**
2023-08-22 05:15:00 +00:00
* Max Faces
* @description Maximum number of faces to detect
* @default 1
*/
max_faces?: number;
/**
2023-08-22 05:15:00 +00:00
* Min Confidence
* @description Minimum confidence for face detection
* @default 0.5
*/
min_confidence?: number;
};
/**
2023-08-22 05:15:00 +00:00
* MergeInterpolationMethod
* @description An enumeration.
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
MergeInterpolationMethod: "weighted_sum" | "sigmoid" | "inv_sigmoid" | "add_difference";
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Metadata Accumulator
2023-07-12 15:15:09 +00:00
* @description Outputs a Core Metadata Object
*/
MetadataAccumulatorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
2023-07-12 15:15:09 +00:00
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
2023-07-12 15:15:09 +00:00
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Generation Mode
2023-07-12 15:15:09 +00:00
* @description The generation mode that output this image
*/
generation_mode?: string;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Positive Prompt
2023-07-12 15:15:09 +00:00
* @description The positive prompt parameter
*/
positive_prompt?: string;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Negative Prompt
2023-07-12 15:15:09 +00:00
* @description The negative prompt parameter
*/
negative_prompt?: string;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Width
2023-07-12 15:15:09 +00:00
* @description The width parameter
*/
width?: number;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Height
2023-07-12 15:15:09 +00:00
* @description The height parameter
*/
height?: number;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Seed
2023-07-12 15:15:09 +00:00
* @description The seed used for noise generation
*/
seed?: number;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Rand Device
2023-07-12 15:15:09 +00:00
* @description The device used for random number generation
*/
rand_device?: string;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Cfg Scale
2023-07-12 15:15:09 +00:00
* @description The classifier-free guidance scale parameter
*/
cfg_scale?: number;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Steps
2023-07-12 15:15:09 +00:00
* @description The number of steps used for inference
*/
steps?: number;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Scheduler
2023-07-12 15:15:09 +00:00
* @description The scheduler used for inference
*/
scheduler?: string;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Clip Skip
2023-07-12 15:15:09 +00:00
* @description The number of skipped CLIP layers
*/
clip_skip?: number;
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Model
2023-07-12 15:15:09 +00:00
* @description The main model used for inference
*/
2023-08-16 01:59:19 +00:00
model?: components["schemas"]["MainModelField"];
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Controlnets
2023-07-12 15:15:09 +00:00
* @description The ControlNets used for inference
*/
2023-08-22 05:15:00 +00:00
controlnets?: components["schemas"]["ControlField"][];
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Loras
2023-07-12 15:15:09 +00:00
* @description The LoRAs used for inference
*/
2023-08-22 05:15:00 +00:00
loras?: components["schemas"]["LoRAMetadataField"][];
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Strength
2023-07-12 15:15:09 +00:00
* @description The strength used for latents-to-latents
*/
strength?: number;
/**
2023-08-22 05:15:00 +00:00
* Init Image
2023-07-12 15:15:09 +00:00
* @description The name of the initial image
*/
init_image?: string;
/**
2023-08-22 05:15:00 +00:00
* Vae
2023-07-12 15:15:09 +00:00
* @description The VAE used for decoding, if the main model's default was not used
*/
2023-08-16 01:59:19 +00:00
vae?: components["schemas"]["VAEModelField"];
/**
2023-08-22 05:15:00 +00:00
* Positive Style Prompt
* @description The positive style prompt parameter
*/
positive_style_prompt?: string;
/**
2023-08-22 05:15:00 +00:00
* Negative Style Prompt
* @description The negative style prompt parameter
*/
negative_style_prompt?: string;
/**
2023-08-22 05:15:00 +00:00
* Refiner Model
* @description The SDXL Refiner model used
*/
2023-08-16 01:59:19 +00:00
refiner_model?: components["schemas"]["MainModelField"];
/**
2023-08-22 05:15:00 +00:00
* Refiner Cfg Scale
* @description The classifier-free guidance scale parameter used for the refiner
*/
refiner_cfg_scale?: number;
/**
2023-08-22 05:15:00 +00:00
* Refiner Steps
* @description The number of steps used for the refiner
*/
refiner_steps?: number;
/**
2023-08-22 05:15:00 +00:00
* Refiner Scheduler
* @description The scheduler used for the refiner
*/
refiner_scheduler?: string;
/**
2023-09-02 01:36:07 +00:00
* Refiner Positive Aesthetic Score
* @description The aesthetic score used for the refiner
*/
2023-09-02 01:36:07 +00:00
refiner_positive_aesthetic_score?: number;
/**
2023-09-02 01:36:07 +00:00
* Refiner Negative Aesthetic Score
* @description The aesthetic score used for the refiner
*/
2023-09-02 01:36:07 +00:00
refiner_negative_aesthetic_score?: number;
/**
2023-08-22 05:15:00 +00:00
* Refiner Start
* @description The start value used for refiner denoising
*/
refiner_start?: number;
/**
* Type
* @default metadata_accumulator
* @enum {string}
*/
type: "metadata_accumulator";
2023-07-12 15:15:09 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* MetadataAccumulatorOutput
2023-07-12 15:15:09 +00:00
* @description The output of the MetadataAccumulator node
*/
MetadataAccumulatorOutput: {
/**
* Metadata
* @description The core metadata for the image
*/
metadata: components["schemas"]["CoreMetadata"];
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Type
* @default metadata_accumulator_output
2023-07-12 15:15:09 +00:00
* @enum {string}
*/
type: "metadata_accumulator_output";
2023-07-12 15:15:09 +00:00
};
/**
* Midas Depth Processor
* @description Applies Midas depth processing to image
*/
MidasDepthImageProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default midas_depth_image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "midas_depth_image_processor";
/**
2023-08-22 05:15:00 +00:00
* A Mult
* @description Midas parameter `a_mult` (a = a_mult * PI)
* @default 2
*/
a_mult?: number;
/**
2023-08-22 05:15:00 +00:00
* Bg Th
* @description Midas parameter `bg_th`
* @default 0.1
*/
bg_th?: number;
};
/**
2023-08-22 05:15:00 +00:00
* MLSD Processor
* @description Applies MLSD processing to image
*/
MlsdImageProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default mlsd_image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "mlsd_image_processor";
/**
2023-08-22 05:15:00 +00:00
* Detect Resolution
* @description Pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* Image Resolution
* @description Pixel resolution for output image
* @default 512
*/
image_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* Thr V
* @description MLSD parameter `thr_v`
* @default 0.1
*/
thr_v?: number;
/**
2023-08-22 05:15:00 +00:00
* Thr D
* @description MLSD parameter `thr_d`
* @default 0.1
*/
thr_d?: number;
};
/**
2023-08-22 05:15:00 +00:00
* ModelError
* @description An enumeration.
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
ModelError: "not_found";
/** ModelInfo */
ModelInfo: {
/**
2023-08-22 05:15:00 +00:00
* Model Name
* @description Info to load submodel
*/
model_name: string;
/** @description Base model */
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/** @description Info to load submodel */
2023-08-16 01:59:19 +00:00
model_type: components["schemas"]["ModelType"];
/** @description Info to load submodel */
2023-08-16 01:59:19 +00:00
submodel?: components["schemas"]["SubModelType"];
};
/**
2023-08-22 05:15:00 +00:00
* ModelLoaderOutput
* @description Model loader output
*/
ModelLoaderOutput: {
/**
2023-08-22 05:15:00 +00:00
* UNet
* @description UNet (scheduler, LoRAs)
*/
2023-08-16 01:59:19 +00:00
unet: components["schemas"]["UNetField"];
/**
2023-08-22 05:15:00 +00:00
* CLIP
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip: components["schemas"]["ClipField"];
/**
2023-08-22 05:15:00 +00:00
* VAE
* @description VAE
*/
2023-08-16 01:59:19 +00:00
vae: components["schemas"]["VaeField"];
/**
* Type
* @default model_loader_output
* @enum {string}
*/
type: "model_loader_output";
};
/**
2023-08-22 05:15:00 +00:00
* ModelType
* @description An enumeration.
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
ModelType: "onnx" | "main" | "vae" | "lora" | "controlnet" | "embedding";
/**
2023-08-22 05:15:00 +00:00
* ModelVariantType
* @description An enumeration.
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
ModelVariantType: "normal" | "inpaint" | "depth";
/** ModelsList */
ModelsList: {
/** Models */
2023-08-16 01:59:19 +00:00
models: (components["schemas"]["ONNXStableDiffusion1ModelConfig"] | components["schemas"]["StableDiffusion1ModelCheckpointConfig"] | components["schemas"]["StableDiffusion1ModelDiffusersConfig"] | components["schemas"]["VaeModelConfig"] | components["schemas"]["LoRAModelConfig"] | components["schemas"]["ControlNetModelCheckpointConfig"] | components["schemas"]["ControlNetModelDiffusersConfig"] | components["schemas"]["TextualInversionModelConfig"] | components["schemas"]["ONNXStableDiffusion2ModelConfig"] | components["schemas"]["StableDiffusion2ModelCheckpointConfig"] | components["schemas"]["StableDiffusion2ModelDiffusersConfig"] | components["schemas"]["StableDiffusionXLModelCheckpointConfig"] | components["schemas"]["StableDiffusionXLModelDiffusersConfig"])[];
};
/**
2023-08-22 05:15:00 +00:00
* Multiply Integers
* @description Multiplies two numbers
*/
MultiplyInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* A
* @description The first number
* @default 0
*/
a?: number;
/**
2023-08-22 05:15:00 +00:00
* B
* @description The second number
* @default 0
*/
b?: number;
/**
* Type
* @default mul
* @enum {string}
*/
type: "mul";
};
/**
2023-08-22 05:15:00 +00:00
* Noise
* @description Generates latent noise.
*/
NoiseInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Seed
* @description Seed for random number generation
*/
seed?: number;
/**
2023-08-22 05:15:00 +00:00
* Width
* @description Width of output (px)
* @default 512
*/
width?: number;
/**
2023-08-22 05:15:00 +00:00
* Height
* @description Height of output (px)
* @default 512
*/
height?: number;
2023-06-27 03:57:41 +00:00
/**
2023-08-22 05:15:00 +00:00
* Use Cpu
* @description Use CPU for noise generation (for reproducible results across platforms)
2023-06-27 03:57:41 +00:00
* @default true
*/
use_cpu?: boolean;
/**
* Type
* @default noise
* @enum {string}
*/
type: "noise";
};
/**
2023-08-22 05:15:00 +00:00
* NoiseOutput
* @description Invocation noise output
*/
NoiseOutput: {
/**
2023-08-22 05:15:00 +00:00
* Noise
* @description Noise tensor
*/
2023-08-16 01:59:19 +00:00
noise?: components["schemas"]["LatentsField"];
/**
2023-08-22 05:15:00 +00:00
* Width
* @description Width of output (px)
*/
width: number;
/**
2023-08-22 05:15:00 +00:00
* Height
* @description Height of output (px)
*/
height: number;
/**
* Type
* @default noise_output
* @enum {string}
*/
type: "noise_output";
};
/**
2023-08-22 05:15:00 +00:00
* Normal BAE Processor
* @description Applies NormalBae processing to image
*/
NormalbaeImageProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default normalbae_image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "normalbae_image_processor";
/**
2023-08-22 05:15:00 +00:00
* Detect Resolution
* @description Pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* Image Resolution
* @description Pixel resolution for output image
* @default 512
*/
image_resolution?: number;
};
/**
2023-08-22 05:15:00 +00:00
* ONNX Latents to Image
* @description Generates an image from latents.
*/
ONNXLatentsToImageInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Latents
* @description Denoised latents tensor
*/
2023-08-16 01:59:19 +00:00
latents?: components["schemas"]["LatentsField"];
/**
2023-08-22 05:15:00 +00:00
* Vae
* @description VAE
*/
2023-08-16 01:59:19 +00:00
vae?: components["schemas"]["VaeField"];
/**
2023-08-22 05:15:00 +00:00
* Metadata
* @description Optional core metadata to be written to image
*/
2023-08-16 01:59:19 +00:00
metadata?: components["schemas"]["CoreMetadata"];
/**
* Type
* @default l2i_onnx
* @enum {string}
*/
type: "l2i_onnx";
};
/**
2023-08-22 05:15:00 +00:00
* ONNXModelLoaderOutput
* @description Model loader output
*/
ONNXModelLoaderOutput: {
/**
2023-08-22 05:15:00 +00:00
* UNet
* @description UNet (scheduler, LoRAs)
*/
2023-08-16 01:59:19 +00:00
unet?: components["schemas"]["UNetField"];
/**
2023-08-22 05:15:00 +00:00
* CLIP
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip?: components["schemas"]["ClipField"];
/**
2023-08-22 05:15:00 +00:00
* VAE Decoder
* @description VAE
*/
2023-08-16 01:59:19 +00:00
vae_decoder?: components["schemas"]["VaeField"];
/**
2023-08-22 05:15:00 +00:00
* VAE Encoder
* @description VAE
*/
2023-08-16 01:59:19 +00:00
vae_encoder?: components["schemas"]["VaeField"];
/**
* Type
* @default model_loader_output_onnx
* @enum {string}
*/
type: "model_loader_output_onnx";
};
/**
2023-08-22 05:15:00 +00:00
* ONNX Prompt (Raw)
* @description A node to process inputs and produce outputs.
* May use dependency injection in __init__ to receive providers.
*
* All invocations must use the `@invocation` decorator to provide their unique type.
*/
ONNXPromptInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Prompt
* @description Raw prompt text (no parsing)
* @default
*/
prompt?: string;
/**
2023-08-22 05:15:00 +00:00
* Clip
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip?: components["schemas"]["ClipField"];
/**
* Type
* @default prompt_onnx
* @enum {string}
*/
type: "prompt_onnx";
};
/** ONNXStableDiffusion1ModelConfig */
ONNXStableDiffusion1ModelConfig: {
/** Model Name */
model_name: string;
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-08-22 05:15:00 +00:00
* Model Type
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_type: "onnx";
/** Path */
path: string;
/** Description */
description?: string;
2023-07-28 18:00:32 +00:00
/**
2023-08-22 05:15:00 +00:00
* Model Format
2023-07-28 18:00:32 +00:00
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_format: "onnx";
error?: components["schemas"]["ModelError"];
variant: components["schemas"]["ModelVariantType"];
};
/** ONNXStableDiffusion2ModelConfig */
ONNXStableDiffusion2ModelConfig: {
/** Model Name */
model_name: string;
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-08-22 05:15:00 +00:00
* Model Type
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_type: "onnx";
/** Path */
path: string;
/** Description */
description?: string;
2023-07-28 18:00:32 +00:00
/**
2023-08-22 05:15:00 +00:00
* Model Format
2023-07-28 18:00:32 +00:00
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_format: "onnx";
error?: components["schemas"]["ModelError"];
variant: components["schemas"]["ModelVariantType"];
prediction_type: components["schemas"]["SchedulerPredictionType"];
/** Upcast Attention */
upcast_attention: boolean;
};
/**
2023-08-22 05:15:00 +00:00
* ONNX Text to Latents
* @description Generates latents from conditionings.
*/
ONNXTextToLatentsInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Positive Conditioning
* @description Positive conditioning tensor
*/
2023-08-16 01:59:19 +00:00
positive_conditioning?: components["schemas"]["ConditioningField"];
/**
2023-08-22 05:15:00 +00:00
* Negative Conditioning
* @description Negative conditioning tensor
*/
2023-08-16 01:59:19 +00:00
negative_conditioning?: components["schemas"]["ConditioningField"];
/**
2023-08-22 05:15:00 +00:00
* Noise
* @description Noise tensor
*/
2023-08-16 01:59:19 +00:00
noise?: components["schemas"]["LatentsField"];
/**
2023-08-22 05:15:00 +00:00
* Steps
* @description Number of steps to run
* @default 10
*/
steps?: number;
/**
2023-08-22 05:15:00 +00:00
* Cfg Scale
* @description Classifier-Free Guidance scale
* @default 7.5
*/
2023-08-22 05:15:00 +00:00
cfg_scale?: number | number[];
2023-08-16 01:59:19 +00:00
/**
2023-08-22 05:15:00 +00:00
* Scheduler
* @description Scheduler to use during inference
* @default euler
2023-08-16 01:59:19 +00:00
* @enum {string}
*/
scheduler?: "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";
/**
2023-08-22 05:15:00 +00:00
* Precision
* @description Precision to use
* @default tensor(float16)
2023-08-16 01:59:19 +00:00
* @enum {string}
*/
precision?: "tensor(bool)" | "tensor(int8)" | "tensor(uint8)" | "tensor(int16)" | "tensor(uint16)" | "tensor(int32)" | "tensor(uint32)" | "tensor(int64)" | "tensor(uint64)" | "tensor(float16)" | "tensor(float)" | "tensor(double)";
/**
2023-08-22 05:15:00 +00:00
* Unet
* @description UNet (scheduler, LoRAs)
*/
2023-08-16 01:59:19 +00:00
unet?: components["schemas"]["UNetField"];
/**
2023-08-22 05:15:00 +00:00
* Control
* @description ControlNet(s) to apply
*/
2023-08-22 05:15:00 +00:00
control?: components["schemas"]["ControlField"] | components["schemas"]["ControlField"][];
/**
* Type
* @default t2l_onnx
* @enum {string}
*/
type: "t2l_onnx";
};
/**
2023-08-22 05:15:00 +00:00
* OffsetPaginatedResults[BoardDTO]
* @description Offset-paginated results
*/
OffsetPaginatedResults_BoardDTO_: {
/**
2023-08-22 05:15:00 +00:00
* Items
* @description Items
*/
2023-08-22 05:15:00 +00:00
items: components["schemas"]["BoardDTO"][];
/**
2023-08-22 05:15:00 +00:00
* Offset
* @description Offset from which to retrieve items
*/
offset: number;
/**
2023-08-22 05:15:00 +00:00
* Limit
* @description Limit of items to get
*/
limit: number;
/**
2023-08-22 05:15:00 +00:00
* Total
* @description Total number of items in result
*/
total: number;
};
/**
2023-08-22 05:15:00 +00:00
* OffsetPaginatedResults[ImageDTO]
* @description Offset-paginated results
*/
OffsetPaginatedResults_ImageDTO_: {
/**
2023-08-22 05:15:00 +00:00
* Items
* @description Items
*/
2023-08-22 05:15:00 +00:00
items: components["schemas"]["ImageDTO"][];
/**
2023-08-22 05:15:00 +00:00
* Offset
* @description Offset from which to retrieve items
*/
offset: number;
/**
2023-08-22 05:15:00 +00:00
* Limit
* @description Limit of items to get
*/
limit: number;
/**
2023-08-22 05:15:00 +00:00
* Total
* @description Total number of items in result
*/
total: number;
};
/**
2023-08-22 05:15:00 +00:00
* OnnxModelField
* @description Onnx model field
*/
OnnxModelField: {
/**
2023-08-22 05:15:00 +00:00
* Model Name
* @description Name of the model
*/
model_name: string;
/** @description Base model */
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/** @description Model Type */
2023-08-16 01:59:19 +00:00
model_type: components["schemas"]["ModelType"];
};
/**
2023-08-22 05:15:00 +00:00
* ONNX Main Model
* @description Loads a main model, outputting its submodels.
*/
OnnxModelLoaderInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Model
* @description ONNX Main model (UNet, VAE, CLIP) to load
*/
model: components["schemas"]["OnnxModelField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default onnx_model_loader
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "onnx_model_loader";
};
/**
2023-08-22 05:15:00 +00:00
* Openpose Processor
* @description Applies Openpose processing to image
*/
OpenposeImageProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default openpose_image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "openpose_image_processor";
/**
2023-08-22 05:15:00 +00:00
* Hand And Face
* @description Whether to use hands and face mode
* @default false
*/
hand_and_face?: boolean;
/**
2023-08-22 05:15:00 +00:00
* Detect Resolution
* @description Pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* Image Resolution
* @description Pixel resolution for output image
* @default 512
*/
image_resolution?: number;
};
/**
2023-08-22 05:15:00 +00:00
* PaginatedResults[GraphExecutionState]
* @description Paginated results
*/
PaginatedResults_GraphExecutionState_: {
/**
2023-08-22 05:15:00 +00:00
* Items
* @description Items
*/
2023-08-22 05:15:00 +00:00
items: components["schemas"]["GraphExecutionState"][];
/**
2023-08-22 05:15:00 +00:00
* Page
* @description Current Page
*/
page: number;
/**
2023-08-22 05:15:00 +00:00
* Pages
* @description Total number of pages
*/
pages: number;
/**
2023-08-22 05:15:00 +00:00
* Per Page
* @description Number of items per page
*/
per_page: number;
/**
2023-08-22 05:15:00 +00:00
* Total
* @description Total number of items in result
*/
total: number;
};
/**
2023-08-22 05:15:00 +00:00
* PIDI Processor
* @description Applies PIDI processing to image
*/
PidiImageProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default pidi_image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "pidi_image_processor";
/**
2023-08-22 05:15:00 +00:00
* Detect Resolution
* @description Pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* Image Resolution
* @description Pixel resolution for output image
* @default 512
*/
image_resolution?: number;
/**
2023-08-22 05:15:00 +00:00
* Safe
* @description Whether or not to use safe mode
* @default false
*/
safe?: boolean;
/**
2023-08-22 05:15:00 +00:00
* Scribble
* @description Whether or not to use scribble mode
* @default false
*/
scribble?: boolean;
};
/**
2023-08-22 05:15:00 +00:00
* Prompts from File
* @description Loads prompts from a text file
*/
PromptsFromFileInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* File Path
* @description Path to prompt text file
*/
file_path?: string;
/**
2023-08-22 05:15:00 +00:00
* Pre Prompt
* @description String to prepend to each prompt
*/
pre_prompt?: string;
/**
2023-08-22 05:15:00 +00:00
* Post Prompt
* @description String to append to each prompt
*/
post_prompt?: string;
/**
2023-08-22 05:15:00 +00:00
* Start Line
* @description Line in the file to start start from
* @default 1
*/
start_line?: number;
/**
2023-08-22 05:15:00 +00:00
* Max Prompts
* @description Max lines to read from file (0=all)
* @default 1
*/
max_prompts?: number;
/**
* Type
* @default prompt_from_file
* @enum {string}
*/
type: "prompt_from_file";
};
/**
2023-08-22 05:15:00 +00:00
* Random Integer
* @description Outputs a single random integer.
*/
RandomIntInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Low
* @description The inclusive low value
* @default 0
*/
low?: number;
/**
2023-08-22 05:15:00 +00:00
* High
* @description The exclusive high value
* @default 2147483647
*/
high?: number;
/**
* Type
* @default rand_int
* @enum {string}
*/
type: "rand_int";
};
/**
2023-08-22 05:15:00 +00:00
* Random Range
* @description Creates a collection of random numbers
*/
RandomRangeInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Low
* @description The inclusive low value
* @default 0
*/
low?: number;
/**
2023-08-22 05:15:00 +00:00
* High
* @description The exclusive high value
* @default 2147483647
*/
high?: number;
/**
2023-08-22 05:15:00 +00:00
* Size
* @description The number of values to generate
* @default 1
*/
size?: number;
/**
2023-08-22 05:15:00 +00:00
* Seed
* @description The seed for the RNG (omit for random)
*/
seed?: number;
/**
* Type
* @default random_range
* @enum {string}
*/
type: "random_range";
};
/**
2023-08-22 05:15:00 +00:00
* Integer Range
* @description Creates a range of numbers from start to stop with step
*/
RangeInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Start
* @description The start of the range
* @default 0
*/
start?: number;
/**
2023-08-22 05:15:00 +00:00
* Stop
* @description The stop of the range
* @default 10
*/
stop?: number;
/**
2023-08-22 05:15:00 +00:00
* Step
* @description The step of the range
* @default 1
*/
step?: number;
/**
* Type
* @default range
* @enum {string}
*/
type: "range";
};
/**
2023-08-22 05:15:00 +00:00
* Integer Range of Size
* @description Creates a range from start to start + size with step
*/
RangeOfSizeInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Start
* @description The start of the range
* @default 0
*/
start?: number;
/**
2023-08-22 05:15:00 +00:00
* Size
* @description The number of values
* @default 1
*/
size?: number;
/**
2023-08-22 05:15:00 +00:00
* Step
* @description The step of the range
* @default 1
*/
step?: number;
/**
* Type
* @default range_of_size
* @enum {string}
*/
type: "range_of_size";
};
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/** RemoveImagesFromBoardResult */
RemoveImagesFromBoardResult: {
/**
2023-08-22 05:15:00 +00:00
* Removed Image Names
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description The image names that were removed from their board
*/
2023-08-22 05:15:00 +00:00
removed_image_names: string[];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* Resize Latents
* @description Resizes latents to explicit width/height (in pixels). Provided dimensions are floor-divided by 8.
*/
ResizeLatentsInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Latents
* @description Latents tensor
*/
2023-08-16 01:59:19 +00:00
latents?: components["schemas"]["LatentsField"];
/**
2023-08-22 05:15:00 +00:00
* Width
* @description Width of output (px)
*/
width?: number;
/**
2023-08-22 05:15:00 +00:00
* Height
* @description Width of output (px)
*/
height?: number;
/**
2023-08-22 05:15:00 +00:00
* Mode
* @description Interpolation mode
* @default bilinear
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
mode?: "nearest" | "linear" | "bilinear" | "bicubic" | "trilinear" | "area" | "nearest-exact";
2023-07-13 05:22:18 +00:00
/**
2023-08-22 05:15:00 +00:00
* Antialias
* @description Whether or not to apply antialiasing (bilinear or bicubic only)
* @default false
*/
antialias?: boolean;
/**
* Type
* @default lresize
* @enum {string}
*/
type: "lresize";
};
/**
2023-08-22 05:15:00 +00:00
* ResourceOrigin
* @description The origin of a resource (eg image).
2023-08-22 05:15:00 +00:00
*
* - INTERNAL: The resource was created by the application.
* - EXTERNAL: The resource was not created by the application.
2023-08-22 05:15:00 +00:00
* This may be a user-initiated upload, or an internal application upload (eg Canvas init image).
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
ResourceOrigin: "internal" | "external";
/**
* SDXL Prompt
* @description Parse prompt using compel package to conditioning.
*/
SDXLCompelPromptInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Prompt
* @description Prompt to be parsed by Compel to create a conditioning tensor
* @default
*/
prompt?: string;
/**
2023-08-22 05:15:00 +00:00
* Style
* @description Prompt to be parsed by Compel to create a conditioning tensor
* @default
*/
style?: string;
/**
2023-08-22 05:15:00 +00:00
* Original Width
* @default 1024
*/
original_width?: number;
/**
2023-08-22 05:15:00 +00:00
* Original Height
* @default 1024
*/
original_height?: number;
/**
2023-08-22 05:15:00 +00:00
* Crop Top
* @default 0
*/
crop_top?: number;
/**
2023-08-22 05:15:00 +00:00
* Crop Left
* @default 0
*/
crop_left?: number;
/**
2023-08-22 05:15:00 +00:00
* Target Width
* @default 1024
*/
target_width?: number;
/**
2023-08-22 05:15:00 +00:00
* Target Height
* @default 1024
*/
target_height?: number;
/**
feat: polymorphic fields Initial support for polymorphic field types. Polymorphic types are a single of or list of a specific type. For example, `Union[str, list[str]]`. Polymorphics do not yet have support for direct input in the UI (will come in the future). They will be forcibly set as Connection-only fields, in which case users will not be able to provide direct input to the field. If a polymorphic should present as a singleton type - which would allow direct input - the node must provide an explicit type hint. For example, `DenoiseLatents`' `CFG Scale` is polymorphic, but in the node editor, we want to present this as a number input. In the node definition, the field is given `ui_type=UIType.Float`, which tells the UI to treat this as a `float` field. The connection validation logic will prevent connecting a collection to `CFG Scale` in this situation, because it is typed as `float`. The workaround is to disable validation from the settings to make this specific connection. A future improvement will resolve this. This also introduces better support for collection field types. Like polymorphics, collection types are parsed automatically by the client and do not need any specific type hints. Also like polymorphics, there is no support yet for direct input of collection types in the UI. - Disabling validation in workflow editor now displays the visual hints for valid connections, but lets you connect to anything. - Added `ui_order: int` to `InputField` and `OutputField`. The UI will use this, if present, to order fields in a node UI. See usage in `DenoiseLatents` for an example. - Updated the field colors - duplicate colors have just been lightened a bit. It's not perfect but it was a quick fix. - Field handles for collections are the same color as their single counterparts, but have a dark dot in the center of them. - Field handles for polymorphics are a rounded square with dot in the middle. - Removed all fields that just render `null` from `InputFieldRenderer`, replaced with a single fallback - Removed logic in `zValidatedWorkflow`, which checked for existence of node templates for each node in a workflow. This logic introduced a circular dependency, due to importing the global redux `store` in order to get the node templates within a zod schema. It's actually fine to just leave this out entirely; The case of a missing node template is handled by the UI. Fixing it otherwise would introduce a substantial headache. - Fixed the `ControlNetInvocation.control_model` field default, which was a string when it shouldn't have one.
2023-09-01 09:40:27 +00:00
* CLIP 1
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip?: components["schemas"]["ClipField"];
/**
feat: polymorphic fields Initial support for polymorphic field types. Polymorphic types are a single of or list of a specific type. For example, `Union[str, list[str]]`. Polymorphics do not yet have support for direct input in the UI (will come in the future). They will be forcibly set as Connection-only fields, in which case users will not be able to provide direct input to the field. If a polymorphic should present as a singleton type - which would allow direct input - the node must provide an explicit type hint. For example, `DenoiseLatents`' `CFG Scale` is polymorphic, but in the node editor, we want to present this as a number input. In the node definition, the field is given `ui_type=UIType.Float`, which tells the UI to treat this as a `float` field. The connection validation logic will prevent connecting a collection to `CFG Scale` in this situation, because it is typed as `float`. The workaround is to disable validation from the settings to make this specific connection. A future improvement will resolve this. This also introduces better support for collection field types. Like polymorphics, collection types are parsed automatically by the client and do not need any specific type hints. Also like polymorphics, there is no support yet for direct input of collection types in the UI. - Disabling validation in workflow editor now displays the visual hints for valid connections, but lets you connect to anything. - Added `ui_order: int` to `InputField` and `OutputField`. The UI will use this, if present, to order fields in a node UI. See usage in `DenoiseLatents` for an example. - Updated the field colors - duplicate colors have just been lightened a bit. It's not perfect but it was a quick fix. - Field handles for collections are the same color as their single counterparts, but have a dark dot in the center of them. - Field handles for polymorphics are a rounded square with dot in the middle. - Removed all fields that just render `null` from `InputFieldRenderer`, replaced with a single fallback - Removed logic in `zValidatedWorkflow`, which checked for existence of node templates for each node in a workflow. This logic introduced a circular dependency, due to importing the global redux `store` in order to get the node templates within a zod schema. It's actually fine to just leave this out entirely; The case of a missing node template is handled by the UI. Fixing it otherwise would introduce a substantial headache. - Fixed the `ControlNetInvocation.control_model` field default, which was a string when it shouldn't have one.
2023-09-01 09:40:27 +00:00
* CLIP 2
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip2?: components["schemas"]["ClipField"];
/**
* Type
* @default sdxl_compel_prompt
* @enum {string}
*/
type: "sdxl_compel_prompt";
};
/**
2023-08-22 05:15:00 +00:00
* SDXL LoRA
* @description Apply selected lora to unet and text_encoder.
*/
SDXLLoraLoaderInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* LoRA
* @description LoRA model to load
*/
2023-08-16 01:59:19 +00:00
lora: components["schemas"]["LoRAModelField"];
/**
2023-08-22 05:15:00 +00:00
* Weight
* @description The weight at which the LoRA is applied to each model
* @default 0.75
*/
weight?: number;
/**
feat: polymorphic fields Initial support for polymorphic field types. Polymorphic types are a single of or list of a specific type. For example, `Union[str, list[str]]`. Polymorphics do not yet have support for direct input in the UI (will come in the future). They will be forcibly set as Connection-only fields, in which case users will not be able to provide direct input to the field. If a polymorphic should present as a singleton type - which would allow direct input - the node must provide an explicit type hint. For example, `DenoiseLatents`' `CFG Scale` is polymorphic, but in the node editor, we want to present this as a number input. In the node definition, the field is given `ui_type=UIType.Float`, which tells the UI to treat this as a `float` field. The connection validation logic will prevent connecting a collection to `CFG Scale` in this situation, because it is typed as `float`. The workaround is to disable validation from the settings to make this specific connection. A future improvement will resolve this. This also introduces better support for collection field types. Like polymorphics, collection types are parsed automatically by the client and do not need any specific type hints. Also like polymorphics, there is no support yet for direct input of collection types in the UI. - Disabling validation in workflow editor now displays the visual hints for valid connections, but lets you connect to anything. - Added `ui_order: int` to `InputField` and `OutputField`. The UI will use this, if present, to order fields in a node UI. See usage in `DenoiseLatents` for an example. - Updated the field colors - duplicate colors have just been lightened a bit. It's not perfect but it was a quick fix. - Field handles for collections are the same color as their single counterparts, but have a dark dot in the center of them. - Field handles for polymorphics are a rounded square with dot in the middle. - Removed all fields that just render `null` from `InputFieldRenderer`, replaced with a single fallback - Removed logic in `zValidatedWorkflow`, which checked for existence of node templates for each node in a workflow. This logic introduced a circular dependency, due to importing the global redux `store` in order to get the node templates within a zod schema. It's actually fine to just leave this out entirely; The case of a missing node template is handled by the UI. Fixing it otherwise would introduce a substantial headache. - Fixed the `ControlNetInvocation.control_model` field default, which was a string when it shouldn't have one.
2023-09-01 09:40:27 +00:00
* UNet
* @description UNet (scheduler, LoRAs)
*/
2023-08-16 01:59:19 +00:00
unet?: components["schemas"]["UNetField"];
/**
2023-08-22 05:15:00 +00:00
* CLIP 1
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip?: components["schemas"]["ClipField"];
/**
2023-08-22 05:15:00 +00:00
* CLIP 2
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip2?: components["schemas"]["ClipField"];
/**
* Type
* @default sdxl_lora_loader
* @enum {string}
*/
type: "sdxl_lora_loader";
};
/**
2023-08-22 05:15:00 +00:00
* SDXLLoraLoaderOutput
* @description SDXL LoRA Loader Output
*/
SDXLLoraLoaderOutput: {
/**
2023-08-22 05:15:00 +00:00
* UNet
* @description UNet (scheduler, LoRAs)
*/
2023-08-16 01:59:19 +00:00
unet?: components["schemas"]["UNetField"];
/**
2023-08-22 05:15:00 +00:00
* CLIP 1
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip?: components["schemas"]["ClipField"];
/**
2023-08-22 05:15:00 +00:00
* CLIP 2
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip2?: components["schemas"]["ClipField"];
/**
* Type
* @default sdxl_lora_loader_output
* @enum {string}
*/
type: "sdxl_lora_loader_output";
};
/**
2023-08-22 05:15:00 +00:00
* SDXL Main Model
* @description Loads an sdxl base model, outputting its submodels.
*/
SDXLModelLoaderInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Model
* @description SDXL Main model (UNet, VAE, CLIP1, CLIP2) to load
*/
model: components["schemas"]["MainModelField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default sdxl_model_loader
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "sdxl_model_loader";
};
/**
2023-08-22 05:15:00 +00:00
* SDXLModelLoaderOutput
* @description SDXL base model loader output
*/
SDXLModelLoaderOutput: {
/**
2023-08-22 05:15:00 +00:00
* UNet
* @description UNet (scheduler, LoRAs)
*/
2023-08-16 01:59:19 +00:00
unet: components["schemas"]["UNetField"];
/**
2023-08-22 05:15:00 +00:00
* CLIP 1
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip: components["schemas"]["ClipField"];
/**
2023-08-22 05:15:00 +00:00
* CLIP 2
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip2: components["schemas"]["ClipField"];
/**
2023-08-22 05:15:00 +00:00
* VAE
* @description VAE
*/
2023-08-16 01:59:19 +00:00
vae: components["schemas"]["VaeField"];
/**
* Type
* @default sdxl_model_loader_output
* @enum {string}
*/
type: "sdxl_model_loader_output";
};
/**
* SDXL Refiner Prompt
* @description Parse prompt using compel package to conditioning.
*/
SDXLRefinerCompelPromptInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Style
* @description Prompt to be parsed by Compel to create a conditioning tensor
* @default
*/
style?: string;
/**
2023-08-22 05:15:00 +00:00
* Original Width
* @default 1024
*/
original_width?: number;
/**
2023-08-22 05:15:00 +00:00
* Original Height
* @default 1024
*/
original_height?: number;
/**
2023-08-22 05:15:00 +00:00
* Crop Top
* @default 0
*/
crop_top?: number;
/**
2023-08-22 05:15:00 +00:00
* Crop Left
* @default 0
*/
crop_left?: number;
/**
2023-08-22 05:15:00 +00:00
* Aesthetic Score
* @description The aesthetic score to apply to the conditioning tensor
* @default 6
*/
aesthetic_score?: number;
/**
2023-08-22 05:15:00 +00:00
* Clip2
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip2?: components["schemas"]["ClipField"];
/**
* Type
* @default sdxl_refiner_compel_prompt
* @enum {string}
*/
type: "sdxl_refiner_compel_prompt";
};
/**
2023-08-22 05:15:00 +00:00
* SDXL Refiner Model
* @description Loads an sdxl refiner model, outputting its submodels.
*/
SDXLRefinerModelLoaderInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Model
* @description SDXL Refiner Main Modde (UNet, VAE, CLIP2) to load
*/
model: components["schemas"]["MainModelField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default sdxl_refiner_model_loader
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "sdxl_refiner_model_loader";
};
/**
2023-08-22 05:15:00 +00:00
* SDXLRefinerModelLoaderOutput
* @description SDXL refiner model loader output
*/
SDXLRefinerModelLoaderOutput: {
/**
2023-08-22 05:15:00 +00:00
* UNet
* @description UNet (scheduler, LoRAs)
*/
2023-08-16 01:59:19 +00:00
unet: components["schemas"]["UNetField"];
/**
2023-08-22 05:15:00 +00:00
* CLIP 2
* @description CLIP (tokenizer, text encoder, LoRAs) and skipped layer count
*/
2023-08-16 01:59:19 +00:00
clip2: components["schemas"]["ClipField"];
/**
2023-08-22 05:15:00 +00:00
* VAE
* @description VAE
*/
2023-08-16 01:59:19 +00:00
vae: components["schemas"]["VaeField"];
/**
* Type
* @default sdxl_refiner_model_loader_output
* @enum {string}
*/
type: "sdxl_refiner_model_loader_output";
};
/**
2023-08-22 05:15:00 +00:00
* Scale Latents
* @description Scales latents by a given factor.
*/
ScaleLatentsInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Latents
* @description Latents tensor
*/
2023-08-16 01:59:19 +00:00
latents?: components["schemas"]["LatentsField"];
/**
2023-08-22 05:15:00 +00:00
* Scale Factor
* @description The factor by which to scale
*/
scale_factor?: number;
/**
2023-08-22 05:15:00 +00:00
* Mode
* @description Interpolation mode
* @default bilinear
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
mode?: "nearest" | "linear" | "bilinear" | "bicubic" | "trilinear" | "area" | "nearest-exact";
2023-07-13 05:22:18 +00:00
/**
2023-08-22 05:15:00 +00:00
* Antialias
* @description Whether or not to apply antialiasing (bilinear or bicubic only)
* @default false
*/
antialias?: boolean;
/**
* Type
* @default lscale
* @enum {string}
*/
type: "lscale";
};
2023-09-02 01:36:07 +00:00
/**
* Scheduler
* @description Selects a scheduler.
*/
SchedulerInvocation: {
/**
* 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;
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Scheduler
* @description Scheduler to use during inference
* @default euler
* @enum {string}
*/
scheduler?: "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";
/**
* Type
* @default scheduler
* @enum {string}
*/
type: "scheduler";
};
/**
* SchedulerOutput
* @description Base class for all invocation outputs.
*
* All invocation outputs must use the `@invocation_output` decorator to provide their unique type.
*/
SchedulerOutput: {
/**
* Scheduler
* @description Scheduler to use during inference
* @enum {string}
*/
scheduler: "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";
/**
* Type
* @default scheduler_output
* @enum {string}
*/
type: "scheduler_output";
};
/**
2023-08-22 05:15:00 +00:00
* SchedulerPredictionType
* @description An enumeration.
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
SchedulerPredictionType: "epsilon" | "v_prediction" | "sample";
2023-08-29 00:20:55 +00:00
/**
* Seamless
* @description Applies the seamless transformation to the Model UNet and VAE.
*/
SeamlessModeInvocation: {
/**
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
2023-08-29 00:20:55 +00:00
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
2023-08-29 00:20:55 +00:00
* @default false
*/
is_intermediate?: boolean;
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* UNet
* @description UNet (scheduler, LoRAs)
*/
unet?: components["schemas"]["UNetField"];
/**
* VAE
* @description VAE model to load
*/
vae?: components["schemas"]["VaeField"];
/**
* Seamless Y
* @description Specify whether Y axis is seamless
* @default true
*/
seamless_y?: boolean;
/**
* Seamless X
* @description Specify whether X axis is seamless
* @default true
*/
seamless_x?: boolean;
/**
* Type
* @default seamless
* @enum {string}
*/
type: "seamless";
2023-08-29 00:20:55 +00:00
};
/**
* SeamlessModeOutput
* @description Modified Seamless Model output
*/
SeamlessModeOutput: {
/**
* UNet
* @description UNet (scheduler, LoRAs)
*/
unet?: components["schemas"]["UNetField"];
/**
* VAE
* @description VAE
*/
vae?: components["schemas"]["VaeField"];
/**
* Type
* @default seamless_output
* @enum {string}
*/
type: "seamless_output";
2023-08-29 00:20:55 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* Segment Anything Processor
* @description Applies segment anything processing to image
*/
SegmentAnythingProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default segment_anything_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "segment_anything_processor";
};
/**
2023-08-22 05:15:00 +00:00
* Show Image
* @description Displays a provided image using the OS image viewer, and passes it forward in the pipeline.
*/
ShowImageInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to show
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default show_image
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "show_image";
};
/** StableDiffusion1ModelCheckpointConfig */
StableDiffusion1ModelCheckpointConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-08-22 05:15:00 +00:00
* Model Type
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_type: "main";
/** Path */
path: string;
/** Description */
description?: string;
/**
2023-08-22 05:15:00 +00:00
* Model Format
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_format: "checkpoint";
error?: components["schemas"]["ModelError"];
/** Vae */
vae?: string;
/** Config */
config: string;
2023-08-16 01:59:19 +00:00
variant: components["schemas"]["ModelVariantType"];
};
/** StableDiffusion1ModelDiffusersConfig */
StableDiffusion1ModelDiffusersConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-08-22 05:15:00 +00:00
* Model Type
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_type: "main";
/** Path */
path: string;
/** Description */
description?: string;
/**
2023-08-22 05:15:00 +00:00
* Model Format
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_format: "diffusers";
error?: components["schemas"]["ModelError"];
/** Vae */
vae?: string;
2023-08-16 01:59:19 +00:00
variant: components["schemas"]["ModelVariantType"];
};
/** StableDiffusion2ModelCheckpointConfig */
StableDiffusion2ModelCheckpointConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-08-22 05:15:00 +00:00
* Model Type
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_type: "main";
/** Path */
path: string;
/** Description */
description?: string;
/**
2023-08-22 05:15:00 +00:00
* Model Format
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_format: "checkpoint";
error?: components["schemas"]["ModelError"];
/** Vae */
vae?: string;
/** Config */
config: string;
2023-08-16 01:59:19 +00:00
variant: components["schemas"]["ModelVariantType"];
};
/** StableDiffusion2ModelDiffusersConfig */
StableDiffusion2ModelDiffusersConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-08-22 05:15:00 +00:00
* Model Type
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_type: "main";
/** Path */
path: string;
/** Description */
description?: string;
/**
2023-08-22 05:15:00 +00:00
* Model Format
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_format: "diffusers";
error?: components["schemas"]["ModelError"];
/** Vae */
vae?: string;
2023-08-16 01:59:19 +00:00
variant: components["schemas"]["ModelVariantType"];
};
/** StableDiffusionXLModelCheckpointConfig */
StableDiffusionXLModelCheckpointConfig: {
/** Model Name */
model_name: string;
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-08-22 05:15:00 +00:00
* Model Type
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_type: "main";
/** Path */
path: string;
/** Description */
description?: string;
/**
2023-08-22 05:15:00 +00:00
* Model Format
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_format: "checkpoint";
error?: components["schemas"]["ModelError"];
/** Vae */
vae?: string;
/** Config */
config: string;
2023-08-16 01:59:19 +00:00
variant: components["schemas"]["ModelVariantType"];
};
/** StableDiffusionXLModelDiffusersConfig */
StableDiffusionXLModelDiffusersConfig: {
/** Model Name */
model_name: string;
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-08-22 05:15:00 +00:00
* Model Type
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_type: "main";
/** Path */
path: string;
/** Description */
description?: string;
/**
2023-08-22 05:15:00 +00:00
* Model Format
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_format: "diffusers";
error?: components["schemas"]["ModelError"];
/** Vae */
vae?: string;
2023-08-16 01:59:19 +00:00
variant: components["schemas"]["ModelVariantType"];
};
/**
2023-08-22 05:15:00 +00:00
* Step Param Easing
* @description Experimental per-step parameter easing for denoising steps
*/
StepParamEasingInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
2023-08-16 01:59:19 +00:00
/**
2023-08-22 05:15:00 +00:00
* Easing
* @description The easing function to use
* @default Linear
2023-08-16 01:59:19 +00:00
* @enum {string}
*/
easing?: "Linear" | "QuadIn" | "QuadOut" | "QuadInOut" | "CubicIn" | "CubicOut" | "CubicInOut" | "QuarticIn" | "QuarticOut" | "QuarticInOut" | "QuinticIn" | "QuinticOut" | "QuinticInOut" | "SineIn" | "SineOut" | "SineInOut" | "CircularIn" | "CircularOut" | "CircularInOut" | "ExponentialIn" | "ExponentialOut" | "ExponentialInOut" | "ElasticIn" | "ElasticOut" | "ElasticInOut" | "BackIn" | "BackOut" | "BackInOut" | "BounceIn" | "BounceOut" | "BounceInOut";
/**
2023-08-22 05:15:00 +00:00
* Num Steps
* @description number of denoising steps
* @default 20
*/
num_steps?: number;
/**
2023-08-22 05:15:00 +00:00
* Start Value
* @description easing starting value
* @default 0
*/
start_value?: number;
/**
2023-08-22 05:15:00 +00:00
* End Value
* @description easing ending value
* @default 1
*/
end_value?: number;
/**
2023-08-22 05:15:00 +00:00
* Start Step Percent
* @description fraction of steps at which to start easing
* @default 0
*/
start_step_percent?: number;
/**
2023-08-22 05:15:00 +00:00
* End Step Percent
* @description fraction of steps after which to end easing
* @default 1
*/
end_step_percent?: number;
/**
2023-08-22 05:15:00 +00:00
* Pre Start Value
* @description value before easing start
*/
pre_start_value?: number;
/**
2023-08-22 05:15:00 +00:00
* Post End Value
* @description value after easing end
*/
post_end_value?: number;
/**
2023-08-22 05:15:00 +00:00
* Mirror
* @description include mirror of easing function
* @default false
*/
mirror?: boolean;
/**
2023-08-22 05:15:00 +00:00
* Show Easing Plot
* @description show easing plot
* @default false
*/
show_easing_plot?: boolean;
/**
* Type
* @default step_param_easing
* @enum {string}
*/
type: "step_param_easing";
};
/**
* String Collection Primitive
* @description A collection of string primitive values
*/
StringCollectionInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Collection
* @description The collection of string values
*/
collection?: string[];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default string_collection
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "string_collection";
};
/**
2023-08-22 05:15:00 +00:00
* StringCollectionOutput
* @description Base class for nodes that output a collection of strings
*/
StringCollectionOutput: {
/**
* Collection
* @description The output strings
*/
collection: string[];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default string_collection_output
* @enum {string}
*/
type: "string_collection_output";
};
/**
2023-08-22 05:15:00 +00:00
* String Primitive
* @description A string primitive value
*/
StringInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* Value
* @description The string value
* @default
*/
value?: string;
/**
* Type
* @default string
* @enum {string}
*/
type: "string";
};
/**
2023-08-22 05:15:00 +00:00
* StringOutput
* @description Base class for nodes that output a single string
*/
StringOutput: {
/**
* Value
* @description The output string
*/
value: string;
/**
2023-08-22 05:15:00 +00:00
* Type
* @default string_output
* @enum {string}
*/
type: "string_output";
};
/**
2023-08-22 05:15:00 +00:00
* SubModelType
* @description An enumeration.
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
SubModelType: "unet" | "text_encoder" | "text_encoder_2" | "tokenizer" | "tokenizer_2" | "vae" | "vae_decoder" | "vae_encoder" | "scheduler" | "safety_checker";
/**
2023-08-22 05:15:00 +00:00
* Subtract Integers
* @description Subtracts two numbers
*/
SubtractInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
2023-08-22 05:15:00 +00:00
* A
* @description The first number
* @default 0
*/
a?: number;
/**
2023-08-22 05:15:00 +00:00
* B
* @description The second number
* @default 0
*/
b?: number;
/**
* Type
* @default sub
* @enum {string}
*/
type: "sub";
};
/** TextualInversionModelConfig */
TextualInversionModelConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-08-22 05:15:00 +00:00
* Model Type
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_type: "embedding";
/** Path */
path: string;
/** Description */
description?: string;
/** Model Format */
model_format: null;
2023-08-16 01:59:19 +00:00
error?: components["schemas"]["ModelError"];
};
/**
2023-08-22 05:15:00 +00:00
* Tile Resample Processor
* @description Tile resampler processor
*/
TileResamplerProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default tile_image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "tile_image_processor";
/**
2023-08-22 05:15:00 +00:00
* Down Sampling Rate
* @description Down sampling rate
* @default 1
*/
down_sampling_rate?: number;
};
/** UNetField */
UNetField: {
/**
2023-08-22 05:15:00 +00:00
* Unet
* @description Info to load unet submodel
*/
2023-08-16 01:59:19 +00:00
unet: components["schemas"]["ModelInfo"];
/**
2023-08-22 05:15:00 +00:00
* Scheduler
* @description Info to load scheduler submodel
*/
2023-08-16 01:59:19 +00:00
scheduler: components["schemas"]["ModelInfo"];
/**
2023-08-22 05:15:00 +00:00
* Loras
* @description Loras to apply on model loading
*/
2023-08-22 05:15:00 +00:00
loras: components["schemas"]["LoraInfo"][];
2023-08-29 00:20:55 +00:00
/**
* Seamless Axes
* @description Axes("x" and "y") to which apply seamless
*/
2023-09-04 05:25:58 +00:00
seamless_axes?: string[];
};
/** Upscaler */
Upscaler: {
/**
2023-08-22 05:15:00 +00:00
* Upscaling Method
* @description Name of upscaling method
*/
upscaling_method: string;
/**
2023-08-22 05:15:00 +00:00
* Upscaling Models
* @description List of upscaling models for this method
*/
2023-08-22 05:15:00 +00:00
upscaling_models: string[];
};
2023-06-30 22:15:04 +00:00
/**
2023-08-22 05:15:00 +00:00
* VAEModelField
2023-06-30 22:15:04 +00:00
* @description Vae model field
*/
VAEModelField: {
/**
2023-08-22 05:15:00 +00:00
* Model Name
2023-06-30 22:15:04 +00:00
* @description Name of the model
*/
model_name: string;
/** @description Base model */
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
2023-06-30 22:15:04 +00:00
};
/** VaeField */
VaeField: {
/**
2023-08-22 05:15:00 +00:00
* Vae
* @description Info to load vae submodel
*/
2023-08-16 01:59:19 +00:00
vae: components["schemas"]["ModelInfo"];
2023-08-29 00:20:55 +00:00
/**
* Seamless Axes
* @description Axes("x" and "y") to which apply seamless
*/
2023-09-04 05:25:58 +00:00
seamless_axes?: string[];
};
2023-06-30 22:15:04 +00:00
/**
2023-08-22 05:15:00 +00:00
* VAE
2023-06-30 22:15:04 +00:00
* @description Loads a VAE model, outputting a VaeLoaderOutput
*/
VaeLoaderInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
2023-06-30 22:15:04 +00:00
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
2023-06-30 22:15:04 +00:00
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* VAE
* @description VAE model to load
*/
vae_model: components["schemas"]["VAEModelField"];
2023-06-30 22:15:04 +00:00
/**
2023-08-22 05:15:00 +00:00
* Type
* @default vae_loader
2023-06-30 22:15:04 +00:00
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "vae_loader";
2023-06-30 22:15:04 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* VaeLoaderOutput
* @description VAE output
2023-06-30 22:15:04 +00:00
*/
VaeLoaderOutput: {
/**
* VAE
* @description VAE
*/
vae: components["schemas"]["VaeField"];
2023-06-30 22:15:04 +00:00
/**
2023-08-22 05:15:00 +00:00
* Type
* @default vae_loader_output
2023-06-30 22:15:04 +00:00
* @enum {string}
*/
type: "vae_loader_output";
2023-06-30 22:15:04 +00:00
};
/** VaeModelConfig */
VaeModelConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-08-22 05:15:00 +00:00
* Model Type
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
model_type: "vae";
/** Path */
path: string;
/** Description */
description?: string;
2023-08-16 01:59:19 +00:00
model_format: components["schemas"]["VaeModelFormat"];
error?: components["schemas"]["ModelError"];
};
/**
2023-08-22 05:15:00 +00:00
* VaeModelFormat
* @description An enumeration.
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
VaeModelFormat: "checkpoint" | "diffusers";
/** ValidationError */
ValidationError: {
/** Location */
loc: (string | number)[];
/** Message */
msg: string;
/** Error Type */
type: string;
};
/**
2023-08-22 05:15:00 +00:00
* Zoe (Depth) Processor
* @description Applies Zoe depth processing to image
*/
ZoeDepthImageProcessorInvocation: {
/**
2023-08-22 05:15:00 +00:00
* Id
* @description The id of this instance of an invocation. Must be unique among all instances of invocations.
*/
id: string;
/**
2023-08-22 05:15:00 +00:00
* Is Intermediate
* @description Whether or not this is an intermediate invocation.
* @default false
*/
is_intermediate?: boolean;
2023-08-24 11:42:32 +00:00
/**
* Workflow
* @description The workflow to save with the image
*/
workflow?: string;
/**
* Image
* @description The image to process
*/
image?: components["schemas"]["ImageField"];
/**
2023-08-22 05:15:00 +00:00
* Type
* @default zoe_depth_image_processor
* @enum {string}
*/
2023-08-16 01:59:19 +00:00
type: "zoe_depth_image_processor";
};
/**
2023-08-22 05:15:00 +00:00
* UIConfigBase
2023-08-16 01:59:19 +00:00
* @description Provides additional node configuration to the UI.
* This is used internally by the @invocation decorator logic. Do not use this directly.
2023-08-16 01:59:19 +00:00
*/
UIConfigBase: {
/**
2023-08-22 05:15:00 +00:00
* Tags
* @description The node's tags
2023-08-16 01:59:19 +00:00
*/
2023-08-22 05:15:00 +00:00
tags?: string[];
2023-08-16 01:59:19 +00:00
/**
2023-08-22 05:15:00 +00:00
* Title
* @description The node's display name
2023-08-16 01:59:19 +00:00
*/
title?: string;
/**
* Category
* @description The node's category
*/
category?: string;
/**
* Version
* @description The node's version. Should be a valid semver string e.g. "1.0.0" or "3.8.13".
*/
version?: string;
2023-08-16 01:59:19 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* Input
2023-08-16 01:59:19 +00:00
* @description The type of input a field accepts.
* - `Input.Direct`: The field must have its value provided directly, when the invocation and field are instantiated.
* - `Input.Connection`: The field must have its value provided by a connection.
2023-08-22 05:15:00 +00:00
* - `Input.Any`: The field may have its value provided either directly or by a connection.
2023-08-16 01:59:19 +00:00
* @enum {string}
*/
Input: "connection" | "direct" | "any";
/**
2023-08-22 05:15:00 +00:00
* UIType
2023-08-16 01:59:19 +00:00
* @description Type hints for the UI.
2023-08-22 05:15:00 +00:00
* If a field should be provided a data type that does not exactly match the python type of the field, use this to provide the type that should be used instead. See the node development docs for detail on adding a new field type, which involves client-side changes.
2023-08-16 01:59:19 +00:00
* @enum {string}
*/
feat: polymorphic fields Initial support for polymorphic field types. Polymorphic types are a single of or list of a specific type. For example, `Union[str, list[str]]`. Polymorphics do not yet have support for direct input in the UI (will come in the future). They will be forcibly set as Connection-only fields, in which case users will not be able to provide direct input to the field. If a polymorphic should present as a singleton type - which would allow direct input - the node must provide an explicit type hint. For example, `DenoiseLatents`' `CFG Scale` is polymorphic, but in the node editor, we want to present this as a number input. In the node definition, the field is given `ui_type=UIType.Float`, which tells the UI to treat this as a `float` field. The connection validation logic will prevent connecting a collection to `CFG Scale` in this situation, because it is typed as `float`. The workaround is to disable validation from the settings to make this specific connection. A future improvement will resolve this. This also introduces better support for collection field types. Like polymorphics, collection types are parsed automatically by the client and do not need any specific type hints. Also like polymorphics, there is no support yet for direct input of collection types in the UI. - Disabling validation in workflow editor now displays the visual hints for valid connections, but lets you connect to anything. - Added `ui_order: int` to `InputField` and `OutputField`. The UI will use this, if present, to order fields in a node UI. See usage in `DenoiseLatents` for an example. - Updated the field colors - duplicate colors have just been lightened a bit. It's not perfect but it was a quick fix. - Field handles for collections are the same color as their single counterparts, but have a dark dot in the center of them. - Field handles for polymorphics are a rounded square with dot in the middle. - Removed all fields that just render `null` from `InputFieldRenderer`, replaced with a single fallback - Removed logic in `zValidatedWorkflow`, which checked for existence of node templates for each node in a workflow. This logic introduced a circular dependency, due to importing the global redux `store` in order to get the node templates within a zod schema. It's actually fine to just leave this out entirely; The case of a missing node template is handled by the UI. Fixing it otherwise would introduce a substantial headache. - Fixed the `ControlNetInvocation.control_model` field default, which was a string when it shouldn't have one.
2023-09-01 09:40:27 +00:00
UIType: "boolean" | "ColorField" | "ConditioningField" | "ControlField" | "float" | "ImageField" | "integer" | "LatentsField" | "string" | "BooleanCollection" | "ColorCollection" | "ConditioningCollection" | "ControlCollection" | "FloatCollection" | "ImageCollection" | "IntegerCollection" | "LatentsCollection" | "StringCollection" | "BooleanPolymorphic" | "ColorPolymorphic" | "ConditioningPolymorphic" | "ControlPolymorphic" | "FloatPolymorphic" | "ImagePolymorphic" | "IntegerPolymorphic" | "LatentsPolymorphic" | "StringPolymorphic" | "MainModelField" | "SDXLMainModelField" | "SDXLRefinerModelField" | "ONNXModelField" | "VaeModelField" | "LoRAModelField" | "ControlNetModelField" | "UNetField" | "VaeField" | "ClipField" | "Collection" | "CollectionItem" | "enum" | "Scheduler" | "WorkflowField" | "IsIntermediate" | "MetadataField";
2023-08-16 01:59:19 +00:00
/**
2023-08-22 05:15:00 +00:00
* UIComponent
* @description The type of UI component to use for a field, used to override the default components, which are inferred from the field type.
2023-08-16 01:59:19 +00:00
* @enum {string}
*/
UIComponent: "none" | "textarea" | "slider";
/**
2023-08-22 05:15:00 +00:00
* _InputField
2023-08-16 01:59:19 +00:00
* @description *DO NOT USE*
* This helper class is used to tell the client about our custom field attributes via OpenAPI
* schema generation, and Typescript type generation from that schema. It serves no functional
* purpose in the backend.
*/
_InputField: {
input: components["schemas"]["Input"];
/** Ui Hidden */
ui_hidden: boolean;
ui_type?: components["schemas"]["UIType"];
ui_component?: components["schemas"]["UIComponent"];
/** Ui Order */
ui_order?: number;
feat: polymorphic fields Initial support for polymorphic field types. Polymorphic types are a single of or list of a specific type. For example, `Union[str, list[str]]`. Polymorphics do not yet have support for direct input in the UI (will come in the future). They will be forcibly set as Connection-only fields, in which case users will not be able to provide direct input to the field. If a polymorphic should present as a singleton type - which would allow direct input - the node must provide an explicit type hint. For example, `DenoiseLatents`' `CFG Scale` is polymorphic, but in the node editor, we want to present this as a number input. In the node definition, the field is given `ui_type=UIType.Float`, which tells the UI to treat this as a `float` field. The connection validation logic will prevent connecting a collection to `CFG Scale` in this situation, because it is typed as `float`. The workaround is to disable validation from the settings to make this specific connection. A future improvement will resolve this. This also introduces better support for collection field types. Like polymorphics, collection types are parsed automatically by the client and do not need any specific type hints. Also like polymorphics, there is no support yet for direct input of collection types in the UI. - Disabling validation in workflow editor now displays the visual hints for valid connections, but lets you connect to anything. - Added `ui_order: int` to `InputField` and `OutputField`. The UI will use this, if present, to order fields in a node UI. See usage in `DenoiseLatents` for an example. - Updated the field colors - duplicate colors have just been lightened a bit. It's not perfect but it was a quick fix. - Field handles for collections are the same color as their single counterparts, but have a dark dot in the center of them. - Field handles for polymorphics are a rounded square with dot in the middle. - Removed all fields that just render `null` from `InputFieldRenderer`, replaced with a single fallback - Removed logic in `zValidatedWorkflow`, which checked for existence of node templates for each node in a workflow. This logic introduced a circular dependency, due to importing the global redux `store` in order to get the node templates within a zod schema. It's actually fine to just leave this out entirely; The case of a missing node template is handled by the UI. Fixing it otherwise would introduce a substantial headache. - Fixed the `ControlNetInvocation.control_model` field default, which was a string when it shouldn't have one.
2023-09-01 09:40:27 +00:00
/** Item Default */
item_default?: unknown;
2023-08-16 01:59:19 +00:00
};
/**
2023-08-22 05:15:00 +00:00
* _OutputField
2023-08-16 01:59:19 +00:00
* @description *DO NOT USE*
* This helper class is used to tell the client about our custom field attributes via OpenAPI
* schema generation, and Typescript type generation from that schema. It serves no functional
* purpose in the backend.
*/
_OutputField: {
/** Ui Hidden */
ui_hidden: boolean;
ui_type?: components["schemas"]["UIType"];
/** Ui Order */
ui_order?: number;
};
/**
2023-09-05 02:17:23 +00:00
* StableDiffusionXLModelFormat
* @description An enumeration.
* @enum {string}
*/
2023-09-05 02:17:23 +00:00
StableDiffusionXLModelFormat: "checkpoint" | "diffusers";
2023-09-04 05:25:58 +00:00
/**
2023-09-05 02:17:23 +00:00
* StableDiffusionOnnxModelFormat
2023-09-04 05:25:58 +00:00
* @description An enumeration.
* @enum {string}
*/
2023-09-05 02:17:23 +00:00
StableDiffusionOnnxModelFormat: "olive" | "onnx";
2023-08-11 18:15:59 +00:00
/**
2023-09-05 02:17:23 +00:00
* ControlNetModelFormat
2023-08-22 05:15:00 +00:00
* @description An enumeration.
* @enum {string}
*/
2023-09-05 02:17:23 +00:00
ControlNetModelFormat: "checkpoint" | "diffusers";
/**
* StableDiffusion2ModelFormat
2023-08-22 05:15:00 +00:00
* @description An enumeration.
* @enum {string}
*/
StableDiffusion2ModelFormat: "checkpoint" | "diffusers";
2023-08-29 00:20:55 +00:00
/**
2023-09-05 02:17:23 +00:00
* StableDiffusion1ModelFormat
2023-08-29 00:20:55 +00:00
* @description An enumeration.
* @enum {string}
*/
2023-09-05 02:17:23 +00:00
StableDiffusion1ModelFormat: "checkpoint" | "diffusers";
};
responses: never;
parameters: never;
requestBodies: never;
headers: never;
pathItems: never;
};
2023-08-22 05:15:00 +00:00
export type $defs = Record<string, never>;
export type external = Record<string, never>;
export type operations = {
2023-08-16 01:59:19 +00:00
/**
2023-08-22 05:15:00 +00:00
* List Sessions
* @description Gets a list of sessions, optionally searching
*/
list_sessions: {
parameters: {
query?: {
/** @description The page of results to get */
page?: number;
/** @description The number of results per page */
per_page?: number;
/** @description The query string to search for */
query?: string;
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["PaginatedResults_GraphExecutionState_"];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Create Session
* @description Creates a new session, optionally initializing it with an invocation graph
*/
create_session: {
requestBody?: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["Graph"];
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["GraphExecutionState"];
};
};
/** @description Invalid json */
2023-08-22 05:15:00 +00:00
400: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Get Session
* @description Gets a session
*/
get_session: {
parameters: {
path: {
/** @description The id of the session to get */
session_id: string;
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["GraphExecutionState"];
};
};
/** @description Session not found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Add Node
* @description Adds a node to the graph
*/
add_node: {
parameters: {
path: {
/** @description The id of the session */
session_id: string;
};
};
requestBody: {
content: {
2023-09-05 02:17:23 +00:00
"application/json": components["schemas"]["BooleanInvocation"] | components["schemas"]["BooleanCollectionInvocation"] | components["schemas"]["IntegerInvocation"] | components["schemas"]["IntegerCollectionInvocation"] | components["schemas"]["FloatInvocation"] | components["schemas"]["FloatCollectionInvocation"] | components["schemas"]["StringInvocation"] | components["schemas"]["StringCollectionInvocation"] | components["schemas"]["ImageInvocation"] | components["schemas"]["ImageCollectionInvocation"] | components["schemas"]["LatentsInvocation"] | components["schemas"]["LatentsCollectionInvocation"] | components["schemas"]["ColorInvocation"] | components["schemas"]["ConditioningInvocation"] | components["schemas"]["ConditioningCollectionInvocation"] | components["schemas"]["ControlNetInvocation"] | components["schemas"]["ImageProcessorInvocation"] | components["schemas"]["MainModelLoaderInvocation"] | components["schemas"]["LoraLoaderInvocation"] | components["schemas"]["SDXLLoraLoaderInvocation"] | components["schemas"]["VaeLoaderInvocation"] | components["schemas"]["SeamlessModeInvocation"] | components["schemas"]["MetadataAccumulatorInvocation"] | components["schemas"]["RangeInvocation"] | components["schemas"]["RangeOfSizeInvocation"] | components["schemas"]["RandomRangeInvocation"] | components["schemas"]["CompelInvocation"] | components["schemas"]["SDXLCompelPromptInvocation"] | components["schemas"]["SDXLRefinerCompelPromptInvocation"] | components["schemas"]["ClipSkipInvocation"] | components["schemas"]["CvInpaintInvocation"] | components["schemas"]["ShowImageInvocation"] | components["schemas"]["BlankImageInvocation"] | components["schemas"]["ImageCropInvocation"] | components["schemas"]["ImagePasteInvocation"] | components["schemas"]["MaskFromAlphaInvocation"] | components["schemas"]["ImageMultiplyInvocation"] | components["schemas"]["ImageChannelInvocation"] | components["schemas"]["ImageConvertInvocation"] | components["schemas"]["ImageBlurInvocation"] | components["schemas"]["ImageResizeInvocation"] | components["schemas"]["ImageScaleInvocation"] | components["schemas"]["ImageLerpInvocation"] | components["schemas"]["ImageInverseLerpInvocation"] | components["schemas"]["ImageNSFWBlurInvocation"] | components["schemas"]["ImageWatermarkInvocation"] | components["schemas"]["MaskEdgeInvocation"] | components["schemas"]["MaskCombineInvocation"] | components["schemas"]["ColorCorrectInvocation"] | components["schemas"]["ImageHueAdjustmentInvocation"] | components["schemas"]["ImageChannelOffsetInvocation"] | components["schemas"]["ImageChannelMultiplyInvocation"] | components["schemas"]["InfillColorInvocation"] | components["schemas"]["InfillTileInvocation"] | components["schemas"]["InfillPatchMatchInvocation"] | components["schemas"]["LaMaInfillInvocation"] | components["schemas"]["CV2InfillInvocation"] | components["schemas"]["SchedulerInvocation"] | components["schemas"]["CreateDenoiseMaskInvocation"] | components["schemas"]["DenoiseLatentsInvocation"] | components["schemas"]["LatentsToImageInvocation"] | components["schemas"]["ResizeLatentsInvocation"] | components["schemas"]["ScaleLatentsInvocation"] | components["schemas"]["ImageToLatentsInvocation"] | components["schemas"]["BlendLatentsInvocation"] | components["schemas"]["AddInvocation"] | components["schemas"]["SubtractInvocation"] | components["schemas"]["MultiplyInvocation"] | components["schemas"]["DivideInvocation"] | components["schemas"]["RandomIntInvocation"] | components["schemas"]["NoiseInvocation"] | components["schemas"]["ONNXPromptInvocation"] | components["schemas"]["ONNXTextToLatentsInvocation"] | components["schemas"]["ONNXLatentsToImageInvocation"] | components["schemas"]["OnnxModelLoaderInvocation"] | components["schemas"]["FloatLinearRangeInvocation"] | components["schemas"]["StepParamEasingInvocation"] | components["schemas"]["DynamicPromptInvocation"] | components["schemas"]["PromptsFromFileInvocation"] | components["schemas"]["SDXLModelLoaderInvocation"] | components["schemas"]["SDXLRefinerModelLoaderInvocation"] | components[
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": string;
};
};
/** @description Invalid node or link */
2023-08-22 05:15:00 +00:00
400: {
content: never;
};
/** @description Session not found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Update Node
* @description Updates a node in the graph and removes all linked edges
*/
update_node: {
parameters: {
path: {
/** @description The id of the session */
session_id: string;
/** @description The path to the node in the graph */
node_path: string;
};
};
requestBody: {
content: {
2023-09-05 02:17:23 +00:00
"application/json": components["schemas"]["BooleanInvocation"] | components["schemas"]["BooleanCollectionInvocation"] | components["schemas"]["IntegerInvocation"] | components["schemas"]["IntegerCollectionInvocation"] | components["schemas"]["FloatInvocation"] | components["schemas"]["FloatCollectionInvocation"] | components["schemas"]["StringInvocation"] | components["schemas"]["StringCollectionInvocation"] | components["schemas"]["ImageInvocation"] | components["schemas"]["ImageCollectionInvocation"] | components["schemas"]["LatentsInvocation"] | components["schemas"]["LatentsCollectionInvocation"] | components["schemas"]["ColorInvocation"] | components["schemas"]["ConditioningInvocation"] | components["schemas"]["ConditioningCollectionInvocation"] | components["schemas"]["ControlNetInvocation"] | components["schemas"]["ImageProcessorInvocation"] | components["schemas"]["MainModelLoaderInvocation"] | components["schemas"]["LoraLoaderInvocation"] | components["schemas"]["SDXLLoraLoaderInvocation"] | components["schemas"]["VaeLoaderInvocation"] | components["schemas"]["SeamlessModeInvocation"] | components["schemas"]["MetadataAccumulatorInvocation"] | components["schemas"]["RangeInvocation"] | components["schemas"]["RangeOfSizeInvocation"] | components["schemas"]["RandomRangeInvocation"] | components["schemas"]["CompelInvocation"] | components["schemas"]["SDXLCompelPromptInvocation"] | components["schemas"]["SDXLRefinerCompelPromptInvocation"] | components["schemas"]["ClipSkipInvocation"] | components["schemas"]["CvInpaintInvocation"] | components["schemas"]["ShowImageInvocation"] | components["schemas"]["BlankImageInvocation"] | components["schemas"]["ImageCropInvocation"] | components["schemas"]["ImagePasteInvocation"] | components["schemas"]["MaskFromAlphaInvocation"] | components["schemas"]["ImageMultiplyInvocation"] | components["schemas"]["ImageChannelInvocation"] | components["schemas"]["ImageConvertInvocation"] | components["schemas"]["ImageBlurInvocation"] | components["schemas"]["ImageResizeInvocation"] | components["schemas"]["ImageScaleInvocation"] | components["schemas"]["ImageLerpInvocation"] | components["schemas"]["ImageInverseLerpInvocation"] | components["schemas"]["ImageNSFWBlurInvocation"] | components["schemas"]["ImageWatermarkInvocation"] | components["schemas"]["MaskEdgeInvocation"] | components["schemas"]["MaskCombineInvocation"] | components["schemas"]["ColorCorrectInvocation"] | components["schemas"]["ImageHueAdjustmentInvocation"] | components["schemas"]["ImageChannelOffsetInvocation"] | components["schemas"]["ImageChannelMultiplyInvocation"] | components["schemas"]["InfillColorInvocation"] | components["schemas"]["InfillTileInvocation"] | components["schemas"]["InfillPatchMatchInvocation"] | components["schemas"]["LaMaInfillInvocation"] | components["schemas"]["CV2InfillInvocation"] | components["schemas"]["SchedulerInvocation"] | components["schemas"]["CreateDenoiseMaskInvocation"] | components["schemas"]["DenoiseLatentsInvocation"] | components["schemas"]["LatentsToImageInvocation"] | components["schemas"]["ResizeLatentsInvocation"] | components["schemas"]["ScaleLatentsInvocation"] | components["schemas"]["ImageToLatentsInvocation"] | components["schemas"]["BlendLatentsInvocation"] | components["schemas"]["AddInvocation"] | components["schemas"]["SubtractInvocation"] | components["schemas"]["MultiplyInvocation"] | components["schemas"]["DivideInvocation"] | components["schemas"]["RandomIntInvocation"] | components["schemas"]["NoiseInvocation"] | components["schemas"]["ONNXPromptInvocation"] | components["schemas"]["ONNXTextToLatentsInvocation"] | components["schemas"]["ONNXLatentsToImageInvocation"] | components["schemas"]["OnnxModelLoaderInvocation"] | components["schemas"]["FloatLinearRangeInvocation"] | components["schemas"]["StepParamEasingInvocation"] | components["schemas"]["DynamicPromptInvocation"] | components["schemas"]["PromptsFromFileInvocation"] | components["schemas"]["SDXLModelLoaderInvocation"] | components["schemas"]["SDXLRefinerModelLoaderInvocation"] | components[
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["GraphExecutionState"];
};
};
/** @description Invalid node or link */
2023-08-22 05:15:00 +00:00
400: {
content: never;
};
/** @description Session not found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Delete Node
* @description Deletes a node in the graph and removes all linked edges
*/
delete_node: {
parameters: {
path: {
/** @description The id of the session */
session_id: string;
/** @description The path to the node to delete */
node_path: string;
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["GraphExecutionState"];
};
};
/** @description Invalid node or link */
2023-08-22 05:15:00 +00:00
400: {
content: never;
};
/** @description Session not found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Add Edge
* @description Adds an edge to the graph
*/
add_edge: {
parameters: {
path: {
/** @description The id of the session */
session_id: string;
};
};
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["Edge"];
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["GraphExecutionState"];
};
};
/** @description Invalid node or link */
2023-08-22 05:15:00 +00:00
400: {
content: never;
};
/** @description Session not found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Delete Edge
* @description Deletes an edge from the graph
*/
delete_edge: {
parameters: {
path: {
/** @description The id of the session */
session_id: string;
/** @description The id of the node the edge is coming from */
from_node_id: string;
/** @description The field of the node the edge is coming from */
from_field: string;
/** @description The id of the node the edge is going to */
to_node_id: string;
/** @description The field of the node the edge is going to */
to_field: string;
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["GraphExecutionState"];
};
};
/** @description Invalid node or link */
2023-08-22 05:15:00 +00:00
400: {
content: never;
};
/** @description Session not found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Invoke Session
* @description Invokes a session
*/
invoke_session: {
parameters: {
query?: {
/** @description Whether or not to invoke all remaining invocations */
all?: boolean;
};
path: {
/** @description The id of the session to invoke */
session_id: string;
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": unknown;
};
};
/** @description The invocation is queued */
2023-08-22 05:15:00 +00:00
202: {
content: never;
};
/** @description The session has no invocations ready to invoke */
2023-08-22 05:15:00 +00:00
400: {
content: never;
};
/** @description Session not found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Cancel Session Invoke
* @description Invokes a session
*/
cancel_session_invoke: {
parameters: {
path: {
/** @description The id of the session to cancel */
session_id: string;
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": unknown;
};
};
/** @description The invocation is canceled */
2023-08-22 05:15:00 +00:00
202: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* List Models
* @description Gets a list of models
*/
list_models: {
parameters: {
query?: {
/** @description Base models to include */
2023-08-22 05:15:00 +00:00
base_models?: components["schemas"]["BaseModelType"][];
/** @description The type of model to get */
2023-08-16 01:59:19 +00:00
model_type?: components["schemas"]["ModelType"];
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ModelsList"];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Delete Model
* @description Delete Model
*/
del_model: {
parameters: {
path: {
/** @description Base model */
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/** @description The type of model */
2023-08-16 01:59:19 +00:00
model_type: components["schemas"]["ModelType"];
/** @description model name */
model_name: string;
};
};
responses: {
/** @description Model deleted successfully */
2023-08-22 05:15:00 +00:00
204: {
content: never;
};
/** @description Model not found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
2023-07-04 05:04:01 +00:00
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
2023-07-04 05:04:01 +00:00
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Update Model
2023-07-17 01:50:35 +00:00
* @description Update model contents with a new config. If the model name or base fields are changed, then the model is renamed.
2023-07-04 05:04:01 +00:00
*/
update_model: {
2023-07-04 05:04:01 +00:00
parameters: {
path: {
/** @description Base model */
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/** @description The type of model */
2023-08-16 01:59:19 +00:00
model_type: components["schemas"]["ModelType"];
/** @description model name */
model_name: string;
};
};
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ONNXStableDiffusion1ModelConfig"] | components["schemas"]["StableDiffusion1ModelCheckpointConfig"] | components["schemas"]["StableDiffusion1ModelDiffusersConfig"] | components["schemas"]["VaeModelConfig"] | components["schemas"]["LoRAModelConfig"] | components["schemas"]["ControlNetModelCheckpointConfig"] | components["schemas"]["ControlNetModelDiffusersConfig"] | components["schemas"]["TextualInversionModelConfig"] | components["schemas"]["ONNXStableDiffusion2ModelConfig"] | components["schemas"]["StableDiffusion2ModelCheckpointConfig"] | components["schemas"]["StableDiffusion2ModelDiffusersConfig"] | components["schemas"]["StableDiffusionXLModelCheckpointConfig"] | components["schemas"]["StableDiffusionXLModelDiffusersConfig"];
2023-07-04 05:04:01 +00:00
};
};
responses: {
/** @description The model was updated successfully */
200: {
2023-07-04 05:04:01 +00:00
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ONNXStableDiffusion1ModelConfig"] | components["schemas"]["StableDiffusion1ModelCheckpointConfig"] | components["schemas"]["StableDiffusion1ModelDiffusersConfig"] | components["schemas"]["VaeModelConfig"] | components["schemas"]["LoRAModelConfig"] | components["schemas"]["ControlNetModelCheckpointConfig"] | components["schemas"]["ControlNetModelDiffusersConfig"] | components["schemas"]["TextualInversionModelConfig"] | components["schemas"]["ONNXStableDiffusion2ModelConfig"] | components["schemas"]["StableDiffusion2ModelCheckpointConfig"] | components["schemas"]["StableDiffusion2ModelDiffusersConfig"] | components["schemas"]["StableDiffusionXLModelCheckpointConfig"] | components["schemas"]["StableDiffusionXLModelDiffusersConfig"];
};
};
/** @description Bad request */
2023-08-22 05:15:00 +00:00
400: {
content: never;
};
2023-07-04 05:04:01 +00:00
/** @description The model could not be found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
2023-07-17 01:50:35 +00:00
/** @description There is already a model corresponding to the new name */
2023-08-22 05:15:00 +00:00
409: {
content: never;
};
2023-07-15 15:06:57 +00:00
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
2023-07-15 15:06:57 +00:00
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Import Model
2023-07-15 15:06:57 +00:00
* @description Add a model using its local path, repo_id, or remote URL. Model characteristics will be probed and configured automatically
*/
import_model: {
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["Body_import_model"];
};
};
responses: {
/** @description The model imported successfully */
201: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ONNXStableDiffusion1ModelConfig"] | components["schemas"]["StableDiffusion1ModelCheckpointConfig"] | components["schemas"]["StableDiffusion1ModelDiffusersConfig"] | components["schemas"]["VaeModelConfig"] | components["schemas"]["LoRAModelConfig"] | components["schemas"]["ControlNetModelCheckpointConfig"] | components["schemas"]["ControlNetModelDiffusersConfig"] | components["schemas"]["TextualInversionModelConfig"] | components["schemas"]["ONNXStableDiffusion2ModelConfig"] | components["schemas"]["StableDiffusion2ModelCheckpointConfig"] | components["schemas"]["StableDiffusion2ModelDiffusersConfig"] | components["schemas"]["StableDiffusionXLModelCheckpointConfig"] | components["schemas"]["StableDiffusionXLModelDiffusersConfig"];
};
};
/** @description The model could not be found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
/** @description There is already a model corresponding to this path or repo_id */
2023-08-22 05:15:00 +00:00
409: {
content: never;
};
2023-07-18 03:18:31 +00:00
/** @description Unrecognized file/folder format */
2023-08-22 05:15:00 +00:00
415: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
/** @description The model appeared to import successfully, but could not be found in the model manager */
2023-08-22 05:15:00 +00:00
424: {
content: never;
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Add Model
2023-07-15 15:06:57 +00:00
* @description Add a model using the configuration information appropriate for its type. Only local models can be added by path
*/
2023-07-15 15:06:57 +00:00
add_model: {
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ONNXStableDiffusion1ModelConfig"] | components["schemas"]["StableDiffusion1ModelCheckpointConfig"] | components["schemas"]["StableDiffusion1ModelDiffusersConfig"] | components["schemas"]["VaeModelConfig"] | components["schemas"]["LoRAModelConfig"] | components["schemas"]["ControlNetModelCheckpointConfig"] | components["schemas"]["ControlNetModelDiffusersConfig"] | components["schemas"]["TextualInversionModelConfig"] | components["schemas"]["ONNXStableDiffusion2ModelConfig"] | components["schemas"]["StableDiffusion2ModelCheckpointConfig"] | components["schemas"]["StableDiffusion2ModelDiffusersConfig"] | components["schemas"]["StableDiffusionXLModelCheckpointConfig"] | components["schemas"]["StableDiffusionXLModelDiffusersConfig"];
};
};
responses: {
2023-07-15 15:06:57 +00:00
/** @description The model added successfully */
201: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ONNXStableDiffusion1ModelConfig"] | components["schemas"]["StableDiffusion1ModelCheckpointConfig"] | components["schemas"]["StableDiffusion1ModelDiffusersConfig"] | components["schemas"]["VaeModelConfig"] | components["schemas"]["LoRAModelConfig"] | components["schemas"]["ControlNetModelCheckpointConfig"] | components["schemas"]["ControlNetModelDiffusersConfig"] | components["schemas"]["TextualInversionModelConfig"] | components["schemas"]["ONNXStableDiffusion2ModelConfig"] | components["schemas"]["StableDiffusion2ModelCheckpointConfig"] | components["schemas"]["StableDiffusion2ModelDiffusersConfig"] | components["schemas"]["StableDiffusionXLModelCheckpointConfig"] | components["schemas"]["StableDiffusionXLModelDiffusersConfig"];
2023-07-04 05:04:01 +00:00
};
};
2023-07-15 15:06:57 +00:00
/** @description The model could not be found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
2023-07-15 15:06:57 +00:00
/** @description There is already a model corresponding to this path or repo_id */
2023-08-22 05:15:00 +00:00
409: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
2023-07-15 15:06:57 +00:00
/** @description The model appeared to add successfully, but could not be found in the model manager */
2023-08-22 05:15:00 +00:00
424: {
content: never;
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Convert Model
2023-07-15 15:06:57 +00:00
* @description Convert a checkpoint model into a diffusers model, optionally saving to the indicated destination directory, or `models` if none.
*/
convert_model: {
parameters: {
2023-07-15 15:06:57 +00:00
query?: {
/** @description Save the converted model to the designated directory */
convert_dest_directory?: string;
};
path: {
/** @description Base model */
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
/** @description The type of model */
2023-08-16 01:59:19 +00:00
model_type: components["schemas"]["ModelType"];
/** @description model name */
model_name: string;
};
};
responses: {
/** @description Model converted successfully */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ONNXStableDiffusion1ModelConfig"] | components["schemas"]["StableDiffusion1ModelCheckpointConfig"] | components["schemas"]["StableDiffusion1ModelDiffusersConfig"] | components["schemas"]["VaeModelConfig"] | components["schemas"]["LoRAModelConfig"] | components["schemas"]["ControlNetModelCheckpointConfig"] | components["schemas"]["ControlNetModelDiffusersConfig"] | components["schemas"]["TextualInversionModelConfig"] | components["schemas"]["ONNXStableDiffusion2ModelConfig"] | components["schemas"]["StableDiffusion2ModelCheckpointConfig"] | components["schemas"]["StableDiffusion2ModelDiffusersConfig"] | components["schemas"]["StableDiffusionXLModelCheckpointConfig"] | components["schemas"]["StableDiffusionXLModelDiffusersConfig"];
};
};
/** @description Bad request */
2023-08-22 05:15:00 +00:00
400: {
content: never;
};
/** @description Model not found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
2023-07-15 15:06:57 +00:00
/** Search For Models */
search_for_models: {
parameters: {
query: {
/** @description Directory path to search for models */
search_path: string;
};
};
responses: {
/** @description Directory searched successfully */
200: {
content: {
2023-08-22 05:15:00 +00:00
"application/json": string[];
2023-07-15 15:06:57 +00:00
};
};
/** @description Invalid directory path */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
2023-07-15 15:06:57 +00:00
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
2023-07-15 15:06:57 +00:00
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* List Ckpt Configs
2023-07-15 15:06:57 +00:00
* @description Return a list of the legacy checkpoint configuration files stored in `ROOT/configs/stable-diffusion`, relative to ROOT.
*/
list_ckpt_configs: {
responses: {
/** @description paths retrieved successfully */
200: {
content: {
2023-08-22 05:15:00 +00:00
"application/json": string[];
2023-07-15 15:06:57 +00:00
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Sync To Config
2023-07-15 15:06:57 +00:00
* @description Call after making changes to models.yaml, autoimport directories or models directory to synchronize
* in-memory data structures with disk data structures.
*/
sync_to_config: {
responses: {
/** @description synchronization successful */
201: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": boolean;
2023-07-15 15:06:57 +00:00
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Merge Models
* @description Convert a checkpoint model into a diffusers model
*/
merge_models: {
parameters: {
path: {
/** @description Base model */
2023-08-16 01:59:19 +00:00
base_model: components["schemas"]["BaseModelType"];
};
};
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["Body_merge_models"];
};
};
responses: {
/** @description Model converted successfully */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ONNXStableDiffusion1ModelConfig"] | components["schemas"]["StableDiffusion1ModelCheckpointConfig"] | components["schemas"]["StableDiffusion1ModelDiffusersConfig"] | components["schemas"]["VaeModelConfig"] | components["schemas"]["LoRAModelConfig"] | components["schemas"]["ControlNetModelCheckpointConfig"] | components["schemas"]["ControlNetModelDiffusersConfig"] | components["schemas"]["TextualInversionModelConfig"] | components["schemas"]["ONNXStableDiffusion2ModelConfig"] | components["schemas"]["StableDiffusion2ModelCheckpointConfig"] | components["schemas"]["StableDiffusion2ModelDiffusersConfig"] | components["schemas"]["StableDiffusionXLModelCheckpointConfig"] | components["schemas"]["StableDiffusionXLModelDiffusersConfig"];
};
};
/** @description Incompatible models */
2023-08-22 05:15:00 +00:00
400: {
content: never;
};
/** @description One or more models not found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Upload Image
* @description Uploads an image
*/
upload_image: {
parameters: {
query: {
/** @description The category of the image */
2023-08-16 01:59:19 +00:00
image_category: components["schemas"]["ImageCategory"];
/** @description Whether this is an intermediate image */
is_intermediate: boolean;
2023-07-21 07:45:12 +00:00
/** @description The board to add this image to, if any */
board_id?: string;
/** @description The session ID associated with this upload, if any */
session_id?: string;
/** @description Whether to crop the image */
crop_visible?: boolean;
};
};
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"multipart/form-data": components["schemas"]["Body_upload_image"];
};
};
responses: {
/** @description The image was uploaded successfully */
201: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ImageDTO"];
};
};
/** @description Image upload failed */
2023-08-22 05:15:00 +00:00
415: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Get Image Dto
2023-07-12 15:15:09 +00:00
* @description Gets an image's DTO
*/
2023-07-12 15:15:09 +00:00
get_image_dto: {
parameters: {
path: {
2023-07-12 15:15:09 +00:00
/** @description The name of image to get */
image_name: string;
};
};
responses: {
2023-07-12 15:15:09 +00:00
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ImageDTO"];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Delete Image
* @description Deletes an image
*/
delete_image: {
parameters: {
path: {
/** @description The name of the image to delete */
image_name: string;
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": unknown;
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Update Image
* @description Updates an image
*/
update_image: {
parameters: {
path: {
/** @description The name of the image to update */
image_name: string;
};
};
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ImageRecordChanges"];
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ImageDTO"];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Clear Intermediates
* @description Clears all intermediates
*/
clear_intermediates: {
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": unknown;
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Get Image Metadata
* @description Gets an image's metadata
*/
get_image_metadata: {
parameters: {
path: {
/** @description The name of image to get */
image_name: string;
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ImageMetadata"];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
2023-07-12 15:15:09 +00:00
/**
2023-08-22 05:15:00 +00:00
* Get Image Full
2023-07-12 15:15:09 +00:00
* @description Gets a full-resolution image file
*/
get_image_full: {
parameters: {
path: {
/** @description The name of full-resolution image file to get */
image_name: string;
};
};
responses: {
/** @description Return the full-resolution image */
200: {
content: {
2023-08-16 01:59:19 +00:00
"image/png": unknown;
2023-07-12 15:15:09 +00:00
};
};
/** @description Image not found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
2023-07-12 15:15:09 +00:00
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
2023-07-12 15:15:09 +00:00
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Get Image Thumbnail
* @description Gets a thumbnail image file
*/
get_image_thumbnail: {
parameters: {
path: {
/** @description The name of thumbnail image file to get */
image_name: string;
};
};
responses: {
/** @description Return the image thumbnail */
200: {
content: {
2023-08-16 01:59:19 +00:00
"image/webp": unknown;
};
};
/** @description Image not found */
2023-08-22 05:15:00 +00:00
404: {
content: never;
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Get Image Urls
* @description Gets an image and thumbnail URL
*/
get_image_urls: {
parameters: {
path: {
/** @description The name of the image whose URL to get */
image_name: string;
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ImageUrlsDTO"];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/**
2023-08-22 05:15:00 +00:00
* List Image Dtos
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description Gets a list of image DTOs
*/
list_image_dtos: {
parameters: {
query?: {
/** @description The origin of images to list. */
2023-08-16 01:59:19 +00:00
image_origin?: components["schemas"]["ResourceOrigin"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/** @description The categories of image to include. */
2023-08-22 05:15:00 +00:00
categories?: components["schemas"]["ImageCategory"][];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/** @description Whether to list intermediate images. */
is_intermediate?: boolean;
/** @description The board id to filter by. Use 'none' to find images without a board. */
board_id?: string;
/** @description The page offset */
offset?: number;
/** @description The number of images per page */
limit?: number;
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["OffsetPaginatedResults_ImageDTO_"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
};
};
};
/** Delete Images From List */
delete_images_from_list: {
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["Body_delete_images_from_list"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["DeleteImagesFromListResult"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
};
};
};
/** Star Images In List */
star_images_in_list: {
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["Body_star_images_in_list"];
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ImagesUpdatedFromListResult"];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/** Unstar Images In List */
unstar_images_in_list: {
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["Body_unstar_images_in_list"];
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["ImagesUpdatedFromListResult"];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* List Boards
* @description Gets a list of boards
*/
list_boards: {
parameters: {
query?: {
/** @description Whether to list all boards */
all?: boolean;
/** @description The page offset */
offset?: number;
/** @description The number of boards per page */
limit?: number;
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-22 05:15:00 +00:00
"application/json": components["schemas"]["OffsetPaginatedResults_BoardDTO_"] | components["schemas"]["BoardDTO"][];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Create Board
* @description Creates a board
*/
create_board: {
parameters: {
query: {
/** @description The name of the board to create */
board_name: string;
};
};
responses: {
/** @description The board was created successfully */
201: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["BoardDTO"];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Get Board
* @description Gets a board
*/
get_board: {
parameters: {
path: {
/** @description The id of board to get */
board_id: string;
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["BoardDTO"];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Delete Board
* @description Deletes a board
*/
delete_board: {
parameters: {
query?: {
/** @description Permanently delete all images on the board */
include_images?: boolean;
};
path: {
/** @description The id of board to delete */
board_id: string;
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["DeleteBoardResult"];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Update Board
* @description Updates a board
*/
update_board: {
parameters: {
path: {
/** @description The id of board to update */
board_id: string;
};
};
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["BoardChanges"];
};
};
responses: {
/** @description The board was updated successfully */
201: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["BoardDTO"];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* List All Board Image Names
feat(ui): another go at gallery (#3791) * feat(ui): migrate listImages to RTK query using createEntityAdapter - see comments in `endpoints/images.ts` for explanation of the caching - so far, only manually updating `all` images when new image is generated. no other manual cache updates are implemented, but will be needed. - fixed some weirdness with loading state components (like the spinners in gallery) - added `useThumbnailFallback` for `IAIDndImage`, this displays the tiny webp thumbnail while the full-size images load - comment out some old thunk related stuff in gallerySlice, which is no longer needed * feat(ui): add manual cache updates for board changes (wip) - update RTK Query caches when adding/removing single image to/from board - work more on migrating all image-related operations to RTK Query * update AddImagesToBoardContext so that it works when user uses context menu + modal * handle case where no image is selected * get assets working for main list and boards - dnd only * feat(ui): migrate image uploads to RTK Query - minor refactor of `ImageUploader` and `useImageUploadButton` hooks, simplify some logic - style filesystem upload overlay to match existing UI - replace all old `imageUploaded` thunks with `uploadImage` RTK Query calls, update associated logic including canvas related uploads - simplify `PostUploadAction`s that only need to display user input * feat(ui): remove `receivedPageOfImages` thunks * feat(ui): remove `receivedImageUrls` thunk * feat(ui): finish removing all images thunks stuff now broken: - image usage - delete board images - on first load, no image selected * feat(ui): simplify `updateImage` cache manipulation - we don't actually ever change categories, so we can remove a lot of logic * feat(ui): simplify canvas autosave - instead of using a network request to set the canvas generation as not intermediate, we can just do that in the graph * feat(ui): simplify & handle edge cases in cache updates * feat(db, api): support `board_id='none'` for `get_many` images queries This allows us to get all images that are not on a board. * chore(ui): regen types * feat(ui): add `All Assets`, `No Board` boards Restructure boards: - `all images` is all images - `all assets` is all assets - `no board` is all images/assets without a board set - user boards may have images and assets Update caching logic - much simpler without every board having sub-views of images and assets - update drag and drop operations for all possible interactions * chore(ui): regen types * feat(ui): move download to top of context menu * feat(ui): improve drop overlay styles * fix(ui): fix image not selected on first load - listen for first load of all images board, then select the first image * feat(ui): refactor board deletion api changes: - add route to list all image names for a board. this is required to handle board + image deletion. we need to know every image in the board to determine the image usage across the app. this is fetched only when the delete board and images modal is opened so it's as efficient as it can be. - update the delete board route to respond with a list of deleted `board_images` and `images`, as image names. this is needed to perform accurate clientside state & cache updates after deleting. db changes: - remove unused `board_images` service method to get paginated images dtos for a board. this is now done thru the list images endpoint & images service. needs a small logic change on `images.delete_images_on_board` ui changes: - simplify the delete board modal - no context, just minor prop drilling. this is feasible for boards only because the components that need to trigger and manipulate the modal are very close together in the tree - add cache updates for `deleteBoard` & `deleteBoardAndImages` mutations - the only thing we cannot do directly is on `deleteBoardAndImages`, update the `No Board` board. we'd need to insert image dtos that we may not have loaded. instead, i am just invalidating the tags for that `listImages` cache. so when you `deleteBoardAndImages`, the `No Board` will re-fetch the initial image limit. i think this is more efficient than e.g. fetching all image dtos to insert then inserting them. - handle image usage for `deleteBoardAndImages` - update all (i think/hope) the little bits and pieces in the UI to accomodate these changes * fix(ui): fix board selection logic * feat(ui): add delete board modal loading state * fix(ui): use thumbnails for board cover images * fix(ui): fix race condition with board selection when selecting a board that doesn't have any images loaded, we need to wait until the images haveloaded before selecting the first image. this logic is debounced to ~1000ms. * feat(ui): name 'No Board' correctly, change icon * fix(ui): do not cache listAllImageNames query if we cache it, we can end up with stale image usage during deletion. we could of course manually update the cache as we are doing elsewhere. but because this is a relatively infrequent network request, i'd like to trade increased cache mgmt complexity here for increased resource usage. * feat(ui): reduce drag preview opacity, remove border * fix(ui): fix incorrect queryArg used in `deleteImage` and `updateImage` cache updates * fix(ui): fix doubled open in new tab * fix(ui): fix new generations not getting added to 'No Board' * fix(ui): fix board id not changing on new image when autosave enabled * fix(ui): context menu when selection is 0 need to revise how context menu is triggered later, when we approach multi select * fix(ui): fix deleting does not update counts for all images and all assets * fix(ui): fix all assets board name in boards list collapse button * fix(ui): ensure we never go under 0 for total board count * fix(ui): fix text overflow on board names --------- Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2023-07-19 16:06:38 +00:00
* @description Gets a list of images for a board
*/
feat(ui): another go at gallery (#3791) * feat(ui): migrate listImages to RTK query using createEntityAdapter - see comments in `endpoints/images.ts` for explanation of the caching - so far, only manually updating `all` images when new image is generated. no other manual cache updates are implemented, but will be needed. - fixed some weirdness with loading state components (like the spinners in gallery) - added `useThumbnailFallback` for `IAIDndImage`, this displays the tiny webp thumbnail while the full-size images load - comment out some old thunk related stuff in gallerySlice, which is no longer needed * feat(ui): add manual cache updates for board changes (wip) - update RTK Query caches when adding/removing single image to/from board - work more on migrating all image-related operations to RTK Query * update AddImagesToBoardContext so that it works when user uses context menu + modal * handle case where no image is selected * get assets working for main list and boards - dnd only * feat(ui): migrate image uploads to RTK Query - minor refactor of `ImageUploader` and `useImageUploadButton` hooks, simplify some logic - style filesystem upload overlay to match existing UI - replace all old `imageUploaded` thunks with `uploadImage` RTK Query calls, update associated logic including canvas related uploads - simplify `PostUploadAction`s that only need to display user input * feat(ui): remove `receivedPageOfImages` thunks * feat(ui): remove `receivedImageUrls` thunk * feat(ui): finish removing all images thunks stuff now broken: - image usage - delete board images - on first load, no image selected * feat(ui): simplify `updateImage` cache manipulation - we don't actually ever change categories, so we can remove a lot of logic * feat(ui): simplify canvas autosave - instead of using a network request to set the canvas generation as not intermediate, we can just do that in the graph * feat(ui): simplify & handle edge cases in cache updates * feat(db, api): support `board_id='none'` for `get_many` images queries This allows us to get all images that are not on a board. * chore(ui): regen types * feat(ui): add `All Assets`, `No Board` boards Restructure boards: - `all images` is all images - `all assets` is all assets - `no board` is all images/assets without a board set - user boards may have images and assets Update caching logic - much simpler without every board having sub-views of images and assets - update drag and drop operations for all possible interactions * chore(ui): regen types * feat(ui): move download to top of context menu * feat(ui): improve drop overlay styles * fix(ui): fix image not selected on first load - listen for first load of all images board, then select the first image * feat(ui): refactor board deletion api changes: - add route to list all image names for a board. this is required to handle board + image deletion. we need to know every image in the board to determine the image usage across the app. this is fetched only when the delete board and images modal is opened so it's as efficient as it can be. - update the delete board route to respond with a list of deleted `board_images` and `images`, as image names. this is needed to perform accurate clientside state & cache updates after deleting. db changes: - remove unused `board_images` service method to get paginated images dtos for a board. this is now done thru the list images endpoint & images service. needs a small logic change on `images.delete_images_on_board` ui changes: - simplify the delete board modal - no context, just minor prop drilling. this is feasible for boards only because the components that need to trigger and manipulate the modal are very close together in the tree - add cache updates for `deleteBoard` & `deleteBoardAndImages` mutations - the only thing we cannot do directly is on `deleteBoardAndImages`, update the `No Board` board. we'd need to insert image dtos that we may not have loaded. instead, i am just invalidating the tags for that `listImages` cache. so when you `deleteBoardAndImages`, the `No Board` will re-fetch the initial image limit. i think this is more efficient than e.g. fetching all image dtos to insert then inserting them. - handle image usage for `deleteBoardAndImages` - update all (i think/hope) the little bits and pieces in the UI to accomodate these changes * fix(ui): fix board selection logic * feat(ui): add delete board modal loading state * fix(ui): use thumbnails for board cover images * fix(ui): fix race condition with board selection when selecting a board that doesn't have any images loaded, we need to wait until the images haveloaded before selecting the first image. this logic is debounced to ~1000ms. * feat(ui): name 'No Board' correctly, change icon * fix(ui): do not cache listAllImageNames query if we cache it, we can end up with stale image usage during deletion. we could of course manually update the cache as we are doing elsewhere. but because this is a relatively infrequent network request, i'd like to trade increased cache mgmt complexity here for increased resource usage. * feat(ui): reduce drag preview opacity, remove border * fix(ui): fix incorrect queryArg used in `deleteImage` and `updateImage` cache updates * fix(ui): fix doubled open in new tab * fix(ui): fix new generations not getting added to 'No Board' * fix(ui): fix board id not changing on new image when autosave enabled * fix(ui): context menu when selection is 0 need to revise how context menu is triggered later, when we approach multi select * fix(ui): fix deleting does not update counts for all images and all assets * fix(ui): fix all assets board name in boards list collapse button * fix(ui): ensure we never go under 0 for total board count * fix(ui): fix text overflow on board names --------- Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2023-07-19 16:06:38 +00:00
list_all_board_image_names: {
parameters: {
path: {
/** @description The id of the board */
board_id: string;
};
};
responses: {
feat(ui): another go at gallery (#3791) * feat(ui): migrate listImages to RTK query using createEntityAdapter - see comments in `endpoints/images.ts` for explanation of the caching - so far, only manually updating `all` images when new image is generated. no other manual cache updates are implemented, but will be needed. - fixed some weirdness with loading state components (like the spinners in gallery) - added `useThumbnailFallback` for `IAIDndImage`, this displays the tiny webp thumbnail while the full-size images load - comment out some old thunk related stuff in gallerySlice, which is no longer needed * feat(ui): add manual cache updates for board changes (wip) - update RTK Query caches when adding/removing single image to/from board - work more on migrating all image-related operations to RTK Query * update AddImagesToBoardContext so that it works when user uses context menu + modal * handle case where no image is selected * get assets working for main list and boards - dnd only * feat(ui): migrate image uploads to RTK Query - minor refactor of `ImageUploader` and `useImageUploadButton` hooks, simplify some logic - style filesystem upload overlay to match existing UI - replace all old `imageUploaded` thunks with `uploadImage` RTK Query calls, update associated logic including canvas related uploads - simplify `PostUploadAction`s that only need to display user input * feat(ui): remove `receivedPageOfImages` thunks * feat(ui): remove `receivedImageUrls` thunk * feat(ui): finish removing all images thunks stuff now broken: - image usage - delete board images - on first load, no image selected * feat(ui): simplify `updateImage` cache manipulation - we don't actually ever change categories, so we can remove a lot of logic * feat(ui): simplify canvas autosave - instead of using a network request to set the canvas generation as not intermediate, we can just do that in the graph * feat(ui): simplify & handle edge cases in cache updates * feat(db, api): support `board_id='none'` for `get_many` images queries This allows us to get all images that are not on a board. * chore(ui): regen types * feat(ui): add `All Assets`, `No Board` boards Restructure boards: - `all images` is all images - `all assets` is all assets - `no board` is all images/assets without a board set - user boards may have images and assets Update caching logic - much simpler without every board having sub-views of images and assets - update drag and drop operations for all possible interactions * chore(ui): regen types * feat(ui): move download to top of context menu * feat(ui): improve drop overlay styles * fix(ui): fix image not selected on first load - listen for first load of all images board, then select the first image * feat(ui): refactor board deletion api changes: - add route to list all image names for a board. this is required to handle board + image deletion. we need to know every image in the board to determine the image usage across the app. this is fetched only when the delete board and images modal is opened so it's as efficient as it can be. - update the delete board route to respond with a list of deleted `board_images` and `images`, as image names. this is needed to perform accurate clientside state & cache updates after deleting. db changes: - remove unused `board_images` service method to get paginated images dtos for a board. this is now done thru the list images endpoint & images service. needs a small logic change on `images.delete_images_on_board` ui changes: - simplify the delete board modal - no context, just minor prop drilling. this is feasible for boards only because the components that need to trigger and manipulate the modal are very close together in the tree - add cache updates for `deleteBoard` & `deleteBoardAndImages` mutations - the only thing we cannot do directly is on `deleteBoardAndImages`, update the `No Board` board. we'd need to insert image dtos that we may not have loaded. instead, i am just invalidating the tags for that `listImages` cache. so when you `deleteBoardAndImages`, the `No Board` will re-fetch the initial image limit. i think this is more efficient than e.g. fetching all image dtos to insert then inserting them. - handle image usage for `deleteBoardAndImages` - update all (i think/hope) the little bits and pieces in the UI to accomodate these changes * fix(ui): fix board selection logic * feat(ui): add delete board modal loading state * fix(ui): use thumbnails for board cover images * fix(ui): fix race condition with board selection when selecting a board that doesn't have any images loaded, we need to wait until the images haveloaded before selecting the first image. this logic is debounced to ~1000ms. * feat(ui): name 'No Board' correctly, change icon * fix(ui): do not cache listAllImageNames query if we cache it, we can end up with stale image usage during deletion. we could of course manually update the cache as we are doing elsewhere. but because this is a relatively infrequent network request, i'd like to trade increased cache mgmt complexity here for increased resource usage. * feat(ui): reduce drag preview opacity, remove border * fix(ui): fix incorrect queryArg used in `deleteImage` and `updateImage` cache updates * fix(ui): fix doubled open in new tab * fix(ui): fix new generations not getting added to 'No Board' * fix(ui): fix board id not changing on new image when autosave enabled * fix(ui): context menu when selection is 0 need to revise how context menu is triggered later, when we approach multi select * fix(ui): fix deleting does not update counts for all images and all assets * fix(ui): fix all assets board name in boards list collapse button * fix(ui): ensure we never go under 0 for total board count * fix(ui): fix text overflow on board names --------- Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2023-07-19 16:06:38 +00:00
/** @description Successful Response */
200: {
content: {
2023-08-22 05:15:00 +00:00
"application/json": string[];
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Add Image To Board
* @description Creates a board_image
*/
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
add_image_to_board: {
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["Body_add_image_to_board"];
};
};
responses: {
/** @description The image was added to a board successfully */
201: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": unknown;
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Remove Image From Board
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description Removes an image from its board, if it had one
*/
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
remove_image_from_board: {
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["Body_remove_image_from_board"];
};
};
responses: {
/** @description The image was removed from the board successfully */
201: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": unknown;
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
/**
2023-08-22 05:15:00 +00:00
* Add Images To Board
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description Adds a list of images to a board
*/
add_images_to_board: {
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["Body_add_images_to_board"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
};
responses: {
/** @description Images were added to board successfully */
201: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["AddImagesToBoardResult"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
};
};
};
/**
2023-08-22 05:15:00 +00:00
* Remove Images From Board
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
* @description Removes a list of images from their board, if they had one
*/
remove_images_from_board: {
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["Body_remove_images_from_board"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
};
responses: {
/** @description Images were removed from board successfully */
201: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["RemoveImagesFromBoardResult"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
feat: add multi-select to gallery multi-select actions include: - drag to board to move all to that board - right click to add all to board or delete all backend changes: - add routes for changing board for list of image names, deleting list of images - change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`) - subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined` - remove `board_id` from `remove_image_from_board` frontend changes: - multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates. - consolidate change board and delete image modals to handle single and multiples - board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this - fixed warning about nested `<p>` elements - closes #4088 , need to handle case when `autoAddBoardId` is `"none"` - add option to show gallery image delete button on every gallery image frontend refactors/organisation: - make typegen script js instead of ts - enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this - move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-07-31 08:16:52 +00:00
};
};
};
};
2023-07-08 09:31:17 +00:00
/** Get Version */
app_version: {
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["AppVersion"];
};
};
2023-07-12 15:56:40 +00:00
};
};
/** Get Config */
get_config: {
responses: {
/** @description Successful Response */
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["AppConfig"];
};
};
};
};
2023-07-20 15:45:54 +00:00
/**
2023-08-22 05:15:00 +00:00
* Get Log Level
2023-07-20 15:45:54 +00:00
* @description Returns the log level
*/
get_log_level: {
2023-07-08 09:31:17 +00:00
responses: {
2023-07-20 15:45:54 +00:00
/** @description The operation was successful */
2023-07-08 09:31:17 +00:00
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["LogLevel"];
2023-07-12 15:56:40 +00:00
};
};
};
};
2023-07-20 15:45:54 +00:00
/**
2023-08-22 05:15:00 +00:00
* Set Log Level
2023-07-20 15:45:54 +00:00
* @description Sets the log verbosity level
*/
set_log_level: {
requestBody: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["LogLevel"];
2023-07-20 15:45:54 +00:00
};
};
2023-07-12 15:56:40 +00:00
responses: {
2023-07-20 15:45:54 +00:00
/** @description The operation was successful */
2023-07-12 15:56:40 +00:00
200: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["LogLevel"];
2023-07-20 15:45:54 +00:00
};
};
/** @description Validation Error */
422: {
content: {
2023-08-16 01:59:19 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
2023-07-08 09:31:17 +00:00
};
};
};
};
};