chore: add .gitignore and batch generation script
This commit is contained in:
parent
38331ca59a
commit
87763e21db
2 changed files with 75 additions and 0 deletions
16
.gitignore
vendored
Normal file
16
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
# Vendored deps / envs
|
||||||
|
ace-step/
|
||||||
|
basic-pitch-env/
|
||||||
|
.cache/
|
||||||
|
*.venv/
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# User data
|
||||||
|
input/
|
||||||
|
output/
|
||||||
|
|
||||||
|
# Editor
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
59
batch_generate.py
Normal file
59
batch_generate.py
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
"""Batch generation script — 100 outputs across instruments and parameter permutations."""
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import itertools
|
||||||
|
import random
|
||||||
|
|
||||||
|
import os
|
||||||
|
BASE = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
PYTHON = os.path.join(BASE, "ace-step", ".venv", "Scripts", "python.exe")
|
||||||
|
SCRIPT = os.path.join(BASE, "hum2inst.py")
|
||||||
|
INPUT = os.path.join(BASE, "input", "bum bum bum [2026-04-10 230403].wav")
|
||||||
|
OUTPUT = os.path.join(BASE, "output", "batch-bumbum")
|
||||||
|
|
||||||
|
instruments = ["piano", "guitar", "saxophone", "violin", "flute",
|
||||||
|
"cello", "trumpet", "organ", "marimba", "harmonica"]
|
||||||
|
|
||||||
|
# Parameter combos: (strength, guidance)
|
||||||
|
param_combos = [
|
||||||
|
(0.2, 5.0),
|
||||||
|
(0.3, 5.0), # our best default
|
||||||
|
(0.4, 5.0),
|
||||||
|
(0.3, 7.0),
|
||||||
|
(0.3, 3.0),
|
||||||
|
]
|
||||||
|
|
||||||
|
# 10 instruments x 5 param combos x 2 takes = 100 outputs
|
||||||
|
takes_per_combo = 2
|
||||||
|
|
||||||
|
count = 0
|
||||||
|
total = len(instruments) * len(param_combos) * takes_per_combo
|
||||||
|
print(f"Generating {total} outputs...")
|
||||||
|
|
||||||
|
for instrument in instruments:
|
||||||
|
for strength, guidance in param_combos:
|
||||||
|
seeds = [random.randint(0, 2**31 - 1) for _ in range(takes_per_combo)]
|
||||||
|
for seed in seeds:
|
||||||
|
count += 1
|
||||||
|
print(f"\n[{count}/{total}] {instrument} str={strength} guide={guidance} seed={seed}")
|
||||||
|
cmd = [
|
||||||
|
PYTHON, SCRIPT, INPUT,
|
||||||
|
"--instrument", instrument,
|
||||||
|
"--output", OUTPUT,
|
||||||
|
"--strength", str(strength),
|
||||||
|
"--noise-strength", "0.0",
|
||||||
|
"--guidance", str(guidance),
|
||||||
|
"--seed", str(seed),
|
||||||
|
]
|
||||||
|
result = subprocess.run(cmd, capture_output=True, text=True)
|
||||||
|
# Print just the output/log lines
|
||||||
|
for line in result.stdout.splitlines():
|
||||||
|
if "Output saved" in line or "Run log" in line:
|
||||||
|
print(f" {line.strip()}")
|
||||||
|
if result.returncode != 0:
|
||||||
|
err_lines = [l for l in result.stderr.splitlines() if "ERROR" in l]
|
||||||
|
for l in err_lines:
|
||||||
|
print(f" FAILED: {l.strip()}")
|
||||||
|
|
||||||
|
print(f"\nDone! {count} outputs in {OUTPUT}/")
|
||||||
Loading…
Add table
Reference in a new issue