From 25e150b37087b362bbc59ea9761bc065de27c6b9 Mon Sep 17 00:00:00 2001 From: Jaret Burkett Date: Wed, 7 May 2025 12:41:51 -0600 Subject: [PATCH] Added support for Flex.2 in the UI --- ui/src/app/jobs/new/SimpleJob.tsx | 32 +++++-- ui/src/app/jobs/new/jobConfig.ts | 2 + ui/src/app/jobs/new/options.ts | 147 +++++++----------------------- ui/src/app/jobs/new/page.tsx | 5 +- ui/src/types.ts | 2 + 5 files changed, 62 insertions(+), 126 deletions(-) diff --git a/ui/src/app/jobs/new/SimpleJob.tsx b/ui/src/app/jobs/new/SimpleJob.tsx index bb422e43..b8ab6b93 100644 --- a/ui/src/app/jobs/new/SimpleJob.tsx +++ b/ui/src/app/jobs/new/SimpleJob.tsx @@ -1,6 +1,6 @@ 'use client'; - -import { options, modelArchs, isVideoModelFromArch } from './options'; +import { useMemo } from 'react'; +import { modelArchs, ModelArch } from './options'; import { defaultDatasetConfig } from './jobConfig'; import { JobConfig } from '@/types'; import { objectCopy } from '@/utils/basic'; @@ -33,7 +33,13 @@ export default function SimpleJob({ gpuList, datasetOptions, }: Props) { - const isVideoModel = isVideoModelFromArch(jobConfig.config.process[0].model.arch); + + const modelArch = useMemo(() => { + return modelArchs.find(a => a.name === jobConfig.config.process[0].model.arch) as ModelArch; + }, [jobConfig.config.process[0].model.arch]); + + const isVideoModel = !!modelArch?.isVideoModel; + return ( <>
@@ -91,6 +97,16 @@ export default function SimpleJob({ } // set new model setJobConfig(value, 'config.process[0].model.arch'); + + // update controls for datasets + const controls = newArch?.controls ?? []; + const datasets = jobConfig.config.process[0].datasets.map(dataset => { + const newDataset = objectCopy(dataset); + newDataset.controls = controls; + return newDataset; + } + ); + setJobConfig(datasets, 'config.process[0].datasets'); }} options={ modelArchs @@ -445,12 +461,16 @@ export default function SimpleJob({ ))}