[Unit]
Description=A Stable Diffusion CPP Server for Editing Images

[Container]
# Shared AI Internal pod
Pod=ai-internal.pod

# Vulkan image for AMD GPU
Image=localhost/stable-diffusion-cpp:latest

# Shared models directory
Volume=/home/ai/models:/models:z

# GPU Device
AddDevice=/dev/kfd
AddDevice=/dev/dri

# Override entrypoint to use server
Entrypoint=/sd-server

# Server args
Exec=-l 0.0.0.0 \
    --listen-port 1235 \
    --diffusion-model /models/image/flux2-klein/flux-2-klein-9b-Q4_0.gguf \
    --vae /models/image/flux2-klein/ae.safetensors \
    --llm /models/image/flux2-klein/Qwen3-8B-Q4_K_M.gguf \
    --cfg-scale 1.0 \
    --sampling-method euler \
    -v \
    --steps 4 \
    --vae-conv-direct

[Service]
Restart=always
# Extend Timeout to allow time to pull the image
TimeoutStartSec=900

[Install]
# Start by default on boot
WantedBy=multi-user.target default.target
