Merge pull request #2495 from Risenafis/fix-change-model Fix transformers model changes
Signed| @@ -94,8 +94,12 @@ function getModelForTask(task) { | ||
| 94 | 94 | */ |
| 95 | 95 | async function getPipeline(task, forceModel = '') { |
| 96 | 96 | if (tasks[task].pipeline) { |
| 97 | + if (forceModel === '' || tasks[task].currentModel === forceModel) { | |
| 97 | 98 | return tasks[task].pipeline; |
| 98 | 99 | } |
| 100 | + console.log('Disposing transformers.js pipeline for for task', task, 'with model', tasks[task].currentModel); | |
| 101 | + await tasks[task].pipeline.dispose(); | |
| 102 | + } | |
| 99 | 103 | |
| 100 | 104 | const cache_dir = path.join(process.cwd(), 'cache'); |
| 101 | 105 | const model = forceModel || getModelForTask(task); |
| @@ -103,6 +107,7 @@ async function getPipeline(task, forceModel = '') { | ||
| 103 | 107 | console.log('Initializing transformers.js pipeline for task', task, 'with model', model); |
| 104 | 108 | const instance = await pipeline(task, model, { cache_dir, quantized: tasks[task].quantized ?? true, local_files_only: localOnly }); |
| 105 | 109 | tasks[task].pipeline = instance; |
| 110 | + tasks[task].currentModel = model; | |
| 106 | 111 | return instance; |
| 107 | 112 | } |
| 108 | 113 | |