From 911899635ac5a3043be9ab756e51a97550b0c6b7 Mon Sep 17 00:00:00 2001 From: Leonid Pershin Date: Tue, 8 Sep 2026 18:38:05 +0300 Subject: [PATCH] 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 --- README.md | 41 +++++ README_RU.md | 435 +++++++++++++++++++++++++++++++++++++++++++++++++++ start.bat | 254 ++++++++++++++++++++++++++++++ 3 files changed, 730 insertions(+) create mode 100644 README_RU.md create mode 100644 start.bat diff --git a/README.md b/README.md index 2cfeec6..3240b4d 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,10 @@ ACE-Step v1.5

+

+ Language: English | Русский +

+

StepFun Logo

@@ -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 ` | Web UI port (default 7865) | +| `--device ` | 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) diff --git a/README_RU.md b/README_RU.md new file mode 100644 index 0000000..6cdf67d --- /dev/null +++ b/README_RU.md @@ -0,0 +1,435 @@ +

ACE-Step

+

Шаг к фундаментальной модели генерации музыки

+

+ Проект | + Hugging Face | + ModelScope | + Демо (Space) | + Discord | + Технический отчёт | + ACE-Step v1.5 +

+ +

+ Язык: English | Русский +

+ +

+ StepFun Logo +

+ +## Содержание + +- [✨ Возможности](#-возможности) +- [📦 Установка](#-установка) +- [⚡ Быстрый старт на 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). + +

+ RapMachine Demo + Train Demo +

+ + +- 🔥 **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) +

+ Audio2Audio Demo + Audio2Audio ComfyUI +

+ +- 🚀 **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: Открыты исходный код демо и модель + + +## ✨ Возможности + +

+ ACE-Step Framework +

+ +### 🎯 Базовое качество + +#### 🌈 Разнообразие стилей и жанров + +- 🎸 Поддерживаются все основные музыкальные стили, описание задаётся короткими тегами, развёрнутым текстом или описанием сценария использования +- 🎷 Генерация музыки в разных жанрах с подходящим инструментарием и стилистикой + +#### 🌍 Многоязычность + +- 🗣️ Поддерживается 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 ` | Порт веб-интерфейса (по умолчанию 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` лежат примеры входных параметров — их можно использовать как образец для генерации. + +## 🏗️ Архитектура + +

+ ACE-Step Framework +

+ +## 🔨 Обучение +Подробная инструкция — в [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} +} +``` diff --git a/start.bat b/start.bat new file mode 100644 index 0000000..a789ca9 --- /dev/null +++ b/start.bat @@ -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 ^ Порт веб-интерфейса (по умолчанию %PORT%) +echo --device ^ Номер видеокарты (по умолчанию %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