핵심 요약
사용자가 Stable Diffusion Img2Img에서 ControlNet을 적용하던 중 발생한 행렬 차원 불일치 오류에 대해 커뮤니티의 기술적 조언을 구하고 있다.
배경
사용자가 1024x1536 해상도의 이미지에 ControlNet(OpenPose, Canny)을 적용하여 Img2Img 생성을 시도했으나, GPU 작동 직후 행렬 곱셈 차원 오류가 발생하며 생성이 중단되었다.
커뮤니티 반응
사용자가 겪는 오류는 Stable Diffusion 커뮤니티에서 매우 흔한 사례로, 주로 모델 버전 간의 호환성 숙지가 부족할 때 발생한다는 반응이 많다.
실용적 조언
- 현재 사용 중인 메인 체크포인트가 SD 1.5인지 SDXL인지 먼저 확인한다.
- ControlNet 설정 창에서 선택한 모델 파일 이름에 'xl' 혹은 '15'가 포함되어 있는지 대조하여 메인 모델과 일치시킨다.
- SDXL 환경이라면 Hugging Face 등에서 'controlnet-sd-xl-1.0' 시리즈 모델을 새로 다운로드하여 적용한다.
언급된 도구
Stable Diffusion중립
이미지 생성 및 변형
ControlNet추천
이미지 생성 시 구도 및 자세 제어 확장
섹션별 상세
사용자는 OpenPose와 Canny 등 다양한 ControlNet 모델을 시도했으나 동일한 'RuntimeError: mat1 and mat2 shapes cannot be multiplied' 오류를 겪고 있다. 오류 메시지에 나타난 (462x2048)과 (768x320)이라는 수치는 텐서 연산 과정에서 입력 데이터와 가중치 행렬의 차원이 맞지 않음을 의미한다. 이는 주로 체크포인트 모델과 ControlNet 모델의 아키텍처가 서로 다를 때 발생한다.
이미지 해상도가 1024x1536으로 설정되어 있으며, 이는 일반적인 SDXL 모델의 권장 해상도 범위에 해당한다. 하지만 오류 메시지에 포함된 '768'이라는 숫자는 SD 1.5 기반의 텍스트 인코더 차원과 관련이 있을 가능성이 높다. 사용자가 SDXL 체크포인트를 사용하면서 SD 1.5용 ControlNet 모델을 불러왔거나, 그 반대의 상황일 확률이 매우 크다.
사용자는 'Pixel Perfect' 옵션을 활성화했음에도 불구하고 동일한 문제가 지속된다고 밝혔다. 이는 문제가 전처리 단계의 해상도 설정보다는 모델 간의 근본적인 호환성 문제임을 시사한다. ControlNet 가중치 파일(.safetensors)이 현재 로드된 메인 체크포인트 모델(SD 1.5 vs SDXL)과 일치하는지 확인하는 과정이 필수적이다.
실무 Takeaway
- RuntimeError: mat1 and mat2 shapes 오류는 대부분 메인 체크포인트와 ControlNet 모델의 버전 불일치로 인해 발생한다.
- SDXL 모델을 사용할 때는 반드시 SDXL 전용 ControlNet 모델을 사용해야 하며, SD 1.5 역시 전용 모델이 필요하다.
- 오류 메시지의 수치(768, 2048 등)는 모델의 임베딩 차원을 나타내며 이를 통해 버전 충돌 지점을 유추할 수 있다.
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료