PixelDense가 픽셀 확산 모델의 의미·기하 정렬을 두 갈래로 분리한다
PixelDense: Dense Prediction as Representation Alignment for Pixel Diffusion
무엇인가
REPA(Representation Alignment)는 확산 트랜스포머의 중간 디노이저 특징을 동결된 인코더 특징에 맞춰 학습을 가속하는 기법으로, 추론 시에는 비용을 늘리지 않는다. 그런데 지금까지 정렬 대상은 DINOv2, CLIP 같은 의미(semantic) 인코더에 거의 한정돼 있었다. iREPA 분석은 정렬 효과를 나르는 것이 전역 의미가 아니라 공간 구조라고 지적했고, 그 구조를 예측하도록 명시적으로 학습된 밀집 예측(dense prediction) 파운데이션 모델들은 정작 REPA 교사로 검토되지 않았다. 이 논문은 픽셀 공간 확산을 무대로 삼는다. 픽셀 확산에서는 디노이저 토큰이 밀집 교사가 입력으로 받는 RGB 패치 그리드 위에 놓이기 때문에, 각 토큰이 같은 공간 위치의 교사 특징 벡터와 1대1로 대응한다.
어떻게 동작하나
문제는 교사를 늘리는 방식에 있었다. PixelGen을 512×512에서 파인튜닝한 실험에서 SAM2, Depth Anything v2, Metric3D v2는 각각 DINOv2 단독 베이스라인보다 GenEval Overall을 끌어올렸고, 두 기하 교사가 분할 교사보다 앞섰다. 그런데 네 교사의 REPA 손실을 단순 합산하면 최고 단일 기하 교사보다도 낮은 점수가 나온다. 저자들의 설명은 이렇다. 의미 인코더는 시점 불변성과 인스턴스 동일성을 보상하고, 기하 인코더는 미터법 레이아웃과 표면 방향을 보상한다. 두 그룹의 그래디언트가 하나의 디노이저 투영을 공유하면 서로 다른 종류의 구조에 서로 다른 부분공간을 배정할 수 없어, 교사들이 합성되지 않고 경쟁한다. 논문은 이를 교사 조합 문제가 아니라 표현 라우팅(representation routing) 문제로 재정의한다.
무엇과 다른가
PixelDense는 하나의 디노이저 토큰을 두 개의 병렬 투영 스트림으로 읽는다. 의미 스트림은 DINOv2와 SAM2를 폭 768의 공유 병목으로, 기하 스트림은 Depth Anything v2와 Metric3D v2를 폭 1024의 별도 병목으로 통과시킨다. 두 폭은 각 교사 그룹의 원래 특징 차원에 맞춘 값이다. 이어 네 개의 가벼운 교사 헤드가 각 스트림 출력을 해당 교사의 특징 폭으로 사상하고, 교사별로 코사인 정렬 손실을 건다. 정렬 가중치는 DINOv2 0.5, 나머지 셋 각 0.3이다. 핵심 장치는 두 스트림 입력 투영의 가중치 공간 직교성 페널티다. W_sem과 W_geo의 각 행을 단위 길이로 정규화한 뒤 모든 의미 행과 기하 행 사이 코사인의 평균 절댓값을 벌점으로 주며, 계수는 0.01이다. 이 페널티는 투영 가중치만 쓰므로 데이터가 필요 없고 추론 비용도 없다. 전체 목적함수는 흐름 매칭 손실, 정렬 손실, 직교 페널티, 그리고 PixelGen의 LPIPS·Perceptual-DINO 보조 손실을 합한 형태다. 디노이저 특징은 16개 블록 중 8번째 블록에서 읽고, 교사는 모두 학습 중 동결되며 추론 시 제거된다. 배포되는 모델은 원래의 3채널 RGB 생성기와 원래 샘플러 그대로다.
어떻게 쓰나
실험은 1.1B PixelGen-XXL을 주 백본으로, DeCo를 일반화 검증용으로 쓴다. 두 모델 모두 DINOv2 REPA로 사전학습돼 있고 파인튜닝 중에도 그 신호가 살아 있으므로, 주 비교 대상은 DINOv2 단일 교사 베이스라인이다. H200 2장, GPU당 배치 16에 그래디언트 누적 8로 실효 배치 256, AdamW 학습률 1e-5로 10,000 스텝, 추론 시 CFG 4.0, 데이터는 BLIP3-o-60K를 쓴다. 결과적으로 GenEval Overall이 0.7927에서 0.8093으로 올라 2.09%의 상대 개선을 냈고, 비교한 모든 단일 교사 및 비분해 다중 교사 변형을 앞선다. 교사별 기여를 보면 Depth Anything v2가 0.8069, Metric3D v2가 0.8060, SAM2가 0.8020으로, 네 교사를 그냥 더한 조합은 최고 단일 기하 교사에도 못 미친다. 어느 한 스트림만 쓰는 구성도 두 스트림을 함께 쓴 PixelDense보다 낮다.
전제와 한계
텍스트-이미지 지표만으로는 특정 입력 장면의 기하 보존 여부를 알 수 없어서, 저자들은 부분 노이즈 재구성 프로브를 따로 둔다. 입력 이미지를 τ=0.5, 0.7, 0.9로 손상시켜 캡션과 함께 넣고 복원시키되, 학습에 쓴 교사와 무관한 외부 모델로 채점한다. 판옵틱 일치도는 COCO로 학습된 OneFormer(Swin-L, DiNAT-L 두 백본)로, 깊이와 표면 법선은 Marigold로 측정한다. COCO 2017 검증셋에서는 정답 판옵틱과 예측기-원본 의사 참조 양쪽에, Flickr30K에서는 의사 참조에만 대조한다. τ=0.5에서 판옵틱 PQ가 COCO 정답 대비 35.3%, Flickr30K 의사 라벨 대비 53.1% 오르고, 깊이 AbsRel은 최대 36.0% 줄어든다. 격차는 τ=0.5에서 가장 크고 입력 구조가 대부분 사라지는 τ=0.9에서 좁아진다. 같은 구조 보존 능력은 편집으로도 이어진다. PIE-Bench에서 SDEdit을 τ=0.3부터 0.9까지 일곱 단계로 돌렸을 때, 편집 마스크 밖 배경 보존(LPIPS, PSNR, SSIM), DINOv2 패치 자기유사도, 원본 대비 FID 등 여섯 지표 모두에서 모든 노이즈 수준에 대해 PixelDense가 앞서며, 배경 PSNR은 최대 2.2dB 높다.
학습 동역학도 달라진다. DINOv2 정렬이 이미 들어간 사전학습 모델에서 파인튜닝한 주 실험과 별개로, 128×128 해상도에서 BLIP3-o-60K로 무작위 초기화부터 학습시키면 PixelDense가 베이스라인의 최고 GenEval 점수에 약 1.23배 빠르게 도달하고, 이후 100K 스텝 구간에서도 계속 위에 머문다. 베이스라인은 최고점을 찍은 뒤 하락한다. 같은 레시피를 재튜닝 없이 DeCo에 옮겨도 GenEval Overall과 DPG-Bench가 모두 향상된다. 다만 개선폭은 PixelGen보다 작은데, 저자들은 DeCo가 이미 더 강한 모델에서 출발하기 때문으로 본다.
절제 실험은 네 가지를 확인한다. 스트림 병목 폭은 두 교사 그룹의 원래 차원에 맞출 때 가장 좋고, 둘 다 작은 공유 폭으로 줄이면 기하 교사가 필요로 하는 용량이 사라지며, 더 큰 폭으로 통일하면 의미 스트림 파라미터가 낭비된다. 정렬을 거는 블록은 중간층이 가장 강하고, 한 블록 앞당기면 소폭, 뒤로 미루면 더 크게 떨어진다. 정렬 손실 가중치를 균등하게 바꿔도 점수는 기본값에 근접해 어느 정도 강건하다. 직교 페널티를 제거하거나 10배 약하게 하면 GenEval Overall이 내려가고, 10배 강하게 하면 투영을 과도하게 제약한다. 저자들이 밝힌 한계도 분명하다. 편집 실험은 SDEdit만 다뤘고 인버전 기반이나 명령 기반 편집 방식은 향후 과제로 남긴다. 또한 주 실험은 DINOv2 REPA 신호가 이미 살아 있는 사전학습 모델에서의 파인튜닝이며, 교사 네 개를 학습 중에만 붙이고 추론에서 제거하는 구조이므로 학습 시 메모리와 연산 부담은 늘어난다.
개발자 관점에서 실무적 신호는 세 가지다. 첫째, REPA 계열 정렬을 쓰는 픽셀 확산 파이프라인이라면 교사를 늘릴 때 단순 합산을 피해야 한다. 이 논문이 보고한 음의 전이는 교사 종류가 아니라 투영 구조의 문제이므로, 요구하는 불변성이 다른 감독은 스트림을 분리하고 직교 페널티로 갈라 놓는 편이 낫다. 둘째, 밀집 예측 모델은 학습 시점에만 붙였다가 버릴 수 있어 샘플링 비용이 그대로다. 셋째, GenEval 같은 프롬프트 정렬 지표만 보지 말고 부분 노이즈 재구성이나 편집 배경 보존 같은 구조 보존 프로브를 함께 봐야 한다. PixelDense의 이득은 경계, 깊이 배치, 표면 기하처럼 구조를 건드리는 축에 집중된다.