diff --git a/browser_tests/interaction.spec.ts b/browser_tests/interaction.spec.ts index f026686a6b..1863c73f07 100644 --- a/browser_tests/interaction.spec.ts +++ b/browser_tests/interaction.spec.ts @@ -402,3 +402,23 @@ test.describe('Load workflow', () => { await expect(comfyPage.canvas).toHaveScreenshot('string_node_id.png') }) }) + +test.describe('Load duplicate workflow', () => { + test.beforeEach(async ({ comfyPage }) => { + await comfyPage.setSetting('Comfy.UseNewMenu', 'Floating') + }) + + test.afterEach(async ({ comfyPage }) => { + await comfyPage.setSetting('Comfy.UseNewMenu', 'Disabled') + }) + + test('A workflow can be loaded multiple times in a row', async ({ + comfyPage + }) => { + await comfyPage.loadWorkflow('single_ksampler') + await comfyPage.menu.workflowsTab.open() + await comfyPage.menu.workflowsTab.newBlankWorkflowButton.click() + await comfyPage.loadWorkflow('single_ksampler') + expect(await comfyPage.getGraphNodesCount()).toBe(1) + }) +}) diff --git a/src/scripts/ui.ts b/src/scripts/ui.ts index d06f9b319e..8367da2196 100644 --- a/src/scripts/ui.ts +++ b/src/scripts/ui.ts @@ -382,8 +382,9 @@ export class ComfyUI { accept: '.json,image/png,.latent,.safetensors,image/webp,audio/flac', style: { display: 'none' }, parent: document.body, - onchange: () => { - app.handleFile(fileInput.files[0]) + onchange: async () => { + await app.handleFile(fileInput.files[0]) + fileInput.value = '' } })