@@ -17,12 +17,12 @@ import {
1717 inputAnnotationFileTypes , listFileTypes , inputAnnotationTypes ,
1818} from 'dive-common/constants' ;
1919import {
20- DesktopJob , DesktopMetadata , JsonMeta , NvidiaSmiReply ,
20+ DesktopJob , DesktopMetadata , NvidiaSmiReply ,
2121 RunPipeline , RunTraining , ExportTrainedPipeline , ExportDatasetArgs , ExportConfigurationArgs ,
22- DesktopMediaImportResponse ,
22+ DesktopMediaImportResponse , ConversionArgs ,
2323} from 'platform/desktop/constants' ;
2424
25- import { pipelineJobQueue } from './store/jobs' ;
25+ import { gpuJobQueue } from './store/jobs' ;
2626
2727/**
2828 * Native functions that run entirely in the renderer
@@ -98,14 +98,6 @@ async function runPipeline(itemId: string, pipeline: Pipe): Promise<DesktopJob>
9898 return ipcRenderer . invoke ( 'run-pipeline' , args ) ;
9999}
100100
101- function queuePipeline ( itemId : string , pipeline : Pipe ) : void {
102- const args : RunPipeline = {
103- pipeline,
104- datasetId : itemId ,
105- } ;
106- pipelineJobQueue . enqueue ( args ) ;
107- }
108-
109101async function exportTrainedPipeline ( path : string , pipeline : Pipe ) : Promise < DesktopJob > {
110102 const args : ExportTrainedPipeline = {
111103 path,
@@ -138,6 +130,38 @@ async function runTraining(
138130 return ipcRenderer . invoke ( 'run-training' , args ) ;
139131}
140132
133+ function queueTraining (
134+ folderIds : string [ ] ,
135+ pipelineName : string ,
136+ config : string ,
137+ annotatedFramesOnly : boolean ,
138+ labelText ?: string ,
139+ fineTuneModel ?: {
140+ name : string ;
141+ type : string ;
142+ path ?: string ;
143+ folderId ?: string ;
144+ } ,
145+ ) : void {
146+ const args : RunTraining = {
147+ datasetIds : folderIds ,
148+ pipelineName,
149+ trainingConfig : config ,
150+ annotatedFramesOnly,
151+ labelText,
152+ fineTuneModel,
153+ } ;
154+ gpuJobQueue . enqueue ( args ) ;
155+ }
156+
157+ function queuePipeline ( itemId : string , pipeline : Pipe ) : void {
158+ const args : RunPipeline = {
159+ pipeline,
160+ datasetId : itemId ,
161+ } ;
162+ gpuJobQueue . enqueue ( args ) ;
163+ }
164+
141165async function deleteTrainedPipeline ( pipeline : Pipe ) : Promise < void > {
142166 return ipcRenderer . invoke ( 'delete-trained-pipeline' , pipeline ) ;
143167}
@@ -170,10 +194,15 @@ function importAnnotationFile(id: string, path: string, _htmlFile = undefined, a
170194 } ) ;
171195}
172196
173- function finalizeImport ( args : DesktopMediaImportResponse ) : Promise < JsonMeta > {
197+ function finalizeImport ( args : DesktopMediaImportResponse ) : Promise < ConversionArgs > {
198+ // Have this return JsonMeta as well as everything needed to start a job?
174199 return ipcRenderer . invoke ( 'finalize-import' , args ) ;
175200}
176201
202+ async function convert ( args : ConversionArgs ) : Promise < DesktopJob > {
203+ return ipcRenderer . invoke ( 'convert' , args ) ;
204+ }
205+
177206async function exportDataset ( id : string , exclude : boolean , typeFilter : readonly string [ ] , type ?: 'csv' | 'json' ) : Promise < string > {
178207 const location = await dialog . showSaveDialog ( {
179208 title : 'Export Dataset' ,
@@ -262,6 +291,7 @@ export {
262291 exportDataset ,
263292 exportConfiguration ,
264293 finalizeImport ,
294+ convert ,
265295 importMedia ,
266296 bulkImportMedia ,
267297 deleteDataset ,
@@ -271,4 +301,5 @@ export {
271301 openLink ,
272302 nvidiaSmi ,
273303 queuePipeline ,
304+ queueTraining ,
274305} ;
0 commit comments