모든 이미지 및 설명 출처: 

https://rentry.org/BlockMergeExplained


이 글은 과거에 제가 쌌던 질문 비스무리한 정보 글의 셀프 답변과도 같은 그 무언가이기도 함...



전부 읽기 싫다, 나는 꿀만 빨고 싶다!

1. 중앙(MID0)에서 먼 레이어는 질감, 선의 두께 같은 디테일을 표현한다 (화풍, 그림체 등)

2. 중앙과 가까운 레이어는 디테일한 특성을 표현한다 (옷의 종류, 얼굴 배치 및 간격 등)

3. 어떤 레이어가 무슨 특성을 담당하는지는... 직접 노가다 뛰는 수 밖에 없다...


무지성 병합에 앞서... 우리는 레이어(블록)에 대한 개념을 이해할 필요가 있음

하지만 나도 잘 모르니까 가르쳐 줄 자신은 없고 겉핥기식으로만 정리해뒀음

구글에 페이퍼 제목에 리뷰 붙여서 검색하면 한국어 리뷰 나올거임

An Introduction to Convolutional Neural Networks

U-Net: Convolutional Networks for Biomedical Image Segmentation

High-Resolution Image Synthesis with Latent Diffusion Models


스테이블 디퓨전의 구조를 단순화하면 아래 이미지처럼 그릴 수 있음


이미지 출처


스테이블 디퓨전이 이미지를 구성할 때 컨볼루셔널 뉴럴 네트워크(CNN) 중 하나인 U-net 구조를 사용하는데

스테이블 디퓨전은 입구(IN) 12개, 중앙(MID) 1개, 출구(OUT) 12개로 총 25개의 레이어를 가지고 있음


좌측의 원본으로부터 디퓨전 과정을 거친 노이즈 이미지가 총 25개의 U-net 레이어를 차례대로 거치며 프롬프트[CLIP -> (Cross-attention) -> Layer]의 영향을 받는데

이 때 입구 레이어에서 중앙까지 노이즈로부터 특성을 뽑아냈다가 출구 레이어에서 손과 발 등의 사람이 인식할 수 있는 형태로 재구현하게됨

이로써 우측의 최종 이미지가 만들어짐 (VAE 생략)


이 과정을 이해했다면 어떤 레이어가 대충 어떤 특성을 담고 있는지 유추 해볼 수 있을거임

바깥과 가까운 레이어는 전체적인 윤곽을 담당할 확률이 높으니 실사와 씹덕풍을 섞고 싶다면 이 곳을 노려보는게 좋고

2~4 쯤에 위치한 사람의 키, 가슴 크기, 전체적인 신체의 형태 등 신체적 특성을 담고 있을 가능성이 있고...

7~9 쯤에 위치한 레이어는 이전 레이어를 함축시킨, 그니까 캐릭터 그 자체나 얼굴 같은 특성을 담고 있을 수도 있겠지?


위에서 나도 몰?루 같은 표현을 많이 사용했는데...

각 특성들이 실제론 곡선이나 점, 각진 모서리 등으로 나눠지고 컴퓨터가 사용하기 좋게 텐서(숫자) 형태로 저장되어있어서

추상적으로나 이해할 수 있지, 사람이 사용하는 단어들로는 이건 이거다! 같은 1대1 비교가 현실적으로 불가능함...


간단히 말해서 그냥 무지성으로 해보는 수 밖에 없다는 것임

https://github.com/ashen-sensored/sd-webui-runtime-block-merge


과거 병합 방식
블록 병합 방식


여기까지 작성했다가 퇴근 시간이라 급하게 올림

집가서 이어 쓸 예정...