- Implement ComfyCliExecutor for async command execution - Add REST API endpoints for comfy-cli: - Configuration management (/comfy-cli/config/*) - Model management (/comfy-cli/model/*) - Node management (/comfy-cli/node/*) - Create API handlers: ConfigHandler, ModelHandler, NodeHandler - Register routes in comfy_cli_routes.py - Update main __init__.py to support dual CLI (cm-cli + comfy-cli) - Add comprehensive documentation: - COMFY_CLI_API.md: Complete API reference - COMFY_CLI_QUICKSTART.md: Quick start guide - Update README.md with dual CLI support - Update AGENTS.md development guide - Add comfy-cli reference documentation in docs/references/ - Remove trailing spaces from all Python and Markdown files - Ensure all code passes syntax validation Features: - Async job tracking for long-running operations - Structured JSON responses - Comprehensive error handling - Direct filesystem access for model listing (more reliable) - Support for CivitAI and HuggingFace API tokens
129 lines
3.4 KiB
Bash
129 lines
3.4 KiB
Bash
#!/bin/bash
|
||
# user_script.bash - ComfyUI-Nvidia-Docker 容器启动时执行
|
||
#
|
||
# 功能:
|
||
# 1. 安装 comfy-cli(如果未安装)
|
||
# 2. 直接配置 config.ini 绕过 Git 仓库检测
|
||
# 3. 验证配置
|
||
#
|
||
# 使用方法:
|
||
# 1. 将此文件保存为 run/user_script.bash
|
||
# 2. 确保文件有执行权限:chmod +x run/user_script.bash
|
||
# 3. 重启容器
|
||
#
|
||
# 作者:Zero (零号)
|
||
# 日期:2026-03-16
|
||
|
||
set -e # 遇到错误立即退出
|
||
|
||
echo "========================================="
|
||
echo " ComfyCLI 自动配置脚本"
|
||
echo "========================================="
|
||
|
||
# 配置变量
|
||
VENV_PYTHON="/comfy/mnt/venv/bin/python"
|
||
VENV_PIP="/comfy/mnt/venv/bin/pip"
|
||
COMFY_CMD="/comfy/mnt/venv/bin/comfy"
|
||
CONFIG_DIR="$HOME/.config/comfy-cli"
|
||
CONFIG_FILE="$CONFIG_DIR/config.ini"
|
||
WORKSPACE_PATH="/basedir"
|
||
|
||
# 检查 Python 环境
|
||
echo "[1/5] 检查 Python 环境..."
|
||
if [ ! -f "$VENV_PYTHON" ]; then
|
||
echo "❌ 错误:虚拟环境不存在于 $VENV_PYTHON"
|
||
echo " 请确认容器启动脚本正确配置了虚拟环境"
|
||
exit 1
|
||
fi
|
||
echo "✓ Python 环境正常:$VENV_PYTHON"
|
||
|
||
# 安装 comfy-cli
|
||
echo "[2/5] 检查并安装 comfy-cli..."
|
||
if $COMFY_CMD --version &> /dev/null; then
|
||
VERSION=$($COMFY_CMD --version 2>&1 | head -1)
|
||
echo "✓ comfy-cli 已安装:$VERSION"
|
||
else
|
||
echo " 正在安装 comfy-cli..."
|
||
$VENV_PIP install comfy-cli -q
|
||
if [ $? -eq 0 ]; then
|
||
VERSION=$($COMFY_CMD --version 2>&1 | head -1)
|
||
echo "✓ comfy-cli 安装成功:$VERSION"
|
||
else
|
||
echo "❌ 错误:comfy-cli 安装失败"
|
||
exit 1
|
||
fi
|
||
fi
|
||
|
||
# 创建配置目录
|
||
echo "[3/5] 创建配置目录..."
|
||
mkdir -p "$CONFIG_DIR"
|
||
echo "✓ 配置目录:$CONFIG_DIR"
|
||
|
||
# 直接写入 config.ini(绕过 set-default 的 Git 检测)
|
||
echo "[4/5] 配置工作区..."
|
||
cat > "$CONFIG_FILE" << EOF
|
||
[DEFAULT]
|
||
# ComfyUI 工作区路径(Docker 环境持久化目录)
|
||
default_workspace = $WORKSPACE_PATH
|
||
recent_workspace = $WORKSPACE_PATH
|
||
|
||
# ComfyUI 启动参数
|
||
# --listen 0.0.0.0 允许局域网访问
|
||
# --port 8188 默认端口
|
||
default_launch_extras = --listen 0.0.0.0 --port 8188
|
||
|
||
# 使用追踪(可选,设为 false 保护隐私)
|
||
enable_tracking = false
|
||
|
||
# API Tokens(可选,用于下载需要认证的模型)
|
||
# 建议通过 docker-compose.yml 的环境变量设置
|
||
# civitai_api_token = YOUR_CIVITAI_TOKEN
|
||
# hf_api_token = YOUR_HF_TOKEN
|
||
EOF
|
||
|
||
echo "✓ 配置文件已写入:$CONFIG_FILE"
|
||
|
||
# 验证配置
|
||
echo "[5/5] 验证配置..."
|
||
echo ""
|
||
echo "--- comfy which ---"
|
||
$COMFY_CMD which 2>&1 || echo "(可能显示警告,但配置已生效)"
|
||
|
||
echo ""
|
||
echo "--- comfy env ---"
|
||
$COMFY_CMD env 2>&1 | head -10
|
||
|
||
echo ""
|
||
echo "========================================="
|
||
echo " 配置完成!"
|
||
echo "========================================="
|
||
echo ""
|
||
echo "常用命令:"
|
||
echo " # 列出模型"
|
||
echo " comfy model list"
|
||
echo ""
|
||
echo " # 下载模型"
|
||
echo " comfy model download --url \"https://...\""
|
||
echo ""
|
||
echo " # 安装节点"
|
||
echo " comfy node install ComfyUI-Impact-Pack"
|
||
echo ""
|
||
echo " # 查看队列"
|
||
echo " comfy queue"
|
||
echo ""
|
||
echo "提示:如果 comfy 命令不在 PATH 中,使用完整路径:"
|
||
echo " $COMFY_CMD model list"
|
||
echo ""
|
||
|
||
# 可选:设置环境变量(如果通过 docker-compose.yml 传递了 API Token)
|
||
if [ -n "$CIVITAI_API_TOKEN" ]; then
|
||
echo "✓ CIVITAI_API_TOKEN 已设置"
|
||
fi
|
||
|
||
if [ -n "$HF_API_TOKEN" ]; then
|
||
echo "✓ HF_API_TOKEN 已设置"
|
||
fi
|
||
|
||
echo ""
|
||
echo "脚本执行完毕。"
|