mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
393 lines
15 KiB
Python
393 lines
15 KiB
Python
|
from dataclasses import dataclass
|
||
|
from typing import Optional
|
||
|
|
||
|
from invokeai.backend.model_manager.config import BaseModelType, ModelType
|
||
|
|
||
|
|
||
|
@dataclass
|
||
|
class StarterModel:
|
||
|
description: str
|
||
|
source: str
|
||
|
name: str
|
||
|
base: BaseModelType
|
||
|
type: ModelType
|
||
|
# Optional list of model source dependencies that need to be installed before this model can be used
|
||
|
dependencies: Optional[list[str]] = None
|
||
|
is_installed: bool = False
|
||
|
|
||
|
|
||
|
# List of starter models, displayed on the frontend.
|
||
|
# The order/sort of this list is not changed by the frontend - set it how you want it here.
|
||
|
STARTER_MODELS: list[StarterModel] = [
|
||
|
# region: Main
|
||
|
StarterModel(
|
||
|
name="SD 1.5 (base)",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="runwayml/stable-diffusion-v1-5",
|
||
|
description="Stable Diffusion version 1.5 diffusers model (4.27 GB)",
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="SD 1.5 (inpainting)",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="runwayml/stable-diffusion-inpainting",
|
||
|
description="RunwayML SD 1.5 model optimized for inpainting, diffusers version (4.27 GB)",
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="Analog Diffusion",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="wavymulder/Analog-Diffusion",
|
||
|
description="An SD-1.5 model trained on diverse analog photographs (2.13 GB)",
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="Deliberate v5",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="https://huggingface.co/XpucT/Deliberate/resolve/main/Deliberate_v5.safetensors",
|
||
|
description="Versatile model that produces detailed images up to 768px (4.27 GB)",
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="Dungeons and Diffusion",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="0xJustin/Dungeons-and-Diffusion",
|
||
|
description="Dungeons & Dragons characters (2.13 GB)",
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="dreamlike photoreal v2",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="dreamlike-art/dreamlike-photoreal-2.0",
|
||
|
description="A photorealistic model trained on 768 pixel images based on SD 1.5 (2.13 GB)",
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="Inkpunk Diffusion",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="Envvi/Inkpunk-Diffusion",
|
||
|
description='Stylized illustrations inspired by Gorillaz, FLCL and Shinkawa; prompt with "nvinkpunk" (4.27 GB)',
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="OpenJourney",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="prompthero/openjourney",
|
||
|
description='An SD 1.5 model fine tuned on Midjourney; prompt with "mdjrny-v4 style" (2.13 GB)',
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="seek.art MEGA",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="coreco/seek.art_MEGA",
|
||
|
description='A general use SD-1.5 "anything" model that supports multiple styles (2.1 GB)',
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="TrinArt v2",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="naclbit/trinart_stable_diffusion_v2",
|
||
|
description="An SD-1.5 model finetuned with ~40K assorted high resolution manga/anime-style images (2.13 GB)",
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="SD 2.1 (base)",
|
||
|
base=BaseModelType.StableDiffusion2,
|
||
|
source="stabilityai/stable-diffusion-2-1",
|
||
|
description="Stable Diffusion version 2.1 diffusers model, trained on 768 pixel images (5.21 GB)",
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="SD 2.0 (inpainting)",
|
||
|
base=BaseModelType.StableDiffusion2,
|
||
|
source="stabilityai/stable-diffusion-2-inpainting",
|
||
|
description="Stable Diffusion version 2.0 inpainting model (5.21 GB)",
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="SDXL (base)",
|
||
|
base=BaseModelType.StableDiffusionXL,
|
||
|
source="stabilityai/stable-diffusion-xl-base-1.0",
|
||
|
description="Stable Diffusion XL base model (12 GB)",
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="SDXL Refiner",
|
||
|
base=BaseModelType.StableDiffusionXLRefiner,
|
||
|
source="stabilityai/stable-diffusion-xl-refiner-1.0",
|
||
|
description="Stable Diffusion XL refiner model (12 GB)",
|
||
|
type=ModelType.Main,
|
||
|
),
|
||
|
# endregion
|
||
|
# region VAE
|
||
|
StarterModel(
|
||
|
name="sdxl-vae-fp16-fix",
|
||
|
base=BaseModelType.StableDiffusionXL,
|
||
|
source="madebyollin/sdxl-vae-fp16-fix",
|
||
|
description="Version of the SDXL-1.0 VAE that works in half precision mode",
|
||
|
type=ModelType.VAE,
|
||
|
),
|
||
|
# endregion
|
||
|
# region LoRA
|
||
|
StarterModel(
|
||
|
name="FlatColor",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="https://civitai.com/models/6433/loraflatcolor",
|
||
|
description="A LoRA that generates scenery using solid blocks of color",
|
||
|
type=ModelType.LoRA,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="Ink scenery",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="https://civitai.com/api/download/models/83390",
|
||
|
description="Generate india ink-like landscapes",
|
||
|
type=ModelType.LoRA,
|
||
|
),
|
||
|
# endregion
|
||
|
# region IP Adapter
|
||
|
StarterModel(
|
||
|
name="IP Adapter",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="InvokeAI/ip_adapter_sd15",
|
||
|
description="IP-Adapter for SD 1.5 models",
|
||
|
type=ModelType.IPAdapter,
|
||
|
dependencies=["InvokeAI/ip_adapter_sd_image_encoder"],
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="IP Adapter Plus",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="InvokeAI/ip_adapter_plus_sd15",
|
||
|
description="Refined IP-Adapter for SD 1.5 models",
|
||
|
type=ModelType.IPAdapter,
|
||
|
dependencies=["InvokeAI/ip_adapter_sd_image_encoder"],
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="IP Adapter Plus Face",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="InvokeAI/ip_adapter_plus_face_sd15",
|
||
|
description="Refined IP-Adapter for SD 1.5 models, adapted for faces",
|
||
|
type=ModelType.IPAdapter,
|
||
|
dependencies=["InvokeAI/ip_adapter_sd_image_encoder"],
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="IP Adapter SDXL",
|
||
|
base=BaseModelType.StableDiffusionXL,
|
||
|
source="InvokeAI/ip_adapter_sdxl",
|
||
|
description="IP-Adapter for SDXL models",
|
||
|
type=ModelType.IPAdapter,
|
||
|
dependencies=["InvokeAI/ip_adapter_sdxl_image_encoder"],
|
||
|
),
|
||
|
# endregion
|
||
|
# region ControlNet
|
||
|
StarterModel(
|
||
|
name="QRCode Monster",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="monster-labs/control_v1p_sd15_qrcode_monster",
|
||
|
description="Controlnet model that generates scannable creative QR codes",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="canny",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11p_sd15_canny",
|
||
|
description="Controlnet weights trained on sd-1.5 with canny conditioning.",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="inpaint",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11p_sd15_inpaint",
|
||
|
description="Controlnet weights trained on sd-1.5 with canny conditioning, inpaint version",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="mlsd",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11p_sd15_mlsd",
|
||
|
description="Controlnet weights trained on sd-1.5 with canny conditioning, MLSD version",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="depth",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11f1p_sd15_depth",
|
||
|
description="Controlnet weights trained on sd-1.5 with depth conditioning",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="normal_bae",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11p_sd15_normalbae",
|
||
|
description="Controlnet weights trained on sd-1.5 with normalbae image conditioning",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="seg",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11p_sd15_seg",
|
||
|
description="Controlnet weights trained on sd-1.5 with seg image conditioning",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="lineart",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11p_sd15_lineart",
|
||
|
description="Controlnet weights trained on sd-1.5 with lineart image conditioning",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="lineart_anime",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11p_sd15s2_lineart_anime",
|
||
|
description="Controlnet weights trained on sd-1.5 with anime image conditioning",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="openpose",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11p_sd15_openpose",
|
||
|
description="Controlnet weights trained on sd-1.5 with openpose image conditioning",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="scribble",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11p_sd15_scribble",
|
||
|
description="Controlnet weights trained on sd-1.5 with scribble image conditioning",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="softedge",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11p_sd15_softedge",
|
||
|
description="Controlnet weights trained on sd-1.5 with soft edge conditioning",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="shuffle",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11e_sd15_shuffle",
|
||
|
description="Controlnet weights trained on sd-1.5 with shuffle image conditioning",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="tile",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11f1e_sd15_tile",
|
||
|
description="Controlnet weights trained on sd-1.5 with tiled image conditioning",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="ip2p",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="lllyasviel/control_v11e_sd15_ip2p",
|
||
|
description="Controlnet weights trained on sd-1.5 with ip2p conditioning.",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="canny-sdxl",
|
||
|
base=BaseModelType.StableDiffusionXL,
|
||
|
source="diffusers/controlnet-canny-sdxl-1.0",
|
||
|
description="Controlnet weights trained on sdxl-1.0 with canny conditioning.",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="depth-sdxl",
|
||
|
base=BaseModelType.StableDiffusionXL,
|
||
|
source="diffusers/controlnet-depth-sdxl-1.0",
|
||
|
description="Controlnet weights trained on sdxl-1.0 with depth conditioning.",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="softedge-dexined-sdxl",
|
||
|
base=BaseModelType.StableDiffusionXL,
|
||
|
source="SargeZT/controlnet-sd-xl-1.0-softedge-dexined",
|
||
|
description="Controlnet weights trained on sdxl-1.0 with dexined soft edge preprocessing.",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="depth-16bit-zoe-sdxl",
|
||
|
base=BaseModelType.StableDiffusionXL,
|
||
|
source="SargeZT/controlnet-sd-xl-1.0-depth-16bit-zoe",
|
||
|
description="Controlnet weights trained on sdxl-1.0 with Zoe's preprocessor (16 bits).",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="depth-zoe-sdxl",
|
||
|
base=BaseModelType.StableDiffusionXL,
|
||
|
source="diffusers/controlnet-zoe-depth-sdxl-1.0",
|
||
|
description="Controlnet weights trained on sdxl-1.0 with Zoe's preprocessor (32 bits).",
|
||
|
type=ModelType.ControlNet,
|
||
|
),
|
||
|
# endregion
|
||
|
# region T2I Adapter
|
||
|
StarterModel(
|
||
|
name="canny-sd15",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="TencentARC/t2iadapter_canny_sd15v2",
|
||
|
description="T2I Adapter weights trained on sd-1.5 with canny conditioning.",
|
||
|
type=ModelType.T2IAdapter,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="sketch-sd15",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="TencentARC/t2iadapter_sketch_sd15v2",
|
||
|
description="T2I Adapter weights trained on sd-1.5 with sketch conditioning.",
|
||
|
type=ModelType.T2IAdapter,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="depth-sd15",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="TencentARC/t2iadapter_depth_sd15v2",
|
||
|
description="T2I Adapter weights trained on sd-1.5 with depth conditioning.",
|
||
|
type=ModelType.T2IAdapter,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="zoedepth-sd15",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="TencentARC/t2iadapter_zoedepth_sd15v1",
|
||
|
description="T2I Adapter weights trained on sd-1.5 with zoe depth conditioning.",
|
||
|
type=ModelType.T2IAdapter,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="canny-sdxl",
|
||
|
base=BaseModelType.StableDiffusionXL,
|
||
|
source="TencentARC/t2i-adapter-canny-sdxl-1.0",
|
||
|
description="T2I Adapter weights trained on sdxl-1.0 with canny conditioning.",
|
||
|
type=ModelType.T2IAdapter,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="zoedepth-sdxl",
|
||
|
base=BaseModelType.StableDiffusionXL,
|
||
|
source="TencentARC/t2i-adapter-depth-zoe-sdxl-1.0",
|
||
|
description="T2I Adapter weights trained on sdxl-1.0 with zoe depth conditioning.",
|
||
|
type=ModelType.T2IAdapter,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="lineart-sdxl",
|
||
|
base=BaseModelType.StableDiffusionXL,
|
||
|
source="TencentARC/t2i-adapter-lineart-sdxl-1.0",
|
||
|
description="T2I Adapter weights trained on sdxl-1.0 with lineart conditioning.",
|
||
|
type=ModelType.T2IAdapter,
|
||
|
),
|
||
|
StarterModel(
|
||
|
name="sketch-sdxl",
|
||
|
base=BaseModelType.StableDiffusionXL,
|
||
|
source="TencentARC/t2i-adapter-sketch-sdxl-1.0",
|
||
|
description="T2I Adapter weights trained on sdxl-1.0 with sketch conditioning.",
|
||
|
type=ModelType.T2IAdapter,
|
||
|
),
|
||
|
# endregion
|
||
|
# region TI
|
||
|
StarterModel(
|
||
|
name="EasyNegative",
|
||
|
base=BaseModelType.StableDiffusion1,
|
||
|
source="https://huggingface.co/embed/EasyNegative/resolve/main/EasyNegative.safetensors",
|
||
|
description="A textual inversion to use in the negative prompt to reduce bad anatomy",
|
||
|
type=ModelType.TextualInversion,
|
||
|
),
|
||
|
# endregion
|
||
|
]
|
||
|
|
||
|
assert len(STARTER_MODELS) == len({m.source for m in STARTER_MODELS}), "Duplicate starter models"
|