bilegentile's picture
Upload folder using huggingface_hub
c19ca42 verified
from __future__ import annotations
from ..enums import StableDiffusionVersion
from typing import NamedTuple, Optional, List
class IPAdapterPreset(NamedTuple):
"""Preset for IPAdapter."""
name: str
module: str # Preprocessor
model: str # Name of model file
sd_version: StableDiffusionVersion # Supported SD version.
lora: Optional[str] = None
@staticmethod
def match_model(model_name: str) -> IPAdapterPreset:
model_name = model_name.split("[")[0].strip()
assert (
model_name in _preset_by_model
), f"{model_name} not found in ipadapter presets. Please try manually pick preprocessor."
return _preset_by_model[model_name]
clip_h = "ip-adapter_clip_h"
clip_g = "ip-adapter_clip_g"
insightface = "ip-adapter_face_id"
insightface_clip_h = "ip-adapter_face_id_plus"
ipadapter_presets: List[IPAdapterPreset] = [
IPAdapterPreset(
name="light",
module=clip_h,
model="ip-adapter_sd15_light",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="light_v11",
module=clip_h,
model="ip-adapter_sd15_light_v11",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="vit-g",
module=clip_g,
model="ip-adapter_sd15_vit-G",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="standard",
module=clip_h,
model="ip-adapter_sd15",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="plus",
module=clip_h,
model="ip-adapter-plus_sd15",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="plus",
module=clip_h,
model="ip-adapter_sd15_plus",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="plus-composition",
module=clip_h,
model="ip-adapter_plus_composition_sd15",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="plus_face",
module=clip_h,
model="ip-adapter-plus-face_sd15",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="full_face",
module=clip_h,
model="ip-adapter-full-face_sd15",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="face_id",
module=insightface,
model="ip-adapter-faceid_sd15",
lora="ip-adapter-faceid_sd15_lora",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="face_id_plus",
module=insightface_clip_h,
model="ip-adapter-faceid-plus_sd15",
lora="ip-adapter-faceid-plus_sd15_lora",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="face_id_plus_v2",
module=insightface_clip_h,
model="ip-adapter-faceid-plusv2_sd15",
lora="ip-adapter-faceid-plusv2_sd15_lora",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="face_id_portrait",
module=insightface,
model="ip-adapter-faceid-portrait_sd15",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="face_id_portrait_v11",
module=insightface,
model="ip-adapter-faceid-portrait-v11_sd15",
sd_version=StableDiffusionVersion.SD1x,
),
IPAdapterPreset(
name="standard-g",
module=clip_g,
model="ip-adapter_sdxl",
sd_version=StableDiffusionVersion.SDXL,
),
IPAdapterPreset(
name="standard-h",
module=clip_h,
model="ip-adapter_sdxl_vit-h",
sd_version=StableDiffusionVersion.SDXL,
),
IPAdapterPreset(
name="plus-h",
module=clip_h,
model="ip-adapter-plus_sdxl_vit-h",
sd_version=StableDiffusionVersion.SDXL,
),
IPAdapterPreset(
name="plus-composition",
module=clip_h,
model="ip-adapter_plus_composition_sdxl",
sd_version=StableDiffusionVersion.SDXL,
),
IPAdapterPreset(
name="plus_face-h",
module=clip_h,
model="ip-adapter-plus-face_sdxl_vit-h",
sd_version=StableDiffusionVersion.SDXL,
),
IPAdapterPreset(
name="face_id",
module=insightface,
model="ip-adapter-faceid_sdxl",
lora="ip-adapter-faceid_sdxl_lora",
sd_version=StableDiffusionVersion.SDXL,
),
IPAdapterPreset(
name="face_id_plusv2",
module=insightface_clip_h,
model="ip-adapter-faceid-plusv2_sdxl",
lora="ip-adapter-faceid-plusv2_sdxl_lora",
sd_version=StableDiffusionVersion.SDXL,
),
IPAdapterPreset(
name="face_id_portrait",
module=insightface,
model="ip-adapter-faceid-portrait_sdxl",
sd_version=StableDiffusionVersion.SDXL,
),
]
_preset_by_model = {p.model: p for p in ipadapter_presets}