웹에서 AI가 구동될 수도 있군요.

오늘은 웹에서 AI가 구동될 수 있지 않을까 싶어서, 이것저것 조사해 보고, 무언가 만들어 보았습니다.

이름하여 `무료 AI 이미지 업스케일링!!`
1772023764_XC8bvf7Dfd.webp
위 그림과 같이, AI를 활용한 이미지 고화질 변환기가 백엔드 없이 구현이 됩니다.
Real-ESRGAN 모델을 사용합니다.

한번 테스트 해보셔요.
https://webmaster.cafe/ko/tools/image-upscaler?f=/sample-image/60903.png



 
2명이 반응했습니다
|

댓글 9개

와 신기하네요.
웹 자체로도, 가능한 작업들이 참 많은 것 같아요.
20분째 로딩중입니다...조금 더 기다릴까요? ㅎ
API 사용해서 만드셨나요?
API 사용하지 않아요. 또한, 작업은 10초 내외로 끝나야 합니다. 브라우저들 조금 더 테스트 해봐야겠네요.

AI 분석이 맞는지 한번 봐주세요.ㅎㅎ

🏗️ 전체 구조


브라우저
├── 메인 스레드 (UI)
│   └── Worker 생성 & 메시지 통신
└── Web Worker (upscale-worker-*.js)
    ├── ONNX Runtime Web
    └── Real-ESRGAN 모델 (.onnx)

🔑 핵심 기술

1. Web Worker

upscale-worker-1FCB8ocI.js별도 스레드에서 실행되는 Worker입니다.

AI 추론은 무겁기 때문에, 메인 스레드에서 실행하면 UI가 얼어붙습니다. Worker로 분리해서 백그라운드 실행합니다.



js
// 메인 스레드
const worker = new Worker('upscale-worker-1FCB8ocI.js')
worker.postMessage({ imageData: ... })
worker.onmessage = (e) => { /* 결과 수신 */ }

2. ONNX Runtime Web

Real-ESRGAN 모델을 브라우저에서 실행하기 위해 onnxruntime-web 라이브러리를 사용합니다.



js
// Worker 내부 (추정)
import * as ort from 'onnxruntime-web'

const session = await ort.InferenceSession.create('./real-esrgan.onnx', {
  executionProviders: ['webgpu', 'wasm'] // GPU 우선, fallback은 WASM
})
```

### 3. **실행 흐름**
```
① 이미지 선택
      ↓
② Canvas로 픽셀 데이터 추출 (ImageData → Float32Array)
      ↓
③ Worker로 전송 (postMessage)
      ↓
④ [Worker] ONNX 모델에 텐서 입력
      ↓
⑤ [Worker] Real-ESRGAN 추론 실행 (x2 or x4 업스케일)
      ↓
⑥ 결과 텐서 → ImageData 변환
      ↓
⑦ 메인 스레드로 반환 → Canvas 렌더링
```

### 4. **타일링(Tiling) 처리**
Real-ESRGAN은 메모리 이슈로 큰 이미지를 **타일로 분할**해서 처리합니다.
```
원본 이미지
┌──┬──┐
│A │B │  → 각 타일을 개별 추론
├──┼──┤
│C │D │
└──┴──┘
결과를 이어 붙이기 (블렌딩 처리)

⚡ 백엔드 없이 가능한 이유

요소 기술
AI 추론 엔진 ONNX Runtime Web (WebAssembly / WebGPU)
모델 파일 CDN 또는 번들에서 .onnx 직접 로드
병렬 처리 Web Worker
GPU 가속 WebGPU API (지원 브라우저)

📦 빌드 도구

파일명의 해시(1FCB8ocI)로 보아 Vite로 빌드된 프로젝트입니다. Worker도 Vite의 ?worker 문법으로 번들링됩니다.



js
import UpscaleWorker from './upscale-worker?worker'
const worker = new UpscaleWorker()

요약하면: Real-ESRGAN .onnx 모델을 ONNX Runtime Web이 WebAssembly/WebGPU로 실행하고, 그 무거운 연산을 Web Worker가 백그라운드에서 처리하는 구조입니다. 서버가 전혀 필요 없는 순수 클라이언트사이드 AI입니다! 🎉

맞습니다. 순수 클라이언트사이드 AI입니다! 🎉
어어 예제 이미지 저거 야겜 아닙니까
야겜처럼 보이지만.. 무려 15세 이용가 게임입니다..
커스텀 메이드 3D 인줄 ㅇ<-<
댓글을 작성하시려면 로그인이 필요합니다.

자유게시판

+
제목 글쓴이 날짜 조회
31분 전 조회 13
1시간 전 조회 24
2시간 전 조회 41
4시간 전 조회 45
7시간 전 조회 132
14시간 전 조회 115
16시간 전 조회 86
17시간 전 조회 81
17시간 전 조회 75
18시간 전 조회 148
19시간 전 조회 82
21시간 전 조회 91
22시간 전 조회 73
어제 조회 87
어제 조회 124
어제 조회 99
어제 조회 174
어제 조회 151
어제 조회 129
어제 조회 111
어제 조회 112
2일 전 조회 91
2일 전 조회 199
2일 전 조회 123
2일 전 조회 95
2일 전 조회 119
2일 전 조회 93
2일 전 조회 67
2일 전 조회 139
2일 전 조회 121