Closed2

diffusers (transformers) で CLIP skip を設定する

PlatPlat

SDv1

本来は 12 層あるが、CLIP skip 2 にしたければ 11 層のみを使うように設定する (num_hidden_layers=11 を指定する)

from transformers import CLIPTextModel
text_encoder = CLIPTextModel.from_pretrained(
    "runwayml/stable-diffusion-v1-5", 
    subfolder="text_encoder", 
    num_hidden_layers=11, # CLIP skip 2
    torch_dtype=torch.float16
)

SDv2

本来の CLIP は 24 層だが、最終層は破棄されてデフォルトで 23 層しかない (つまりデフォルトで CLIP skip 2。(意味があるかはわからないが、) CLIP skip 3以上にしたいなら num_hidden_layers=22 とかを指定する)

from transformers import CLIPTextModel
text_encoder = CLIPTextModel.from_pretrained(
    "stabilityai/stable-diffusion-2-1", 
    subfolder="text_encoder", 
    num_hidden_layers=22,  # CLIP skip 3
    torch_dtype=torch.float16
)
このスクラップは2023/07/10にクローズされました