feat: 新增文件
This commit is contained in:
44
scripts/check_comfy.py
Normal file
44
scripts/check_comfy.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import sys
|
||||
from typing import Any
|
||||
|
||||
import httpx
|
||||
|
||||
|
||||
def fetch_object_info(base_url: str, timeout_s: float = 5.0) -> dict[str, Any]:
|
||||
url = base_url.rstrip("/") + "/object_info"
|
||||
with httpx.Client(timeout=timeout_s) as client:
|
||||
r = client.get(url)
|
||||
r.raise_for_status()
|
||||
data = r.json()
|
||||
if not isinstance(data, dict):
|
||||
raise RuntimeError(f"Unexpected object_info type: {type(data)}")
|
||||
return data
|
||||
|
||||
|
||||
def main() -> int:
|
||||
parser = argparse.ArgumentParser(description="Check ComfyUI API connectivity")
|
||||
parser.add_argument(
|
||||
"--base-url",
|
||||
default="http://127.0.0.1:8188",
|
||||
help="ComfyUI base URL (default: http://127.0.0.1:8188)",
|
||||
)
|
||||
parser.add_argument("--timeout", type=float, default=5.0, help="Request timeout seconds")
|
||||
parser.add_argument("--pretty", action="store_true", help="Pretty print JSON")
|
||||
args = parser.parse_args()
|
||||
|
||||
try:
|
||||
data = fetch_object_info(args.base_url, timeout_s=args.timeout)
|
||||
out = json.dumps(data, ensure_ascii=False, indent=2 if args.pretty else None)
|
||||
sys.stdout.write(out + "\n")
|
||||
return 0
|
||||
except Exception as e:
|
||||
sys.stderr.write(f"[check_comfy] ERROR: {e}\n")
|
||||
return 2
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
9
scripts/dev_container.sh
Executable file
9
scripts/dev_container.sh
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
echo "[dev] build + start container (Node+Python unified)..."
|
||||
docker compose up --build
|
||||
|
||||
46
scripts/dev_local.sh
Executable file
46
scripts/dev_local.sh
Executable file
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Local development helper (Docker-first).
|
||||
# - mock mode: no ComfyUI / no OpenAI key required (uses fallback scenes)
|
||||
# - comfy mode: assumes ComfyUI is running on host at :8188
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
MODE="${1:-mock}" # mock | comfy
|
||||
PROMPT="${2:-写一个温暖的城市夜景故事}"
|
||||
|
||||
CONFIG_PATH="${CONFIG_PATH:-./configs/config.yaml}"
|
||||
|
||||
echo "[dev] building image..."
|
||||
docker compose build
|
||||
|
||||
if [[ "$MODE" == "mock" ]]; then
|
||||
echo "[dev] run mock pipeline..."
|
||||
docker compose run --rm \
|
||||
-e OPENAI_API_KEY="${OPENAI_API_KEY:-}" \
|
||||
-e OPENAI_BASE_URL="${OPENAI_BASE_URL:-}" \
|
||||
aivideo \
|
||||
python main.py --config "$CONFIG_PATH" --prompt "$PROMPT" --mock
|
||||
echo "[dev] done. output: ./final_poc.mp4"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ "$MODE" == "comfy" ]]; then
|
||||
echo "[dev] checking ComfyUI connectivity (host.docker.internal)..."
|
||||
docker compose run --rm aivideo python scripts/check_comfy.py --base-url http://host.docker.internal:8188 >/dev/null
|
||||
echo "[dev] run comfy pipeline..."
|
||||
echo "[dev] NOTE: set app.comfy_base_url=http://host.docker.internal:8188 in configs/config.yaml"
|
||||
docker compose run --rm \
|
||||
-e OPENAI_API_KEY="${OPENAI_API_KEY:-}" \
|
||||
-e OPENAI_BASE_URL="${OPENAI_BASE_URL:-}" \
|
||||
aivideo \
|
||||
python main.py --config "$CONFIG_PATH" --prompt "$PROMPT"
|
||||
echo "[dev] done. output: ./final_poc.mp4"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "[dev] unknown mode: $MODE (use: mock | comfy)" >&2
|
||||
exit 2
|
||||
|
||||
Reference in New Issue
Block a user