- Validation errors that occur early in the lifecycle of prompt
execution now get propagated to their callers in the
EmbeddedComfyClient. This includes error messages about missing node
classes.
- The execution context now includes the node_id and the prompt_id
- Latent previews are now sent with a node_id. This is not backwards
compatible with old frontends.
- Dependency execution errors are now modeled correctly.
- Distributed progress encodes image previews with node and prompt IDs.
- Typing for models
- The frontend was updated to use node IDs with previews
- Improvements to torch.compile experiments
- Some controlnet_aux nodes were upstreamed
- Tests now perform faster
- Tests will run on supported GPU platforms
- Configuration has known issues related to setting up a working
directory for an embedded client
- Introduce a Skeletonize node that solves many problems with Canny
- Improve behavior of exception reporting
- ComfyUI can now load EXR files.
- There are new arithmetic nodes for floats and integers.
- EXR nodes can load depth maps and be remapped with
ImageApplyColormap. This allows end users to use ground truth depth
data from video game engines or 3D graphics tools and recolor it to
the format expected by depth ControlNets: grayscale inverse depth
maps and "inferno" colored inverse depth maps.
- Fixed license notes.
- Added an additional known ControlNet model.
- Because CV2 is now used to read OpenEXR files, an environment
variable must be set early on in the application, before CV2 is
imported. This file, main_pre, is now imported early on in more
places.
- Binary previews are not yet supported
- Use `--distributed-queue-connection-uri=amqp://guest:guest@rabbitmqserver/`
- Roles supported: frontend, worker or both (see `--help`)
- Run `comfy-worker` for a lightweight worker you can wrap your head
around
- Workers and frontends must have the same directory structure (set
with `--cwd`) and supported nodes. Frontends must still have access
to inputs and outputs.
- Configuration notes:
distributed_queue_connection_uri (Optional[str]): Servers and clients will connect to this AMQP URL to form a distributed queue and exchange prompt execution requests and progress updates.
distributed_queue_roles (List[str]): Specifies one or more roles for the distributed queue. Acceptable values are "worker" or "frontend", or both by writing the flag twice with each role. Frontends will start the web UI and connect to the provided AMQP URL to submit prompts; workers will pull requests off the AMQP URL.
distributed_queue_name (str): This name will be used by the frontends and workers to exchange prompt requests and replies. Progress updates will be prefixed by the queue name, followed by a '.', then the user ID.
- 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.