Skip to main content

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.

Release files for bm-configurator 0.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bm-configurator 0.0.0
File Size Uploaded
bm_configurator-0.0.0.tar.gz 5.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bm-configurator 0.0.0
File Interpreter ABI Platform
bm_configurator-0.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 11.2 kB

Release files / bm_configurator-0.0.0.tar.gz

Download URL bm_configurator-0.0.0.tar.gz
Size 5.3 kB
Tags Source
SHA-256 checksum
How to use checksums
b6d0da4592d63477d2f957a5af71da5acb0e021f2abf4434a1d16f22910f76c2
BLAKE2b-256 checksum
How to use checksums
ceb8609a1ce9aed25ebd9c1046e8dcc1a6e6f727ccee322336800bf63097cebf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release files / bm_configurator-0.0.0-py3-none-any.whl

Download URL bm_configurator-0.0.0-py3-none-any.whl
Size 5.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8ec2d9db2f71a71304fef69eef72dfe515c1414fa664d95516f8279625743bf2
BLAKE2b-256 checksum
How to use checksums
63a8a6b5e5c74d88e7a1878a657698cd1f2d95d549b1956d4b88e9bcba8340e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release history Release notifications | RSS feed

This release

0.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page