mesh-avatar-studio
일러스트를 코딩 에이전트와 로컬 편집기로 2D 메쉬 애니메이션 아바타로 변환
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Quick photo edits in your browser: remove backgrounds, crop, resize, blur out, add text. No ads, no account, nothing uploaded.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Quick photo edits in your browser. No ads, no account, nothing uploaded.
Sometimes you just need to cut out a background, crop a photo square or blur a name in a screenshot. You don't want to install Photoshop, start a trial, make an account or put up with an ad-covered "free" site that uploads your photo somewhere.
Photocairn is a fast, focused editor for exactly those jobs. Everything runs on your device. The AI background removal runs in your browser through WebAssembly. The page's security policy doesn't allow it to connect to any other server, so your photos stay with you.README 전문 보기 ↗Sometimes you just need to cut out a background, crop a photo square or blur a name in a screenshot. You don't want to install Photoshop, start a trial, make an account or put up with an ad-covered "free" site that uploads your photo somewhere.
Photocairn is a fast, focused editor for exactly those jobs. Everything runs on your device. The AI background removal runs in your browser through WebAssembly. The page's security policy doesn't allow it to connect to any other server, so your photos stay with you.
The layout will feel familiar if you've used Photoshop:
On phones, the tools sit along the bottom and the options, history and layers share a tabbed sheet.
Related tools (brushes, selections, fills, shapes, blur out) share one toolbar button, marked with a small corner triangle. The button shows the tool in use; right-click (or long-press) it to pick another, or press its key again to cycle. The options panel then shows just that tool's settings.
Files
Metadata remover (File › Metadata, or from the start screen without opening the editor)
Edit
Paint
Layers
Photo
Everywhere
connect-src 'self') means the page can't send data to any other server, even by accident.Tools
V: MoveM: Select tools (press again, or Shift+M, for Ellipse, Lasso, Polygon, Magic wand)W: Magic wandCtrl+Alt+T: TransformC: CropB: Brush tools (press again, or Shift+B, for Pencil, Pen, Highlighter)N: PencilE: EraserG: Fill tools (press again, or Shift+G, to switch between Paint bucket and Gradient)K: Paint bucketI: EyedropperU: Shapes (press again, or Shift+U, for Line, Arrow, Rectangle, Ellipse)T: TextL: LayersColors and brushes
X: swap colorsD: reset colors to black and white[ / ]: brush sizeSelection
Ctrl+A: select allCtrl+D: deselectCtrl+Shift+I: invert selectionCtrl+J: copy the selection to a new layerDelete: delete the selected pixelsFile and history
Ctrl+O: openCtrl+S: saveCtrl+Z: undoCtrl+Shift+Z or Ctrl+Y: redoView
0: fit to screen1: 100%+ / −: zoomSpace: pan\: compare with the originalIn tools
Enter: applyEsc: cancel, or deselectAI agents that drive a browser (ChatGPT agent, Claude in Chrome, Playwright scripts) can edit images through window.photocairn, a small scripting API. Every method is async, takes JSON-friendly options in image pixels, and goes through the same code as the UI, so edits respect layers, the selection and locks, show up in History and can be undone.
await photocairn.help(); // every method, its parameters, ranges and defaults
await photocairn.open(dataUrl);
await photocairn.removeBackground({ model: "fast" });
await photocairn.redact({ x: 40, y: 300, width: 420, height: 60, mode: "box" });
const png = await photocairn.export({ format: "png" });
The editing still runs on your device, but whatever AI is driving the browser can see the image.
The API is described in js/api-spec.js, which also generates llms-full.txt and developers/index.html (from scripts/docs-guide.md): run npm run docs after changing either.
There's no build step. It's plain HTML, CSS and JavaScript modules.
git clone https://github.com/apopov04/photocairn.git && cd photocairn
node tests/serve.mjs # http://localhost:8080
Any static host works. To enable multi-threaded WebAssembly (faster background removal), serve it with the cross-origin isolation headers in _headers, which Cloudflare and Netlify pick up automatically.
npm test # unit tests: image operations, layers, text, history (Node, no dependencies)
npm i && CHROME=/path/to/chrome npm run test:e2e # browser end-to-end scenarios
js/ops.js: pure pixel operations (adjustments, filters, blur, sharpen, pixelate, mask handling). They don't touch the DOM, so they're unit-tested in Node.js/editor.js: the document model (layers plus memory-capped undo history) and the zoomable viewport. Layers are immutable snapshots, so undo stores references instead of pixel copies.js/api.js: window.photocairn, the scripting API for AI agents and automation. js/api-spec.js describes its methods and checks arguments; scripts/api-docs.mjs turns it into the docs.js/history.js: the History panel and the resizable right sidebar. History labels come from doc.label("…") at the commit site, or else the active tool's name.js/tools.js: the crop, resize, adjust, filters, text, layers and other panels. Each tool is a factory that builds its panel and handles pointer input in image coordinates.js/text.js: text layers. A text layer keeps its text, font, size, colors and box in layer.meta.text and is re-rendered from them, so it stays editable (word wrapping is unit-tested in Node).js/paint.js: the brush engine (stamped strokes with hardness and per-stroke opacity) and its variants (brush, pencil, pen, highlighter), eraser, shapes, paint bucket, gradient, eyedropper, selection, move and free transform. All pixel edits go through one function, which respects the selection and layer locks.js/menus.js: the menu bar (the same menus open from a single button on phones).js/metadata.js: dependency-free JPEG/PNG/WebP metadata parser and scrubber. It rebuilds EXIF tag by tag, recomputes PNG CRCs, and updates WebP's VP8X flags and RIFF size. js/metadata-ui.js is its dialog.js/psd.js: PSD import/export with ag-psd, loaded only when needed.js/bg-worker.js: background removal in a Web Worker. It runs U²-Net models with ONNX Runtime Web, and the mask is upscaled and applied on a canvas.sw.js: service worker for offline use.Third-party components and their licenses are listed in THIRD_PARTY.md.