2024-12-18 20:35:20 +08:00
2024-12-18 14:52:28 +08:00
2024-12-18 13:17:30 +08:00
2024-12-18 14:51:17 +08:00
2024-12-17 19:00:13 +08:00
2024-11-21 11:12:15 +08:00
2024-11-13 18:18:47 +08:00
2024-11-05 17:56:00 +08:00
2024-12-18 20:35:20 +08:00
2024-12-18 14:51:17 +08:00
2024-11-21 11:12:15 +08:00

Comfy-Pack: Package and Deploy ComfyUI Workflows

⚠️ WARNING: This project is under active development.

banner

A comprehensive toolkit for reliably packing and unpacking environments for ComfyUI workflows.

  • 📦 Pack workflow environments as artifacts: Saves the workflow environment in a .cpack.zip artifact with Python package versions, ComfyUI and custom node revisions, and model hashes.
  • ✨ Unpack artifacts to recreate workflow environments: Unpacks the .cpack.zip artifact to recreate the same environment with the exact Python package versions, ComfyUI and custom node revisions, and model weights.
  • 🚀 Deploy workflows as APIs: Deploys the workflow as a RESTful API with customizable input and output parameters.

Motivations

When sharing ComfyUI workflows to others, your audiences or team member, you've likely heard these responses:

  • "Custom Node not found"
  • "Cannot find the model file"
  • "Missing Python dependencies"

These are fundamental challenges in workflow sharing – every component must match exactly: custom nodes, model files, and Python dependencies.

We learned it from our communit, and developed Comfy-Pack to address this directly. With a single click, it captures and locks your entire workflow environment into a .cpack.zip file, including Python packages, custom nodes, model hashes, and required assets.

Users can recreate the exact environment with one command:

comfy-pack unpack workflow.cpack.zip

Focus on creating. Let Comfy-Pack handle the rest.

Quick Start

Installation

Search comfy-pack in ComfyUI Manager (Recommended)

install_node

or install from Git:

git clone https://github.com/bentoml/comfy-pack.git

Pack a ComfyUI workflow

  1. Click "Package" button to create .cpack.zip
  2. (Optional) select the models that you want to include (only model hash will be recorded, so you wont get a 100GB zip file) pack

Unpack a ComfyUI workflow

# Restore the full ComfyUI directory from cpack files.
comfy-pack unpack workflow.cpack.zip

Deploy a workflow as an API

1. annotate input & output

input

output

2. serve and test locally

serve

3. (Optional) pack & run anywhere
# Get the workflow input spec
comfy-pack run workflow.cpack.zip --help

# Run
comfy-pack run workflow.cpack.zip --src-image image.png --video video.mp4
4. (Optional) deploy to cloud *

image

Custom Node List

ComfyPack provides custom nodes for standardizing inputs:

  • ImageInput: provides image type input, similar to official LoadImage node
  • StringInput: provides string type input, nice for prompts
  • IntInput: provides int type input, suitable for size or seeds
  • AnyInput: provides combo type and more input, suitable for custom nodes
  • ImageOutput: takes image type inputs, similar to official SaveImage node, take an image of a bunch of images
  • FileOutput: takes file path as string type, save and output the file under that path
  • ...

These nodes help define clear interfaces for your workflow.

🚀 Roadmap

  • Docker Support
  • local cpack manager and Version Control
  • Enhanced service capabilities

Examples

Check our examples folder for:

  • Basic workflow packaging
  • Parameter configuration
  • API integration
  • Docker deployment

License

MIT License

Community

  • Issues & Feature Requests: GitHub Issues
  • Questions & Discussion: Discord Server

Detailed documentation: under development

S
Description
No description provided
Readme Apache-2.0
757 KiB
Languages
Python 69.7%
JavaScript 30%
Shell 0.3%