A Python client library for interacting with ComfyUI servers and managing image generation workflows.
Project description
comfy-proxy
A Python client library for interacting with ComfyUI servers and managing image generation workflows.
Features
- Single and multi-instance ComfyUI server management
- Async workflow execution
- Flexible address configuration (single, multiple, port ranges)
- Built-in workflow templates
- Customizable image sizes and parameters
- Websocket-based image generation and retrieval
Installation
ComfyProxy requires Python 3.11 or later. Install using pip:
pip install comfy-proxy
Quick Start
import asyncio
from comfy_proxy.comfy import SingleComfy
from comfy_proxy.workflows.flux import FluxModel, FluxWorkflowParams, FluxWorkflow
from comfy_proxy.workflow import Sizes
async def generate_image():
# Initialize a ComfyUI instance
comfy = Comfy("127.0.0.1:7821")
# Configure model and parameters
model = FluxModel()
params = FluxWorkflowParams(
prompt="a beautiful sunset over mountains",
model=model,
size=Sizes.LANDSCAPE_16_9,
seed=42,
batch_size=1
)
# Create and execute workflow
workflow = FluxWorkflow(params)
async for image_data in comfy.generate(workflow):
with open("generated_image.png", "wb") as f:
f.write(image_data)
break # Save first image only
# Run the example
asyncio.run(generate_image())
Multiple ComfyUI Instances
ComfyProxy can distribute work across multiple ComfyUI servers:
from comfy_proxy.comfy import Comfy
# Initialize with multiple instances
comfy = Comfy("127.0.0.1:8188-8192") # Port range
# or
comfy = Comfy(["127.0.0.1:8188", "127.0.0.1:8189"]) # List
# or
comfy = Comfy("127.0.0.1:8188,127.0.0.1:8189") # Comma-separated
Development
Requirements:
- Python 3.11+
- Poetry for dependency management
Setup:
# Clone repository
git clone https://github.com/yourusername/comfy-proxy.git
cd comfy-proxy
# Install dependencies
poetry install
# Run tests
poetry run pytest
Built-In Workflows
- Flux t2i
- Wan 2.2 i2v (first frame, first+last frame, lightning)
- Qwen Image (regular, lightning)
- Qwen Image Edit 2509 (regular, lightning)
These correspond roughly to the default ComfyUI workflows and should be highly compatible.
Custom Workflows
ComfyProxy comes with some built-in workflows (like FluxWorkflow), but you can easily create your own:
from comfy_proxy.workflow import ComfyWorkflow, ComfyNode
class MyCustomWorkflow(ComfyWorkflow):
def __init__(self, params):
super().__init__()
self.params = params
self._build_workflow()
def _build_workflow(self):
# Add nodes to create your workflow
checkpoint_node = self.add_node(
"CheckpointLoaderSimple",
{"ckpt_name": "sd_xl_base_1.0.safetensors"}
)
# ... add more nodes and connect them
We welcome contributions of basic workflows for popular models:
- Stable Diffusion 1.5
- SDXL
- SD Turbo
- SD 3.0
- etc.
For more complex use cases, you can implement the ComfyWorkflow class directly in your own codebase to create custom workflows with additional functionality.
License
MIT License - see LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file comfy_proxy-0.2.0.tar.gz.
File metadata
- Download URL: comfy_proxy-0.2.0.tar.gz
- Upload date:
- Size: 14.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.11.13 Linux/6.8.0-85-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1f6eeddd82c7fcf7e4a8cb6824558a3a027e7615229feb26f95c59d8f329ed1
|
|
| MD5 |
5151788488c5997126c39725f1afea36
|
|
| BLAKE2b-256 |
5c5d99943e8bafa098f8ed5be77b5a9e275104c6a5527c71f04f563626d0009f
|
File details
Details for the file comfy_proxy-0.2.0-py3-none-any.whl.
File metadata
- Download URL: comfy_proxy-0.2.0-py3-none-any.whl
- Upload date:
- Size: 19.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.11.13 Linux/6.8.0-85-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b985021944885c6452044f2c2615043ea897d459f9937e82bbd61dee519acc9
|
|
| MD5 |
82c226e8fd62b8c20e444f3d24b82f03
|
|
| BLAKE2b-256 |
8d37b46d9b3e277e1314eb5eff96d7b34d250fead6970bc1d52a131a234fbae4
|