Music 서비스 전면 개편: Lab→독립 메뉴 승격 + Suno API 고도화
- 사이드바에 Music 독립 메뉴 추가 (/lab/music → /music) - Lab 허브에서 Sonic Forge 카드 제거 - LibraryCard: 제목 최대 표시, 파일명 축소, duration 실제값 표시 - 모델 선택 UI (V4/V4_5/V5), 크레딧 잔액 표시 - 곡 연장(Extend), 보컬 분리(Vocal Split) 버튼 추가 - api.js: getMusicModels, getMusicCredits, extendMusicTrack, removeVocals - 라이브러리 로딩 스켈레톤, Provider 에러 배너 - 모바일 반응형 개선 (모델바, 크레딧, 프로바이더, 카드 액션) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
22
src/api.js
22
src/api.js
@@ -290,6 +290,28 @@ export function deleteMusicTrack(id) {
|
||||
return apiDelete(`/api/music/library/${id}`);
|
||||
}
|
||||
|
||||
// GET /api/music/models → { models: [{ id, name, max_duration, description }] }
|
||||
export function getMusicModels() {
|
||||
return apiGet('/api/music/models');
|
||||
}
|
||||
|
||||
// GET /api/music/credits → { remaining, total, ... }
|
||||
export function getMusicCredits() {
|
||||
return apiGet('/api/music/credits');
|
||||
}
|
||||
|
||||
// POST /api/music/extend body: { suno_id, continue_at, prompt, style, title, model }
|
||||
// → { task_id, provider }
|
||||
export function extendMusicTrack(payload) {
|
||||
return apiPost('/api/music/extend', payload);
|
||||
}
|
||||
|
||||
// POST /api/music/vocal-removal body: { suno_id, title }
|
||||
// → { task_id, provider }
|
||||
export function removeVocals(payload) {
|
||||
return apiPost('/api/music/vocal-removal', payload);
|
||||
}
|
||||
|
||||
// ── 로또 고도화 API ────────────────────────────────────────────────────────────
|
||||
|
||||
// GET /api/lotto/stats/performance
|
||||
|
||||
Reference in New Issue
Block a user