{self, inputs, ...}:{ flake.nixosModules.llama = { lib, pkgs, ... }: let llama_cmd = "${pkgs.llama-cpp-cuda}/bin/llama-server --port \${PORT} --mmap"; sd_cmd = "${pkgs.stable-diffusion-cpp-cuda}/bin/sd-server --listen-port \${PORT} --offload-to-cpu --mmap --lora-model-dir ${sd_models}/LORA"; tts_cmd = "${pkgs.pocket-tts}/bin/pocket-tts serve --port \${PORT}"; chat_models = "/var/AI/Models/Chat/ggufs"; sd_models = "/var/AI/Models/Art"; in { nixpkgs.overlays = [ (final: prev: { llama-cpp-cuda = prev.llama-cpp.override { cudaSupport = true; blasSupport = true; }; }) ]; services.sillytavern = { enable = true; port = 9002; listen = true; listenAddressIPv4 = "127.0.0.1"; whitelist = false; }; services.llama-swap = { enable = true; port = 9001; openFirewall = true; listenAddress = "0.0.0.0"; settings = { models = { #TTS "pocket_tts" = { ttl = 3600; cmd = "${tts_cmd}"; }; #Language Models "llm/angelic_eclipse-12b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 131072 --model ${chat_models}/Angelic_Eclipse_12B-Q4_K_M.gguf"; }; "llm/crimson-constellation-12b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 131072 --model ${chat_models}/Angelic_Eclipse_12B-Q4_K_M.gguf"; }; "llm/cydonia-24b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 131072 --model ${chat_models}/TheDrummer_Cydonia-24B-v4.3-Q4_K_M.gguf"; }; "llm/cydonia-redux-22b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 32768 --model ${chat_models}/Cydonia-Redux-22B-v1.1-Q4_K_M.gguf"; }; "llm/gemma3-R1-27b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 131072 --model ${chat_models}/Gemma3-R1-27B-v1-Q4_K_M.gguf"; }; "llm/hearthfire-24b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 131072 --model ${chat_models}/Hearthfire-24B-Q4_K_M.gguf"; }; "llm/impish_bloodmoon" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 131072 --model ${chat_models}/Impish_Bloodmoon-Q4_K_M.gguf"; }; "llm/llama_abliterated_dark_champion" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 131072 --model ${chat_models}/Llama-3.2-8X3B-18.4B-MOE-Dark-Champion-Instruct-uncensored-abliterated-Q4_K_M.gguf"; }; "llm/loki-24b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 131072 --model ${chat_models}/M3.2-24B-Loki-V2-Q4_K_M.gguf"; }; "llm/magidonia-24b" = { ttl = 3600; cmd = "${llama_cmd} -m ${chat_models}/Magidonia-24B-v4.3-Q4_K_M.gguf --ctx-size 131072"; }; "llm/melody-31b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 262144 --model ${chat_models}/Melody1437-31B-v2.0-Q4_K_M.gguf"; }; "llm/mars-27b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 131072 --model ${chat_models}/Mars_27B_V1-28B-Q4_K_M.gguf"; }; "llm/omega_directive-24b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 131072 --model ${chat_models}/MS3.2-The-Omega-Directive-24B-Unslop-v2.0-Q4_K_M.gguf"; }; "llm/orion-26b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 131072 --model ${chat_models}/Orion-26B-A4B-v1b-Q4_K_M.gguf"; }; "llm/qwen_14b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 40960 --model ${chat_models}/Qwen3-14B-Q4_K_M.gguf"; }; "llm/qwen_32b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 40960 --model ${chat_models}/Qwen3-32B-Q4_K_M.gguf"; }; "llm/snowpiercer-15b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 65536 --model ${chat_models}/Snowpiercer-15B-v1-Q4_K_M.gguf"; }; "llm/valkyrie-49b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 131072 --model ${chat_models}/Valkyrie-49B-v2.1-Q4_K_M.gguf"; }; "llm/wayfarer-12b" = { ttl = 3600; cmd = "${llama_cmd} --ctx-size 131072 --model ${chat_models}/wayfarer-12B-Q4_K_M.gguf"; }; #Diffusion Models "sd/amanesseWorks" = { ttl = 3600; checkEndpoint = "/"; cmd = "${sd_cmd} --model ${sd_models}/amanesseWorks_v20.safetensors"; }; "sd/animaOfficial" = { ttl = 3600; checkEndpoint = "/"; cmd = "${sd_cmd} --vae ${sd_models}/VAE_TEXT/qwen_image_vae.safetensors --llm ${sd_models}/VAE_TEXT/qwen_3_06b_base.safetensors --diffusion-model ${sd_models}/animaOfficial_preview3Base.safetensors"; }; "sd/azureStarfire" = { ttl = 3600; checkEndpoint = "/"; cmd = "${sd_cmd} --model ${sd_models}/azureStarfire_stellarStable.safetensors"; }; "sd/cyberrealistic_pony_semi" = { ttl = 3600; checkEndpoint = "/"; cmd = "${sd_cmd} --model ${sd_models}/cyberrealisticPony_semiRealV45.safetensors"; }; "sd/cyberrealistic_pony_core_small" = { ttl = 3600; checkEndpoint = "/"; cmd = "${sd_cmd} --model ${sd_models}/cyberrealisticPony_v180Coreshift.safetensors"; }; "sd/cyberrealistic_pony_core_large" = { ttl = 3600; checkEndpoint = "/"; cmd = "${sd_cmd} --model ${sd_models}/cyberrealisticPony_v180Coreshift(1).safetensors"; }; "sd/miaomiao_harem" = { ttl = 3600; checkEndpoint = "/"; cmd = "${sd_cmd} --model ${sd_models}/miaomiaoHarem_v20.safetensors"; }; "sd/nova_furry" = { ttl = 3600; checkEndpoint = "/"; cmd = "${sd_cmd} --model ${sd_models}/novaFurryXL_ilV150.safetensors"; }; "sd/nova_pkmn" = { ttl = 3600; checkEndpoint = "/"; cmd = "${sd_cmd} --model ${sd_models}/novaPKMNXL_v10.safetensors"; }; "sd/unholy_desire" = { ttl = 3600; checkEndpoint = "/"; cmd = "${sd_cmd} --model ${sd_models}/unholyDesireMixSinister_v80.safetensors"; }; "sd/waiIllustrious" = { ttl = 3600; checkEndpoint = "/"; cmd = "${sd_cmd} --model ${sd_models}/waiIllustriousSDXL_v170.safetensors"; }; "sd/yiff_in_hell" = { ttl = 3600; checkEndpoint = "/"; cmd = "${sd_cmd} --model ${sd_models}/yiffInHell_yihxxxTENDEDV20.safetensors"; }; }; }; }; services.nginx = { enable = true; virtualHosts."192.168.0.101" = { locations."/" = { proxyPass = "http://localhost:9002"; extraConfig = '' auth_basic "Password Required"; auth_basic_user_file /etc/htpasswd; ''; }; }; }; environment.systemPackages = with pkgs; [ llama-cpp-cuda stable-diffusion-cpp-cuda ]; }; }