mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-01-11 23:00:51 +08:00
- Run comfyui workflows directly inside other python applications using EmbeddedComfyClient. - Optional telemetry in prompts and models using anonymity preserving Plausible self-hosted or hosted. - Better OpenAPI schema - Basic support for distributed ComfyUI backends. Limitations: no progress reporting, no easy way to start your own distributed backend, requires RabbitMQ as a message broker.
106 lines
3.3 KiB
Python
106 lines
3.3 KiB
Python
# coding: utf-8
|
|
|
|
"""
|
|
Generated by: https://github.com/openapi-json-schema-tools/openapi-json-schema-generator
|
|
"""
|
|
|
|
from comfy.api import api_client
|
|
from comfy.api.shared_imports.operation_imports import * # pyright: ignore [reportWildcardImportFromLibrary]
|
|
|
|
from .. import path
|
|
from .responses import response_200
|
|
|
|
|
|
__StatusCodeToResponse = typing.TypedDict(
|
|
'__StatusCodeToResponse',
|
|
{
|
|
'200': typing.Type[response_200.ResponseFor200],
|
|
}
|
|
)
|
|
_status_code_to_response: __StatusCodeToResponse = {
|
|
'200': response_200.ResponseFor200,
|
|
}
|
|
_non_error_status_codes = frozenset({
|
|
'200',
|
|
})
|
|
|
|
|
|
class BaseApi(api_client.Api):
|
|
@typing.overload
|
|
def _post_interrupt(
|
|
self,
|
|
*,
|
|
skip_deserialization: typing.Literal[False] = False,
|
|
server_index: typing.Optional[int] = None,
|
|
stream: bool = False,
|
|
timeout: typing.Optional[typing.Union[int, float, typing.Tuple]] = None,
|
|
) -> response_200.ApiResponse: ...
|
|
|
|
@typing.overload
|
|
def _post_interrupt(
|
|
self,
|
|
*,
|
|
skip_deserialization: typing.Literal[True],
|
|
server_index: typing.Optional[int] = None,
|
|
stream: bool = False,
|
|
timeout: typing.Optional[typing.Union[int, float, typing.Tuple]] = None,
|
|
) -> api_response.ApiResponseWithoutDeserialization: ...
|
|
|
|
def _post_interrupt(
|
|
self,
|
|
*,
|
|
skip_deserialization: bool = False,
|
|
server_index: typing.Optional[int] = None,
|
|
stream: bool = False,
|
|
timeout: typing.Optional[typing.Union[int, float, typing.Tuple]] = None,
|
|
):
|
|
"""
|
|
(UI) Post interrupt
|
|
:param skip_deserialization: If true then api_response.response will be set but
|
|
api_response.body and api_response.headers will not be deserialized into schema
|
|
class instances
|
|
"""
|
|
used_path = path
|
|
# TODO add cookie handling
|
|
host = self.api_client.configuration.get_server_url(
|
|
"servers", server_index
|
|
)
|
|
|
|
raw_response = self.api_client.call_api(
|
|
resource_path=used_path,
|
|
method='post',
|
|
host=host,
|
|
stream=stream,
|
|
timeout=timeout,
|
|
)
|
|
|
|
if skip_deserialization:
|
|
skip_deser_response = api_response.ApiResponseWithoutDeserialization(response=raw_response)
|
|
self._verify_response_status(skip_deser_response)
|
|
return skip_deser_response
|
|
|
|
status = str(raw_response.status)
|
|
if status in _non_error_status_codes:
|
|
status_code = typing.cast(
|
|
typing.Literal[
|
|
'200',
|
|
],
|
|
status
|
|
)
|
|
return _status_code_to_response[status_code].deserialize(
|
|
raw_response, self.api_client.schema_configuration)
|
|
|
|
response = api_response.ApiResponseWithoutDeserialization(response=raw_response)
|
|
self._verify_response_status(response)
|
|
return response
|
|
|
|
|
|
class PostInterrupt(BaseApi):
|
|
# this class is used by api classes that refer to endpoints with operationId.snakeCase fn names
|
|
post_interrupt = BaseApi._post_interrupt
|
|
|
|
|
|
class ApiForPost(BaseApi):
|
|
# this class is used by api classes that refer to endpoints by path and http method names
|
|
post = BaseApi._post_interrupt
|