From d296ec19327b41c8a2d79ad9993bdd83f7720823 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed, 17 Jul 2024 12:21:27 +1000 Subject: [PATCH] fix(ui): do not await creating new canvas image If you await this, it causes a race condition where multiple images are created. --- .../src/features/controlLayers/konva/CanvasControlAdapter.ts | 2 +- .../web/src/features/controlLayers/konva/CanvasInitialImage.ts | 2 +- .../web/src/features/controlLayers/konva/CanvasLayer.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasControlAdapter.ts b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasControlAdapter.ts index 4c29b17eb0..9e701c4275 100644 --- a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasControlAdapter.ts +++ b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasControlAdapter.ts @@ -79,7 +79,7 @@ export class CanvasControlAdapter { didDraw = true; } } else if (!this.image) { - this.image = await new CanvasImage(imageObject); + this.image = new CanvasImage(imageObject); this.updateGroup(true); this.objectsGroup.add(this.image.konvaImageGroup); await this.image.updateImageSource(imageObject.image.name); diff --git a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasInitialImage.ts b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasInitialImage.ts index b3aaf24ef2..7bf8bf77b8 100644 --- a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasInitialImage.ts +++ b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasInitialImage.ts @@ -42,7 +42,7 @@ export class CanvasInitialImage { } if (!this.image) { - this.image = await new CanvasImage(this.initialImageState.imageObject); + this.image = new CanvasImage(this.initialImageState.imageObject); this.objectsGroup.add(this.image.konvaImageGroup); await this.image.update(this.initialImageState.imageObject, true); } else if (!this.image.isLoading && !this.image.isError) { diff --git a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasLayer.ts b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasLayer.ts index d6cb942a18..8f9a227a24 100644 --- a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasLayer.ts +++ b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasLayer.ts @@ -180,7 +180,7 @@ export class CanvasLayer { assert(image instanceof CanvasImage || image === undefined); if (!image) { - image = await new CanvasImage(obj); + image = new CanvasImage(obj); this.objects.set(image.id, image); this.objectsGroup.add(image.konvaImageGroup); await image.updateImageSource(obj.image.name);