Commit Graph

18 Commits

Author SHA1 Message Date
664ed04cd9 feat: add virtual environment support for Python services
- Update supervisord.conf to use venv Python executables for orchestrator and webdav-sync
- Add virtual environment setup to arty.yml setup/python-env script
- Isolate dependencies for webdav-sync, model-orchestrator, and vllm services
- Fixes dependency conflicts between services (pydantic versions)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 06:13:17 +01:00
a94ce2dcc7 fix: update arty.yml supervisor config paths
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 02:01:55 +01:00
a4771f7139 feat: add runpod environment with variables and fix workflow paths
- Add runpod env with AI_ROOT, COMFYUI_ROOT, HF_CACHE, LOGS_DIR, BIN_DIR
- Update workflows/link-comfyui to use $AI_ROOT for absolute paths
- Workflows will now link correctly from /workspace/ai/comfyui/workflows
2025-11-22 21:12:45 +01:00
2f818a403c feat: configure supervisord to run from /workspace/ai
- Create logs directory with .gitkeep
- Update .gitignore to track logs dir but ignore log files
- Update supervisord.conf with paths relative to /workspace/ai
- Add supervisor control scripts to arty.yml (start/stop/status/restart)
- All paths now use ../ to reference parent /workspace directory
2025-11-22 21:04:19 +01:00
897dcb175a 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>
2025-11-22 20:49:27 +01:00
79442bd62e feat: add WebDAV sync service for ComfyUI outputs
Add Python watchdog service to automatically sync ComfyUI outputs to HiDrive WebDAV storage.

Changes:
- Add scripts/comfyui_webdav_sync.py: File watcher service using watchdog + webdavclient3
- Update model-orchestrator/requirements.txt: Add watchdog and webdavclient3 dependencies
- Update supervisord.conf: Add webdav-sync program with ENV variable support
- Update arty.yml: Add service management scripts (start/stop/restart/status/logs)

WebDAV credentials are now loaded from .env file (WEBDAV_URL, WEBDAV_USERNAME, WEBDAV_PASSWORD, WEBDAV_REMOTE_PATH)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 18:58:18 +01:00
71d4e22240 fix: use non-interactive davfs2 installation 2025-11-22 18:35:37 +01:00
c4e26b8a84 fix: remove sudo commands from WebDAV setup for RunPod root user 2025-11-22 18:33:52 +01:00
c19ee7af88 feat: add WebDAV integration for HiDrive storage
Added setup/webdav script to arty.yml:
- Installs davfs2 package
- Configures HiDrive WebDAV credentials
- Mounts https://webdav.hidrive.ionos.com/ to /mnt/hidrive
- Creates ComfyUI output directory: /mnt/hidrive/users/valknar/Pictures/AI/ComfyUI
- Creates symlink: /workspace/ComfyUI/output_hidrive

Usage:
  arty run setup/webdav

This allows ComfyUI outputs to be saved directly to HiDrive cloud storage.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 18:32:51 +01:00
bd8d1d7783 fix: use correct supervisor group names for service control
Supervisor groups programs as 'ai-services:comfyui' and 'ai-services:orchestrator'
so commands need to use these full names instead of just the program names.
2025-11-22 16:56:23 +01:00
5361bef85c refactor: reorganize service management commands in arty.yml
- Replace shell script calls with direct supervisorctl commands
- Organize services hierarchically: services/{service}/action
- Add all service control commands: start, stop, restart, status, logs
- Support both individual service control and all services control
- Remove obsolete script-based service management

New command structure:
- All services: arty services/{start,stop,restart,status}
- ComfyUI: arty services/comfyui/{start,stop,restart,status,logs}
- Orchestrator: arty services/orchestrator/{start,stop,restart,status,logs}
2025-11-22 16:55:09 +01:00
99b743c412 feat: add ComfyUI_UltimateSDUpscale to custom nodes
Add ComfyUI_UltimateSDUpscale repository to support the ultimate-sd-upscale-production-v1 workflow. This provides high-quality image upscaling capabilities.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:52:16 +01:00
d719bcdfcf feat: link workflows to ComfyUI user directory with category prefixes
Update workflows/link-comfyui to link workflow files to the correct ComfyUI user directory (/workspace/ComfyUI/user/default/workflows/) instead of the non-standard /workspace/ComfyUI/workflows/ location.

Add category prefixes to maintain organization in ComfyUI's flat workflow browser:
- t2i_: Text-to-Image workflows
- i2i_: Image-to-Image workflows
- i2v_: Image-to-Video workflows
- t2m_: Text-to-Music workflows
- upscale_: Upscaling workflows
- adv_: Advanced workflows

Changes:
- Target correct ComfyUI user workflows directory
- Add category prefixes to all workflow symlinks
- Clean up old symlinks from previous location
- Workflows will now appear in ComfyUI's workflow browser sorted by category

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:37:42 +01:00
6daca7329a feat: flatten ComfyUI workflow structure for web UI visibility
Update workflows/link-comfyui script to link individual JSON files directly to /workspace/ComfyUI/workflows/ instead of subdirectories. ComfyUI web UI requires workflows to be in the root workflows directory to display them.

Changes:
- Remove old directory symlinks
- Link all 20 workflow JSON files directly to workflows root
- Preserve original descriptive filenames (e.g., flux-dev-t2i-production-v1.json)
- Add workflow count display
- Keep README and WORKFLOW_STANDARDS documentation links

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:13:30 +01:00
d5965ce0c4 refactor: replace Ansible with arty bash scripts
Completely migrate infrastructure setup from Ansible to pure bash scripts in arty.yml, enabling simpler deployment and eliminating Ansible dependency on RunPod.

## New Installation Scripts

**System Setup:**
- setup/system-packages: Install apt packages, verify GPU
- setup/python-env: Configure Python, pip, core packages
- setup/comfyui-base: Install ComfyUI, create model directories
- setup/comfyui-nodes: Install 5 essential custom nodes
- setup/supervisor: Install Supervisor process manager
- setup/tailscale: Install Tailscale VPN (optional)

**Utility Scripts:**
- setup/validate: Validate installation, check packages/GPU/cache
- setup/cleanup: Clean sensitive files for template creation

**Orchestration Scripts:**
- install/minimal: System + Python + ComfyUI + Supervisor
- install/essential: Minimal + Custom nodes (recommended)
- install/full: Essential + Tailscale VPN

## Changes

### Added
- 11 new bash scripts replacing Ansible playbook tasks
- Comprehensive deployment notes with all commands
- Script categorization: System Setup, Service Management, Health Checks
- Detailed progress output with visual indicators (✓/)

### Removed
- Ansible shortcut scripts (ansible/base, ansible/supervisor, etc.)
- deps/comfyui-nodes (integrated into setup/comfyui-nodes)
- References to Ansible in deployment workflow

### Modified
- Deployment notes: Complete rewrite with organized sections
- Fresh deployment: Now uses arty run install/essential
- Documentation: Updated paths, commands, and workflow

## Benefits

-  No Ansible dependency
-  Faster debugging (pure bash, no templates)
-  RunPod compatible (no sudo issues)
-  Modular: Run individual steps or orchestration
-  Better error handling and user feedback
-  Easier to maintain and extend

## Migration Path

Model downloads still use Ansible playbook (temporary):
- ansible-playbook playbook.yml --tags comfyui-essential
- ansible-playbook playbook.yml --tags comfyui-models-all

After successful testing, Ansible files can be safely removed:
- playbook.yml
- inventory.yml
- ansible.cfg

## Usage

```bash
# Fresh deployment
arty run install/essential
ansible-playbook playbook.yml --tags comfyui-essential
arty run models/link-comfyui
arty run workflows/link-comfyui
arty run services/start
```

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 12:21:05 +01:00
b370c16eb9 feat: add workflow linking script to arty.yml
Add new arty script `workflows/link-comfyui` to create symlinks for all
production workflows from git repository to ComfyUI workflows directory.

Script creates symlinks for:
- All 6 workflow category directories (text-to-image, image-to-image,
  image-to-video, text-to-music, upscaling, advanced)
- templates/ directory for future workflow templates
- README.md and WORKFLOW_STANDARDS.md documentation

Usage: arty run workflows/link-comfyui

Updates:
- Added workflows/link-comfyui script with informative output
- Updated Fresh Deployment guide to include workflow linking step
- Added section 6 "ComfyUI Workflows" with complete workflow listing
- Updated Storage section to document workflow symlinks
- Added workflow README to documentation list

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 12:12:06 +01:00
664da9f4ea feat: add Supervisor process manager for service management
- Add supervisord.conf with ComfyUI and orchestrator services
- Update Ansible playbook with supervisor installation tag
- Rewrite start-all.sh and stop-all.sh to use Supervisor
- Add status.sh script for checking service status
- Update arty.yml with supervisor commands and shortcuts
- Update CLAUDE.md with Supervisor documentation and troubleshooting
- Services now auto-restart on crashes with centralized logging

Benefits:
- Better process control than manual pkill/background jobs
- Auto-restart on service crashes
- Centralized log management in /workspace/logs/
- Web interface for monitoring (port 9001)
- Works perfectly in RunPod containers (no systemd needed)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 09:22:16 +01:00
2207d60f98 feat: add Arty configuration and Claude Code documentation
- Add arty.yml for repository management with environment profiles (prod/dev/minimal)
- Add CLAUDE.md with comprehensive architecture and usage documentation
- Add comfyui_models.yaml for ComfyUI model configuration
- Include deployment scripts for model linking and dependency installation
- Document all git repositories (ComfyUI + 10 custom nodes)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 02:50:36 +01:00