Commit Graph

19 Commits

Author SHA1 Message Date
cabe2158be fix: remove invalid noise_mode parameter from KSamplerAdvanced
Removed "fixed" parameter that was causing broken pipe error.

KSamplerAdvanced correct parameters (9 values):
- add_noise: "enable"
- seed: 42
- steps: 25
- cfg: 7.5
- sampler_name: "euler"
- scheduler: "normal"
- start_at_step: 0
- end_at_step: 25
- return_with_leftover_noise: "enable"

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 18:26:25 +01:00
9d91ec3236 feat: add SD 1.5 model and update AnimateDiff workflow
Changes:
- Added Stable Diffusion v1.5 model to comfyui_models.yaml
  - Required for AnimateDiff motion modules (mm_sd_v15_v2.ckpt)
  - Size: 4GB, VRAM: 8GB
- Updated AnimateDiff workflow to use SD 1.5 instead of SDXL
  - Changed checkpoint from sd_xl_base_1.0.safetensors to v1-5-pruned-emaonly.safetensors
  - Updated VRAM requirement from 18GB to 12GB
  - Updated model requirements in metadata

AnimateDiff v15 motion modules are not compatible with SDXL.
This resolves: "Motion module 'mm_sd_v15_v2.ckpt' is intended for SD1.5 models"

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 18:18:41 +01:00
8d1508c564 fix: correct KSamplerAdvanced parameter order
KSamplerAdvanced correct order:
["add_noise", seed, "noise_mode", steps, cfg, sampler_name, scheduler, start_at_step, end_at_step, "return_with_leftover_noise"]

Fixed values:
- add_noise: "enable"
- seed: 42
- noise_mode: "fixed"
- steps: 25
- cfg: 7.5
- sampler_name: "euler"
- scheduler: "normal"
- start_at_step: 0
- end_at_step: 25
- return_with_leftover_noise: "enable"

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 18:15:56 +01:00
2b66caa7e2 fix: correct KSamplerAdvanced parameters in AnimateDiff workflow
Fixed widget_values order for KSamplerAdvanced node:
- Changed sampler from dpmpp_2m to euler (valid sampler)
- Changed scheduler from karras to normal (valid scheduler)
- Fixed end_at_step from 10000 to 25 (matching steps count)

This resolves validation errors:
- scheduler '0' not in list
- cfg could not convert 'dpmpp_2m' to float
- sampler_name 'karras' not in list
- end_at_step 'disable' invalid literal for int

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 18:14:40 +01:00
79b861e687 fix: update AnimateDiff workflow to use correct checkpoint filename
Change CheckpointLoaderSimple to use 'sd_xl_base_1.0.safetensors' instead of
'diffusers/stable-diffusion-xl-base-1.0' to match the actual checkpoint file
linked in /root/ComfyUI/models/checkpoints/
2025-11-22 16:51:59 +01:00
e84579a22f fix: add missing VHS_VideoCombine widget values
- Add pingpong and save_output boolean parameters
- Add video/h264-mp4 format options: pix_fmt, crf, save_metadata, trim_to_audio
- Fixes "Failed to restore node: Combine Frames" error

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:50:06 +01:00
003caf668b fix: restructure AnimateDiff workflow for Evolved Gen2 nodes
- Replace deprecated AnimateDiffLoaderV1 with ADE_LoadAnimateDiffModel
- Add ADE_ApplyAnimateDiffModelSimple to create M_MODELS
- Add ADE_UseEvolvedSampling to inject motion into base model
- Replace AnimateDiffSampler with KSamplerAdvanced
- Add complete node links for all connections
- Update node IDs and execution order

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:47:52 +01:00
360fd52c59 fix: update AnimateDiffSampler to KSamplerAdvanced
- Replace ADE_AnimateDiffSampler with KSamplerAdvanced
- Adjust widget values for KSamplerAdvanced compatibility
- Add proper node name mappings in fix_workflows.py

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:42:29 +01:00
45f71e646d fix: update workflow schema validation and node names
- Add missing last_link_id and links fields to all workflows
- Update node name mappings:
  - AudioSave → SaveAudio (MusicGen workflows)
  - AnimateDiffSampler → ADE_AnimateDiffSampler
  - SeedGenerator → ImpactInt
  - BatchKSampler → KSampler
  - ImageBatchToList → GetImageSize
- Fix schema validation errors across all 20 workflows

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:38:38 +01:00
2213ed3c85 fix: complete ComfyUI workflow schema validation
Fix all 20 production workflows to comply with ComfyUI schema requirements:
- Add missing 'flags', 'order', 'mode', 'properties', 'size' fields to all nodes
- Update deprecated node names:
  - AnimateDiffLoader → AnimateDiffLoaderV1
  - VHSVideoCombine → VHS_VideoCombine
  - IPAdapterApply → IPAdapter
  - IPAdapterApplyFace → IPAdapterFaceID
- Remove deprecated nodes: PreviewVideo, SaveVideo
- Add fix_workflows.py script for future maintenance

Changes:
- 16 workflows updated with complete schema
- 4 workflows (FLUX, SD3.5) were already valid
- All workflows now pass zod schema validation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:30:08 +01:00
19d82108b0 fix: pin diffusers version to >=0.31.0 for CogVideoXWrapper compatibility
ComfyUI-CogVideoXWrapper requires diffusers>=0.31.0 to function properly. Pin the version requirement to ensure the correct version is installed during setup.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:07:27 +01:00
71a30c0e4d feat: add comprehensive ComfyUI workflow collection
Add 20 production-ready ComfyUI workflows across 6 categories:

Text-to-Image (4 workflows):
- FLUX Schnell (fast, 4 steps)
- FLUX Dev (high-quality, 20-50 steps)
- SDXL + Refiner (two-stage, detailed)
- SD3.5 Large (latest generation)

Image-to-Image (3 workflows):
- IP-Adapter Style Transfer
- IP-Adapter Face Portrait
- IP-Adapter Multi-Composition

Image-to-Video (3 workflows):
- CogVideoX (6s AI-driven video)
- SVD (14 frames, quick animations)
- SVD-XT (25 frames, extended)

Text-to-Music (4 workflows):
- MusicGen Small/Medium/Large
- MusicGen Melody (melody conditioning)

Upscaling (3 workflows):
- Ultimate SD Upscale (professional)
- Simple Upscale (fast)
- Face Upscale (portrait-focused)

Advanced (3 workflows):
- ControlNet Fusion (multi-control)
- AnimateDiff Video (text-to-video)
- Batch Pipeline (multiple variations)

Documentation:
- README.md: Usage guide, model requirements, examples
- WORKFLOW_STANDARDS.md: Development standards, best practices

All workflows include:
- API compatibility for orchestrator integration
- Error handling and validation
- VRAM optimization for 24GB GPUs
- Preview and save nodes
- Comprehensive metadata and parameters
- Performance benchmarks

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 12:08:18 +01:00
6323488591 fix: add missing ComfyUI-Impact-Pack dependencies
- Add scikit-image for image processing
- Add piexif for EXIF metadata handling
- Add segment-anything for SAM model support

These dependencies are required for ComfyUI-Impact-Pack to load correctly.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 09:33:43 +01:00
c9b01eef68 refactor: consolidate model management into Ansible playbook
Remove flux/musicgen standalone implementations in favor of ComfyUI:
- Delete models/flux/ and models/musicgen/ directories
- Remove redundant scripts (install.sh, download-models.sh, prepare-template.sh)
- Update README.md to reference Ansible playbook commands
- Update playbook.yml to remove flux/musicgen service definitions
- Add COMFYUI_MODELS.md with comprehensive model installation guide
- Update stop-all.sh to only manage orchestrator and vLLM services

All model downloads and dependency management now handled via
Ansible playbook tags (base, python, vllm, comfyui, comfyui-essential).

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 00:31:26 +01:00
205e591fb4 feat: add ComfyUI integration with Ansible playbook
- Add ComfyUI installation to Ansible playbook with 'comfyui' tag
- Create ComfyUI requirements.txt and start.sh script
- Clone ComfyUI from official GitHub repository
- Symlink HuggingFace cache for Flux model access
- ComfyUI runs on port 8188 with CORS enabled
- Add ComfyUI to services list in playbook

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 20:41:43 +01:00
7f1890517d fix: enable eager execution for proper token streaming in vLLM
- Set enforce_eager=True to disable CUDA graphs which were batching outputs
- Add disable_log_stats=True for better streaming performance
- This ensures AsyncLLMEngine yields tokens incrementally instead of returning complete response
2025-11-21 18:25:50 +01:00
d21caa56bc fix: implement incremental streaming deltas for vLLM chat completions
- Track previous_text to calculate deltas instead of sending full accumulated text
- Fixes WebUI streaming issue where responses appeared empty
- Only send new tokens in each SSE chunk delta
- Resolves OpenAI API compatibility for streaming chat completions
2025-11-21 17:23:18 +01:00
9a637cc4fc refactor: clean Docker files and restore standalone model services
- Remove all Docker-related files (Dockerfiles, compose.yaml)
- Remove documentation files (README, ARCHITECTURE, docs/)
- Remove old core/ directory (base_service, service_manager)
- Update models.yaml with correct service_script paths (models/*/server.py)
- Simplify vLLM requirements.txt to let vLLM manage dependencies
- Restore original standalone vLLM server (no base_service dependency)
- Remove obsolete vllm/, musicgen/, flux/ directories

Process-based architecture is now fully functional on RunPod.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 16:17:38 +01:00
9ee626a78e feat: implement Ansible-based process architecture for RunPod
Major architecture overhaul to address RunPod Docker limitations:

Core Infrastructure:
- Add base_service.py: Abstract base class for all AI services
- Add service_manager.py: Process lifecycle management
- Add core/requirements.txt: Core dependencies

Model Services (Standalone Python):
- Add models/vllm/server.py: Qwen 2.5 7B text generation
- Add models/flux/server.py: Flux.1 Schnell image generation
- Add models/musicgen/server.py: MusicGen Medium music generation
- Each service inherits from GPUService base class
- OpenAI-compatible APIs
- Standalone execution support

Ansible Deployment:
- Add playbook.yml: Comprehensive deployment automation
- Add ansible.cfg: Ansible configuration
- Add inventory.yml: Localhost inventory
- Tags: base, python, dependencies, models, tailscale, validate, cleanup

Scripts:
- Add scripts/install.sh: Full installation wrapper
- Add scripts/download-models.sh: Model download wrapper
- Add scripts/start-all.sh: Start orchestrator
- Add scripts/stop-all.sh: Stop all services

Documentation:
- Update ARCHITECTURE.md: Document distributed VPS+GPU architecture

Benefits:
- No Docker: Avoids RunPod CAP_SYS_ADMIN limitations
- Fully reproducible via Ansible
- Extensible: Add models in 3 steps
- Direct Python execution (no container overhead)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 15:37:18 +01:00