commit
9c575ecaa4
|
@ -1,6 +1,6 @@
|
||||||
# CHANGELOG
|
# CHANGELOG
|
||||||
|
|
||||||
## v1.6.61
|
## v1.6.62
|
||||||
|
|
||||||
### New
|
### New
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "ente",
|
"name": "ente",
|
||||||
"productName": "ente",
|
"productName": "ente",
|
||||||
"version": "1.6.61",
|
"version": "1.6.62",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Desktop client for ente.io",
|
"description": "Desktop client for ente.io",
|
||||||
"main": "app/main.js",
|
"main": "app/main.js",
|
||||||
|
|
|
@ -267,11 +267,18 @@ export async function computeONNXImageEmbedding(
|
||||||
): Promise<Float32Array> {
|
): Promise<Float32Array> {
|
||||||
try {
|
try {
|
||||||
const imageSession = await getOnnxImageSession();
|
const imageSession = await getOnnxImageSession();
|
||||||
|
const t1 = Date.now();
|
||||||
const rgbData = await getRGBData(inputFilePath);
|
const rgbData = await getRGBData(inputFilePath);
|
||||||
const feeds = {
|
const feeds = {
|
||||||
input: new ort.Tensor('float32', rgbData, [1, 3, 224, 224]),
|
input: new ort.Tensor('float32', rgbData, [1, 3, 224, 224]),
|
||||||
};
|
};
|
||||||
|
const t2 = Date.now();
|
||||||
const results = await imageSession.run(feeds);
|
const results = await imageSession.run(feeds);
|
||||||
|
log.info(
|
||||||
|
`onnx image embedding time: ${Date.now() - t1} ms (prep:${
|
||||||
|
t2 - t1
|
||||||
|
} ms, extraction: ${Date.now() - t2} ms)`
|
||||||
|
);
|
||||||
const imageEmbedding = results['output'].data; // Float32Array
|
const imageEmbedding = results['output'].data; // Float32Array
|
||||||
return normalizeEmbedding(imageEmbedding);
|
return normalizeEmbedding(imageEmbedding);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
@ -336,12 +343,19 @@ export async function computeONNXTextEmbedding(
|
||||||
): Promise<Float32Array> {
|
): Promise<Float32Array> {
|
||||||
try {
|
try {
|
||||||
const imageSession = await getOnnxTextSession();
|
const imageSession = await getOnnxTextSession();
|
||||||
|
const t1 = Date.now();
|
||||||
const tokenizer = getTokenizer();
|
const tokenizer = getTokenizer();
|
||||||
const tokenizedText = Int32Array.from(tokenizer.encodeForCLIP(text));
|
const tokenizedText = Int32Array.from(tokenizer.encodeForCLIP(text));
|
||||||
const feeds = {
|
const feeds = {
|
||||||
input: new ort.Tensor('int32', tokenizedText, [1, 77]),
|
input: new ort.Tensor('int32', tokenizedText, [1, 77]),
|
||||||
};
|
};
|
||||||
|
const t2 = Date.now();
|
||||||
const results = await imageSession.run(feeds);
|
const results = await imageSession.run(feeds);
|
||||||
|
log.info(
|
||||||
|
`onnx text embedding time: ${Date.now() - t1} ms (prep:${
|
||||||
|
t2 - t1
|
||||||
|
} ms, extraction: ${Date.now() - t2} ms)`
|
||||||
|
);
|
||||||
const textEmbedding = results['output'].data; // Float32Array
|
const textEmbedding = results['output'].data; // Float32Array
|
||||||
return normalizeEmbedding(textEmbedding);
|
return normalizeEmbedding(textEmbedding);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
|
@ -200,7 +200,7 @@ export async function buildMenuBar(mainWindow: BrowserWindow): Promise<Menu> {
|
||||||
},
|
},
|
||||||
{ type: 'separator' },
|
{ type: 'separator' },
|
||||||
{
|
{
|
||||||
label: 'View Crash Reports',
|
label: 'View crash reports',
|
||||||
click: () => {
|
click: () => {
|
||||||
shell.openPath(app.getPath('crashDumps'));
|
shell.openPath(app.getPath('crashDumps'));
|
||||||
},
|
},
|
||||||
|
|
2
ui
2
ui
|
@ -1 +1 @@
|
||||||
Subproject commit 9fbcf55e4e60e3a6a6b388c7ed897599b9aac06d
|
Subproject commit b6c041b4aa2a0bbe0a3d972faca556c7524335ad
|
Loading…
Reference in a new issue