[Unit]
Description=A Stable Diffusion CPP Server for Generating 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 1234 \
    --diffusion-model /models/image/z-turbo/z_image_turbo-Q4_K.gguf \
    --vae /models/image/z-turbo/ae.safetensors  \
    --llm /models/image/z-turbo/qwen_3_4b.safetensors \
    --cfg-scale 1.0 \
    --vae-conv-direct \
    -v \
    --seed -1 \
    --steps 8

[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
