Skip to content

khg629/upscale4k

Repository files navigation

UpScale4K (macOS · SwiftUI)

인터넷 없이 로컬에서 이미지를 4K로 업스케일하는 macOS 앱. Apple Silicon의 GPU를 Real-ESRGAN + ncnn-vulkan으로 활용해, 사진·일러스트·인포그래픽 등 어떤 이미지든 드래그 앤 드롭 한 번으로 또렷하게 키워줍니다.

🔁 Windows·Linux도 지원하는 cross-platform 후속 버전: khg629/upscale4k-x

  • 본 저장소(SwiftUI v0.1.1)는 macOS 네이티브 버전으로 그대로 보존됩니다
  • 새 프로젝트는 Tauri + Svelte 기반으로 macOS·Windows에서 같은 UI로 동작

주요 기능 (v0 스코프)

  • 🖱️ 드래그 앤 드롭 한 번에 입력
  • 🤖 모델 2종: General(사진), Anime(일러스트·텍스트)
  • 🔢 배율 선택: 2× / 3× / 4×
  • Apple Silicon 가속: Metal/Vulkan으로 GPU 추론
  • 🔒 100% 로컬: 인터넷 연결·외부 서버 호출 없음

배치 처리, 폴더 감시, 얼굴 복원(GFPGAN), Core ML 변환 등은 v1 이상에서 추가될 예정입니다 (PRD.md 참고).


시스템 요구사항

항목 요구
OS macOS 13 Ventura 이상
Apple Silicon (M1~M4 시리즈) 권장. Intel Mac은 v1 이후 검토
RAM 4K 출력 8GB 이상, 8K 출력 16GB 이상 권장
빌드 도구 Xcode 또는 Command Line Tools (소스에서 빌드 시)

테스트 환경: Apple M4 Pro / macOS 26에서 검증 — 1672×941 입력을 4×(6688×3764)로 업스케일하는 데 약 7~19초 (모델별).


사용 방법

A. .dmg 다운로드 (권장)

  1. 다운로드Releases 페이지에서 UpScale4K-x.y.z.dmg 받기
  2. 설치 — 받은 .dmg를 더블클릭 → 열린 창에서 UpScale4K 아이콘을 옆의 Applications 폴더 위로 드래그
  3. 첫 실행 (한 번만)
    • Launchpad 또는 Applications 폴더에서 UpScale4K 우클릭 → "열기"
    • "확인되지 않은 개발자입니다…" 경고가 뜨면 "열기" 버튼 클릭
    • 이후로는 그냥 더블클릭으로 실행

ℹ️ 왜 첫 실행에 우클릭이 필요한가요?
본 앱은 Apple Developer Program 공증($99/년)을 거치지 않은 무료 배포본이라, 다운로드한 앱에 대한 macOS Gatekeeper의 기본 보안 정책이 적용됩니다. 코드는 100% 오픈소스(이 저장소)이고 모든 처리가 로컬에서 일어나므로 직접 검토할 수 있습니다.

B. 소스에서 빌드

# 1) 저장소 클론
git clone https://github.com/khg629/upscale4k.git
cd upscale4k

# 2) Real-ESRGAN ncnn-vulkan 바이너리 + 모델 다운로드
#    (라이선스/용량 사정으로 저장소에 포함하지 않음)
mkdir -p tools
curl -L -o tools/realesrgan.zip \
    https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesrgan-ncnn-vulkan-20220424-macos.zip
unzip -o tools/realesrgan.zip -d tools
rm tools/realesrgan.zip
xattr -dr com.apple.quarantine tools 2>/dev/null || true
chmod +x tools/realesrgan-ncnn-vulkan

# 3) 빌드 (.app 번들 자동 구성)
bash build.sh

# 4) 실행
open UpScale4K.app

빌드된 UpScale4K.app은 ncnn 바이너리·모델까지 포함된 자기완결형(self-contained)이라 다른 곳으로 복사해도 그대로 동작합니다.


프로젝트 구조

upscale4k/
├── PRD.md                 # 제품 요구사항 / 로드맵
├── README.md              # 이 문서
├── LICENSE                # MIT (저장소 코드)
├── THIRD_PARTY_NOTICES.md # Real-ESRGAN / ncnn / 모델 가중치 라이선스
├── Package.swift          # SwiftPM (Xcode 정식판 사용 시)
├── Info.plist             # .app 번들 메타데이터
├── build.sh               # swiftc 직접 빌드 + .app 패키징
├── Sources/UpScale4K/
│   ├── UpScale4KApp.swift # @main 진입점
│   ├── ContentView.swift  # SwiftUI 메인 윈도우
│   └── Upscaler.swift     # ncnn 바이너리 호출 / 진행률 파싱
└── tools/                 # (gitignore) ncnn 바이너리 + 모델

라이선스

본 저장소의 Swift 코드와 빌드 스크립트는 MIT License 하에 배포됩니다 (LICENSE).

tools/ 안의 ncnn-vulkan 바이너리와 사전 학습 모델은 BSD 3-Clause 라이선스로, 자세한 내용은 THIRD_PARTY_NOTICES.md를 참조하세요.


감사의 글

  • Real-ESRGAN (Xintao Wang 외, Tencent ARC Lab) — 핵심 업스케일 모델
  • ncnn (Tencent) — Vulkan 기반 모바일/데스크탑 추론 엔진
  • realesrgan-ncnn-vulkan — 사전 빌드 macOS 바이너리

기여 / 이슈

버그 제보·기능 제안은 Issues로 부탁드립니다. PR은 환영합니다.

About

인터넷 없이 로컬에서 이미지를 4K로 업스케일하는 macOS 앱 — Real-ESRGAN + ncnn-vulkan, Apple Silicon

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors