From 1c06a725369c6b98a2c5dab2d1b29fff2ffd8ee8 Mon Sep 17 00:00:00 2001
From: Jonas Loos <33965649+JonasLoos@users.noreply.github.com>
Date: Mon, 11 Mar 2024 23:18:57 +0100
Subject: [PATCH] split representations by stesps, i.e. fix #1
---
generate-reprs.ipynb | 5 ++++-
index.html | 13 +++++-------
worker/pkg/worker.js | 20 +++++++-----------
worker/pkg/worker_bg.wasm | Bin 80056 -> 66749 bytes
worker/src/lib.rs | 43 ++++++++++++++++----------------------
worker/webworker.js | 8 +++----
6 files changed, 38 insertions(+), 51 deletions(-)
diff --git a/generate-reprs.ipynb b/generate-reprs.ipynb
index 46d419a..5935f40 100644
--- a/generate-reprs.ipynb
+++ b/generate-reprs.ipynb
@@ -13,7 +13,7 @@
"metadata": {},
"outputs": [],
"source": [
- "from diffusers import AutoPipelineForText2Image, AutoencoderKL\n",
+ "from diffusers import AutoPipelineForText2Image\n",
"import torch\n",
"import numpy as np\n",
"from pathlib import Path\n",
@@ -154,6 +154,9 @@
"\n",
" # save representations\n",
" for pos, reprs in representations.items():\n",
+ " for j, repr in enumerate(reprs, 0):\n",
+ " with open(save_path / f'repr-{pos}-{j}.bin', 'wb') as f:\n",
+ " f.write(np.array(repr, dtype=np.float16).tobytes())\n",
" with open(save_path / f'repr-{pos}.bin', 'wb') as f:\n",
" f.write(np.array(np.stack(reprs), dtype=np.float16).tobytes())\n",
"\n",
diff --git a/index.html b/index.html
index def357c..8260f1e 100644
--- a/index.html
+++ b/index.html
@@ -224,13 +224,13 @@
H-Space similarity explorer
concept.image_ctx = concept.image_canvas.getContext('2d');
concept.tile_ctx = concept.tile_canvas.getContext('2d');
- concept.getUrl = () => `${window.location.pathname.split('/').slice(0, -1).join('/')}/representations/${current_model.short}/${concept.name}/repr-${current_position}.bin`;
+ concept.getUrl = () => `${window.location.pathname.split('/').slice(0, -1).join('/')}/representations/${current_model.short}/${concept.name}/repr-${current_position}-${concept.step-1}.bin`;
// helper function to load the representation
const getRepr = () => {
concept.repr_loading_started = Date.now();
const { steps, n, m } = current_model.getShapes();
- callWasm('fetch_repr', { url: concept.getUrl(), steps, n, m })
+ callWasm('fetch_repr', { url: concept.getUrl(), n, m })
.then(() => {
console.log(`Fetched repr for ${concept.name} from ${concept.getUrl()}`);
updateCanvasesWithLastClicked();
@@ -310,11 +310,8 @@ H-Space similarity explorer
// slider event listener
slider.addEventListener('input', event => {
- const value = event.target.value;
- slider_value.textContent = value;
- concept.step = value;
- concept.img.src = `representations/${current_model.short}/${concept.name}/${concept.step}.jpg`;
- updateCanvasesWithLastClicked();
+ concept.step = event.target.value;
+ concept.update();
});
// concept name select event listener
@@ -432,7 +429,7 @@ H-Space similarity explorer
img_ctx.fillRect(last_clicked.col * tile_size, last_clicked.row * tile_size, tile_size, tile_size);
}
// update tile canvas
- callWasm('calc_similarities', { func, repr1_str: base_concept.getUrl(), repr2_str: concept.getUrl(), step1: base_concept.step-1, step2: concept.step-1, row, col })
+ callWasm('calc_similarities', { func, repr1_str: base_concept.getUrl(), repr2_str: concept.getUrl(), row, col })
.then((similarities) => {
if (similarities === 'loading') {
drawError(concept, 'Loading...');
diff --git a/worker/pkg/worker.js b/worker/pkg/worker.js
index 6ee050c..c03bed2 100644
--- a/worker/pkg/worker.js
+++ b/worker/pkg/worker.js
@@ -228,13 +228,11 @@ function getArrayF32FromWasm0(ptr, len) {
* @param {string} func
* @param {string} repr1_str
* @param {string} repr2_str
-* @param {number} step1
-* @param {number} step2
* @param {number} row
* @param {number} col
* @returns {Float32Array}
*/
-export function calc_similarities(func, repr1_str, repr2_str, step1, step2, row, col) {
+export function calc_similarities(func, repr1_str, repr2_str, row, col) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
const ptr0 = passStringToWasm0(func, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
@@ -243,7 +241,7 @@ export function calc_similarities(func, repr1_str, repr2_str, step1, step2, row,
const len1 = WASM_VECTOR_LEN;
const ptr2 = passStringToWasm0(repr2_str, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len2 = WASM_VECTOR_LEN;
- wasm.calc_similarities(retptr, ptr0, len0, ptr1, len1, ptr2, len2, step1, step2, row, col);
+ wasm.calc_similarities(retptr, ptr0, len0, ptr1, len1, ptr2, len2, row, col);
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
@@ -261,15 +259,14 @@ export function calc_similarities(func, repr1_str, repr2_str, step1, step2, row,
/**
* @param {string} url
-* @param {number} steps
* @param {number} n
* @param {number} m
* @returns {Promise}
*/
-export function fetch_repr(url, steps, n, m) {
+export function fetch_repr(url, n, m) {
const ptr0 = passStringToWasm0(url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len0 = WASM_VECTOR_LEN;
- const ret = wasm.fetch_repr(ptr0, len0, steps, n, m);
+ const ret = wasm.fetch_repr(ptr0, len0, n, m);
return takeObject(ret);
}
@@ -280,7 +277,7 @@ function handleError(f, args) {
wasm.__wbindgen_exn_store(addHeapObject(e));
}
}
-function __wbg_adapter_57(arg0, arg1, arg2, arg3) {
+function __wbg_adapter_55(arg0, arg1, arg2, arg3) {
wasm.wasm_bindgen__convert__closures__invoke2_mut__h493f10fe887c5e99(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
}
@@ -381,9 +378,6 @@ function __wbg_get_imports() {
imports.wbg.__wbg_log_79d3c56888567995 = function(arg0) {
console.log(getObject(arg0));
};
- imports.wbg.__wbg_warn_2a68e3ab54e55f28 = function(arg0) {
- console.warn(getObject(arg0));
- };
imports.wbg.__wbg_newwithstrandinit_11fbc38beb4c26b0 = function() { return handleError(function (arg0, arg1, arg2) {
const ret = new Request(getStringFromWasm0(arg0, arg1), getObject(arg2));
return addHeapObject(ret);
@@ -456,7 +450,7 @@ function __wbg_get_imports() {
const a = state0.a;
state0.a = 0;
try {
- return __wbg_adapter_57(a, state0.b, arg0, arg1);
+ return __wbg_adapter_55(a, state0.b, arg0, arg1);
} finally {
state0.a = a;
}
@@ -512,7 +506,7 @@ function __wbg_get_imports() {
const ret = wasm.memory;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper274 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper266 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 45, __wbg_adapter_20);
return addHeapObject(ret);
};
diff --git a/worker/pkg/worker_bg.wasm b/worker/pkg/worker_bg.wasm
index c76407606005c259e4dd6aef41026171f326aeea..78ce693bf99ef1dcf1b7c58b4a65dd8f13322652 100644
GIT binary patch
literal 66749
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
literal 80056
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