semvec/pypi-packages huggingface dataset:
gitignorant 0.4.0
A parser for gitignore files
Requires Python: >=3.7

# Gitignorant

Gitignorant is (aspires to be)

* a [spec]-compliant .gitignore file parser and matcher
* for Python 3.7 and newer
* with full type hinting and test coverage
* and nothing you don't need

## Features

* Parses .gitignore (and .gitignore style) files
* Matches against list of parsed rules with the same
  semantics as Git ("last rule wins")

## Unfeatures

* Trees of .gitignore files are not directly supported,
  but can be supported by client code.

[spec]: https://git-scm.com/docs/gitignore
comfy_models_api 0.1.0
Add your description here
Requires Python: >=3.12

# ComfyDeploy Models API

A collection of optimized ComfyUI-based cloud inference endpoints, built on [ComfyDeploy](https://github.com/BennyKok/comfyui-deploy) and [Modal](https://modal.com/).

## Features

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

## Installation

```bash
# Clone the repository
git clone https://github.com/yourusername/comfy-models-api
cd comfy-models-api

# Install dependencies
pip install -e .
```

## Usage

### CLI Commands

The package provides several CLI commands to manage workflows:

```bash
# List all available workflows
comfy ls

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

# Deploy a workflow to Modal
comfy deploy <workflow_name>

# Run a workflow locally
comfy run <workflow_name>

# Test a workflow
comfy test <workflow_name>
```

### Environment Setup

Create a `.env` file in your project root:

```env
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_api/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)

```python
from comfy_models_api.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)

```python
import uuid
from comfy_models_api.base.base_app import _ComfyDeployRunnerModelsDownloadOptimzedImports
import modal
from comfy_models_api.workflows.shared import get_configs
from comfy_models_api.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

## License

[Your chosen license]