63 lines
2.2 KiB
TypeScript
63 lines
2.2 KiB
TypeScript
import * as fs from 'fs';
|
|
import * as path from 'path';
|
|
import * as progress from 'cli-progress';
|
|
import { imageDescription } from '../sources/agent/imageDescription';
|
|
import { imageBlurry } from '../sources/agent/imageBlurry';
|
|
|
|
(async () => {
|
|
|
|
let imageTests: { path: string, image: Buffer, outputs: string }[] = [];
|
|
|
|
// Read all directories
|
|
let allFiles = fs.readdirSync(__dirname);
|
|
for (let f of allFiles) {
|
|
if (fs.statSync(path.join(__dirname, f)).isDirectory()) {
|
|
console.log(`Run series ${f}`);
|
|
let files = fs.readdirSync(path.join(__dirname, f));
|
|
for (let s of files) {
|
|
if (s.endsWith('.jpeg')) {
|
|
let image = fs.readFileSync(path.join(__dirname, f, s));
|
|
imageTests.push({ path: path.join(__dirname, f, s).replace('.jpeg', '.md'), image, outputs: '' });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
async function runTest(title: string, test: (img: Uint8Array) => Promise<string>) {
|
|
console.log(`Run ${title}`);
|
|
let bar = new progress.SingleBar({}, progress.Presets.shades_classic);
|
|
bar.start(imageTests.length, 0);
|
|
for (let i = 0; i < imageTests.length; i++) {
|
|
let o = await test(imageTests[i].image);
|
|
imageTests[i].outputs += '####' + title + '####\n';
|
|
imageTests[i].outputs += o + '\n';
|
|
bar.increment();
|
|
}
|
|
bar.stop();
|
|
}
|
|
|
|
// Run tests
|
|
await runTest('Description', async (img) => {
|
|
return await imageDescription(img);
|
|
});
|
|
await runTest('Description (llava-llama3)', async (img) => {
|
|
return await imageDescription(img, 'llava-llama3');
|
|
});
|
|
await runTest('Description (llava:34b-v1.6)', async (img) => {
|
|
return await imageDescription(img, 'llava:34b-v1.6');
|
|
});
|
|
await runTest('Description (moondream:1.8b-v2-fp16)', async (img) => {
|
|
return await imageDescription(img, 'moondream:1.8b-v2-fp16');
|
|
});
|
|
|
|
// console.log(`Run blurry tests`);
|
|
// for (let i of imageTests) {
|
|
// i.outputs += '####Blurry####\n';
|
|
// i.outputs += await imageBlurry(i.image) + '\n';
|
|
// }
|
|
|
|
// Write outputs
|
|
for (let i of imageTests) {
|
|
fs.writeFileSync(i.path, i.outputs);
|
|
}
|
|
})(); |