diff --git a/App.tsx b/App.tsx index 522142e..a2e0b90 100644 --- a/App.tsx +++ b/App.tsx @@ -596,6 +596,7 @@ export default function App() { lmTopK: params.lmTopK, lmTopP: params.lmTopP, lmNegativePrompt: params.lmNegativePrompt, + lmBackend: params.lmBackend, referenceAudioUrl: params.referenceAudioUrl, sourceAudioUrl: params.sourceAudioUrl, audioCodes: params.audioCodes, diff --git a/components/CreatePanel.tsx b/components/CreatePanel.tsx index 32587b9..d0364c9 100644 --- a/components/CreatePanel.tsx +++ b/components/CreatePanel.tsx @@ -133,6 +133,7 @@ export const CreatePanel: React.FC = ({ onGenerate, isGenerati const [audioFormat, setAudioFormat] = useState<'mp3' | 'flac'>('mp3'); const [inferenceSteps, setInferenceSteps] = useState(8); const [inferMethod, setInferMethod] = useState<'ode' | 'sde'>('ode'); + const [lmBackend, setLmBackend] = useState<'pt' | 'vllm'>('pt'); const [shift, setShift] = useState(3.0); // LM Parameters (under Expert) @@ -535,6 +536,7 @@ export const CreatePanel: React.FC = ({ onGenerate, isGenerati thinking, audioFormat, inferMethod, + lmBackend, shift, lmTemperature, lmCfgScale, @@ -1298,6 +1300,20 @@ export const CreatePanel: React.FC = ({ onGenerate, isGenerati + {/* LM Backend */} +
+ + +

PT uses less VRAM, VLLM may be faster on powerful GPUs

+
+ {/* Seed */}
diff --git a/server/src/routes/generate.ts b/server/src/routes/generate.ts index 3e408b1..b1839f0 100644 --- a/server/src/routes/generate.ts +++ b/server/src/routes/generate.ts @@ -90,6 +90,7 @@ interface GenerateBody { lmTopK?: number; lmTopP?: number; lmNegativePrompt?: string; + lmBackend?: 'pt' | 'vllm'; // Expert Parameters referenceAudioUrl?: string; @@ -189,6 +190,7 @@ router.post('/', authMiddleware, async (req: AuthenticatedRequest, res: Response lmTopK, lmTopP, lmNegativePrompt, + lmBackend, referenceAudioUrl, sourceAudioUrl, audioCodes, @@ -252,6 +254,7 @@ router.post('/', authMiddleware, async (req: AuthenticatedRequest, res: Response lmTopK, lmTopP, lmNegativePrompt, + lmBackend, referenceAudioUrl, sourceAudioUrl, audioCodes, diff --git a/server/src/services/acestep.ts b/server/src/services/acestep.ts index a60765d..489bc7b 100644 --- a/server/src/services/acestep.ts +++ b/server/src/services/acestep.ts @@ -137,6 +137,7 @@ async function submitToApi(params: GenerationParams): Promise<{ taskId: string } use_cot_caption: false, // Explicitly disable CoT features that require LLM use_cot_language: false, // Explicitly disable CoT features that require LLM use_cot_metas: false, // Explicitly disable CoT features that require LLM + lm_backend: params.lmBackend || 'pt', }; if (params.bpm && params.bpm > 0) body.bpm = params.bpm; @@ -150,7 +151,12 @@ async function submitToApi(params: GenerationParams): Promise<{ taskId: string } if (params.audioCodes) body.audio_code_string = params.audioCodes; if (params.repaintingStart !== undefined && params.repaintingStart > 0) body.repainting_start = params.repaintingStart; if (params.repaintingEnd !== undefined && params.repaintingEnd > 0) body.repainting_end = params.repaintingEnd; - if (params.audioCoverStrength !== undefined && params.audioCoverStrength !== 1.0) body.audio_cover_strength = params.audioCoverStrength; + // Always send audio_cover_strength for cover/repaint tasks, otherwise only when not default + if (params.taskType === 'cover' || params.taskType === 'repaint' || params.sourceAudioUrl) { + body.audio_cover_strength = params.audioCoverStrength ?? 1.0; + } else if (params.audioCoverStrength !== undefined && params.audioCoverStrength !== 1.0) { + body.audio_cover_strength = params.audioCoverStrength; + } if (params.instruction) body.instruction = params.instruction; // LLM and CoT parameters only sent when thinking mode is enabled if (params.thinking) { @@ -340,6 +346,7 @@ export interface GenerationParams { lmTopK?: number; lmTopP?: number; lmNegativePrompt?: string; + lmBackend?: 'pt' | 'vllm'; // Expert Parameters referenceAudioUrl?: string; @@ -603,7 +610,12 @@ async function processGeneration( if (params.audioCodes) args.push('--audio-codes', params.audioCodes); if (params.repaintingStart !== undefined && params.repaintingStart > 0) args.push('--repainting-start', String(params.repaintingStart)); if (params.repaintingEnd !== undefined && params.repaintingEnd > 0) args.push('--repainting-end', String(params.repaintingEnd)); - if (params.audioCoverStrength !== undefined && params.audioCoverStrength !== 1.0) args.push('--audio-cover-strength', String(params.audioCoverStrength)); + // Always send audio_cover_strength for cover/repaint tasks, otherwise only when not default + if (params.taskType === 'cover' || params.taskType === 'repaint' || params.sourceAudioUrl) { + args.push('--audio-cover-strength', String(params.audioCoverStrength ?? 1.0)); + } else if (params.audioCoverStrength !== undefined && params.audioCoverStrength !== 1.0) { + args.push('--audio-cover-strength', String(params.audioCoverStrength)); + } if (params.instruction) args.push('--instruction', params.instruction); if (params.thinking) args.push('--thinking'); if (params.lmTemperature !== undefined) args.push('--lm-temperature', String(params.lmTemperature)); @@ -611,6 +623,7 @@ async function processGeneration( if (params.lmTopK !== undefined && params.lmTopK > 0) args.push('--lm-top-k', String(params.lmTopK)); if (params.lmTopP !== undefined) args.push('--lm-top-p', String(params.lmTopP)); if (params.lmNegativePrompt) args.push('--lm-negative-prompt', params.lmNegativePrompt); + if (params.lmBackend) args.push('--lm-backend', params.lmBackend); if (params.useCotMetas === false) args.push('--no-cot-metas'); if (params.useCotCaption === false) args.push('--no-cot-caption'); if (params.useCotLanguage === false) args.push('--no-cot-language'); diff --git a/services/api.ts b/services/api.ts index b0f18b2..e3e31f5 100644 --- a/services/api.ts +++ b/services/api.ts @@ -232,6 +232,7 @@ export interface GenerationParams { lmTopK?: number; lmTopP?: number; lmNegativePrompt?: string; + lmBackend?: 'pt' | 'vllm'; // Expert Parameters referenceAudioUrl?: string; diff --git a/types.ts b/types.ts index 9d2efad..af6db7c 100644 --- a/types.ts +++ b/types.ts @@ -83,6 +83,7 @@ export interface GenerationParams { lmTopK: number; lmTopP: number; lmNegativePrompt: string; + lmBackend?: 'pt' | 'vllm'; // Expert Parameters referenceAudioUrl?: string;