|
<!DOCTYPE html> |
|
<html lang="en"> |
|
|
|
<head> |
|
<meta charset="UTF-8" /> |
|
<link rel="stylesheet" href="style.css" /> |
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
|
<title>Onnxruntime - Qwen2-VL</title> |
|
<script type="importmap"> |
|
{ |
|
"imports": { |
|
"sharp": "/noop.js", |
|
"fs": "/noop.js", |
|
"path": "/noop.js", |
|
"url": "/noop.js", |
|
"onnxruntime-web/webgpu": "https://cdn.jsdelivr.net/npm/onnxruntime-web@1.20.0/dist/ort.webgpu.mjs" |
|
} |
|
} |
|
</script> |
|
</head> |
|
|
|
<body> |
|
<h1>Onnxruntime - Qwen2-VL</h1> |
|
<div style="text-align: center"><strong>Demo of <a href="https://huggingface.co/pdufour/Qwen2-VL-2B-Instruct-ONNX-Q4-F16">https://huggingface.co/pdufour/Qwen2-VL-2B-Instruct-ONNX-Q4-F16</a></strong></div> |
|
<div style="text-align: center">Everything runs directly in your browser (no server required)</div> |
|
<form id="form"> |
|
<label id="status">Loading model...</label> |
|
<label id="container" for="upload"> |
|
<div id="thumb"> |
|
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg"> |
|
<path fill="#000" d="M3.5 24.3a3 3 0 0 1-1.9-.8c-.5-.5-.8-1.2-.8-1.9V2.9c0-.7.3-1.3.8-1.9.6-.5 1.2-.7 2-.7h18.6c.7 0 1.3.2 1.9.7.5.6.7 1.2.7 2v18.6c0 .7-.2 1.4-.7 1.9a3 3 0 0 1-2 .8H3.6Zm0-2.7h18.7V2.9H3.5v18.7Zm2.7-2.7h13.3c.3 0 .5 0 .6-.3v-.7l-3.7-5a.6.6 0 0 0-.6-.2c-.2 0-.4 0-.5.3l-3.5 4.6-2.4-3.3a.6.6 0 0 0-.6-.3c-.2 0-.4.1-.5.3l-2.7 3.6c-.1.2-.2.4 0 .7.1.2.3.3.6.3Z"></path> |
|
</svg> |
|
Click to upload image |
|
<label id="example">(or try example)</label> |
|
</div> |
|
<div> |
|
<input type="text" placeholder="Add your prompt and hit enter" disabled> |
|
</div> |
|
</label> |
|
<input id="upload" type="file" accept="image/*" disabled /> |
|
<div id="llm-output"></div> |
|
</form> |
|
|
|
<script src="index.js" type="module"> |
|
document.addEventListener('DOMContentLoaded', async () => { |
|
await import('./index.js'); |
|
}); |
|
</script> |
|
</body> |
|
|
|
</html> |