MAPLE UPSCALE · PROPER PIXEL ART

업스케일 결과를 다시
"진짜 도트"로 되돌리면?

KennethJAllen의 proper-pixel-art는 AI가 만든 흐릿한 픽셀아트풍 이미지에서 픽셀 격자를 찾아 한 칸에 한 색으로 되돌리는 도구입니다. 헬레나(NPC 10200, 78×80)의 2배 업스케일 결과 12종에 적용했습니다. 각 행은 입력 → 5단계(Hough 선) → 6단계(간격 중앙값으로 메시 완성) → 전체 파이프라인 결과입니다. 색 양자화는 끄고(num_colors=0) 셀마다 지배색을 골랐습니다.

  1. 가장자리 자르고 반투명 픽셀을 배경색으로
  2. 최근접 2배 확대
  3. Canny 에지
  4. 모폴로지 닫힘
  5. 확률적 Hough 변환으로 수직·수평 선 검출, 가까운 선 군집
  6. 이상치를 걸러 간격 중앙값으로 격자 폭 추정, 메시 완성
  7. 색 양자화(여기서는 생략)
  8. 셀마다 가장 흔한 색으로 한 픽셀 재구성

미리 말씀드리면 자동 검출(기본·튜닝)은 이 입력에서 격자를 못 잡습니다. 이 도구는 격자 경계가 눈에 보이는 큰 AI 이미지를 전제로 하는데, 우리 결과는 격자 없이 매끈하게 키운 그림이라 Hough가 윤곽선을 격자로 오인합니다. 격자 폭을 4로 지정하면 정상적으로 78×80 근처의 진짜 해상도 도트가 나옵니다.

기본 설정 (자동 검출)

Hough 최소 선 길이 50 · 표 100 · 닫힘 커널 8. 저장소 기본값 그대로.

버전입력5단계6단계전체(1~8단계)
원본 픽셀 그대로 2배nearest
검출 격자 폭(2배 확대 기준) 19×19px · 셀 15×17
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 6×6 (4배 표시) · 원본 PNG
공개 SwinIRpublic
검출 격자 폭(2배 확대 기준) 12×12px · 셀 26×25
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 6×7 (4배 표시) · 원본 PNG
Bicubic 학습swinir
검출 격자 폭(2배 확대 기준) 64×60px · 셀 5×5
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 6×6 (4배 표시) · 원본 PNG
점 샘플링point
검출 격자 폭(2배 확대 기준) 17×18px · 셀 17×18
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 6×6 (4배 표시) · 원본 PNG
경계선 보존outline
검출 격자 폭(2배 확대 기준) 52×43px · 셀 6×7
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 8×9 (4배 표시) · 원본 PNG
RGBA 4채널rgba
검출 격자 폭(2배 확대 기준) 65×59px · 셀 5×5
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 16×18 (4배 표시) · 원본 PNG
전경 전용 · 마스크fgonly_mask
검출 격자 폭(2배 확대 기준) 19×18px · 셀 16×16
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 7×8 (4배 표시) · 원본 PNG
전경 전용 · 테두리fgonly
검출 격자 폭(2배 확대 기준) 43×50px · 셀 7×6
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 9×8 (4배 표시) · 원본 PNG
수축 · 원래 알파shrink_mask
검출 격자 폭(2배 확대 기준) 17×17px · 셀 19×19
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 8×10 (4배 표시) · 원본 PNG
수축 · 수축 마스크shrink_smask
검출 격자 폭(2배 확대 기준) 23×24px · 셀 14×13
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 9×9 (4배 표시) · 원본 PNG
수축 · +1pxshrink
검출 격자 폭(2배 확대 기준) 18×19px · 셀 16×16
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 7×6 (4배 표시) · 원본 PNG
수축 · +2pxshrink_e2
검출 격자 폭(2배 확대 기준) 21×21px · 셀 14×15
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 11×12 (4배 표시) · 원본 PNG

소형 이미지 튜닝 (자동 검출)

최소 선 길이 12 · 표 20 · 간격 4 · 닫힘 커널 4 · 군집 2. 156×160 입력에 맞춰 완화.

버전입력5단계6단계전체(1~8단계)
원본 픽셀 그대로 2배nearest
검출 격자 폭(2배 확대 기준) 14×13px · 셀 22×22
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 30×30 (4배 표시) · 원본 PNG
공개 SwinIRpublic
검출 격자 폭(2배 확대 기준) 12×12px · 셀 25×24
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 33×35 (4배 표시) · 원본 PNG
Bicubic 학습swinir
검출 격자 폭(2배 확대 기준) 6×6px · 셀 50×54
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 18×16 (4배 표시) · 원본 PNG
점 샘플링point
검출 격자 폭(2배 확대 기준) 10×10px · 셀 31×30
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 31×31 (4배 표시) · 원본 PNG
경계선 보존outline
검출 격자 폭(2배 확대 기준) 11×11px · 셀 29×27
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 32×31 (4배 표시) · 원본 PNG
RGBA 4채널rgba
검출 격자 폭(2배 확대 기준) 12×11px · 셀 25×25
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 26×27 (4배 표시) · 원본 PNG
전경 전용 · 마스크fgonly_mask
검출 격자 폭(2배 확대 기준) 15×13px · 셀 21×22
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 26×30 (4배 표시) · 원본 PNG
전경 전용 · 테두리fgonly
검출 격자 폭(2배 확대 기준) 9×9px · 셀 36×37
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 28×27 (4배 표시) · 원본 PNG
수축 · 원래 알파shrink_mask
검출 격자 폭(2배 확대 기준) 9×9px · 셀 34×36
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 15×17 (4배 표시) · 원본 PNG
수축 · 수축 마스크shrink_smask
검출 격자 폭(2배 확대 기준) 10×10px · 셀 29×32
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 30×31 (4배 표시) · 원본 PNG
수축 · +1pxshrink
검출 격자 폭(2배 확대 기준) 10×10px · 셀 29×29
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 22×23 (4배 표시) · 원본 PNG
수축 · +2pxshrink_e2
검출 격자 폭(2배 확대 기준) 14×13px · 셀 22×23
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 26×25 (4배 표시) · 원본 PNG

격자 폭 지정 (4px)

6단계의 간격 추정을 건너뛰고 폭 4를 지정. 2배 결과의 도트 1칸 = 2px, 사전 2배 확대 후 4px.

버전입력5단계6단계전체(1~8단계)
원본 픽셀 그대로 2배nearest
검출 격자 폭(2배 확대 기준) 4×4px · 셀 79×82
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 78×79 (4배 표시) · 원본 PNG
공개 SwinIRpublic
검출 격자 폭(2배 확대 기준) 4×4px · 셀 78×78
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 78×81 (4배 표시) · 원본 PNG
Bicubic 학습swinir
검출 격자 폭(2배 확대 기준) 4×4px · 셀 79×81
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 78×80 (4배 표시) · 원본 PNG
점 샘플링point
검출 격자 폭(2배 확대 기준) 4×4px · 셀 78×78
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 77×79 (4배 표시) · 원본 PNG
경계선 보존outline
검출 격자 폭(2배 확대 기준) 4×4px · 셀 76×78
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 78×79 (4배 표시) · 원본 PNG
RGBA 4채널rgba
검출 격자 폭(2배 확대 기준) 4×4px · 셀 76×78
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 77×81 (4배 표시) · 원본 PNG
전경 전용 · 마스크fgonly_mask
검출 격자 폭(2배 확대 기준) 4×4px · 셀 77×79
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 76×77 (4배 표시) · 원본 PNG
전경 전용 · 테두리fgonly
검출 격자 폭(2배 확대 기준) 4×4px · 셀 79×80
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 77×79 (4배 표시) · 원본 PNG
수축 · 원래 알파shrink_mask
검출 격자 폭(2배 확대 기준) 4×4px · 셀 77×80
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 77×80 (4배 표시) · 원본 PNG
수축 · 수축 마스크shrink_smask
검출 격자 폭(2배 확대 기준) 4×4px · 셀 78×78
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 77×80 (4배 표시) · 원본 PNG
수축 · +1pxshrink
검출 격자 폭(2배 확대 기준) 4×4px · 셀 77×76
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 75×80 (4배 표시) · 원본 PNG
수축 · +2pxshrink_e2
검출 격자 폭(2배 확대 기준) 4×4px · 셀 77×80
입력 156×160 (2배 표시)5단계 · Hough 선6단계 · 간격 중앙값으로 메시 완성전체 결과 77×79 (4배 표시) · 원본 PNG