Skip to main content

Minimal ComfyUI runtime for deploying custom nodes as microservices

Project description

comfy-runtime

Run any ComfyUI node as a Python function. No server, no UI, no workflow graph.

Install

pip install comfy-runtime

Usage

1. Configure & run built-in nodes

import comfy_runtime

comfy_runtime.configure(models_dir="/path/to/models", output_dir="./output")

# Text-to-image with SD 1.5
model, clip, vae = comfy_runtime.execute_node("CheckpointLoaderSimple", ckpt_name="v1-5-pruned-emaonly.safetensors")
positive = comfy_runtime.execute_node("CLIPTextEncode", clip=clip, text="a castle on a hill, fantasy art")[0]
negative = comfy_runtime.execute_node("CLIPTextEncode", clip=clip, text="blurry, low quality")[0]
latent = comfy_runtime.execute_node("EmptyLatentImage", width=512, height=512, batch_size=1)[0]
sampled = comfy_runtime.execute_node("KSampler", model=model, positive=positive, negative=negative, latent_image=latent, seed=42, steps=20, cfg=8.0, sampler_name="euler", scheduler="normal", denoise=1.0)[0]
images = comfy_runtime.execute_node("VAEDecode", samples=sampled, vae=vae)[0]
comfy_runtime.execute_node("SaveImage", images=images, filename_prefix="output")

2. Load any custom node

# Single file
comfy_runtime.load_nodes_from_path("/path/to/my_node.py")

# Directory (with or without __init__.py)
comfy_runtime.load_nodes_from_path("/path/to/ComfyUI-AnimateDiff-Evolved")

# Then use it
result = comfy_runtime.execute_node("ADE_AnimateDiffLoRALoader", ...)

Both V1 (NODE_CLASS_MAPPINGS) and V3 (comfy_entrypoint) node formats are supported.

3. Discover nodes

comfy_runtime.list_nodes()          # All registered node names
comfy_runtime.get_node_info("KSampler")  # Input/output types, category

API

Function Description
configure(models_dir, output_dir, ...) Set model paths and device config. Call before loading models.
execute_node(class_type, **kwargs) Run a node and return its output tuple.
load_nodes_from_path(path) Load nodes from a .py file or directory. Returns list of registered names.
list_nodes() All registered node names.
get_node_info(class_type) Node metadata (inputs, outputs, category).
register_node(class_type, cls) Register a node class manually.
unregister_node(class_type) Remove a node.
get_config() Current runtime config.

Custom node compatibility

Tested with popular third-party nodes:

Node Pack Nodes Status
WAS-Node-Suite (220 nodes) Image/text utilities Works
IPAdapter-Plus (37 nodes) Style transfer Works
KJNodes (232 nodes) Utility pack Works
Advanced-ControlNet (43 nodes) ControlNet Works
AnimateDiff-Evolved (145 nodes) Video animation Works

Custom nodes that import from comfy.*, comfy_api.*, comfy_extras.*, folder_paths, or nodes all resolve correctly.

Examples

See workflows/ for complete runnable examples:

  • sd15_text_to_image — basic text-to-image
  • flux2_klein_text_to_image — Flux.2 with custom sampler
  • img2img — image-to-image style transfer
  • inpainting — masked region replacement
  • hires_fix — 2-pass high-resolution generation
  • area_composition — spatial prompt composition
  • esrgan_upscale — 4x super-resolution

License

MIT

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

comfy_runtime-0.3.1.tar.gz (96.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

comfy_runtime-0.3.1-py3-none-any.whl (121.7 kB view details)

Uploaded Python 3

File details

Details for the file comfy_runtime-0.3.1.tar.gz.

File metadata

  • Download URL: comfy_runtime-0.3.1.tar.gz
  • Upload date:
  • Size: 96.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for comfy_runtime-0.3.1.tar.gz
Algorithm Hash digest
SHA256 0482b73d3ef80a2313a17c602f65a34bd94c80905db9025bf8492a0a7493980b
MD5 3c62c9f1bc81e5ce98bf818dc955c6ea
BLAKE2b-256 fc7dabd5b314b0b0ad2e66f4bbff9da337943510aa21938ba2cdccabdd765542

See more details on using hashes here.

Provenance

The following attestation bundles were made for comfy_runtime-0.3.1.tar.gz:

Publisher: publish.yml on anyin233/comfy-runtime

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file comfy_runtime-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: comfy_runtime-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 121.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for comfy_runtime-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f76b6a15219ebdc50272977daf04f79e7a6e93908f1399f83a956ee166b01d04
MD5 6fa5851a44ccf57f3d93096bfc05635e
BLAKE2b-256 d4be82ee2e090c09a3d52fd5b1ebf5f0c75f14ae281c346b6436267b7f70b082

See more details on using hashes here.

Provenance

The following attestation bundles were made for comfy_runtime-0.3.1-py3-none-any.whl:

Publisher: publish.yml on anyin233/comfy-runtime

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page