Diffusers框架使用Civitai上的checkpoit和lora模型
1、實驗室有一臺帶顯卡的機器,能訪問huggingface但訪問不了Civitai,而Civitai上的模型多是webui訓練來的也不能直接用到diffusers框架上,于是需要利用Colab把Civitai上的模型轉化成diffusers可用再上傳到huggingface上,再下載到本地。
2、google colab上新建一個筆記本,再選 修改==》筆記本設置==》硬件加速器把GPU選上,然后點連接
3、安裝diffusers環境,復制以下代碼在colab后點擊運行單元格
!pip install --upgrade diffusers[torch] !pip install transformers !pip install omegaconf !pip install safetensors !git clone https://github.com/huggingface/diffusers
4、在Civitai上找到想要的模型(checkpoit或者lora),注意看Base Model是不是SD模型,然后對著下載按鈕右鍵==》復制鏈接地址

5、在colab上下載Civitai模型,替換下復制的下載鏈接
!wget -O test_model.safetensors $(curl https://civitai.com/api/download/models/94081)
然后可以看到下載好的模型

6、在diffusesrs可以看到一些轉化的腳本,本次僅用到轉化checkpoit和lora的腳本,視Civitai的模型類型而定,如果是lora模型的話需要指定一個基本模型,一般都是sd1.5
#checkpoit
!python ./diffusers/scripts/convert_original_stable_diffusion_to_diffusers.py --checkpoint_path ./test_model.safetensors --dump_path ./test_model --from_safetensors
#lora !python ./diffusers/scripts/convert_lora_safetensor_to_diffusers.py --base_model_path runwayml/stable-diffusion-v1-5 --checkpoint_path ./test_model.safetensors --dump_path ./test_model
7、轉化完成

8、測試
from diffusers import StableDiffusionPipeline import torch model_id = "./test_model" pipe = StableDiffusionPipeline.from_pretrained(model_id,torch_dtype=torch.float16,safety_checker= None) pipe = pipe.to("cuda") prompt = "1girl" negative_prompt = "" image = pipe(prompt,negative_prompt=negative_prompt).images[0] image
9、上傳到huggingface,先在huggingface上創建一個空模型,然后再復制huggingface的Access Token(頭像==》Setting==》Access Token),在colab上登錄需要
from huggingface_hub import login login()

10、把模型上傳到剛創建的huggingface倉庫,注意對應repo_id
from huggingface_hub import HfApi api = HfApi() api.upload_folder( folder_path="./test_model", repo_id="zhyemmmm/test_model", repo_type="model", )
11、等待上傳完成,就可以在huggingface上看到了,再修改一下README.md,就可以把8的model_id改成10的repo_id測試了

12、最后用git-lfs下載到實驗機器就可以本地調用civitai上的模型了

浙公網安備 33010602011771號