stevenke1981/comfyui-script
GitHub: stevenke1981/comfyui-script
一键在无头 Ubuntu 服务器安装并管理仅局域网可访问的 ComfyUI 服务。
Stars: 0 | Forks: 0
# Ubuntu Server 上 ComfyUI 自动安装器
一键安装 [ComfyUI](https://github.com/comfyanonymous/ComfyUI),适用于
无头 Ubuntu 服务器(无桌面环境)。它会检测 GPU,安装所有依赖,克隆 ComfyUI,拉取流行自定义节点,可选下载模型 / LoRAs / 工作流,并以 `systemd` 服务运行 ComfyUI,仅开放本地网络访问端口。
适用于常见的家庭实验室环境:一台装有 GPU 的 Ubuntu 主机,同一局域网内的多台工作站访问。
## 功能特性
- 检测 NVIDIA / AMD / Intel / 仅 CPU 并安装正确的堆栈
- 自动安装 CUDA / ROCm / CPU PyTorch 轮子
- 克隆 ComfyUI 及一组流行自定义节点(`ComfyUI-Manager`、`Impact-Pack`、`rgthree`、`controlnet_aux`、`VideoHelperSuite` 等)
- 用于模型、LoRAs 和工作流的纯文本配置文件
- 带重启失败保护和基础加固的 systemd 服务
- UFW 规则仅允许局域网子网访问
- `manage.sh` 辅助工具,支持通过 SSH 远程管理
## 系统要求
- Ubuntu 22.04 / 24.04 服务器
- 可访问互联网的 `sudo` 用户
- (可选)带有兼容驱动的 NVIDIA GPU
- 模型所需磁盘空间;SDXL 单独需要约 15 GB
## 快速开始
```
git clone https://github.com/stevenke1981/comfyui-script.git
cd comfyui-script
# 查看下载内容:
$EDITOR config/models.txt config/loras.txt config/workflows.txt config/custom_nodes.txt
# 完整安装:
sudo COMFYUI_ROOT="$HOME/ComfyUI" COMFYUI_USER="$USER" bash install.sh --all
```
完成后,在局域网任意机器访问 `http://:8188`。
### 逐步运行
```
sudo bash install.sh --step install_deps
sudo bash install.sh --step detect_gpu
sudo bash install.sh --step install_comfyui
sudo bash install.sh --step install_custom_nodes
sudo bash install.sh --step download_models
sudo bash install.sh --step setup_service
sudo bash install.sh --step setup_firewall
sudo bash install.sh --step start_comfyui
```
### 环境变量覆盖
| 变量 | 默认值 | 用途 |
| --- | --- | --- |
| `COMFYUI_ROOT` | `$HOME/ComfyUI` | 安装目录 |
| `COMFYUI_USER` | `$USER` | 拥有并运行 ComfyUI 的用户 |
| `COMFYUI_PORT` | `8188` | 监听端口 |
| `COMFYUI_BIND` | `0.0.0.0` | 绑定地址(设为 `127.0.0.1` 仅限 SSH) |
| `COMFYUI_EXTRA_ARGS` | 空 | 传递给 `main.py` 的额外参数 |
| `LAN_CIDR` | 自动检测 | 允许通过 UFW 的子网 |
| `HF_TOKEN` | — | HuggingFace 令牌,用于受限仓库 |
| `CIVITAI_TOKEN` | — | Civitai 令牌,用于受限 LoRAs |
## 配置下载
编辑三个配置文件并取消注释或添加行。
### `config/models.txt` 和 `config/loras.txt`
```
# ||
checkpoints|https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors|sd_xl_base_1.0.safetensors
loras|https://huggingface.co/latent-consistency/lcm-lora-sdxl/resolve/main/pytorch_lora_weights.safetensors|lcm-lora-sdxl.safetensors
```
`` 是 `ComfyUI/models/` 下的任意文件夹:`checkpoints`、`vae`、`clip`、
`clip_vision`、`controlnet`、`upscale_models`、`embeddings`、`unet`、`loras` 等。
### `config/workflows.txt`
相同格式;文件位于 `ComfyUI/user/default/workflows/`。
### `config/custom_nodes.txt`
每行一个 Git URL。每个节点内的 `requirements.txt` 会自动安装。
## 使用 `manage.sh` 进行局域网管理
安装完成后在服务器(或通过 SSH)运行以下命令:
```
./manage.sh status # show systemd status
./manage.sh start|stop|restart
./manage.sh logs # tail journalctl
./manage.sh update # git pull ComfyUI + reinstall deps
./manage.sh update-nodes # git pull all custom nodes
./manage.sh download # re-run model/LoRA/workflow downloads
./manage.sh add-model checkpoints [filename]
./manage.sh add-lora [filename]
./manage.sh add-node
./manage.sh list-models
./manage.sh gpu # nvidia-smi / rocm-smi
```
你可以在不克隆仓库到客户端的情况下远程调用:
```
ssh user@server 'cd ~/comfyui-script && ./manage.sh status'
```
## 安全注意事项
- UFW 规则仅允许检测到的局域网子网。如自动检测错误,请覆盖为 `LAN_CIDR=192.168.1.0/24`
- ComfyUI **无内置认证**。如需从局域网外访问,请通过 Tailscale、WireGuard 或带有基本认证 / OAuth 的 nginx 反向代理前置
- 不要直接将 8188 端口暴露到公网
## 故障排除
| 症状 | 解决方法 |
| --- | --- |
| `torch.cuda.is_available() == False` | 重启 NVIDIA 驱动安装后运行 `manage.sh restart` |
| 服务启动失败 | `manage.sh logs` |
| 局域网无法访问端口 | `sudo ufw status` 并确认 `LAN_CIDR` |
| 受限的 HuggingFace 模型返回 401 | 在运行 `download_models` 前导出 `export HF_TOKEN=hf_...` |
| 节点导入错误 | 在 ComfyUI-Manager 中对失败节点点击“Try fix” |
## 卸载
```
sudo systemctl disable --now comfyui.service
sudo rm /etc/systemd/system/comfyui.service
sudo ufw delete allow from to any port 8188 proto tcp
rm -rf "$COMFYUI_ROOT"
```
## 许可证
MIT — 参见 [LICENSE](LICENSE)。
标签:AMD, ComfyUI, ComfyUI-Manager, controlnet_aux, CPU, CUDA, GPU检测, Impact-Pack, Intel, LoRA, PyTorch, rgthree, ROCm, SEO: GPU自动检测, SEO: Ubuntu ComfyUI 安装, SEO: 一键安装ComfyUI, SEO: 局域网ComfyUI服务, SSH, systemd服务, Ubuntu Server, UFW, VideoHelperSuite, 一键安装, 依赖安装, 家庭实验室, 局域网访问, 工作流, 应用安全, 服务硬化, 模型下载, 端口限制, 脚本化管理, 自定义节点, 远程管理, 重启恢复