mirror of
https://github.com/jamiepine/voicebox.git
synced 2026-09-16 21:30:39 -07:00
fix: LuxTTS generation and preserve model selection after generate
- Fix silent Zod validation failure when LuxTTS selected (modelSize was set to 'default' which failed enum validation, preventing form submit) - Preserve engine, model size, and language after successful generation instead of resetting to defaults
This commit is contained in:
@@ -404,11 +404,19 @@ export function FloatingGenerateBox({
|
||||
|
||||
<FormItem className="flex-1 space-y-0">
|
||||
<Select
|
||||
value={`${form.watch('engine') || 'qwen'}:${form.watch('modelSize') || '1.7B'}`}
|
||||
value={
|
||||
form.watch('engine') === 'luxtts'
|
||||
? 'luxtts'
|
||||
: `qwen:${form.watch('modelSize') || '1.7B'}`
|
||||
}
|
||||
onValueChange={(value) => {
|
||||
const [engine, modelSize] = value.split(':');
|
||||
form.setValue('engine', engine as 'qwen' | 'luxtts');
|
||||
if (modelSize) form.setValue('modelSize', modelSize as '1.7B' | '0.6B');
|
||||
if (value === 'luxtts') {
|
||||
form.setValue('engine', 'luxtts');
|
||||
} else {
|
||||
const [, modelSize] = value.split(':');
|
||||
form.setValue('engine', 'qwen');
|
||||
form.setValue('modelSize', modelSize as '1.7B' | '0.6B');
|
||||
}
|
||||
}}
|
||||
>
|
||||
<FormControl>
|
||||
@@ -423,10 +431,7 @@ export function FloatingGenerateBox({
|
||||
<SelectItem value="qwen:0.6B" className="text-xs text-muted-foreground">
|
||||
Qwen3-TTS 0.6B
|
||||
</SelectItem>
|
||||
<SelectItem
|
||||
value="luxtts:default"
|
||||
className="text-xs text-muted-foreground"
|
||||
>
|
||||
<SelectItem value="luxtts" className="text-xs text-muted-foreground">
|
||||
LuxTTS
|
||||
</SelectItem>
|
||||
</SelectContent>
|
||||
|
||||
@@ -104,11 +104,19 @@ export function GenerationForm() {
|
||||
<FormItem>
|
||||
<FormLabel>Model</FormLabel>
|
||||
<Select
|
||||
value={`${form.watch('engine') || 'qwen'}:${form.watch('modelSize') || '1.7B'}`}
|
||||
value={
|
||||
form.watch('engine') === 'luxtts'
|
||||
? 'luxtts'
|
||||
: `qwen:${form.watch('modelSize') || '1.7B'}`
|
||||
}
|
||||
onValueChange={(value) => {
|
||||
const [engine, modelSize] = value.split(':');
|
||||
form.setValue('engine', engine as 'qwen' | 'luxtts');
|
||||
if (modelSize) form.setValue('modelSize', modelSize as '1.7B' | '0.6B');
|
||||
if (value === 'luxtts') {
|
||||
form.setValue('engine', 'luxtts');
|
||||
} else {
|
||||
const [, modelSize] = value.split(':');
|
||||
form.setValue('engine', 'qwen');
|
||||
form.setValue('modelSize', modelSize as '1.7B' | '0.6B');
|
||||
}
|
||||
}}
|
||||
>
|
||||
<FormControl>
|
||||
@@ -119,7 +127,7 @@ export function GenerationForm() {
|
||||
<SelectContent>
|
||||
<SelectItem value="qwen:1.7B">Qwen3-TTS 1.7B</SelectItem>
|
||||
<SelectItem value="qwen:0.6B">Qwen3-TTS 0.6B</SelectItem>
|
||||
<SelectItem value="luxtts:default">LuxTTS</SelectItem>
|
||||
<SelectItem value="luxtts">LuxTTS</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<FormDescription>
|
||||
|
||||
Reference in New Issue
Block a user