ComfyUI Workflow Helper Skill
Expert guidance for ComfyUI workflow creation, node configuration, and optimization.
Capabilities
This skill provides expert assistance with:
-
Workflow Setup & Management
- Creating custom workflows from scratch
- Importing and modifying existing workflows
- Workflow organization and structure
- Node connection best practices
-
Node Configuration
- Model loaders (Checkpoints, LoRAs, VAEs)
- Samplers and schedulers
- Conditioning nodes (prompts)
- Image processing nodes
- ControlNet integration
-
Model Management
- Installing models (checkpoints, VAEs, text encoders, diffusion models)
- Model organization in directories
- Model format compatibility
- OmniGen2 setup
-
Performance Optimization
- VRAM management strategies
- Batch processing optimization
- Workflow efficiency improvements
- Node caching strategies
-
Troubleshooting
- Model loading errors
- Node connection issues
- OOM (Out of Memory) errors
- Workflow execution failures
Key Knowledge Base
ComfyUI Directory Structure
/srv/comfyui/
├── models/
│ ├── checkpoints/ # SD models (.safetensors, .ckpt)
│ ├── vae/ # VAE models
│ ├── loras/ # LoRA models
│ ├── text_encoders/ # Text encoder models
│ ├── diffusion_models/ # Diffusion models
│ ├── controlnet/ # ControlNet models
│ ├── upscale_models/ # Upscaler models
│ └── embeddings/ # Textual inversion embeddings
├── input/ # Input images
├── output/ # Generated images
└── custom_nodes/ # Custom node extensions
Essential Nodes
Loading Nodes:
Load Checkpoint- Load SD modelsLoad VAE- Load VAE modelsLoad LoRA- Load LoRA models
Conditioning Nodes:
CLIP Text Encode (Prompt)- Positive and negative promptsConditioning Combine- Merge multiple conditioning
Sampling Nodes:
KSampler- Main sampler nodeKSampler Advanced- Advanced sampling control
Image Nodes:
VAE Decode- Convert latent to imageVAE Encode- Convert image to latentSave Image- Save output
Model Nodes:
Model Sampling Discrete- Sampling configurationModel Sampling SD3- SD3-specific sampling
OmniGen2 Setup
Required Models:
- VAE:
ae.safetensors→/srv/comfyui/models/vae/ - Text Encoder:
qwen_2.5_vl_fp16.safetensors→/srv/comfyui/models/text_encoders/ - Diffusion Model:
omnigen2_fp16.safetensors→/srv/comfyui/models/diffusion_models/
Download Script:
# Use the provided download script
/root/homelab/scripts/download-comfyui-omnigen2-models.sh
# Or manual download:
mkdir -p /srv/comfyui/models/{vae,text_encoders,diffusion_models}
wget -O /srv/comfyui/models/vae/ae.safetensors \
"https://huggingface.co/Comfy-Org/Lumina_Image_2.0_Repackaged/resolve/main/split_files/vae/ae.safetensors"
# ... (similar for other models)
Common Workflows
Basic txt2img Workflow
Nodes Required:
- Load Checkpoint
- CLIP Text Encode (Prompt) x2 (positive & negative)
- Empty Latent Image
- KSampler
- VAE Decode
- Save Image
Connection Flow:
Load Checkpoint → CLIP (positive/negative) → KSampler
Empty Latent → KSampler → VAE Decode → Save Image
Load Checkpoint → VAE Decode
img2img Workflow
Additional Nodes:
- Load Image
- VAE Encode
Connection Flow:
Load Image → VAE Encode → KSampler
(Rest similar to txt2img)
ControlNet Workflow
Additional Nodes:
- Load ControlNet Model
- Apply ControlNet
- Preprocessor nodes (depends on ControlNet type)
Usage Examples
Example 1: Setting Up OmniGen2
User: "Help me set up OmniGen2 in ComfyUI"
Assistant Response: I'll guide you through setting up OmniGen2 in ComfyUI.
Step 1: Download Models
Run the download script:
bash /root/homelab/scripts/download-comfyui-omnigen2-models.sh
Or download manually:
- VAE: ae.safetensors → /srv/comfyui/models/vae/
- Text Encoder: qwen_2.5_vl_fp16.safetensors → /srv/comfyui/models/text_encoders/
- Diffusion Model: omnigen2_fp16.safetensors → /srv/comfyui/models/diffusion_models/
Step 2: Restart ComfyUI
# If using Docker:
docker restart comfyui-container
# If using systemd:
sudo systemctl restart comfyui
# If running manually:
# Stop and restart the ComfyUI process
Step 3: Verify in WebUI
- Open ComfyUI web interface
- Check that models appear in dropdowns:
- VAE loader should show "ae.safetensors"
- Text encoder nodes should show "qwen_2.5_vl_fp16.safetensors"
- Diffusion model loader should show "omnigen2_fp16.safetensors"
Step 4: Create Workflow
Use OmniGen2-specific nodes:
- Load the OmniGen2 diffusion model
- Load Qwen text encoder
- Load Lumina VAE
- Configure sampler for OmniGen2
Example 2: Creating a Basic Workflow
User: "How do I create a simple txt2img workflow in ComfyUI?"
Assistant Response: I'll help you create a basic txt2img workflow.
Nodes to Add:
-
Right-click → Add Node → loaders → Load Checkpoint
- Select your SD model
-
Right-click → Add Node → conditioning → CLIP Text Encode (Prompt) × 2
- One for positive prompt
- One for negative prompt
-
Right-click → Add Node → latent → Empty Latent Image
- Set width: 512
- Set height: 512
- Batch size: 1
-
Right-click → Add Node → sampling → KSampler
- Seed: -1 (random)
- Steps: 20-40
- CFG: 4.5 (for photorealism)
- Sampler: dpmpp_2m_karras
- Scheduler: karras
-
Right-click → Add Node → latent → VAE Decode
-
Right-click → Add Node → image → Save Image
Connections:
Load Checkpoint [MODEL] → KSampler [model]
Load Checkpoint [CLIP] → CLIP Text Encode (pos) [clip]
Load Checkpoint [CLIP] → CLIP Text Encode (neg) [clip]
Load Checkpoint [VAE] → VAE Decode [vae]
CLIP Text Encode (pos) [CONDITIONING] → KSampler [positive]
CLIP Text Encode (neg) [CONDITIONING] → KSampler [negative]
Empty Latent Image [LATENT] → KSampler [latent_image]
KSampler [LATENT] → VAE Decode [samples]
VAE Decode [IMAGE] → Save Image [images]
Usage:
- Enter your prompt in positive CLIP Text Encode
- Enter negative prompt in negative CLIP Text Encode
- Click "Queue Prompt" to generate
Example 3: Troubleshooting OOM Errors
User: "ComfyUI keeps crashing with out of memory errors. How do I fix this?"
Assistant Response: OOM errors in ComfyUI can be resolved with these strategies:
1. Reduce Resolution
- Change Empty Latent Image dimensions:
- From 768×768 → 512×512
- From 1024×1024 → 768×768
- Lower resolution = less VRAM usage
2. Reduce Batch Size
- In Empty Latent Image node:
- Set batch_size to 1
- Generate images one at a time
3. Use VRAM-Efficient Models
- Use pruned models (smaller file size)
- Use fp16 models instead of fp32
- Example:
v1-5-pruned-emaonly.safetensorsvs full versions
4. ComfyUI Launch Args Add these flags when starting ComfyUI:
--lowvram # Aggressive VRAM optimization
--medvram # Moderate VRAM optimization
--normalvram # Normal VRAM usage
--cpu # Use CPU instead of GPU (slow but no VRAM)
5. Clear Cache
- Restart ComfyUI between generations
- Clear browser cache
- Delete temporary files
6. Check Node Efficiency
- Remove unnecessary nodes
- Avoid multiple simultaneous samplers
- Use single VAE decode instead of multiple
For 2GB VRAM:
- Stick to 512×512 resolution
- Use --lowvram flag
- Generate single images (batch=1)
- Use pruned/optimized models
Best Practices
-
Workflow Organization
- Group related nodes together
- Use reroute nodes for clean connections
- Add note nodes to document workflow sections
- Save workflows with descriptive names
-
Node Connections
- Always connect correct output to