Default batch size to 1 with localStorage persistence, update README
- Batch size defaults to 1 (safe for 8GB GPUs), persisted in browser - Bulk count also persisted in browser localStorage - Add Pinokio 1-click installer as recommended install method - Add batch size, bulk generation, and LM backend docs - Update troubleshooting with VRAM-saving tips
This commit is contained in:
@@ -154,6 +154,20 @@
|
||||
|
||||
## ⚡ Quick Start
|
||||
|
||||
### 🎯 Pinokio - 1-Click Install (Recommended for All Users!)
|
||||
|
||||
The easiest way to get ACE-Step UI up and running on **any platform** — no terminal, no manual setup:
|
||||
|
||||
<p align="center">
|
||||
<a href="https://beta.pinokio.co/apps/github-com-cocktailpeanut-ace-step-ui-pinokio">
|
||||
<img src="https://img.shields.io/badge/⚡_Install_with_Pinokio-One_Click-ff69b4?style=for-the-badge&labelColor=1a1a1a" alt="Install with Pinokio" height="50">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
> **[Pinokio](https://pinokio.computer)** handles everything automatically: Python, Node.js, dependencies, model downloads, and launching. Just click install and start making music.
|
||||
|
||||
---
|
||||
|
||||
### 🪟 Windows - One-Click Start (Easiest!)
|
||||
```batch
|
||||
cd ace-step-ui
|
||||
@@ -380,6 +394,16 @@ Full control over every parameter:
|
||||
| **BPM** | 60-200 beats per minute |
|
||||
| **Key** | Musical key (C major, A minor, etc.) |
|
||||
|
||||
### Batch Size & Bulk Generation
|
||||
|
||||
| Setting | Description |
|
||||
|---------|-------------|
|
||||
| **Batch Size** | Number of variations generated per job (1-4). Default is **1** for broad GPU compatibility. Higher values generate more variations but use more VRAM. **8GB GPU users should keep this at 1.** |
|
||||
| **Bulk Generate** | Queue multiple independent generation jobs (1-10). Each job runs sequentially, so this is safe for any GPU. |
|
||||
| **LM Backend** | Choose between **PT** (~1.6 GB VRAM) and **VLLM** (~9.2 GB VRAM). PT is the default and works on most GPUs. |
|
||||
|
||||
> **Tip:** Both batch size and bulk count are remembered in your browser — set them once and they stick for future sessions.
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Built-in Tools
|
||||
@@ -398,8 +422,8 @@ Full control over every parameter:
|
||||
| Issue | Solution |
|
||||
|-------|----------|
|
||||
| **ACE-Step API not reachable** | Ensure API server is running (see Usage section) |
|
||||
| **CUDA out of memory** | Close other GPU apps, reduce duration, or disable Thinking Mode |
|
||||
| **4GB GPU - Out of memory** | Make sure **Thinking Mode is OFF** (it's off by default). LLM features require 12GB+ |
|
||||
| **CUDA out of memory** | Switch LM Backend to **PT**, set batch size to **1**, reduce duration, or disable Thinking Mode |
|
||||
| **4GB GPU - Out of memory** | Use **PT** backend (default), batch size **1**, and keep **Thinking Mode OFF**. LLM features require 12GB+ |
|
||||
| **AttributeError: 'NoneType'** | Update to latest ACE-Step-1.5 (fix merged in PR #109) |
|
||||
| **Songs show 0:00 duration** | Install FFmpeg: `sudo apt install ffmpeg` (Linux) or download from [ffmpeg.org](https://ffmpeg.org) (Windows) |
|
||||
| **LAN access not working** | Check firewall allows ports 3000 and 3001 |
|
||||
|
||||
@@ -135,8 +135,14 @@ export const CreatePanel: React.FC<CreatePanelProps> = ({
|
||||
// Advanced Settings
|
||||
const [showAdvanced, setShowAdvanced] = useState(false);
|
||||
const [duration, setDuration] = useState(-1);
|
||||
const [batchSize, setBatchSize] = useState(2);
|
||||
const [bulkCount, setBulkCount] = useState(1); // Number of independent generation jobs to queue
|
||||
const [batchSize, setBatchSize] = useState(() => {
|
||||
const stored = localStorage.getItem('ace-batchSize');
|
||||
return stored ? Number(stored) : 1;
|
||||
});
|
||||
const [bulkCount, setBulkCount] = useState(() => {
|
||||
const stored = localStorage.getItem('ace-bulkCount');
|
||||
return stored ? Number(stored) : 1;
|
||||
});
|
||||
const [guidanceScale, setGuidanceScale] = useState(9.0);
|
||||
const [randomSeed, setRandomSeed] = useState(true);
|
||||
const [seed, setSeed] = useState(-1);
|
||||
@@ -1028,7 +1034,7 @@ export const CreatePanel: React.FC<CreatePanelProps> = ({
|
||||
max="4"
|
||||
step="1"
|
||||
value={batchSize}
|
||||
onChange={(e) => setBatchSize(Number(e.target.value))}
|
||||
onChange={(e) => { const v = Number(e.target.value); setBatchSize(v); localStorage.setItem('ace-batchSize', String(v)); }}
|
||||
className="w-full h-2 bg-zinc-200 dark:bg-zinc-700 rounded-lg appearance-none cursor-pointer accent-pink-500"
|
||||
/>
|
||||
<p className="text-[10px] text-zinc-500">Number of song variations to generate</p>
|
||||
@@ -1494,7 +1500,7 @@ export const CreatePanel: React.FC<CreatePanelProps> = ({
|
||||
max="4"
|
||||
step="1"
|
||||
value={batchSize}
|
||||
onChange={(e) => setBatchSize(Number(e.target.value))}
|
||||
onChange={(e) => { const v = Number(e.target.value); setBatchSize(v); localStorage.setItem('ace-batchSize', String(v)); }}
|
||||
className="w-full h-2 bg-zinc-200 dark:bg-zinc-700 rounded-lg appearance-none cursor-pointer accent-pink-500"
|
||||
/>
|
||||
<p className="text-[10px] text-zinc-500">How many versions to create in one run</p>
|
||||
@@ -1512,7 +1518,7 @@ export const CreatePanel: React.FC<CreatePanelProps> = ({
|
||||
{[1, 2, 3, 5, 10].map((count) => (
|
||||
<button
|
||||
key={count}
|
||||
onClick={() => setBulkCount(count)}
|
||||
onClick={() => { setBulkCount(count); localStorage.setItem('ace-bulkCount', String(count)); }}
|
||||
className={`flex-1 py-2 rounded-lg text-xs font-bold transition-all ${
|
||||
bulkCount === count
|
||||
? 'bg-gradient-to-r from-orange-500 to-pink-600 text-white shadow-md'
|
||||
|
||||
Reference in New Issue
Block a user