docs: add Russian README and a Windows start.bat launcher

- README_RU.md: full Russian translation, linked from README.md
- start.bat: one-click setup + launch for Windows. Finds Python 3.10+,
  creates the venv, installs PyTorch (CUDA or CPU) and ACE-Step, checks
  the GPU, then starts the web UI. Flags: --lowvram, --cpu, --share,
  --port, --device, --listen, --reinstall, --update, --setup, --help.
- Both READMEs document the launcher.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Leonid Pershin
2026-09-08 18:38:05 +03:00
co-authored by Claude Opus 5
parent 1bee4c9f5b
commit 911899635a
3 changed files with 730 additions and 0 deletions
+41
View File
@@ -10,6 +10,10 @@
<a href="https://ace-step.github.io/ace-step-v1.5.github.io/">ACE-Step v1.5</a>
</p>
<p align="center">
<b>Language:</b> <b>English</b> | <a href="./README_RU.md">Русский</a>
</p>
<p align="center">
<img src="./assets/orgnization_logos.png" width="100%" alt="StepFun Logo">
</p>
@@ -18,6 +22,7 @@
- [✨ Features](#-features)
- [📦 Installation](#-installation)
- [⚡ Quick Start (Windows)](#-quick-start-windows)
- [🚀 Usage](#-usage)
- [📱 User Interface Guide](#-user-interface-guide)
- [🔨 Train](#-train)
@@ -258,6 +263,42 @@ pip install -e .
The ACE-Step application is now installed. The GUI works on Windows, macOS, and Linux. For instructions on how to run it, please see the [Usage](#-usage) section.
## ⚡ Quick Start (Windows)
This repository ships with [`start.bat`](./start.bat), which does everything for you: checks Python, creates the virtual environment, installs PyTorch with CUDA support, installs ACE-Step, and launches the web UI.
Just double-click `start.bat`, or run it from a command prompt:
```bat
start.bat
```
The first run takes a few minutes (roughly 3 GB of packages are downloaded). Model weights (~8 GB) are fetched automatically on the first generation. Later runs start immediately.
### Script flags
| Flag | What it does |
| --- | --- |
| `--lowvram` | Low-VRAM mode (~8 GB): enables `--cpu_offload`, `--overlapped_decode` and `--torch_compile`, and installs `triton-windows` |
| `--cpu` | Run on CPU without CUDA (very slow, but works without an NVIDIA GPU) |
| `--share` | Create a public Gradio link |
| `--port <N>` | Web UI port (default 7865) |
| `--device <N>` | GPU index (default 0) |
| `--listen` | Bind to `0.0.0.0` so other devices on the LAN can connect |
| `--reinstall` | Recreate the virtual environment from scratch |
| `--update` | Update dependencies in the existing environment |
| `--setup` | Install only, do not launch |
| `--help` | Show usage |
Flags can be combined, for example:
```bat
start.bat --lowvram --listen --port 7870
```
Defaults (port, GPU index, checkpoint path) live in the settings block at the top of `start.bat`.
## 🚀 Usage
![Demo Interface](assets/demo_interface.png)
+435
View File
@@ -0,0 +1,435 @@
<h1 align="center">ACE-Step</h1>
<h1 align="center">Шаг к фундаментальной модели генерации музыки</h1>
<p align="center">
<a href="https://ace-step.github.io/">Проект</a> |
<a href="https://huggingface.co/ACE-Step/ACE-Step-v1-3.5B">Hugging Face</a> |
<a href="https://modelscope.cn/models/ACE-Step/ACE-Step-v1-3.5B">ModelScope</a> |
<a href="https://huggingface.co/spaces/ACE-Step/ACE-Step">Демо (Space)</a> |
<a href="https://discord.gg/PeWDxrkdj7">Discord</a> |
<a href="https://arxiv.org/abs/2506.00045">Технический отчёт</a> |
<a href="https://ace-step.github.io/ace-step-v1.5.github.io/">ACE-Step v1.5</a>
</p>
<p align="center">
<b>Язык:</b> <a href="./README.md">English</a> | <b>Русский</b>
</p>
<p align="center">
<img src="./assets/orgnization_logos.png" width="100%" alt="StepFun Logo">
</p>
## Содержание
- [✨ Возможности](#-возможности)
- [📦 Установка](#-установка)
- [⚡ Быстрый старт на Windows](#-быстрый-старт-на-windows)
- [🚀 Использование](#-использование)
- [📱 Описание интерфейса](#-описание-интерфейса)
- [🔨 Обучение](#-обучение)
## 📝 Аннотация
Мы представляем ACE-Step — новую открытую фундаментальную модель для генерации музыки, которая преодолевает ключевые ограничения существующих подходов и достигает state-of-the-art качества за счёт целостной архитектуры. Нынешние методы вынуждены искать компромисс между скоростью генерации, музыкальной связностью и управляемостью. Например, модели на базе LLM (Yue, SongGen) хорошо попадают в текст песни, но страдают от медленного инференса и структурных артефактов. Диффузионные модели (например, DiffRhythm), напротив, синтезируют быстрее, но часто теряют структурную связность на длинных отрезках.
ACE-Step закрывает этот разрыв, объединяя диффузионную генерацию с Deep Compression AutoEncoder (DCAE) из Sana и лёгким линейным трансформером. Дополнительно модель использует MERT и m-hubert для выравнивания семантических представлений (REPA) во время обучения, что обеспечивает быструю сходимость. В результате модель синтезирует до 4 минут музыки за 20 секунд на GPU A100 — в 15 раз быстрее решений на базе LLM — при этом превосходя их по музыкальной связности и попаданию в текст по метрикам мелодии, гармонии и ритма. Кроме того, ACE-Step сохраняет тонкие акустические детали, что позволяет реализовать продвинутые механизмы управления: клонирование голоса, редактирование текста, ремиксы и генерацию отдельных дорожек (например, lyric2vocal, singing2accompaniment).
Вместо очередного end-to-end пайплайна text-to-music наша цель — создать фундаментальную модель для музыкального ИИ: быструю, универсальную, эффективную и при этом гибкую архитектуру, поверх которой легко обучать подзадачи. Это открывает путь к мощным инструментам, органично встраивающимся в творческий процесс музыкантов, продюсеров и авторов контента. Коротко говоря, мы хотим повторить для музыки то, чем стал Stable Diffusion для изображений.
## 📢 Новости и обновления
- 🎉 **28.01.2026:** Вышла [ACE-Step v1.5](https://ace-step.github.io/ace-step-v1.5.github.io/) — наша самая свежая и продвинутая модель!
- 📃 02.06.2025: Опубликован [технический отчёт ACE-Step (PDF)](https://arxiv.org/abs/2506.00045).
- 🎮 14.05.2025: Добавлен сэмплер `pingpong` из `Stable Audio Open Small`. Использование SDE даёт лучшую консистентность и качество музыки, включая попадание в текст и в стиль. Также заново реализован `Audio2Audio` более удачным способом.
- 🎤 12.05.2025: Выпущен [RapMachine](https://huggingface.co/ACE-Step/ACE-Step-v1-chinese-rap-LoRA), исправлены проблемы обучения LoRA
- Подробности в [ZH_RAP_LORA.md](./ZH_RAP_LORA.md). Примеры аудио: https://ace-step.github.io/#RapMachine
- Подробная инструкция по обучению — в [TRAIN_INSTRUCTION.md](./TRAIN_INSTRUCTION.md).
<p align="center">
<img src="assets/rap_machine_demo.gif" alt="RapMachine Demo" width="45%">
<img src="assets/train_demo.gif" alt="Train Demo" width="50%">
</p>
- 🔥 **10.05.2025:** Оптимизация потребления памяти
- Максимальный расход VRAM снижен до 8 ГБ — модель стала доступнее для домашних видеокарт
- Рекомендуемые параметры запуска:
```bash
acestep --torch_compile true --cpu_offload true --overlapped_decode true
```
На Windows нужно установить triton:
```
pip install triton-windows
```
![image](./assets/cpu_offload_performance.png)
- 📢 **09.05.2025:** Демо на Gradio поддерживает Audio2Audio. ComfyUI: [Ace_Step_4x_a2a.json](./assets/Ace_Step_4x_a2a.json)
<p align="center">
<img src="assets/audio2audio_demo.gif" alt="Audio2Audio Demo" width="50%">
<img src="assets/audio2audio_ComfyUI.png" alt="Audio2Audio ComfyUI" width="40%">
</p>
- 🚀 **08.05.2025:** Доступен узел [ComfyUI_ACE-Step](https://t.co/GeRSTrIvn0)! Используйте возможности ACE-Step прямо в ComfyUI. 🎉
![image](https://github.com/user-attachments/assets/0a13d90a-9086-47ee-abab-976bad20fa7c)
- 🚀 06.05.2025: Открыты исходный код демо и модель
## ✨ Возможности
<p align="center">
<img src="./assets/application_map.png" width="100%" alt="ACE-Step Framework">
</p>
### 🎯 Базовое качество
#### 🌈 Разнообразие стилей и жанров
- 🎸 Поддерживаются все основные музыкальные стили, описание задаётся короткими тегами, развёрнутым текстом или описанием сценария использования
- 🎷 Генерация музыки в разных жанрах с подходящим инструментарием и стилистикой
#### 🌍 Многоязычность
- 🗣️ Поддерживается 19 языков, из них 10 с наилучшим качеством:
- 🇺🇸 английский, 🇨🇳 китайский, 🇷🇺 русский, 🇪🇸 испанский, 🇯🇵 японский, 🇩🇪 немецкий, 🇫🇷 французский, 🇵🇹 португальский, 🇮🇹 итальянский, 🇰🇷 корейский
- ⚠️ Из-за дисбаланса обучающих данных менее распространённые языки могут работать хуже
#### 🎻 Инструментальные стили
- 🎹 Поддерживается генерация инструментальной музыки в разных жанрах и стилях
- 🎺 Реалистичные инструментальные дорожки с корректным тембром и выразительностью каждого инструмента
- 🎼 Возможны сложные аранжировки с несколькими инструментами при сохранении музыкальной связности
#### 🎤 Вокальные техники
- 🎙️ Качественная передача различных вокальных стилей и техник
- 🗣️ Поддержка разной вокальной подачи, включая разные приёмы и манеры пения
### 🎛️ Управляемость
#### 🔄 Генерация вариаций
- ⚙️ Реализовано через оптимизацию на этапе инференса, без дообучения
- 🌊 Flow-matching модель генерирует начальный шум, затем по формуле шума из trigFlow добавляется дополнительный гауссов шум
- 🎚️ Соотношение исходного и нового шума регулируется — так задаётся степень отличия вариации
#### 🎨 Перерисовка (Repainting)
- 🖌️ Реализовано добавлением шума к целевому аудио и наложением масочных ограничений в процессе ODE
- 🔍 Если условия генерации меняются относительно исходных, можно изменить только отдельные аспекты, сохранив остальное
- 🔀 Комбинируется с генерацией вариаций — можно делать локальные вариации стиля, текста или вокала
#### ✏️ Редактирование текста песни
- 💡 Технология flow-edit применена для локального изменения текста с сохранением мелодии, вокала и аккомпанемента
- 🔄 Работает и со сгенерированным, и с загруженным аудио, что заметно расширяет творческие возможности
- ℹ️ Текущее ограничение: за раз можно менять только небольшие фрагменты текста, иначе появляются искажения; но правки можно применять последовательно
### 🚀 Применения
#### 🎤 Lyric2Vocal (LoRA)
- 🔊 LoRA, дообученная на чистом вокале, позволяет генерировать вокальные сэмплы прямо из текста
- 🛠️ Практическое применение: вокальные демо, гайд-треки, помощь в написании песен, эксперименты с вокальной аранжировкой
- ⏱️ Быстрый способ проверить, как текст зазвучит в исполнении, — ускоряет итерации автора
#### 📝 Text2Samples (LoRA)
- 🎛️ Аналог Lyric2Vocal, но дообучен на чисто инструментальных данных и сэмплах
- 🎵 Генерация концептуальных сэмплов для музыкального продакшена по текстовому описанию
- 🧰 Удобно для быстрого создания инструментальных лупов, звуковых эффектов и музыкальных элементов
### 🔮 Скоро
#### 🎤 RapMachine
- 🔥 Дообучение на чистых рэп-данных для создания ИИ, специализирующегося на рэпе
- 🏆 Ожидаемые возможности: ИИ-баттлы и повествование через рэп
- 📚 Рэп обладает исключительными нарративными и выразительными возможностями — потенциал применения огромен
#### 🎛️ StemGen
- 🎚️ ControlNet-LoRA, обученная на многодорожечных данных для генерации отдельных инструментальных стемов
- 🎯 На вход подаётся референсный трек и нужный инструмент (или референсное аудио инструмента)
- 🎹 На выходе — стем инструмента, дополняющий референс: например, фортепианный аккомпанемент к мелодии флейты или джазовые барабаны к соло-гитаре
#### 🎤 Singing2Accompaniment
- 🔄 Обратный процесс к StemGen: из одной вокальной дорожки собирается сведённый мастер-трек
- 🎵 На вход подаётся вокал и нужный стиль, на выходе — полноценный аккомпанемент к вокалу
- 🎸 Создаётся полное инструментальное сопровождение — легко добавить профессиональное звучание к любой вокальной записи
## 📋 Дорожная карта
- [x] Публикация кода обучения 🔥
- [x] Публикация кода обучения LoRA 🔥
- [x] Публикация RapMachine LoRA 🎤
- [x] Публикация результатов оценки и технического отчёта 📄
- [ ] Обучение и публикация ACE-Step V1.5
- [ ] Публикация кода обучения ControlNet 🔥
- [ ] Публикация Singing2Accompaniment ControlNet 🎮
## 🖥️ Производительность на разном железе
Мы измерили производительность ACE-Step на разных конфигурациях:
| Устройство | RTF (27 шагов) | Время на 1 мин аудио (27 шагов) | RTF (60 шагов) | Время на 1 мин аудио (60 шагов) |
| --------------- | -------------- | ------------------------------- | -------------- | ------------------------------- |
| NVIDIA RTX 4090 | 34.48 × | 1.74 с | 15.63 × | 3.84 с |
| NVIDIA A100 | 27.27 × | 2.20 с | 12.27 × | 4.89 с |
| NVIDIA RTX 3090 | 12.76 × | 4.70 с | 6.48 × | 9.26 с |
| MacBook M2 Max | 2.27 × | 26.43 с | 1.03 × | 58.25 с |
Производительность измеряется в RTF (Real-Time Factor, коэффициент реального времени). Чем больше значение, тем быстрее генерация. 27.27× означает, что на 1 минуту музыки уходит 2.2 секунды (60/27.27). Измерения проводились на одном GPU с batch size 1 и 27 шагами.
## 📦 Установка
### 1. Клонирование репозитория
Сначала склонируйте репозиторий ACE-Step и перейдите в каталог проекта:
```bash
git clone https://github.com/ace-step/ACE-Step.git
cd ACE-Step
```
### 2. Требования
Убедитесь, что у вас установлено:
* `Python`: рекомендуется версия 3.10 или новее. Скачать можно на [python.org](https://www.python.org/).
* `Conda` или `venv`: для создания виртуального окружения (Conda предпочтительнее).
### 3. Создание виртуального окружения
Настоятельно рекомендуем использовать виртуальное окружение, чтобы не конфликтовать с другими пакетами. Выберите один из вариантов:
#### Вариант A: Conda
1. **Создайте окружение** с именем `ace_step` и Python 3.10:
```bash
conda create -n ace_step python=3.10 -y
```
2. **Активируйте окружение:**
```bash
conda activate ace_step
```
#### Вариант B: venv
1. **Перейдите в каталог склонированного репозитория ACE-Step.**
2. **Создайте виртуальное окружение** (обычно его называют `venv`):
```bash
python -m venv venv
```
3. **Активируйте окружение:**
* **Windows (cmd.exe):**
```bash
venv\Scripts\activate.bat
```
* **Windows (PowerShell):**
```powershell
.\venv\Scripts\Activate.ps1
```
*(Если возникает ошибка политики выполнения, сначала выполните `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process`)*
* **Linux / macOS (bash/zsh):**
```bash
source venv/bin/activate
```
### 4. Установка зависимостей
После активации виртуального окружения:
**a.** (Только Windows) Если вы на Windows и планируете использовать NVIDIA GPU, сначала поставьте PyTorch со сборкой под CUDA:
```bash
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
```
(Замените `cu126`, если у вас другая версия CUDA. Другие варианты установки — на [официальном сайте PyTorch](https://pytorch.org/get-started/locally/)).
**b.** Установите ACE-Step и основные зависимости:
```bash
pip install -e .
```
На этом установка завершена. Графический интерфейс работает на Windows, macOS и Linux. Как запускать — см. раздел [Использование](#-использование).
## ⚡ Быстрый старт на Windows
В репозитории есть скрипт [`start.bat`](./start.bat), который делает всё сам: проверяет Python, создаёт виртуальное окружение, ставит PyTorch с поддержкой CUDA, устанавливает ACE-Step и запускает веб-интерфейс.
Достаточно дважды кликнуть по `start.bat` — или запустить из командной строки:
```bat
start.bat
```
При первом запуске установка займёт несколько минут (скачивается около 3 ГБ пакетов). Веса модели (~8 ГБ) докачаются автоматически при первой генерации. Последующие запуски стартуют сразу.
### Флаги скрипта
| Флаг | Что делает |
| --- | --- |
| `--lowvram` | Режим экономии видеопамяти (до ~8 ГБ VRAM): включает `--cpu_offload`, `--overlapped_decode` и `--torch_compile`, доустанавливает `triton-windows` |
| `--cpu` | Запуск на процессоре, без CUDA (очень медленно, но работает без видеокарты NVIDIA) |
| `--share` | Публичная ссылка Gradio для доступа снаружи |
| `--port <N>` | Порт веб-интерфейса (по умолчанию 7865) |
| `--listen` | Слушать `0.0.0.0`, чтобы зайти с других устройств в локальной сети |
| `--reinstall` | Полностью пересоздать виртуальное окружение с нуля |
| `--update` | Обновить зависимости в существующем окружении |
| `--setup` | Только установка, без запуска |
| `--help` | Показать справку |
Флаги можно комбинировать, например:
```bat
start.bat --lowvram --listen --port 7870
```
Настройки по умолчанию (порт, номер GPU, путь к весам модели) задаются в блоке `==== НАСТРОЙКИ ====` в начале файла `start.bat`.
## 🚀 Использование
![Demo Interface](assets/demo_interface.png)
### 🔍 Базовый запуск
```bash
acestep --port 7865
```
### ⚙️ Расширенный запуск
```bash
acestep --checkpoint_path /path/to/checkpoint --port 7865 --device_id 0 --share true --bf16 true
```
* Если `--checkpoint_path` задан и модели по этому пути есть, они загружаются оттуда.
* Если `--checkpoint_path` задан, но моделей там нет, они автоматически скачаются в этот каталог.
* Если `--checkpoint_path` не задан, модели скачаются в путь по умолчанию `~/.cache/ace-step/checkpoints`.
На macOS используйте `--bf16 false`, чтобы избежать ошибок.
#### 🔍 Использование как библиотеки
Если вы хотите встроить ACE-Step как библиотеку в собственный Python-проект, можно поставить последнюю версию прямо из GitHub.
**Установка через pip:**
1. **Убедитесь, что установлен Git:** этот способ требует наличия Git в системе и в переменной PATH.
2. **Выполните команду установки:**
```bash
pip install git+https://github.com/ace-step/ACE-Step.git
```
Рекомендуется выполнять её внутри виртуального окружения, чтобы не ломать другие пакеты.
#### 🛠️ Аргументы командной строки
- `--checkpoint_path`: путь к весам модели (по умолчанию скачиваются автоматически)
- `--server_name`: IP-адрес или имя хоста, на котором слушает сервер Gradio (по умолчанию `127.0.0.1`). Укажите `0.0.0.0`, чтобы открыть доступ с других устройств в сети.
- `--port`: порт сервера Gradio (по умолчанию 7865)
- `--device_id`: номер GPU (по умолчанию 0)
- `--share`: включить публичную ссылку Gradio (по умолчанию False)
- `--bf16`: использовать точность bfloat16 для ускорения инференса (по умолчанию True)
- `--torch_compile`: использовать `torch.compile()` для оптимизации модели и ускорения инференса (по умолчанию False).
- **На Windows нужен triton**:
```
pip install triton-windows
```
- `--cpu_offload`: выгружать веса модели в оперативную память для экономии видеопамяти (по умолчанию False)
- `--overlapped_decode`: перекрывающееся декодирование для ускорения инференса (по умолчанию False)
## 📱 Описание интерфейса
Интерфейс ACE-Step разделён на вкладки под разные задачи генерации и редактирования:
### 📝 Вкладка Text2Music
1. **📋 Поля ввода**:
- **🏷️ Tags**: описательные теги, жанры или описание сцены через запятую
- **📜 Lyrics**: текст песни со структурными тегами вроде [verse], [chorus], [bridge]
- **⏱️ Audio Duration**: желаемая длительность аудио (-1 — случайная)
2. **⚙️ Настройки**:
- **🔧 Basic Settings**: количество шагов инференса, guidance scale, сиды
- **🔬 Advanced Settings**: тонкая настройка типа планировщика, типа CFG, параметров ERG и прочего
3. **🚀 Генерация**: нажмите «Generate», чтобы создать музыку по введённым данным
### 🔄 Вкладка Retake
- 🎲 Повторная генерация с небольшими отличиями за счёт других сидов
- 🎚️ Параметр variance задаёт, насколько результат будет отличаться от оригинала
### 🎨 Вкладка Repainting
- 🖌️ Выборочная перегенерация отдельных фрагментов трека
- ⏱️ Задаются время начала и конца перерисовываемого участка
- 🔍 Источник аудио выбирается: результат text2music, последняя перерисовка или загруженный файл
### ✏️ Вкладка Edit
- 🔄 Изменение готовой музыки через правку тегов или текста
- 🎛️ Режим «only_lyrics» сохраняет мелодию, режим «remix» её меняет
- 🎚️ Параметры редактирования задают, насколько сохраняется оригинал
### 📏 Вкладка Extend
- ➕ Добавление музыки в начало или в конец существующего трека
- 📐 Задаются длины расширения слева и справа
- 🔍 Выбирается источник аудио для расширения
## 📂 Примеры
В каталоге `examples/input_params` лежат примеры входных параметров — их можно использовать как образец для генерации.
## 🏗️ Архитектура
<p align="center">
<img src="./assets/ACE-Step_framework.png" width="100%" alt="ACE-Step Framework">
</p>
## 🔨 Обучение
Подробная инструкция — в [TRAIN_INSTRUCTION.md](./TRAIN_INSTRUCTION.md).
## 📜 Лицензия и отказ от ответственности
Проект распространяется по лицензии [Apache License 2.0](./LICENSE)
ACE-Step позволяет создавать оригинальную музыку в самых разных жанрах и применим в творческом продакшене, образовании и развлечениях. Модель создавалась для позитивных и художественных сценариев использования, но мы осознаём и риски: непреднамеренное нарушение авторских прав из-за стилистического сходства, некорректное смешение культурных элементов, а также использование для генерации вредоносного контента. Для ответственного использования мы призываем проверять оригинальность полученных работ, явно указывать участие ИИ и получать необходимые разрешения при адаптации защищённых стилей или материалов. Используя ACE-Step, вы соглашаетесь придерживаться этих принципов и уважать художественную целостность, культурное разнообразие и требования законодательства. Авторы не несут ответственности за неправомерное использование модели, включая, помимо прочего, нарушение авторских прав, культурную бестактность или создание вредоносного контента.
🔔 Важное замечание
Единственный официальный сайт проекта ACE-Step — наша страница на GitHub Pages.
Никаких других сайтов мы не ведём.
🚫 Поддельные домены включают (но не ограничиваются ими):
ac\*\*p.com, a\*\*p.org, a\*\*\*c.org
⚠️ Будьте осторожны. Не заходите на эти сайты, не доверяйте им и не совершайте на них платежей.
## 🙏 Благодарности
Проект развивается совместно ACE Studio и StepFun.
## 📖 Цитирование
Если проект оказался полезен для вашего исследования, пожалуйста, сошлитесь на него:
```BibTeX
@misc{gong2025acestep,
title={ACE-Step: A Step Towards Music Generation Foundation Model},
author={Junmin Gong, Wenxiao Zhao, Sen Wang, Shengyuan Xu, Jing Guo},
howpublished={\url{https://github.com/ace-step/ACE-Step}},
year={2025},
note={GitHub repository}
}
```
+254
View File
@@ -0,0 +1,254 @@
@echo off
chcp 65001 >nul 2>&1
setlocal
title ACE-Step
pushd "%~dp0"
REM ============================ НАСТРОЙКИ ============================
REM Каталог виртуального окружения
set "VENV_DIR=venv"
REM Порт веб-интерфейса
set "PORT=7865"
REM Адрес, на котором слушает сервер (0.0.0.0 - доступ из локальной сети)
set "SERVER_NAME=127.0.0.1"
REM Номер видеокарты
set "DEVICE_ID=0"
REM Путь к весам модели. Пусто - скачать в ~/.cache/ace-step/checkpoints
set "CHECKPOINT_PATH="
REM Сборка PyTorch (cu126 / cu124 / cu121 - под вашу версию CUDA)
set "TORCH_INDEX=https://download.pytorch.org/whl/cu126"
REM ==================================================================
REM Имя скрипта надо запомнить до shift: shift сдвигает и %0
set "SCRIPT_NAME=%~nx0"
set "OPT_LOWVRAM=0"
set "OPT_CPU=0"
set "OPT_SHARE=0"
set "DO_SETUP_ONLY=0"
set "DO_REINSTALL=0"
set "DO_UPDATE=0"
set "FROM_EXPLORER=0"
echo %cmdcmdline% | find /i "%~nx0" >nul 2>&1 && set "FROM_EXPLORER=1"
REM ------------------------- разбор аргументов -------------------------
:parse_args
if "%~1"=="" goto args_done
if /i "%~1"=="--help" goto usage
if /i "%~1"=="-h" goto usage
if /i "%~1"=="/?" goto usage
if /i "%~1"=="--lowvram" ( set "OPT_LOWVRAM=1" & shift & goto parse_args )
if /i "%~1"=="--cpu" ( set "OPT_CPU=1" & shift & goto parse_args )
if /i "%~1"=="--share" ( set "OPT_SHARE=1" & shift & goto parse_args )
if /i "%~1"=="--setup" ( set "DO_SETUP_ONLY=1" & shift & goto parse_args )
if /i "%~1"=="--reinstall" ( set "DO_REINSTALL=1" & shift & goto parse_args )
if /i "%~1"=="--update" ( set "DO_UPDATE=1" & shift & goto parse_args )
if /i "%~1"=="--listen" ( set "SERVER_NAME=0.0.0.0" & shift & goto parse_args )
if /i "%~1"=="--port" ( set "PORT=%~2" & shift & shift & goto parse_args )
if /i "%~1"=="--device" ( set "DEVICE_ID=%~2" & shift & shift & goto parse_args )
echo [ОШИБКА] Неизвестный аргумент: %~1
echo Запустите "%SCRIPT_NAME% --help" для справки.
goto fail
:args_done
echo.
echo ==========================================
echo ACE-Step - генерация музыки
echo ==========================================
echo.
set "VENV_PY=%CD%\%VENV_DIR%\Scripts\python.exe"
if "%DO_REINSTALL%"=="1" (
if exist "%VENV_DIR%\" (
echo [1/4] Удаляю старое окружение "%VENV_DIR%"...
rmdir /s /q "%VENV_DIR%"
)
)
REM ------------------------- поиск Python -------------------------
if exist "%VENV_PY%" goto venv_ready
echo [1/4] Ищу подходящий Python...
set "SYS_PY="
for %%V in (3.12 3.11 3.10 3.13) do (
if not defined SYS_PY (
py -%%V -c "import sys" >nul 2>&1 && set "SYS_PY=py -%%V"
)
)
if not defined SYS_PY (
python -c "import sys; sys.exit(0 if sys.version_info >= (3,10) else 1)" >nul 2>&1 && set "SYS_PY=python"
)
if not defined SYS_PY (
echo.
echo [ОШИБКА] Не найден Python 3.10 или новее.
echo Установите его с https://www.python.org/downloads/
echo и обязательно отметьте галочку "Add Python to PATH".
goto fail
)
for /f "delims=" %%O in ('%SYS_PY% -c "import sys;print(sys.version.split()[0])" 2^>nul') do set "PYVER=%%O"
echo Найден Python %PYVER% (%SYS_PY%)
echo [1/4] Создаю виртуальное окружение в "%VENV_DIR%"...
%SYS_PY% -m venv "%VENV_DIR%"
if errorlevel 1 (
echo [ОШИБКА] Не удалось создать виртуальное окружение.
goto fail
)
if not exist "%VENV_PY%" (
echo [ОШИБКА] Виртуальное окружение создано некорректно: нет "%VENV_PY%".
goto fail
)
set "FRESH_VENV=1"
:venv_ready
if not defined FRESH_VENV echo [1/4] Виртуальное окружение найдено: %VENV_DIR%
REM ------------------------- зависимости -------------------------
echo [2/4] Проверяю зависимости...
set "NEED_TORCH=0"
"%VENV_PY%" -c "import importlib.util,sys; sys.exit(0 if importlib.util.find_spec('torch') else 1)" >nul 2>&1 || set "NEED_TORCH=1"
REM Проверяем именно установку пакета: сам каталог acestep лежит рядом со скриптом,
REM поэтому find_spec('acestep') сработал бы даже без установленных зависимостей.
set "NEED_ACESTEP=0"
"%VENV_PY%" -c "import importlib.metadata as md, importlib.util as u, sys; md.version('ace_step'); sys.exit(0 if u.find_spec('click') and u.find_spec('gradio') else 1)" >nul 2>&1 || set "NEED_ACESTEP=1"
if "%DO_UPDATE%"=="1" set "NEED_TORCH=1"
if "%DO_UPDATE%"=="1" set "NEED_ACESTEP=1"
if "%NEED_TORCH%%NEED_ACESTEP%"=="00" goto deps_ready
echo Обновляю pip...
"%VENV_PY%" -m pip install --upgrade pip setuptools wheel --quiet
if errorlevel 1 (
echo [ОШИБКА] Не удалось обновить pip. Проверьте подключение к интернету.
goto fail
)
if "%NEED_TORCH%"=="1" (
if "%OPT_CPU%"=="1" (
echo Устанавливаю PyTorch для CPU. Это займёт несколько минут...
"%VENV_PY%" -m pip install --upgrade torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
) else (
echo Устанавливаю PyTorch с поддержкой CUDA. Это займёт несколько минут...
"%VENV_PY%" -m pip install --upgrade torch torchvision torchaudio --index-url %TORCH_INDEX%
)
if errorlevel 1 (
echo [ОШИБКА] Не удалось установить PyTorch.
echo Если у вас другая версия CUDA, поменяйте TORCH_INDEX в начале этого файла.
goto fail
)
)
if "%NEED_ACESTEP%"=="1" (
echo Устанавливаю ACE-Step и зависимости...
"%VENV_PY%" -m pip install -e .
if errorlevel 1 (
echo [ОШИБКА] Не удалось установить ACE-Step.
goto fail
)
)
:deps_ready
if "%OPT_LOWVRAM%"=="1" (
"%VENV_PY%" -c "import importlib.util,sys; sys.exit(0 if importlib.util.find_spec('triton') else 1)" >nul 2>&1 || (
echo Режим экономии VRAM: устанавливаю triton-windows...
"%VENV_PY%" -m pip install triton-windows --quiet
if errorlevel 1 echo [ВНИМАНИЕ] triton-windows не установился, --torch_compile может не заработать.
)
)
REM ------------------------- проверка GPU -------------------------
echo [3/4] Проверяю видеокарту...
if "%OPT_CPU%"=="1" goto gpu_cpu_mode
set "BF16=true"
set "GPUINFO="
set "GPUTMP=%TEMP%\acestep_gpu_%RANDOM%.txt"
"%VENV_PY%" -c "import torch; print((torch.cuda.get_device_name(0) + ' - ' + str(round(torch.cuda.get_device_properties(0).total_memory/1073741824, 1)) + ' GB VRAM') if torch.cuda.is_available() else 'NO_CUDA')" > "%GPUTMP%" 2>nul
if exist "%GPUTMP%" set /p GPUINFO=<"%GPUTMP%"
del "%GPUTMP%" >nul 2>&1
if not defined GPUINFO set "GPUINFO=NO_CUDA"
if not "%GPUINFO%"=="NO_CUDA" goto gpu_ok
echo.
echo [ВНИМАНИЕ] CUDA недоступна - модель будет работать на процессоре ^(очень медленно^).
echo Если у вас есть видеокарта NVIDIA, обновите драйвер и переустановите PyTorch:
echo "%SCRIPT_NAME%" --update
echo.
goto gpu_done
:gpu_ok
echo %GPUINFO%
goto gpu_done
:gpu_cpu_mode
echo Принудительный режим CPU. Генерация будет очень медленной.
set "DEVICE_ID=-1"
set "BF16=false"
:gpu_done
if "%DO_SETUP_ONLY%"=="1" (
echo.
echo Установка завершена. Для запуска выполните "%SCRIPT_NAME%".
goto success
)
REM ------------------------- запуск -------------------------
set "ARGS=--port %PORT% --server_name %SERVER_NAME% --device_id=%DEVICE_ID% --bf16 %BF16%"
if not "%CHECKPOINT_PATH%"=="" set ARGS=%ARGS% --checkpoint_path "%CHECKPOINT_PATH%"
if "%OPT_SHARE%"=="1" set "ARGS=%ARGS% --share true"
if "%OPT_LOWVRAM%"=="1" set "ARGS=%ARGS% --cpu_offload true --overlapped_decode true --torch_compile true"
echo [4/4] Запускаю веб-интерфейс...
echo.
echo Адрес: http://%SERVER_NAME%:%PORT%
if "%OPT_LOWVRAM%"=="1" echo Режим: экономия видеопамяти
echo Первый запуск скачивает веса модели (~8 ГБ) - наберитесь терпения.
echo Остановить: Ctrl+C в этом окне.
echo.
"%VENV_PY%" -m acestep.gui %ARGS%
if errorlevel 1 (
echo.
echo [ОШИБКА] ACE-Step завершился с ошибкой. Текст ошибки - выше.
goto fail
)
goto success
REM ------------------------- справка -------------------------
:usage
echo.
echo Использование: %SCRIPT_NAME% [флаги]
echo.
echo --lowvram Режим экономии видеопамяти (~8 ГБ VRAM)
echo --cpu Запуск на процессоре, без CUDA (очень медленно)
echo --share Публичная ссылка Gradio
echo --port ^<N^> Порт веб-интерфейса (по умолчанию %PORT%)
echo --device ^<N^> Номер видеокарты (по умолчанию %DEVICE_ID%)
echo --listen Слушать 0.0.0.0 (доступ из локальной сети)
echo --reinstall Пересоздать виртуальное окружение с нуля
echo --update Обновить зависимости
echo --setup Только установка, без запуска
echo --help Эта справка
echo.
echo Настройки по умолчанию - в блоке НАСТРОЙКИ в начале файла.
echo.
goto success
REM ------------------------- завершение -------------------------
:fail
echo.
pause
popd
endlocal
exit /b 1
:success
if "%FROM_EXPLORER%"=="1" pause
popd
endlocal
exit /b 0