Last active
June 2, 2024 06:17
-
-
Save Avaray/784f716d0228485d949db3bd314deb08 to your computer and use it in GitHub Desktop.
AI-Dock Provisioning Script - Pony Diffusion SDXL V6 - Starter with useful Lora's
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
DISK_GB_REQUIRED=30 | |
MAMBA_PACKAGES=( | |
#"package1" | |
#"package2=version" | |
) | |
PIP_PACKAGES=( | |
"bitsandbytes==0.41.2.post2" | |
) | |
EXTENSIONS=( | |
"https://github.com/Mikubill/sd-webui-controlnet" | |
"https://github.com/adieyal/sd-dynamic-prompts" | |
"https://github.com/AUTOMATIC1111/stable-diffusion-webui-wildcards" | |
"https://github.com/hako-mikan/sd-webui-regional-prompter" | |
"https://github.com/Bing-su/adetailer" | |
"https://github.com/pharmapsychotic/clip-interrogator" | |
) | |
CHECKPOINT_MODELS=( | |
# Pony Diffusion V6 XL - https://civitai.com/models/257749/pony-diffusion-v6-xl?modelVersionId=290640 | |
# Trigger words: score_9, score_8_up, score_7_up | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/CHECKPOINT/ponyDiffusionV6XL_v6StartWithThisOne.safetensors' | |
) | |
LORA_MODELS=( | |
# Detailed Painting - Vixon's Pony Styles - https://civitai.com/models/352581/vixons-pony-styles?modelVersionId=399443 | |
# Trigger words: 1dk, portrait | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/1dkXLP.safetensors' | |
# [ALICESOFT] Dohna Dohna Game Artstyle PonyXL - https://civitai.com/models/406021/alicesoft-dohna-dohna-game-artstyle-ponyxl | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/ALICESOFT_Dohna_Dohna_Game_Artstyle_PonyXL.safetensors' | |
# Anime - Styles For Pony Diffusion V6 XL - https://civitai.com/models/297619?modelVersionId=423199 | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/Anime.safetensors' | |
# Concept Art Twilight - Styles for Pony Diffusion V6 XL (Not Artists styles) - https://civitai.com/models/264290?modelVersionId=330475 | |
# Trigger words: concept art, realistic, horror (theme), monochrome, fog, realistic | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/Concept%20Art%20Twilight%20Style%20SDXL_LoRA_Pony%20Diffusion%20V6%20XL.safetensors' | |
# ExpressiveH (Hentai LoRa Style) - https://civitai.com/models/341353/expressiveh-hentai-lora-style?modelVersionId=382152 | |
# Trigger words: Expressiveh | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/Expressive_H-000001.safetensors' | |
# OtherStyle_03 - Styles For Pony Diffusion V6 XL - https://civitai.com/models/297619?modelVersionId=459923 | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/OtherStyle_03-000003.safetensors' | |
# Line Art - Styles for Pony Diffusion V6 XL (Not Artists styles) - https://civitai.com/models/264290/styles-for-pony-diffusion-v6-xl-not-artists-styles?modelVersionId=302106 | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/Line%20Art%20Style%20LoRA%20XL.safetensors' | |
# Smooth Anime 2 - Styles for Pony Diffusion V6 XL (Not Artists styles) - https://civitai.com/models/264290?modelVersionId=333607 | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/Smooth%20Anime%202%20Style%20SDXL_LoRA_Pony%20Diffusion%20V6%20XL.safetensors' | |
# Smooth Anime - Styles for Pony Diffusion V6 XL (Not Artists styles) - https://civitai.com/models/264290?modelVersionId=298238 | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/Smooth%20Anime%20Style%20LoRA%20XL.safetensors' | |
# [GP] somethingweird style [Pony XL] - https://civitai.com/models/315703/gp-somethingweird-style-pony-xl | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/%5BGP%5D%20somethingweird%20%5BPony%20XL%5D.safetensors' | |
# Gothic Neon - Vixon's Pony Styles - https://civitai.com/models/352581?modelVersionId=398847 | |
# Trigger words: g0thicPXL, glowing, neon | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/g0th1cPXL.safetensors' | |
# Neon Cat Girl - Vixon's Pony Styles - https://civitai.com/models/352581?modelVersionId=444010 | |
# Trigger words: n30nc4t | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/n30nc4tXLP.safetensors' | |
# Bold Toon - Citron's Pony Styles - https://civitai.com/models/362745?modelVersionId=447048 | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/BoldToon.safetensors' | |
# Bold Lines - Citron's Pony Styles - https://civitai.com/models/362745?modelVersionId=413110 | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/BoldCAT_P3.safetensors' | |
# Envy Pony Pretty Eyes 01 - https://civitai.com/models/393101/envy-pony-pretty-eyes-01-pretty-anime-eyes?modelVersionId=438481 | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/EnvyPonyPrettyEyes01.safetensors' | |
# Sinfully Stylish (dramatic lighting) - https://civitai.com/models/340248?modelVersionId=449162 | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/sinfully_stylish_PONY_0.2.safetensors' | |
# Serpieri for Pony - https://civitai.com/models/369341/serpieri-for-pony?modelVersionId=412669 | |
# Trigger words: by Serpieri | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/Serpieri_for_Pony-000011.safetensors' | |
# Cutesexyrobutts Style - https://civitai.com/models/11161/cutesexyrobutts-style?modelVersionId=379995 | |
# Trigger words: csr style | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/cutesexyrobutts_style_xl_goofy.safetensors' | |
# Zankuro (Artist Style) [1.5/PonyXL] - https://civitai.com/models/185558/zankuro-artist-style-15ponyxl?modelVersionId=399313 | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/Zankuro_Style_Pony.safetensors' | |
# Cyan Vanilla - Pony Custom styles - https://civitai.com/models/366990/pony-custom-styles?modelVersionId=410113 | |
# Trigger words: cyanbl, sunset atmosphere, cyan shadows | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/LORA/CyanVanilla12.safetensors' | |
) | |
VAE_MODELS=( | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/VAE/sdxl_vae.safetensors' | |
) | |
ESRGAN_MODELS=( | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/ESRGAN/2xHFA2kOmniSR.pth' | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/ESRGAN/4x-UltraSharp.pth' | |
'https://huggingface.co/datasets/AddictiveFuture/sdxl-pony-models-backup/resolve/main/ESRGAN/8x_NMKD-Superscale_150000_G.pth' | |
) | |
CONTROLNET_MODELS=( | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_canny-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_depth-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_hed-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_mlsd-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_normal-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_openpose-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_scribble-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_seg-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/t2iadapter_canny-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/t2iadapter_color-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/t2iadapter_depth-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/t2iadapter_keypose-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/t2iadapter_openpose-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/t2iadapter_seg-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/t2iadapter_sketch-fp16.safetensors" | |
#"https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/t2iadapter_style-fp16.safetensors" | |
) | |
### DO NOT EDIT BELOW HERE UNLESS YOU KNOW WHAT YOU ARE DOING ### | |
function provisioning_start() { | |
source /opt/ai-dock/etc/environment.sh | |
DISK_GB_AVAILABLE=$(($(df --output=avail -m "${WORKSPACE}" | tail -n1) / 1000)) | |
DISK_GB_USED=$(($(df --output=used -m "${WORKSPACE}" | tail -n1) / 1000)) | |
DISK_GB_ALLOCATED=$(($DISK_GB_AVAILABLE + $DISK_GB_USED)) | |
provisioning_print_header | |
provisioning_get_mamba_packages | |
provisioning_get_pip_packages | |
provisioning_get_extensions | |
provisioning_get_models \ | |
"${WORKSPACE}/storage/stable_diffusion/models/ckpt" \ | |
"${CHECKPOINT_MODELS[@]}" | |
provisioning_get_models \ | |
"${WORKSPACE}/storage/stable_diffusion/models/lora" \ | |
"${LORA_MODELS[@]}" | |
provisioning_get_models \ | |
"${WORKSPACE}/storage/stable_diffusion/models/controlnet" \ | |
"${CONTROLNET_MODELS[@]}" | |
provisioning_get_models \ | |
"${WORKSPACE}/storage/stable_diffusion/models/vae" \ | |
"${VAE_MODELS[@]}" | |
provisioning_get_models \ | |
"${WORKSPACE}/storage/stable_diffusion/models/esrgan" \ | |
"${ESRGAN_MODELS[@]}" | |
PLATFORM_FLAGS="" | |
if [[ $XPU_TARGET = "CPU" ]]; then | |
PLATFORM_FLAGS="--use-cpu all --skip-torch-cuda-test --no-half" | |
fi | |
PROVISIONING_FLAGS="--skip-python-version-check --no-download-sd-model --do-not-download-clip --port 11404 --exit" | |
FLAGS_COMBINED="${PLATFORM_FLAGS} $(cat /etc/a1111_webui_flags.conf) ${PROVISIONING_FLAGS}" | |
# Start and exit because webui will probably require a restart | |
cd /opt/stable-diffusion-webui && \ | |
micromamba run -n webui -e LD_PRELOAD=libtcmalloc.so python launch.py \ | |
${FLAGS_COMBINED} | |
provisioning_print_end | |
} | |
function provisioning_get_mamba_packages() { | |
if [[ -n $MAMBA_PACKAGES ]]; then | |
$MAMBA_INSTALL -n webui ${MAMBA_PACKAGES[@]} | |
fi | |
} | |
function provisioning_get_pip_packages() { | |
if [[ -n $PIP_PACKAGES ]]; then | |
micromamba run -n webui $PIP_INSTALL ${PIP_PACKAGES[@]} | |
fi | |
} | |
function provisioning_get_extensions() { | |
for repo in "${EXTENSIONS[@]}"; do | |
dir="${repo##*/}" | |
path="/opt/stable-diffusion-webui/extensions/${dir}" | |
requirements="${path}/requirements.txt" | |
if [[ -d $path ]]; then | |
if [[ ${AUTO_UPDATE,,} != "false" ]]; then | |
printf "Updating extension: %s...\n" "${repo}" | |
( cd "$path" && git pull ) | |
if [[ -e $requirements ]]; then | |
micromamba -n webui run ${PIP_INSTALL} -r "$requirements" | |
fi | |
fi | |
else | |
printf "Downloading extension: %s...\n" "${repo}" | |
git clone "${repo}" "${path}" --recursive | |
if [[ -e $requirements ]]; then | |
micromamba -n webui run ${PIP_INSTALL} -r "${requirements}" | |
fi | |
fi | |
done | |
} | |
function provisioning_get_models() { | |
if [[ -z $2 ]]; then return 1; fi | |
dir="$1" | |
mkdir -p "$dir" | |
shift | |
if [[ $DISK_GB_ALLOCATED -ge $DISK_GB_REQUIRED ]]; then | |
arr=("$@") | |
else | |
printf "WARNING: Low disk space allocation - Only the first model will be downloaded!\n" | |
arr=("$1") | |
fi | |
printf "Downloading %s model(s) to %s...\n" "${#arr[@]}" "$dir" | |
for url in "${arr[@]}"; do | |
printf "Downloading: %s\n" "${url}" | |
provisioning_download "${url}" "${dir}" | |
printf "\n" | |
done | |
} | |
function provisioning_print_header() { | |
printf "\n##############################################\n# #\n# Provisioning container #\n# #\n# This will take some time #\n# #\n# Your container will be ready on completion #\n# #\n##############################################\n\n" | |
if [[ $DISK_GB_ALLOCATED -lt $DISK_GB_REQUIRED ]]; then | |
printf "WARNING: Your allocated disk size (%sGB) is below the recommended %sGB - Some models will not be downloaded\n" "$DISK_GB_ALLOCATED" "$DISK_GB_REQUIRED" | |
fi | |
} | |
function provisioning_print_end() { | |
printf "\nProvisioning complete: Web UI will start now\n\n" | |
} | |
# Download from $1 URL to $2 file path | |
function provisioning_download() { | |
wget -qnc --content-disposition --show-progress -e dotbytes="${3:-4M}" -P "$2" "$1" | |
} | |
provisioning_start |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment