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.0.tar.gz (96.3 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.0-py3-none-any.whl (121.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: comfy_runtime-0.3.0.tar.gz
  • Upload date:
  • Size: 96.3 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.0.tar.gz
Algorithm Hash digest
SHA256 f9737cde2d8221d8dde3368ee8b1a3aadaeb5777eb97083f6479748f4220f9f1
MD5 9631e2d7b12ded2a78835187235927e4
BLAKE2b-256 4899c56b5f67df8631483d1200a313bd48daaee8da25f881eb5c66306184384f

See more details on using hashes here.

Provenance

The following attestation bundles were made for comfy_runtime-0.3.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: comfy_runtime-0.3.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d855e90dd9df5db1522fcace6c89ecb7a59c36239d101c57f68c4a46ffe9f920
MD5 658475fa92a897886f39b5d147112845
BLAKE2b-256 6acd47a9592bfa3764ffe61abcb4e51eb029cc54799d551ef8948f06bd5fc405

See more details on using hashes here.

Provenance

The following attestation bundles were made for comfy_runtime-0.3.0-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