Model Configurator
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)
| File | Size | Uploaded | |
|---|---|---|---|
| bm_configurator-0.0.0.tar.gz | 5.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|