(dispatch: TaskEventDispatcher, model: MarketModel)
| 15 | * @param model |
| 16 | */ |
| 17 | export async function installModel(dispatch: TaskEventDispatcher, model: MarketModel): Promise<boolean> { |
| 18 | const modelPath = getModelPath(model.type, model.save_path, model.filename); |
| 19 | if (fs.existsSync(modelPath)) { |
| 20 | dispatch({ |
| 21 | message: `${modelPath} already installed` |
| 22 | }); |
| 23 | return true; |
| 24 | } |
| 25 | try { |
| 26 | console.log("download info", model); |
| 27 | await downloadUrlPro(dispatch, model.download_url, modelPath, model.sha256) |
| 28 | dispatch({ |
| 29 | type: ModelDownloadChannelEvents.onModelDownloadSuccess, |
| 30 | }) |
| 31 | modelManager.updateModelMeta([model]); |
| 32 | return true; |
| 33 | } catch(err: any) { |
| 34 | console.log(err); |
| 35 | dispatch({ |
| 36 | type: ModelDownloadChannelEvents.onModelDownloadFailed, |
| 37 | error: err.message, |
| 38 | }) |
| 39 | return false; |
| 40 | } |
| 41 | } |
| 42 | |
| 43 | /** |
| 44 | * Download a default model for user |
no test coverage detected