diff --git a/js/layer_system_final.js b/js/layer_system_final.js index 697a6d6..0711dec 100644 --- a/js/layer_system_final.js +++ b/js/layer_system_final.js @@ -144,7 +144,7 @@ app.registerExtension({ this.rotationOffsetAngle = 0.0; this.toolbar = new Toolbar(this); - this.size[0] = 1000; + this.size[0] = 800; setTimeout(() => { const anchorWidget = this.widgets.find(w => w.name === "_preview_anchor"); diff --git a/js/mask_manager.js b/js/mask_manager.js index d2c72b4..e6d5e20 100644 --- a/js/mask_manager.js +++ b/js/mask_manager.js @@ -203,6 +203,9 @@ async handleEditMask() { maskUrl.searchParams.set("type", maskDetails.type); maskUrl.searchParams.set("subfolder", maskDetails.subfolder); + const lastUpdate = layerProps.mask_last_update || Date.now(); + maskUrl.searchParams.set("t", lastUpdate); + const rawMaskImage = new Image(); rawMaskImage.crossOrigin = "anonymous"; rawMaskImage.src = maskUrl.href; @@ -306,12 +309,13 @@ async handleEditMask() { rawCanvas.height = returned_image.naturalHeight; rawCanvas.getContext('2d').drawImage(returned_image, 0, 0); const blobToUpload = await new Promise(resolve => rawCanvas.toBlob(resolve, 'image/png')); - const file = new File([blobToUpload], `internal_mask_${activeLayer.index}_${+new Date()}.png`, { type: "image/png" }); + const file = new File([blobToUpload], `internal_mask_${activeLayer.index}.png`, { type: "image/png" }); const finalMaskResponse = await this._uploadFile(file, true); const layerProps = this.node.layer_properties[activeLayer.name]; layerProps.internal_mask_filename = finalMaskResponse.name; layerProps.internal_mask_details = finalMaskResponse; + layerProps.mask_last_update = Date.now(); this.node.updatePropertiesJSON(); const standardizedCanvas = standardizeMaskFromEditor(returned_image); @@ -461,6 +465,10 @@ createContextualToolbar() { url.searchParams.append("filename", details.name); url.searchParams.append("type", details.type); url.searchParams.append("subfolder", details.subfolder); + + const lastUpdate = layerProps.mask_last_update || Date.now(); + url.searchParams.append("t", lastUpdate); + this.updatePreview(url.href); } else { this.updatePreview(null); diff --git a/js/removebg.js b/js/removebg.js index 3227279..ac323f2 100644 --- a/js/removebg.js +++ b/js/removebg.js @@ -8,7 +8,7 @@ export class RemoveBgManager { async performRemoveBg() { const activeLayer = this.maskManager.getActiveLayer(); if (!activeLayer) return; - + const layerIndex = activeLayer.index; const layerName = activeLayer.name; const previewInfo = this.node.preview_data?.[layerName]; const sourceFilename = previewInfo?.filename; @@ -27,7 +27,7 @@ async performRemoveBg() { const response = await fetch("/layersystem/remove_bg", { method: "POST", headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ filename: sourceFilename }), + body: JSON.stringify({ filename: sourceFilename, layer_index_str: String(layerIndex)}), }); if (!response.ok) throw new Error(`Erreur du serveur : ${await response.text()}`);