Fix multiple issues: format API, Gradio availability, storage, UI responsiveness
- Format endpoint now calls ACE-Step /format_input REST API directly instead of spawning Python, fixing ENOENT errors on Windows (#44, #27, #34) - isGradioAvailable() tries /gradio_api/info, /info, / in sequence to handle Gradio 4.x/5.x/6.x version differences, fixing generation fallback (#53, #20) - Storage getUrl/getPublicUrl normalize /audio/ prefix to prevent double-prefix URLs when reference tracks are used for cover generation (#10) - Gradio args: fix normalization_db default from 0.0 to -1.0 (Gradio default) - Volume popover: add 400ms delay before hiding to prevent accidental dismissal (#51) - Polling: skip setSongs state update when nothing changed to reduce re-renders (#51) - FFmpeg: add jsdelivr CDN fallback when unpkg fails (#30) - Model switching: add switchModelIfNeeded() via /v1/init REST API (#45)
This commit is contained in:
@@ -22,14 +22,13 @@ export class LocalStorageProvider implements StorageProvider {
|
||||
}
|
||||
|
||||
async getUrl(key: string, _expiresIn?: number): Promise<string> {
|
||||
return `/audio/${key}`;
|
||||
const cleanKey = key.startsWith('/audio/') ? key.slice('/audio/'.length) : key;
|
||||
return `/audio/${cleanKey.replace(/^\/+/, '')}`;
|
||||
}
|
||||
|
||||
getPublicUrl(key: string): string {
|
||||
if (key.startsWith('/audio/')) {
|
||||
return key;
|
||||
}
|
||||
return `/audio/${key}`;
|
||||
const cleanKey = key.startsWith('/audio/') ? key.slice('/audio/'.length) : key;
|
||||
return `/audio/${cleanKey.replace(/^\/+/, '')}`;
|
||||
}
|
||||
|
||||
async delete(key: string): Promise<void> {
|
||||
|
||||
Reference in New Issue
Block a user