Error responses are now always part of a dict with lowercase error as
key.
Files are cached across restarts by url. Likely needs additional
testing for checkpoints.
Fixed an error where booleans could not be eserialized as part of the
change to sign file uploads.
Responses to orchestration are now wrapped and contain always contain a
message id to keep requests syncronized.
On connection failure, a reconnection is attempted.
Execution time is tracked and included in response data.
Response urls are now signed
Responsiveness has been a point of major frustration when debugging.
In an attempt to isolate performance issues and move closer to the end
goal of sophisticated orchestration, an additional means of control has
been added where workers connect to a control server and open a
websocket for two-way communications
With improved logging, I believe I misinterpreted the original error
message. The version of comfy used inside the current container is out
of date, and has fewer args for call_on_start.
As the new code is more targeted to the interests of Banodoco and made
with the express purpose of being run as hosted server code, The license
has been changed to AGLPV3.
Orchestration code (mostly endpoints for probes) was intended as a
seperate plugin, but given the tight tying of asynchronous dependency
code, it has been included in this history and will likely be branched
off as a dedicated repo not available for non client/server
architectures.
much of the execution wrapping code has been moved into a wrapper on
execute instead of recursive executed. This cleans up logic and fixes
issues with collecting all outputs when multiple output nodes exist
Rather than requesting as chunks, the stream is kept open and re-added
to the queue every 32MB. This removes the need for the server to report
ranges, or content length, or to recombine chunks, which greatly
simplifies logic.
Added an environment variable to dump a prompt request and exit, for
easier testing.
Code for big files is executing, but I'm noticing but it produces
output files that are not correct and has incorrectly inserted bytes.
Will either disable or swap to different method of keeping the request
but re-acquiring the connection semaphore
The implementation requires modifying frozen parameters, but I still
consider it by far preferable to needing the logic to select the
modified endpoint.
Added LICENSE and brief readme
Updated network checking with more specifics to Salad Simple Storage.
The access token is now fetched, checkpoint size is checked before
uploading and checkpoints are read from the inputs folder to ease file
management on workflow dispatch
Aimed at targeting the Salad Simple Storage,
When net checkpointing is used, there is a system of priority to
requests and requests are uploaded asynchronously.
Logic has been further cleaned up in preparation for networking
integration. There's not longer unique behaviour for what is being saved
and the onus is placed on the caller to provide data in a safetensor
appropriate format
Supported has been added to cache the output of completed nodes. This
code should be trivially expandable to non-sampler nodes, but will need
to be cautiously enabled on a per-node basis to better regulate dataflow
In preperation for saving checkpoints remotely, all checkpoint
transactions are now wrapped.
Fixed step accumulation on consecutive failures
Support all builtin samplers
When sampling occurs, intermediate steps are cached to disk.
If at any point execution is halted, interrupted, or crashes, these
checkpoints are loaded from to restore execution from the previous step
Currently largely proof of concept. All samplers will cache, but
restoring is only applied to CustomSampler. Boilerplate is largely in
place to allow for caching output of other non-sampling nodes and will
be investigated later.