ComfyUI_Stable_Makeup 组件使用指南:解决 openai/clip-vit-large-patch14 加载问题

772 阅读2分钟

背景与问题

在使用 ComfyUI_Stable_Makeup 组件进行图像生成和增强时,某些同学会遇到加载 openai/clip-vit-large-patch14 模型失败的问题。这个问题通常出现在网络不稳定、权限受限或无法访问 Hugging Face 服务器的环境中。

解决方案一:在本地加载 openai/clip-vit-large-patch14

要解决加载失败的问题,我们可以手动下载并配置 clip-vit-large-patch14 模型文件,让组件直接使用本地文件,而不是自动从 Hugging Face 下载。以下是详细的解决步骤:

  1. 下载模型:在有网络的环境下,从 Hugging Face 下载 clip-vit-large-patch14 模型文件,并将其存储在本地路径。例如,路径为 /root/models/openai/clip-vit-large-patch14。

  2. 手动加载:在代码中使用 Hugging Face 的 CLIPTextModel 和 CLIPTokenizer 类,加载本地的 text_encoder 和 tokenizer,然后传递给 StableDiffusionPipeline。这样可以确保使用本地文件,避免网络下载。

  3. 配置代码


from transformers import CLIPTextModel, CLIPTokenizer
from diffusers import StableDiffusionPipeline

# 加载本地的 text_encoder 和 tokenizer 模型
text_encoder = CLIPTextModel.from_pretrained("/root/models/openai/clip-vit-large-patch14")
tokenizer = CLIPTokenizer.from_pretrained("/root/models/openai/clip-vit-large-patch14")

# 使用 from_single_file 加载 StableDiffusionPipeline,并手动指定 text_encoder 和 tokenizer
pipe = StableDiffusionPipeline.from_single_file(
    ckpt_path,
    original_config=original_config_file,
    text_encoder=text_encoder,
    tokenizer=tokenizer
)

......

clip = "/root/models/openai/clip-vit-large-patch14"  
makeup_encoder = detail_encoder(Unet, clip, "cuda", dtype=torch.float32)

解决方案二:repo填写"指定路径"

image.png

在clip处直接填写本地路径,如果是默认的“openai/clip-vit-large-patch14”,此时会去huggingface进行下载。一般会下载到根目录下,例如:/root/.cache/huggingface/hub/models--openai--clip-vit-large-patch14。方案二的话每次都需要进行修改clip内容,在此建议一步到位,用方案一。

背景知识:StableDiffusionPipeline 及其依赖

StableDiffusionPipeline 是一种用于文本到图像生成的高级组件,基于 Stable Diffusion 架构,包含了多个模块和扩展功能。其中 clip-vit-large-patch14 是 CLIP 模型的一个变体,用于将自然语言文本转换成可供模型生成参考的特征向量。

该管道的核心组件包括:

text_encoder:通常是 openai/clip-vit-large-patch14,将文本转换为特征向量。

unetschedulervae:分别负责图像生成的去噪、调度、编码与解码。

safety_checkerfeature_extractor:对生成的图像进行安全性检测,避免输出不适内容。

总结

通过手动加载 openai/clip-vit-large-patch14,我们可以确保 ComfyUI_Stable_Makeup 组件在离线或限制网络环境下顺利运行,避免自动下载带来的问题。这种方法不仅适用于特定组件,也适合于其他基于 Stable Diffusion 的应用场景。希望这个解决方案能帮助更多同学更顺利地运行 ComfyUI_Stable_Makeup 组件。