LaMa, 큰 구멍을 메우려면 얕은 층부터 이미지 전체를 봐야 한다
요약
- 인페인팅은 이미지에서 마스크로 가려진 영역을 그럴듯하게 채우는 작업입니다. 작은 흠집은 옆 픽셀만 봐도 되지만, 큰 구멍은 멀리 떨어진 맥락을 끌어와야 합니다.
- 여기서 병목이 되는 게 수용영역입니다. 3x3 합성곱을 쌓으면 수용영역이 천천히 커지는데, 얕은 층에서는 아직 좁아 마스크 바깥을 못 봅니다. 심하면 생성자의 수용영역이 통째로 구멍 안에 들어가 "볼 게 마스크밖에 없는" 상태가 됩니다.
- LaMa의 해법은 푸리에 변환입니다. 주파수 영역에서 1x1 합성곱을 하면 점별 연산인데도 공간 영역에서는 이미지 전체에 영향을 줍니다. 얕은 층부터 전역 수용영역이 생깁니다.
- 부수 효과가 큽니다. 모든 주파수에 같은 합성곱을 공유하므로 스케일 동변 성향이 생겨, 256으로 학습해도 2k 해상도로 일반화됩니다.
- 자주 하는 오해. LaMa는 확산 모델이 아닙니다. GAN 피드포워드라 반복 디노이징이 없습니다. 그리고 없던 물체를 창작하는 데 강한 게 아니라 주변 맥락으로 메우는 데 강합니다.
- 2026년에도 온디바이스 객체 제거는 "세그 마스크 + 경량 GAN 인페인터" 2단 구성이 현실적 정답입니다. 거대 확산은 서버와 창작형에서 품질을 가져갑니다.
문제의 정체는 수용영역이다
인페인팅은 마스크로 지정된 영역을 채우는 작업입니다. 마스크는 보통 채울 곳이 1, 유지할 곳이 0인 이진 맵입니다.
작은 흠집이라면 바로 옆 픽셀만 봐도 됩니다. 큰 구멍은 다릅니다.
큰 구멍을 자연스럽게 채우려면
멀리 떨어진 벽과 바닥과 하늘의 맥락을 끌어와야 한다
그런데 3x3 합성곱을 쌓으면 수용영역이 천천히 커진다
얕은 층에서는 아직 좁아 마스크 바깥을 못 본다
심하면 생성자의 수용영역 전체가 구멍 안에 들어간다
관찰할 맥락이 사라져 버린다
LaMa 저자들은 인페인팅이 어려운 핵심 이유로 네트워크와 손실 함수 양쪽의 수용영역 부족을 지목합니다. 두 곳 다 문제라는 게 중요합니다. 네트워크만 고쳐도, 손실만 고쳐도 부족합니다.
세 기둥
① FFC (Fast Fourier Convolution)
얕은 층부터 이미지 전체를 보는 합성곱 연산자
② 고수용야 지각 손실 (HRF PL)
전역 구조의 일관성을 강제하는 손실
③ 공격적인 대형 마스크 학습
넓은 폴리곤과 박스 마스크를 적극적으로 생성해 학습
반복 없이 한 번의 순전파로 결과를 냅니다. 단일 단계 GAN 시스템입니다.
파이프라인
컬러 이미지 x 와 마스크 m
│
▼
입력 구성 x 에 m 을 곱해 가린 뒤 m 을 채널로 덧붙인다
4채널 입력이 된다
│
▼
다운샘플 3블록
│
▼
FFC 잔차 블록 6개에서 18개 여기서 전역 맥락 추론
│
▼
업샘플 3블록
│
▼
마스크 픽셀만 합성
알려진 영역(마스크 밖)은 원본을 그대로 보존
마스크가 가린 자리만 생성 결과로 교체
판별자도 마스크와 겹치는 패치만 가짜로 판정
완전 합성곱이라 학습 때 본 적 없는 해상도에도 그대로 적용됩니다.
마지막 단계가 실용적으로 중요합니다. 마스크 밖은 원본 그대로라 원본 특성이 보존됩니다. 이미지 전체를 다시 생성하는 방식과 결정적으로 다른 지점입니다.
FFC, 왜 주파수 영역인가
벽지 때우기로 비유하면 이해가 빠릅니다.
벽지가 찢어진 자리를 메울 때
바로 옆 무늬만 보면 어긋난다
숙련공은 방 전체의 무늬 주기를 한눈에 파악해 패턴을 잇는다
보통 합성곱 옆만 보는 초보
FFC 푸리에 변환으로 방 전체의 반복 주기를 한 번에 읽는다
그래서 벽돌과 창문과 울타리 같은 주기적 구조에 강하다
한 블록 안에서 채널을 둘로 나눠 두 분기가 동시에 돕니다.
입력 특징맵
│
├──► 지역 분기 3x3 합성곱. 옆만 본다
│
└──► 전역 분기 RealFFT ──► 1x1 합성곱 ──► 역FFT. 전체를 본다
│
└──► 두 분기를 합친다
│
▼
출력 특징맵. 얕은 층부터 전역 수용영역
전역 분기의 내부는 이렇습니다.
① RealFFT2d 공간 영역에서 주파수 영역으로
실수 신호는 스펙트럼의 절반만 있으면 되므로 출력 폭이 절반
실수부와 허수부를 채널로 concat
② 주파수 영역에서 ReLU 와 BN 과 1x1 합성곱
점별 연산이다
③ InverseRealFFT2d 다시 공간 영역으로
핵심 원리
주파수 영역의 1x1 합성곱은 점별 갱신이지만, 스펙트럼 정리상 공간 영역에서는 이미지 전체에 영향을 줍니다.
이 한 문장이 FFC의 전부입니다. 주파수 성분 하나는 공간 전체에 퍼져 있는 진동이니, 그 성분을 건드리면 이미지 전체가 바뀝니다. 그래서 연산은 값싼데 수용영역은 전역입니다.
부수 효과도 큽니다.
모든 주파수에 같은 1x1 합성곱을 공유한다
│
└──► 스케일 동변 성향이 생긴다
학습 해상도(256)보다 큰 해상도(2k)로도 잘 일반화된다
"작게 학습하고 크게 추론한다"가 되는 이유입니다. 이건 실무에서 학습 비용을 크게 줄여 줍니다.
고수용야 지각 손실
앞서 "손실 함수의 수용영역도 문제"라고 했는데, 그 대응입니다.
단순 픽셀 손실(L2)의 문제
여러 그럴듯한 답을 평균 낸다
결과가 흐려진다
HRF PL 의 해법
수용야가 빨리 커지는 기반망으로 특징 거리를 잰다
팽창 합성곱을 쓴 ResNet50, 세그멘테이션 사전학습
L_HRFPL(x, x̂) = 평균( [ φ(x) - φ(x̂) ]^2 )
φ 는 기반망, 평균은 층 안과 층 사이 모두
기반망 선택이 성능을 가릅니다. 논문의 발견은 분류 사전학습보다 세그멘테이션 사전학습에 팽창 합성곱을 쓴 쪽이 더 좋았다는 것입니다. 분류 사전학습 특징은 텍스처 편향이 있어 구조 일관성을 잘 못 잡습니다.
최종 손실은 넷의 가중합입니다.
L = k x L_Adv + a x L_HRFPL + b x L_DiscPL + g x R1
L_Adv 적대적 손실. 판별자를 속이도록 k = 10
L_HRFPL 고수용야 지각 손실 a = 30
L_DiscPL 판별자 특징매칭 손실 b = 100
R1 그래디언트 패널티. 판별자 정규화 g = 0.001
가중치는 좌표별 빔서치로 정했다
대형 마스크 학습
세 번째 기둥입니다. 마스크 생성 정책 자체가 성능 레버입니다.
기존 DeepFillv2 식 좁은 마스크
LaMa 넓은 폴리곤과 박스를 공격적으로 생성
단 이미지의 50% 초과는 회피
넓은 마스크로 학습하면
좁은 마스크 성능도 함께 올라간다
마지막 줄이 흥미롭습니다. 어려운 케이스로 학습하는 게 쉬운 케이스도 개선합니다.
왜 이렇게 가벼운가
FFC로 전역 맥락을 값싸게 확보하니, 경쟁 모델보다 훨씬 적은 파라미터로 비슷하거나 더 좋은 결과를 냅니다.
| 모델 | 파라미터 | 비고 |
|---|---|---|
| LaMa-Fourier | 약 27M | FFC 사용 |
| Big-LaMa | 51M | FFC 잔차 18블록 |
| CoModGAN | 약 109M | 약 4배 |
| MADF | 약 85M | 약 3배 |
추론 속도는 일반 합성곱판보다 평균 20% 정도 느린 수준입니다. FFT 비용이 생각보다 크지 않습니다.
정량 결과는 저자와 Samsung AI Center의 자체 평가표입니다. Places 512 기준 FID와 LPIPS입니다.
| 마스크 유형 | FID | LPIPS |
|---|---|---|
| 좁은 | 0.63 | 0.090 |
| 넓은 | 2.21 | 0.135 |
| 세그멘테이션 | 5.35 | 0.058 |
회사 자체 평가이며 데이터셋과 마스크 정책에 따라 편차가 있습니다. 절대 서열이 아니라 경향으로 읽는 게 안전합니다. 둘 다 낮을수록 좋습니다.
실무, 객체 제거의 2단 구성
사진에서 사람이나 물체를 지우는 도구는 대개 두 단계를 잇습니다.
원본 이미지
│
├──► 세그멘테이션 (YOLO 나 SAM)
│ │
│ ▼
│ 지울 객체 마스크 "어디를"
│ │
└───────┴──► LaMa 인페인팅 "무엇으로 채울지"
마스크 픽셀만 합성
│
▼
객체 제거 결과
LaMa가 결정적이고 가벼워 자원이 제한된 환경에서도 안정적으로 돕니다. 대표 오픈소스 도구인 IOPaint는 2026년에도 객체 제거의 핵심 모델로 LaMa를 채택하며 CPU에서 그대로 구동됩니다. 객체를 교체하거나 창작하는 기능은 별도 모델로 분리해 둔 구성이 유지됩니다.
배포 주의, 푸리에 층과 ONNX
실무에서 반드시 걸리는 지점입니다.
LaMa 의 FFT 와 IFFT 층은 ONNX 로 그대로 익스포트되지 않는다
공식 TorchScript 배포 카드도
"Fourier layers 때문에 ONNX 재익스포트가 불가"라고 명시
커뮤니티 ONNX 포트는
커스텀 FourierUnit 과 DFT 구현에 opset 17 로 우회
대신 입력이 512x512 고정
동적 해상도는 irfft 와 rfftn 패딩 처리가 추가로 필요
그래서 더 큰 이미지는 타일링하거나 다운스케일 후 처리한다
"256으로 학습해 2k로 추론 가능"이라는 장점이 배포 단계에서 반쯤 상쇄되는 셈입니다. 아키텍처 장점과 배포 현실이 어긋나는 전형적 사례입니다.
확산 인페인팅과의 관계
같은 인페인팅이라도 GAN과 확산은 잘하는 일이 다릅니다.
| LaMa (GAN) | RePaint (확산) | Stable Diffusion 인페인팅 | |
|---|---|---|---|
| 메커니즘 | 1회 순전파 | 역확산 중 마스크 밖을 주어진 이미지로 재주입 | 텍스트 조건 확산 |
| 학습 | 인페인팅 전용 학습 | 사전학습 DDPM 그대로 사용 | 사전학습 + 인페인팅 조건 |
| 속도 | 빠르다 | 매우 느리다 | 느리다 |
| 결정성 | 결정적 | 비결정적 | 비결정적 |
| 강점 | 맥락 연장형 채움 | 극단 마스크, 다양성 | 프롬프트로 새 객체 창작 |
RePaint의 접근이 특히 영리합니다. 네트워크를 안 고치고 샘플링 절차만 바꿔 조건을 겁니다. 어떤 마스크든 다양한 결과를 내지만 반복 디노이징이라 매우 느립니다.
강점 분담이 명확합니다.
LaMa 맥락 연장형 채움
주기 구조와 큰 마스크 복원, 빠름, 가벼움, 결정적
단 학습 마스크 분포 밖이나 강한 원근 왜곡에 취약
확산 의미적 창작과 다양성
프롬프트로 새 객체 생성
실무 합의는 보완 관계로 자리잡았습니다. LaMa를 확산 전처리로 써서 구멍을 1차로 메운 뒤 확산으로 다듬거나, 원본 특성 보존이 중요할 땐 LaMa 단독을 선호합니다.
왜 여전히 경량 GAN인가
확산 인페인팅이 품질 상한을 쥐고 있지만 온디바이스 직접 구동은 아직 비현실적입니다.
텍스트 프롬프트 창작형 인페인팅의 최상위 모델은 12B 규모의 rectified flow transformer 기반입니다. 저자 보고상 오픈웨이트 버전도 기존 독점 솔루션을 상회한다고 주장하지만, 12B 규모라 모바일과 엣지에서 직접 돌리기 어렵습니다.
압축 시도도 나오고 있습니다. NanoFLUX는 확산 트랜스포머를 12B에서 약 2B로 어텐션 헤드 가지치기와 블록 병합으로 줄이고 텍스트 인코더도 축소합니다. 모바일에서 512 한 장을 약 2.5초에 생성합니다.
다만 두 가지 유보가 있습니다. 여전히 무겁고, 텍스트에서 이미지 생성용이지 인페인팅 특화가 아닙니다.
정리하면
객체 제거 = 세그 마스크 + 경량 GAN 인페인터
이 2단 구성이 2026년에도 온디바이스의 현실적 정답이다
거대 확산은 서버와 창작형에서 품질을 가져가되
엣지 직접 구동의 대안은 아직 아니다
조정할 수 있는 것들
| 옵션 | 설명 |
|---|---|
| FFC 잔차 블록 수 | 6에서 18개. 많을수록 전역 추론이 강해진다 |
| HRF 기반망 | 분류 사전학습보다 세그멘테이션과 팽창 합성곱 조합이 더 좋았다 |
| 마스크 생성 정책 | 넓은 폴리곤과 박스를 공격적으로. 이미지의 50% 초과는 회피 |
| 손실 가중치 | 앞의 네 값이 재현과 미세조정의 출발점 |
| 해상도 일반화 | 완전 합성곱과 스케일 동변 덕에 학습보다 큰 해상도로 추론 가능 |
| 변형 모델 | LaMa-Fourier, Big-LaMa(18블록), LaMa-Regular(FFC 대신 일반 합성곱) |
발전사
| 시기 | 발전 |
|---|---|
| 2020 | FFC 연산자 제안. 주파수 영역 점별 갱신으로 비국소 수용영역 |
| 2021-09 | LaMa. FFC와 HRF 지각 손실과 대형 마스크 학습 |
| 2022-01 | RePaint. DDPM 기반, 역확산 중 마스크 밖 재주입 |
| 2024 이후 | 확산이 창작 다양성에서 앞서되, LaMa는 속도와 경량과 원본 보존과 전처리 용도로 잔존 |
남는 질문
- "256 학습에서 2k 일반화"가 어떤 데이터와 마스크에서까지 유지되나. 논문은 강한 원근 왜곡과 비분포 구조에서 무너진다는 정성적 한계만 언급합니다. 정량적 경계는 열려 있습니다.
- 푸리에 층의 배포 제약을 근본적으로 풀 수 있나. ONNX 익스포트 불가가 온디바이스 채택의 실질 장벽입니다.
- 확산 인페인팅의 경량화가 어디까지 갈까. 지금은 생성용 압축이지 인페인팅 특화 압축이 아닙니다.
용어 정리
| 용어 | 한 줄 뜻 |
|---|---|
| 인페인팅 | 이미지의 가려진 영역을 주변 맥락으로 채우는 작업 |
| 마스크 | 채울 곳을 표시한 이진 맵 |
| FFC | 지역 합성곱과 주파수 영역 1x1 합성곱을 결합해 전역 수용영역을 갖는 연산자 |
| 수용영역 | 출력 한 픽셀이 입력에서 참조하는 영역 크기 |
| 유효 수용영역 | 이론 수용영역 중 실제로 출력에 영향을 주는 부분 |
| 고수용야 지각 손실 | 수용영역이 빨리 커지는 기반망 특징으로 잰 지각 손실 |
| 스케일 동변 | 입력 크기가 바뀌어도 동작이 일관되는 성질 |
| 적대적 손실 | 판별자를 속이도록 생성자를 학습시키는 GAN 손실 |
| FID / LPIPS | 생성 품질 지표. 둘 다 낮을수록 좋다 |
참고자료
- Suvorov et al., "Resolution-robust Large Mask Inpainting with Fourier Convolutions" (LaMa, WACV 2022, arXiv:2109.07161)
- LaMa 공식 구현 (advimman/lama)
- Lugmayr et al., "RePaint: Inpainting using Denoising Diffusion Probabilistic Models" (CVPR 2022, arXiv:2201.09865)
- "NanoFLUX: Distillation-Driven Compression of Large Text-to-Image Generation Models for Mobile Devices" (arXiv:2602.06879)
- IOPaint, 객체 제거 오픈소스 도구
- Carve/LaMa-ONNX, 커뮤니티 ONNX 포트와 그 제약
'Computer Vision > Vision Generative' 카테고리의 다른 글
| [GAN] VAE (0) | 2022.11.29 |
|---|---|
| [GAN] GAN (Generative Adversarial Network) 이란? (1) | 2022.11.29 |
| [GAN] AutoEncoder의 모든 것 (Revisit Deep Neural Networks) (0) | 2022.10.18 |
댓글