noblebarkrr/mvsepless

CLI wrapper for MSST and UVR in Google Colab

Python

8

350 commits

updated Oct 12, 2026

See the code

README

MVSepless

Open In Colab

Open In Huggingface

*/непростая обёртка*/ для audio-separator и Music-Source-Separation-Training

Информация о моделях

Всю актуальную информацию о доступных моделях можно увидеть на отдельной странице:

https://mvsepless-resources.github.io/model_info_page/

(используется информация из репозитория noblebarkrr/mvsepless_resources на Hugging Face)

Источники моделей

  • Hugging Face ("hface", "hf", "huggingface") - Оригинал
  • Github ("github", "gh") - Перезалив оригинала на Github Releases (более быстрая загрузка, чекпоинты тяжелее 2 гб разделены на несколько частей, по 2 гб каждая)
  • ModelScope ("mscope", "ms", "modelscope") - Запасной вариант (редко обновляется, зачастую загрузка очень медленная)

Фишки

  • Извлечение инструментала (инверсии выбранных стемов)
  • Встроенный авто-ансамбль, с возможностью выбрать основной стем для добавления в ансамбль
  • Базовый итеративный ансамбль
  • Создание собственных гибких пресетов разделения
  • Дополнительные параметры разделения, как в UVR
  • История обработок (Только в Web-UI)
  • Пакетная обработка по умолчанию (кроме авто-ансамбля и вычитания)
  • Поддержка метаданных (при установленном пакете pytaglib)
  • Язык интерфейса изменяется через переменную окружения MVSEPLESS_LANGUAGE

Содержание

🛠️ Установка

Совместимость:

  • Python: 3.10-3.12 (версии 3.13 и 3.14 тестируются)
  • Pytorch: 1.13-latest

Подготовка среды выполнения

Windows:

  1. Установите Python с включенными опциями Add Python 3.x to PATH и Disable path length limit: https://www.python.org/ftp/python/3.11.6/python-3.11.6-amd64.exe

  2. Скачайте архив с FFMPEG, распакуйте его и добавьте распакованную папку в переменную PATH: https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-gpl.zip

  3. Установите Microsoft Visual C++ 2015-2022 (x64): https://aka.ms/vs/17/release/vc_redist.x64.exe

  4. Установите Microsoft C++ Build Tools и после установки перезапустите компьютер: https://visualstudio.microsoft.com/visual-cpp-build-tools/
    Выберите Desktop development with C++

  5. Установите PyTorch: https://pytorch.org/get-started/locally/

  6. Скачайте и распакуйте архив: https://github.com/noblebarkrr/mvsepless/archive/refs/heads/dzeta.zip

  7. Откройте командную строку в распакованной папке

Установка pytaglib (опционально):
pip install pytaglib
Для случаев, когда бинарный файл для Python-пакета pytaglib недоступен для вашей среды выполнения:

Скачайте и распакуйте архив: https://github.com/supermihi/pytaglib/archive/refs/heads/main.zip

Затем:

- Откройте командную строку встроенных инструментов Visual Studio (Native Tools Command Prompt)
- Установите setuptools версией ниже, чем 61.0.0 pip install "setuptools<61.0.0"
- Перейдите в репозиторий pytaglib (распакованную папку)
- Выполните python build_native_taglib.py, который загрузит и соберет последний официальный релиз TagLib (только на x64)
- Выполните python setup.py install

Linux (Ubuntu/Debian):

# Установка базовых зависимостей
apt update -y
apt upgrade -y
apt install -y wget curl git gcc libx11-dev ffmpeg build-essential cmake nano python3-full python3-pip python3-dev libutfcpp-dev

# Клонирование репозитория

git clone https://github.com/noblebarkrr/mvsepless -b dzeta --depth 1
cd mvsepless

# Если пакеты не устанваливаются без виртуального окружения
python3 -m venv env
source env/bin/activate

python3 -m pip install ninja cmake
Установка pytaglib (опционально):
# Сборка библиотеки taglib (если нет подходящего бинарного файла для pytaglib)
git clone https://github.com/taglib/taglib
cd taglib
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-fPIC" -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON ..
make
make install
# Выходим из папки taglib/build
cd ../..

pip install pytaglib

Установка зависимостей

  • через uv:
pip install uv
# Обычные зависимости
uv pip install --no-cache-dir -r requirements.txt
# Устаревшие зависимости (только Python 3.10)
uv pip install --no-cache-dir -r requirements_old_torch_py310.txt
  • через pip (медленее):
# Обычные зависимости
pip install -r requirements.txt
# Устаревшие зависимости (только Python 3.10)
pip install -r requirements_old_torch_py310.txt

VBach (форк PolGen-RVC)

Документация

Специфичные атрибуты конфигов Roformer моделей

Все атрибуты находятся здесь

Шаблоны имен файлов

Для разделения (separate, custom_separate):

  • NAME — имя входного файла (без расширения)
  • STEM — название стема (например: vocals, instrumental)
  • MODEL — имя модели (например: bs_6stem)

Пример: NAME_STEM_MODEL → Song_vocals_bs_6stem


Для итеративного ансамбля:

  • NAME — имя входного файла (без расширения)
  • ITER — номер итерации (iter_N)

Пример: NAME_ITER → Song_iter_3


Для авто-ансамбля (auto_ensemble):

  • NAME — имя входного файла (без расширения)
  • TYPE — тип ансамбля (например: min_fft, avg_fft)
  • COUNT — количество используемых моделей/файлов

Пример: NAME_COUNT_TYPE → Song_7_min_fft


Для ручного ансамбля (manual_ensemble):

  • NAME — имя входного файла (без расширения)
  • TYPE — тип ансамбля (например: min_fft, avg_fft)

Пример: NAME_TYPE → Song_min_fft


Для вычитания (subtract):

  • NAME — имя входного файла (без расшириения)
  • TYPE — тип инверсии (например: waveform, spectrogram)

Пример: NAME_TYPE → Song_waveform

Для коррекции фазы (phase_fixer): NAME — имя целевого файла (без расширения) TYPE — тип операции (phase_fix)

Пример: NAME_TYPE → Song_phase_fix

Типы ансамбля

ТипОписание
avg_fftСреднее, стабильный результат (требуются веса)
median_fftМедиана (эффективно от 3+ аудио)
min_fftМинимум, более чистый результат
max_fftМаксимум, более полный, но "грязный" результат

Пресеты разделения

Схема пресета и информация о нодах находятся здесь

Кастомные каталоги моделей

Схема каталога и правила работы с ним находятся здесь

Пример пресета для авто-ансамбля

Python

[
    ["имя_модели1", "основной_стем1", False, 1],
    ["имя_модели2", "основной_стем2", False, 2],
    ...
]
[
    [str, str, bool, float],
    [str, str, bool, float],
    ...
]

JSON

[
    ["имя_модели1", "основной_стем1", false, 1],
    ["имя_модели2", "основной_стем2", false, 2],
    ...
]
[
    [str, str, bool, float],
    [str, str, bool, float],
    ...
]

В командной строке

--flow имя_модели1:основной_стем_1:False:1 имя_модели2:основной_стем_2:False:2 ...
--flow str:str:bool:float str:str:bool:float

Пример пресета для итеративного ансамбля

Python

[
    ["имя_модели1", "основной_стем1", False],
    ["имя_модели2", "основной_стем2", False],
    ...
]
[
    [str, str, bool],
    [str, str, bool],
    ...
]

JSON

[
    ["имя_модели1", "основной_стем1", false],
    ["имя_модели2", "основной_стем2", false],
    ...
]

В командной строке

--flow имя_модели1:основной_стем_1:False имя_модели2:основной_стем_2:False ...
--flow str:str:bool str:str:bool

🚀 Пример использования

Web-UI

Через командную строку


python app.py --share

Напрямую

from app import App

app = App()
app_ui = app.UI(theme, False)
app_ui.launch(
  allowed_paths=["/"],
  debug=True, 
  share=True, # Если нужно сделать общий доступ к Web-UI
  server_port=7860,
  server_name="0.0.0.0"
)

Информация о моделях

Через командную строку

# Список с фильтром
python inference.py info -limit 0 -stem "vocals"
# Полный список
python inference.py info
# Обновление информации о моделях
python inference.py info -update

Напрямую

from inference import Separator

separator = Separator() # Инициализация класса
separator.update_info() # Обновление информации о моделях
separator.show_info(
  0, # Лимит количества отображаемых моделей
  "vocals", # Название стема (если указан, будут показаны только модели с данным стемом)
  False # Только установленные модели (при True)
)

Пример вывода:

                              Информация о моделях                              
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Имя модели                               ┃ Выходные стемы                    ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ установлено                              │ целевой инструмент                │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_inst_fno_unwa                         │ other, vocals                     │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_inst_large2_unwa                      │ instrument, vocals                │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_inst_hyperace_unwa                    │ instrument, vocals                │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_inst_hyperace2_unwa                   │ instrument, vocals                │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_voc_hyperace2_unwa                    │ instrument, vocals                │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_karaoke_becruily                      │ Instrumental, Vocals              │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_voctest_gabox                         │ Instrumental, Vocals              │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_karaoke_gabox                         │ other, vocals                     │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_karaoke_inv_gabox                     │ other, vocals                     │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_6stem                                 │ bass, drums, guitar, other,       │
│                                          │ piano, vocals                     │
└──────────────────────────────────────────┴───────────────────────────────────┘

Разделение

Через командную строку

python inference.py separate -i "audio.mp3" -o "output" -of mp3 -mn "bs_6stem" -tm "NAME_STEM"

Напрямую

from inference import Separator

separator = Separator()
model_name = "bs_6stem"
separator.download(model_name) # Скачивание модели без запуска инференса

results = separator.separate(
  "audio.mp3",           # Входной файл/папка
  "output",              # Директория вывода
  "mp3",                 # Формат вывода
  "NAME_STEM",           # Шаблон имени файла
  model_name             # Имя модели
)

Разделение с кастомной моделью

Через командную строку

python inference.py custom_separate -i "audio.mp3" -o "output" -of mp3 -ckpt "bs_6stem.ckpt" -conf "bs_6stem_config.yaml" -mt "bs_roformer" -tm "NAME_STEM"

Напрямую

from inference import Separator

separator = Separator()

results = separator.custom_separate(
  "audio.mp3",                   # Входной файл/папка
  "output",                      # Директория вывода
  "mp3",                         # Формат вывода
  "NAME_STEM",                   # Шаблон имени файла
  "bs_roformer",                 # Тип модели
  "bs_6stem.ckpt",               # Путь к чекпоинту
  "bs_6stem_config.yaml"         # Путь к конфигу
)

Итеративный ансамбль (пример использования)

Через командную строку

Пример пресета для итеративного ансамбля

# Пресет в виде списка
python inference.py iterative_ensemble -i "audio.mp3" -o "output" -of mp3 -tm "NAME_ITER" -flow "bs_6stem:vocals:False" "mbr_inst1e_unwa:vocals:False" -n 4

# С сохранением промежуточных результатов
python inference.py iterative_ensemble -i "audio.mp3" -o "output" -of mp3 -tm "NAME_ITER" -flow "bs_6stem:vocals:False" "mbr_inst1e_unwa:vocals:False" -n 4 -save_intermediate

# Пресет в виде json-файла
python inference.py iterative_ensemble -i "audio.mp3" -o "output" -of mp3 -tm "NAME_ITER" -json "iterative_flow.json" -n 4

Напрямую

from inference import Separator

separator = Separator()
flow = [
    ["bs_6stem", "vocals", True],      # [модель, осн. стем, инверсия]
    ["mbr_inst1e_unwa", "vocals", False]
]

result_path, intermediate_files = separator.iterative_ensemble(
    "audio.mp3",        # Входной файл
    "output",           # Директория вывода
    flow,               # Пресет ансамбля
    num_iters=4,        # Количество итераций
    output_format="mp3",# Формат вывода
    template="NAME_ITER", # Шаблон имени файла
    save_intermediate=True  # Сохранять промежуточные результаты
)

print(f"Финальный результат: {result_path}")
print(f"Промежуточные файлы: {intermediate_files}")

Авто-ансамбль

Через командную строку

Пример пресета для авто-ансамбля

# Пресет в виде списка списков
python inference.py auto_ensemble -i "audio.mp3" -o "output" -of mp3 -type avg_fft -tm "NAME_TYPE" -flow "bs_6stem:vocals:True:1" "mbr_inst1e_unwa:other:False:1"

# Пресет в виде json-файла
python inference.py auto_ensemble -i "audio.mp3" -o "output" -of mp3 -type avg_fft -tm "NAME_TYPE" -json "ensemble_flow.json"

Напрямую

from inference import Separator

separator = Separator()
flow = [
    ["bs_6stem", "vocals", True, 1],      # [модель, осн. стем, инверсия, вес]
    ["mbr_inst1e_unwa", "other", False, 1]
]

result, invert_result = separator.auto_ensemble(
  "audio.mp3",           # Входной файл
  "output",              # Директория вывода
  flow,                  # Пресет ансамбля
  "NAME_TYPE",           # Шаблон имени файла
  "avg_fft",             # Тип ансамбля
  "mp3"                  # Формат вывода
)

Ручной ансамбль

Через командную строку

python inference.py manual_ensemble -i "audio1.mp3" "audio2.mp3" -o "output" -of mp3 -type avg_fft -tm "NAME_TYPE" -w 1 1

Напрямую

from inference import Separator

separator = Separator()

result = separator.manual_ensemble(
  ["audio1.mp3", "audio2.mp3"],  # Входные файлы
  "output",                      # Директория вывода
  [1, 1],                        # Веса
  "NAME_TYPE",                   # Шаблон имени файла
  "avg_fft",                     # Тип ансамбля
  "mp3"                          # Формат вывода
)

Вычитание

Через командную строку

python inference.py subtract -i1 "audio1.mp3" -i2 "audio2.mp3" -o "output" -of mp3 -tm "NAME_TYPE" 

Напрямую

from inference import Separator

separator = Separator()

result = separator.subtract(
  "audio1.mp3",                  # Оригинал
  "audio2.mp3",                  # Стем
  "output",                      # Директория вывода
  "mp3"                          # Формат вывода
  [1, 1],                        # Веса
  False,                         # Использовать ли спектрограмму при вычитании?
  "avg_fft",                     # Тип ансамбля
)

Коррекция фазы

Через командную строку

python inference.py phase_fixer -i1 "target.wav" -i2 "source.wav" -o "output" -of wav -tm "NAME_TYPE" --transfer_phase --freq_blend --low_cutoff 500 --high_cutoff 5000

Напрямую

from inference import Separator
separator = Separator()
result = separator.phase_fixer(
  "target.wav",                  # Целевое аудио (амплитуда сохраняется по умолчанию)
  "source.wav",                  # Опорное аудио (донор фазы)
  "output",                      # Директория вывода
  "wav",                         # Формат вывода
  "NAME_TYPE",                   # Шаблон имени файла
  transfer_magnitude=False,      # Перенос амплитуды из source
  transfer_phase=True,           # Перенос фазы из source
  freq_blend_phases=True,        # Частотное смешение фаз
  low_cutoff=500,                # Нижняя граница смешения (Гц)
  high_cutoff=5000,              # Верхняя граница смешения (Гц)
  prefer_float=False
)

Пресеты (Preset)

Через командную строку

python inference.py preset -i "audio.mp3" -o "output" -of mp3 -p "my_preset.json" -tm "NAME_STEM"

Напрямую

from inference import Separator

separator = Separator()
results = separator.run_preset(
  "audio.mp3",                    # Входной файл/папка
  "output",                      # Директория вывода
  "mp3",                         # Формат вывода
  "NAME_STEM",                   # Шаблон имени файла
  "my_preset.json",              # Путь к JSON-пресету или dict
)

📋 Параметры методов класса Separator

Инициализация класса (Separator.__init__())

ПараметрТипОписание
sourcestr | NoneИсточник для скачивания моделей
Доступные варианты:
- hface, hf, huggingface (Hugging Face, по умолчанию)
- github, gh (GitHub Releases, быстрее для больших файлов)
- mscope, ms, modelscope (ModelScope, запасной вариант)
custom_model_info_pathstr | PathПуть к пользовательскому файлу информации о моделях (JSON)
Позволяет расширить стандартный список моделей
custom_models_dirstr | PathПуть к дополнительной директории, где хранятся локальные модели
Используется для поиска чекпоинтов вне стандартной папки кэша

Информация о моделях (Separator().show_info())

ПараметрТипОписание
limitintЛимит количества отображаемых моделей (0 или None — без лимита)
stemstrНазвание стема — показывать только модели с данным стемом
only_installedboolПоказывать только установленные модели

Скачать модель (Separator().download())

ПараметрТипОписание
model_namestrИмя модели для скачивания

Разделение (Separator().separate())

ПараметрТипОписание
input_filesstr | Path | listПуть к файлу/папке или список путей
output_dirstr | PathДиректория для сохранения результатов
output_formatstrФормат аудио (mp3, wav, flac и др.)
templatestrШаблон имени файла (ключи: NAME, STEM, MODEL) (Подробнее)
model_namestrИмя модели
extract_instrumentalboolСоздание инверсии выбранных стемов (стем invert)
use_spec_invertboolВычитание из спектрограммы вместо противофазы
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
preserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)
invert_plusboolИспользует сложение невыбранных стемов при создании инструментала
selected_stemslistСписок стемов для сохранения (если не указан — все)
add_paramsdictДополнительные параметры разделения

Возвращает:

([
  [имя_файла (str), [[стем (str), путь_к_файлу (str)], ...]],
  ...
], [строка с ошибкой для отображения в интерфейсе (str), ...])

Разделение с кастомной моделью (Separator().custom_separate())

ПараметрТипОписание
input_filesstr | Path | listПуть к файлу/папке или список путей
output_dirstr | PathДиректория для сохранения результатов
output_formatstrФормат аудио (mp3, wav, flac и др.)
templatestrШаблон имени файла (ключи: NAME, STEM, MODEL) (Подробнее)
model_typestrТип модели (например, bs_roformer)
ckptstr | PathПуть к чекпоинту (*.ckpt)
confstr | PathПуть к YAML конфигу (*.yaml)
extract_instrumentalboolСоздание инверсии выбранных стемов
use_spec_invertboolВычитание из спектрограммы вместо противофазы
invert_plusboolИспользует сложение невыбранных стемов при создании инструментала
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
preserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)
selected_stemslistСписок стемов для сохранения
add_paramsdictДополнительные параметры разделения

Возвращает: аналогично separate()

Итеративный ансамбль (Separator().iterative_ensemble())

ПараметрТипОписание
input_filestr | PathПуть к входному файлу
output_dirstr | PathДиректория для сохранения результатов
flowlistПресет для ансамбля (Пример)
num_itersintКоличество итераций (по умолчанию: 4)
output_formatstrФормат аудио (mp3, wav, flac и др.)
templatestrШаблон имени (ключи: NAME, ITER) (Подробнее)
save_intermediateboolСохранять промежуточные результаты каждой итерации
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
preserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)

Возвращает: (путь_к_финальному_ансамблю, список_промежуточных_файлов)

Авто-ансамбль (Separator().auto_ensemble())

ПараметрТипОписание
input_filestr | PathПуть к входному файлу
output_dirstr | PathДиректория для сохранения результатов
flowlistПресет для ансамбля (Пример)
templatestrШаблон имени (ключи: NAME, TYPE, COUNT) (Подробнее)
etypestrТип ансамбля (avg_fft, median_fft, min_fft, max_fft) (Подробнее)
output_formatstrФормат аудио
use_spec_invertboolВычитание из спектрограммы вместо противофазы
save_primary_stemsboolСохранять основные стемы в output_dir
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
preserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)

Возвращает: (путь_к_ансамблю, путь_к_инверсии, список_основных_стемов)

Ручной ансамбль (Separator().manual_ensemble())

ПараметрТипОписание
input_fileslistСписок путей к аудиофайлам
output_dirstr | PathДиректория для сохранения результата
weightslistВеса файлов (обязательно для avg_fft)
templatestrШаблон имени (ключи: NAME, TYPE) (Подробнее)
etypestrТип ансамбля (avg_fft, median_fft, min_fft, max_fft) (Подробнее)
output_formatstrФормат аудио
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)

Возвращает: str — путь к результату ансамбля

Вычитание (Separator().subtract())

ПараметрТипОписание
audio1str | PathПуть к оригинальному файлу
audio2str | PathПуть к файлу стема
output_dirstr | PathДиректория для сохранения результата
output_formatstrФормат аудио
use_spec_invertboolВычитание из спектрограммы вместо противофазы
templatestrШаблон имени (ключи: NAME, TYPE) (Подробнее)
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)

Возвращает: str — путь к результату вычитания

Коррекция фазы (Separator().phase_fixer())

ПараметрТипОписание
targetstr | PathПуть к целевому аудиофайлу (амплитуда сохраняется по умолчанию)
sourcestr | PathПуть к исходному аудиофайлу (донор фазы и опционально амплитуды)
output_dirstr | PathДиректория для сохранения результата
output_formatstrФормат аудио
templatestrШаблон имени (ключи: NAME, TYPE) (Подробнее)
transfer_magnitudeboolПереносить амплитуду из source (по умолчанию: False)
transfer_phaseboolПереносить фазу из source (по умолчанию: True)
freq_blend_phasesboolПлавное частотное смешение фаз между границами (по умолчанию: True)
low_cutoffintНижняя граница частотного смешения в Гц (по умолчанию: 500)
high_cutoffintВерхняя граница частотного смешения в Гц (по умолчанию: 5000)
prefer_floatboolПредпочитать высокую точность вывода (Используемые форматы сэмплов)

Возвращает: str — путь к результату коррекции фазы

Пресеты (Separator().run_preset())

ПараметрТипОписание
input_filesstr | Path | listПуть к файлу/папке или список путей
output_dirstr | PathДиректория для сохранения результатов
output_formatstrФормат аудио
templatestrШаблон имени файла (ключи: NAME, STEM, MODEL) (Подробнее)
presetstr | Path | dictПуть к JSON-файлу пресета или словарь с графом обработки
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
selected_stemslistСписок стемов для сохранения (фильтрация нод типа output_file)
add_paramsdictДополнительные параметры разделения для нод типа separate

Возвращает: аналогично separate()

Все параметры командной строки

Информация о моделях

первичные аргументы - inference.py info

АргументыПараметрТипОписание
-u, -update, --updateupdateboolОбновить кэш информации о моделях из репозитория
-clear, -clear_cache, -clear-cache, --clear_cache, --clear-cacheclear_cacheboolОчистить кэш информации о моделях
-mn, -model, --model_name, --model-namemodel_namestrИмя модели для скачивания (по умолчанию: bs_6stem)
-dw, -download, --downloaddownloadboolСкачать указанную модель (требуется -mn)
-l, -limit, --limitlimitintЛимит количества отображаемых моделей (0 или None - без лимита)
-s, -stem, --stemstemstrПоказать только модели, которые содержат указанный стем (например: vocals, drums)
-oi, -installed, --only_installed, --only-installedonly_installedboolПоказывать только установленные (скачанные) модели

Специфичные аргументы для работы с каталогами моделей

АргументыПараметрТипОписание
--add_custom_model_info_path, --add-custom-model-info-path, --model_info, --model-info, -minfocustom_model_info_pathstrПуть к пользовательскому файлу информации о моделях (JSON)
Позволяет расширить стандартный список моделей
--add_custom_models_dir, --add-custom-models-dir, --models_dir, --models-dir, -mdircustom_models_dirstrПуть к дополнительной директории, где хранятся локальные модели
Используется для поиска чекпоинтов вне стандартной папки кэша
--model_source, --model-source, -msrcmodel_sourcestrИсточник для скачивания моделей
Доступные варианты:
- hface, hf, huggingface (Hugging Face, по умолчанию)
- github, gh (GitHub Releases, быстрее для больших файлов)
- mscope, ms, modelscope (ModelScope, запасной вариант)

Разделение

первичные аргументы - inference.py separate

АргументыПараметрТипОписание
-i, --i, -input, --input, --input_files, --input-filesinputstr | Path | listПуть к входному аудиофайлу, папке с файлами или список путей
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, STEM, MODEL. Пример: NAME_STEM_MODEL (Подробнее)
-mn, -model, --model_name, --model-namemodel_namestrИмя модели для разделения (по умолчанию: bs_6stem)
-inst, -ext_inst, -ext-inst, --extract_instrumental, --extract-instrumentalextract_instrumentalboolСоздать инверсию выбранных стемов (инструментал) - стем с именем 'invert'
-ispec, -spec_invert, -spec-invert, --use_spec_invert, --use-spec-invertuse_spec_invertboolИспользовать вычитание из спектрограммы вместо противофазы при создании инверсии
-iplus, -invert_plus, -invert-plus, --invert_plus, --invert-plusinvert_plusboolИспользует сложение невыбранных стемов при создании инструментала
-st, --st, -stems, --stems, --selected_stems, --selected-stemsselected_stemslistСписок стемов для сохранения (например: vocals drums). Если не указаны - сохраняются все стемы
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer_floatprefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
--preserve_sidepreserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)
--{param_name}add_params.{param_name}int/float/str/boolДополнительный параметр разделения

Разделение с кастомной моделью

первичные аргументы - inference.py custom_separate

АргументыПараметрТипОписание
-i, --i, -input, --input, --input_files, --input-filesinputstr | Path | listПуть к входному аудиофайлу, папке с файлами или список путей
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, STEM, MODEL. Пример: NAME_STEM_MODEL (Подробнее)
-mt, -mtype, --model_type, --model-typemodel_typestrТип модели (например: bs_roformer, demucs, mdx). По умолчанию: bs_roformer
-ckpt, --ckpt, -checkpoint, --checkpoint, --checkpoint_path, --checkpoint-pathcheckpoint_pathstr | PathПуть к файлу чекпоинта модели (*.ckpt или *.pth)
-conf, --conf, -config, --config, --config_path, --config-pathconfig_pathstr | PathПуть к конфигурационному файлу модели (*.yaml)
-inst, -ext_inst, -ext-inst, --extract_instrumental, --extract-instrumentalextract_instrumentalboolСоздать инверсию выбранных стемов (инструментал) - стем с именем 'invert'
-ispec, -spec_invert, -spec-invert, --use_spec_invert, --use-spec-invertuse_spec_invertboolИспользовать вычитание из спектрограммы вместо противофазы при создании инверсии
-iplus, -invert_plus, -invert-plus, --invert_plus, --invert-plusinvert_plusboolИспользует сложение невыбранных стемов при создании инструментала
-st, --st, -stems, --stems, --selected_stems, --selected-stemsselected_stemslistСписок стемов для сохранения (например: vocals drums). Если не указаны - сохраняются все стемы
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer_floatprefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
--preserve_sidepreserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)
--{param_name}add_params.{param_name}int/float/str/boolДополнительный параметр разделения

Итеративный ансамбль

первичные аргументы - inference.py iterative_ensemble

АргументыПараметрТипОписание
-i, --i, -input, --input, --input_file, --input-fileinputstr | PathПуть к входному аудиофайлу
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, ITER. Пример: NAME_ITER (Подробнее)
-n, -iters, --num_iters, --num-itersnum_itersintКоличество итераций (по умолчанию: 4). На каждой итерации применяется весь набор моделей к остатку от предыдущей итерации
-save_intermediate, -save-intermediate, --save_intermediate, --save-intermediatesave_intermediateboolСохранять промежуточные результаты каждой итерации
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer_floatprefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
--preserve_sidepreserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)
-flow, --flowflowlistПресет в виде строк: МОДЕЛЬ:ОСНОВНОЙ_СТЕМ:ИНВЕРСИЯ. (Пример)
-json, -preset, -preset_json, -preset-json, --preset_json, --preset-jsonpresetstrПуть к JSON-файлу с пресетом ансамбля (Пример)

Авто-ансамбль

первичные аргументы - inference.py auto_ensemble

АргументыПараметрТипОписание
-i, --i, -input, --input, --input_file, --input-fileinputstr | PathПуть к входному аудиофайлу
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, TYPE, COUNT. Пример: NAME_COUNT_TYPE (Подробнее)
-t, -type, -etype, --ensemble_type, --ensemble-typeensemble_typestrТип ансамбля: avg_fft, median_fft, min_fft, max_fft (по умолчанию: avg_fft; Подробнее)
-ispec, -spec_invert, -spec-invert, --use_spec_invert, --use-spec-invertuse_spec_invertboolИспользовать вычитание из спектрограммы вместо противофазы при создании инверсии
-save_stems, -save-stems, -save_primary_stems, --save-primary-stemssave_primary_stemsboolСохранять основные стемы в выходную директорию
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer_floatprefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
--preserve_sidepreserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)
-flow, --flowflowlistПресет в виде строк: МОДЕЛЬ:ОСНОВНОЙ_СТЕМ:ИНВЕРСИЯ:ВЕС. (Пример)
-json, -preset, -preset_json, -preset-json, --preset_json, --preset-jsonpresetstrПуть к JSON-файлу с пресетом ансамбля (Пример)

Ручной ансамбль

первичные аргументы - inference.py manual_ensemble

АргументыПараметрТипОписание
-i, --i, -input, --input, --input_files, --input-filesinputlistСписок путей к аудиофайлам
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, TYPE. Пример: NAME_TYPE (Подробнее)
-t, -type, -etype, --ensemble_type, --ensemble-typeensemble_typestrТип ансамбля: avg_fft, median_fft, min_fft, max_fft (по умолчанию: avg_fft; Подробнее)
-w, -weights, --weightsweightslistВеса для каждого аудиофайла (обязательно для типа avg_fft). Пример: -w 1.0 0.5 0.2
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer_floatprefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)

Вычитание

первичные аргументы - inference.py subtract

АргументыПараметрТипОписание
-i1, --i1, -input1, --input1, --input_file1, --input-file1input_1str | PathПуть к оригинальному аудиофайлу (из которого вычитаем)
-i2, --i2, -input2, --input2, --input_file2, --input-file2input_2str | PathПуть к аудиофайлу стема (который вычитаем)
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, TYPE. Пример: NAME_TYPE (Подробнее)
-ispec, -spec_invert, -spec-invert, --use_spec_invert, --use-spec-invertuse_spec_invertboolИспользовать вычитание из спектрограммы вместо противофазы при создании инверсии
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer_floatprefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)

Коррекция фазы

первичные аргументы - inference.py phase_fixer

АргументыПараметрТипОписание
-i1, --i1, -target, --target, --target_file, --target-filetargetstr | PathПуть к целевому аудиофайлу. По умолчанию его амплитуда сохраняется, а фаза берётся из source
-i2, --i2, -source, --source, --source_file, --source-filesourcestr | PathПуть к исходному аудиофайлу. Используется как донор фазы, а при --transfer_magnitude — и амплитуды
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, TYPE. Пример: NAME_TYPE (Подробнее)
-tmag, --transfer_magnitude, --transfer-magnitudetransfer_magnitudeboolПереносить амплитуду из исходного файла (по умолчанию выключено)
-nphase, --transfer_phase, --transfer-phasetransfer_phaseboolВключить перенос фазы из исходного файла
-nblend, --freq_blend, --freq-blendfreq_blendboolВключить частотное смешение фаз
-lc, --low_cutoff, --low-cutofflow_cutoffintНижняя граница частотного смешения фаз в Гц (по умолчанию: 500)
-hc, --high_cutoff, --high-cutoffhigh_cutoffintВерхняя граница частотного смешения фаз в Гц (по умолчанию: 5000)
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer-floatprefer_floatboolПредпочитать высокую точность вывода (Используемые форматы сэмплов)

Пресеты

первичные аргументы - inference.py preset

АргументыПараметрТипОписание
-i, --i, -input, --input, --input_files, --input-filesinputstr | Path | listПуть к входному аудиофайлу, папке с файлами или список путей
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, STEM, MODEL. Пример: NAME_STEM_MODEL (Подробнее)
-p, -preset, --preset, --preset_path, --preset-pathpresetstr | PathПуть к JSON-файлу с пресетом (графом обработки)
-st, --st, -stems, --stems, --selected_stems, --selected-stemsselected_stemslistСписок стемов для сохранения (например: vocals drums). Если не указаны - сохраняются все стемы из пресета
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer-floatprefer_floatboolПредпочитать высокую точность вывода (Используемые форматы сэмплов)
--{param_name}add_params.{param_name}int/float/str/boolДополнительный параметр разделения (применяется к нодам типа separate внутри пресета)

Web-UI

первичные аргументы - app.py

АргументыПараметрТипОписание
-s, -share, --share, --public, --gradio_share, --gradio-shareshareboolСоздать публичную ссылку через Gradio Share (для доступа из интернета)
-p, -port, --port, --server_port, --server-portportintПорт для запуска сервера (по умолчанию: 7860)

noblebarkrr/mvsepless

CLI wrapper for MSST and UVR in Google Colab

Python

8

350 commits

updated Oct 12, 2026

See the code

README

MVSepless

Open In Colab

Open In Huggingface

*/непростая обёртка*/ для audio-separator и Music-Source-Separation-Training

Информация о моделях

Всю актуальную информацию о доступных моделях можно увидеть на отдельной странице:

https://mvsepless-resources.github.io/model_info_page/

(используется информация из репозитория noblebarkrr/mvsepless_resources на Hugging Face)

Источники моделей

  • Hugging Face ("hface", "hf", "huggingface") - Оригинал
  • Github ("github", "gh") - Перезалив оригинала на Github Releases (более быстрая загрузка, чекпоинты тяжелее 2 гб разделены на несколько частей, по 2 гб каждая)
  • ModelScope ("mscope", "ms", "modelscope") - Запасной вариант (редко обновляется, зачастую загрузка очень медленная)

Фишки

  • Извлечение инструментала (инверсии выбранных стемов)
  • Встроенный авто-ансамбль, с возможностью выбрать основной стем для добавления в ансамбль
  • Базовый итеративный ансамбль
  • Создание собственных гибких пресетов разделения
  • Дополнительные параметры разделения, как в UVR
  • История обработок (Только в Web-UI)
  • Пакетная обработка по умолчанию (кроме авто-ансамбля и вычитания)
  • Поддержка метаданных (при установленном пакете pytaglib)
  • Язык интерфейса изменяется через переменную окружения MVSEPLESS_LANGUAGE

Содержание

🛠️ Установка

Совместимость:

  • Python: 3.10-3.12 (версии 3.13 и 3.14 тестируются)
  • Pytorch: 1.13-latest

Подготовка среды выполнения

Windows:

  1. Установите Python с включенными опциями Add Python 3.x to PATH и Disable path length limit: https://www.python.org/ftp/python/3.11.6/python-3.11.6-amd64.exe

  2. Скачайте архив с FFMPEG, распакуйте его и добавьте распакованную папку в переменную PATH: https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-gpl.zip

  3. Установите Microsoft Visual C++ 2015-2022 (x64): https://aka.ms/vs/17/release/vc_redist.x64.exe

  4. Установите Microsoft C++ Build Tools и после установки перезапустите компьютер: https://visualstudio.microsoft.com/visual-cpp-build-tools/
    Выберите Desktop development with C++

  5. Установите PyTorch: https://pytorch.org/get-started/locally/

  6. Скачайте и распакуйте архив: https://github.com/noblebarkrr/mvsepless/archive/refs/heads/dzeta.zip

  7. Откройте командную строку в распакованной папке

Установка pytaglib (опционально):
pip install pytaglib
Для случаев, когда бинарный файл для Python-пакета pytaglib недоступен для вашей среды выполнения:

Скачайте и распакуйте архив: https://github.com/supermihi/pytaglib/archive/refs/heads/main.zip

Затем:

- Откройте командную строку встроенных инструментов Visual Studio (Native Tools Command Prompt)
- Установите setuptools версией ниже, чем 61.0.0 pip install "setuptools<61.0.0"
- Перейдите в репозиторий pytaglib (распакованную папку)
- Выполните python build_native_taglib.py, который загрузит и соберет последний официальный релиз TagLib (только на x64)
- Выполните python setup.py install

Linux (Ubuntu/Debian):

# Установка базовых зависимостей
apt update -y
apt upgrade -y
apt install -y wget curl git gcc libx11-dev ffmpeg build-essential cmake nano python3-full python3-pip python3-dev libutfcpp-dev

# Клонирование репозитория

git clone https://github.com/noblebarkrr/mvsepless -b dzeta --depth 1
cd mvsepless

# Если пакеты не устанваливаются без виртуального окружения
python3 -m venv env
source env/bin/activate

python3 -m pip install ninja cmake
Установка pytaglib (опционально):
# Сборка библиотеки taglib (если нет подходящего бинарного файла для pytaglib)
git clone https://github.com/taglib/taglib
cd taglib
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-fPIC" -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON ..
make
make install
# Выходим из папки taglib/build
cd ../..

pip install pytaglib

Установка зависимостей

  • через uv:
pip install uv
# Обычные зависимости
uv pip install --no-cache-dir -r requirements.txt
# Устаревшие зависимости (только Python 3.10)
uv pip install --no-cache-dir -r requirements_old_torch_py310.txt
  • через pip (медленее):
# Обычные зависимости
pip install -r requirements.txt
# Устаревшие зависимости (только Python 3.10)
pip install -r requirements_old_torch_py310.txt

VBach (форк PolGen-RVC)

Документация

Специфичные атрибуты конфигов Roformer моделей

Все атрибуты находятся здесь

Шаблоны имен файлов

Для разделения (separate, custom_separate):

  • NAME — имя входного файла (без расширения)
  • STEM — название стема (например: vocals, instrumental)
  • MODEL — имя модели (например: bs_6stem)

Пример: NAME_STEM_MODEL → Song_vocals_bs_6stem


Для итеративного ансамбля:

  • NAME — имя входного файла (без расширения)
  • ITER — номер итерации (iter_N)

Пример: NAME_ITER → Song_iter_3


Для авто-ансамбля (auto_ensemble):

  • NAME — имя входного файла (без расширения)
  • TYPE — тип ансамбля (например: min_fft, avg_fft)
  • COUNT — количество используемых моделей/файлов

Пример: NAME_COUNT_TYPE → Song_7_min_fft


Для ручного ансамбля (manual_ensemble):

  • NAME — имя входного файла (без расширения)
  • TYPE — тип ансамбля (например: min_fft, avg_fft)

Пример: NAME_TYPE → Song_min_fft


Для вычитания (subtract):

  • NAME — имя входного файла (без расшириения)
  • TYPE — тип инверсии (например: waveform, spectrogram)

Пример: NAME_TYPE → Song_waveform

Для коррекции фазы (phase_fixer): NAME — имя целевого файла (без расширения) TYPE — тип операции (phase_fix)

Пример: NAME_TYPE → Song_phase_fix

Типы ансамбля

ТипОписание
avg_fftСреднее, стабильный результат (требуются веса)
median_fftМедиана (эффективно от 3+ аудио)
min_fftМинимум, более чистый результат
max_fftМаксимум, более полный, но "грязный" результат

Пресеты разделения

Схема пресета и информация о нодах находятся здесь

Кастомные каталоги моделей

Схема каталога и правила работы с ним находятся здесь

Пример пресета для авто-ансамбля

Python

[
    ["имя_модели1", "основной_стем1", False, 1],
    ["имя_модели2", "основной_стем2", False, 2],
    ...
]
[
    [str, str, bool, float],
    [str, str, bool, float],
    ...
]

JSON

[
    ["имя_модели1", "основной_стем1", false, 1],
    ["имя_модели2", "основной_стем2", false, 2],
    ...
]
[
    [str, str, bool, float],
    [str, str, bool, float],
    ...
]

В командной строке

--flow имя_модели1:основной_стем_1:False:1 имя_модели2:основной_стем_2:False:2 ...
--flow str:str:bool:float str:str:bool:float

Пример пресета для итеративного ансамбля

Python

[
    ["имя_модели1", "основной_стем1", False],
    ["имя_модели2", "основной_стем2", False],
    ...
]
[
    [str, str, bool],
    [str, str, bool],
    ...
]

JSON

[
    ["имя_модели1", "основной_стем1", false],
    ["имя_модели2", "основной_стем2", false],
    ...
]

В командной строке

--flow имя_модели1:основной_стем_1:False имя_модели2:основной_стем_2:False ...
--flow str:str:bool str:str:bool

🚀 Пример использования

Web-UI

Через командную строку


python app.py --share

Напрямую

from app import App

app = App()
app_ui = app.UI(theme, False)
app_ui.launch(
  allowed_paths=["/"],
  debug=True, 
  share=True, # Если нужно сделать общий доступ к Web-UI
  server_port=7860,
  server_name="0.0.0.0"
)

Информация о моделях

Через командную строку

# Список с фильтром
python inference.py info -limit 0 -stem "vocals"
# Полный список
python inference.py info
# Обновление информации о моделях
python inference.py info -update

Напрямую

from inference import Separator

separator = Separator() # Инициализация класса
separator.update_info() # Обновление информации о моделях
separator.show_info(
  0, # Лимит количества отображаемых моделей
  "vocals", # Название стема (если указан, будут показаны только модели с данным стемом)
  False # Только установленные модели (при True)
)

Пример вывода:

                              Информация о моделях                              
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Имя модели                               ┃ Выходные стемы                    ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ установлено                              │ целевой инструмент                │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_inst_fno_unwa                         │ other, vocals                     │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_inst_large2_unwa                      │ instrument, vocals                │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_inst_hyperace_unwa                    │ instrument, vocals                │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_inst_hyperace2_unwa                   │ instrument, vocals                │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_voc_hyperace2_unwa                    │ instrument, vocals                │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_karaoke_becruily                      │ Instrumental, Vocals              │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_voctest_gabox                         │ Instrumental, Vocals              │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_karaoke_gabox                         │ other, vocals                     │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_karaoke_inv_gabox                     │ other, vocals                     │
├──────────────────────────────────────────┼───────────────────────────────────┤
│ bs_6stem                                 │ bass, drums, guitar, other,       │
│                                          │ piano, vocals                     │
└──────────────────────────────────────────┴───────────────────────────────────┘

Разделение

Через командную строку

python inference.py separate -i "audio.mp3" -o "output" -of mp3 -mn "bs_6stem" -tm "NAME_STEM"

Напрямую

from inference import Separator

separator = Separator()
model_name = "bs_6stem"
separator.download(model_name) # Скачивание модели без запуска инференса

results = separator.separate(
  "audio.mp3",           # Входной файл/папка
  "output",              # Директория вывода
  "mp3",                 # Формат вывода
  "NAME_STEM",           # Шаблон имени файла
  model_name             # Имя модели
)

Разделение с кастомной моделью

Через командную строку

python inference.py custom_separate -i "audio.mp3" -o "output" -of mp3 -ckpt "bs_6stem.ckpt" -conf "bs_6stem_config.yaml" -mt "bs_roformer" -tm "NAME_STEM"

Напрямую

from inference import Separator

separator = Separator()

results = separator.custom_separate(
  "audio.mp3",                   # Входной файл/папка
  "output",                      # Директория вывода
  "mp3",                         # Формат вывода
  "NAME_STEM",                   # Шаблон имени файла
  "bs_roformer",                 # Тип модели
  "bs_6stem.ckpt",               # Путь к чекпоинту
  "bs_6stem_config.yaml"         # Путь к конфигу
)

Итеративный ансамбль (пример использования)

Через командную строку

Пример пресета для итеративного ансамбля

# Пресет в виде списка
python inference.py iterative_ensemble -i "audio.mp3" -o "output" -of mp3 -tm "NAME_ITER" -flow "bs_6stem:vocals:False" "mbr_inst1e_unwa:vocals:False" -n 4

# С сохранением промежуточных результатов
python inference.py iterative_ensemble -i "audio.mp3" -o "output" -of mp3 -tm "NAME_ITER" -flow "bs_6stem:vocals:False" "mbr_inst1e_unwa:vocals:False" -n 4 -save_intermediate

# Пресет в виде json-файла
python inference.py iterative_ensemble -i "audio.mp3" -o "output" -of mp3 -tm "NAME_ITER" -json "iterative_flow.json" -n 4

Напрямую

from inference import Separator

separator = Separator()
flow = [
    ["bs_6stem", "vocals", True],      # [модель, осн. стем, инверсия]
    ["mbr_inst1e_unwa", "vocals", False]
]

result_path, intermediate_files = separator.iterative_ensemble(
    "audio.mp3",        # Входной файл
    "output",           # Директория вывода
    flow,               # Пресет ансамбля
    num_iters=4,        # Количество итераций
    output_format="mp3",# Формат вывода
    template="NAME_ITER", # Шаблон имени файла
    save_intermediate=True  # Сохранять промежуточные результаты
)

print(f"Финальный результат: {result_path}")
print(f"Промежуточные файлы: {intermediate_files}")

Авто-ансамбль

Через командную строку

Пример пресета для авто-ансамбля

# Пресет в виде списка списков
python inference.py auto_ensemble -i "audio.mp3" -o "output" -of mp3 -type avg_fft -tm "NAME_TYPE" -flow "bs_6stem:vocals:True:1" "mbr_inst1e_unwa:other:False:1"

# Пресет в виде json-файла
python inference.py auto_ensemble -i "audio.mp3" -o "output" -of mp3 -type avg_fft -tm "NAME_TYPE" -json "ensemble_flow.json"

Напрямую

from inference import Separator

separator = Separator()
flow = [
    ["bs_6stem", "vocals", True, 1],      # [модель, осн. стем, инверсия, вес]
    ["mbr_inst1e_unwa", "other", False, 1]
]

result, invert_result = separator.auto_ensemble(
  "audio.mp3",           # Входной файл
  "output",              # Директория вывода
  flow,                  # Пресет ансамбля
  "NAME_TYPE",           # Шаблон имени файла
  "avg_fft",             # Тип ансамбля
  "mp3"                  # Формат вывода
)

Ручной ансамбль

Через командную строку

python inference.py manual_ensemble -i "audio1.mp3" "audio2.mp3" -o "output" -of mp3 -type avg_fft -tm "NAME_TYPE" -w 1 1

Напрямую

from inference import Separator

separator = Separator()

result = separator.manual_ensemble(
  ["audio1.mp3", "audio2.mp3"],  # Входные файлы
  "output",                      # Директория вывода
  [1, 1],                        # Веса
  "NAME_TYPE",                   # Шаблон имени файла
  "avg_fft",                     # Тип ансамбля
  "mp3"                          # Формат вывода
)

Вычитание

Через командную строку

python inference.py subtract -i1 "audio1.mp3" -i2 "audio2.mp3" -o "output" -of mp3 -tm "NAME_TYPE" 

Напрямую

from inference import Separator

separator = Separator()

result = separator.subtract(
  "audio1.mp3",                  # Оригинал
  "audio2.mp3",                  # Стем
  "output",                      # Директория вывода
  "mp3"                          # Формат вывода
  [1, 1],                        # Веса
  False,                         # Использовать ли спектрограмму при вычитании?
  "avg_fft",                     # Тип ансамбля
)

Коррекция фазы

Через командную строку

python inference.py phase_fixer -i1 "target.wav" -i2 "source.wav" -o "output" -of wav -tm "NAME_TYPE" --transfer_phase --freq_blend --low_cutoff 500 --high_cutoff 5000

Напрямую

from inference import Separator
separator = Separator()
result = separator.phase_fixer(
  "target.wav",                  # Целевое аудио (амплитуда сохраняется по умолчанию)
  "source.wav",                  # Опорное аудио (донор фазы)
  "output",                      # Директория вывода
  "wav",                         # Формат вывода
  "NAME_TYPE",                   # Шаблон имени файла
  transfer_magnitude=False,      # Перенос амплитуды из source
  transfer_phase=True,           # Перенос фазы из source
  freq_blend_phases=True,        # Частотное смешение фаз
  low_cutoff=500,                # Нижняя граница смешения (Гц)
  high_cutoff=5000,              # Верхняя граница смешения (Гц)
  prefer_float=False
)

Пресеты (Preset)

Через командную строку

python inference.py preset -i "audio.mp3" -o "output" -of mp3 -p "my_preset.json" -tm "NAME_STEM"

Напрямую

from inference import Separator

separator = Separator()
results = separator.run_preset(
  "audio.mp3",                    # Входной файл/папка
  "output",                      # Директория вывода
  "mp3",                         # Формат вывода
  "NAME_STEM",                   # Шаблон имени файла
  "my_preset.json",              # Путь к JSON-пресету или dict
)

📋 Параметры методов класса Separator

Инициализация класса (Separator.__init__())

ПараметрТипОписание
sourcestr | NoneИсточник для скачивания моделей
Доступные варианты:
- hface, hf, huggingface (Hugging Face, по умолчанию)
- github, gh (GitHub Releases, быстрее для больших файлов)
- mscope, ms, modelscope (ModelScope, запасной вариант)
custom_model_info_pathstr | PathПуть к пользовательскому файлу информации о моделях (JSON)
Позволяет расширить стандартный список моделей
custom_models_dirstr | PathПуть к дополнительной директории, где хранятся локальные модели
Используется для поиска чекпоинтов вне стандартной папки кэша

Информация о моделях (Separator().show_info())

ПараметрТипОписание
limitintЛимит количества отображаемых моделей (0 или None — без лимита)
stemstrНазвание стема — показывать только модели с данным стемом
only_installedboolПоказывать только установленные модели

Скачать модель (Separator().download())

ПараметрТипОписание
model_namestrИмя модели для скачивания

Разделение (Separator().separate())

ПараметрТипОписание
input_filesstr | Path | listПуть к файлу/папке или список путей
output_dirstr | PathДиректория для сохранения результатов
output_formatstrФормат аудио (mp3, wav, flac и др.)
templatestrШаблон имени файла (ключи: NAME, STEM, MODEL) (Подробнее)
model_namestrИмя модели
extract_instrumentalboolСоздание инверсии выбранных стемов (стем invert)
use_spec_invertboolВычитание из спектрограммы вместо противофазы
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
preserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)
invert_plusboolИспользует сложение невыбранных стемов при создании инструментала
selected_stemslistСписок стемов для сохранения (если не указан — все)
add_paramsdictДополнительные параметры разделения

Возвращает:

([
  [имя_файла (str), [[стем (str), путь_к_файлу (str)], ...]],
  ...
], [строка с ошибкой для отображения в интерфейсе (str), ...])

Разделение с кастомной моделью (Separator().custom_separate())

ПараметрТипОписание
input_filesstr | Path | listПуть к файлу/папке или список путей
output_dirstr | PathДиректория для сохранения результатов
output_formatstrФормат аудио (mp3, wav, flac и др.)
templatestrШаблон имени файла (ключи: NAME, STEM, MODEL) (Подробнее)
model_typestrТип модели (например, bs_roformer)
ckptstr | PathПуть к чекпоинту (*.ckpt)
confstr | PathПуть к YAML конфигу (*.yaml)
extract_instrumentalboolСоздание инверсии выбранных стемов
use_spec_invertboolВычитание из спектрограммы вместо противофазы
invert_plusboolИспользует сложение невыбранных стемов при создании инструментала
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
preserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)
selected_stemslistСписок стемов для сохранения
add_paramsdictДополнительные параметры разделения

Возвращает: аналогично separate()

Итеративный ансамбль (Separator().iterative_ensemble())

ПараметрТипОписание
input_filestr | PathПуть к входному файлу
output_dirstr | PathДиректория для сохранения результатов
flowlistПресет для ансамбля (Пример)
num_itersintКоличество итераций (по умолчанию: 4)
output_formatstrФормат аудио (mp3, wav, flac и др.)
templatestrШаблон имени (ключи: NAME, ITER) (Подробнее)
save_intermediateboolСохранять промежуточные результаты каждой итерации
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
preserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)

Возвращает: (путь_к_финальному_ансамблю, список_промежуточных_файлов)

Авто-ансамбль (Separator().auto_ensemble())

ПараметрТипОписание
input_filestr | PathПуть к входному файлу
output_dirstr | PathДиректория для сохранения результатов
flowlistПресет для ансамбля (Пример)
templatestrШаблон имени (ключи: NAME, TYPE, COUNT) (Подробнее)
etypestrТип ансамбля (avg_fft, median_fft, min_fft, max_fft) (Подробнее)
output_formatstrФормат аудио
use_spec_invertboolВычитание из спектрограммы вместо противофазы
save_primary_stemsboolСохранять основные стемы в output_dir
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
preserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)

Возвращает: (путь_к_ансамблю, путь_к_инверсии, список_основных_стемов)

Ручной ансамбль (Separator().manual_ensemble())

ПараметрТипОписание
input_fileslistСписок путей к аудиофайлам
output_dirstr | PathДиректория для сохранения результата
weightslistВеса файлов (обязательно для avg_fft)
templatestrШаблон имени (ключи: NAME, TYPE) (Подробнее)
etypestrТип ансамбля (avg_fft, median_fft, min_fft, max_fft) (Подробнее)
output_formatstrФормат аудио
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)

Возвращает: str — путь к результату ансамбля

Вычитание (Separator().subtract())

ПараметрТипОписание
audio1str | PathПуть к оригинальному файлу
audio2str | PathПуть к файлу стема
output_dirstr | PathДиректория для сохранения результата
output_formatstrФормат аудио
use_spec_invertboolВычитание из спектрограммы вместо противофазы
templatestrШаблон имени (ключи: NAME, TYPE) (Подробнее)
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)

Возвращает: str — путь к результату вычитания

Коррекция фазы (Separator().phase_fixer())

ПараметрТипОписание
targetstr | PathПуть к целевому аудиофайлу (амплитуда сохраняется по умолчанию)
sourcestr | PathПуть к исходному аудиофайлу (донор фазы и опционально амплитуды)
output_dirstr | PathДиректория для сохранения результата
output_formatstrФормат аудио
templatestrШаблон имени (ключи: NAME, TYPE) (Подробнее)
transfer_magnitudeboolПереносить амплитуду из source (по умолчанию: False)
transfer_phaseboolПереносить фазу из source (по умолчанию: True)
freq_blend_phasesboolПлавное частотное смешение фаз между границами (по умолчанию: True)
low_cutoffintНижняя граница частотного смешения в Гц (по умолчанию: 500)
high_cutoffintВерхняя граница частотного смешения в Гц (по умолчанию: 5000)
prefer_floatboolПредпочитать высокую точность вывода (Используемые форматы сэмплов)

Возвращает: str — путь к результату коррекции фазы

Пресеты (Separator().run_preset())

ПараметрТипОписание
input_filesstr | Path | listПуть к файлу/папке или список путей
output_dirstr | PathДиректория для сохранения результатов
output_formatstrФормат аудио
templatestrШаблон имени файла (ключи: NAME, STEM, MODEL) (Подробнее)
presetstr | Path | dictПуть к JSON-файлу пресета или словарь с графом обработки
prefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
selected_stemslistСписок стемов для сохранения (фильтрация нод типа output_file)
add_paramsdictДополнительные параметры разделения для нод типа separate

Возвращает: аналогично separate()

Все параметры командной строки

Информация о моделях

первичные аргументы - inference.py info

АргументыПараметрТипОписание
-u, -update, --updateupdateboolОбновить кэш информации о моделях из репозитория
-clear, -clear_cache, -clear-cache, --clear_cache, --clear-cacheclear_cacheboolОчистить кэш информации о моделях
-mn, -model, --model_name, --model-namemodel_namestrИмя модели для скачивания (по умолчанию: bs_6stem)
-dw, -download, --downloaddownloadboolСкачать указанную модель (требуется -mn)
-l, -limit, --limitlimitintЛимит количества отображаемых моделей (0 или None - без лимита)
-s, -stem, --stemstemstrПоказать только модели, которые содержат указанный стем (например: vocals, drums)
-oi, -installed, --only_installed, --only-installedonly_installedboolПоказывать только установленные (скачанные) модели

Специфичные аргументы для работы с каталогами моделей

АргументыПараметрТипОписание
--add_custom_model_info_path, --add-custom-model-info-path, --model_info, --model-info, -minfocustom_model_info_pathstrПуть к пользовательскому файлу информации о моделях (JSON)
Позволяет расширить стандартный список моделей
--add_custom_models_dir, --add-custom-models-dir, --models_dir, --models-dir, -mdircustom_models_dirstrПуть к дополнительной директории, где хранятся локальные модели
Используется для поиска чекпоинтов вне стандартной папки кэша
--model_source, --model-source, -msrcmodel_sourcestrИсточник для скачивания моделей
Доступные варианты:
- hface, hf, huggingface (Hugging Face, по умолчанию)
- github, gh (GitHub Releases, быстрее для больших файлов)
- mscope, ms, modelscope (ModelScope, запасной вариант)

Разделение

первичные аргументы - inference.py separate

АргументыПараметрТипОписание
-i, --i, -input, --input, --input_files, --input-filesinputstr | Path | listПуть к входному аудиофайлу, папке с файлами или список путей
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, STEM, MODEL. Пример: NAME_STEM_MODEL (Подробнее)
-mn, -model, --model_name, --model-namemodel_namestrИмя модели для разделения (по умолчанию: bs_6stem)
-inst, -ext_inst, -ext-inst, --extract_instrumental, --extract-instrumentalextract_instrumentalboolСоздать инверсию выбранных стемов (инструментал) - стем с именем 'invert'
-ispec, -spec_invert, -spec-invert, --use_spec_invert, --use-spec-invertuse_spec_invertboolИспользовать вычитание из спектрограммы вместо противофазы при создании инверсии
-iplus, -invert_plus, -invert-plus, --invert_plus, --invert-plusinvert_plusboolИспользует сложение невыбранных стемов при создании инструментала
-st, --st, -stems, --stems, --selected_stems, --selected-stemsselected_stemslistСписок стемов для сохранения (например: vocals drums). Если не указаны - сохраняются все стемы
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer_floatprefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
--preserve_sidepreserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)
--{param_name}add_params.{param_name}int/float/str/boolДополнительный параметр разделения

Разделение с кастомной моделью

первичные аргументы - inference.py custom_separate

АргументыПараметрТипОписание
-i, --i, -input, --input, --input_files, --input-filesinputstr | Path | listПуть к входному аудиофайлу, папке с файлами или список путей
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, STEM, MODEL. Пример: NAME_STEM_MODEL (Подробнее)
-mt, -mtype, --model_type, --model-typemodel_typestrТип модели (например: bs_roformer, demucs, mdx). По умолчанию: bs_roformer
-ckpt, --ckpt, -checkpoint, --checkpoint, --checkpoint_path, --checkpoint-pathcheckpoint_pathstr | PathПуть к файлу чекпоинта модели (*.ckpt или *.pth)
-conf, --conf, -config, --config, --config_path, --config-pathconfig_pathstr | PathПуть к конфигурационному файлу модели (*.yaml)
-inst, -ext_inst, -ext-inst, --extract_instrumental, --extract-instrumentalextract_instrumentalboolСоздать инверсию выбранных стемов (инструментал) - стем с именем 'invert'
-ispec, -spec_invert, -spec-invert, --use_spec_invert, --use-spec-invertuse_spec_invertboolИспользовать вычитание из спектрограммы вместо противофазы при создании инверсии
-iplus, -invert_plus, -invert-plus, --invert_plus, --invert-plusinvert_plusboolИспользует сложение невыбранных стемов при создании инструментала
-st, --st, -stems, --stems, --selected_stems, --selected-stemsselected_stemslistСписок стемов для сохранения (например: vocals drums). Если не указаны - сохраняются все стемы
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer_floatprefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
--preserve_sidepreserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)
--{param_name}add_params.{param_name}int/float/str/boolДополнительный параметр разделения

Итеративный ансамбль

первичные аргументы - inference.py iterative_ensemble

АргументыПараметрТипОписание
-i, --i, -input, --input, --input_file, --input-fileinputstr | PathПуть к входному аудиофайлу
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, ITER. Пример: NAME_ITER (Подробнее)
-n, -iters, --num_iters, --num-itersnum_itersintКоличество итераций (по умолчанию: 4). На каждой итерации применяется весь набор моделей к остатку от предыдущей итерации
-save_intermediate, -save-intermediate, --save_intermediate, --save-intermediatesave_intermediateboolСохранять промежуточные результаты каждой итерации
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer_floatprefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
--preserve_sidepreserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)
-flow, --flowflowlistПресет в виде строк: МОДЕЛЬ:ОСНОВНОЙ_СТЕМ:ИНВЕРСИЯ. (Пример)
-json, -preset, -preset_json, -preset-json, --preset_json, --preset-jsonpresetstrПуть к JSON-файлу с пресетом ансамбля (Пример)

Авто-ансамбль

первичные аргументы - inference.py auto_ensemble

АргументыПараметрТипОписание
-i, --i, -input, --input, --input_file, --input-fileinputstr | PathПуть к входному аудиофайлу
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, TYPE, COUNT. Пример: NAME_COUNT_TYPE (Подробнее)
-t, -type, -etype, --ensemble_type, --ensemble-typeensemble_typestrТип ансамбля: avg_fft, median_fft, min_fft, max_fft (по умолчанию: avg_fft; Подробнее)
-ispec, -spec_invert, -spec-invert, --use_spec_invert, --use-spec-invertuse_spec_invertboolИспользовать вычитание из спектрограммы вместо противофазы при создании инверсии
-save_stems, -save-stems, -save_primary_stems, --save-primary-stemssave_primary_stemsboolСохранять основные стемы в выходную директорию
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer_floatprefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)
--preserve_sidepreserve_sideboolПеревести боковые каналы в моно (Для моделей, работающих только с моно сигналом)
-flow, --flowflowlistПресет в виде строк: МОДЕЛЬ:ОСНОВНОЙ_СТЕМ:ИНВЕРСИЯ:ВЕС. (Пример)
-json, -preset, -preset_json, -preset-json, --preset_json, --preset-jsonpresetstrПуть к JSON-файлу с пресетом ансамбля (Пример)

Ручной ансамбль

первичные аргументы - inference.py manual_ensemble

АргументыПараметрТипОписание
-i, --i, -input, --input, --input_files, --input-filesinputlistСписок путей к аудиофайлам
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, TYPE. Пример: NAME_TYPE (Подробнее)
-t, -type, -etype, --ensemble_type, --ensemble-typeensemble_typestrТип ансамбля: avg_fft, median_fft, min_fft, max_fft (по умолчанию: avg_fft; Подробнее)
-w, -weights, --weightsweightslistВеса для каждого аудиофайла (обязательно для типа avg_fft). Пример: -w 1.0 0.5 0.2
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer_floatprefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)

Вычитание

первичные аргументы - inference.py subtract

АргументыПараметрТипОписание
-i1, --i1, -input1, --input1, --input_file1, --input-file1input_1str | PathПуть к оригинальному аудиофайлу (из которого вычитаем)
-i2, --i2, -input2, --input2, --input_file2, --input-file2input_2str | PathПуть к аудиофайлу стема (который вычитаем)
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, TYPE. Пример: NAME_TYPE (Подробнее)
-ispec, -spec_invert, -spec-invert, --use_spec_invert, --use-spec-invertuse_spec_invertboolИспользовать вычитание из спектрограммы вместо противофазы при создании инверсии
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer_floatprefer_floatboolПредочитает высокую точность вывода (Используемые форматы сэмплов)

Коррекция фазы

первичные аргументы - inference.py phase_fixer

АргументыПараметрТипОписание
-i1, --i1, -target, --target, --target_file, --target-filetargetstr | PathПуть к целевому аудиофайлу. По умолчанию его амплитуда сохраняется, а фаза берётся из source
-i2, --i2, -source, --source, --source_file, --source-filesourcestr | PathПуть к исходному аудиофайлу. Используется как донор фазы, а при --transfer_magnitude — и амплитуды
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, TYPE. Пример: NAME_TYPE (Подробнее)
-tmag, --transfer_magnitude, --transfer-magnitudetransfer_magnitudeboolПереносить амплитуду из исходного файла (по умолчанию выключено)
-nphase, --transfer_phase, --transfer-phasetransfer_phaseboolВключить перенос фазы из исходного файла
-nblend, --freq_blend, --freq-blendfreq_blendboolВключить частотное смешение фаз
-lc, --low_cutoff, --low-cutofflow_cutoffintНижняя граница частотного смешения фаз в Гц (по умолчанию: 500)
-hc, --high_cutoff, --high-cutoffhigh_cutoffintВерхняя граница частотного смешения фаз в Гц (по умолчанию: 5000)
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer-floatprefer_floatboolПредпочитать высокую точность вывода (Используемые форматы сэмплов)

Пресеты

первичные аргументы - inference.py preset

АргументыПараметрТипОписание
-i, --i, -input, --input, --input_files, --input-filesinputstr | Path | listПуть к входному аудиофайлу, папке с файлами или список путей
-o, -out, -output, --output, --output_dir, --output-diroutput_dirstr | PathДиректория для сохранения результатов (по умолчанию: текущая папка)
-of, -output_fmt, --output_format, --output-formatoutput_formatstrФормат выходного аудио. Доступны: mp3, wav, flac и др. (по умолчанию: mp3)
-tm, -tmplt, --templatetemplatestrШаблон имени выходного файла. Доступные ключи: NAME, STEM, MODEL. Пример: NAME_STEM_MODEL (Подробнее)
-p, -preset, --preset, --preset_path, --preset-pathpresetstr | PathПуть к JSON-файлу с пресетом (графом обработки)
-st, --st, -stems, --stems, --selected_stems, --selected-stemsselected_stemslistСписок стемов для сохранения (например: vocals drums). Если не указаны - сохраняются все стемы из пресета
-hi-prec, -hi_prec, -hi-precision, --hi_precision, -pref-flt, -pref_flt, --prefer_float, --prefer-floatprefer_floatboolПредпочитать высокую точность вывода (Используемые форматы сэмплов)
--{param_name}add_params.{param_name}int/float/str/boolДополнительный параметр разделения (применяется к нодам типа separate внутри пресета)

Web-UI

первичные аргументы - app.py

АргументыПараметрТипОписание
-s, -share, --share, --public, --gradio_share, --gradio-shareshareboolСоздать публичную ссылку через Gradio Share (для доступа из интернета)
-p, -port, --port, --server_port, --server-portportintПорт для запуска сервера (по умолчанию: 7860)