Skip to content

Commit 76f72a8

Browse files
authored
Merge pull request #23 from audiohacking/update-bins
Update bins
2 parents c4a43ae + 1c3d7bf commit 76f72a8

File tree

17 files changed

+128
-128
lines changed

17 files changed

+128
-128
lines changed

.env.example

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ MODELS_DIR=./models
2828
# No need to set anything below if you used ./build.sh.
2929
#
3030
# Override individual binary paths only if they live outside ./bin/:
31-
# ACE_QWEN3_BIN=/path/to/ace-qwen3
32-
# DIT_VAE_BIN=/path/to/dit-vae
31+
# ACE_LM_BIN=/path/to/ace-lm
32+
# ACE_SYNTH_BIN=/path/to/ace-synth
3333
# ACE_UNDERSTAND_BIN=/path/to/ace-understand
3434
#
3535
# Override the primary DiT GGUF only if you want a non-default model:
@@ -70,10 +70,10 @@ JWT_SECRET=ace-step-ui-local-secret
7070
# PEXELS_API_KEY=
7171

7272
# ── Binary extra arguments ────────────────────────────────────────────────────
73-
# Append extra CLI flags to the ace-qwen3 or dit-vae spawn invocations.
73+
# Append extra CLI flags to the ace-lm or ace-synth spawn invocations.
7474
# Useful for hardware-specific tuning or debugging, e.g. limit CPU threads:
75-
# ACE_QWEN3_EXTRA_ARGS=--threads 4
76-
# DIT_VAE_EXTRA_ARGS=--threads 4
75+
# ACE_LM_EXTRA_ARGS=--threads 4
76+
# ACE_SYNTH_EXTRA_ARGS=--threads 4
7777
#
78-
# DIT_VAE_EXTRA_ARGS=
79-
# ACE_QWEN3_EXTRA_ARGS=
78+
# ACE_SYNTH_EXTRA_ARGS=
79+
# ACE_LM_EXTRA_ARGS=

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ jobs:
131131
shell: bash
132132
run: |
133133
ALL_OK=1
134-
for bin in ace-qwen3 dit-vae neural-codec; do
134+
for bin in ace-lm ace-synth neural-codec; do
135135
if [ -x "bin/$bin" ]; then
136136
echo "✅ bin/$bin"
137137
else

.github/workflows/electron-release.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ on:
77
workflow_dispatch:
88
inputs:
99
tag:
10-
description: "Release tag (e.g. v0.0.1)"
10+
description: "Release tag (e.g. v0.0.2)"
1111
required: true
12-
default: "v0.0.1"
12+
default: "v0.0.2"
1313
binary_version:
14-
description: "acestep.cpp release tag to bundle (e.g. v0.0.1)"
14+
description: "acestep.cpp release tag to bundle (e.g. v0.0.2)"
1515
required: false
1616
default: "v0.0.2"
1717

@@ -22,15 +22,15 @@ concurrency:
2222
env:
2323
NODE_VERSION: "20"
2424
# acestep.cpp binary release to bundle; override via workflow_dispatch input.
25-
BINARY_VERSION: ${{ github.event.inputs.binary_version || 'v0.0.1' }}
25+
BINARY_VERSION: ${{ github.event.inputs.binary_version || 'v0.0.2' }}
2626

2727
# ──────────────────────────────────────────────────────────────────────────────
2828
# Shared setup steps are defined as a reusable composite action inline via
2929
# `run` steps repeated in each job. Each job is self-contained so the CI
3030
# log is easy to read and debug per platform.
3131
#
3232
# Archive layout (flat tarball — all files at ./):
33-
# bin/<binary> ace-qwen3, dit-vae, neural-codec, …
33+
# bin/<binary> ace-lm, ace-synth, neural-codec, …
3434
# bin/lib<name>.so Linux shared libraries (unversioned names)
3535
# bin/lib<name>.dylib macOS dylibs (versioned + symlink chain)
3636
# ──────────────────────────────────────────────────────────────────────────────
@@ -93,7 +93,7 @@ jobs:
9393
else echo "⚠️ bin/${name} — missing"; warn=1; fi
9494
done
9595
done
96-
for bin in ace-qwen3 dit-vae neural-codec; do
96+
for bin in ace-lm ace-synth neural-codec; do
9797
if [ -f "bin/${bin}" ] && [ -x "bin/${bin}" ]; then echo "✅ bin/${bin}"
9898
else echo "⚠️ bin/${bin} — not found or not executable"; warn=1; fi
9999
done
@@ -104,7 +104,7 @@ jobs:
104104
shell: bash
105105
run: |
106106
TAG="${GITHUB_REF_NAME:-}"
107-
[[ "$TAG" == v* ]] || TAG="${{ github.event.inputs.tag || 'v0.0.1-electron' }}"
107+
[[ "$TAG" == v* ]] || TAG="${{ github.event.inputs.tag || 'v0.0.2-electron' }}"
108108
echo "tag=$TAG" >> "$GITHUB_OUTPUT"
109109
110110
- name: Rebuild native modules for Electron
@@ -237,7 +237,7 @@ jobs:
237237
shell: bash
238238
run: |
239239
warn=0
240-
for bin in ace-qwen3 dit-vae neural-codec; do
240+
for bin in ace-lm ace-synth neural-codec; do
241241
if [ -f "bin/${bin}" ] && [ -x "bin/${bin}" ]; then echo "✅ bin/${bin}"
242242
else echo "⚠️ bin/${bin} — not found or not executable"; warn=1; fi
243243
done
@@ -258,7 +258,7 @@ jobs:
258258
shell: bash
259259
run: |
260260
TAG="${GITHUB_REF_NAME:-}"
261-
[[ "$TAG" == v* ]] || TAG="${{ github.event.inputs.tag || 'v0.0.1-electron' }}"
261+
[[ "$TAG" == v* ]] || TAG="${{ github.event.inputs.tag || 'v0.0.2-electron' }}"
262262
echo "tag=$TAG" >> "$GITHUB_OUTPUT"
263263
264264
- name: Build Electron package (Linux)
@@ -306,7 +306,7 @@ jobs:
306306
shell: bash
307307
run: |
308308
TAG="${GITHUB_REF_NAME:-}"
309-
[[ "$TAG" == v* ]] || TAG="${{ github.event.inputs.tag || 'v0.0.1-electron' }}"
309+
[[ "$TAG" == v* ]] || TAG="${{ github.event.inputs.tag || 'v0.0.2-electron' }}"
310310
echo "tag=$TAG" >> "$GITHUB_OUTPUT"
311311
312312
- name: Check if Release Exists

.github/workflows/release.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ jobs:
154154
[ -f .env ] && export $(grep -v '^#' .env | grep -v '^\s*$' | xargs)
155155
156156
# ── First-run: compile acestep.cpp ───────────────────────────────────────────
157-
if [ ! -x "$DIR/bin/ace-qwen3" ] || [ ! -x "$DIR/bin/dit-vae" ]; then
157+
if [ ! -x "$DIR/bin/ace-lm" ] || [ ! -x "$DIR/bin/ace-synth" ]; then
158158
echo "═══════════════════════════════════════════════════════"
159159
echo " First run: building acestep.cpp for your hardware"
160160
echo " GPU support (CUDA / ROCm / Vulkan / Metal) is"
@@ -180,15 +180,15 @@ jobs:
180180
fi
181181
182182
# ── Start the server ─────────────────────────────────────────────────────────
183-
: "${ACE_QWEN3_BIN:=$DIR/bin/ace-qwen3}"
184-
: "${DIT_VAE_BIN:=$DIR/bin/dit-vae}"
183+
: "${ACE_LM_BIN:=$DIR/bin/ace-lm}"
184+
: "${ACE_SYNTH_BIN:=$DIR/bin/ace-synth}"
185185
: "${PORT:=3001}"
186186
187187
mkdir -p logs data public/audio
188188
189189
echo "Starting ACE-Step UI on port $PORT ..."
190-
ACE_QWEN3_BIN="$ACE_QWEN3_BIN" \
191-
DIT_VAE_BIN="$DIT_VAE_BIN" \
190+
ACE_LM_BIN="$ACE_LM_BIN" \
191+
ACE_SYNTH_BIN="$ACE_SYNTH_BIN" \
192192
MODELS_DIR="$MODELS_DIR" \
193193
PORT="$PORT" \
194194
DATABASE_PATH="$DIR/data/acestep.db" \
@@ -224,7 +224,7 @@ jobs:
224224
)
225225
226226
:: First-run: compile acestep.cpp
227-
if not exist "%DIR%bin\ace-qwen3.exe" (
227+
if not exist "%DIR%bin\ace-lm.exe" (
228228
echo ═══════════════════════════════════════════════════════
229229
echo First run: building acestep.cpp for your hardware
230230
echo GPU support ^(CUDA / Vulkan^) is detected automatically.
@@ -250,8 +250,8 @@ jobs:
250250
)
251251
252252
:: Start the server
253-
if "%ACE_QWEN3_BIN%"=="" set ACE_QWEN3_BIN=%DIR%bin\ace-qwen3.exe
254-
if "%DIT_VAE_BIN%"=="" set DIT_VAE_BIN=%DIR%bin\dit-vae.exe
253+
if "%ACE_LM_BIN%"=="" set ACE_LM_BIN=%DIR%bin\ace-lm.exe
254+
if "%ACE_SYNTH_BIN%"=="" set ACE_SYNTH_BIN=%DIR%bin\ace-synth.exe
255255
if "%PORT%"=="" set PORT=3001
256256
mkdir logs 2>nul & mkdir data 2>nul & mkdir public\audio 2>nul
257257
@@ -315,8 +315,8 @@ jobs:
315315
316316
| Variable | Default | Description |
317317
|----------|---------|-------------|
318-
| `ACE_QWEN3_BIN` | `./bin/ace-qwen3` | Path to the ace-qwen3 LLM binary |
319-
| `DIT_VAE_BIN` | `./bin/dit-vae` | Path to the dit-vae binary |
318+
| `ACE_LM_BIN` | `./bin/ace-lm` | Path to the ace-lm LLM binary |
319+
| `ACE_SYNTH_BIN` | `./bin/ace-synth` | Path to the ace-synth binary |
320320
| `MODELS_DIR` | `./models` | Directory containing GGUF model files |
321321
| `PORT` | `3001` | API + UI server port |
322322
| `AUDIO_DIR` | `./public/audio` | Where generated audio is stored |

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@ build.bat
116116
| `--bin DIR` | Custom binary output directory (default: `./bin`) |
117117

118118
After a successful build, three binaries are installed to `./bin/`:
119-
- `ace-qwen3` — text encoder
120-
- `dit-vae` — diffusion + VAE decoder
119+
- `ace-lm` — text encoder
120+
- `ace-synth` — diffusion + VAE decoder
121121
- `neural-codec` — audio codec
122122

123123
### Step 3: Download GGUF models
@@ -246,8 +246,8 @@ MODELS_DIR=./models
246246
247247
# ── acestep-cpp binaries — auto-detected from ./bin/ after ./build.sh ─────────
248248
# Override only if your binaries live outside ./bin/:
249-
# ACE_QWEN3_BIN=/path/to/ace-qwen3
250-
# DIT_VAE_BIN=/path/to/dit-vae
249+
# ACE_LM_BIN=/path/to/ace-lm
250+
# ACE_SYNTH_BIN=/path/to/ace-synth
251251
# ACESTEP_MODEL=/path/to/models/acestep-v15-turbo-Q8_0.gguf # override DiT model
252252
253253
# Mode 2 (advanced): connect to a separately running acestep-cpp HTTP server

build.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ if %ERRORLEVEL% NEQ 0 ( echo cmake build failed & exit /b 1 )
118118
:: Copy binaries
119119
if not exist "%BIN_DIR%" mkdir "%BIN_DIR%"
120120
set COPIED=0
121-
for %%N in (ace-qwen3 dit-vae ace-understand neural-codec) do (
121+
for %%N in (ace-lm ace-synth ace-understand neural-codec) do (
122122
set FOUND=
123123
for /r "%BUILD_DIR%" %%F in (%%N.exe) do (
124124
if exist "%%F" if "!FOUND!"=="" set FOUND=%%F

build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ cmake --build "$BUILD_DIR" --parallel
137137
# ── Copy binaries to bin/ ─────────────────────────────────────────────────────
138138
mkdir -p "$BIN_DIR"
139139
copied=0
140-
for name in ace-qwen3 dit-vae ace-understand neural-codec; do
140+
for name in ace-lm ace-synth ace-understand neural-codec; do
141141
found=$(find "$BUILD_DIR" -name "$name" -type f 2>/dev/null | head -1)
142142
if [ -n "$found" ]; then
143143
cp "$found" "$BIN_DIR/$name"

components/CreatePanel.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2433,7 +2433,7 @@ export const CreatePanel: React.FC<CreatePanelProps> = ({
24332433
<span className="relative group/tip inline-flex">
24342434
<Info size={12} className="text-zinc-400 cursor-help" />
24352435
<span className="pointer-events-none absolute hidden group-hover/tip:block bottom-5 left-0 z-50 w-56 rounded-lg bg-zinc-900 px-3 py-2 text-[10px] text-zinc-200 shadow-xl border border-white/10">
2436-
MP3 (default): native binary output, smaller file. WAV: lossless, passes --wav flag to dit-vae.
2436+
MP3 (default): native binary output, smaller file. WAV: lossless, passes --wav flag to ace-synth.
24372437
</span>
24382438
</span>
24392439
</div>
@@ -2460,9 +2460,9 @@ export const CreatePanel: React.FC<CreatePanelProps> = ({
24602460
</p>
24612461
</div>
24622462

2463-
{/* ── DiT flow matching (dit-vae) ──────────────────────── */}
2463+
{/* ── DiT flow matching (ace-synth) ──────────────────────── */}
24642464
<div className="flex items-center gap-2 pt-1">
2465-
<span className="text-[10px] font-bold text-zinc-400 uppercase tracking-widest whitespace-nowrap">DiT flow matching (dit-vae)</span>
2465+
<span className="text-[10px] font-bold text-zinc-400 uppercase tracking-widest whitespace-nowrap">DiT flow matching (ace-synth)</span>
24662466
<div className="flex-1 border-t border-zinc-200 dark:border-white/10" />
24672467
</div>
24682468

@@ -2501,10 +2501,10 @@ export const CreatePanel: React.FC<CreatePanelProps> = ({
25012501
helpText="Flow-matching schedule shift — controls the timestep distribution (shift = s·t / (1+(s−1)·t)). Turbo preset: 3.0. SFT/lego preset: 1.0. Values near 1.0 give a linear schedule; higher values front-load denoising."
25022502
/>
25032503

2504-
{/* ── LM sampling (ace-qwen3) ──────────────────────────── */}
2504+
{/* ── LM sampling (ace-lm) ──────────────────────────── */}
25052505
<>
25062506
<div className="flex items-center gap-2 pt-1">
2507-
<span className="text-[10px] font-bold text-zinc-400 uppercase tracking-widest whitespace-nowrap">LM sampling (ace-qwen3)</span>
2507+
<span className="text-[10px] font-bold text-zinc-400 uppercase tracking-widest whitespace-nowrap">LM sampling (ace-lm)</span>
25082508
<div className="flex-1 border-t border-zinc-200 dark:border-white/10" />
25092509
</div>
25102510

@@ -2515,7 +2515,7 @@ export const CreatePanel: React.FC<CreatePanelProps> = ({
25152515
<span className="relative group/tip inline-flex">
25162516
<Info size={12} className="text-zinc-400 cursor-help" />
25172517
<span className="pointer-events-none absolute hidden group-hover/tip:block bottom-5 left-0 z-50 w-56 rounded-lg bg-zinc-900 p-2 text-[10px] leading-relaxed text-white shadow-xl">
2518-
ace-qwen3 model size. 0.6B is fastest; 4B produces the best lyrics and captions.
2518+
ace-lm model size. 0.6B is fastest; 4B produces the best lyrics and captions.
25192519
</span>
25202520
</span>
25212521
</div>
@@ -2629,7 +2629,7 @@ export const CreatePanel: React.FC<CreatePanelProps> = ({
26292629
<span className="relative group/tip inline-flex">
26302630
<Info size={12} className="text-zinc-400 cursor-help" />
26312631
<span className="pointer-events-none absolute hidden group-hover/tip:block bottom-5 left-0 z-50 w-64 rounded-lg bg-zinc-900 p-2 text-[10px] leading-relaxed text-white shadow-xl">
2632-
Comma-separated FSQ token IDs produced by ace-qwen3. When non-empty, the entire LLM pass is skipped and dit-vae decodes these codes directly (passthrough mode).
2632+
Comma-separated FSQ token IDs produced by ace-lm. When non-empty, the entire LLM pass is skipped and ace-synth decodes these codes directly (passthrough mode).
26332633
</span>
26342634
</span>
26352635
</div>

docs/electron-local-testing.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Both archives are flat tarballs (no subdirectory). Run the command for your pla
4646
mkdir -p bin
4747

4848
curl -fsSL --retry 3 \
49-
https://github.com/audiohacking/acestep.cpp/releases/download/v0.0.1/acestep-macos-arm64-metal.tar.gz \
49+
https://github.com/audiohacking/acestep.cpp/releases/download/v0.0.2/acestep-macos-arm64-metal.tar.gz \
5050
-o acestep-macos-arm64-metal.tar.gz
5151

5252
echo "Archive contents:"
@@ -67,7 +67,7 @@ ls -lh bin/
6767
mkdir -p bin
6868

6969
curl -fsSL --retry 3 \
70-
https://github.com/audiohacking/acestep.cpp/releases/download/v0.0.1/acestep-linux-x64.tar.gz \
70+
https://github.com/audiohacking/acestep.cpp/releases/download/v0.0.2/acestep-linux-x64.tar.gz \
7171
-o acestep-linux-x64.tar.gz
7272

7373
echo "Archive contents:"
@@ -93,7 +93,7 @@ Run:
9393
```bash
9494
GGML_VER="0.9.7"
9595
ok=1
96-
for bin in ace-qwen3 dit-vae neural-codec; do
96+
for bin in ace-lm ace-synth neural-codec; do
9797
[ -f "bin/$bin" ] && [ -x "bin/$bin" ] \
9898
&& echo "✅ bin/$bin" \
9999
|| { echo "❌ bin/$bin — missing or not executable"; ok=0; }
@@ -116,7 +116,7 @@ Run:
116116

117117
```bash
118118
ok=1
119-
for bin in ace-qwen3 dit-vae neural-codec; do
119+
for bin in ace-lm ace-synth neural-codec; do
120120
[ -f "bin/$bin" ] && [ -x "bin/$bin" ] \
121121
&& echo "✅ bin/$bin" \
122122
|| { echo "❌ bin/$bin — missing or not executable"; ok=0; }
@@ -192,7 +192,7 @@ While the app is running, open a second terminal and confirm the environment var
192192
### macOS
193193

194194
```bash
195-
# Find the ace-qwen3 / dit-vae child process (if a generation is running) or
195+
# Find the ace-lm / ace-synth child process (if a generation is running) or
196196
# inspect the Electron main process env via the logs directory:
197197
cat ~/Library/Application\ Support/ACE-Step\ UI/logs/server.log | grep -i "DYLD"
198198
```
@@ -259,7 +259,7 @@ libggml-base.so.0 -> libggml-base.so
259259
1. With models present (or after downloading them), enter a short prompt such as `upbeat electronic music`
260260
2. Set **Duration** to `5s` in the Advanced panel to keep the test fast
261261
3. Click **Generate**
262-
4. Watch the Debug tab — you should see `ace-qwen3` and `dit-vae` output lines appear
262+
4. Watch the Debug tab — you should see `ace-lm` and `ace-synth` output lines appear
263263
5. The generated audio file should appear in the Songs list and be playable
264264

265265
If the binaries fail to load their shared libraries you will see an error like:

electron/main.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* ─────────────────
66
* 1. ensureDirs() create user-space directories
77
* 2. setupLibraryPaths() set LD_LIBRARY_PATH (Linux) / DYLD_LIBRARY_PATH
8-
* (macOS) to BIN_DIR so that ace-qwen3 / dit-vae
8+
* (macOS) to BIN_DIR so that ace-lm / ace-synth
99
* child processes find their shared libraries.
1010
* Linux ELFs have a hardcoded RUNPATH to the CI
1111
* build tree; macOS dylibs use versioned install
@@ -124,7 +124,7 @@ function ensureDirs () {
124124

125125
/**
126126
* Prepend BIN_DIR to the platform's dynamic-library search path so that the
127-
* ace-qwen3 / dit-vae child processes find their bundled shared libraries.
127+
* ace-lm / ace-synth child processes find their bundled shared libraries.
128128
*
129129
* Linux: The ELFs have a hardcoded RUNPATH pointing to the CI build tree
130130
* (/home/runner/work/…) which never exists on user machines.
@@ -231,10 +231,10 @@ async function startServer () {
231231
process.env.JWT_SECRET = 'ace-step-ui-electron-local-secret';
232232
}
233233

234-
const aceQwen3 = path.join(BIN_DIR, `ace-qwen3${binExt}`);
235-
const ditVae = path.join(BIN_DIR, `dit-vae${binExt}`);
236-
if (fs.existsSync(aceQwen3)) process.env.ACE_QWEN3_BIN = aceQwen3;
237-
if (fs.existsSync(ditVae)) process.env.DIT_VAE_BIN = ditVae;
234+
const aceLm = path.join(BIN_DIR, `ace-lm${binExt}`);
235+
const aceSynth = path.join(BIN_DIR, `ace-synth${binExt}`);
236+
if (fs.existsSync(aceLm)) process.env.ACE_LM_BIN = aceLm;
237+
if (fs.existsSync(aceSynth)) process.env.ACE_SYNTH_BIN = aceSynth;
238238

239239
// In packaged mode redirect server stdout/stderr to a persistent log file
240240
if (isPackaged) {

0 commit comments

Comments
 (0)