diff --git a/ui/src/app/jobs/new/SimpleJob.tsx b/ui/src/app/jobs/new/SimpleJob.tsx index af198f6..d439a55 100644 --- a/ui/src/app/jobs/new/SimpleJob.tsx +++ b/ui/src/app/jobs/new/SimpleJob.tsx @@ -1420,6 +1420,14 @@ export default function SimpleJob({ // automaticallt add the controls for a new dataset const controls = modelArch?.controls ?? []; newDataset.controls = controls; + // arch dataset defaults (datasets[x].*) apply to added datasets too, not just at arch switch + for (const key in modelArch?.defaults ?? {}) { + const marker = 'datasets[x].'; + const idx = key.indexOf(marker); + if (idx !== -1) { + (newDataset as any)[key.slice(idx + marker.length)] = modelArch!.defaults![key][0]; + } + } setJobConfig([...jobConfig.config.process[0].datasets, newDataset], 'config.process[0].datasets'); }} className="w-full px-4 py-2 bg-gray-700 hover:bg-gray-600 rounded-lg transition-colors" diff --git a/ui/src/app/jobs/new/options.tsx b/ui/src/app/jobs/new/options.tsx index 74b3e9e..0d6a7e3 100644 --- a/ui/src/app/jobs/new/options.tsx +++ b/ui/src/app/jobs/new/options.tsx @@ -1392,6 +1392,8 @@ export const modelArchs: ModelArch[] = [ 'config.process[0].model.qtype': ['qfloat8', 'qfloat8'], 'config.process[0].sample': [defaultYue2SampleConfig, defaultSampleConfig], 'config.process[0].datasets[x].cache_latents_to_disk': [true, true], + // blank captions break lyric following; the AR must always see the prefix + 'config.process[0].datasets[x].caption_dropout_rate': [0, 0.05], }, // native YuE2 prompt: style text, a [Lyrics] line, the lyrics hasMultiLinePrompts: true,