Skip to main content

The configurator allows you to collect knowledge about models in configs and select among them suitable for local deployment on certain devices.

Project description


Model Configurator

Python Version License: MIT

A smart configuration system that collects model specifications in config files and selects suitable options for local deployment on target devices.


Key Features

  • 🗂 Centralized Model Catalog - Manage all model specifications in YAML config files
  • 🖥 Device Compatibility Engine - Automatically detects hardware capabilities:
    • RAM/VRAM availability
    • GPU support and memory
    • Disk space requirements
  • 🎯 Smart Selection - Recommends optimal models based on:
    • Device constraints
    • Performance priorities
    • Model ranking system
  • 🛠 Extensible Architecture - Supports multiple model types through config inheritance

Installation

pip install bm_configurator

From source:

git clone https://github.com/Dmatryus/bm_configurator
cd bm_configurator
pip install .

Basic Usage

from pathlib import Path

from bm_configurator import DiffusionModelConfig, LLMModelConfig, ModelConfigurator

configurator = ModelConfigurator(
    model_class=DiffusionModelConfig,
    config_path=Path("./configs/diffusion_models.yaml")
)

configurator.print_available_models()

Configuration Example (models.yaml)

models:
  - name: "Tiny Diffusion"
    model_id: "parlance/diffusion_mini"
    description: "Ultra-light CPU model"
    requirements:
      min_ram: 4
      requires_gpu: false
      disk_space: 1
    tags: ["cpu", "low-res", "fast"]
    image_size: [256, 256]
    default_steps: 15
    rank: 3

  - name: "SD 1.5 Optimized"
    model_id: "runwayml/stable-diffusion-v1-5"
    description: "The balance of quality and speed"
    requirements:
      min_ram: 8
      requires_gpu: true
      min_vram: 4
      disk_space: 2
    tags: ["mid-tier-gpu", "general-use"]
    image_size: [512, 512]
    default_steps: 25
    rank: 2

Contribution

We welcome contributions! Please see our Contribution Guidelines for:

  • Adding new hardware detection methods
  • Supporting additional model types
  • Improving compatibility checks

License

MIT License. See LICENSE for full text.

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

bm_configurator-0.0.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bm_configurator-0.0.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file bm_configurator-0.0.0.tar.gz.

File metadata

  • Download URL: bm_configurator-0.0.0.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for bm_configurator-0.0.0.tar.gz
Algorithm Hash digest
SHA256 b6d0da4592d63477d2f957a5af71da5acb0e021f2abf4434a1d16f22910f76c2
MD5 07e32df2110fc31a19216e2f91f6659d
BLAKE2b-256 ceb8609a1ce9aed25ebd9c1046e8dcc1a6e6f727ccee322336800bf63097cebf

See more details on using hashes here.

File details

Details for the file bm_configurator-0.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for bm_configurator-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8ec2d9db2f71a71304fef69eef72dfe515c1414fa664d95516f8279625743bf2
MD5 48563187b7f4a991054b6244ee72786f
BLAKE2b-256 63a8a6b5e5c74d88e7a1878a657698cd1f2d95d549b1956d4b88e9bcba8340e9

See more details on using hashes here.

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