윈디하나의 누리사랑방. 이런 저런 얘기

글쓴시간
분류 기술,IT/스테이블 디퓨전
LoRA 적용시 오류 - output with shape {param} doesn't match the broadcast shape {param}

사용자 삽입 이미지

Traceback (most recent call last):
  File "C:\stable-diffusion-webui\extensions\a1111-sd-webui-lycoris\..\..\extensions-builtin/Lora\lora.py", line 215, in load_loras
    lora = load_lora(name, lora_on_disk.filename)
  File "C:\stable-diffusion-webui\extensions\a1111-sd-webui-lycoris\..\..\extensions-builtin/Lora\lora.py", line 176, in load_lora
    module.weight.copy_(weight)
RuntimeError: output with shape [4, 320, 1, 1] doesn't match the broadcast shape [4, 320, 3, 3]

이와같이 나오는 이유는 적용하려는 파일(.safetensor, .pt 파일)이 LoRA용 파일이 아니기 때문이다. 이런 파일은 LoRA 의 확장 규격을 사용한 거라, 현재 Stable Diffusion WebUI 에서 사용하려면 LyCORIS 사용해야한다. 파일이름, 파일 크기만 가지고는 LoRA 인지 LyCORIS 용인지 명확하게 구분이 안된다. (그래도 LyCORIS 용 파일은 파일 크기가 수십메라 정도로 작다)

프롬프트도 <lyco:***:1.0> 처럼 사용해야 한다. <lora:***:1.0> 이 아니다.

- 확장 LoRA 는 [*, *, 1, 1] 에서 [*, *, 3, 3] 과 같이 뒤의 2개 숫자가 1 에서 3으로 변경되었다. (이건 프로그래밍에서 4차원 배열 정도로 생각하면 된다) 이게 확장 LoRA 규격이다.

----

2023.05.26 추가

Stable Diffusion WebUI 를 최신 버전으로 패치하면 LoRA 로 적용 된다. (LyCORIS 쓸 필요 없다) 기존에는 [*, *, 3, 3] 형식의 LoRA 를 지원하지 않았다고 한다.