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.

7433 lines
206 KiB
TypeScript
Raw Normal View History

/**
* This file was auto-generated by openapi-typescript.
* Do not make direct changes to the file.
*/
2023-07-13 05:22:18 +00:00
export type paths = {
2023-07-13 05:22:18 +00:00
"/api/v1/sessions/": {
/**
2023-07-13 05:22:18 +00:00
* List Sessions
* @description Gets a list of sessions, optionally searching
*/
2023-07-13 05:22:18 +00:00
get: operations["list_sessions"];
/**
2023-07-13 05:22:18 +00:00
* Create Session
* @description Creates a new session, optionally initializing it with an invocation graph
*/
2023-07-13 05:22:18 +00:00
post: operations["create_session"];
};
2023-07-13 05:22:18 +00:00
"/api/v1/sessions/{session_id}": {
/**
2023-07-13 05:22:18 +00:00
* Get Session
* @description Gets a session
*/
2023-07-13 05:22:18 +00:00
get: operations["get_session"];
};
2023-07-13 05:22:18 +00:00
"/api/v1/sessions/{session_id}/nodes": {
/**
2023-07-13 05:22:18 +00:00
* Add Node
* @description Adds a node to the graph
*/
2023-07-13 05:22:18 +00:00
post: operations["add_node"];
};
2023-07-13 05:22:18 +00:00
"/api/v1/sessions/{session_id}/nodes/{node_path}": {
/**
2023-07-13 05:22:18 +00:00
* Update Node
* @description Updates a node in the graph and removes all linked edges
*/
2023-07-13 05:22:18 +00:00
put: operations["update_node"];
/**
2023-07-13 05:22:18 +00:00
* Delete Node
* @description Deletes a node in the graph and removes all linked edges
*/
2023-07-13 05:22:18 +00:00
delete: operations["delete_node"];
};
2023-07-13 05:22:18 +00:00
"/api/v1/sessions/{session_id}/edges": {
/**
2023-07-13 05:22:18 +00:00
* Add Edge
* @description Adds an edge to the graph
*/
2023-07-13 05:22:18 +00:00
post: operations["add_edge"];
};
2023-07-13 05:22:18 +00:00
"/api/v1/sessions/{session_id}/edges/{from_node_id}/{from_field}/{to_node_id}/{to_field}": {
/**
2023-07-13 05:22:18 +00:00
* Delete Edge
* @description Deletes an edge from the graph
*/
2023-07-13 05:22:18 +00:00
delete: operations["delete_edge"];
};
2023-07-13 05:22:18 +00:00
"/api/v1/sessions/{session_id}/invoke": {
/**
2023-07-13 05:22:18 +00:00
* Invoke Session
* @description Invokes a session
*/
2023-07-13 05:22:18 +00:00
put: operations["invoke_session"];
/**
2023-07-13 05:22:18 +00:00
* Cancel Session Invoke
* @description Invokes a session
*/
2023-07-13 05:22:18 +00:00
delete: operations["cancel_session_invoke"];
};
2023-07-13 05:22:18 +00:00
"/api/v1/models/": {
/**
2023-07-13 05:22:18 +00:00
* List Models
* @description Gets a list of models
*/
2023-07-13 05:22:18 +00:00
get: operations["list_models"];
};
2023-07-13 05:22:18 +00:00
"/api/v1/models/{base_model}/{model_type}/{model_name}": {
/**
2023-07-13 05:22:18 +00:00
* Delete Model
* @description Delete Model
*/
2023-07-13 05:22:18 +00:00
delete: operations["del_model"];
/**
2023-07-13 05:22:18 +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-13 05:22:18 +00:00
patch: operations["update_model"];
};
2023-07-15 15:06:57 +00:00
"/api/v1/models/import": {
/**
* Import Model
* @description Add a model using its local path, repo_id, or remote URL. Model characteristics will be probed and configured automatically
*/
post: operations["import_model"];
};
"/api/v1/models/add": {
/**
* Add Model
* @description Add a model using the configuration information appropriate for its type. Only local models can be added by path
*/
post: operations["add_model"];
};
2023-07-13 05:22:18 +00:00
"/api/v1/models/convert/{base_model}/{model_type}/{model_name}": {
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
put: operations["convert_model"];
};
2023-07-15 15:06:57 +00:00
"/api/v1/models/search": {
/** Search For Models */
get: operations["search_for_models"];
};
"/api/v1/models/ckpt_confs": {
/**
* List Ckpt Configs
* @description Return a list of the legacy checkpoint configuration files stored in `ROOT/configs/stable-diffusion`, relative to ROOT.
*/
get: operations["list_ckpt_configs"];
};
"/api/v1/models/sync": {
/**
* Sync To Config
* @description Call after making changes to models.yaml, autoimport directories or models directory to synchronize
* in-memory data structures with disk data structures.
*/
2023-07-20 06:50:43 +00:00
post: operations["sync_to_config"];
2023-07-15 15:06:57 +00:00
};
2023-07-13 05:22:18 +00:00
"/api/v1/models/merge/{base_model}": {
/**
2023-07-13 05:22:18 +00:00
* Merge Models
* @description Convert a checkpoint model into a diffusers model
*/
2023-07-13 05:22:18 +00:00
put: operations["merge_models"];
};
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
"/api/v1/images/upload": {
/**
2023-07-13 05:22:18 +00:00
* Upload Image
* @description Uploads an image
*/
2023-07-13 05:22:18 +00:00
post: operations["upload_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
"/api/v1/images/i/{image_name}": {
/**
2023-07-13 05:22:18 +00:00
* Get Image Dto
2023-07-12 15:15:09 +00:00
* @description Gets an image's DTO
*/
2023-07-13 05:22:18 +00:00
get: operations["get_image_dto"];
/**
2023-07-13 05:22:18 +00:00
* Delete Image
* @description Deletes an image
*/
2023-07-13 05:22:18 +00:00
delete: operations["delete_image"];
/**
2023-07-13 05:22:18 +00:00
* Update Image
* @description Updates an image
*/
2023-07-13 05:22:18 +00:00
patch: operations["update_image"];
};
"/api/v1/images/clear-intermediates": {
/**
* Clear Intermediates
* @description Clears all intermediates
*/
post: operations["clear_intermediates"];
};
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
"/api/v1/images/i/{image_name}/metadata": {
/**
2023-07-13 05:22:18 +00:00
* Get Image Metadata
* @description Gets an image's metadata
*/
2023-07-13 05:22:18 +00:00
get: operations["get_image_metadata"];
};
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
"/api/v1/images/i/{image_name}/full": {
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +00:00
* Get Image Full
2023-07-12 15:15:09 +00:00
* @description Gets a full-resolution image file
*/
2023-07-13 05:22:18 +00:00
get: operations["get_image_full"];
2023-07-12 15:15:09 +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
"/api/v1/images/i/{image_name}/thumbnail": {
/**
2023-07-13 05:22:18 +00:00
* Get Image Thumbnail
* @description Gets a thumbnail image file
*/
2023-07-13 05:22:18 +00:00
get: operations["get_image_thumbnail"];
};
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
"/api/v1/images/i/{image_name}/urls": {
/**
2023-07-13 05:22:18 +00:00
* Get Image Urls
* @description Gets an image and thumbnail URL
*/
2023-07-13 05:22:18 +00:00
get: operations["get_image_urls"];
};
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
"/api/v1/images/": {
/**
* List Image Dtos
* @description Gets a list of image DTOs
*/
get: operations["list_image_dtos"];
};
"/api/v1/images/delete": {
/** Delete Images From List */
post: operations["delete_images_from_list"];
};
2023-07-13 05:22:18 +00:00
"/api/v1/boards/": {
/**
2023-07-13 05:22:18 +00:00
* List Boards
* @description Gets a list of boards
*/
2023-07-13 05:22:18 +00:00
get: operations["list_boards"];
/**
2023-07-13 05:22:18 +00:00
* Create Board
* @description Creates a board
*/
2023-07-13 05:22:18 +00:00
post: operations["create_board"];
};
2023-07-13 05:22:18 +00:00
"/api/v1/boards/{board_id}": {
/**
2023-07-13 05:22:18 +00:00
* Get Board
* @description Gets a board
*/
2023-07-13 05:22:18 +00:00
get: operations["get_board"];
/**
2023-07-13 05:22:18 +00:00
* Delete Board
* @description Deletes a board
*/
2023-07-13 05:22:18 +00:00
delete: operations["delete_board"];
/**
2023-07-13 05:22:18 +00:00
* Update Board
* @description Updates a board
*/
2023-07-13 05:22:18 +00:00
patch: operations["update_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
"/api/v1/boards/{board_id}/image_names": {
/**
* List All Board Image Names
* @description Gets a list of images for a board
*/
get: operations["list_all_board_image_names"];
};
2023-07-13 05:22:18 +00:00
"/api/v1/board_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
* 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
post: operations["add_image_to_board"];
/**
* Remove Image From Board
* @description Removes an image from its board, if it had one
*/
delete: operations["remove_image_from_board"];
};
"/api/v1/board_images/batch": {
/**
* Add Images To Board
* @description Adds a list of images to a board
*/
post: operations["add_images_to_board"];
};
"/api/v1/board_images/batch/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
* Remove Images From Board
* @description Removes a list of images from their board, if they 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
post: operations["remove_images_from_board"];
};
2023-07-13 05:22:18 +00:00
"/api/v1/app/version": {
2023-07-08 09:31:17 +00:00
/** Get Version */
2023-07-13 05:22:18 +00:00
get: operations["app_version"];
2023-07-12 15:56:40 +00:00
};
2023-07-13 05:22:18 +00:00
"/api/v1/app/config": {
2023-07-12 15:56:40 +00:00
/** Get Config */
2023-07-13 05:22:18 +00:00
get: operations["get_config"];
2023-07-08 09:31:17 +00:00
};
2023-07-20 15:45:54 +00:00
"/api/v1/app/logging": {
/**
* Get Log Level
* @description Returns the log level
*/
get: operations["get_log_level"];
/**
* Set Log Level
* @description Sets the log verbosity level
*/
post: operations["set_log_level"];
};
};
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: {
/**
* Board Id
* @description The id of the board the images were added to
*/
board_id: string;
/**
* Added Image Names
* @description The image names that were added to the board
*/
added_image_names: (string)[];
};
/**
2023-07-13 05:22:18 +00:00
* AddInvocation
* @description Adds two numbers
*/
AddInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default add
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "add";
/**
2023-07-13 05:22:18 +00:00
* A
* @description The first number
* @default 0
*/
a?: number;
/**
2023-07-13 05:22:18 +00:00
* B
* @description The second number
* @default 0
*/
b?: number;
};
2023-07-08 09:31:17 +00:00
/**
2023-07-13 05:22:18 +00:00
* AppConfig
2023-07-12 15:56:40 +00:00
* @description App Config Response
*/
AppConfig: {
2023-07-13 05:22:18 +00:00
/**
* Infill Methods
* @description List of available infill methods
*/
infill_methods: (string)[];
/**
* Upscaling Methods
* @description List of upscaling methods
*/
upscaling_methods: (components["schemas"]["Upscaler"])[];
/**
* Nsfw Methods
* @description List of NSFW checking methods
*/
nsfw_methods: (string)[];
/**
* Watermarking Methods
* @description List of invisible watermark methods
*/
watermarking_methods: (string)[];
2023-07-12 15:56:40 +00:00
};
/**
2023-07-13 05:22:18 +00:00
* AppVersion
2023-07-08 09:31:17 +00:00
* @description App Version Response
*/
AppVersion: {
2023-07-13 05:22:18 +00:00
/**
* Version
* @description App version
*/
2023-07-08 09:31:17 +00:00
version: string;
};
/**
2023-07-13 05:22:18 +00:00
* BaseModelType
* @description An enumeration.
* @enum {string}
*/
BaseModelType: "sd-1" | "sd-2" | "sdxl" | "sdxl-refiner";
/** BoardChanges */
BoardChanges: {
/**
2023-07-13 05:22:18 +00:00
* Board Name
* @description The board's new name.
*/
board_name?: string;
/**
2023-07-13 05:22:18 +00:00
* Cover Image Name
* @description The name of the board's new cover image.
*/
cover_image_name?: string;
};
/**
2023-07-13 05:22:18 +00:00
* BoardDTO
* @description Deserialized board record with cover image URL and image count.
*/
BoardDTO: {
/**
2023-07-13 05:22:18 +00:00
* Board Id
* @description The unique ID of the board.
*/
board_id: string;
/**
2023-07-13 05:22:18 +00:00
* Board Name
* @description The name of the board.
*/
board_name: string;
/**
2023-07-13 05:22:18 +00:00
* Created At
* @description The created timestamp of the board.
*/
created_at: string;
/**
2023-07-13 05:22:18 +00:00
* Updated At
* @description The updated timestamp of the board.
*/
updated_at: string;
/**
2023-07-13 05:22:18 +00:00
* Deleted At
* @description The deleted timestamp of the board.
*/
deleted_at?: string;
/**
2023-07-13 05:22:18 +00:00
* Cover Image Name
* @description The name of the board's cover image.
*/
cover_image_name?: string;
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
* Board Id
* @description The id of the board to add to
*/
board_id: string;
/**
2023-07-13 05:22:18 +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: {
/**
* Board Id
* @description The id of the board to add to
*/
board_id: string;
/**
* Image Names
* @description The names of the images to add
*/
image_names: (string)[];
};
/** Body_delete_images_from_list */
Body_delete_images_from_list: {
/**
* Image Names
* @description The list of names of images to delete
*/
image_names: (string)[];
};
/** Body_import_model */
Body_import_model: {
/**
2023-07-13 05:22:18 +00:00
* Location
* @description A model path, repo_id or URL to import
*/
location: string;
/**
2023-07-13 05:22:18 +00:00
* Prediction Type
* @description Prediction type for SDv2 checkpoint files
* @default v_prediction
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
prediction_type?: "v_prediction" | "epsilon" | "sample";
};
/** Body_merge_models */
Body_merge_models: {
/**
2023-07-13 05:22:18 +00:00
* Model Names
* @description model name
*/
2023-07-13 05:22:18 +00:00
model_names: (string)[];
/**
2023-07-13 05:22:18 +00:00
* Merged Model Name
* @description Name of destination model
*/
merged_model_name: string;
/**
2023-07-13 05:22:18 +00:00
* Alpha
* @description Alpha weighting strength to apply to 2d and 3d models
* @default 0.5
*/
alpha?: number;
/** @description Interpolation method */
2023-07-13 05:22:18 +00:00
interp: components["schemas"]["MergeInterpolationMethod"];
/**
2023-07-13 05:22:18 +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
/**
* Merge Dest Directory
* @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-07-13 05:22:18 +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: {
/**
* Image Names
* @description The names of the images to remove
*/
image_names: (string)[];
};
/** Body_upload_image */
Body_upload_image: {
/**
2023-07-13 05:22:18 +00:00
* File
* Format: binary
*/
file: Blob;
};
/**
2023-07-13 05:22:18 +00:00
* CannyImageProcessorInvocation
* @description Canny edge detection for ControlNet
*/
CannyImageProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default canny_image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "canny_image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Low Threshold
* @description The low threshold of the Canny pixel gradient (0-255)
* @default 100
*/
low_threshold?: number;
/**
2023-07-13 05:22:18 +00:00
* High Threshold
* @description The high threshold of the Canny pixel gradient (0-255)
* @default 200
*/
high_threshold?: number;
};
/** ClipField */
ClipField: {
/**
2023-07-13 05:22:18 +00:00
* Tokenizer
* @description Info to load tokenizer submodel
*/
2023-07-13 05:22:18 +00:00
tokenizer: components["schemas"]["ModelInfo"];
/**
2023-07-13 05:22:18 +00:00
* Text Encoder
* @description Info to load text_encoder submodel
*/
2023-07-13 05:22:18 +00:00
text_encoder: components["schemas"]["ModelInfo"];
2023-07-06 17:57:39 +00:00
/**
2023-07-13 05:22:18 +00:00
* Skipped Layers
2023-07-06 17:57:39 +00:00
* @description Number of skipped layers in text_encoder
*/
skipped_layers: number;
/**
2023-07-13 05:22:18 +00:00
* Loras
* @description Loras to apply on model loading
*/
2023-07-13 05:22:18 +00:00
loras: (components["schemas"]["LoraInfo"])[];
};
2023-07-06 17:57:39 +00:00
/**
2023-07-13 05:22:18 +00:00
* ClipSkipInvocation
2023-07-06 17:57:39 +00:00
* @description Skip layers in clip text_encoder model.
*/
ClipSkipInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
2023-07-06 17:57:39 +00:00
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
2023-07-06 17:57:39 +00:00
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default clip_skip
2023-07-06 17:57:39 +00:00
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "clip_skip";
2023-07-06 17:57:39 +00:00
/**
2023-07-13 05:22:18 +00:00
* Clip
2023-07-06 17:57:39 +00:00
* @description Clip to use
*/
2023-07-13 05:22:18 +00:00
clip?: components["schemas"]["ClipField"];
2023-07-06 17:57:39 +00:00
/**
2023-07-13 05:22:18 +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;
};
/**
2023-07-13 05:22:18 +00:00
* ClipSkipInvocationOutput
2023-07-06 17:57:39 +00:00
* @description Clip skip node output
*/
ClipSkipInvocationOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default clip_skip_output
2023-07-06 17:57:39 +00:00
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "clip_skip_output";
2023-07-06 17:57:39 +00:00
/**
2023-07-13 05:22:18 +00:00
* Clip
2023-07-06 17:57:39 +00:00
* @description Clip with skipped layers
*/
2023-07-13 05:22:18 +00:00
clip?: components["schemas"]["ClipField"];
2023-07-06 17:57:39 +00:00
};
/**
2023-07-13 05:22:18 +00:00
* CollectInvocation
* @description Collects values into a collection
*/
CollectInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default collect
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "collect";
/**
2023-07-13 05:22:18 +00:00
* Item
* @description The item to collect (all inputs must be of the same type)
*/
item?: unknown;
/**
2023-07-13 05:22:18 +00:00
* Collection
* @description The collection, will be provided on execution
*/
2023-07-13 05:22:18 +00:00
collection?: (unknown)[];
};
/**
2023-07-13 05:22:18 +00:00
* CollectInvocationOutput
* @description Base class for all invocation outputs
*/
CollectInvocationOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default collect_output
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type: "collect_output";
/**
2023-07-13 05:22:18 +00:00
* Collection
* @description The collection of input items
*/
2023-07-13 05:22:18 +00:00
collection: (unknown)[];
};
/** ColorField */
ColorField: {
/**
2023-07-13 05:22:18 +00:00
* R
* @description The red component
*/
r: number;
/**
2023-07-13 05:22:18 +00:00
* G
* @description The green component
*/
g: number;
/**
2023-07-13 05:22:18 +00:00
* B
* @description The blue component
*/
b: number;
/**
2023-07-13 05:22:18 +00:00
* A
* @description The alpha component
*/
a: number;
};
/**
2023-07-13 05:22:18 +00:00
* CompelInvocation
* @description Parse prompt using compel package to conditioning.
*/
CompelInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default compel
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "compel";
/**
2023-07-13 05:22:18 +00:00
* Prompt
* @description Prompt
* @default
*/
prompt?: string;
/**
2023-07-13 05:22:18 +00:00
* Clip
* @description Clip to use
*/
2023-07-13 05:22:18 +00:00
clip?: components["schemas"]["ClipField"];
};
/**
2023-07-13 05:22:18 +00:00
* CompelOutput
* @description Compel parser output
*/
CompelOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default compel_output
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "compel_output";
/**
2023-07-13 05:22:18 +00:00
* Conditioning
* @description Conditioning
*/
2023-07-13 05:22:18 +00:00
conditioning?: components["schemas"]["ConditioningField"];
};
/** ConditioningField */
ConditioningField: {
/**
2023-07-13 05:22:18 +00:00
* Conditioning Name
* @description The name of conditioning data
*/
conditioning_name: string;
};
/**
2023-07-13 05:22:18 +00:00
* ContentShuffleImageProcessorInvocation
* @description Applies content shuffle processing to image
*/
ContentShuffleImageProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default content_shuffle_image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "content_shuffle_image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Detect Resolution
* @description The pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* Image Resolution
* @description The pixel resolution for the output image
* @default 512
*/
image_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* H
* @description Content shuffle `h` parameter
* @default 512
*/
h?: number;
/**
2023-07-13 05:22:18 +00:00
* W
* @description Content shuffle `w` parameter
* @default 512
*/
w?: number;
/**
2023-07-13 05:22:18 +00:00
* F
* @description Content shuffle `f` parameter
* @default 256
*/
f?: number;
};
/** ControlField */
ControlField: {
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The control image
*/
2023-07-13 05:22:18 +00:00
image: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Control Model
* @description The ControlNet model to use
*/
2023-07-08 09:31:45 +00:00
control_model: components["schemas"]["ControlNetModelField"];
/**
2023-07-13 05:22:18 +00:00
* Control Weight
* @description The weight given to the ControlNet
* @default 1
*/
2023-07-13 05:22:18 +00:00
control_weight: number | (number)[];
/**
2023-07-13 05:22:18 +00:00
* Begin Step Percent
* @description When the ControlNet is first applied (% of total steps)
* @default 0
*/
begin_step_percent: number;
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
* Control Mode
* @description The control mode to use
* @default balanced
2023-06-25 04:04:16 +00:00
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
control_mode?: "balanced" | "more_prompt" | "more_control" | "unbalanced";
/**
* Resize Mode
* @description The resize mode to use
* @default just_resize
* @enum {string}
*/
resize_mode?: "just_resize" | "crop_resize" | "fill_resize" | "just_resize_simple";
};
/**
2023-07-13 05:22:18 +00:00
* ControlNetInvocation
* @description Collects ControlNet info to pass to other nodes
*/
ControlNetInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default controlnet
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "controlnet";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The control image
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Control Model
* @description control model used
2023-07-08 09:31:45 +00:00
* @default lllyasviel/sd-controlnet-canny
*/
2023-07-08 09:31:45 +00:00
control_model?: components["schemas"]["ControlNetModelField"];
2023-07-13 05:22:18 +00:00
/**
* Control Weight
* @description The weight given to the ControlNet
* @default 1
*/
2023-07-13 05:22:18 +00:00
control_weight?: number | (number)[];
/**
2023-07-13 05:22:18 +00:00
* Begin Step Percent
* @description When the ControlNet is first applied (% of total steps)
* @default 0
*/
begin_step_percent?: number;
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
* Control Mode
* @description The control mode used
* @default balanced
2023-06-25 04:04:16 +00:00
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
control_mode?: "balanced" | "more_prompt" | "more_control" | "unbalanced";
/**
* Resize Mode
* @description The resize mode used
* @default just_resize
* @enum {string}
*/
resize_mode?: "just_resize" | "crop_resize" | "fill_resize" | "just_resize_simple";
};
/** ControlNetModelCheckpointConfig */
ControlNetModelCheckpointConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-07-13 05:22:18 +00:00
* Model Type
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
model_type: "controlnet";
/** Path */
path: string;
/** Description */
description?: string;
/**
* Model Format
* @enum {string}
*/
model_format: "checkpoint";
error?: components["schemas"]["ModelError"];
/** Config */
config: string;
};
/** ControlNetModelDiffusersConfig */
ControlNetModelDiffusersConfig: {
/** Model Name */
model_name: string;
base_model: components["schemas"]["BaseModelType"];
/**
* Model Type
* @enum {string}
*/
model_type: "controlnet";
/** Path */
path: string;
/** Description */
description?: string;
/**
* Model Format
* @enum {string}
*/
model_format: "diffusers";
2023-07-13 05:22:18 +00:00
error?: components["schemas"]["ModelError"];
};
2023-07-08 09:31:45 +00:00
/**
* ControlNetModelField
* @description ControlNet model field
*/
ControlNetModelField: {
/**
* Model Name
* @description Name of the ControlNet model
*/
model_name: string;
/** @description Base model */
base_model: components["schemas"]["BaseModelType"];
};
/**
2023-07-13 05:22:18 +00:00
* ControlOutput
* @description node output for ControlNet info
*/
ControlOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default control_output
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "control_output";
/**
2023-07-13 05:22:18 +00:00
* Control
* @description The control info
*/
2023-07-13 05:22:18 +00:00
control?: components["schemas"]["ControlField"];
};
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +00:00
* CoreMetadata
2023-07-12 15:15:09 +00:00
* @description Core generation metadata for an image generated in InvokeAI.
*/
CoreMetadata: {
/**
2023-07-13 05:22:18 +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-13 05:22:18 +00:00
* Positive Prompt
2023-07-12 15:15:09 +00:00
* @description The positive prompt parameter
*/
positive_prompt: string;
/**
2023-07-13 05:22:18 +00:00
* Negative Prompt
2023-07-12 15:15:09 +00:00
* @description The negative prompt parameter
*/
negative_prompt: string;
/**
2023-07-13 05:22:18 +00:00
* Width
2023-07-12 15:15:09 +00:00
* @description The width parameter
*/
width: number;
/**
2023-07-13 05:22:18 +00:00
* Height
2023-07-12 15:15:09 +00:00
* @description The height parameter
*/
height: number;
/**
2023-07-13 05:22:18 +00:00
* Seed
2023-07-12 15:15:09 +00:00
* @description The seed used for noise generation
*/
seed: number;
/**
2023-07-13 05:22:18 +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-13 05:22:18 +00:00
* Cfg Scale
2023-07-12 15:15:09 +00:00
* @description The classifier-free guidance scale parameter
*/
cfg_scale: number;
/**
2023-07-13 05:22:18 +00:00
* Steps
2023-07-12 15:15:09 +00:00
* @description The number of steps used for inference
*/
steps: number;
/**
2023-07-13 05:22:18 +00:00
* Scheduler
2023-07-12 15:15:09 +00:00
* @description The scheduler used for inference
*/
scheduler: string;
/**
2023-07-13 05:22:18 +00:00
* Clip Skip
2023-07-12 15:15:09 +00:00
* @description The number of skipped CLIP layers
*/
clip_skip: number;
/**
2023-07-13 05:22:18 +00:00
* Model
2023-07-12 15:15:09 +00:00
* @description The main model used for inference
*/
2023-07-13 05:22:18 +00:00
model: components["schemas"]["MainModelField"];
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +00:00
* Controlnets
2023-07-12 15:15:09 +00:00
* @description The ControlNets used for inference
*/
2023-07-13 05:22:18 +00:00
controlnets: (components["schemas"]["ControlField"])[];
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +00:00
* Loras
2023-07-12 15:15:09 +00:00
* @description The LoRAs used for inference
*/
2023-07-13 05:22:18 +00:00
loras: (components["schemas"]["LoRAMetadataField"])[];
/**
* Vae
* @description The VAE used for decoding, if the main model's default was not used
*/
vae?: components["schemas"]["VAEModelField"];
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +00:00
* Strength
2023-07-12 15:15:09 +00:00
* @description The strength used for latents-to-latents
*/
strength?: number;
/**
2023-07-13 05:22:18 +00:00
* Init Image
2023-07-12 15:15:09 +00:00
* @description The name of the initial image
*/
init_image?: string;
/**
* Positive Style Prompt
* @description The positive style prompt parameter
2023-07-12 15:15:09 +00:00
*/
positive_style_prompt?: string;
/**
* Negative Style Prompt
* @description The negative style prompt parameter
*/
negative_style_prompt?: string;
/**
* Refiner Model
* @description The SDXL Refiner model used
*/
refiner_model?: components["schemas"]["MainModelField"];
/**
* Refiner Cfg Scale
* @description The classifier-free guidance scale parameter used for the refiner
*/
refiner_cfg_scale?: number;
/**
* Refiner Steps
* @description The number of steps used for the refiner
*/
refiner_steps?: number;
/**
* Refiner Scheduler
* @description The scheduler used for the refiner
*/
refiner_scheduler?: string;
/**
* Refiner Aesthetic Store
* @description The aesthetic score used for the refiner
*/
refiner_aesthetic_store?: number;
/**
* Refiner Start
* @description The start value used for refiner denoising
*/
refiner_start?: number;
2023-07-12 15:15:09 +00:00
};
/**
2023-07-13 05:22:18 +00:00
* CvInpaintInvocation
* @description Simple inpaint using opencv.
*/
CvInpaintInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default cv_inpaint
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "cv_inpaint";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to inpaint
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Mask
* @description The mask to use when inpainting
*/
2023-07-13 05:22:18 +00:00
mask?: components["schemas"]["ImageField"];
};
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: {
/**
* Board Id
* @description The id of the board that was deleted.
*/
board_id: string;
/**
* Deleted Board Images
* @description The image names of the board-images relationships that were deleted.
*/
deleted_board_images: (string)[];
/**
* Deleted Images
* @description The names of the images that were deleted.
*/
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
/** DeleteImagesFromListResult */
DeleteImagesFromListResult: {
/** Deleted Images */
deleted_images: (string)[];
};
/**
2023-07-13 05:22:18 +00:00
* DivideInvocation
* @description Divides two numbers
*/
DivideInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default div
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "div";
/**
2023-07-13 05:22:18 +00:00
* A
* @description The first number
* @default 0
*/
a?: number;
/**
2023-07-13 05:22:18 +00:00
* B
* @description The second number
* @default 0
*/
b?: number;
};
/**
2023-07-13 05:22:18 +00:00
* DynamicPromptInvocation
* @description Parses a prompt using adieyal/dynamicprompts' random or combinatorial generator
*/
DynamicPromptInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default dynamic_prompt
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "dynamic_prompt";
/**
2023-07-13 05:22:18 +00:00
* Prompt
* @description The prompt to parse with dynamicprompts
*/
prompt: string;
/**
2023-07-13 05:22:18 +00:00
* Max Prompts
* @description The number of prompts to generate
* @default 1
*/
max_prompts?: number;
/**
2023-07-13 05:22:18 +00:00
* Combinatorial
* @description Whether to use the combinatorial generator
* @default false
*/
combinatorial?: boolean;
};
2023-07-17 11:08:53 +00:00
/**
* ESRGANInvocation
* @description Upscales an image using RealESRGAN.
*/
ESRGANInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default esrgan
* @enum {string}
*/
type?: "esrgan";
/**
* Image
* @description The input image
*/
image?: components["schemas"]["ImageField"];
/**
* Model Name
* @description The Real-ESRGAN model to use
* @default RealESRGAN_x4plus.pth
* @enum {string}
*/
model_name?: "RealESRGAN_x4plus.pth" | "RealESRGAN_x4plus_anime_6B.pth" | "ESRGAN_SRx4_DF2KOST_official-ff704c30.pth" | "RealESRGAN_x2plus.pth";
};
/** Edge */
Edge: {
/**
2023-07-13 05:22:18 +00:00
* Source
* @description The connection for the edge's from node and field
*/
2023-07-13 05:22:18 +00:00
source: components["schemas"]["EdgeConnection"];
/**
2023-07-13 05:22:18 +00:00
* Destination
* @description The connection for the edge's to node and field
*/
2023-07-13 05:22:18 +00:00
destination: components["schemas"]["EdgeConnection"];
};
/** EdgeConnection */
EdgeConnection: {
/**
2023-07-13 05:22:18 +00:00
* Node Id
* @description The id of the node for this edge connection
*/
node_id: string;
/**
2023-07-13 05:22:18 +00:00
* Field
* @description The field for this connection
*/
field: string;
};
/**
2023-07-13 05:22:18 +00:00
* FloatCollectionOutput
* @description A collection of floats
*/
FloatCollectionOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default float_collection
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "float_collection";
/**
2023-07-13 05:22:18 +00:00
* Collection
* @description The float collection
* @default []
*/
2023-07-13 05:22:18 +00:00
collection?: (number)[];
};
/**
2023-07-13 05:22:18 +00:00
* FloatLinearRangeInvocation
* @description Creates a range
*/
FloatLinearRangeInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default float_range
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "float_range";
/**
2023-07-13 05:22:18 +00:00
* Start
* @description The first value of the range
* @default 5
*/
start?: number;
/**
2023-07-13 05:22:18 +00:00
* Stop
* @description The last value of the range
* @default 10
*/
stop?: number;
/**
2023-07-13 05:22:18 +00:00
* Steps
* @description number of values to interpolate over (including start and stop)
* @default 30
*/
steps?: number;
};
/**
2023-07-13 05:22:18 +00:00
* FloatOutput
* @description A float output
*/
FloatOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default float_output
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "float_output";
/**
2023-07-13 05:22:18 +00:00
* Param
* @description The output float
*/
param?: number;
};
/** Graph */
Graph: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this graph
*/
id?: string;
/**
2023-07-13 05:22:18 +00:00
* Nodes
* @description The nodes in this graph
*/
nodes?: {
[key: string]: (components["schemas"]["ControlNetInvocation"] | components["schemas"]["ImageProcessorInvocation"] | components["schemas"]["MainModelLoaderInvocation"] | components["schemas"]["LoraLoaderInvocation"] | components["schemas"]["SDXLLoraLoaderInvocation"] | components["schemas"]["VaeLoaderInvocation"] | components["schemas"]["MetadataAccumulatorInvocation"] | components["schemas"]["CompelInvocation"] | components["schemas"]["SDXLCompelPromptInvocation"] | components["schemas"]["SDXLRefinerCompelPromptInvocation"] | components["schemas"]["SDXLRawPromptInvocation"] | components["schemas"]["SDXLRefinerRawPromptInvocation"] | components["schemas"]["ClipSkipInvocation"] | components["schemas"]["LoadImageInvocation"] | components["schemas"]["ShowImageInvocation"] | 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"]["ImageHueAdjustmentInvocation"] | components["schemas"]["ImageLuminosityAdjustmentInvocation"] | components["schemas"]["ImageSaturationAdjustmentInvocation"] | components["schemas"]["TextToLatentsInvocation"] | components["schemas"]["LatentsToImageInvocation"] | components["schemas"]["ResizeLatentsInvocation"] | components["schemas"]["ScaleLatentsInvocation"] | components["schemas"]["ImageToLatentsInvocation"] | components["schemas"]["SDXLModelLoaderInvocation"] | components["schemas"]["SDXLRefinerModelLoaderInvocation"] | components["schemas"]["SDXLTextToLatentsInvocation"] | components["schemas"]["SDXLLatentsToLatentsInvocation"] | components["schemas"]["ONNXPromptInvocation"] | components["schemas"]["ONNXTextToLatentsInvocation"] | components["schemas"]["ONNXLatentsToImageInvocation"] | components["schemas"]["ONNXSD1ModelLoaderInvocation"] | components["schemas"]["OnnxModelLoaderInvocation"] | components["schemas"]["DynamicPromptInvocation"] | components["schemas"]["PromptsFromFileInvocation"] | components["schemas"]["AddInvocation"] | components["schemas"]["SubtractInvocation"] | components["schemas"]["MultiplyInvocation"] | components["schemas"]["DivideInvocation"] | components["schemas"]["RandomIntInvocation"] | components["schemas"]["ParamIntInvocation"] | components["schemas"]["ParamFloatInvocation"] | components["schemas"]["ParamStringInvocation"] | components["schemas"]["ParamPromptInvocation"] | components["schemas"]["CvInpaintInvocation"] | components["schemas"]["RangeInvocation"] | components["schemas"]["RangeOfSizeInvocation"] | components["schemas"]["RandomRangeInvocation"] | components["schemas"]["ImageCollectionInvocation"] | components["schemas"]["FloatLinearRangeInvocation"] | components["schemas"]["StepParamEasingInvocation"] | components["schemas"]["NoiseInvocation"] | components["schemas"]["ESRGANInvocation"] | components["schemas"]["InpaintInvocation"] | components["schemas"]["InfillColorInvocation"] | components["schemas"]["InfillTileInvocation"] | components["schemas"]["InfillPatchMatchInvocation"] | components["schemas"]["GraphInvocation"] | components["schemas"]["IterateInvocation"] | components["schemas"]["CollectInvocation"] | components["schemas"]["CannyImageProcessorInvocation"] | components["schemas"]["HedImageProcessorInvocation"] | components["schemas"]["LineartImageProcessorInvocation"] | components["schemas"]["LineartAnimeImageProcessorInvocation"] | components["schemas"]["OpenposeImageProcessorInvocation"] | components["schemas"]["MidasDepthImageProcessorInvocation"] | components["schemas"]["NormalbaeImageProcessorInvocation"] | components["schemas"]["Mlsd
};
/**
2023-07-13 05:22:18 +00:00
* Edges
* @description The connections between nodes and their fields in this graph
*/
2023-07-13 05:22:18 +00:00
edges?: (components["schemas"]["Edge"])[];
};
/**
2023-07-13 05:22:18 +00:00
* GraphExecutionState
* @description Tracks the state of a graph execution
*/
GraphExecutionState: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of the execution state
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Graph
* @description The graph being executed
*/
2023-07-13 05:22:18 +00:00
graph: components["schemas"]["Graph"];
/**
2023-07-13 05:22:18 +00:00
* Execution Graph
* @description The expanded graph of activated and executed nodes
*/
2023-07-13 05:22:18 +00:00
execution_graph: components["schemas"]["Graph"];
/**
2023-07-13 05:22:18 +00:00
* Executed
* @description The set of node ids that have been executed
*/
2023-07-13 05:22:18 +00:00
executed: (string)[];
/**
2023-07-13 05:22:18 +00:00
* Executed History
* @description The list of node ids that have been executed, in order of execution
*/
2023-07-13 05:22:18 +00:00
executed_history: (string)[];
/**
2023-07-13 05:22:18 +00:00
* Results
* @description The results of node executions
*/
results: {
[key: string]: (components["schemas"]["ImageOutput"] | components["schemas"]["MaskOutput"] | components["schemas"]["ControlOutput"] | components["schemas"]["ModelLoaderOutput"] | components["schemas"]["LoraLoaderOutput"] | components["schemas"]["SDXLLoraLoaderOutput"] | components["schemas"]["VaeLoaderOutput"] | components["schemas"]["MetadataAccumulatorOutput"] | components["schemas"]["CompelOutput"] | components["schemas"]["ClipSkipInvocationOutput"] | components["schemas"]["LatentsOutput"] | components["schemas"]["SDXLModelLoaderOutput"] | components["schemas"]["SDXLRefinerModelLoaderOutput"] | components["schemas"]["ONNXModelLoaderOutput"] | components["schemas"]["PromptOutput"] | components["schemas"]["PromptCollectionOutput"] | components["schemas"]["IntOutput"] | components["schemas"]["FloatOutput"] | components["schemas"]["StringOutput"] | components["schemas"]["IntCollectionOutput"] | components["schemas"]["FloatCollectionOutput"] | components["schemas"]["ImageCollectionOutput"] | components["schemas"]["NoiseOutput"] | components["schemas"]["GraphInvocationOutput"] | components["schemas"]["IterateInvocationOutput"] | components["schemas"]["CollectInvocationOutput"]) | undefined;
};
/**
2023-07-13 05:22:18 +00:00
* Errors
* @description Errors raised when executing nodes
*/
errors: {
[key: string]: string | undefined;
};
/**
2023-07-13 05:22:18 +00:00
* Prepared Source Mapping
* @description The map of prepared nodes to original graph nodes
*/
prepared_source_mapping: {
[key: string]: string | undefined;
};
/**
2023-07-13 05:22:18 +00:00
* Source Prepared Mapping
* @description The map of original graph nodes to prepared nodes
*/
source_prepared_mapping: {
2023-07-13 05:22:18 +00:00
[key: string]: (string)[] | undefined;
};
};
/**
2023-07-13 05:22:18 +00:00
* GraphInvocation
* @description Execute a graph
*/
GraphInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default graph
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "graph";
/**
2023-07-13 05:22:18 +00:00
* Graph
* @description The graph to run
*/
2023-07-13 05:22:18 +00:00
graph?: components["schemas"]["Graph"];
};
/**
2023-07-13 05:22:18 +00:00
* GraphInvocationOutput
* @description Base class for all invocation outputs
*/
GraphInvocationOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default graph_output
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type: "graph_output";
};
/** HTTPValidationError */
HTTPValidationError: {
/** Detail */
2023-07-13 05:22:18 +00:00
detail?: (components["schemas"]["ValidationError"])[];
};
/**
2023-07-13 05:22:18 +00:00
* HedImageProcessorInvocation
* @description Applies HED edge detection to image
*/
HedImageProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default hed_image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "hed_image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Detect Resolution
* @description The pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* Image Resolution
* @description The pixel resolution for the output image
* @default 512
*/
image_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* Scribble
* @description Whether to use scribble mode
* @default false
*/
scribble?: boolean;
};
/**
2023-07-13 05:22:18 +00:00
* ImageBlurInvocation
* @description Blurs an image
*/
ImageBlurInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default img_blur
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "img_blur";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to blur
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Radius
* @description The blur radius
* @default 8
*/
radius?: number;
/**
2023-07-13 05:22:18 +00:00
* Blur Type
* @description The type of blur
* @default gaussian
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
blur_type?: "gaussian" | "box";
};
/**
2023-07-13 05:22:18 +00:00
* ImageCategory
* @description The category of an image.
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
* - OTHER: The image is some other type of image with a specialized purpose. To be used by external nodes.
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
ImageCategory: "general" | "mask" | "control" | "user" | "other";
/**
2023-07-13 05:22:18 +00:00
* ImageChannelInvocation
* @description Gets a channel from an image.
*/
ImageChannelInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default img_chan
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "img_chan";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to get the channel from
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Channel
* @description The channel to get
* @default A
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
channel?: "A" | "R" | "G" | "B";
};
/**
2023-07-13 05:22:18 +00:00
* ImageCollectionInvocation
* @description Load a collection of images and provide it as output.
*/
ImageCollectionInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default image_collection
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "image_collection";
/**
2023-07-13 05:22:18 +00:00
* Images
* @description The image collection to load
* @default []
*/
2023-07-13 05:22:18 +00:00
images?: (components["schemas"]["ImageField"])[];
};
/**
2023-07-13 05:22:18 +00:00
* ImageCollectionOutput
* @description A collection of images
*/
ImageCollectionOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default image_collection
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type: "image_collection";
/**
2023-07-13 05:22:18 +00:00
* Collection
* @description The output images
* @default []
*/
2023-07-13 05:22:18 +00:00
collection: (components["schemas"]["ImageField"])[];
};
/**
2023-07-13 05:22:18 +00:00
* ImageConvertInvocation
* @description Converts an image to a different mode.
*/
ImageConvertInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default img_conv
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "img_conv";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to convert
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Mode
* @description The mode to convert to
* @default L
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
mode?: "L" | "RGB" | "RGBA" | "CMYK" | "YCbCr" | "LAB" | "HSV" | "I" | "F";
};
/**
2023-07-13 05:22:18 +00:00
* ImageCropInvocation
* @description Crops an image to a specified box. The box can be outside of the image.
*/
ImageCropInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default img_crop
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "img_crop";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to crop
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* X
* @description The left x coordinate of the crop rectangle
* @default 0
*/
x?: number;
/**
2023-07-13 05:22:18 +00:00
* Y
* @description The top y coordinate of the crop rectangle
* @default 0
*/
y?: number;
/**
2023-07-13 05:22:18 +00:00
* Width
* @description The width of the crop rectangle
* @default 512
*/
width?: number;
/**
2023-07-13 05:22:18 +00:00
* Height
* @description The height of the crop rectangle
* @default 512
*/
height?: number;
};
/**
2023-07-13 05:22:18 +00:00
* ImageDTO
* @description Deserialized image record, enriched for the frontend.
*/
ImageDTO: {
/**
2023-07-13 05:22:18 +00:00
* Image Name
* @description The unique name of the image.
*/
image_name: string;
/**
2023-07-13 05:22:18 +00:00
* Image Url
* @description The URL of the image.
*/
image_url: string;
/**
2023-07-13 05:22:18 +00:00
* Thumbnail Url
* @description The URL of the image's thumbnail.
*/
thumbnail_url: string;
/** @description The type of the image. */
2023-07-13 05:22:18 +00:00
image_origin: components["schemas"]["ResourceOrigin"];
/** @description The category of the image. */
2023-07-13 05:22:18 +00:00
image_category: components["schemas"]["ImageCategory"];
/**
2023-07-13 05:22:18 +00:00
* Width
* @description The width of the image in px.
*/
width: number;
/**
2023-07-13 05:22:18 +00:00
* Height
* @description The height of the image in px.
*/
height: number;
/**
2023-07-13 05:22:18 +00:00
* Created At
* @description The created timestamp of the image.
*/
created_at: string;
/**
2023-07-13 05:22:18 +00:00
* Updated At
* @description The updated timestamp of the image.
*/
updated_at: string;
/**
2023-07-13 05:22:18 +00:00
* Deleted At
* @description The deleted timestamp of the image.
*/
deleted_at?: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether this is an intermediate image.
*/
is_intermediate: boolean;
/**
2023-07-13 05:22:18 +00:00
* Session Id
* @description The session ID that generated this image, if it is a generated image.
*/
session_id?: string;
/**
2023-07-13 05:22:18 +00:00
* Node Id
* @description The node ID that generated this image, if it is a generated image.
*/
node_id?: string;
/**
2023-07-13 05:22:18 +00:00
* Board Id
* @description The id of the board the image belongs to, if one exists.
*/
board_id?: string;
};
/**
2023-07-13 05:22:18 +00:00
* ImageField
* @description An image field used for passing image objects between invocations
*/
ImageField: {
/**
2023-07-13 05:22:18 +00:00
* Image Name
* @description The name of the image
*/
image_name: string;
};
/**
* ImageHueAdjustmentInvocation
* @description Adjusts the Hue of an image.
*/
ImageHueAdjustmentInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default img_hue_adjust
* @enum {string}
*/
type?: "img_hue_adjust";
/**
* Image
* @description The image to adjust
*/
image?: components["schemas"]["ImageField"];
/**
* Hue
* @description The degrees by which to rotate the hue, 0-360
* @default 0
*/
hue?: number;
};
/**
2023-07-13 05:22:18 +00:00
* ImageInverseLerpInvocation
* @description Inverse linear interpolation of all pixels of an image
*/
ImageInverseLerpInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default img_ilerp
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "img_ilerp";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to lerp
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Min
* @description The minimum input value
* @default 0
*/
min?: number;
/**
2023-07-13 05:22:18 +00:00
* Max
* @description The maximum input value
* @default 255
*/
max?: number;
};
/**
2023-07-13 05:22:18 +00:00
* ImageLerpInvocation
* @description Linear interpolation of all pixels of an image
*/
ImageLerpInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default img_lerp
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "img_lerp";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to lerp
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Min
* @description The minimum output value
* @default 0
*/
min?: number;
/**
2023-07-13 05:22:18 +00:00
* Max
* @description The maximum output value
* @default 255
*/
max?: number;
};
/**
* ImageLuminosityAdjustmentInvocation
* @description Adjusts the Luminosity (Value) of an image.
*/
ImageLuminosityAdjustmentInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default img_luminosity_adjust
* @enum {string}
*/
type?: "img_luminosity_adjust";
/**
* Image
* @description The image to adjust
*/
image?: components["schemas"]["ImageField"];
/**
* Luminosity
* @description The factor by which to adjust the luminosity (value)
* @default 1
*/
luminosity?: number;
};
/**
2023-07-13 05:22:18 +00:00
* ImageMetadata
2023-07-12 15:15:09 +00:00
* @description An image's generation metadata
*/
ImageMetadata: {
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +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-07-13 05:22:18 +00:00
* ImageMultiplyInvocation
* @description Multiplies two images together using `PIL.ImageChops.multiply()`.
*/
ImageMultiplyInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default img_mul
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "img_mul";
/**
2023-07-13 05:22:18 +00:00
* Image1
* @description The first image to multiply
*/
2023-07-13 05:22:18 +00:00
image1?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Image2
* @description The second image to multiply
*/
2023-07-13 05:22:18 +00:00
image2?: components["schemas"]["ImageField"];
};
2023-07-23 20:24:34 +00:00
/**
2023-07-24 12:25:39 +00:00
* ImageNSFWBlurInvocation
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
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default img_nsfw
* @enum {string}
*/
type?: "img_nsfw";
/**
* Image
2023-07-24 12:25:39 +00:00
* @description The image to check
2023-07-23 20:24:34 +00:00
*/
image?: components["schemas"]["ImageField"];
2023-07-24 12:25:39 +00:00
/**
* Metadata
* @description Optional core metadata to be written to the image
2023-07-23 20:24:34 +00:00
*/
2023-07-24 12:25:39 +00:00
metadata?: components["schemas"]["CoreMetadata"];
2023-07-23 20:24:34 +00:00
};
/**
2023-07-13 05:22:18 +00:00
* ImageOutput
* @description Base class for invocations that output an image
*/
ImageOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default image_output
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type: "image_output";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The output image
*/
2023-07-13 05:22:18 +00:00
image: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Width
* @description The width of the image in pixels
*/
width: number;
/**
2023-07-13 05:22:18 +00:00
* Height
* @description The height of the image in pixels
*/
height: number;
};
/**
2023-07-13 05:22:18 +00:00
* ImagePasteInvocation
* @description Pastes an image into another image.
*/
ImagePasteInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default img_paste
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "img_paste";
/**
2023-07-13 05:22:18 +00:00
* Base Image
* @description The base image
*/
2023-07-13 05:22:18 +00:00
base_image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to paste
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Mask
* @description The mask to use when pasting
*/
2023-07-13 05:22:18 +00:00
mask?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* X
* @description The left x coordinate at which to paste the image
* @default 0
*/
x?: number;
/**
2023-07-13 05:22:18 +00:00
* Y
* @description The top y coordinate at which to paste the image
* @default 0
*/
y?: number;
};
/**
2023-07-13 05:22:18 +00:00
* ImageProcessorInvocation
* @description Base class for invocations that preprocess images for ControlNet
*/
ImageProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
};
/**
2023-07-13 05:22:18 +00:00
* ImageRecordChanges
* @description A set of changes to apply to an image record.
2023-07-13 05:22:18 +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
*/
ImageRecordChanges: {
/** @description The image's new category. */
2023-07-13 05:22:18 +00:00
image_category?: components["schemas"]["ImageCategory"];
/**
2023-07-13 05:22:18 +00:00
* Session Id
* @description The image's new session ID.
*/
session_id?: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description The image's new `is_intermediate` flag.
*/
is_intermediate?: boolean;
};
/**
2023-07-13 05:22:18 +00:00
* ImageResizeInvocation
* @description Resizes an image to specific dimensions
*/
ImageResizeInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default img_resize
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "img_resize";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to resize
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Width
* @description The width to resize to (px)
*/
width?: number;
/**
2023-07-13 05:22:18 +00:00
* Height
* @description The height to resize to (px)
*/
height?: number;
/**
2023-07-13 05:22:18 +00:00
* Resample Mode
* @description The resampling mode
* @default bicubic
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
resample_mode?: "nearest" | "box" | "bilinear" | "hamming" | "bicubic" | "lanczos";
};
/**
* ImageSaturationAdjustmentInvocation
* @description Adjusts the Saturation of an image.
*/
ImageSaturationAdjustmentInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default img_saturation_adjust
* @enum {string}
*/
type?: "img_saturation_adjust";
/**
* Image
* @description The image to adjust
*/
image?: components["schemas"]["ImageField"];
/**
* Saturation
* @description The factor by which to adjust the saturation
* @default 1
*/
saturation?: number;
};
/**
2023-07-13 05:22:18 +00:00
* ImageScaleInvocation
* @description Scales an image by a factor
*/
ImageScaleInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default img_scale
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "img_scale";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to scale
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Scale Factor
2023-07-17 11:08:53 +00:00
* @description The factor by which to scale the image
* @default 2
*/
2023-07-17 11:08:53 +00:00
scale_factor?: number;
/**
2023-07-13 05:22:18 +00:00
* Resample Mode
* @description The resampling mode
* @default bicubic
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
resample_mode?: "nearest" | "box" | "bilinear" | "hamming" | "bicubic" | "lanczos";
};
/**
2023-07-13 05:22:18 +00:00
* ImageToLatentsInvocation
* @description Encodes an image into latents.
*/
ImageToLatentsInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default i2l
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "i2l";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to encode
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Vae
* @description Vae submodel
*/
2023-07-13 05:22:18 +00:00
vae?: components["schemas"]["VaeField"];
/**
2023-07-13 05:22:18 +00:00
* Tiled
* @description Encode latents by overlaping tiles(less memory consumption)
* @default false
*/
tiled?: boolean;
/**
* Fp32
* @description Decode in full precision
* @default false
*/
fp32?: boolean;
};
/**
2023-07-13 05:22:18 +00:00
* ImageUrlsDTO
* @description The URLs for an image and its thumbnail.
*/
ImageUrlsDTO: {
/**
2023-07-13 05:22:18 +00:00
* Image Name
* @description The unique name of the image.
*/
image_name: string;
/**
2023-07-13 05:22:18 +00:00
* Image Url
* @description The URL of the image.
*/
image_url: string;
/**
2023-07-13 05:22:18 +00:00
* Thumbnail Url
* @description The URL of the image's thumbnail.
*/
thumbnail_url: string;
};
2023-07-24 12:25:39 +00:00
/**
* ImageWatermarkInvocation
* @description Add an invisible watermark to an image
*/
ImageWatermarkInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default img_watermark
* @enum {string}
*/
type?: "img_watermark";
/**
* Image
* @description The image to check
*/
image?: components["schemas"]["ImageField"];
/**
* Text
* @description Watermark text
* @default InvokeAI
*/
text?: string;
/**
* Metadata
* @description Optional core metadata to be written to the image
*/
metadata?: components["schemas"]["CoreMetadata"];
};
/**
2023-07-13 05:22:18 +00:00
* InfillColorInvocation
* @description Infills transparent areas of an image with a solid color
*/
InfillColorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default infill_rgba
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "infill_rgba";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to infill
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Color
* @description The color to use to infill
* @default {
* "r": 127,
* "g": 127,
* "b": 127,
* "a": 255
* }
*/
2023-07-13 05:22:18 +00:00
color?: components["schemas"]["ColorField"];
};
/**
2023-07-13 05:22:18 +00:00
* InfillPatchMatchInvocation
* @description Infills transparent areas of an image using the PatchMatch algorithm
*/
InfillPatchMatchInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default infill_patchmatch
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "infill_patchmatch";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to infill
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
};
/**
2023-07-13 05:22:18 +00:00
* InfillTileInvocation
* @description Infills transparent areas of an image with tiles of the image
*/
InfillTileInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default infill_tile
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "infill_tile";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to infill
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Tile Size
* @description The tile size (px)
* @default 32
*/
tile_size?: number;
/**
2023-07-13 05:22:18 +00:00
* Seed
* @description The seed to use for tile generation (omit for random)
*/
seed?: number;
};
/**
2023-07-13 05:22:18 +00:00
* InpaintInvocation
* @description Generates an image using inpaint.
*/
InpaintInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default inpaint
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "inpaint";
/**
2023-07-13 05:22:18 +00:00
* Positive Conditioning
* @description Positive conditioning for generation
*/
2023-07-13 05:22:18 +00:00
positive_conditioning?: components["schemas"]["ConditioningField"];
/**
2023-07-13 05:22:18 +00:00
* Negative Conditioning
* @description Negative conditioning for generation
*/
2023-07-13 05:22:18 +00:00
negative_conditioning?: components["schemas"]["ConditioningField"];
/**
2023-07-13 05:22:18 +00:00
* Seed
* @description The seed to use (omit for random)
*/
seed?: number;
/**
2023-07-13 05:22:18 +00:00
* Steps
* @description The number of steps to use to generate the image
* @default 30
*/
steps?: number;
/**
2023-07-13 05:22:18 +00:00
* Width
* @description The width of the resulting image
* @default 512
*/
width?: number;
/**
2023-07-13 05:22:18 +00:00
* Height
* @description The height of the resulting image
* @default 512
*/
height?: number;
/**
2023-07-13 05:22:18 +00:00
* Cfg Scale
* @description The Classifier-Free Guidance, higher values may result in a result closer to the prompt
* @default 7.5
*/
cfg_scale?: number;
/**
2023-07-13 05:22:18 +00:00
* Scheduler
* @description The scheduler to use
* @default euler
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
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";
/**
* Unet
* @description UNet model
*/
2023-07-13 05:22:18 +00:00
unet?: components["schemas"]["UNetField"];
/**
2023-07-13 05:22:18 +00:00
* Vae
* @description Vae model
*/
2023-07-13 05:22:18 +00:00
vae?: components["schemas"]["VaeField"];
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The input image
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Strength
* @description The strength of the original image
* @default 0.75
*/
strength?: number;
/**
2023-07-13 05:22:18 +00:00
* Fit
* @description Whether or not the result should be fit to the aspect ratio of the input image
* @default true
*/
fit?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Mask
* @description The mask
*/
2023-07-13 05:22:18 +00:00
mask?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Seam Size
* @description The seam inpaint size (px)
* @default 96
*/
seam_size?: number;
/**
2023-07-13 05:22:18 +00:00
* Seam Blur
* @description The seam inpaint blur radius (px)
* @default 16
*/
seam_blur?: number;
/**
2023-07-13 05:22:18 +00:00
* Seam Strength
* @description The seam inpaint strength
* @default 0.75
*/
seam_strength?: number;
/**
2023-07-13 05:22:18 +00:00
* Seam Steps
* @description The number of steps to use for seam inpaint
* @default 30
*/
seam_steps?: number;
/**
2023-07-13 05:22:18 +00:00
* Tile Size
* @description The tile infill method size (px)
* @default 32
*/
tile_size?: number;
/**
2023-07-13 05:22:18 +00:00
* Infill Method
* @description The method used to infill empty regions (px)
2023-08-01 04:26:02 +00:00
* @default patchmatch
* @enum {string}
*/
2023-08-01 04:26:02 +00:00
infill_method?: "patchmatch" | "tile" | "solid";
/**
2023-07-13 05:22:18 +00:00
* Inpaint Width
* @description The width of the inpaint region (px)
*/
inpaint_width?: number;
/**
2023-07-13 05:22:18 +00:00
* Inpaint Height
* @description The height of the inpaint region (px)
*/
inpaint_height?: number;
/**
2023-07-13 05:22:18 +00:00
* Inpaint Fill
* @description The solid infill method color
* @default {
* "r": 127,
* "g": 127,
* "b": 127,
* "a": 255
* }
*/
2023-07-13 05:22:18 +00:00
inpaint_fill?: components["schemas"]["ColorField"];
/**
2023-07-13 05:22:18 +00:00
* Inpaint Replace
* @description The amount by which to replace masked areas with latent noise
* @default 0
*/
inpaint_replace?: number;
};
/**
2023-07-13 05:22:18 +00:00
* IntCollectionOutput
* @description A collection of integers
*/
IntCollectionOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default int_collection
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "int_collection";
/**
2023-07-13 05:22:18 +00:00
* Collection
* @description The int collection
* @default []
*/
2023-07-13 05:22:18 +00:00
collection?: (number)[];
};
/**
2023-07-13 05:22:18 +00:00
* IntOutput
* @description An integer output
*/
IntOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default int_output
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "int_output";
/**
2023-07-13 05:22:18 +00:00
* A
* @description The output integer
*/
a?: number;
};
/**
2023-07-13 05:22:18 +00:00
* IterateInvocation
* @description Iterates over a list of items
*/
IterateInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default iterate
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "iterate";
/**
2023-07-13 05:22:18 +00:00
* Collection
* @description The list of items to iterate over
*/
2023-07-13 05:22:18 +00:00
collection?: (unknown)[];
/**
2023-07-13 05:22:18 +00:00
* Index
* @description The index, will be provided on executed iterators
* @default 0
*/
index?: number;
};
/**
2023-07-13 05:22:18 +00:00
* IterateInvocationOutput
* @description Used to connect iteration outputs. Will be expanded to a specific output.
*/
IterateInvocationOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default iterate_output
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type: "iterate_output";
/**
2023-07-13 05:22:18 +00:00
* Item
* @description The item being iterated over
*/
item: unknown;
};
/**
2023-07-13 05:22:18 +00:00
* LatentsField
* @description A latents field used for passing latents between invocations
*/
LatentsField: {
/**
2023-07-13 05:22:18 +00:00
* Latents Name
* @description The name of the latents
*/
latents_name: string;
};
/**
2023-07-13 05:22:18 +00:00
* LatentsOutput
* @description Base class for invocations that output latents
*/
LatentsOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default latents_output
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "latents_output";
/**
2023-07-13 05:22:18 +00:00
* Latents
* @description The output latents
*/
2023-07-13 05:22:18 +00:00
latents?: components["schemas"]["LatentsField"];
/**
2023-07-13 05:22:18 +00:00
* Width
* @description The width of the latents in pixels
*/
width: number;
/**
2023-07-13 05:22:18 +00:00
* Height
* @description The height of the latents in pixels
*/
height: number;
};
/**
2023-07-13 05:22:18 +00:00
* LatentsToImageInvocation
* @description Generates an image from latents.
*/
LatentsToImageInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default l2i
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "l2i";
/**
2023-07-13 05:22:18 +00:00
* Latents
* @description The latents to generate an image from
*/
2023-07-13 05:22:18 +00:00
latents?: components["schemas"]["LatentsField"];
/**
2023-07-13 05:22:18 +00:00
* Vae
* @description Vae submodel
*/
2023-07-13 05:22:18 +00:00
vae?: components["schemas"]["VaeField"];
/**
2023-07-13 05:22:18 +00:00
* Tiled
2023-07-28 18:00:32 +00:00
* @description Decode latents by overlaping tiles (less memory consumption)
* @default false
*/
tiled?: boolean;
/**
* Fp32
* @description Decode in full precision
* @default false
*/
fp32?: boolean;
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +00:00
* Metadata
2023-07-12 15:15:09 +00:00
* @description Optional core metadata to be written to the image
*/
2023-07-13 05:22:18 +00:00
metadata?: components["schemas"]["CoreMetadata"];
};
/**
2023-07-13 05:22:18 +00:00
* LatentsToLatentsInvocation
* @description Generates latents using latents as base image.
*/
LatentsToLatentsInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default l2l
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "l2l";
/**
2023-07-13 05:22:18 +00:00
* Positive Conditioning
* @description Positive conditioning for generation
*/
2023-07-13 05:22:18 +00:00
positive_conditioning?: components["schemas"]["ConditioningField"];
/**
2023-07-13 05:22:18 +00:00
* Negative Conditioning
* @description Negative conditioning for generation
*/
2023-07-13 05:22:18 +00:00
negative_conditioning?: components["schemas"]["ConditioningField"];
/**
2023-07-13 05:22:18 +00:00
* Noise
* @description The noise to use
*/
2023-07-13 05:22:18 +00:00
noise?: components["schemas"]["LatentsField"];
/**
2023-07-13 05:22:18 +00:00
* Steps
* @description The number of steps to use to generate the image
* @default 10
*/
steps?: number;
/**
2023-07-13 05:22:18 +00:00
* Cfg Scale
* @description The Classifier-Free Guidance, higher values may result in a result closer to the prompt
* @default 7.5
*/
2023-07-13 05:22:18 +00:00
cfg_scale?: number | (number)[];
/**
2023-07-13 05:22:18 +00:00
* Scheduler
* @description The scheduler to use
* @default euler
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
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";
/**
* Unet
* @description UNet submodel
*/
2023-07-13 05:22:18 +00:00
unet?: components["schemas"]["UNetField"];
/**
2023-07-13 05:22:18 +00:00
* Control
* @description The control to use
*/
2023-07-13 05:22:18 +00:00
control?: components["schemas"]["ControlField"] | (components["schemas"]["ControlField"])[];
/**
2023-07-13 05:22:18 +00:00
* Latents
* @description The latents to use as a base image
*/
2023-07-13 05:22:18 +00:00
latents?: components["schemas"]["LatentsField"];
/**
2023-07-13 05:22:18 +00:00
* Strength
* @description The strength of the latents to use
* @default 0.7
*/
strength?: number;
};
/**
2023-07-13 05:22:18 +00:00
* LeresImageProcessorInvocation
* @description Applies leres processing to image
*/
LeresImageProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default leres_image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "leres_image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Thr A
* @description Leres parameter `thr_a`
* @default 0
*/
thr_a?: number;
/**
2023-07-13 05:22:18 +00:00
* Thr B
* @description Leres parameter `thr_b`
* @default 0
*/
thr_b?: number;
/**
2023-07-13 05:22:18 +00:00
* Boost
* @description Whether to use boost mode
* @default false
*/
boost?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Detect Resolution
* @description The pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* Image Resolution
* @description The pixel resolution for the output image
* @default 512
*/
image_resolution?: number;
};
/**
2023-07-13 05:22:18 +00:00
* LineartAnimeImageProcessorInvocation
* @description Applies line art anime processing to image
*/
LineartAnimeImageProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default lineart_anime_image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "lineart_anime_image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Detect Resolution
* @description The pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* Image Resolution
* @description The pixel resolution for the output image
* @default 512
*/
image_resolution?: number;
};
/**
2023-07-13 05:22:18 +00:00
* LineartImageProcessorInvocation
* @description Applies line art processing to image
*/
LineartImageProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default lineart_image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "lineart_image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Detect Resolution
* @description The pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* Image Resolution
* @description The pixel resolution for the output image
* @default 512
*/
image_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* Coarse
* @description Whether to use coarse mode
* @default false
*/
coarse?: boolean;
};
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +00:00
* LoRAMetadataField
2023-07-12 15:15:09 +00:00
* @description LoRA metadata for an image generated in InvokeAI.
*/
LoRAMetadataField: {
/**
2023-07-13 05:22:18 +00:00
* Lora
2023-07-12 15:15:09 +00:00
* @description The LoRA model
*/
2023-07-13 05:22:18 +00:00
lora: components["schemas"]["LoRAModelField"];
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-07-13 05:22:18 +00:00
* Model Type
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
model_type: "lora";
/** Path */
path: string;
/** Description */
description?: string;
2023-07-13 05:22:18 +00:00
model_format: components["schemas"]["LoRAModelFormat"];
error?: components["schemas"]["ModelError"];
};
2023-07-04 11:12:49 +00:00
/**
2023-07-13 05:22:18 +00:00
* LoRAModelField
2023-07-04 11:12:49 +00:00
* @description LoRA model field
*/
LoRAModelField: {
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
2023-07-04 11:12:49 +00:00
};
/**
2023-07-13 05:22:18 +00:00
* LoRAModelFormat
* @description An enumeration.
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
LoRAModelFormat: "lycoris" | "diffusers";
/**
2023-07-13 05:22:18 +00:00
* LoadImageInvocation
* @description Load an image and provide it as output.
*/
LoadImageInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default load_image
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "load_image";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to load
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
};
2023-07-20 15:45:54 +00:00
/**
* LogLevel
* @description An enumeration.
* @enum {integer}
*/
LogLevel: 0 | 10 | 20 | 30 | 40 | 50;
/** LoraInfo */
LoraInfo: {
/**
2023-07-13 05:22:18 +00:00
* Model Name
* @description Info to load submodel
*/
model_name: string;
/** @description Base model */
2023-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/** @description Info to load submodel */
2023-07-13 05:22:18 +00:00
model_type: components["schemas"]["ModelType"];
/** @description Info to load submodel */
2023-07-13 05:22:18 +00:00
submodel?: components["schemas"]["SubModelType"];
/**
2023-07-13 05:22:18 +00:00
* Weight
* @description Lora's weight which to use when apply to model
*/
weight: number;
};
/**
2023-07-13 05:22:18 +00:00
* LoraLoaderInvocation
* @description Apply selected lora to unet and text_encoder.
*/
LoraLoaderInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default lora_loader
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "lora_loader";
/**
2023-07-13 05:22:18 +00:00
* Lora
* @description Lora model name
*/
2023-07-13 05:22:18 +00:00
lora?: components["schemas"]["LoRAModelField"];
/**
2023-07-13 05:22:18 +00:00
* Weight
* @description With what weight to apply lora
* @default 0.75
*/
weight?: number;
/**
2023-07-13 05:22:18 +00:00
* Unet
* @description UNet model for applying lora
*/
2023-07-13 05:22:18 +00:00
unet?: components["schemas"]["UNetField"];
/**
2023-07-13 05:22:18 +00:00
* Clip
* @description Clip model for applying lora
*/
2023-07-13 05:22:18 +00:00
clip?: components["schemas"]["ClipField"];
};
/**
2023-07-13 05:22:18 +00:00
* LoraLoaderOutput
* @description Model loader output
*/
LoraLoaderOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default lora_loader_output
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "lora_loader_output";
/**
2023-07-13 05:22:18 +00:00
* Unet
* @description UNet submodel
*/
2023-07-13 05:22:18 +00:00
unet?: components["schemas"]["UNetField"];
/**
2023-07-13 05:22:18 +00:00
* Clip
* @description Tokenizer and text_encoder submodels
*/
2023-07-13 05:22:18 +00:00
clip?: components["schemas"]["ClipField"];
};
/**
* MainModelField
* @description Main model field
*/
MainModelField: {
/**
2023-07-13 05:22:18 +00:00
* Model Name
* @description Name of the model
*/
model_name: string;
/** @description Base model */
2023-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/** @description Model Type */
model_type: components["schemas"]["ModelType"];
};
/**
2023-07-13 05:22:18 +00:00
* MainModelLoaderInvocation
* @description Loads a main model, outputting its submodels.
*/
MainModelLoaderInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default main_model_loader
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "main_model_loader";
/**
2023-07-13 05:22:18 +00:00
* Model
* @description The model to load
*/
2023-07-13 05:22:18 +00:00
model: components["schemas"]["MainModelField"];
};
/**
2023-07-13 05:22:18 +00:00
* MaskFromAlphaInvocation
* @description Extracts the alpha channel of an image as a mask.
*/
MaskFromAlphaInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default tomask
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "tomask";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to create the mask from
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Invert
* @description Whether or not to invert the mask
* @default false
*/
invert?: boolean;
};
/**
2023-07-13 05:22:18 +00:00
* MaskOutput
* @description Base class for invocations that output a mask
*/
MaskOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default mask
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type: "mask";
/**
2023-07-13 05:22:18 +00:00
* Mask
* @description The output mask
*/
2023-07-13 05:22:18 +00:00
mask: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Width
* @description The width of the mask in pixels
*/
width?: number;
/**
2023-07-13 05:22:18 +00:00
* Height
* @description The height of the mask in pixels
*/
height?: number;
};
/**
2023-07-13 05:22:18 +00:00
* MediapipeFaceProcessorInvocation
* @description Applies mediapipe face processing to image
*/
MediapipeFaceProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default mediapipe_face_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "mediapipe_face_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Max Faces
* @description Maximum number of faces to detect
* @default 1
*/
max_faces?: number;
/**
2023-07-13 05:22:18 +00:00
* Min Confidence
* @description Minimum confidence for face detection
* @default 0.5
*/
min_confidence?: number;
};
/**
2023-07-13 05:22:18 +00:00
* MergeInterpolationMethod
* @description An enumeration.
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
MergeInterpolationMethod: "weighted_sum" | "sigmoid" | "inv_sigmoid" | "add_difference";
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +00:00
* MetadataAccumulatorInvocation
2023-07-12 15:15:09 +00:00
* @description Outputs a Core Metadata Object
*/
MetadataAccumulatorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
2023-07-12 15:15:09 +00:00
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
2023-07-12 15:15:09 +00:00
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default metadata_accumulator
2023-07-12 15:15:09 +00:00
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "metadata_accumulator";
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +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-13 05:22:18 +00:00
* Positive Prompt
2023-07-12 15:15:09 +00:00
* @description The positive prompt parameter
*/
positive_prompt: string;
/**
2023-07-13 05:22:18 +00:00
* Negative Prompt
2023-07-12 15:15:09 +00:00
* @description The negative prompt parameter
*/
negative_prompt: string;
/**
2023-07-13 05:22:18 +00:00
* Width
2023-07-12 15:15:09 +00:00
* @description The width parameter
*/
width: number;
/**
2023-07-13 05:22:18 +00:00
* Height
2023-07-12 15:15:09 +00:00
* @description The height parameter
*/
height: number;
/**
2023-07-13 05:22:18 +00:00
* Seed
2023-07-12 15:15:09 +00:00
* @description The seed used for noise generation
*/
seed: number;
/**
2023-07-13 05:22:18 +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-13 05:22:18 +00:00
* Cfg Scale
2023-07-12 15:15:09 +00:00
* @description The classifier-free guidance scale parameter
*/
cfg_scale: number;
/**
2023-07-13 05:22:18 +00:00
* Steps
2023-07-12 15:15:09 +00:00
* @description The number of steps used for inference
*/
steps: number;
/**
2023-07-13 05:22:18 +00:00
* Scheduler
2023-07-12 15:15:09 +00:00
* @description The scheduler used for inference
*/
scheduler: string;
/**
2023-07-13 05:22:18 +00:00
* Clip Skip
2023-07-12 15:15:09 +00:00
* @description The number of skipped CLIP layers
*/
clip_skip: number;
/**
2023-07-13 05:22:18 +00:00
* Model
2023-07-12 15:15:09 +00:00
* @description The main model used for inference
*/
2023-07-13 05:22:18 +00:00
model: components["schemas"]["MainModelField"];
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +00:00
* Controlnets
2023-07-12 15:15:09 +00:00
* @description The ControlNets used for inference
*/
2023-07-13 05:22:18 +00:00
controlnets: (components["schemas"]["ControlField"])[];
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +00:00
* Loras
2023-07-12 15:15:09 +00:00
* @description The LoRAs used for inference
*/
2023-07-13 05:22:18 +00:00
loras: (components["schemas"]["LoRAMetadataField"])[];
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +00:00
* Strength
2023-07-12 15:15:09 +00:00
* @description The strength used for latents-to-latents
*/
strength?: number;
/**
2023-07-13 05:22:18 +00:00
* Init Image
2023-07-12 15:15:09 +00:00
* @description The name of the initial image
*/
init_image?: string;
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
vae?: components["schemas"]["VAEModelField"];
/**
* Positive Style Prompt
* @description The positive style prompt parameter
*/
positive_style_prompt?: string;
/**
* Negative Style Prompt
* @description The negative style prompt parameter
*/
negative_style_prompt?: string;
/**
* Refiner Model
* @description The SDXL Refiner model used
*/
refiner_model?: components["schemas"]["MainModelField"];
/**
* Refiner Cfg Scale
* @description The classifier-free guidance scale parameter used for the refiner
*/
refiner_cfg_scale?: number;
/**
* Refiner Steps
* @description The number of steps used for the refiner
*/
refiner_steps?: number;
/**
* Refiner Scheduler
* @description The scheduler used for the refiner
*/
refiner_scheduler?: string;
/**
* Refiner Aesthetic Store
* @description The aesthetic score used for the refiner
*/
refiner_aesthetic_store?: number;
/**
* Refiner Start
* @description The start value used for refiner denoising
*/
refiner_start?: number;
2023-07-12 15:15:09 +00:00
};
/**
2023-07-13 05:22:18 +00:00
* MetadataAccumulatorOutput
2023-07-12 15:15:09 +00:00
* @description The output of the MetadataAccumulator node
*/
MetadataAccumulatorOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default metadata_accumulator_output
2023-07-12 15:15:09 +00:00
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "metadata_accumulator_output";
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +00:00
* Metadata
2023-07-12 15:15:09 +00:00
* @description The core metadata for the image
*/
2023-07-13 05:22:18 +00:00
metadata: components["schemas"]["CoreMetadata"];
2023-07-12 15:15:09 +00:00
};
/**
2023-07-13 05:22:18 +00:00
* MidasDepthImageProcessorInvocation
* @description Applies Midas depth processing to image
*/
MidasDepthImageProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default midas_depth_image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "midas_depth_image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* A Mult
* @description Midas parameter `a_mult` (a = a_mult * PI)
* @default 2
*/
a_mult?: number;
/**
2023-07-13 05:22:18 +00:00
* Bg Th
* @description Midas parameter `bg_th`
* @default 0.1
*/
bg_th?: number;
};
/**
2023-07-13 05:22:18 +00:00
* MlsdImageProcessorInvocation
* @description Applies MLSD processing to image
*/
MlsdImageProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default mlsd_image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "mlsd_image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Detect Resolution
* @description The pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* Image Resolution
* @description The pixel resolution for the output image
* @default 512
*/
image_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* Thr V
* @description MLSD parameter `thr_v`
* @default 0.1
*/
thr_v?: number;
/**
2023-07-13 05:22:18 +00:00
* Thr D
* @description MLSD parameter `thr_d`
* @default 0.1
*/
thr_d?: number;
};
/**
2023-07-13 05:22:18 +00:00
* ModelError
* @description An enumeration.
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
ModelError: "not_found";
/** ModelInfo */
ModelInfo: {
/**
2023-07-13 05:22:18 +00:00
* Model Name
* @description Info to load submodel
*/
model_name: string;
/** @description Base model */
2023-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/** @description Info to load submodel */
2023-07-13 05:22:18 +00:00
model_type: components["schemas"]["ModelType"];
/** @description Info to load submodel */
2023-07-13 05:22:18 +00:00
submodel?: components["schemas"]["SubModelType"];
};
/**
2023-07-13 05:22:18 +00:00
* ModelLoaderOutput
* @description Model loader output
*/
ModelLoaderOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default model_loader_output
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "model_loader_output";
/**
2023-07-13 05:22:18 +00:00
* Unet
* @description UNet submodel
*/
2023-07-13 05:22:18 +00:00
unet?: components["schemas"]["UNetField"];
/**
2023-07-13 05:22:18 +00:00
* Clip
* @description Tokenizer and text_encoder submodels
*/
2023-07-13 05:22:18 +00:00
clip?: components["schemas"]["ClipField"];
/**
2023-07-13 05:22:18 +00:00
* Vae
* @description Vae submodel
*/
2023-07-13 05:22:18 +00:00
vae?: components["schemas"]["VaeField"];
};
/**
2023-07-13 05:22:18 +00:00
* ModelType
* @description An enumeration.
* @enum {string}
*/
ModelType: "onnx" | "main" | "vae" | "lora" | "controlnet" | "embedding";
/**
2023-07-13 05:22:18 +00:00
* ModelVariantType
* @description An enumeration.
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
ModelVariantType: "normal" | "inpaint" | "depth";
/** ModelsList */
ModelsList: {
/** Models */
2023-07-27 13:55:28 +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-07-13 05:22:18 +00:00
};
/**
* MultiplyInvocation
* @description Multiplies two numbers
*/
MultiplyInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default mul
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "mul";
/**
2023-07-13 05:22:18 +00:00
* A
* @description The first number
* @default 0
*/
a?: number;
/**
2023-07-13 05:22:18 +00:00
* B
* @description The second number
* @default 0
*/
b?: number;
};
/**
2023-07-13 05:22:18 +00:00
* NoiseInvocation
* @description Generates latent noise.
*/
NoiseInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default noise
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "noise";
/**
2023-07-13 05:22:18 +00:00
* Seed
* @description The seed to use
*/
seed?: number;
/**
2023-07-13 05:22:18 +00:00
* Width
* @description The width of the resulting noise
* @default 512
*/
width?: number;
/**
2023-07-13 05:22:18 +00:00
* Height
* @description The height of the resulting noise
* @default 512
*/
height?: number;
2023-06-27 03:57:41 +00:00
/**
2023-07-13 05:22:18 +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;
};
/**
2023-07-13 05:22:18 +00:00
* NoiseOutput
* @description Invocation noise output
*/
NoiseOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default noise_output
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "noise_output";
/**
2023-07-13 05:22:18 +00:00
* Noise
* @description The output noise
*/
2023-07-13 05:22:18 +00:00
noise?: components["schemas"]["LatentsField"];
/**
2023-07-13 05:22:18 +00:00
* Width
* @description The width of the noise in pixels
*/
width: number;
/**
2023-07-13 05:22:18 +00:00
* Height
* @description The height of the noise in pixels
*/
height: number;
};
/**
2023-07-13 05:22:18 +00:00
* NormalbaeImageProcessorInvocation
* @description Applies NormalBae processing to image
*/
NormalbaeImageProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default normalbae_image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "normalbae_image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Detect Resolution
* @description The pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* Image Resolution
* @description The pixel resolution for the output image
* @default 512
*/
image_resolution?: number;
};
/**
* ONNXLatentsToImageInvocation
* @description Generates an image from latents.
*/
ONNXLatentsToImageInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default l2i_onnx
* @enum {string}
*/
type?: "l2i_onnx";
/**
* Latents
* @description The latents to generate an image from
*/
latents?: components["schemas"]["LatentsField"];
/**
* Vae
* @description Vae submodel
*/
vae?: components["schemas"]["VaeField"];
/**
* Metadata
* @description Optional core metadata to be written to the image
*/
metadata?: components["schemas"]["CoreMetadata"];
};
/**
* ONNXModelLoaderOutput
* @description Model loader output
*/
ONNXModelLoaderOutput: {
/**
* Type
* @default model_loader_output_onnx
* @enum {string}
*/
type?: "model_loader_output_onnx";
/**
* Unet
* @description UNet submodel
*/
unet?: components["schemas"]["UNetField"];
/**
* Clip
* @description Tokenizer and text_encoder submodels
*/
clip?: components["schemas"]["ClipField"];
/**
* Vae Decoder
* @description Vae submodel
*/
vae_decoder?: components["schemas"]["VaeField"];
/**
* Vae Encoder
* @description Vae submodel
*/
vae_encoder?: components["schemas"]["VaeField"];
};
/**
* ONNXPromptInvocation
* @description A node to process inputs and produce outputs.
* May use dependency injection in __init__ to receive providers.
*/
ONNXPromptInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default prompt_onnx
* @enum {string}
*/
type?: "prompt_onnx";
/**
* Prompt
* @description Prompt
* @default
*/
prompt?: string;
/**
* Clip
* @description Clip to use
*/
clip?: components["schemas"]["ClipField"];
};
/**
* ONNXSD1ModelLoaderInvocation
* @description Loading submodels of selected model.
*/
ONNXSD1ModelLoaderInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default sd1_model_loader_onnx
* @enum {string}
*/
type?: "sd1_model_loader_onnx";
/**
* Model Name
* @description Model to load
* @default
*/
model_name?: string;
};
/** ONNXStableDiffusion1ModelConfig */
ONNXStableDiffusion1ModelConfig: {
/** Model Name */
model_name: string;
base_model: components["schemas"]["BaseModelType"];
/**
* Model Type
* @enum {string}
*/
model_type: "onnx";
/** Path */
path: string;
/** Description */
description?: string;
2023-07-28 18:00:32 +00:00
/**
* Model Format
* @enum {string}
*/
model_format: "onnx";
error?: components["schemas"]["ModelError"];
variant: components["schemas"]["ModelVariantType"];
};
/** ONNXStableDiffusion2ModelConfig */
ONNXStableDiffusion2ModelConfig: {
/** Model Name */
model_name: string;
base_model: components["schemas"]["BaseModelType"];
/**
* Model Type
* @enum {string}
*/
model_type: "onnx";
/** Path */
path: string;
/** Description */
description?: string;
2023-07-28 18:00:32 +00:00
/**
* Model Format
* @enum {string}
*/
model_format: "onnx";
error?: components["schemas"]["ModelError"];
variant: components["schemas"]["ModelVariantType"];
prediction_type: components["schemas"]["SchedulerPredictionType"];
/** Upcast Attention */
upcast_attention: boolean;
};
/**
* ONNXTextToLatentsInvocation
* @description Generates latents from conditionings.
*/
ONNXTextToLatentsInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default t2l_onnx
* @enum {string}
*/
type?: "t2l_onnx";
/**
* Positive Conditioning
* @description Positive conditioning for generation
*/
positive_conditioning?: components["schemas"]["ConditioningField"];
/**
* Negative Conditioning
* @description Negative conditioning for generation
*/
negative_conditioning?: components["schemas"]["ConditioningField"];
/**
* Noise
* @description The noise to use
*/
noise?: components["schemas"]["LatentsField"];
/**
* Steps
* @description The number of steps to use to generate the image
* @default 10
*/
steps?: number;
/**
* Cfg Scale
* @description The Classifier-Free Guidance, higher values may result in a result closer to the prompt
* @default 7.5
*/
cfg_scale?: number | (number)[];
/**
* Scheduler
* @description The scheduler to use
* @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";
/**
* Precision
* @description The precision to use when generating latents
* @default tensor(float16)
* @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)";
/**
* Unet
* @description UNet submodel
*/
unet?: components["schemas"]["UNetField"];
/**
* Control
* @description The control to use
*/
control?: components["schemas"]["ControlField"] | (components["schemas"]["ControlField"])[];
};
/**
2023-07-13 05:22:18 +00:00
* OffsetPaginatedResults[BoardDTO]
* @description Offset-paginated results
*/
OffsetPaginatedResults_BoardDTO_: {
/**
2023-07-13 05:22:18 +00:00
* Items
* @description Items
*/
2023-07-13 05:22:18 +00:00
items: (components["schemas"]["BoardDTO"])[];
/**
2023-07-13 05:22:18 +00:00
* Offset
* @description Offset from which to retrieve items
*/
offset: number;
/**
2023-07-13 05:22:18 +00:00
* Limit
* @description Limit of items to get
*/
limit: number;
/**
2023-07-13 05:22:18 +00:00
* Total
* @description Total number of items in result
*/
total: number;
};
/**
2023-07-13 05:22:18 +00:00
* OffsetPaginatedResults[ImageDTO]
* @description Offset-paginated results
*/
OffsetPaginatedResults_ImageDTO_: {
/**
2023-07-13 05:22:18 +00:00
* Items
* @description Items
*/
2023-07-13 05:22:18 +00:00
items: (components["schemas"]["ImageDTO"])[];
/**
2023-07-13 05:22:18 +00:00
* Offset
* @description Offset from which to retrieve items
*/
offset: number;
/**
2023-07-13 05:22:18 +00:00
* Limit
* @description Limit of items to get
*/
limit: number;
/**
2023-07-13 05:22:18 +00:00
* Total
* @description Total number of items in result
*/
total: number;
};
/**
* OnnxModelField
* @description Onnx model field
*/
OnnxModelField: {
/**
* Model Name
* @description Name of the model
*/
model_name: string;
/** @description Base model */
base_model: components["schemas"]["BaseModelType"];
/** @description Model Type */
model_type: components["schemas"]["ModelType"];
};
/**
* OnnxModelLoaderInvocation
* @description Loads a main model, outputting its submodels.
*/
OnnxModelLoaderInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default onnx_model_loader
* @enum {string}
*/
type?: "onnx_model_loader";
/**
* Model
* @description The model to load
*/
model: components["schemas"]["OnnxModelField"];
};
/**
2023-07-13 05:22:18 +00:00
* OpenposeImageProcessorInvocation
* @description Applies Openpose processing to image
*/
OpenposeImageProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default openpose_image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "openpose_image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Hand And Face
* @description Whether to use hands and face mode
* @default false
*/
hand_and_face?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Detect Resolution
* @description The pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* Image Resolution
* @description The pixel resolution for the output image
* @default 512
*/
image_resolution?: number;
};
/**
2023-07-13 05:22:18 +00:00
* PaginatedResults[GraphExecutionState]
* @description Paginated results
*/
PaginatedResults_GraphExecutionState_: {
/**
2023-07-13 05:22:18 +00:00
* Items
* @description Items
*/
2023-07-13 05:22:18 +00:00
items: (components["schemas"]["GraphExecutionState"])[];
/**
2023-07-13 05:22:18 +00:00
* Page
* @description Current Page
*/
page: number;
/**
2023-07-13 05:22:18 +00:00
* Pages
* @description Total number of pages
*/
pages: number;
/**
2023-07-13 05:22:18 +00:00
* Per Page
* @description Number of items per page
*/
per_page: number;
/**
2023-07-13 05:22:18 +00:00
* Total
* @description Total number of items in result
*/
total: number;
};
/**
2023-07-13 05:22:18 +00:00
* ParamFloatInvocation
* @description A float parameter
*/
ParamFloatInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default param_float
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "param_float";
/**
2023-07-13 05:22:18 +00:00
* Param
* @description The float value
* @default 0
*/
param?: number;
};
/**
2023-07-13 05:22:18 +00:00
* ParamIntInvocation
* @description An integer parameter
*/
ParamIntInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default param_int
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "param_int";
/**
2023-07-13 05:22:18 +00:00
* A
* @description The integer value
* @default 0
*/
a?: number;
};
2023-07-29 03:59:52 +00:00
/**
* ParamPromptInvocation
* @description A prompt input parameter
*/
ParamPromptInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default param_prompt
* @enum {string}
*/
type?: "param_prompt";
/**
* Prompt
* @description The prompt value
* @default
*/
prompt?: string;
};
/**
* ParamStringInvocation
* @description A string parameter
*/
ParamStringInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default param_string
* @enum {string}
*/
type?: "param_string";
/**
* Text
* @description The string value
* @default
*/
text?: string;
};
/**
2023-07-13 05:22:18 +00:00
* PidiImageProcessorInvocation
* @description Applies PIDI processing to image
*/
PidiImageProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default pidi_image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "pidi_image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Detect Resolution
* @description The pixel resolution for detection
* @default 512
*/
detect_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* Image Resolution
* @description The pixel resolution for the output image
* @default 512
*/
image_resolution?: number;
/**
2023-07-13 05:22:18 +00:00
* Safe
* @description Whether to use safe mode
* @default false
*/
safe?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Scribble
* @description Whether to use scribble mode
* @default false
*/
scribble?: boolean;
};
/**
2023-07-13 05:22:18 +00:00
* PromptCollectionOutput
* @description Base class for invocations that output a collection of prompts
*/
PromptCollectionOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default prompt_collection_output
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type: "prompt_collection_output";
/**
2023-07-13 05:22:18 +00:00
* Prompt Collection
* @description The output prompt collection
*/
2023-07-13 05:22:18 +00:00
prompt_collection: (string)[];
/**
2023-07-13 05:22:18 +00:00
* Count
* @description The size of the prompt collection
*/
count: number;
};
/**
2023-07-13 05:22:18 +00:00
* PromptOutput
* @description Base class for invocations that output a prompt
*/
PromptOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default prompt
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type: "prompt";
/**
2023-07-13 05:22:18 +00:00
* Prompt
* @description The output prompt
*/
prompt: string;
};
/**
* PromptsFromFileInvocation
* @description Loads prompts from a text file
*/
PromptsFromFileInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default prompt_from_file
* @enum {string}
*/
type?: "prompt_from_file";
/**
* File Path
* @description Path to prompt text file
*/
file_path: string;
/**
* Pre Prompt
* @description String to prepend to each prompt
*/
pre_prompt?: string;
/**
* Post Prompt
* @description String to append to each prompt
*/
post_prompt?: string;
/**
* Start Line
* @description Line in the file to start start from
* @default 1
*/
start_line?: number;
/**
* Max Prompts
* @description Max lines to read from file (0=all)
* @default 1
*/
max_prompts?: number;
};
/**
2023-07-13 05:22:18 +00:00
* RandomIntInvocation
* @description Outputs a single random integer.
*/
RandomIntInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default rand_int
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "rand_int";
/**
2023-07-13 05:22:18 +00:00
* Low
* @description The inclusive low value
* @default 0
*/
low?: number;
/**
2023-07-13 05:22:18 +00:00
* High
* @description The exclusive high value
* @default 2147483647
*/
high?: number;
};
/**
2023-07-13 05:22:18 +00:00
* RandomRangeInvocation
* @description Creates a collection of random numbers
*/
RandomRangeInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default random_range
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "random_range";
/**
2023-07-13 05:22:18 +00:00
* Low
* @description The inclusive low value
* @default 0
*/
low?: number;
/**
2023-07-13 05:22:18 +00:00
* High
* @description The exclusive high value
* @default 2147483647
*/
high?: number;
/**
2023-07-13 05:22:18 +00:00
* Size
* @description The number of values to generate
* @default 1
*/
size?: number;
/**
2023-07-13 05:22:18 +00:00
* Seed
* @description The seed for the RNG (omit for random)
*/
seed?: number;
};
/**
2023-07-13 05:22:18 +00:00
* RangeInvocation
* @description Creates a range of numbers from start to stop with step
*/
RangeInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default range
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "range";
/**
2023-07-13 05:22:18 +00:00
* Start
* @description The start of the range
* @default 0
*/
start?: number;
/**
2023-07-13 05:22:18 +00:00
* Stop
* @description The stop of the range
* @default 10
*/
stop?: number;
/**
2023-07-13 05:22:18 +00:00
* Step
* @description The step of the range
* @default 1
*/
step?: number;
};
/**
2023-07-13 05:22:18 +00:00
* RangeOfSizeInvocation
* @description Creates a range from start to start + size with step
*/
RangeOfSizeInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default range_of_size
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "range_of_size";
/**
2023-07-13 05:22:18 +00:00
* Start
* @description The start of the range
* @default 0
*/
start?: number;
/**
2023-07-13 05:22:18 +00:00
* Size
* @description The number of values
* @default 1
*/
size?: number;
/**
2023-07-13 05:22:18 +00:00
* Step
* @description The step of the range
* @default 1
*/
step?: 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
/** RemoveImagesFromBoardResult */
RemoveImagesFromBoardResult: {
/**
* Removed Image Names
* @description The image names that were removed from their board
*/
removed_image_names: (string)[];
};
/**
2023-07-13 05:22:18 +00:00
* ResizeLatentsInvocation
* @description Resizes latents to explicit width/height (in pixels). Provided dimensions are floor-divided by 8.
*/
ResizeLatentsInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default lresize
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "lresize";
/**
2023-07-13 05:22:18 +00:00
* Latents
* @description The latents to resize
*/
2023-07-13 05:22:18 +00:00
latents?: components["schemas"]["LatentsField"];
/**
2023-07-13 05:22:18 +00:00
* Width
* @description The width to resize to (px)
* @default 512
*/
width?: number;
/**
2023-07-13 05:22:18 +00:00
* Height
* @description The height to resize to (px)
* @default 512
*/
height?: number;
/**
2023-07-13 05:22:18 +00:00
* Mode
* @description The interpolation mode
* @default bilinear
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
mode?: "nearest" | "linear" | "bilinear" | "bicubic" | "trilinear" | "area" | "nearest-exact";
/**
* Antialias
* @description Whether or not to antialias (applied in bilinear and bicubic modes only)
* @default false
*/
antialias?: boolean;
};
/**
2023-07-13 05:22:18 +00:00
* ResourceOrigin
* @description The origin of a resource (eg image).
2023-07-13 05:22:18 +00:00
*
* - INTERNAL: The resource was created by the application.
* - EXTERNAL: The resource was not created by the application.
2023-07-13 05:22:18 +00:00
* This may be a user-initiated upload, or an internal application upload (eg Canvas init image).
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
ResourceOrigin: "internal" | "external";
/**
* SDXLCompelPromptInvocation
* @description Parse prompt using compel package to conditioning.
*/
SDXLCompelPromptInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default sdxl_compel_prompt
* @enum {string}
*/
type?: "sdxl_compel_prompt";
/**
* Prompt
* @description Prompt
* @default
*/
prompt?: string;
/**
* Style
* @description Style prompt
* @default
*/
style?: string;
/**
* Original Width
* @default 1024
*/
original_width?: number;
/**
* Original Height
* @default 1024
*/
original_height?: number;
/**
* Crop Top
* @default 0
*/
crop_top?: number;
/**
* Crop Left
* @default 0
*/
crop_left?: number;
/**
* Target Width
* @default 1024
*/
target_width?: number;
/**
* Target Height
* @default 1024
*/
target_height?: number;
/**
* Clip
* @description Clip to use
*/
clip?: components["schemas"]["ClipField"];
/**
* Clip2
* @description Clip2 to use
*/
clip2?: components["schemas"]["ClipField"];
};
/**
* SDXLLatentsToLatentsInvocation
* @description Generates latents from conditionings.
*/
SDXLLatentsToLatentsInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default l2l_sdxl
* @enum {string}
*/
type?: "l2l_sdxl";
/**
* Positive Conditioning
* @description Positive conditioning for generation
*/
positive_conditioning?: components["schemas"]["ConditioningField"];
/**
* Negative Conditioning
* @description Negative conditioning for generation
*/
negative_conditioning?: components["schemas"]["ConditioningField"];
/**
* Noise
* @description The noise to use
*/
noise?: components["schemas"]["LatentsField"];
/**
* Steps
* @description The number of steps to use to generate the image
* @default 10
*/
steps?: number;
/**
* Cfg Scale
* @description The Classifier-Free Guidance, higher values may result in a result closer to the prompt
* @default 7.5
*/
cfg_scale?: number | (number)[];
/**
* Scheduler
* @description The scheduler to use
* @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";
2023-07-13 05:22:18 +00:00
/**
* Unet
* @description UNet submodel
*/
unet?: components["schemas"]["UNetField"];
/**
* Latents
* @description Initial latents
*/
latents?: components["schemas"]["LatentsField"];
/**
* Denoising Start
* @default 0
*/
denoising_start?: number;
/**
* Denoising End
* @default 1
*/
denoising_end?: number;
};
/**
* SDXLLoraLoaderInvocation
* @description Apply selected lora to unet and text_encoder.
*/
SDXLLoraLoaderInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default sdxl_lora_loader
* @enum {string}
*/
type?: "sdxl_lora_loader";
/**
* Lora
* @description Lora model name
*/
lora?: components["schemas"]["LoRAModelField"];
/**
* Weight
* @description With what weight to apply lora
* @default 0.75
*/
weight?: number;
/**
* Unet
* @description UNet model for applying lora
*/
unet?: components["schemas"]["UNetField"];
/**
* Clip
* @description Clip model for applying lora
*/
clip?: components["schemas"]["ClipField"];
/**
* Clip2
* @description Clip2 model for applying lora
*/
clip2?: components["schemas"]["ClipField"];
};
/**
* SDXLLoraLoaderOutput
* @description Model loader output
*/
SDXLLoraLoaderOutput: {
/**
* Type
* @default sdxl_lora_loader_output
* @enum {string}
*/
type?: "sdxl_lora_loader_output";
/**
* Unet
* @description UNet submodel
*/
unet?: components["schemas"]["UNetField"];
/**
* Clip
* @description Tokenizer and text_encoder submodels
*/
clip?: components["schemas"]["ClipField"];
/**
* Clip2
* @description Tokenizer2 and text_encoder2 submodels
*/
clip2?: components["schemas"]["ClipField"];
};
/**
* SDXLModelLoaderInvocation
* @description Loads an sdxl base model, outputting its submodels.
*/
SDXLModelLoaderInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default sdxl_model_loader
* @enum {string}
*/
type?: "sdxl_model_loader";
/**
* Model
* @description The model to load
*/
model: components["schemas"]["MainModelField"];
};
/**
* SDXLModelLoaderOutput
* @description SDXL base model loader output
*/
SDXLModelLoaderOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default sdxl_model_loader_output
* @enum {string}
*/
type?: "sdxl_model_loader_output";
/**
* Unet
* @description UNet submodel
*/
unet?: components["schemas"]["UNetField"];
/**
* Clip
* @description Tokenizer and text_encoder submodels
*/
clip?: components["schemas"]["ClipField"];
/**
* Clip2
* @description Tokenizer and text_encoder submodels
*/
clip2?: components["schemas"]["ClipField"];
/**
* Vae
* @description Vae submodel
*/
vae?: components["schemas"]["VaeField"];
};
/**
* SDXLRawPromptInvocation
2023-07-18 16:45:47 +00:00
* @description Pass unmodified prompt to conditioning without compel processing.
*/
SDXLRawPromptInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default sdxl_raw_prompt
* @enum {string}
*/
type?: "sdxl_raw_prompt";
/**
* Prompt
* @description Prompt
* @default
*/
prompt?: string;
/**
* Style
* @description Style prompt
* @default
*/
style?: string;
/**
* Original Width
* @default 1024
*/
original_width?: number;
/**
* Original Height
* @default 1024
*/
original_height?: number;
/**
* Crop Top
* @default 0
*/
crop_top?: number;
/**
* Crop Left
* @default 0
*/
crop_left?: number;
/**
* Target Width
* @default 1024
*/
target_width?: number;
/**
* Target Height
* @default 1024
*/
target_height?: number;
/**
* Clip
* @description Clip to use
*/
clip?: components["schemas"]["ClipField"];
/**
* Clip2
* @description Clip2 to use
*/
clip2?: components["schemas"]["ClipField"];
};
/**
* SDXLRefinerCompelPromptInvocation
* @description Parse prompt using compel package to conditioning.
*/
SDXLRefinerCompelPromptInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default sdxl_refiner_compel_prompt
* @enum {string}
*/
type?: "sdxl_refiner_compel_prompt";
/**
* Style
* @description Style prompt
* @default
*/
style?: string;
/**
* Original Width
* @default 1024
*/
original_width?: number;
/**
* Original Height
* @default 1024
*/
original_height?: number;
/**
* Crop Top
* @default 0
*/
crop_top?: number;
/**
* Crop Left
* @default 0
*/
crop_left?: number;
/**
* Aesthetic Score
* @default 6
*/
aesthetic_score?: number;
/**
* Clip2
* @description Clip to use
*/
clip2?: components["schemas"]["ClipField"];
};
/**
* SDXLRefinerModelLoaderInvocation
* @description Loads an sdxl refiner model, outputting its submodels.
*/
SDXLRefinerModelLoaderInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default sdxl_refiner_model_loader
* @enum {string}
*/
type?: "sdxl_refiner_model_loader";
/**
* Model
* @description The model to load
*/
model: components["schemas"]["MainModelField"];
};
/**
* SDXLRefinerModelLoaderOutput
* @description SDXL refiner model loader output
*/
SDXLRefinerModelLoaderOutput: {
/**
* Type
* @default sdxl_refiner_model_loader_output
* @enum {string}
*/
type?: "sdxl_refiner_model_loader_output";
/**
* Unet
* @description UNet submodel
*/
unet?: components["schemas"]["UNetField"];
/**
* Clip2
* @description Tokenizer and text_encoder submodels
*/
clip2?: components["schemas"]["ClipField"];
/**
* Vae
* @description Vae submodel
*/
vae?: components["schemas"]["VaeField"];
};
/**
* SDXLRefinerRawPromptInvocation
* @description Parse prompt using compel package to conditioning.
*/
SDXLRefinerRawPromptInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default sdxl_refiner_raw_prompt
* @enum {string}
*/
type?: "sdxl_refiner_raw_prompt";
/**
* Style
* @description Style prompt
* @default
*/
style?: string;
/**
* Original Width
* @default 1024
*/
original_width?: number;
/**
* Original Height
* @default 1024
*/
original_height?: number;
/**
* Crop Top
* @default 0
*/
crop_top?: number;
/**
* Crop Left
* @default 0
*/
crop_left?: number;
/**
* Aesthetic Score
* @default 6
*/
aesthetic_score?: number;
/**
* Clip2
* @description Clip to use
*/
clip2?: components["schemas"]["ClipField"];
};
/**
* SDXLTextToLatentsInvocation
* @description Generates latents from conditionings.
*/
SDXLTextToLatentsInvocation: {
/**
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
* Type
* @default t2l_sdxl
* @enum {string}
*/
type?: "t2l_sdxl";
/**
* Positive Conditioning
* @description Positive conditioning for generation
*/
positive_conditioning?: components["schemas"]["ConditioningField"];
/**
* Negative Conditioning
* @description Negative conditioning for generation
*/
negative_conditioning?: components["schemas"]["ConditioningField"];
/**
* Noise
* @description The noise to use
*/
noise?: components["schemas"]["LatentsField"];
/**
* Steps
* @description The number of steps to use to generate the image
* @default 10
*/
steps?: number;
/**
* Cfg Scale
* @description The Classifier-Free Guidance, higher values may result in a result closer to the prompt
* @default 7.5
*/
cfg_scale?: number | (number)[];
/**
* Scheduler
* @description The scheduler to use
* @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";
/**
* Unet
* @description UNet submodel
*/
unet?: components["schemas"]["UNetField"];
/**
* Denoising End
* @default 1
*/
denoising_end?: number;
};
/**
2023-07-13 05:22:18 +00:00
* ScaleLatentsInvocation
* @description Scales latents by a given factor.
*/
ScaleLatentsInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default lscale
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "lscale";
/**
2023-07-13 05:22:18 +00:00
* Latents
* @description The latents to scale
*/
2023-07-13 05:22:18 +00:00
latents?: components["schemas"]["LatentsField"];
/**
2023-07-13 05:22:18 +00:00
* Scale Factor
* @description The factor by which to scale the latents
*/
scale_factor: number;
/**
2023-07-13 05:22:18 +00:00
* Mode
* @description The interpolation mode
* @default bilinear
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
mode?: "nearest" | "linear" | "bilinear" | "bicubic" | "trilinear" | "area" | "nearest-exact";
/**
* Antialias
* @description Whether or not to antialias (applied in bilinear and bicubic modes only)
* @default false
*/
antialias?: boolean;
};
/**
* SchedulerPredictionType
* @description An enumeration.
* @enum {string}
*/
SchedulerPredictionType: "epsilon" | "v_prediction" | "sample";
/**
2023-07-13 05:22:18 +00:00
* SegmentAnythingProcessorInvocation
* @description Applies segment anything processing to image
*/
SegmentAnythingProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default segment_anything_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "segment_anything_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
};
/**
2023-07-13 05:22:18 +00:00
* ShowImageInvocation
* @description Displays a provided image, and passes it forward in the pipeline.
*/
ShowImageInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default show_image
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "show_image";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to show
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
};
/** StableDiffusion1ModelCheckpointConfig */
StableDiffusion1ModelCheckpointConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-07-13 05:22:18 +00:00
* Model Type
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
model_type: "main";
/** Path */
path: string;
/** Description */
description?: string;
/**
2023-07-13 05:22:18 +00:00
* Model Format
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
model_format: "checkpoint";
error?: components["schemas"]["ModelError"];
/** Vae */
vae?: string;
/** Config */
config: string;
2023-07-13 05:22:18 +00:00
variant: components["schemas"]["ModelVariantType"];
};
/** StableDiffusion1ModelDiffusersConfig */
StableDiffusion1ModelDiffusersConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-07-13 05:22:18 +00:00
* Model Type
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
model_type: "main";
/** Path */
path: string;
/** Description */
description?: string;
/**
2023-07-13 05:22:18 +00:00
* Model Format
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
model_format: "diffusers";
error?: components["schemas"]["ModelError"];
/** Vae */
vae?: string;
2023-07-13 05:22:18 +00:00
variant: components["schemas"]["ModelVariantType"];
};
/** StableDiffusion2ModelCheckpointConfig */
StableDiffusion2ModelCheckpointConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-07-13 05:22:18 +00:00
* Model Type
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
model_type: "main";
/** Path */
path: string;
/** Description */
description?: string;
/**
2023-07-13 05:22:18 +00:00
* Model Format
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
model_format: "checkpoint";
error?: components["schemas"]["ModelError"];
/** Vae */
vae?: string;
/** Config */
config: string;
2023-07-13 05:22:18 +00:00
variant: components["schemas"]["ModelVariantType"];
};
/** StableDiffusion2ModelDiffusersConfig */
StableDiffusion2ModelDiffusersConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-07-13 05:22:18 +00:00
* Model Type
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
model_type: "main";
/** Path */
path: string;
/** Description */
description?: string;
/**
2023-07-13 05:22:18 +00:00
* Model Format
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
model_format: "diffusers";
error?: components["schemas"]["ModelError"];
/** Vae */
vae?: string;
2023-07-13 05:22:18 +00:00
variant: components["schemas"]["ModelVariantType"];
};
/** StableDiffusionXLModelCheckpointConfig */
StableDiffusionXLModelCheckpointConfig: {
/** Model Name */
model_name: string;
base_model: components["schemas"]["BaseModelType"];
/**
* Model Type
* @enum {string}
*/
model_type: "main";
/** Path */
path: string;
/** Description */
description?: string;
/**
* Model Format
* @enum {string}
*/
model_format: "checkpoint";
error?: components["schemas"]["ModelError"];
/** Vae */
vae?: string;
/** Config */
config: string;
variant: components["schemas"]["ModelVariantType"];
};
/** StableDiffusionXLModelDiffusersConfig */
StableDiffusionXLModelDiffusersConfig: {
/** Model Name */
model_name: string;
base_model: components["schemas"]["BaseModelType"];
/**
* Model Type
* @enum {string}
*/
model_type: "main";
/** Path */
path: string;
/** Description */
description?: string;
/**
* Model Format
* @enum {string}
*/
model_format: "diffusers";
error?: components["schemas"]["ModelError"];
/** Vae */
vae?: string;
variant: components["schemas"]["ModelVariantType"];
};
/**
2023-07-13 05:22:18 +00:00
* StepParamEasingInvocation
* @description Experimental per-step parameter easing for denoising steps
*/
StepParamEasingInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default step_param_easing
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "step_param_easing";
/**
2023-07-13 05:22:18 +00:00
* Easing
* @description The easing function to use
* @default Linear
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
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";
/**
* Num Steps
* @description number of denoising steps
* @default 20
*/
num_steps?: number;
/**
2023-07-13 05:22:18 +00:00
* Start Value
* @description easing starting value
* @default 0
*/
start_value?: number;
/**
2023-07-13 05:22:18 +00:00
* End Value
* @description easing ending value
* @default 1
*/
end_value?: number;
/**
2023-07-13 05:22:18 +00:00
* Start Step Percent
* @description fraction of steps at which to start easing
* @default 0
*/
start_step_percent?: number;
/**
2023-07-13 05:22:18 +00:00
* End Step Percent
* @description fraction of steps after which to end easing
* @default 1
*/
end_step_percent?: number;
/**
2023-07-13 05:22:18 +00:00
* Pre Start Value
* @description value before easing start
*/
pre_start_value?: number;
/**
2023-07-13 05:22:18 +00:00
* Post End Value
* @description value after easing end
*/
post_end_value?: number;
/**
2023-07-13 05:22:18 +00:00
* Mirror
* @description include mirror of easing function
* @default false
*/
mirror?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Show Easing Plot
* @description show easing plot
* @default false
*/
show_easing_plot?: boolean;
};
/**
* StringOutput
* @description A string output
*/
StringOutput: {
/**
* Type
* @default string_output
* @enum {string}
*/
type?: "string_output";
/**
* Text
* @description The output string
*/
text?: string;
};
/**
2023-07-13 05:22:18 +00:00
* SubModelType
* @description An enumeration.
* @enum {string}
*/
SubModelType: "unet" | "text_encoder" | "text_encoder_2" | "tokenizer" | "tokenizer_2" | "vae" | "vae_decoder" | "vae_encoder" | "scheduler" | "safety_checker";
/**
2023-07-13 05:22:18 +00:00
* SubtractInvocation
* @description Subtracts two numbers
*/
SubtractInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default sub
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "sub";
/**
2023-07-13 05:22:18 +00:00
* A
* @description The first number
* @default 0
*/
a?: number;
/**
2023-07-13 05:22:18 +00:00
* B
* @description The second number
* @default 0
*/
b?: number;
};
/**
2023-07-13 05:22:18 +00:00
* TextToLatentsInvocation
* @description Generates latents from conditionings.
*/
TextToLatentsInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default t2l
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "t2l";
/**
2023-07-13 05:22:18 +00:00
* Positive Conditioning
* @description Positive conditioning for generation
*/
2023-07-13 05:22:18 +00:00
positive_conditioning?: components["schemas"]["ConditioningField"];
/**
2023-07-13 05:22:18 +00:00
* Negative Conditioning
* @description Negative conditioning for generation
*/
2023-07-13 05:22:18 +00:00
negative_conditioning?: components["schemas"]["ConditioningField"];
/**
2023-07-13 05:22:18 +00:00
* Noise
* @description The noise to use
*/
2023-07-13 05:22:18 +00:00
noise?: components["schemas"]["LatentsField"];
/**
2023-07-13 05:22:18 +00:00
* Steps
* @description The number of steps to use to generate the image
* @default 10
*/
steps?: number;
/**
2023-07-13 05:22:18 +00:00
* Cfg Scale
* @description The Classifier-Free Guidance, higher values may result in a result closer to the prompt
* @default 7.5
*/
2023-07-13 05:22:18 +00:00
cfg_scale?: number | (number)[];
/**
2023-07-13 05:22:18 +00:00
* Scheduler
* @description The scheduler to use
* @default euler
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
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";
/**
* Unet
* @description UNet submodel
*/
2023-07-13 05:22:18 +00:00
unet?: components["schemas"]["UNetField"];
/**
2023-07-13 05:22:18 +00:00
* Control
* @description The control to use
*/
2023-07-13 05:22:18 +00:00
control?: components["schemas"]["ControlField"] | (components["schemas"]["ControlField"])[];
};
/** TextualInversionModelConfig */
TextualInversionModelConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-07-13 05:22:18 +00:00
* Model Type
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
model_type: "embedding";
/** Path */
path: string;
/** Description */
description?: string;
/** Model Format */
model_format: null;
2023-07-13 05:22:18 +00:00
error?: components["schemas"]["ModelError"];
};
/**
2023-07-13 05:22:18 +00:00
* TileResamplerProcessorInvocation
* @description Base class for invocations that preprocess images for ControlNet
*/
TileResamplerProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default tile_image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "tile_image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
/**
2023-07-13 05:22:18 +00:00
* Down Sampling Rate
* @description Down sampling rate
* @default 1
*/
down_sampling_rate?: number;
};
/** UNetField */
UNetField: {
/**
2023-07-13 05:22:18 +00:00
* Unet
* @description Info to load unet submodel
*/
2023-07-13 05:22:18 +00:00
unet: components["schemas"]["ModelInfo"];
/**
2023-07-13 05:22:18 +00:00
* Scheduler
* @description Info to load scheduler submodel
*/
2023-07-13 05:22:18 +00:00
scheduler: components["schemas"]["ModelInfo"];
/**
2023-07-13 05:22:18 +00:00
* Loras
* @description Loras to apply on model loading
*/
2023-07-13 05:22:18 +00:00
loras: (components["schemas"]["LoraInfo"])[];
};
/** Upscaler */
Upscaler: {
/**
* Upscaling Method
* @description Name of upscaling method
*/
upscaling_method: string;
/**
* Upscaling Models
* @description List of upscaling models for this method
*/
upscaling_models: (string)[];
};
2023-06-30 22:15:04 +00:00
/**
2023-07-13 05:22:18 +00:00
* VAEModelField
2023-06-30 22:15:04 +00:00
* @description Vae model field
*/
VAEModelField: {
/**
2023-07-13 05:22:18 +00:00
* Model Name
2023-06-30 22:15:04 +00:00
* @description Name of the model
*/
model_name: string;
/** @description Base model */
2023-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
2023-06-30 22:15:04 +00:00
};
/** VaeField */
VaeField: {
/**
2023-07-13 05:22:18 +00:00
* Vae
* @description Info to load vae submodel
*/
2023-07-13 05:22:18 +00:00
vae: components["schemas"]["ModelInfo"];
};
2023-06-30 22:15:04 +00:00
/**
2023-07-13 05:22:18 +00:00
* VaeLoaderInvocation
2023-06-30 22:15:04 +00:00
* @description Loads a VAE model, outputting a VaeLoaderOutput
*/
VaeLoaderInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
2023-06-30 22:15:04 +00:00
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
2023-06-30 22:15:04 +00:00
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default vae_loader
2023-06-30 22:15:04 +00:00
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "vae_loader";
2023-06-30 22:15:04 +00:00
/**
2023-07-13 05:22:18 +00:00
* Vae Model
2023-06-30 22:15:04 +00:00
* @description The VAE to load
*/
2023-07-13 05:22:18 +00:00
vae_model: components["schemas"]["VAEModelField"];
2023-06-30 22:15:04 +00:00
};
/**
2023-07-13 05:22:18 +00:00
* VaeLoaderOutput
2023-06-30 22:15:04 +00:00
* @description Model loader output
*/
VaeLoaderOutput: {
/**
2023-07-13 05:22:18 +00:00
* Type
* @default vae_loader_output
2023-06-30 22:15:04 +00:00
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "vae_loader_output";
2023-06-30 22:15:04 +00:00
/**
2023-07-13 05:22:18 +00:00
* Vae
2023-06-30 22:15:04 +00:00
* @description Vae model
*/
2023-07-13 05:22:18 +00:00
vae?: components["schemas"]["VaeField"];
2023-06-30 22:15:04 +00:00
};
/** VaeModelConfig */
VaeModelConfig: {
2023-07-12 15:15:09 +00:00
/** Model Name */
model_name: string;
2023-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/**
2023-07-13 05:22:18 +00:00
* Model Type
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
model_type: "vae";
/** Path */
path: string;
/** Description */
description?: string;
2023-07-13 05:22:18 +00:00
model_format: components["schemas"]["VaeModelFormat"];
error?: components["schemas"]["ModelError"];
};
/**
2023-07-13 05:22:18 +00:00
* VaeModelFormat
* @description An enumeration.
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
VaeModelFormat: "checkpoint" | "diffusers";
/** ValidationError */
ValidationError: {
/** Location */
loc: (string | number)[];
/** Message */
msg: string;
/** Error Type */
type: string;
};
/**
2023-07-13 05:22:18 +00:00
* ZoeDepthImageProcessorInvocation
* @description Applies Zoe depth processing to image
*/
ZoeDepthImageProcessorInvocation: {
/**
2023-07-13 05:22:18 +00:00
* Id
* @description The id of this node. Must be unique among all nodes.
*/
id: string;
/**
2023-07-13 05:22:18 +00:00
* Is Intermediate
* @description Whether or not this node is an intermediate node.
* @default false
*/
is_intermediate?: boolean;
/**
2023-07-13 05:22:18 +00:00
* Type
* @default zoe_depth_image_processor
* @enum {string}
*/
2023-07-13 05:22:18 +00:00
type?: "zoe_depth_image_processor";
/**
2023-07-13 05:22:18 +00:00
* Image
* @description The image to process
*/
2023-07-13 05:22:18 +00:00
image?: components["schemas"]["ImageField"];
};
/**
* ControlNetModelFormat
* @description An enumeration.
* @enum {string}
*/
ControlNetModelFormat: "checkpoint" | "diffusers";
/**
* StableDiffusionXLModelFormat
2023-07-13 05:22:18 +00:00
* @description An enumeration.
* @enum {string}
*/
StableDiffusionXLModelFormat: "checkpoint" | "diffusers";
2023-07-27 13:55:28 +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
* StableDiffusion1ModelFormat
* @description An enumeration.
* @enum {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
StableDiffusion1ModelFormat: "checkpoint" | "diffusers";
2023-07-27 04:37:23 +00:00
/**
* StableDiffusionOnnxModelFormat
2023-07-27 04:37:23 +00:00
* @description An enumeration.
* @enum {string}
*/
StableDiffusionOnnxModelFormat: "olive" | "onnx";
/**
* StableDiffusion2ModelFormat
* @description An enumeration.
* @enum {string}
*/
StableDiffusion2ModelFormat: "checkpoint" | "diffusers";
};
responses: never;
parameters: never;
requestBodies: never;
headers: never;
pathItems: never;
};
export type external = Record<string, never>;
export type operations = {
2023-07-13 05:22:18 +00:00
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["PaginatedResults_GraphExecutionState_"];
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +00:00
* Create Session
* @description Creates a new session, optionally initializing it with an invocation graph
*/
create_session: {
requestBody?: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["Graph"];
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["GraphExecutionState"];
};
};
/** @description Invalid json */
400: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["GraphExecutionState"];
};
};
/** @description Session not found */
404: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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: {
"application/json": components["schemas"]["ControlNetInvocation"] | components["schemas"]["ImageProcessorInvocation"] | components["schemas"]["MainModelLoaderInvocation"] | components["schemas"]["LoraLoaderInvocation"] | components["schemas"]["SDXLLoraLoaderInvocation"] | components["schemas"]["VaeLoaderInvocation"] | components["schemas"]["MetadataAccumulatorInvocation"] | components["schemas"]["CompelInvocation"] | components["schemas"]["SDXLCompelPromptInvocation"] | components["schemas"]["SDXLRefinerCompelPromptInvocation"] | components["schemas"]["SDXLRawPromptInvocation"] | components["schemas"]["SDXLRefinerRawPromptInvocation"] | components["schemas"]["ClipSkipInvocation"] | components["schemas"]["LoadImageInvocation"] | components["schemas"]["ShowImageInvocation"] | 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"]["ImageHueAdjustmentInvocation"] | components["schemas"]["ImageLuminosityAdjustmentInvocation"] | components["schemas"]["ImageSaturationAdjustmentInvocation"] | components["schemas"]["TextToLatentsInvocation"] | components["schemas"]["LatentsToImageInvocation"] | components["schemas"]["ResizeLatentsInvocation"] | components["schemas"]["ScaleLatentsInvocation"] | components["schemas"]["ImageToLatentsInvocation"] | components["schemas"]["SDXLModelLoaderInvocation"] | components["schemas"]["SDXLRefinerModelLoaderInvocation"] | components["schemas"]["SDXLTextToLatentsInvocation"] | components["schemas"]["SDXLLatentsToLatentsInvocation"] | components["schemas"]["ONNXPromptInvocation"] | components["schemas"]["ONNXTextToLatentsInvocation"] | components["schemas"]["ONNXLatentsToImageInvocation"] | components["schemas"]["ONNXSD1ModelLoaderInvocation"] | components["schemas"]["OnnxModelLoaderInvocation"] | components["schemas"]["DynamicPromptInvocation"] | components["schemas"]["PromptsFromFileInvocation"] | components["schemas"]["AddInvocation"] | components["schemas"]["SubtractInvocation"] | components["schemas"]["MultiplyInvocation"] | components["schemas"]["DivideInvocation"] | components["schemas"]["RandomIntInvocation"] | components["schemas"]["ParamIntInvocation"] | components["schemas"]["ParamFloatInvocation"] | components["schemas"]["ParamStringInvocation"] | components["schemas"]["ParamPromptInvocation"] | components["schemas"]["CvInpaintInvocation"] | components["schemas"]["RangeInvocation"] | components["schemas"]["RangeOfSizeInvocation"] | components["schemas"]["RandomRangeInvocation"] | components["schemas"]["ImageCollectionInvocation"] | components["schemas"]["FloatLinearRangeInvocation"] | components["schemas"]["StepParamEasingInvocation"] | components["schemas"]["NoiseInvocation"] | components["schemas"]["ESRGANInvocation"] | components["schemas"]["InpaintInvocation"] | components["schemas"]["InfillColorInvocation"] | components["schemas"]["InfillTileInvocation"] | components["schemas"]["InfillPatchMatchInvocation"] | components["schemas"]["GraphInvocation"] | components["schemas"]["IterateInvocation"] | components["schemas"]["CollectInvocation"] | components["schemas"]["CannyImageProcessorInvocation"] | components["schemas"]["HedImageProcessorInvocation"] | components["schemas"]["LineartImageProcessorInvocation"] | components["schemas"]["LineartAnimeImageProcessorInvocation"] | components["schemas"]["OpenposeImageProcessorInvocation"] | components["schemas"]["MidasDepthImageProcessorInvocation"] | components["schemas"]["NormalbaeImageProcessorInvocation"] | components["schemas"]["
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": string;
};
};
/** @description Invalid node or link */
400: never;
/** @description Session not found */
404: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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: {
"application/json": components["schemas"]["ControlNetInvocation"] | components["schemas"]["ImageProcessorInvocation"] | components["schemas"]["MainModelLoaderInvocation"] | components["schemas"]["LoraLoaderInvocation"] | components["schemas"]["SDXLLoraLoaderInvocation"] | components["schemas"]["VaeLoaderInvocation"] | components["schemas"]["MetadataAccumulatorInvocation"] | components["schemas"]["CompelInvocation"] | components["schemas"]["SDXLCompelPromptInvocation"] | components["schemas"]["SDXLRefinerCompelPromptInvocation"] | components["schemas"]["SDXLRawPromptInvocation"] | components["schemas"]["SDXLRefinerRawPromptInvocation"] | components["schemas"]["ClipSkipInvocation"] | components["schemas"]["LoadImageInvocation"] | components["schemas"]["ShowImageInvocation"] | 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"]["ImageHueAdjustmentInvocation"] | components["schemas"]["ImageLuminosityAdjustmentInvocation"] | components["schemas"]["ImageSaturationAdjustmentInvocation"] | components["schemas"]["TextToLatentsInvocation"] | components["schemas"]["LatentsToImageInvocation"] | components["schemas"]["ResizeLatentsInvocation"] | components["schemas"]["ScaleLatentsInvocation"] | components["schemas"]["ImageToLatentsInvocation"] | components["schemas"]["SDXLModelLoaderInvocation"] | components["schemas"]["SDXLRefinerModelLoaderInvocation"] | components["schemas"]["SDXLTextToLatentsInvocation"] | components["schemas"]["SDXLLatentsToLatentsInvocation"] | components["schemas"]["ONNXPromptInvocation"] | components["schemas"]["ONNXTextToLatentsInvocation"] | components["schemas"]["ONNXLatentsToImageInvocation"] | components["schemas"]["ONNXSD1ModelLoaderInvocation"] | components["schemas"]["OnnxModelLoaderInvocation"] | components["schemas"]["DynamicPromptInvocation"] | components["schemas"]["PromptsFromFileInvocation"] | components["schemas"]["AddInvocation"] | components["schemas"]["SubtractInvocation"] | components["schemas"]["MultiplyInvocation"] | components["schemas"]["DivideInvocation"] | components["schemas"]["RandomIntInvocation"] | components["schemas"]["ParamIntInvocation"] | components["schemas"]["ParamFloatInvocation"] | components["schemas"]["ParamStringInvocation"] | components["schemas"]["ParamPromptInvocation"] | components["schemas"]["CvInpaintInvocation"] | components["schemas"]["RangeInvocation"] | components["schemas"]["RangeOfSizeInvocation"] | components["schemas"]["RandomRangeInvocation"] | components["schemas"]["ImageCollectionInvocation"] | components["schemas"]["FloatLinearRangeInvocation"] | components["schemas"]["StepParamEasingInvocation"] | components["schemas"]["NoiseInvocation"] | components["schemas"]["ESRGANInvocation"] | components["schemas"]["InpaintInvocation"] | components["schemas"]["InfillColorInvocation"] | components["schemas"]["InfillTileInvocation"] | components["schemas"]["InfillPatchMatchInvocation"] | components["schemas"]["GraphInvocation"] | components["schemas"]["IterateInvocation"] | components["schemas"]["CollectInvocation"] | components["schemas"]["CannyImageProcessorInvocation"] | components["schemas"]["HedImageProcessorInvocation"] | components["schemas"]["LineartImageProcessorInvocation"] | components["schemas"]["LineartAnimeImageProcessorInvocation"] | components["schemas"]["OpenposeImageProcessorInvocation"] | components["schemas"]["MidasDepthImageProcessorInvocation"] | components["schemas"]["NormalbaeImageProcessorInvocation"] | components["schemas"]["
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["GraphExecutionState"];
};
};
/** @description Invalid node or link */
400: never;
/** @description Session not found */
404: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["GraphExecutionState"];
};
};
/** @description Invalid node or link */
400: never;
/** @description Session not found */
404: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["Edge"];
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["GraphExecutionState"];
};
};
/** @description Invalid node or link */
400: never;
/** @description Session not found */
404: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["GraphExecutionState"];
};
};
/** @description Invalid node or link */
400: never;
/** @description Session not found */
404: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": unknown;
};
};
/** @description The invocation is queued */
202: never;
/** @description The session has no invocations ready to invoke */
400: never;
/** @description Session not found */
404: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": unknown;
};
};
/** @description The invocation is canceled */
202: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +00:00
* List Models
* @description Gets a list of models
*/
list_models: {
parameters: {
query?: {
/** @description Base models to include */
base_models?: (components["schemas"]["BaseModelType"])[];
/** @description The type of model to get */
2023-07-13 05:22:18 +00:00
model_type?: components["schemas"]["ModelType"];
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["ModelsList"];
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +00:00
* Delete Model
* @description Delete Model
*/
del_model: {
parameters: {
path: {
/** @description Base model */
2023-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/** @description The type of model */
2023-07-13 05:22:18 +00:00
model_type: components["schemas"]["ModelType"];
/** @description model name */
model_name: string;
};
};
responses: {
/** @description Model deleted successfully */
204: never;
/** @description Model not found */
404: never;
2023-07-04 05:04:01 +00:00
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
2023-07-04 05:04:01 +00:00
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/** @description The type of model */
2023-07-13 05:22:18 +00:00
model_type: components["schemas"]["ModelType"];
/** @description model name */
model_name: string;
};
};
requestBody: {
content: {
2023-07-27 13:55:28 +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-07-27 13:55:28 +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 */
400: never;
2023-07-04 05:04:01 +00:00
/** @description The model could not be found */
404: never;
2023-07-17 01:50:35 +00:00
/** @description There is already a model corresponding to the new name */
409: never;
2023-07-15 15:06:57 +00:00
/** @description Validation Error */
422: {
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["Body_import_model"];
};
};
responses: {
/** @description The model imported successfully */
201: {
content: {
2023-07-27 13:55:28 +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 */
404: never;
/** @description There is already a model corresponding to this path or repo_id */
409: never;
2023-07-18 03:18:31 +00:00
/** @description Unrecognized file/folder format */
415: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
/** @description The model appeared to import successfully, but could not be found in the model manager */
424: never;
};
};
/**
2023-07-15 15:06:57 +00:00
* Add Model
* @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-07-27 13:55:28 +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-07-27 13:55:28 +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 */
404: never;
2023-07-15 15:06:57 +00:00
/** @description There is already a model corresponding to this path or repo_id */
409: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +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 */
424: never;
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
/** @description The type of model */
2023-07-13 05:22:18 +00:00
model_type: components["schemas"]["ModelType"];
/** @description model name */
model_name: string;
};
};
responses: {
/** @description Model converted successfully */
200: {
content: {
2023-07-27 13:55:28 +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 */
400: never;
/** @description Model not found */
404: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +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: {
"application/json": (string)[];
};
};
/** @description Invalid directory path */
404: never;
/** @description Validation Error */
422: {
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
* List Ckpt Configs
* @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: {
"application/json": (string)[];
};
};
};
};
/**
* Sync To Config
* @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-07-20 06:50:43 +00:00
"application/json": boolean;
2023-07-15 15:06:57 +00:00
};
};
};
};
/**
2023-07-13 05:22:18 +00:00
* Merge Models
* @description Convert a checkpoint model into a diffusers model
*/
merge_models: {
parameters: {
path: {
/** @description Base model */
2023-07-13 05:22:18 +00:00
base_model: components["schemas"]["BaseModelType"];
};
};
requestBody: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["Body_merge_models"];
};
};
responses: {
/** @description Model converted successfully */
200: {
content: {
2023-07-27 13:55:28 +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 */
400: never;
/** @description One or more models not found */
404: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +00:00
* Upload Image
* @description Uploads an image
*/
upload_image: {
parameters: {
query: {
/** @description The category of the image */
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"multipart/form-data": components["schemas"]["Body_upload_image"];
};
};
responses: {
/** @description The image was uploaded successfully */
201: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["ImageDTO"];
};
};
/** @description Image upload failed */
415: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["ImageDTO"];
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": unknown;
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["ImageRecordChanges"];
};
};
responses: {
/** @description Successful Response */
200: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["ImageDTO"];
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
* Clear Intermediates
* @description Clears all intermediates
*/
clear_intermediates: {
responses: {
/** @description Successful Response */
200: {
content: {
"application/json": unknown;
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["ImageMetadata"];
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
2023-07-12 15:15:09 +00:00
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"image/png": unknown;
2023-07-12 15:15:09 +00:00
};
};
/** @description Image not found */
404: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
2023-07-12 15:15:09 +00:00
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"image/webp": unknown;
};
};
/** @description Image not found */
404: never;
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["ImageUrlsDTO"];
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +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
/**
* List Image Dtos
* @description Gets a list of image DTOs
*/
list_image_dtos: {
parameters: {
query?: {
/** @description The origin of images to list. */
image_origin?: components["schemas"]["ResourceOrigin"];
/** @description The categories of image to include. */
categories?: (components["schemas"]["ImageCategory"])[];
/** @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: {
"application/json": components["schemas"]["OffsetPaginatedResults_ImageDTO_"];
};
};
/** @description Validation Error */
422: {
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/** Delete Images From List */
delete_images_from_list: {
requestBody: {
content: {
"application/json": components["schemas"]["Body_delete_images_from_list"];
};
};
responses: {
/** @description Successful Response */
200: {
content: {
"application/json": components["schemas"]["DeleteImagesFromListResult"];
};
};
/** @description Validation Error */
422: {
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["OffsetPaginatedResults_BoardDTO_"] | (components["schemas"]["BoardDTO"])[];
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["BoardDTO"];
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["BoardDTO"];
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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: {
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
"application/json": components["schemas"]["DeleteBoardResult"];
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["BoardChanges"];
};
};
responses: {
/** @description The board was updated successfully */
201: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["BoardDTO"];
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
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
* @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: {
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
"application/json": (string)[];
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +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
* 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: {
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
"application/json": components["schemas"]["Body_add_image_to_board"];
};
};
responses: {
/** @description The image was added to a board successfully */
201: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": unknown;
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +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
* Remove Image From Board
* @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: {
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
"application/json": components["schemas"]["Body_remove_image_from_board"];
};
};
responses: {
/** @description The image was removed from the board successfully */
201: {
content: {
2023-07-13 05:22:18 +00:00
"application/json": unknown;
};
};
/** @description Validation Error */
422: {
content: {
2023-07-13 05:22:18 +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
/**
* Add Images To Board
* @description Adds a list of images to a board
*/
add_images_to_board: {
requestBody: {
content: {
"application/json": components["schemas"]["Body_add_images_to_board"];
};
};
responses: {
/** @description Images were added to board successfully */
201: {
content: {
"application/json": components["schemas"]["AddImagesToBoardResult"];
};
};
/** @description Validation Error */
422: {
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
/**
* Remove Images From Board
* @description Removes a list of images from their board, if they had one
*/
remove_images_from_board: {
requestBody: {
content: {
"application/json": components["schemas"]["Body_remove_images_from_board"];
};
};
responses: {
/** @description Images were removed from board successfully */
201: {
content: {
"application/json": components["schemas"]["RemoveImagesFromBoardResult"];
};
};
/** @description Validation Error */
422: {
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
2023-07-08 09:31:17 +00:00
/** Get Version */
app_version: {
responses: {
/** @description Successful Response */
200: {
content: {
2023-07-13 05:22:18 +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-07-13 05:22:18 +00:00
"application/json": components["schemas"]["AppConfig"];
};
};
};
};
2023-07-20 15:45:54 +00:00
/**
* Get Log Level
* @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-07-20 15:45:54 +00:00
"application/json": components["schemas"]["LogLevel"];
2023-07-12 15:56:40 +00:00
};
};
};
};
2023-07-20 15:45:54 +00:00
/**
* Set Log Level
* @description Sets the log verbosity level
*/
set_log_level: {
requestBody: {
content: {
"application/json": components["schemas"]["LogLevel"];
};
};
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-07-20 15:45:54 +00:00
"application/json": components["schemas"]["LogLevel"];
};
};
/** @description Validation Error */
422: {
content: {
"application/json": components["schemas"]["HTTPValidationError"];
2023-07-08 09:31:17 +00:00
};
};
};
};
};