refactor: reorganize directory structure and remove hardcoded paths

Move comfyui and vllm out of models/ directory to top level for better
organization. Replace all hardcoded /workspace paths with relative paths
to make the configuration portable across different environments.

Changes:
- Move models/comfyui/ → comfyui/
- Move models/vllm/ → vllm/
- Remove models/ directory (empty)
- Update arty.yml: replace /workspace with environment variables
- Update supervisord.conf: use relative paths from /workspace/ai
- Update all script references to use new paths
- Maintain TQDM_DISABLE=1 to fix BrokenPipeError

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-22 20:49:27 +01:00
parent 9058b1f9dd
commit 897dcb175a
31 changed files with 124 additions and 124 deletions

210
arty.yml
View File

@@ -8,63 +8,63 @@ license: "MIT"
references: references:
# ComfyUI base installation # ComfyUI base installation
- url: https://github.com/comfyanonymous/ComfyUI.git - url: https://github.com/comfyanonymous/ComfyUI.git
into: /workspace/ComfyUI into: $COMFYUI_ROOT
description: "ComfyUI - Node-based interface for image/video/audio generation" description: "ComfyUI - Node-based interface for image/video/audio generation"
# ComfyUI Essential Custom Nodes # ComfyUI Essential Custom Nodes
- url: https://github.com/ltdrdata/ComfyUI-Manager.git - url: https://github.com/ltdrdata/ComfyUI-Manager.git
into: /workspace/ComfyUI/custom_nodes/ComfyUI-Manager into: $COMFYUI_ROOT/custom_nodes/ComfyUI-Manager
description: "ComfyUI Manager - Install/manage custom nodes and models" description: "ComfyUI Manager - Install/manage custom nodes and models"
essential: true essential: true
- url: https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite.git - url: https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite.git
into: /workspace/ComfyUI/custom_nodes/ComfyUI-VideoHelperSuite into: $COMFYUI_ROOT/custom_nodes/ComfyUI-VideoHelperSuite
description: "Video operations and processing" description: "Video operations and processing"
essential: true essential: true
- url: https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved.git - url: https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved.git
into: /workspace/ComfyUI/custom_nodes/ComfyUI-AnimateDiff-Evolved into: $COMFYUI_ROOT/custom_nodes/ComfyUI-AnimateDiff-Evolved
description: "AnimateDiff for video generation" description: "AnimateDiff for video generation"
essential: true essential: true
- url: https://github.com/cubiq/ComfyUI_IPAdapter_plus.git - url: https://github.com/cubiq/ComfyUI_IPAdapter_plus.git
into: /workspace/ComfyUI/custom_nodes/ComfyUI_IPAdapter_plus into: $COMFYUI_ROOT/custom_nodes/ComfyUI_IPAdapter_plus
description: "IP-Adapter for style transfer" description: "IP-Adapter for style transfer"
essential: true essential: true
- url: https://github.com/ltdrdata/ComfyUI-Impact-Pack.git - url: https://github.com/ltdrdata/ComfyUI-Impact-Pack.git
into: /workspace/ComfyUI/custom_nodes/ComfyUI-Impact-Pack into: $COMFYUI_ROOT/custom_nodes/ComfyUI-Impact-Pack
description: "Auto face enhancement and detailer" description: "Auto face enhancement and detailer"
essential: true essential: true
# ComfyUI Optional Custom Nodes # ComfyUI Optional Custom Nodes
- url: https://github.com/kijai/ComfyUI-CogVideoXWrapper.git - url: https://github.com/kijai/ComfyUI-CogVideoXWrapper.git
into: /workspace/ComfyUI/custom_nodes/ComfyUI-CogVideoXWrapper into: $COMFYUI_ROOT/custom_nodes/ComfyUI-CogVideoXWrapper
description: "CogVideoX integration for text-to-video" description: "CogVideoX integration for text-to-video"
essential: false essential: false
- url: https://github.com/ltdrdata/ComfyUI-Inspire-Pack.git - url: https://github.com/ltdrdata/ComfyUI-Inspire-Pack.git
into: /workspace/ComfyUI/custom_nodes/ComfyUI-Inspire-Pack into: $COMFYUI_ROOT/custom_nodes/ComfyUI-Inspire-Pack
description: "Additional inspiration tools" description: "Additional inspiration tools"
essential: false essential: false
- url: https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet.git - url: https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet.git
into: /workspace/ComfyUI/custom_nodes/ComfyUI-Advanced-ControlNet into: $COMFYUI_ROOT/custom_nodes/ComfyUI-Advanced-ControlNet
description: "Advanced ControlNet features" description: "Advanced ControlNet features"
essential: false essential: false
- url: https://github.com/MrForExample/ComfyUI-3D-Pack.git - url: https://github.com/MrForExample/ComfyUI-3D-Pack.git
into: /workspace/ComfyUI/custom_nodes/ComfyUI-3D-Pack into: $COMFYUI_ROOT/custom_nodes/ComfyUI-3D-Pack
description: "3D asset generation" description: "3D asset generation"
essential: false essential: false
- url: https://github.com/MixLabPro/comfyui-sound-lab.git - url: https://github.com/MixLabPro/comfyui-sound-lab.git
into: /workspace/ComfyUI/custom_nodes/comfyui-sound-lab into: $COMFYUI_ROOT/custom_nodes/comfyui-sound-lab
description: "MusicGen and Stable Audio integration" description: "MusicGen and Stable Audio integration"
essential: false essential: false
- url: https://github.com/ssitu/ComfyUI_UltimateSDUpscale.git - url: https://github.com/ssitu/ComfyUI_UltimateSDUpscale.git
into: /workspace/ComfyUI/custom_nodes/ComfyUI_UltimateSDUpscale into: $COMFYUI_ROOT/custom_nodes/ComfyUI_UltimateSDUpscale
description: "Ultimate SD Upscale for high-quality image upscaling" description: "Ultimate SD Upscale for high-quality image upscaling"
essential: false essential: false
@@ -72,34 +72,34 @@ references:
envs: envs:
# Production: Only essential components # Production: Only essential components
prod: prod:
- /workspace/ai - $AI_ROOT
- /workspace/ComfyUI - $COMFYUI_ROOT
- /workspace/ComfyUI/custom_nodes/ComfyUI-Manager - $COMFYUI_ROOT/custom_nodes/ComfyUI-Manager
- /workspace/ComfyUI/custom_nodes/ComfyUI-VideoHelperSuite - $COMFYUI_ROOT/custom_nodes/ComfyUI-VideoHelperSuite
- /workspace/ComfyUI/custom_nodes/ComfyUI-AnimateDiff-Evolved - $COMFYUI_ROOT/custom_nodes/ComfyUI-AnimateDiff-Evolved
- /workspace/ComfyUI/custom_nodes/ComfyUI_IPAdapter_plus - $COMFYUI_ROOT/custom_nodes/ComfyUI_IPAdapter_plus
- /workspace/ComfyUI/custom_nodes/ComfyUI-Impact-Pack - $COMFYUI_ROOT/custom_nodes/ComfyUI-Impact-Pack
# Development: All repositories including optional nodes # Development: All repositories including optional nodes
dev: dev:
- /workspace/ai - $AI_ROOT
- /workspace/ComfyUI - $COMFYUI_ROOT
- /workspace/ComfyUI/custom_nodes/ComfyUI-Manager - $COMFYUI_ROOT/custom_nodes/ComfyUI-Manager
- /workspace/ComfyUI/custom_nodes/ComfyUI-VideoHelperSuite - $COMFYUI_ROOT/custom_nodes/ComfyUI-VideoHelperSuite
- /workspace/ComfyUI/custom_nodes/ComfyUI-AnimateDiff-Evolved - $COMFYUI_ROOT/custom_nodes/ComfyUI-AnimateDiff-Evolved
- /workspace/ComfyUI/custom_nodes/ComfyUI_IPAdapter_plus - $COMFYUI_ROOT/custom_nodes/ComfyUI_IPAdapter_plus
- /workspace/ComfyUI/custom_nodes/ComfyUI-Impact-Pack - $COMFYUI_ROOT/custom_nodes/ComfyUI-Impact-Pack
- /workspace/ComfyUI/custom_nodes/ComfyUI-CogVideoXWrapper - $COMFYUI_ROOT/custom_nodes/ComfyUI-CogVideoXWrapper
- /workspace/ComfyUI/custom_nodes/ComfyUI-Inspire-Pack - $COMFYUI_ROOT/custom_nodes/ComfyUI-Inspire-Pack
- /workspace/ComfyUI/custom_nodes/ComfyUI-Advanced-ControlNet - $COMFYUI_ROOT/custom_nodes/ComfyUI-Advanced-ControlNet
- /workspace/ComfyUI/custom_nodes/ComfyUI-3D-Pack - $COMFYUI_ROOT/custom_nodes/ComfyUI-3D-Pack
- /workspace/ComfyUI/custom_nodes/comfyui-sound-lab - $COMFYUI_ROOT/custom_nodes/comfyui-sound-lab
# Minimal: Only orchestrator and ComfyUI base # Minimal: Only orchestrator and ComfyUI base
minimal: minimal:
- /workspace/ai - $AI_ROOT
- /workspace/ComfyUI - $COMFYUI_ROOT
- /workspace/ComfyUI/custom_nodes/ComfyUI-Manager - $COMFYUI_ROOT/custom_nodes/ComfyUI-Manager
# Deployment scripts for RunPod instances # Deployment scripts for RunPod instances
scripts: scripts:
@@ -156,18 +156,18 @@ scripts:
# Install core Python packages # Install core Python packages
echo "Installing core Python packages..." echo "Installing core Python packages..."
if [ -f "/workspace/ai/core/requirements.txt" ]; then if [ -f "$AI_ROOT/core/requirements.txt" ]; then
sudo pip3 install -r /workspace/ai/core/requirements.txt sudo pip3 install -r $AI_ROOT/core/requirements.txt
else else
echo "⚠ Warning: /workspace/ai/core/requirements.txt not found" echo "⚠ Warning: $AI_ROOT/core/requirements.txt not found"
fi fi
# Install vLLM dependencies # Install vLLM dependencies
echo "Installing vLLM dependencies..." echo "Installing vLLM dependencies..."
if [ -f "/workspace/ai/models/vllm/requirements.txt" ]; then if [ -f "vllm/requirements.txt" ]; then
sudo pip3 install -r /workspace/ai/models/vllm/requirements.txt sudo pip3 install -r vllm/requirements.txt
else else
echo "⚠ Warning: /workspace/ai/models/vllm/requirements.txt not found" echo "⚠ Warning: vllm/requirements.txt not found"
fi fi
echo "" echo ""
@@ -180,42 +180,42 @@ scripts:
echo "" echo ""
# Clone ComfyUI if not exists # Clone ComfyUI if not exists
if [ ! -d "/workspace/ComfyUI" ]; then if [ ! -d "$COMFYUI_ROOT" ]; then
echo "Cloning ComfyUI repository..." echo "Cloning ComfyUI repository..."
git clone https://github.com/comfyanonymous/ComfyUI.git /workspace/ComfyUI git clone https://github.com/comfyanonymous/ComfyUI.git $COMFYUI_ROOT
else else
echo "ComfyUI already exists, pulling latest changes..." echo "ComfyUI already exists, pulling latest changes..."
cd /workspace/ComfyUI && git pull cd $COMFYUI_ROOT && git pull
fi fi
# Install ComfyUI dependencies # Install ComfyUI dependencies
echo "Installing ComfyUI dependencies..." echo "Installing ComfyUI dependencies..."
sudo pip3 install -r /workspace/ComfyUI/requirements.txt sudo pip3 install -r $COMFYUI_ROOT/requirements.txt
# Install additional ComfyUI dependencies # Install additional ComfyUI dependencies
if [ -f "/workspace/ai/models/comfyui/requirements.txt" ]; then if [ -f "comfyui/requirements.txt" ]; then
echo "Installing additional ComfyUI dependencies..." echo "Installing additional ComfyUI dependencies..."
sudo pip3 install -r /workspace/ai/models/comfyui/requirements.txt sudo pip3 install -r comfyui/requirements.txt
fi fi
# Create model directory structure # Create model directory structure
echo "Creating ComfyUI model directories..." echo "Creating ComfyUI model directories..."
mkdir -p /workspace/ComfyUI/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} 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}
# Create symlink to huggingface cache # Create symlink to huggingface cache
echo "Creating symlink to HuggingFace cache..." echo "Creating symlink to HuggingFace cache..."
ln -sf /workspace/huggingface_cache /workspace/ComfyUI/models/huggingface_cache ln -sf $HF_CACHE $COMFYUI_ROOT/models/huggingface_cache
# Make start script executable # Make start script executable
if [ -f "/workspace/ai/models/comfyui/start.sh" ]; then if [ -f "comfyui/start.sh" ]; then
chmod +x /workspace/ai/models/comfyui/start.sh chmod +x comfyui/start.sh
fi fi
echo "" echo ""
echo "✓ ComfyUI base installed successfully" echo "✓ ComfyUI base installed successfully"
echo " Directory: /workspace/ComfyUI" echo " Directory: $COMFYUI_ROOT"
echo " Port: 8188" echo " Port: 8188"
echo " Start: bash /workspace/ai/models/comfyui/start.sh" echo " Start: bash comfyui/start.sh"
setup/comfyui-nodes: | setup/comfyui-nodes: |
echo "=========================================" echo "========================================="
@@ -223,7 +223,7 @@ scripts:
echo "=========================================" echo "========================================="
echo "" echo ""
cd /workspace/ComfyUI/custom_nodes cd $COMFYUI_ROOT/custom_nodes
# ComfyUI Manager # ComfyUI Manager
echo "[1/5] Installing ComfyUI-Manager..." echo "[1/5] Installing ComfyUI-Manager..."
@@ -307,22 +307,22 @@ scripts:
sudo pip3 install supervisor sudo pip3 install supervisor
# Create logs directory # Create logs directory
mkdir -p /workspace/logs mkdir -p $LOGS_DIR
# Copy supervisor configuration # Copy supervisor configuration
if [ -f "/workspace/ai/supervisord.conf" ]; then if [ -f "$AI_ROOT/supervisord.conf" ]; then
echo "Deploying supervisord configuration..." echo "Deploying supervisord configuration..."
cp /workspace/ai/supervisord.conf /workspace/supervisord.conf cp $AI_ROOT/supervisord.conf /workspace/supervisord.conf
chmod 644 /workspace/supervisord.conf chmod 644 /workspace/supervisord.conf
else else
echo "⚠ Warning: supervisord.conf not found at /workspace/ai/supervisord.conf" echo "⚠ Warning: supervisord.conf not found at $AI_ROOT/supervisord.conf"
fi fi
echo "" echo ""
echo "✓ Supervisor installed successfully" echo "✓ Supervisor installed successfully"
echo "" echo ""
echo "Configuration: /workspace/supervisord.conf" echo "Configuration: /workspace/supervisord.conf"
echo "Logs: /workspace/logs/" echo "Logs: $LOGS_DIR/"
echo "" echo ""
echo "Services configured:" echo "Services configured:"
echo " - comfyui: ComfyUI server (port 8188) - autostart enabled" echo " - comfyui: ComfyUI server (port 8188) - autostart enabled"
@@ -373,14 +373,14 @@ scripts:
# Create symlink in ComfyUI # Create symlink in ComfyUI
echo "Creating symlink in ComfyUI..." echo "Creating symlink in ComfyUI..."
ln -sf /mnt/hidrive/users/valknar/Pictures/AI/ComfyUI /workspace/ComfyUI/output_hidrive ln -sf /mnt/hidrive/users/valknar/Pictures/AI/ComfyUI $COMFYUI_ROOT/output_hidrive
echo "" echo ""
echo "✓ WebDAV setup complete" echo "✓ WebDAV setup complete"
echo "" echo ""
echo "Mount point: /mnt/hidrive" echo "Mount point: /mnt/hidrive"
echo "ComfyUI output: /mnt/hidrive/users/valknar/Pictures/AI/ComfyUI" echo "ComfyUI output: /mnt/hidrive/users/valknar/Pictures/AI/ComfyUI"
echo "ComfyUI symlink: /workspace/ComfyUI/output_hidrive" echo "ComfyUI symlink: $COMFYUI_ROOT/output_hidrive"
echo "" echo ""
echo "To unmount: umount /mnt/hidrive" echo "To unmount: umount /mnt/hidrive"
echo "To remount: mount -t davfs https://webdav.hidrive.ionos.com/ /mnt/hidrive" echo "To remount: mount -t davfs https://webdav.hidrive.ionos.com/ /mnt/hidrive"
@@ -405,17 +405,17 @@ scripts:
echo "" echo ""
# Check cache size # Check cache size
if [ -d "/workspace/huggingface_cache" ]; then if [ -d "$HF_CACHE" ]; then
echo "Model cache size:" echo "Model cache size:"
du -sh /workspace/huggingface_cache du -sh $HF_CACHE
else else
echo "⚠ Warning: /workspace/huggingface_cache not found" echo "⚠ Warning: $HF_CACHE not found"
fi fi
echo "" echo ""
# Verify service scripts # Verify service scripts
echo "Service scripts:" echo "Service scripts:"
for script in /workspace/ai/scripts/*.sh; do for script in $AI_ROOT/scripts/*.sh; do
if [ -f "$script" ]; then if [ -f "$script" ]; then
echo " ✓ $(basename $script)" echo " ✓ $(basename $script)"
chmod +x "$script" chmod +x "$script"
@@ -433,7 +433,7 @@ scripts:
# Remove sensitive files # Remove sensitive files
echo "Removing sensitive files..." echo "Removing sensitive files..."
rm -f /workspace/ai/.env rm -f $AI_ROOT/.env
rm -f /root/.ssh/known_hosts rm -f /root/.ssh/known_hosts
rm -f /root/.bash_history rm -f /root/.bash_history
rm -f /root/.python_history rm -f /root/.python_history
@@ -548,48 +548,48 @@ scripts:
# Legacy Setup (deprecated - use install/* instead) # Legacy Setup (deprecated - use install/* instead)
# #
setup/full-legacy: | setup/full-legacy: |
cd /workspace/ai cd $AI_ROOT
cp .env.example .env cp .env.example .env
echo "⚠ DEPRECATED: Use 'arty run install/full' instead" echo "⚠ DEPRECATED: Use 'arty run install/full' instead"
echo "Edit .env and set HF_TOKEN, then run: ansible-playbook playbook.yml" echo "Edit .env and set HF_TOKEN, then run: ansible-playbook playbook.yml"
setup/essential-legacy: | setup/essential-legacy: |
cd /workspace/ai cd $AI_ROOT
cp .env.example .env cp .env.example .env
echo "⚠ DEPRECATED: Use 'arty run install/essential' instead" echo "⚠ DEPRECATED: Use 'arty run install/essential' instead"
echo "Edit .env and set HF_TOKEN, then run: ansible-playbook playbook.yml --tags comfyui-essential" echo "Edit .env and set HF_TOKEN, then run: ansible-playbook playbook.yml --tags comfyui-essential"
# Model linking (run after models are downloaded) # Model linking (run after models are downloaded)
models/link-comfyui: | models/link-comfyui: |
cd /workspace/ComfyUI/models/diffusers cd $COMFYUI_ROOT/models/diffusers
ln -sf /workspace/huggingface_cache/models--black-forest-labs--FLUX.1-schnell FLUX.1-schnell ln -sf $HF_CACHE/models--black-forest-labs--FLUX.1-schnell FLUX.1-schnell
ln -sf /workspace/huggingface_cache/models--black-forest-labs--FLUX.1-dev FLUX.1-dev ln -sf $HF_CACHE/models--black-forest-labs--FLUX.1-dev FLUX.1-dev
ln -sf /workspace/huggingface_cache/models--stabilityai--stable-diffusion-xl-base-1.0 stable-diffusion-xl-base-1.0 ln -sf $HF_CACHE/models--stabilityai--stable-diffusion-xl-base-1.0 stable-diffusion-xl-base-1.0
ln -sf /workspace/huggingface_cache/models--stabilityai--stable-diffusion-xl-refiner-1.0 stable-diffusion-xl-refiner-1.0 ln -sf $HF_CACHE/models--stabilityai--stable-diffusion-xl-refiner-1.0 stable-diffusion-xl-refiner-1.0
ln -sf /workspace/huggingface_cache/models--stabilityai--stable-diffusion-3.5-large stable-diffusion-3.5-large ln -sf $HF_CACHE/models--stabilityai--stable-diffusion-3.5-large stable-diffusion-3.5-large
cd /workspace/ComfyUI/models/clip_vision cd $COMFYUI_ROOT/models/clip_vision
ln -sf /workspace/huggingface_cache/models--openai--clip-vit-large-patch14 clip-vit-large-patch14 ln -sf $HF_CACHE/models--openai--clip-vit-large-patch14 clip-vit-large-patch14
ln -sf /workspace/huggingface_cache/models--laion--CLIP-ViT-bigG-14-laion2B-39B-b160k CLIP-ViT-bigG-14 ln -sf $HF_CACHE/models--laion--CLIP-ViT-bigG-14-laion2B-39B-b160k CLIP-ViT-bigG-14
ln -sf /workspace/huggingface_cache/models--google--siglip-so400m-patch14-384 siglip-so400m-patch14-384 ln -sf $HF_CACHE/models--google--siglip-so400m-patch14-384 siglip-so400m-patch14-384
cd /workspace/ComfyUI/models/diffusion_models cd $COMFYUI_ROOT/models/diffusion_models
ln -sf /workspace/huggingface_cache/models--THUDM--CogVideoX-5b CogVideoX-5b ln -sf $HF_CACHE/models--THUDM--CogVideoX-5b CogVideoX-5b
ln -sf /workspace/huggingface_cache/models--stabilityai--stable-video-diffusion-img2vid stable-video-diffusion-img2vid ln -sf $HF_CACHE/models--stabilityai--stable-video-diffusion-img2vid stable-video-diffusion-img2vid
ln -sf /workspace/huggingface_cache/models--stabilityai--stable-video-diffusion-img2vid-xt stable-video-diffusion-img2vid-xt ln -sf $HF_CACHE/models--stabilityai--stable-video-diffusion-img2vid-xt stable-video-diffusion-img2vid-xt
echo "Models linked to ComfyUI" echo "Models linked to ComfyUI"
# Workflow linking (link production workflows with category prefixes) # Workflow linking (link production workflows with category prefixes)
workflows/link-comfyui: | workflows/link-comfyui: |
# Create ComfyUI user workflows directory # Create ComfyUI user workflows directory
mkdir -p /workspace/ComfyUI/user/default/workflows mkdir -p $COMFYUI_ROOT/user/default/workflows
cd /workspace/ComfyUI/user/default/workflows cd $COMFYUI_ROOT/user/default/workflows
# Remove old symlinks from previous location # Remove old symlinks from previous location
rm -f /workspace/ComfyUI/workflows/*.json 2>/dev/null || true rm -f $COMFYUI_ROOT/workflows/*.json 2>/dev/null || true
# Clear existing workflow symlinks to avoid conflicts # Clear existing workflow symlinks to avoid conflicts
find . -type l -name "*.json" -delete find . -type l -name "*.json" -delete
SOURCE_DIR="/workspace/ai/models/comfyui/workflows" SOURCE_DIR="comfyui/workflows"
# Text-to-Image workflows (prefix: t2i_) # Text-to-Image workflows (prefix: t2i_)
for file in "$SOURCE_DIR/text-to-image"/*.json; do for file in "$SOURCE_DIR/text-to-image"/*.json; do
@@ -644,7 +644,7 @@ scripts:
echo "Production workflows linked to ComfyUI user directory" echo "Production workflows linked to ComfyUI user directory"
echo " Total workflows: $WORKFLOW_COUNT" echo " Total workflows: $WORKFLOW_COUNT"
echo " Location: /workspace/ComfyUI/user/default/workflows/" echo " Location: $COMFYUI_ROOT/user/default/workflows/"
echo "" echo ""
echo "Categories (by prefix):" echo "Categories (by prefix):"
echo " - t2i_ : 4 text-to-image workflows (FLUX, SDXL, SD3.5)" echo " - t2i_ : 4 text-to-image workflows (FLUX, SDXL, SD3.5)"
@@ -698,8 +698,8 @@ scripts:
# #
check/gpu: nvidia-smi check/gpu: nvidia-smi
check/disk: df -h /workspace check/disk: df -h /workspace
check/models: du -sh /workspace/huggingface_cache check/models: du -sh $HF_CACHE
check/cache: find /workspace/huggingface_cache -type d -name 'models--*' -maxdepth 1 check/cache: find $HF_CACHE -type d -name 'models--*' -maxdepth 1
# Deployment notes # Deployment notes
notes: | notes: |
@@ -723,7 +723,7 @@ notes: |
arty run install/full arty run install/full
3. Configure Environment: 3. Configure Environment:
cd /workspace/ai cd $AI_ROOT
cp .env.example .env cp .env.example .env
# Edit .env and set HF_TOKEN # Edit .env and set HF_TOKEN
@@ -805,7 +805,7 @@ notes: |
COMFYUI WORKFLOWS COMFYUI WORKFLOWS
======================================== ========================================
Location: /workspace/ComfyUI/workflows/ Location: $COMFYUI_ROOT/workflows/
Link workflows: arty run workflows/link-comfyui Link workflows: arty run workflows/link-comfyui
@@ -832,25 +832,25 @@ notes: |
======================================== ========================================
Configuration: Configuration:
- /workspace/ai/arty.yml # This file - $AI_ROOT/arty.yml # This file
- /workspace/ai/.env # Environment variables - $AI_ROOT/.env # Environment variables
- /workspace/supervisord.conf # Supervisor config - /workspace/supervisord.conf # Supervisor config
Code: Code:
- /workspace/ai/ # Project directory - $AI_ROOT/ # Project directory
- /workspace/ComfyUI/ # ComfyUI installation - $COMFYUI_ROOT/ # ComfyUI installation
- /workspace/ai/scripts/*.sh # Service scripts - $AI_ROOT/scripts/*.sh # Service scripts
Models: Models:
- /workspace/huggingface_cache/ # Model cache (~401GB) - $HF_CACHE/ # Model cache (~401GB)
- /workspace/ComfyUI/models/ # Symlinks to cache - $COMFYUI_ROOT/models/ # Symlinks to cache
Workflows: Workflows:
- /workspace/ai/models/comfyui/workflows/ # Source (git) - $AI_ROOT/comfyui/workflows/ # Source (git)
- /workspace/ComfyUI/workflows/ # Linked workflows - $COMFYUI_ROOT/workflows/ # Linked workflows
Logs: Logs:
- /workspace/logs/ # Supervisor logs - $LOGS_DIR/ # Supervisor logs
======================================== ========================================
PORTS PORTS
@@ -865,8 +865,8 @@ notes: |
DOCUMENTATION DOCUMENTATION
======================================== ========================================
- /workspace/ai/README.md - $AI_ROOT/README.md
- /workspace/ai/CLAUDE.md - $AI_ROOT/CLAUDE.md
- /workspace/ai/COMFYUI_MODELS.md - $AI_ROOT/COMFYUI_MODELS.md
- /workspace/ai/MODELS_LINKED.md - $AI_ROOT/MODELS_LINKED.md
- /workspace/ai/models/comfyui/workflows/README.md - $AI_ROOT/comfyui/workflows/README.md

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,16 +1,16 @@
[supervisord] [supervisord]
logfile=/workspace/logs/supervisord.log logfile=../logs/supervisord.log
pidfile=/workspace/supervisord.pid pidfile=../supervisord.pid
childlogdir=/workspace/logs childlogdir=../logs
nodaemon=false nodaemon=false
loglevel=info loglevel=info
[unix_http_server] [unix_http_server]
file=/workspace/supervisor.sock file=../supervisor.sock
chmod=0700 chmod=0700
[supervisorctl] [supervisorctl]
serverurl=unix:///workspace/supervisor.sock serverurl=unix://../supervisor.sock
[rpcinterface:supervisor] [rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
@@ -24,52 +24,52 @@ port=0.0.0.0:9001
# ComfyUI Server # ComfyUI Server
[program:comfyui] [program:comfyui]
command=bash /workspace/ai/models/comfyui/start.sh command=bash comfyui/start.sh
directory=/workspace/ComfyUI directory=../ComfyUI
autostart=true autostart=true
autorestart=true autorestart=true
startretries=3 startretries=3
stderr_logfile=/workspace/logs/comfyui.err.log stderr_logfile=../logs/comfyui.err.log
stdout_logfile=/workspace/logs/comfyui.out.log stdout_logfile=../logs/comfyui.out.log
stdout_logfile_maxbytes=50MB stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10 stdout_logfile_backups=10
stderr_logfile_maxbytes=50MB stderr_logfile_maxbytes=50MB
stderr_logfile_backups=10 stderr_logfile_backups=10
environment=HF_HOME="/workspace/huggingface_cache",PYTORCH_CUDA_ALLOC_CONF="expandable_segments:True",TQDM_DISABLE="1" environment=HF_HOME="../huggingface_cache",PYTORCH_CUDA_ALLOC_CONF="expandable_segments:True",TQDM_DISABLE="1"
priority=100 priority=100
stopwaitsecs=30 stopwaitsecs=30
# AI Model Orchestrator # AI Model Orchestrator
[program:orchestrator] [program:orchestrator]
command=python3 model-orchestrator/orchestrator_subprocess.py command=python3 model-orchestrator/orchestrator_subprocess.py
directory=/workspace/ai directory=../ai
autostart=false autostart=false
autorestart=true autorestart=true
startretries=3 startretries=3
stderr_logfile=/workspace/logs/orchestrator.err.log stderr_logfile=../logs/orchestrator.err.log
stdout_logfile=/workspace/logs/orchestrator.out.log stdout_logfile=../logs/orchestrator.out.log
stdout_logfile_maxbytes=50MB stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10 stdout_logfile_backups=10
stderr_logfile_maxbytes=50MB stderr_logfile_maxbytes=50MB
stderr_logfile_backups=10 stderr_logfile_backups=10
environment=HF_HOME="/workspace/huggingface_cache",HF_TOKEN="%(ENV_HF_TOKEN)s" environment=HF_HOME="../huggingface_cache",HF_TOKEN="%(ENV_HF_TOKEN)s"
priority=200 priority=200
stopwaitsecs=30 stopwaitsecs=30
# ComfyUI WebDAV Sync Service # ComfyUI WebDAV Sync Service
[program:webdav-sync] [program:webdav-sync]
command=python3 /workspace/ai/webdav-sync/webdav_sync.py command=python3 ../ai/webdav-sync/webdav_sync.py
directory=/workspace/ai/webdav-sync directory=../ai/webdav-sync
autostart=true autostart=true
autorestart=true autorestart=true
startretries=3 startretries=3
stderr_logfile=/workspace/logs/webdav-sync.err.log stderr_logfile=../logs/webdav-sync.err.log
stdout_logfile=/workspace/logs/webdav-sync.out.log stdout_logfile=../logs/webdav-sync.out.log
stdout_logfile_maxbytes=50MB stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10 stdout_logfile_backups=10
stderr_logfile_maxbytes=50MB stderr_logfile_maxbytes=50MB
stderr_logfile_backups=10 stderr_logfile_backups=10
environment=WEBDAV_URL="%(ENV_WEBDAV_URL)s",WEBDAV_USERNAME="%(ENV_WEBDAV_USERNAME)s",WEBDAV_PASSWORD="%(ENV_WEBDAV_PASSWORD)s",WEBDAV_REMOTE_PATH="%(ENV_WEBDAV_REMOTE_PATH)s",COMFYUI_OUTPUT_DIR="/workspace/ComfyUI/output" environment=WEBDAV_URL="%(ENV_WEBDAV_URL)s",WEBDAV_USERNAME="%(ENV_WEBDAV_USERNAME)s",WEBDAV_PASSWORD="%(ENV_WEBDAV_PASSWORD)s",WEBDAV_REMOTE_PATH="%(ENV_WEBDAV_REMOTE_PATH)s",COMFYUI_OUTPUT_DIR="../ComfyUI/output"
priority=150 priority=150
stopwaitsecs=10 stopwaitsecs=10