Recent Posts
Recent Comments
반응형
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Archives
Today
Total
관리 메뉴

오늘도 공부

See-through: AI로 2D이미지->Live2D(2.5D) 이미지로 본문

AI

See-through: AI로 2D이미지->Live2D(2.5D) 이미지로

행복한 수지아빠 2026. 4. 1. 09:33
반응형

4.1일자 추가 

ComfyUI SeeThrough 가 오픈소스로 나옴

SeeThrough 프로젝트를 ComfyUI로 이식한 버전입니다. 단일 2D 캐릭터 이미지를 눈, 머리카락, 팔다리 등 개별 구성 요소로 분할하여, Live2D 리그를 위한 단일 이미지 분해를 가능하게 합니다. 

https://github.com/jtydhr88/ComfyUI-See-through


정적인 2D 캐릭터를 움직이게 만드는 일은 생각보다 “애니메이션”보다 먼저 “노가다”가 시작됩니다. 머리카락을 따고, 옷을 나누고, 팔 뒤에 가려진 몸통을 상상해서 메우고, 장신구가 어디 앞에 와야 하는지 다시 정리해야 하죠. 문제는 이 과정이 창의적인 작업이라기보다, 숙련된 사람이 오래 붙잡고 있어야 하는 반복 노동에 가깝다는 점입니다.

See-through가 흥미로운 이유는 바로 여기 있습니다. 이 프로젝트는 “이미지 분할”에서 멈추지 않습니다. 한 장의 애니메이션 일러스트를 보고, 캐릭터를 의미 단위 레이어로 분해하고, 가려진 뒤쪽까지 보완해서, 실제 편집 가능한 PSD로 내보내는 것을 목표로 합니다. 더 정확히 말하면, 단일 이미지를 2.5D 애니메이션에 바로 투입할 수 있는 중간 자산으로 변환하는 자동화 파이프라인입니다. 저장소 설명에서도 이 프로젝트는 단일 이미지에서 조작 가능한 2.5D 모델을 만들기 위한 프레임워크로 소개되며, 최대 24개 레이어까지 분리해 PSD로 출력할 수 있다고 밝히고 있습니다. (GitHub)

 

 

GitHub - shitagaki-lab/see-through: "Single-image Layer Decomposition for Anime Characters" (SIGGRAPH 2026, Conditionally Accept

"Single-image Layer Decomposition for Anime Characters" (SIGGRAPH 2026, Conditionally Accepted) - shitagaki-lab/see-through

github.com

 

프로젝트 소개

See-through는 Single-image Layer Decomposition for Anime Characters라는 이름의 연구 프로젝트이자 오픈소스 구현체입니다. 저장소 기준으로 Saint Francis University, University of Pennsylvania, Spellbrush, Shitagaki Lab 소속 연구진이 만들었고, ACM SIGGRAPH 2026 프로시딩에 조건부 채택 상태로 공개되어 있습니다. 라이선스는 Apache-2.0이며, 파이썬 3.12, PyTorch 2.8, CUDA 12.8 기준 환경을 안내하고 있습니다. (GitHub)

이 프로젝트가 해결하려는 문제는 명확합니다. 기존 Live2D나 2.5D 애니메이션 제작에서는 한 장의 합성된 캐릭터 일러스트를 “움직일 수 있는 레이어 묶음”으로 바꾸는 과정이 병목입니다. 얼굴, 앞머리, 뒷머리, 상의, 소매, 손, 액세서리 같은 요소를 분리하는 것만으로 끝나지 않고, 원본에서 가려져 있던 피부나 옷의 뒷면까지 채워 넣어야 합니다. See-through는 이 과정을 자동화하기 위해 SDXL 기반 레이어 생성, Marigold 기반 의사 깊이 추정, SAM 계열 세그멘테이션, 그리고 후처리까지 묶은 파이프라인을 제공합니다. 저장소 README는 핵심 모델로 LayerDiff 3D, Marigold Depth, SAM Body Parsing을 명시하고 있습니다. (GitHub)

왜 이 프로젝트가 등장했을까

이 프로젝트의 진짜 난제는 “분할”이 아니라 “보이지 않는 부분의 복원”입니다. 일반적인 세그멘테이션 모델은 보이는 픽셀을 나누는 데는 강하지만, 머리카락 뒤에 가려진 귀나 옷 뒤의 몸통처럼 원본에 없는 내용을 자연스럽게 채우는 데는 한계가 있습니다. 논문도 바로 이 점을 전제로 삼습니다. 전문 워크플로에서는 수작업 분리와 가려진 영역의 예술적 보완이 필요했고, 이를 자동화할 만한 고품질 정답 데이터도 거의 없었다는 것입니다. (arXiv)

그래서 See-through는 두 가지를 같이 풀었습니다. 첫째, 단일 이미지에서 완전한 RGBA 레이어를 생성하는 모델을 만든 것. 둘째, 그런 모델을 학습시킬 데이터가 없으니, 상용 Live2D 모델에서 약지도 방식으로 고품질 레이블을 부트스트랩하는 데이터 엔진을 만든 것입니다. 논문은 이 데이터 엔진이 19개 파트의 픽셀 정확도 라벨, 가려진 영역 정보, 그리고 조각 단위의 그리기 순서까지 구성한다고 설명합니다. 즉, See-through의 핵심은 “예쁜 데모”가 아니라, 애니메이션 작업에 맞는 데이터 정의와 학습 문제 재구성에 있습니다. (arXiv)

핵심 기능

1. 단일 이미지 → 의미 기반 레이어 분해

메인 스크립트 inference/scripts/inference_psd.py는 입력 이미지 하나를 받아 전체 파이프라인을 실행합니다. README 설명에 따르면 이 과정에서 LayerDiff 3D로 투명 레이어를 생성하고, Marigold 파인튜닝 모델로 의사 깊이를 추정한 뒤, 캐릭터를 최대 24개 의미 레이어로 나눠 PSD로 저장합니다. 결과물에는 PSD뿐 아니라 중간 깊이 맵과 세그멘테이션 마스크도 포함됩니다. (GitHub)

2. 가려진 부분의 자동 보완

이 프로젝트가 평범한 세그멘테이션 도구와 갈라지는 지점입니다. 논문은 각 레이어를 단순 마스크가 아니라 “완전히 인페인팅된 RGBA 바디 파트”로 생성한다고 설명합니다. 즉, 앞머리 레이어를 만들 때 뒤에 숨은 머리카락이나 얼굴 일부가 애니메이션에 쓸 수 있을 정도로 함께 보완되는 구조입니다. 이는 단순히 알파를 따는 것이 아니라, 생성 모델이 레이어 자체를 완성하는 접근입니다. (arXiv)

3. 의사 깊이 기반 그리기 순서 추론

2D 캐릭터는 레이어만 분리해도 끝이 아닙니다. 머리카락 한 가닥, 손, 소매, 치맛자락처럼 어떤 것이 앞이고 뒤인지 정해야 자연스럽게 움직입니다. See-through는 Marigold를 기반으로 각 의미 파트의 pseudo-depth를 예측하고, 이를 바탕으로 drawing order를 추론합니다. 논문은 이를 실제 3D 깊이가 아니라 합성 순서를 복원하기 위한 상대적 깊이 신호로 다룹니다. (arXiv)

4. PSD 출력과 후처리 분할

README를 보면 결과는 곧바로 PSD로 저장할 수 있고, 이후 heuristic_partseg.py를 이용해 특정 태그를 깊이 기준 또는 좌우 기준으로 다시 쪼갤 수 있습니다. 예를 들어 손 장식이나 눈처럼 하나의 의미 파트 안에서도 좌/우 또는 전/후를 나누고 싶은 경우가 있는데, See-through는 이를 후처리 단계로 분리해 둔 것이 인상적입니다. “의미 분해”와 “애니메이션 친화적 세분화”를 완전히 같은 문제로 보지 않는 설계라고 볼 수 있습니다. (GitHub)

프로젝트 아키텍처 분석

저장소와 논문을 함께 보면, See-through는 크게 네 층으로 이해하는 것이 좋습니다. 데이터 생성층, 레이어 생성층, 깊이 추론층, 편집/UI 층입니다. 코드 상으로는 annotators, common, inference, ui 디렉터리로 나뉘며, 실제 사용자 진입점은 inference_psd.py와 Qt6 기반 UI입니다. (GitHub)

이 구조의 핵심은 “한 번에 끝내는 거대한 모델”이 아니라, 생성과 순서 추론을 분리했다는 점입니다. RGBA 레이어 생성은 SDXL 기반 LayerDiff 3D가 맡고, 파트 간 앞뒤 관계는 Marigold 기반 pseudo-depth가 맡습니다. 그리고 이 둘 모두에 대해 논문이 제안하는 Body Part Consistency Module이 들어가 전역 일관성을 높입니다. 즉, 각 파트를 독립적으로 뽑으면 생기기 쉬운 “상의가 소매에 먹히는 문제”, “얼굴 일부가 머리카락으로 흡수되는 문제”를 파트 간 attention으로 줄이는 구조입니다. (arXiv)

논문이 특히 흥미로운 부분은 2단계 학습 전략입니다. 1단계에서는 특정 파트 하나를 고품질로 추출하는 로컬 학습을 하고, 2단계에서는 모든 파트 latent를 part dimension으로 쌓아 joint denoising을 수행합니다. 이때 영상 diffusion의 temporal dimension처럼 part dimension을 다루고, 각 파트가 서로를 참조하면서 일관된 전체 분해를 학습합니다. 이 아이디어는 “의미 파트 분해”를 멀티프레임 문제처럼 재해석한 셈이라서, 연구적으로도 꽤 영리합니다. (arXiv)

코드에서 보이는 실제 동작 방식

저장소의 메인 엔트리포인트는 매우 단순합니다. inference_psd.py를 보면 입력 이미지 목록을 만든 뒤, 이미지마다 apply_layerdiff(), apply_marigold(), further_extr()를 순서대로 호출합니다. 즉 파이프라인은 철저히 “레이어 생성 → 깊이 추정 → 최종 추출/PSD 저장”으로 구성되어 있습니다. (GitHub)

예시는 이렇게 실행합니다.

python inference/scripts/inference_psd.py \
  --srcp assets/test_image.png \
  --save_to_psd

디렉터리 단위 처리도 됩니다.

python inference/scripts/inference_psd.py \
  --srcp path/to/image_folder/ \
  --save_to_psd

후처리로 특정 레이어를 깊이 기준으로 더 쪼개고 싶다면 이런 형태를 사용합니다.

python inference/scripts/heuristic_partseg.py seg_wdepth \
  --srcp workspace/test_samples_output/sample.psd \
  --target_tags handwear

좌우 분리는 이렇게 이어집니다.

python inference/scripts/heuristic_partseg.py seg_wlr \
  --srcp workspace/test_samples_output/sample_wdepth.psd \
  --target_tags handwear-1

이 사용 흐름만 봐도 See-through는 “최종 애니메이션 생성기”가 아니라 “애니메이션 가능한 자산을 만드는 전처리기”라는 정체성이 분명합니다. (GitHub)

데이터 파이프라인이 이 프로젝트의 진짜 가치다

겉으로 보면 이 프로젝트는 PSD 뽑아주는 도구처럼 보이지만, 기술적으로 더 중요한 부분은 학습 데이터 구축입니다. README_datapipeline을 보면 Live2D 모델 추출 도구인 CubismPartExtr를 별도 저장소로 분리해 두었고, 여기서 추출한 결과에 대해 parse_live2d.py, sam_infer_l2d, label_l2d_wsamsegs 등을 거쳐 pseudo label을 만들게 되어 있습니다. 이후 배경 이미지 데이터셋을 받아 syn_data.py로 합성 학습 데이터를 생성합니다. (GitHub)

이 설계가 중요한 이유는, 보통 “애니메이션용 레이어”는 공개 데이터셋으로 거의 존재하지 않기 때문입니다. See-through는 기존 상용/커뮤니티 Live2D 자산에서 레이어 구조와 가시성 정보를 추출해, 학습 가능한 2.5D 데이터셋으로 바꿉니다. 다시 말해 이 프로젝트의 진짜 해자는 모델 이름보다도, “어떻게 정답을 만들었는가”에 있습니다. 논문이 데이터 엔진을 전면에 내세운 것도 그래서입니다. (arXiv)

이 프로젝트가 놀라운 이유

보통 생성 AI가 일러스트 워크플로에 들어오면 사람들은 바로 “최종 결과물”을 기대합니다. 하지만 실제 제작 현장에서는 최종 영상보다 중간 자산이 더 중요할 때가 많습니다. 리깅 가능한 PSD, 분리된 헤어 파츠, 가려진 몸통 보정, 안정적인 앞뒤 순서 정보 같은 것들 말이죠. See-through는 바로 그 중간 자산을 자동으로 만든다는 점에서 실무성이 있습니다. (GitHub)

그리고 이 프로젝트는 그 문제를 “마스크 생성”으로 보지 않고, “완전한 RGBA 파트 생성 + 순서 추론” 문제로 재정의했습니다. 이 차이가 큽니다. 세그멘테이션 모델을 아무리 잘 써도, 원본에 없는 뒤쪽 팔이나 치마 안쪽 면은 나오지 않습니다. 반면 See-through는 처음부터 보이지 않는 부분을 복원해야 한다는 전제를 깔고 모델을 설계합니다. 그래서 결과물이 단순 편집용 PNG 조각이 아니라, 실제 변형에 견딜 수 있는 레이어가 됩니다. (arXiv)

어디에 쓰면 좋은가

가장 잘 맞는 곳은 세 가지입니다.

첫째, Live2D나 2.5D 애니메이션 전처리입니다. 완전 자동 리깅까지는 아니지만, 레이어 분리와 occlusion completion만 자동화돼도 작업량이 크게 줄어듭니다. 저장소도 스스로를 완전한 Image-to-Live2D 솔루션이라고는 보지 않지만, 가장 지루한 수작업을 덜어주는 좋은 시작점이라고 설명합니다. (GitHub)

둘째, VTuber용 talking-head 자산 제작입니다. 논문은 stratified facial/hair layers를 이용한 실시간 talking-head 시스템도 시연했다고 설명합니다. 얼굴과 머리카락 레이어가 안정적으로 분리되면 표정 제어나 고개 회전 같은 2D deformer 계열 작업이 훨씬 쉬워집니다. (arXiv)

셋째, 애니메이션 보조 툴이나 에디터 개발입니다. 저장소에는 Qt6 기반 데스크톱 UI도 포함되어 있고, workspace/datasets/ 구조를 전제로 프로젝트를 열어 수동 보정할 수 있게 되어 있습니다. 즉, 연구 코드라기보다 앞으로 툴체인으로 확장하려는 의도가 보입니다. 다만 현재 UI는 샘플 데이터 구조 의존성이 있고, mmdet 설치를 권장하는 등 아직은 개발자 친화적인 수준에 가깝습니다. (GitHub)

한계도 분명하다

이 프로젝트를 “일러스트 한 장 넣으면 Live2D가 완성되는 마법”으로 보면 실망할 수 있습니다. 저장소는 직접적으로 이 점을 선을 그어 설명합니다. 더 세밀한 예술적 레이어 설계, 리깅, 물리 파라미터, 모션 커브, 그리고 전체적인 아트 의도는 여전히 사람의 몫입니다. 즉 See-through는 리깅 툴이 아니라, 리깅 이전의 가장 고통스러운 준비 단계를 줄여주는 시스템입니다. (GitHub)

논문도 한계를 숨기지 않습니다. 몸 바깥쪽 레이어에서 약간의 겹침이 생기거나, pseudo-depth 기반 분할이 항상 안정적인 discrete sublayer를 만들지는 못한다고 적고 있습니다. 또한 아주 촘촘한 손그림 해칭 같은 고주파 텍스처는 투명 레이어 디코더가 일부 약화시킬 수 있다고 언급합니다. (arXiv)

게다가 2026년 3월 31일 기준 저장소에는 학습 스크립트 문서가 아직 완전히 정리되어 있지 않습니다. README는 학습 스크립트는 준비되어 있지만 문서를 작업 중이며 2026-04-12까지 공개하겠다고 적고 있습니다. 따라서 지금 당장은 “논문 재현 + 커스텀 학습”보다는 “공개된 추론 파이프라인 활용”에 더 적합한 상태로 보는 것이 정확합니다. (GitHub)

권장 VRAM 사양

전체 파이프라인을 한 번에 올리거나 고해상도(1024px 이상) 이미지를 처리하려면 다음과 같은 사양이 권장됩니다.

  • 최소 사양 (Minimum): 12GB VRAM
    • RTX 3060 12GB / RTX 4070 등
    • 해상도를 낮추거나 모델 가중치를 FP16/BF16으로 최적화해야 겨우 돌아가는 수준입니다.
  • 권장 사양 (Recommended): 16GB ~ 24GB VRAM
    • RTX 4070 Ti Super (16GB) / RTX 3090 (24GB) / RTX 4090 (24GB)
    • 레이어 분리 과정에서 병목 현상 없이 고품질 결과물을 얻으려면 24GB 모델이 가장 안정적입니다.
  • 학습/파인튜닝 시: 24GB 이상
    • 직접 커스텀 데이터를 학습시키려면 A100이나 H100급, 혹은 멀티 GPU 환경이 권장됩니다.

개발자 관점의 총평

See-through를 한 줄로 요약하면, 생성 AI를 최종 결과물이 아니라 제작 파이프라인의 병목 제거에 투입한 아주 좋은 사례입니다.

이 프로젝트의 강점은 단순히 SDXL을 썼다는 데 있지 않습니다. 실제 제작에서 어디가 제일 비싸고, 어디가 제일 반복적이며, 어디까지 자동화하면 사람이 바로 이어받을 수 있는지를 정확히 짚고 있습니다. “한 장의 캐릭터 이미지 → 의미 레이어 분해 → 가려진 부분 보완 → 깊이 기반 순서 정리 → PSD 내보내기”라는 흐름은, 정말로 현업 파이프라인에 꽂히는 형태입니다. (GitHub)

특히 인상적인 건 연구와 제품 사이의 거리감입니다. 많은 연구 프로젝트는 데모는 화려하지만 실무 진입점이 없습니다. 반면 See-through는 PSD export, 후처리 스크립트, 데이터 파이프라인, 데스크톱 UI까지 이미 툴 형태의 윤곽을 갖췄습니다. 아직 완전한 Image-to-Live2D는 아니지만, 그 직전 단계의 자동화 도구로는 상당히 실전적입니다. (GitHub)

개인적으로 이 프로젝트가 의미 있는 이유는 “AI가 사람을 대체했다”가 아니라, 애니메이터와 테크니컬 아티스트가 가장 싫어하는 반복 작업을 먼저 없애려 했다는 데 있습니다. 그리고 그런 방향의 자동화야말로, 앞으로 창작 도구가 진짜 가치 있어지는 방식이라고 생각합니다.

 

반응형