| openapi: 3.1.0
|
| info:
|
| title: ComfyUI-Manager API
|
| description: |
|
| API for ComfyUI-Manager, a comprehensive management tool for ComfyUI custom nodes, models, and components.
|
| This API enables programmatic access to node management, model downloading, snapshot operations,
|
| and overall system configuration.
|
| version: "3.32.3"
|
| contact:
|
| name: ComfyUI-Manager Maintainers
|
| servers:
|
| - url: '/'
|
| description: Default ComfyUI server
|
|
|
|
|
| components:
|
| schemas:
|
| Error:
|
| type: object
|
| properties:
|
| error:
|
| type: string
|
| description: Error message
|
|
|
| NodePackageMetadata:
|
| type: object
|
| properties:
|
| title:
|
| type: string
|
| description: Display name of the node package
|
| name:
|
| type: string
|
| description: Repository/package name
|
| files:
|
| type: array
|
| items:
|
| type: string
|
| description: Source URLs for the package
|
| description:
|
| type: string
|
| description: Description of the node package functionality
|
| install_type:
|
| type: string
|
| enum: [git, copy, pip]
|
| description: Installation method
|
| version:
|
| type: string
|
| description: Version identifier
|
| id:
|
| type: string
|
| description: Unique identifier for the node package
|
| ui_id:
|
| type: string
|
| description: ID for UI reference
|
| channel:
|
| type: string
|
| description: Source channel
|
| mode:
|
| type: string
|
| description: Source mode
|
|
|
| ModelMetadata:
|
| type: object
|
| properties:
|
| name:
|
| type: string
|
| description: Name of the model
|
| type:
|
| type: string
|
| description: Type of model
|
| base:
|
| type: string
|
| description: Base model type
|
| save_path:
|
| type: string
|
| description: Path for saving the model
|
| url:
|
| type: string
|
| description: Download URL
|
| filename:
|
| type: string
|
| description: Target filename
|
| ui_id:
|
| type: string
|
| description: ID for UI reference
|
|
|
| SnapshotItem:
|
| type: string
|
| description: Name of the snapshot
|
|
|
| QueueStatus:
|
| type: object
|
| properties:
|
| total_count:
|
| type: integer
|
| description: Total number of tasks
|
| done_count:
|
| type: integer
|
| description: Number of completed tasks
|
| in_progress_count:
|
| type: integer
|
| description: Number of tasks in progress
|
| is_processing:
|
| type: boolean
|
| description: Whether the queue is currently processing
|
|
|
| ImportFailInfoBulkRequest:
|
| type: object
|
| properties:
|
| cnr_ids:
|
| type: array
|
| items:
|
| type: string
|
| description: A list of CNR IDs to check.
|
| urls:
|
| type: array
|
| items:
|
| type: string
|
| description: A list of repository URLs to check.
|
|
|
| ImportFailInfoBulkResponse:
|
| type: object
|
| additionalProperties:
|
| $ref: '#/components/schemas/ImportFailInfoItem'
|
| description: >-
|
| A dictionary where each key is a cnr_id or url from the request,
|
| and the value is the corresponding error info.
|
|
|
| ImportFailInfoItem:
|
| oneOf:
|
| - type: object
|
| properties:
|
| error:
|
| type: string
|
| traceback:
|
| type: string
|
| - type: "null"
|
|
|
| securitySchemes:
|
| securityLevel:
|
| type: apiKey
|
| in: header
|
| name: Security-Level
|
| description: Security level for sensitive operations
|
|
|
| parameters:
|
| modeParam:
|
| name: mode
|
| in: query
|
| description: Source mode (e.g., "local", "remote")
|
| schema:
|
| type: string
|
| enum: [local, remote, default]
|
|
|
| targetParam:
|
| name: target
|
| in: query
|
| description: Target identifier
|
| required: true
|
| schema:
|
| type: string
|
|
|
| valueParam:
|
| name: value
|
| in: query
|
| description: New value to set
|
| required: true
|
| schema:
|
| type: string
|
|
|
|
|
| paths:
|
|
|
| /customnode/getmappings:
|
| get:
|
| summary: Get node-to-package mappings
|
| description: Provides unified mapping between nodes and node packages
|
| parameters:
|
| - $ref: '#/components/parameters/modeParam'
|
| responses:
|
| '200':
|
| description: Successful operation
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| additionalProperties:
|
| type: array
|
| items:
|
| type: array
|
| description: Mapping of node packages to node classes
|
|
|
| /customnode/fetch_updates:
|
| post:
|
| summary: Check for updates
|
| description: Fetches updates for custom nodes
|
| requestBody:
|
| required: false
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| properties:
|
| mode:
|
| type: string
|
| enum: [local, remote, default]
|
| description: Source mode (e.g., "local", "remote")
|
| responses:
|
| '200':
|
| description: No updates available
|
| '201':
|
| description: Updates found
|
| '400':
|
| description: Error occurred
|
|
|
| /customnode/installed:
|
| get:
|
| summary: Get installed custom nodes
|
| description: Returns a list of installed node packages
|
| parameters:
|
| - name: mode
|
| in: query
|
| description: Lists mode, default or imported
|
| schema:
|
| type: string
|
| enum: [default, imported]
|
| responses:
|
| '200':
|
| description: Successful operation
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| additionalProperties:
|
| $ref: '#/components/schemas/NodePackageMetadata'
|
|
|
| /customnode/getlist:
|
| get:
|
| summary: Get custom node list
|
| description: Provides a list of available custom nodes
|
| parameters:
|
| - $ref: '#/components/parameters/modeParam'
|
| - name: skip_update
|
| in: query
|
| description: Skip update check
|
| schema:
|
| type: boolean
|
| responses:
|
| '200':
|
| description: Successful operation
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| properties:
|
| channel:
|
| type: string
|
| node_packs:
|
| type: object
|
| additionalProperties:
|
| $ref: '#/components/schemas/NodePackageMetadata'
|
|
|
| /customnode/alternatives:
|
| get:
|
| summary: Get alternative node options
|
| description: Provides alternatives for nodes
|
| parameters:
|
| - $ref: '#/components/parameters/modeParam'
|
| responses:
|
| '200':
|
| description: Successful operation
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| additionalProperties:
|
| type: object
|
|
|
| /customnode/versions/{node_name}:
|
| get:
|
| summary: Get available versions for a node
|
| description: Lists all available versions for a specific node
|
| parameters:
|
| - name: node_name
|
| in: path
|
| required: true
|
| schema:
|
| type: string
|
| responses:
|
| '200':
|
| description: Successful operation
|
| content:
|
| application/json:
|
| schema:
|
| type: array
|
| items:
|
| type: object
|
| properties:
|
| version:
|
| type: string
|
| '400':
|
| description: Node not found
|
|
|
| /customnode/disabled_versions/{node_name}:
|
| get:
|
| summary: Get disabled versions for a node
|
| description: Lists all disabled versions for a specific node
|
| parameters:
|
| - name: node_name
|
| in: path
|
| required: true
|
| schema:
|
| type: string
|
| responses:
|
| '200':
|
| description: Successful operation
|
| content:
|
| application/json:
|
| schema:
|
| type: array
|
| items:
|
| type: object
|
| properties:
|
| version:
|
| type: string
|
| '400':
|
| description: Node not found
|
|
|
| /customnode/import_fail_info:
|
| post:
|
| summary: Get import failure information
|
| description: Returns information about why a node failed to import
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| properties:
|
| cnr_id:
|
| type: string
|
| url:
|
| type: string
|
| responses:
|
| '200':
|
| description: Successful operation
|
| '400':
|
| description: No information available
|
|
|
| /v2/customnode/import_fail_info_bulk:
|
| post:
|
| summary: Get import failure info for multiple nodes
|
| description: Retrieves recorded import failure information for a list of custom nodes.
|
| tags:
|
| - customnode
|
| requestBody:
|
| description: A list of CNR IDs or repository URLs to check.
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| $ref: '#/components/schemas/ImportFailInfoBulkRequest'
|
| responses:
|
| '200':
|
| description: A dictionary containing the import failure information.
|
| content:
|
| application/json:
|
| schema:
|
| $ref: '#/components/schemas/ImportFailInfoBulkResponse'
|
| '400':
|
| description: Bad Request. The request body is invalid.
|
| '500':
|
| description: Internal Server Error.
|
|
|
| /customnode/install/git_url:
|
| post:
|
| summary: Install custom node via Git URL
|
| description: Installs a custom node from a Git repository URL
|
| security:
|
| - securityLevel: []
|
| requestBody:
|
| required: true
|
| content:
|
| text/plain:
|
| schema:
|
| type: string
|
| responses:
|
| '200':
|
| description: Installation successful or already installed
|
| '400':
|
| description: Installation failed
|
| '403':
|
| description: Security policy violation
|
|
|
| /customnode/install/pip:
|
| post:
|
| summary: Install custom node dependencies via pip
|
| description: Installs Python package dependencies for custom nodes
|
| security:
|
| - securityLevel: []
|
| requestBody:
|
| required: true
|
| content:
|
| text/plain:
|
| schema:
|
| type: string
|
| responses:
|
| '200':
|
| description: Installation successful
|
| '403':
|
| description: Security policy violation
|
|
|
|
|
| /externalmodel/getlist:
|
| get:
|
| summary: Get external model list
|
| description: Provides a list of available external models
|
| parameters:
|
| - $ref: '#/components/parameters/modeParam'
|
| responses:
|
| '200':
|
| description: Successful operation
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| properties:
|
| models:
|
| type: array
|
| items:
|
| $ref: '#/components/schemas/ModelMetadata'
|
|
|
|
|
| /manager/queue/update_all:
|
| post:
|
| summary: Update all custom nodes
|
| description: Queues update operations for all installed custom nodes
|
| security:
|
| - securityLevel: []
|
| requestBody:
|
| required: false
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| properties:
|
| mode:
|
| type: string
|
| enum: [local, remote, default]
|
| description: Source mode (e.g., "local", "remote")
|
| responses:
|
| '200':
|
| description: Update queued successfully
|
| '401':
|
| description: Processing already in progress
|
| '403':
|
| description: Security policy violation
|
|
|
| /manager/queue/reset:
|
| post:
|
| summary: Reset queue
|
| description: Resets the operation queue
|
| responses:
|
| '200':
|
| description: Queue reset successfully
|
|
|
| /manager/queue/status:
|
| get:
|
| summary: Get queue status
|
| description: Returns the current status of the operation queue
|
| responses:
|
| '200':
|
| description: Successful operation
|
| content:
|
| application/json:
|
| schema:
|
| $ref: '#/components/schemas/QueueStatus'
|
|
|
| /manager/queue/install:
|
| post:
|
| summary: Install custom node
|
| description: Queues installation of a custom node
|
| security:
|
| - securityLevel: []
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| $ref: '#/components/schemas/NodePackageMetadata'
|
| responses:
|
| '200':
|
| description: Installation queued successfully
|
| '403':
|
| description: Security policy violation
|
| '404':
|
| description: Target node not found or security issue
|
|
|
| /manager/queue/start:
|
| post:
|
| summary: Start queue processing
|
| description: Starts processing the operation queue
|
| responses:
|
| '200':
|
| description: Processing started
|
| '201':
|
| description: Processing already in progress
|
|
|
| /manager/queue/fix:
|
| post:
|
| summary: Fix custom node
|
| description: Attempts to fix a broken custom node installation
|
| security:
|
| - securityLevel: []
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| $ref: '#/components/schemas/NodePackageMetadata'
|
| responses:
|
| '200':
|
| description: Fix operation queued successfully
|
| '403':
|
| description: Security policy violation
|
|
|
| /manager/queue/reinstall:
|
| post:
|
| summary: Reinstall custom node
|
| description: Uninstalls and then reinstalls a custom node
|
| security:
|
| - securityLevel: []
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| $ref: '#/components/schemas/NodePackageMetadata'
|
| responses:
|
| '200':
|
| description: Reinstall operation queued successfully
|
| '403':
|
| description: Security policy violation
|
|
|
| /manager/queue/uninstall:
|
| post:
|
| summary: Uninstall custom node
|
| description: Queues uninstallation of a custom node
|
| security:
|
| - securityLevel: []
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| $ref: '#/components/schemas/NodePackageMetadata'
|
| responses:
|
| '200':
|
| description: Uninstallation queued successfully
|
| '403':
|
| description: Security policy violation
|
|
|
| /manager/queue/update:
|
| post:
|
| summary: Update custom node
|
| description: Queues update of a custom node
|
| security:
|
| - securityLevel: []
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| $ref: '#/components/schemas/NodePackageMetadata'
|
| responses:
|
| '200':
|
| description: Update queued successfully
|
| '403':
|
| description: Security policy violation
|
|
|
| /manager/queue/disable:
|
| post:
|
| summary: Disable custom node
|
| description: Disables a custom node without uninstalling it
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| $ref: '#/components/schemas/NodePackageMetadata'
|
| responses:
|
| '200':
|
| description: Disable operation queued successfully
|
|
|
| /manager/queue/update_comfyui:
|
| post:
|
| summary: Update ComfyUI
|
| description: Queues an update operation for ComfyUI itself
|
| responses:
|
| '200':
|
| description: Update queued successfully
|
|
|
| /manager/queue/install_model:
|
| post:
|
| summary: Install model
|
| description: Queues installation of a model
|
| security:
|
| - securityLevel: []
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| $ref: '#/components/schemas/ModelMetadata'
|
| responses:
|
| '200':
|
| description: Installation queued successfully
|
| '400':
|
| description: Invalid model request
|
| '403':
|
| description: Security policy violation
|
|
|
|
|
| /snapshot/getlist:
|
| get:
|
| summary: Get snapshot list
|
| description: Returns a list of available snapshots
|
| responses:
|
| '200':
|
| description: Successful operation
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| properties:
|
| items:
|
| type: array
|
| items:
|
| $ref: '#/components/schemas/SnapshotItem'
|
|
|
| /snapshot/remove:
|
| post:
|
| summary: Remove snapshot
|
| description: Removes a specified snapshot
|
| security:
|
| - securityLevel: []
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| required: [target]
|
| properties:
|
| target:
|
| type: string
|
| description: Target identifier
|
| responses:
|
| '200':
|
| description: Snapshot removed successfully
|
| '400':
|
| description: Error removing snapshot
|
| '403':
|
| description: Security policy violation
|
|
|
| /snapshot/restore:
|
| post:
|
| summary: Restore snapshot
|
| description: Restores a specified snapshot
|
| security:
|
| - securityLevel: []
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| required: [target]
|
| properties:
|
| target:
|
| type: string
|
| description: Target identifier
|
| responses:
|
| '200':
|
| description: Snapshot restoration scheduled
|
| '400':
|
| description: Error restoring snapshot
|
| '403':
|
| description: Security policy violation
|
|
|
| /snapshot/get_current:
|
| get:
|
| summary: Get current snapshot
|
| description: Returns the current system state as a snapshot
|
| responses:
|
| '200':
|
| description: Successful operation
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| '400':
|
| description: Error creating snapshot
|
|
|
| /snapshot/save:
|
| post:
|
| summary: Save snapshot
|
| description: Saves the current system state as a new snapshot
|
| responses:
|
| '200':
|
| description: Snapshot saved successfully
|
| '400':
|
| description: Error saving snapshot
|
|
|
|
|
| /comfyui_manager/comfyui_versions:
|
| get:
|
| summary: Get ComfyUI versions
|
| description: Returns available and current ComfyUI versions
|
| responses:
|
| '200':
|
| description: Successful operation
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| properties:
|
| versions:
|
| type: array
|
| items:
|
| type: string
|
| current:
|
| type: string
|
| '400':
|
| description: Error retrieving versions
|
|
|
| /comfyui_manager/comfyui_switch_version:
|
| post:
|
| summary: Switch ComfyUI version
|
| description: Switches to a specified ComfyUI version
|
| requestBody:
|
| required: false
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| properties:
|
| ver:
|
| type: string
|
| description: Target version
|
| responses:
|
| '200':
|
| description: Version switch successful
|
| '400':
|
| description: Error switching version
|
|
|
| /manager/reboot:
|
| post:
|
| summary: Reboot ComfyUI
|
| description: Restarts the ComfyUI server
|
| security:
|
| - securityLevel: []
|
| responses:
|
| '200':
|
| description: Reboot initiated
|
| '403':
|
| description: Security policy violation
|
|
|
|
|
| /manager/preview_method:
|
| get:
|
| summary: Get or set preview method
|
| description: Gets or sets the latent preview method
|
| parameters:
|
| - name: value
|
| in: query
|
| required: false
|
| description: New preview method
|
| schema:
|
| type: string
|
| enum: [auto, latent2rgb, taesd, none]
|
| responses:
|
| '200':
|
| description: Setting updated or current value returned
|
| content:
|
| text/plain:
|
| schema:
|
| type: string
|
| post:
|
| summary: Set preview method
|
| description: Sets the latent preview method (write-only; use GET to read)
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| required: [value]
|
| properties:
|
| value:
|
| type: string
|
| enum: [auto, latent2rgb, taesd, none]
|
| description: New preview method
|
| responses:
|
| '200':
|
| description: Setting updated
|
| content:
|
| text/plain:
|
| schema:
|
| type: string
|
| '400':
|
| description: Invalid value
|
|
|
|
|
| /manager/db_mode:
|
| get:
|
| summary: Get or set database mode
|
| description: Gets or sets the database mode
|
| parameters:
|
| - name: value
|
| in: query
|
| required: false
|
| description: New database mode
|
| schema:
|
| type: string
|
| enum: [channel, local, remote]
|
| responses:
|
| '200':
|
| description: Setting updated or current value returned
|
| content:
|
| text/plain:
|
| schema:
|
| type: string
|
| post:
|
| summary: Set database mode
|
| description: Sets the database mode (write-only; use GET to read)
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| required: [value]
|
| properties:
|
| value:
|
| type: string
|
| enum: [channel, local, remote]
|
| description: New database mode
|
| responses:
|
| '200':
|
| description: Setting updated
|
| content:
|
| text/plain:
|
| schema:
|
| type: string
|
| '400':
|
| description: Invalid value
|
|
|
|
|
| /manager/policy/component:
|
| get:
|
| summary: Get or set component policy
|
| description: Gets or sets the component policy
|
| parameters:
|
| - name: value
|
| in: query
|
| required: false
|
| description: New component policy
|
| schema:
|
| type: string
|
| responses:
|
| '200':
|
| description: Setting updated or current value returned
|
| content:
|
| text/plain:
|
| schema:
|
| type: string
|
| post:
|
| summary: Set component policy
|
| description: Sets the component policy (write-only; use GET to read)
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| required: [value]
|
| properties:
|
| value:
|
| type: string
|
| description: New component policy
|
| responses:
|
| '200':
|
| description: Setting updated
|
| content:
|
| text/plain:
|
| schema:
|
| type: string
|
|
|
|
|
| /manager/policy/update:
|
| get:
|
| summary: Get or set update policy
|
| description: Gets or sets the update policy
|
| parameters:
|
| - name: value
|
| in: query
|
| required: false
|
| description: New update policy
|
| schema:
|
| type: string
|
| enum: [stable, nightly, nightly-comfyui]
|
| responses:
|
| '200':
|
| description: Setting updated or current value returned
|
| content:
|
| text/plain:
|
| schema:
|
| type: string
|
| post:
|
| summary: Set update policy
|
| description: Sets the update policy (write-only; use GET to read)
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| required: [value]
|
| properties:
|
| value:
|
| type: string
|
| enum: [stable, nightly, nightly-comfyui]
|
| description: New update policy
|
| responses:
|
| '200':
|
| description: Setting updated
|
| content:
|
| text/plain:
|
| schema:
|
| type: string
|
| '400':
|
| description: Invalid value
|
|
|
|
|
| /manager/channel_url_list:
|
| get:
|
| summary: Get or set channel URL
|
| description: Gets or sets the channel URL for custom node sources
|
| parameters:
|
| - name: value
|
| in: query
|
| required: false
|
| description: New channel name
|
| schema:
|
| type: string
|
| responses:
|
| '200':
|
| description: Setting updated or channel list returned
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| properties:
|
| selected:
|
| type: string
|
| list:
|
| type: array
|
| items:
|
| type: object
|
| properties:
|
| name:
|
| type: string
|
| url:
|
| type: string
|
| post:
|
| summary: Set channel URL
|
| description: Sets the channel URL for custom node sources (write-only; use GET to read current + list)
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| required: [value]
|
| properties:
|
| value:
|
| type: string
|
| description: New channel name
|
| responses:
|
| '200':
|
| description: Setting updated
|
| content:
|
| text/plain:
|
| schema:
|
| type: string
|
|
|
|
|
|
|
| /manager/component/save:
|
| post:
|
| summary: Save component
|
| description: Saves a reusable workflow component
|
| requestBody:
|
| required: true
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| properties:
|
| name:
|
| type: string
|
| workflow:
|
| type: object
|
| responses:
|
| '200':
|
| description: Component saved successfully
|
| content:
|
| text/plain:
|
| schema:
|
| type: string
|
| '400':
|
| description: Error saving component
|
|
|
| /manager/component/loads:
|
| post:
|
| summary: Load components
|
| description: Loads all available workflow components
|
| responses:
|
| '200':
|
| description: Components loaded successfully
|
| content:
|
| application/json:
|
| schema:
|
| type: object
|
| '400':
|
| description: Error loading components
|
|
|
|
|
| /manager/version:
|
| get:
|
| summary: Get manager version
|
| description: Returns the current version of ComfyUI-Manager
|
| responses:
|
| '200':
|
| description: Successful operation
|
| content:
|
| text/plain:
|
| schema:
|
| type: string
|
|
|
| /manager/notice:
|
| get:
|
| summary: Get manager notice
|
| description: Returns HTML content with notices and version information
|
| responses:
|
| '200':
|
| description: Successful operation
|
| content:
|
| text/html:
|
| schema:
|
| type: string |