[BugFix] Remove outputs.animated in queueStore (#2740)

This commit is contained in:
Chenlei Hu
2025-02-26 16:04:01 -05:00
committed by GitHub
parent 1c408d2f6a
commit bdfa2efa50
2 changed files with 51 additions and 1 deletions

View File

@@ -142,7 +142,15 @@ export class TaskItemImpl {
this.taskType = taskType
this.prompt = prompt
this.status = status
this.outputs = outputs ?? {}
// Remove animated outputs from the outputs object
// outputs.animated is an array of boolean values that indicates if the images
// array in the result are animated or not.
// The queueStore does not use this information.
// It is part of the legacy API response. We should redesign the backend API.
// https://github.com/Comfy-Org/ComfyUI_frontend/issues/2739
this.outputs = _.mapValues(outputs ?? {}, (nodeOutputs) =>
_.omit(nodeOutputs, 'animated')
)
this.flatOutputs = flatOutputs ?? this.calculateFlatOutputs()
}

View File

@@ -0,0 +1,42 @@
// @ts-strict-ignore
import { TaskItemImpl } from '@/stores/queueStore'
describe('TaskItemImpl', () => {
it('should remove animated property from outputs during construction', () => {
const taskItem = new TaskItemImpl(
'History',
[0, 'prompt-id', {}, {}, []],
{ status_str: 'success', messages: [] },
{
'node-1': {
images: [{ filename: 'test.png', type: 'output', subfolder: '' }],
animated: [false]
}
}
)
// Check that animated property was removed
expect('animated' in taskItem.outputs['node-1']).toBe(false)
// Verify other output properties remain intact
expect(taskItem.outputs['node-1'].images).toBeDefined()
expect(taskItem.outputs['node-1'].images[0].filename).toBe('test.png')
})
it('should handle outputs without animated property', () => {
const taskItem = new TaskItemImpl(
'History',
[0, 'prompt-id', {}, {}, []],
{ status_str: 'success', messages: [] },
{
'node-1': {
images: [{ filename: 'test.png', type: 'output', subfolder: '' }]
}
}
)
// Verify outputs are preserved when no animated property exists
expect(taskItem.outputs['node-1'].images).toBeDefined()
expect(taskItem.outputs['node-1'].images[0].filename).toBe('test.png')
})
})