우선 CLIP model changer


https://github.com/bbc-mc/sdweb-clip-changer


원래는 이 Extension이었는데, 일본어 포럼에서 CLIP 모델을 바꾸면 왜 학습이 안됨? 하는 문제를 해결하다가 디버그용으로 코드를 추가했는데 아무튼 잘 됩니다.



다만 바뀐 CLIP 설정을 저장하고 로드하는 기능은 아직 없는데 귀찮아요.


이런식으로 CLIP Text model을 넣고 오른쪽에 체크박스만 클릭하면 바뀝니다. (시간이 좀 걸릴수있음, 특히 다운로드)


다만 어디까지나 디버그하다 만든 부가기능이라 저는 FrozenCLIPEmbedder hijack만 하이재킹하고, 모든 모델을 사용하려면 저 extension을 설치하면 됩니다.


openai/clip-vit-large-patch14

openai/clip-vit-large-patch14-336





아주 작은 차이점이 있습니다.





하이퍼네트워크 튜닝을 위한 파이프라인 구축



하이퍼네트워크 생성 설정을 json으로 export할 수 있습니다!


파일을 열어보면 별건 아니고


말 그대로 생성시 설정이 json으로 저장됩니다. 


또한 학습시 설정도 export할 수 있습니다!




그리고 이러한 학습 설정은 (대부분은) import해올 수 있습니다!


이 경우 현재 UI의 설정을 일부 무시하고 json파일에 저장된 설정을 사용하므로 주의해 주세요.




그리고 Hyperparameter Tuning Tab입니다.


ML에 익숙하신 분은 이게 뭔지 아실테지만 모르시는 분도 계실텐데, 이건 학습 방법을 바꾸고 조합하면서 결과가 어떤지를 확인하기 위한 용도입니다.


당연하지만 tensorboard도 호환됩니다!


앞서 만들어진 json 파일들을 사용할 수 있는데,


train 파일은 필수적입니다. 그리고 여러 파일을 사용하거나 경로를 사용할 수 있지만, 경로상 또는 파일명에 ','가 들어가면 안됩니다.


hypernetwork, 하이퍼네트워크 생성 구조 파일은 넣어주시면 이를 기반으로 새로운 하이퍼를 생성해서 테스트합니다. 아예 넣지 않고 하이퍼네트워크를 선택시, 선택한 하이퍼의 사본을 생성해서 이를 기반으로 테스트합니다.


만약 2개의 train, 2개의 hypernetwork 설정 파일을 사용시 2x2 = 4가지 학습 경우가 모두 진행되게 되며, Setting - Training에서 tensorboard 옵션을 키면 모두 기록됩니다.


참고로 tensorboard는 python이 정상적으로 설치되었다면 다음 커맨드로 볼 수 있는데,


`python -m tensorboard.main --logdir F:\stable-diffusion-webui\textual_inversion\test_tuning\tensorboard`


여기서 경로는 test_tuning = 기준 하이퍼네트워크 이름이 됩니다.






또한 자잘하게 tensorboard 호환성, 이전 코드 호환성, shorthash 기능 등을 수정했습니다.