由于我的显卡比较垃圾(3050),加载模型时都用的
torch.dtype=float16
后来用下列方式保存模型:
pipeline = StableDiffusionPipeline(
text_encoder=text_encoder,
vae=vae,
unet=unet,
tokenizer=tokenizer,
scheduler=PNDMScheduler(beta_start=0.00085,
beta_end=0.012,
beta_schedule='scaled_linear',
skip_prk_steps=True),
safety_checker=StableDiffusionSafetyChecker.from_pretrained(
'CompVis/stable-diffusion-safety-checker'),
feature_extractor=CLIPFeatureExtractor.from_pretrained(
'openai/clip-vit-base-patch32'),
)
pipeline.save_pretrained('../modules/cat_toy')
报了错:
TypeError: Object of type dtype is not JSON serializable
在网上查到的各种方法都无法解决,折腾了一天后(想紫砂),又审视了一下这句话,意思是"dtype"这种类型不能JSON序列化,我的理解是,因为我的模型的dtype=float16,因此不能用这种方式保存。之后试了float32的模型,可以正常保存,但因为显存、内存太小,在本地跑不了😭😭😭