Refresh layer panel after matting replaces a layer object

This commit is contained in:
Dariusz L
2026-08-13 21:10:58 +02:00
parent 48cd6c0453
commit c9df359ecd
3 changed files with 9 additions and 0 deletions
+1
View File
@@ -842,6 +842,7 @@ async function createCanvasWidget(node, widget, app) {
delete newLayer.imageId;
canvas.layers[selectedLayerIndex] = newLayer;
canvas.canvasSelection.updateSelection([newLayer]);
canvas.canvasLayersPanel?.onLayersChanged();
// Invalidate processed image cache when layer image changes (matting)
canvas.canvasLayers.invalidateProcessedImageCache(newLayer.id);
canvas.render();
+1
View File
@@ -1046,6 +1046,7 @@ async function createCanvasWidget(node: ComfyNode, widget: any, app: ComfyApp):
canvas.layers[selectedLayerIndex] = newLayer;
canvas.canvasSelection.updateSelection([newLayer]);
canvas.canvasLayersPanel?.onLayersChanged();
// Invalidate processed image cache when layer image changes (matting)
canvas.canvasLayers.invalidateProcessedImageCache(newLayer.id);
@@ -58,3 +58,10 @@ test('CanvasView delegates both model status checks to the shared helper', () =>
assert.doesNotMatch(canvasViewSource, /const modelCheckUrl =/);
assert.doesNotMatch(canvasViewSource, /fetch\(['"]\/matting\/check-model/);
});
test('Matting refreshes the layer panel after replacing a layer object', () => {
assert.match(
canvasViewSource,
/canvas\.layers\[selectedLayerIndex\] = newLayer;\s+canvas\.canvasSelection\.updateSelection\(\[newLayer\]\);\s+canvas\.canvasLayersPanel\?\.onLayersChanged\(\);/,
);
});