전 아직 안 해 봤는데, 아직 제약도 많지만(로라 따로 적용 불가, 컨트롤넷 미지원)
모델만 변환하면 속도가 엄청 빨라진다고 하는 듯 합니다.
https://old.reddit.com/r/StableDiffusion/comments/13tg3p6/
1. WebUI "dev" 브랜치를 받아야 합니다.
git clone -b dev https://github.com/AUTOMATIC1111/stable-diffusion-webui
2. 확장 설치
https://github.com/AUTOMATIC1111/stable-diffusion-webui-tensorrt
3. 엔비디아에서 TensorRT ZIP 파일 다운
torch에 맞는 CUDA를 선택해야 한다고 하네요 (torch 2.0.1 = CUDA 11.8)
https://developer.nvidia.com/nvidia-tensorrt-8x-download
확장 폴더에 압축 풀고 script 폴더와 trt_path.py 파일과 같은 위치에 TensorRT-8.6.1.6(또는 비슷한 이름) 두고
webui를 재시작하면 된다고 합니다.
4. 그러면 UI에 TensorRT 탭이 생기는데
원하는 모델 + 로라 + 하이퍼네트워크를 다 고르고
여기서 Convert to ONNX → Convert Unet to ONNX → models/Unet-onnx 에 *.onnx 파일이 만들어지고,
→ 다시 만들어진 *.onnx 파일을 이용해서 Convert ONNX to TensorRT (여기서 최소 15분 ~ 1시간 정도 걸린다고 함)
→ models/Unet-trt 에 *.trt 파일이 만들어진다네요.
5. 설정에서 Stable Diffusion 페이지 아래 SD Unet 옵션에서 만든 TensorRT 모델 선택
6. 그림 만들기... 하면 된다고 합니다.
번역만 한 거라서 제대로 옮긴건지 모르겠네요;
이걸 받으면 되는 건가요?
1. onnx >> trt로 만들 때 파일 이름에 models/Unet-onnx/를 넣어줘야 되네요. 왜 파일이름을 못찾는지 한참 헤맸...
2. 이미지 생성 시에 512x512 말고는 bad shape for TensorRT input x: (2, 4, 96, 64) 라면서 에러 내네요. Hires. fix도 안됨.
"3060 12gb confirmed working.
512x512 from 6.7 to 7.4 it/s
with a real world use, 512*768 and long prompt+loras, from 2.8 to 4.68it/s"
이런 글이 있네요. 실제 이런 저런 복잡한 확장팩과 로라를 쓰게 되는 입장에서 마음에 드는 변화네요.
기존에 최적화라고 해봤자 실제 체감하기 어려울 정도로 낮았는데. 복잡할 수록 더 개선된다면...
이 바닥이 워낙 변화가 빠르니...한달 정도 후면 어느정도 큰 불편없이 쓰게 되지 않을까 합니다.