Files
runpod-ai-orchestrator/arty.yml

254 lines
9.2 KiB
YAML
Raw Normal View History

2025-11-26 15:31:41 +01:00
name: "RunPod AI Service Orchestrator"
version: "0.1.0"
description: "Process-based AI service orchestrator for RunPod GPU instances with ComfyUI integration"
author: "valknar@pivoine.art"
license: "MIT"
# Environment profiles for selective repository management
envs:
# RunPod environment variables
default:
COMFYUI_ROOT: services/comfyui
AUDIOCRAFT_ROOT: services/audiocraft
# Git repositories to clone for a fresh RunPod deployment
references:
# AudioCraft Studio
- url: https://dev.pivoine.art/valknar/audiocraft-ui.git
into: $AUDIOCRAFT_ROOT
# ComfyUI base installation
- url: https://github.com/comfyanonymous/ComfyUI.git
into: $COMFYUI_ROOT
description: "ComfyUI - Node-based interface for image/video/audio generation"
# ComfyUI Essential Custom Nodes
- url: https://github.com/ltdrdata/ComfyUI-Manager.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI-Manager
description: "ComfyUI Manager - Install/manage custom nodes and models"
- url: https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI-VideoHelperSuite
description: "Video operations and processing"
- url: https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI-AnimateDiff-Evolved
description: "AnimateDiff for video generation"
- url: https://github.com/cubiq/ComfyUI_IPAdapter_plus.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI_IPAdapter_plus
description: "IP-Adapter for style transfer"
- url: https://github.com/ltdrdata/ComfyUI-Impact-Pack.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI-Impact-Pack
description: "Auto face enhancement and detailer"
# ComfyUI Optional Custom Nodes
- url: https://github.com/kijai/ComfyUI-CogVideoXWrapper.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI-CogVideoXWrapper
description: "CogVideoX integration for text-to-video"
- url: https://github.com/ltdrdata/ComfyUI-Inspire-Pack.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI-Inspire-Pack
description: "Additional inspiration tools"
- url: https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI-Advanced-ControlNet
description: "Advanced ControlNet features"
- url: https://github.com/MrForExample/ComfyUI-3D-Pack.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI-3D-Pack
description: "3D asset generation"
- url: https://github.com/MixLabPro/comfyui-sound-lab.git
into: $COMFYUI_ROOT/custom_nodes/comfyui-sound-lab
description: "MusicGen and Stable Audio integration"
- url: https://github.com/billwuhao/ComfyUI_DiffRhythm.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI_DiffRhythm
description: "DiffRhythm - Full-length song generation (up to 4m45s) with text/audio conditioning"
- url: https://github.com/billwuhao/ComfyUI_ACE-Step.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI_ACE-Step
description: "ACE Step - State-of-the-art music generation with 19-language support, voice cloning, and superior coherence"
- url: https://github.com/ssitu/ComfyUI_UltimateSDUpscale.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI_UltimateSDUpscale
description: "Ultimate SD Upscale for high-quality image upscaling"
- url: https://github.com/kijai/ComfyUI-KJNodes.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI-KJNodes
description: "Kijai optimizations for HunyuanVideo and Wan2.2 (FP8 scaling, video helpers, model loading)"
- url: https://github.com/Fannovel16/comfyui_controlnet_aux.git
into: $COMFYUI_ROOT/custom_nodes/comfyui_controlnet_aux
description: "ControlNet preprocessors (Canny, Depth, OpenPose, MLSD) for Wan2.2 Fun Control"
- url: https://github.com/city96/ComfyUI-GGUF.git
into: $COMFYUI_ROOT/custom_nodes/ComfyUI-GGUF
description: "GGUF quantization support for memory-efficient model loading"
- url: https://github.com/11cafe/comfyui-workspace-manager.git
into: $COMFYUI_ROOT/custom_nodes/comfyui-workspace-manager
description: "Workspace manager for ComfyUI - workflow/model organization"
- url: https://dev.pivoine.art/valknar/comfyui-extras.git
into: $COMFYUI_ROOT/custom_nodes/comfyui-extras
# Deployment scripts for RunPod instances
scripts:
setup: |
arty deps
arty setup/tailscale
arty setup/services
arty setup/comfyui
arty models/download
arty models/link
arty supervisor/start
setup/tailscale: |
echo "========================================="
echo " Setting up tailscale"
echo "========================================="
echo ""
2025-11-26 18:04:53 +01:00
if [ ! "$TAILSCALE_AUTHKEY" ]; then
echo " ⚠ Tailscale disabled (no TAILSCALE_AUTHKEY in env)"
echo " Services requiring VPN connectivity will not work"
exit 1
2025-11-26 15:31:41 +01:00
fi
2025-11-26 18:04:53 +01:00
echo " Starting Tailscale daemon..."
tailscaled --tun=userspace-networking --socks5-server=localhost:1055 &
sleep 3
echo " Connecting to Tailscale network..."
HOSTNAME="runpod-ai-orchestrator"
tailscale up --authkey="$TAILSCALE_AUTHKEY" --advertise-tags=tag:gpu --hostname="$HOSTNAME" || {
echo " ⚠ Tailscale connection failed, continuing without VPN"
}
# Get Tailscale IP if connected
TAILSCALE_IP=$(tailscale ip -4 2>/dev/null || echo "not connected")
if [ "$TAILSCALE_IP" == "not connected" ]; then
echo " ⚠ Tailscale failed to obtain IP"
exit 1
fi
echo " ✓ Tailscale connected"
echo " Hostname: $HOSTNAME"
echo " IP: $TAILSCALE_IP"
2025-11-26 15:31:41 +01:00
setup/services: |
echo "========================================="
echo " Setting up services python venvs"
echo "========================================="
echo ""
# Install dependencies for each custom node
echo "Setting up venvs for all services..."
cd services
installed_count=0
skipped_count=0
for dir in */; do
cd $dir && python3 -m venv venv && source venv/bin/activate
if [ -f "${dir}requirements.txt" ]; then
echo ""
echo "📦 Installing ${dir%/} dependencies..."
if pip install -r "${dir}requirements.txt"; then
installed_count=$((installed_count + 1))
echo " ✓ ${dir%/} dependencies installed"
else
echo " ⚠ Warning: Some dependencies for ${dir%/} may have failed"
installed_count=$((installed_count + 1))
fi
else
skipped_count=$((skipped_count + 1))
fi
deactivate && cd ..
done
echo ""
echo "✓ Service environments configured successfully"
echo " Services with dependencies: $installed_count"
echo " Services without requirements.txt: $skipped_count"
setup/comfyui: |
echo "========================================="
echo " Setting up ComfyUI"
echo "========================================="
echo ""
cd $COMFYUI_ROOT
# Activate ComfyUI venv
if [ ! -d "venv" ]; then
echo "❌ ERROR: ComfyUI venv not found. Run setup/venvs first!"
exit 1
fi
source venv/bin/activate
# Install common extension dependencies
echo "Installing common extension dependencies..."
pip install GitPython opencv-python-headless diffusers insightface onnxruntime
# Create model directory structure
echo "Creating ComfyUI model directories..."
mkdir -p $COMFYUI_ROOT/models/{checkpoints,unet,vae,loras,clip,clip_vision,controlnet,ipadapter,embeddings,upscale_models,video_models,animatediff_models,animatediff_motion_lora,audio_models,configs,diffusers,diffusion_models,musicgen}
# Install dependencies for each custom node
echo "Installing dependencies for all custom nodes..."
cd custom_nodes
installed_count=0
skipped_count=0
for dir in */; do
if [ -f "${dir}requirements.txt" ]; then
echo ""
echo "📦 Installing ${dir%/} dependencies..."
if pip install -r "${dir}requirements.txt"; then
installed_count=$((installed_count + 1))
echo " ✓ ${dir%/} dependencies installed"
else
echo " ⚠ Warning: Some dependencies for ${dir%/} may have failed"
installed_count=$((installed_count + 1))
fi
else
skipped_count=$((skipped_count + 1))
fi
done
deactivate
echo ""
echo "✓ Extension dependencies installation complete"
echo " Extensions with dependencies: $installed_count"
echo " Extensions without requirements.txt: $skipped_count"
models/download: |
artifact_civitai_download.sh download -c ./models/models_civitai.yaml --cache-dir ./.cache/civitai
artifact_huggingface_download.sh download -c ./models/models_huggingface.yaml --cache-dir ./.cache/huggingface
models/link: |
artifact_civitai_download.sh link -c ./models/models_civitai.yaml --cache-dir ./.cache/civitai --output-dir ./services/comfyui/models
artifact_huggingface_download.sh link -c ./models/models_huggingface.yaml --cache-dir ./.cache/huggingface --output-dir ./services/comfyui/models
#
# Supervisor Control Scripts
#
supervisor/start: |
2025-11-26 18:04:53 +01:00
mkdir -p .logs/
2025-11-26 15:31:41 +01:00
supervisord -c supervisord.conf
supervisor/stop: |
supervisorctl -c supervisord.conf shutdown
supervisor/status: |
supervisorctl -c supervisord.conf status
supervisor/restart: |
supervisorctl -c supervisord.conf restart all