# ACE-Step - Core.Today AI API > ACE-Step open music foundation model via Replicate. Generates up to 4 minutes of music with vocals from style tags and structured lyrics, with full control over steps, scheduler and guidance. Billed per second of requested duration. - **Provider**: ACE Studio - **Model ID**: lucataco/ace-step - **Category**: Audio & TTS - **Credits**: 16 per 60s at 60 steps — (2.72 + 0.21 × seconds) × steps/60, measured - **Speed**: Medium - **Quality**: Standard ## Features - Open-source music model with vocals - Up to 240 seconds per generation - Style tags instead of prose prompts - Full control of steps, scheduler and guidance - Measured pricing: 16 credits per minute at default steps ## Use Cases - Cheap full-length song drafts - Experiments with guidance and schedulers - Instrumental tracks via [inst] lyrics ## API Endpoint Base URL: https://api.core.today/v1 Create Prediction: POST /predictions Get Status: GET /predictions/{job_id} ## Authentication Header: X-API-Key: YOUR_API_KEY ## Input Parameters ### Required - **tags**: string - Comma-separated style tags, e.g. 'synth-pop, electronic, 128 BPM, energetic' ### Optional - **lyrics**: string - Lyrics with [verse], [chorus], [bridge] sections. Use [instrumental] or [inst] for instrumental music - **duration**: number (default: 60) - Duration of the generated audio in seconds (1-240). Billed per second - **number_of_steps**: integer (default: 60) - Number of inference steps (10-200) - **seed**: integer (default: -1) - Random seed. -1 randomizes - **scheduler**: string (default: euler) - Scheduler type Options: euler, heun - **guidance_type**: string (default: apg) - Guidance type for CFG Options: apg, cfg, cfg_star - **guidance_scale**: number (default: 15) - Overall guidance scale (0-30) - **granularity_scale**: number (default: 10) - Omega scale for APG guidance (-100 to 100) - **guidance_interval**: number (default: 0.5) - Guidance interval (0-1) - **guidance_interval_decay**: number (default: 0) - Guidance interval decay (0-1) - **min_guidance_scale**: number (default: 3) - Minimum guidance scale (0-100) - **tag_guidance_scale**: number (default: 0) - Guidance scale for tags (0-10) - **lyric_guidance_scale**: number (default: 0) - Guidance scale for lyrics (0-10) ## Examples ### Core.Today company song The same Korean company-song lyrics given to every music model — compare how each one sings them ```json { "model": "lucataco/ace-step", "input": { "tags": "k-pop, electro-pop, company jingle, synth brass, punchy drums, 128 BPM, energetic, playful, female vocals, korean", "lyrics": "[verse]\n아침부터 AI, 커피보다 진해\n코딩하다 보니 벌써 새벽 두 시네!\n안 되는 건 없어, 일단 만들어 봐\n상상이 현실 되는 마법 같은 회사!\n\n[chorus]\n코어! 닷! 투데이!\n오늘의 상상이 내일의 기술로!\n코어! 닷! 투데이!\nAI도 놀라는 우리의 아이디어!\n\n[outro]\n뚝딱뚝딱 만들고, 반짝반짝 빛내고!\n기술을 넘어 경험으로!\n코어닷투데이, Hey!", "duration": 60 } } ``` ### Synth-pop with lyrics Tag prompt plus sectioned lyrics, 60 seconds ```json { "model": "lucataco/ace-step", "input": { "tags": "synth-pop, electronic, pop, synthesizer, drums, bass, piano, 128 BPM, energetic, uplifting, modern", "lyrics": "[verse]\nWoke up in a city that's always alive\nNeon lights they shimmer they thrive\n\n[chorus]\nOh we ride the night\nelectric hearts alight", "duration": 60 } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending | processing | completed | failed", "result": "URL or data (when completed)" } ``` ## Usage Flow 1. POST /predictions with model and input -> receive job_id 2. GET /predictions/{job_id} -> poll until status is completed or failed 3. Result contains output URL(s) ## Tips - Use tags, not sentences: genre, instruments, BPM, mood separated by commas - Write [inst] as the lyrics for an instrumental track - Billing follows duration and number_of_steps — 240 s at 60 steps is about 54 credits, 200 steps triples it - Leave the guidance parameters at their defaults unless you are experimenting