vork by Voyager
An agent writes a scene as code, renders it on the GPU, looks at the result and revises the code. Source-available and free during the research preview.
翻訳待ち
Remove backgrounds, upscale photos with AI, extract English and Nepali text with OCR, and edit, sign, merge and convert PDFs. Free, private, no install.
翻訳待ち
デザインTypeScript · PythonGitHub @AashiQMahato接続状況の再確認が必要です所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
All-in-one image, text and PDF tools in your browser: AI background removal, upscaling, OCR for English and Nepali, and PDF editing, signing and conversion. Free and private: no install, and files are deleted after processing.
翻訳待ち
Loading the full README.
Read the full README ↗Free online image, PDF and text tools in one app: remove backgrounds, upscale with AI, make passport photos, read text from images (English and Nepali), and merge, split, edit, sign and convert PDFs. No sign-up, and uploaded files are deleted automatically.
Live site: https://imagetools-358n.onrender.com
| Document tools | Background remover |
|---|---|
| Merge PDF | Text editor |
Every feature runs in one of three places:
| Feature | Browser | Node backend | Python |
|---|---|---|---|
| Image tools | |||
| Photo Editor (light, colour, filters, resize) | Canvas | — | — |
| Crop (straighten, ratios, rotate/flip) | Canvas | — | — |
| Image Compressor | Upload, preview | sharp | — |
| Background Remover | Upload, preview | Queue | BiRefNet-Massive |
| AI Upscaler (2× / 4×) | Upload, preview | upscayl-bin (needs a GPU) | — |
| AI Retouch | Brush and mask | Built-in engine (sharp) | LaMa (optional, better results) |
| Watermark Remover | Brush, found areas | Removal via retouch | Detection (OpenCV) |
| Passport & MRP Photo | Presets, crop, sheet | Crop, resize, print sheet | Face detection, background, HEIC |
| OCR Editor | Editor | tesseract (fallback) | PaddleOCR |
| PDF tools | |||
| PDF Viewer | pdf.js | — | — |
| Merge / Split / Organize / Rotate PDF | pdf.js thumbnails | pdf-lib | — |
| Images to PDF | Layout options | pdf-lib + sharp | — |
| Add Watermark / Page Numbers | Live preview | pdf-lib | — |
| Edit PDF / Sign PDF | Drawing layer, signature pad | pdf-lib | — |
| PDF to Images | Page picker | Jobs, ZIP download | PDFium |
| Compress PDF | Presets | Jobs | qpdf (pikepdf) |
| Protect / Unlock PDF | Password field | Jobs | pikepdf |
| PDF to Text | Result, export | Jobs, text cleanup | PDF text + PaddleOCR |
| PDF to Word | Preview, .docx download (original layout, or as edited) | Jobs, layout | pdfplumber + python-docx, PaddleOCR / Tesseract for scans |
| Text tools | |||
| Text Editor, Text Cleaner, Case Converter, Word Counter | Tiptap | — | — |
| Whiteboard | |||
Whiteboard (/whiteboard) | Excalidraw editor, autosave in IndexedDB | — | — |
| Part | Language | Main tools |
|---|---|---|
| Frontend | TypeScript, CSS | React 19, Vite, Tailwind CSS 4, Untitled UI, React Router, Zustand, pdf.js, Tiptap |
| Backend | TypeScript | Node.js 20.6+, Express 5, sharp, pdf-lib, Multer, Helmet |
| AI services | Python 3.11–3.13 | FastAPI, PyTorch (BiRefNet-Massive), PaddleOCR, OpenCV, PDFium, pikepdf |
studio_tools/
├── frontend/ React app (Vite)
│ └── src/
│ ├── pages/ one folder per page (Home, Pdf, Text, Ocr, …)
│ ├── features/ tool logic (editor, documents, pdf-canvas, ocr, text, …)
│ ├── components/ ui/ (Untitled UI), layout/, common/, landing/
│ ├── lib/ api client, constants (routes), seo
│ └── routes/ React Router config
├── backend/ Express API
│ ├── src/
│ │ ├── routes/ all /api routes (routes/index.ts)
│ │ ├── controllers/ HTTP layer only
│ │ ├── services/ pdf/, compression/, retouch/, ocr/, photo-generator/, …
│ │ └── config/env.ts every setting and its default
│ ├── python/image_service/ image + PDF service (BiRefNet-Massive, OpenCV, PDFium, pikepdf)
│ ├── python/ocr_service/ OCR service (PaddleOCR)
│ └── vendor/upscayl/ upscaler binary + models (installed by setup, git-ignored)
├── scripts/ setup-ml.sh, check-processing.sh
└── docs/screenshots/ images used in this README
The browser only talks to our backend (frontend → /api/* → backend → engine). It never sees API keys or calls outside services.
Requires Node.js 20.6+. The AI tools also need Python 3.11–3.13. The upscaler needs a Vulkan-capable GPU; Apple Silicon works.
npm install # root: installs concurrently
npm run install:all # frontend + backend packages
cp backend/.env.example backend/.env
scripts/setup-ml.sh # optional: Python services, models, upscaler (asks before downloading)
scripts/check-processing.sh # optional: checks which engines are ready
npm run dev # backend on :5000, frontend on http://localhost:5173
In development, Vite forwards /api to the backend, so no CORS setup is needed.
macOS: AirPlay Receiver uses port 5000. Turn it off (System Settings → General → AirDrop & Handoff), or set
PORT=5050inbackend/.envandAPI_PROXY_TARGET=http://localhost:5050infrontend/.env.
| Where | Command | What it does |
|---|---|---|
| root | npm run dev | Runs backend and frontend together |
| root | npm run build | Builds both apps |
frontend | npm run build | Type-checks, builds to dist/, writes SEO pages |
frontend | npm run lint | Lints with oxlint |
backend | npm run dev | API with hot reload (tsx) |
backend | npm run build / npm start | Compiles to dist/ / runs it |
backend | npm run typecheck | Type-checks without building |
The live site runs as two Render services:
This is the beginning of the README. Read the rest at the original. Read the full README ↗