Fixed medium, small, and melody workflows:
- Replaced non-existent nodes with Musicgen_ from Sound Lab
- Added missing links arrays to connect nodes properly
- Updated all metadata and performance specs
Note: Melody workflow simplified to text-only as Sound Lab doesn't
currently support melody conditioning via audio input.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed from non-existent nodes to actual Sound Lab nodes:
- Replaced MusicGenLoader/MusicGenTextEncode/MusicGenSampler with Musicgen_
- Replaced custom SaveAudio with standard SaveAudio node
- Added missing links array to connect nodes
- All parameters: prompt, duration, guidance_scale, seed, device
Node is called "Musicgen_" (with underscore) from comfyui-sound-lab.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
SD3.5 checkpoint doesn't contain CLIP encoders. Now using:
- CheckpointLoaderSimple for MODEL and VAE
- TripleCLIPLoader for CLIP-L, CLIP-G, and T5-XXL
- Standard CLIPTextEncode for prompts
This fixes the "clip input is invalid: None" error.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Replaced CheckpointLoaderSimple with UNETLoader + DualCLIPLoader.
Replaced CLIPTextEncode with CLIPTextEncodeFlux.
Added proper VAELoader with ae.safetensors.
Added ConditioningZeroOut for empty negative conditioning.
Removed old negative prompt input (FLUX doesn't use it).
Changes match FLUX Dev workflow structure.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added FLUX VAE (ae.safetensors) to model configuration and updated
workflow to use it instead of non-existent pixel_space VAE.
This fixes the SaveImage data type error (1, 1, 16), |u1.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Node 3 (CLIPTextEncodeFlux) output feeds both KSampler (link 3) and
ConditioningZeroOut (link 8), so the output links array must include
both links.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
FLUX models require negative conditioning even though they don't use it.
Added ConditioningZeroOut node to create empty negative conditioning from
positive output, satisfying KSampler's required negative input.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace CheckpointLoaderSimple with UNETLoader
- Replace CLIPTextEncode with DualCLIPLoader + CLIPTextEncodeFlux
- Add VAELoader with pixel_space
- Remove negative prompt (FLUX uses guidance differently)
- Set CFG to 1.0, guidance in text encoder (3.5)
- Add all node connections in links array
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace DiffusersLoader with ImageOnlyCheckpointLoader
- Replace SVDSampler with SVD_img2vid_Conditioning + KSampler
- Add VideoLinearCFGGuidance for temporal consistency
- Add all node connections in links array
- Configure VHS_VideoCombine with correct parameters (25 frames)
- Increase steps to 30 for better quality with longer video
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove format-specific parameters from widgets_values array.
Only base parameters should be in widgets_values:
- frame_rate, loop_count, filename_prefix, format, pingpong, save_output
Format-specific params (pix_fmt, crf) are added dynamically by ComfyUI.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace DiffusersLoader with ImageOnlyCheckpointLoader
- Replace SVDSampler with SVD_img2vid_Conditioning + KSampler
- Add VideoLinearCFGGuidance for temporal consistency
- Add all node connections in links array
- Configure VHS_VideoCombine with H.264 parameters
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- CogVideoX-5b-I2V requires specific resolution (720x480)
- Cannot generate videos at different resolutions
- Update placeholder image to match model requirements
- Add enable_sequential_cpu_offload=true to DownloadAndLoadCogVideoModel
- Reduces VRAM from ~20GB to ~12GB at cost of slower inference
- Widget values: [model, precision, quantization, cpu_offload] = ['THUDM/CogVideoX-5b-I2V', 'bf16', 'disabled', true]
- Necessary for 24GB GPU with other services running
- Create 1024x1024 white placeholder with 'Input Frame' text
- Allows workflow validation without external image upload
- Will be replaced by API input in production use
- Change checkpoint from 'diffusers/stable-diffusion-xl-base-1.0' to 'sd_xl_base_1.0.safetensors'
- Change IPAdapter weight_type from 'original' to 'style transfer' (valid option)
- Fixes validation errors: invalid checkpoint name and invalid weight_type
- Change from 'source venv/bin/activate' to direct venv/bin/python execution
- Use exec to replace shell process with Python process
- Fixes issue where supervisor doesn't properly activate venv
- Ensures all extension dependencies are available
- GitPython: for ComfyUI-Manager git operations
- opencv-python-headless: for image processing in extensions
- insightface: for face detection/recognition
- onnxruntime: for InsightFace models
- pyyaml: for config file parsing
- imageio-ffmpeg: for VideoHelperSuite
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Change CLIP vision model from ViT-H to ViT-bigG to match the
VIT-G preset in IPAdapterUnifiedLoader. This fixes dimension
mismatch error (1280 vs 768).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
CLIPVisionLoader validates against a list of .safetensors files only.
Changed CLIP Vision model extensions from .bin back to .safetensors
in both the model configuration and workflow files.
Note: The actual files are PyTorch .bin format, but ComfyUI's
CLIPVisionLoader expects .safetensors naming convention. The symlinks
will point to the .bin files but use .safetensors extensions.
Changes:
- comfyui_models.yaml: Changed dest extensions to .safetensors
- Workflows: Changed clip_name to .safetensors extension
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
IPAdapterAdvanced requires a direct CLIPVision input, unlike the basic
IPAdapter node. Added CLIPVisionLoader nodes to both workflows:
Face workflow:
- Added CLIPVisionLoader (node 12) loading CLIP-ViT-bigG-14
- Connected to IPAdapterAdvanced (node 4) via link 20
Composition workflow:
- Added CLIPVisionLoader (node 15) loading CLIP-ViT-bigG-14
- Connected to both IPAdapterAdvanced nodes (6 and 7) via links 25 and 26
This provides the required CLIP Vision model for image understanding
in the IP-Adapter processing pipeline.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed both IPAdapter nodes to IPAdapterAdvanced for better control
and consistency with the face workflow. IPAdapterAdvanced provides
additional parameters for fine-tuning the adapter behavior.
Updated widget values for both nodes:
- weight: 0.6/0.5 (composition influence strength)
- noise: 0.0
- weight_type: "ease in-out"
- combine_embeds: 1.0
- start_at: 0.0
- end_at: 1.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed node type from IPAdapterFaceID to IPAdapterAdvanced to work
with VIT-G preset. IPAdapterFaceID requires specialized face detection
models, while IPAdapterAdvanced works with the standard IP-Adapter
models loaded by IPAdapterUnifiedLoader.
Updated widget values to match IPAdapterAdvanced parameters:
- weight: 0.85 (face similarity strength)
- noise: 0.0
- weight_type: "ease in-out"
- combine_embeds: 1.0
- start_at: 0.0
- end_at: 1.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed from PLUS/PLUS FACE presets to VIT-G preset because:
- VIT-G preset is specifically designed for SDXL models
- It correctly maps to the ViT-bigG CLIP Vision model
- PLUS presets default to SD1.5 CLIP Vision models
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed from "FACE" to "PLUS FACE (portraits)" to match the exact
preset name expected by IPAdapterUnifiedLoader.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Restored original IP-Adapter presets now that models are available:
- ipadapter-composition-i2i-production-v1.json: Changed both loaders to "PLUS (high strength)"
- ipadapter-face-i2i-production-v1.json: Changed loader to "FACE"
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed from PLUS/FACE presets to STANDARD preset which works with
the basic ip-adapter_sdxl.safetensors model currently installed.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
IPAdapterUnifiedLoader only accepts model input, not clip.
Removed CLIP connections from both workflows.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Node 5 (IPAdapterUnifiedLoader) MODEL output should not connect to Node 7.
The chain is: Node 6 IPAdapter output -> Node 7 IPAdapter input[0].
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed checkpoint name from 'diffusers/stable-diffusion-xl-base-1.0' to 'sd_xl_base_1.0.safetensors'
- Fixed IPAdapter end_at parameter from string "original" to float 1.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed node structure for both workflows by adding:
- Input connections for each node that receives data
- Output connections with link references
- Proper link arrays matching the node connections
This ensures workflows load correctly in ComfyUI with complete graph connectivity.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added proper node connections (links array) for both workflows:
- ipadapter-composition-i2i-production-v1.json: 21 links connecting dual IP-Adapter chain
- ipadapter-face-i2i-production-v1.json: 15 links connecting face IP-Adapter chain
The workflows now have complete node graphs that will load and execute properly in ComfyUI.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added example images for image-to-image workflows:
- composition_ref1.png: Blue placeholder for first composition reference
- composition_ref2.png: Red placeholder for second composition reference
- face_reference.png: Green placeholder for face portrait reference
These placeholders ensure workflows load without errors and provide clear
instructions to users about replacing them with actual reference images.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
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>