Upload 4 files
Browse files
index.js
CHANGED
@@ -23,6 +23,7 @@ const EXAMPLE_URL =
|
|
23 |
"https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/corgi.jpg";
|
24 |
|
25 |
// State variables
|
|
|
26 |
let isDecoding = false;
|
27 |
let decodePending = false;
|
28 |
let lastPoints = null;
|
@@ -135,6 +136,7 @@ resetButton.addEventListener("click", () => {
|
|
135 |
imageInput = null;
|
136 |
imageProcessed = null;
|
137 |
imageEmbeddings = null;
|
|
|
138 |
isDecoding = false;
|
139 |
|
140 |
// Clear points and mask (if present)
|
@@ -147,11 +149,13 @@ resetButton.addEventListener("click", () => {
|
|
147 |
statusLabel.textContent = "Ready";
|
148 |
});
|
149 |
|
150 |
-
async function
|
151 |
-
|
152 |
-
|
153 |
statusLabel.textContent = "Extracting image embedding...";
|
154 |
|
|
|
|
|
155 |
// Update UI
|
156 |
imageContainer.style.backgroundImage = `url(${url})`;
|
157 |
uploadButton.style.display = "none";
|
@@ -162,6 +166,7 @@ async function segment(url) {
|
|
162 |
imageEmbeddings = await model.get_image_embeddings(imageProcessed);
|
163 |
|
164 |
statusLabel.textContent = "Embedding extracted!";
|
|
|
165 |
}
|
166 |
|
167 |
// Handle file selection
|
@@ -172,14 +177,14 @@ fileUpload.addEventListener("change", function (e) {
|
|
172 |
const reader = new FileReader();
|
173 |
|
174 |
// Set up a callback when the file is loaded
|
175 |
-
reader.onload = (e2) =>
|
176 |
|
177 |
reader.readAsDataURL(file);
|
178 |
});
|
179 |
|
180 |
example.addEventListener("click", (e) => {
|
181 |
e.preventDefault();
|
182 |
-
|
183 |
});
|
184 |
|
185 |
// Attach hover event to image container
|
|
|
23 |
"https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/corgi.jpg";
|
24 |
|
25 |
// State variables
|
26 |
+
let isEncoding = false;
|
27 |
let isDecoding = false;
|
28 |
let decodePending = false;
|
29 |
let lastPoints = null;
|
|
|
136 |
imageInput = null;
|
137 |
imageProcessed = null;
|
138 |
imageEmbeddings = null;
|
139 |
+
isEncoding = false;
|
140 |
isDecoding = false;
|
141 |
|
142 |
// Clear points and mask (if present)
|
|
|
149 |
statusLabel.textContent = "Ready";
|
150 |
});
|
151 |
|
152 |
+
async function encode(url) {
|
153 |
+
if (isEncoding) return;
|
154 |
+
isEncoding = true;
|
155 |
statusLabel.textContent = "Extracting image embedding...";
|
156 |
|
157 |
+
imageInput = await RawImage.fromURL(url);
|
158 |
+
|
159 |
// Update UI
|
160 |
imageContainer.style.backgroundImage = `url(${url})`;
|
161 |
uploadButton.style.display = "none";
|
|
|
166 |
imageEmbeddings = await model.get_image_embeddings(imageProcessed);
|
167 |
|
168 |
statusLabel.textContent = "Embedding extracted!";
|
169 |
+
isEncoding = false;
|
170 |
}
|
171 |
|
172 |
// Handle file selection
|
|
|
177 |
const reader = new FileReader();
|
178 |
|
179 |
// Set up a callback when the file is loaded
|
180 |
+
reader.onload = (e2) => encode(e2.target.result);
|
181 |
|
182 |
reader.readAsDataURL(file);
|
183 |
});
|
184 |
|
185 |
example.addEventListener("click", (e) => {
|
186 |
e.preventDefault();
|
187 |
+
encode(EXAMPLE_URL);
|
188 |
});
|
189 |
|
190 |
// Attach hover event to image container
|