Spaces:
Running
Download README.md from Reubencf/Score-Studio: direct link, hf CLI and curl.
- Browser
- Download file 6.76 kB
-
https://huggingface.co/spaces/Reubencf/Score-Studio/resolve/main/README.md
- Command line
-
hf download hf://spaces/Reubencf/Score-Studio/README.md
-
curl -L -o README.md https://huggingface.co/spaces/Reubencf/Score-Studio/resolve/main/README.md
title: Kiku AI
emoji: 🎤
colorFrom: yellow
colorTo: red
sdk: docker
app_port: 7860
short_description: AI music studio that builds a band around your voice
models:
- m-a-p/SheetSage2
- m-a-p/YuE2-3B
- ACE-Step/ACE-Step-v1-3.5B
tags:
- audio-to-score
- music-generation
- text-to-music
- music-transcription
Kiku AI
Record or upload a take, turn it into editable notation, and build a full song around it. Sign in with Hugging Face to use your own ZeroGPU allowance.
What it does
Sheet music (/score) turns a recording into a lead sheet you can play with a
moving note highlight, edit, undo, restore and download as ABC, MIDI or PDF.
Studio (/, the page the Space opens on; /studio and /create redirect there) is a small multitrack DAW: tracks of audio
clips on a timeline, a transport with loop and recording, a mixer with per-track volume, pan,
mute, solo and meters, undo, and WAV export. Clips move, trim, split and duplicate on a beat grid.
Kiku AI works on whatever is selected:
- Select a clip, several clips, or drag across part of a clip (the range tool,
R, or dragging on empty space) to restyle it, rewrite just that stretch, split it into stems or extend it. An edit inside one clip is spliced back in place with crossfades; anything spanning several clips lands on a new track, and the originals are muted rather than deleted. - Band turns a vocal into a band that follows its beat and chords. If the take already has music behind it, the voice is lifted off first and the old backing's harmony is followed. The voice in the result is always yours. Drums, bass and keys arrive as separate tracks, and the project adopts the measured tempo, key and chords (shown in a chord lane).
- With nothing selected, the browser adds one instrument at a time — drums, bass, keys, guitar, strings, synth or a full band — written to the project's beat and chords and isolated to that instrument, or generates an instrumental or a song with (synthetic) vocals at the playhead.
Each AI action has a model picker: ACE-Step 1.5 (the default), YuE2 or ACE-Step 1. Models that cannot do the selected job are greyed out: YuE2 only writes songs with vocals, and cannot edit audio. With ACE-Step 1.5, a band is written by its complete task directly around the vocal, and a single instrument by its lego task directly into the project. ACE-Step 1 builds a guide track from the measured beat and chords instead. Stems are always Demucs.
Several jobs can run while you keep editing; each result is placed against the project as it is when the job finishes.
Score playback defaults to piano. The instrument selector also offers acoustic and electric guitar, acoustic bass, violin, cello, string ensemble, trumpet, saxophone, clarinet, and flute. This changes the playback sound of the score; it does not separate the recording into individual instrument parts.
The interface uses Supreme Regular and Bespoke Stencil Bold from Fontshare, follows your device's preferred theme until you choose one, and switches themes with an expanding circular wave. Reduced-motion preferences are respected.
Run locally
Requires Node 24 and FFmpeg/FFprobe on PATH.
Run npm ci, configure values from env.example in .env.local, then npm run dev.
Open http://localhost:3000. The development-only animation preview is at
http://localhost:3000/preview/transcribe, and the studio without signing in (engine calls
fail there) is at http://localhost:3000/preview/studio.
Hosting
The frontend runs on a CPU Docker Space. Inference runs on two public Gradio ZeroGPU Spaces, each called with the signed-in user's own token:
| Space | Used for |
|---|---|
| Kiku-Engine | Transcription (SheetSage2), YuE2 songs, ACE-Step 1 editing and guide-track bands, Demucs stems |
| Kiku-ACE-Step-15 | ACE-Step 1.5: songs, instrumentals, restyle, rewrite, extend, lego parts and complete bands |
ACE-Step 1.5 needs Python 3.11, Gradio 6 and torch 2.9, which cannot share the engine's YuE2 stack, so it has its own Space. Both expose the same endpoint names, and the routes pick one from the model the user chose.
Hosting more than two ZeroGPU Spaces on one account requires PRO.
Before deploying, configure these Space settings:
- Secret
SESSION_SECRET: 32 random bytes encoded as 64 hexadecimal characters. - Variable
APP_ORIGIN:https://reubencf-kiku-ai.hf.space. - Optional
HF_*_SPACEandHF_*_ORIGINoverrides for each engine; seeenv.example.
The OAuth client is published by the API Space, so every origin that signs users
in must appear in its redirect_uris.
The Dockerfile includes FFmpeg and the standalone Next.js build.
No owner Hugging Face token is required or used for public requests. The login
flow uses Hugging Face's Client ID Metadata Documents and authorization code
with PKCE, requesting only openid profile. User access tokens are encrypted in
HttpOnly cookies, expire within eight hours, and are never returned to frontend JavaScript.
Serve the app over HTTPS and keep the session secret stable across restarts.
Login opens the app at its own origin so it does not depend on third-party cookies.
Every generation route requires a valid session and same-origin submission. Backend score downloads expire after 24 hours.
Limits
Audio for transcription must be 5 seconds to 10 minutes and under 100 MB. Audio sent from the studio must be 3 seconds to 4 minutes (stem splits up to 6 minutes). The whole recording is validated and submitted; longer input is rejected, not silently truncated.
A free Hugging Face account carries about 5 minutes of daily ZeroGPU time and a PRO account about 40, which is the real ceiling on how much anyone can generate per day. Songs with vocals cost far more of that budget than instrumentals.
A band follows the beat grid and chords measured from your take, not its phrasing, because ACE-Step's Singing2Accompaniment ControlNet is unreleased. Steady singing follows well; a take with no clear pulse falls back to matching its key only. Studio edits send at most four minutes of audio at once.
SheetSage2 produces melody and chord lead sheets, not a complete orchestral score. Review AI notation before performing. The model weights are CC BY-NC 4.0 (non-commercial). Fonts are distributed by Fontshare.
Checks
npm run typecheck and npm run build verify the production frontend.
Before publishing, verify real Hugging Face login, full audio processing,
score playback and editing, both themes, keyboard controls and reduced motion.