Skip to content

Conversation

@huntcsg
Copy link

@huntcsg huntcsg commented Jan 15, 2026

Summary

Adds a generic, provider-agnostic executor for dynamically-loaded partner nodes from comfy-api.

How It Works

  1. On startup, fetches node definitions from comfy-api's /object_info endpoint
  2. Creates ComfyNode classes dynamically from the schema (inputs, outputs, category, etc.)
  3. On execution, serializes inputs per config (e.g., images to base64)
  4. POSTs to comfy-api's /proxy/dynamic/{node_id} endpoint
  5. Deserializes response bytes to appropriate output type (video/image/audio)

Key Design

The Python code is completely provider-agnostic:

  • No hardcoded API endpoints or model names
  • No provider-specific input transformations
  • All behavior driven by proxy config from /object_info

All provider-specific logic lives in comfy-api (Go):

  • Model name mapping (e.g., "LTX-2 (Pro)" → "ltx-2-pro")
  • API authentication and request formatting
  • Polling for async APIs
  • Response handling

Related

API Node PR Checklist

Scope

  • Is API Node Change

Pricing & Billing

  • Need pricing update
  • No pricing update

If Need pricing update:

  • Metronome rate cards updated
  • Auto‑billing tests updated and passing

QA

  • QA done
  • QA not required

Comms

  • Informed Kosinkadink

This adds a generic, provider-agnostic executor for dynamically-loaded
partner nodes. The executor:

- Fetches node definitions from comfy-api's /object_info endpoint
- Creates ComfyNode classes dynamically from the schema
- Proxies execution to comfy-api with configurable input serialization
- Converts response bytes to appropriate output types (video/image/audio)

All provider-specific logic (API endpoints, model mappings, polling)
is handled server-side in comfy-api.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant