import os

CIVITAI_API_KEY = os.environ.get("CIVITAI_API_KEY")
HF_TOKEN = os.environ.get("HF_TOKEN")
hf_read_token = os.environ.get('HF_READ_TOKEN') # only use for private repo

# - **List Models**
load_diffusers_format_model = [
    'stabilityai/stable-diffusion-xl-base-1.0',
    'cagliostrolab/animagine-xl-3.1',
    'John6666/epicrealism-xl-v8kiss-sdxl',
    'misri/epicrealismXL_v7FinalDestination',
    'misri/juggernautXL_juggernautX',
    'misri/zavychromaxl_v80',
    'SG161222/RealVisXL_V4.0',
    'SG161222/RealVisXL_V5.0',
    'misri/newrealityxlAllInOne_Newreality40',
    'eienmojiki/Anything-XL',
    'eienmojiki/Starry-XL-v5.2',
    'gsdf/CounterfeitXL',
    'John6666/silvermoon-mix-01xl-v11-sdxl',
    'WhiteAiZ/autismmixSDXL_autismmixConfetti_diffusers',
    'kitty7779/ponyDiffusionV6XL',
    'GraydientPlatformAPI/aniverse-pony',
    'John6666/mistoon-anime-ponyalpha-sdxl',
    'John6666/ebara-mfcg-pony-mix-v12-sdxl',
    'John6666/t-ponynai3-v51-sdxl',
    'John6666/mala-anime-mix-nsfw-pony-xl-v5-sdxl',
    'John6666/wai-real-mix-v11-sdxl',
    'John6666/cyberrealistic-pony-v63-sdxl',
    'GraydientPlatformAPI/realcartoon-pony-diffusion',
    'John6666/nova-anime-xl-pony-v5-sdxl',
    'John6666/autismmix-sdxl-autismmix-pony-sdxl',
    'yodayo-ai/kivotos-xl-2.0',
    'yodayo-ai/holodayo-xl-2.1',
    'yodayo-ai/clandestine-xl-1.0',
    'digiplay/majicMIX_sombre_v2',
    'digiplay/majicMIX_realistic_v6',
    'digiplay/majicMIX_realistic_v7',
    'digiplay/DreamShaper_8',
    'digiplay/BeautifulArt_v1',
    'digiplay/DarkSushi2.5D_v1',
    'digiplay/darkphoenix3D_v1.1',
    'digiplay/BeenYouLiteL11_diffusers',
    'Yntec/RevAnimatedV2Rebirth',
    'youknownothing/cyberrealistic_v50',
    'youknownothing/deliberate-v6',
    'GraydientPlatformAPI/deliberate-cyber3',
    'GraydientPlatformAPI/picx-real',
    'GraydientPlatformAPI/perfectworld6',
    'emilianJR/epiCRealism',
    'votepurchase/counterfeitV30_v30',
    'votepurchase/ChilloutMix',
    'Meina/MeinaMix_V11',
    'Meina/MeinaUnreal_V5',
    'Meina/MeinaPastel_V7',
    'GraydientPlatformAPI/realcartoon3d-17',
    'GraydientPlatformAPI/realcartoon-pixar11',
    'GraydientPlatformAPI/realcartoon-real17',
    'KBlueLeaf/Kohaku-XL-Epsilon-rev2',
    'KBlueLeaf/Kohaku-XL-Epsilon-rev3',
    'KBlueLeaf/Kohaku-XL-Zeta',
    'kayfahaarukku/UrangDiffusion-1.4',
    'Eugeoter/artiwaifu-diffusion-2.0',
    'Raelina/Rae-Diffusion-XL-V2',
    'Raelina/Raemu-XL-V4',
    "camenduru/FLUX.1-dev-diffusers",
    "black-forest-labs/FLUX.1-schnell",
    "sayakpaul/FLUX.1-merged",
    "ostris/OpenFLUX.1",
    "multimodalart/FLUX.1-dev2pro-full",
    "Raelina/Raemu-Flux",
]

DIFFUSERS_FORMAT_LORAS = [
    "nerijs/animation2k-flux",
    "XLabs-AI/flux-RealismLora",
]

# List all Models for specified user
HF_MODEL_USER_LIKES = ["votepurchase"] # sorted by number of likes
HF_MODEL_USER_EX = ["John6666"] # sorted by a special rule


# - **Download Models**
download_model_list = [
]

# - **Download VAEs**
download_vae_list = [
    'https://huggingface.co/madebyollin/sdxl-vae-fp16-fix/resolve/main/sdxl.vae.safetensors?download=true',
    'https://huggingface.co/nubby/blessed-sdxl-vae-fp16-fix/resolve/main/sdxl_vae-fp16fix-c-1.1-b-0.5.safetensors?download=true',
    'https://huggingface.co/nubby/blessed-sdxl-vae-fp16-fix/resolve/main/sdxl_vae-fp16fix-blessed.safetensors?download=true',
    "https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt",
    "https://huggingface.co/stabilityai/sd-vae-ft-ema-original/resolve/main/vae-ft-ema-560000-ema-pruned.ckpt",
]

# - **Download LoRAs**
download_lora_list = [
]

# Download Embeddings
download_embeds = [
    'https://huggingface.co/datasets/Nerfgun3/bad_prompt/blob/main/bad_prompt_version2.pt',
    'https://huggingface.co/embed/negative/resolve/main/EasyNegativeV2.safetensors',
    'https://huggingface.co/embed/negative/resolve/main/bad-hands-5.pt',
]

directory_models = 'models'
os.makedirs(directory_models, exist_ok=True)
directory_loras = 'loras'
os.makedirs(directory_loras, exist_ok=True)
directory_vaes = 'vaes'
os.makedirs(directory_vaes, exist_ok=True)
directory_embeds = 'embedings'
os.makedirs(directory_embeds, exist_ok=True)

directory_embeds_sdxl = 'embedings_xl'
os.makedirs(directory_embeds_sdxl, exist_ok=True)
directory_embeds_positive_sdxl = 'embedings_xl/positive'
os.makedirs(directory_embeds_positive_sdxl, exist_ok=True)

HF_LORA_PRIVATE_REPOS1 = ['John6666/loratest1', 'John6666/loratest3', 'John6666/loratest4', 'John6666/loratest6']
HF_LORA_PRIVATE_REPOS2 = ['John6666/loratest10', 'John6666/loratest11','John6666/loratest'] # to be sorted as 1 repo
HF_LORA_PRIVATE_REPOS = HF_LORA_PRIVATE_REPOS1 + HF_LORA_PRIVATE_REPOS2
HF_LORA_ESSENTIAL_PRIVATE_REPO = 'John6666/loratest1' # to be downloaded on run app
HF_VAE_PRIVATE_REPO = 'John6666/vaetest'
HF_SDXL_EMBEDS_NEGATIVE_PRIVATE_REPO = 'John6666/embeddingstest'
HF_SDXL_EMBEDS_POSITIVE_PRIVATE_REPO = 'John6666/embeddingspositivetest'