如何在Diffusers中使用自定义CKPT模型文件
如何修改脚本加载自定义CKPT模型文件
要加载本地CKPT模型文件,核心是用StableDiffusionPipeline.from_single_file()方法替代原代码中从Hugging Face仓库拉取模型的from_pretrained()。以下是修改后的完整脚本:
from diffusers import StableDiffusionPipeline, EulerDiscreteScheduler # 替换为你的本地CKPT文件路径 ckpt_path = "/path/to/your/custom/model.ckpt" # 保留Euler调度器(如果你的CKPT未包含调度器配置,需单独加载;若已包含可省略此步骤) scheduler = EulerDiscreteScheduler.from_pretrained("stabilityai/stable-diffusion-2", subfolder="scheduler") # 从本地CKPT文件加载模型 pipe = StableDiffusionPipeline.from_single_file(ckpt_path, scheduler=scheduler) pipe = pipe.to("mps") pipe.enable_attention_slicing() prompt = "a photo of an astronaut riding a horse on mars" # 生成并保存图片(可选,默认仅返回图片对象) generated_image = pipe(prompt).images[0] generated_image.save("output.png")
关键修改说明:
- 替换原
model_id为本地CKPT文件的绝对/相对路径ckpt_path - 用
from_single_file()替代from_pretrained()加载本地模型 - 若自定义CKPT文件已包含调度器配置,可以删除单独加载
scheduler的代码,直接使用pipe = StableDiffusionPipeline.from_single_file(ckpt_path)
注意事项:
- 确保本地CKPT文件为兼容Stable Diffusion格式的模型文件
- 若自定义模型需要特定调度器,可调整
scheduler的加载来源(比如从本地目录加载,或对应模型的Hugging Face仓库)
内容的提问来源于stack exchange,提问作者Mohammad Razeghi
相关产品推荐
相关产品推荐

