Skip to main content

Add your description here

Project description

Models API by ComfyDeploy

A collection of optimized ComfyUI-based cloud inference endpoints, built on ComfyDeploy and Modal.

Features

  • Optimized model loading and caching
  • Cloud-based inference endpoints
  • Easy workflow management through CLI
  • Extensible workflow system

Installation

uv add comfy-models

Usage

CLI Commands

uv tool install comfy-models

The package provides several CLI commands to manage workflows:

# List all available workflows
models ls

# Show detailed info about a workflow
models cat <workflow_name>

# Deploy a workflow to Modal
models deploy <workflow_name>

# Run a workflow locally
models run <workflow_name>

# Test a workflow
models test <workflow_name>

Environment Setup

Create a .env file in your project root:

MODAL_VOLUME_NAME=your_modal_volume_name
HF_TOKEN=your_huggingface_token  # Optional, for private model access

Contributing New Workflows

To add a new workflow, follow these steps:

  1. Create a new directory under src/comfy_models/workflows/ with your workflow name
  2. Required files:
workflows/
└── your_workflow_name/
    ├── config.py          # Workflow configuration
    ├── runner.py          # Modal app definition
    ├── workflow.json      # ComfyUI workflow definition
    └── workflow_api.json  # API interface definition

Configuration (config.py)

from comfy_models.base.comfy_utils import Config

config = Config(
    name="your_workflow_name",
    models_to_cache=[
        "path/to/model1.safetensors",
        "path/to/model2.safetensors"
    ],
    warmup_workflow=True,  # Run workflow once on startup
    run_twice=False,       # Run workflow twice for testing
    nodes_to_preload=[]    # Nodes to initialize on startup
)

Runner (runner.py)

import uuid
from comfy_models.base.base_app import _ComfyDeployRunnerModelsDownloadOptimzedImports
import modal
from comfy_models.workflows.shared import get_configs
from comfy_models.workflows.your_workflow_name.config import config

APP_NAME = config.name
app = modal.App(APP_NAME)

@app.cls(
    **get_configs(APP_NAME),
    enable_memory_snapshot=True,
)
class ComfyDeployRunner(_ComfyDeployRunnerModelsDownloadOptimzedImports):
    config = config

@app.local_entrypoint()
def main():
    ComfyDeployRunner().run.remote({
        "prompt_id": str(uuid.uuid4()),
        "inputs": {
            "your_input": "your value"
        },
    })

Workflow Files

  • workflow.json: Export your workflow from ComfyUI
  • workflow_api.json: Define the API interface for your workflow using ComfyDeploy nodes

Example Workflows

Check out existing workflows in the workflows directory for reference:

  • flux_dev: Flux model with development settings
  • flux_schnell: Optimized Flux model
  • sd3_5_large: Stable Diffusion 3.5 large model

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_models-0.1.5.tar.gz (69.1 kB view details)

Uploaded Source

Built Distribution

comfy_models-0.1.5-py3-none-any.whl (48.6 kB view details)

Uploaded Python 3

File details

Details for the file comfy_models-0.1.5.tar.gz.

File metadata

  • Download URL: comfy_models-0.1.5.tar.gz
  • Upload date:
  • Size: 69.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.29

File hashes

Hashes for comfy_models-0.1.5.tar.gz
Algorithm Hash digest
SHA256 2f14216bf8c6e6563343d159a5d0556166f390014e12225a68e8031d104927e2
MD5 2b4a9da15804428d4651625051cddf6d
BLAKE2b-256 f9541d037551ca04c5477376015a46a3c7cf9d9d54f2e3814ddbb8d81fc29246

See more details on using hashes here.

File details

Details for the file comfy_models-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for comfy_models-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ecf8dc27473ca89684c7d6c0fb6bf78008e21e2b006ef80e784f921b42ad5e2e
MD5 1aef9f9190eae8ed50c82b052b96e3e8
BLAKE2b-256 3bad12ef621586c0d5951dec306215b113b6ca24696fc71c85951632e05bca19

See more details on using hashes here.

Supported by

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