Ubuntu 20.04 上部署 SPIRAN ART SUMMONER 的精简实践指南
本指南提供一种轻量、可复现的方式,在 Ubuntu 20.04 系统中完成 SPIRAN ART SUMMONER 的本地部署。全程避免手动编译与环境冲突,聚焦最小可行配置,适用于开发者快速验证模型服务能力。
1. 环境校验
执行以下命令确认基础环境就绪:
# 验证发行版与内核
cat /etc/os-release | grep "VERSION="
# 检查 GPU(可选,仅启用 CUDA 加速时需要)
nvidia-smi --query-gpu=name,memory.total --format=csv,noheader,nounits 2>/dev/null || echo "CPU-only mode"
# 检查可用内存(建议 ≥6GB)与磁盘空间(建议 ≥25GB)
awk '/MemAvailable/ {printf "%.1f GB\n", $2/1024/1024}' /proc/meminfo
df -h . | awk 'NR==2 {print $4}'
2. 初始化 Python 运行时
使用系统自带 Python 3.8 创建隔离环境:
sudo apt update && sudo apt install -y python3-venv git curl wget
python3 -m venv ./venv-summoner
source ./venv-summoner/bin/activate
# 使用清华源加速 pip 安装(可选)
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
3. 获取并安装核心组件
从 GitHub 获取最新稳定分支,并安装运行依赖:
git clone --depth 1 -b main https://github.com/spiran-art/art-summoner.git
cd art-summoner
# 替换为精简版依赖清单(移除非必需开发包)
curl -sLO https://raw.githubusercontent.com/spiran-art/art-summoner/main/requirements-min.txt
pip install -r requirements-min.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
4. 启动服务并验证接口
默认监听 localhost:5000,不启用调试模式:
export FLASK_APP=app.py
export FLASK_ENV=production
flask run --host=127.0.0.1 --port=5000
服务启动后,终端将输出类似:
* Running on http://127.0.0.1:5000
* Press CTRL+C to quit
此时可通过 curl 测试基础 API 是否响应:
curl -X POST http://127.0.0.1:5000/health -H "Content-Type: application/json" -d '{}'
# 应返回 {"status":"ok","model_loaded":true}
5. 批量生成示例(CLI 方式)
跳过 Web UI,直接调用后端生成图像(需确保模型已首次加载完成):
#!/bin/bash
# save as batch-gen.sh, chmod +x batch-gen.sh
prompts=("cyberpunk city at night" "watercolor fox portrait" "minimalist logo design")
for idx in "${!prompts[@]}"; do
prompt="${prompts[$idx]}"
timestamp=$(date +%s)
curl -X POST http://127.0.0.1:5000/generate \
-H "Content-Type: application/json" \
-d "{\"prompt\":\"$prompt\",\"width\":768,\"height\":512,\"steps\":30}" \
--output "output_${timestamp}_${idx}.png"
done
6. 可选:持久化部署(systemd)
如需后台长期运行,创建 systemd 单元文件:
sudo tee /etc/systemd/system/art-summoner.service >/dev/null <<'EOF'
[Unit]
Description=SPIRAN ART SUMMONER Service
After=network.target
[Service]
Type=simple
User=$USER
WorkingDirectory=/home/$USER/art-summoner
Environment="PATH=/home/$USER/venv-summoner/bin"
ExecStart=/home/$USER/venv-summoner/bin/flask run --host=127.0.0.1 --port=5000
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable art-summoner.service
sudo systemctl start art-summoner.service