Files
Vito Sansevero ab23992c29 chore: project housekeeping and configuration updates
- Add code quality tools: flake8, mypy, black, pre-commit
- Add .gitattributes for line ending consistency
- Add .secrets.baseline for secret scanning
- Update GitHub workflows for better CI/CD
- Update documentation formatting and examples
- Add CLAUDE.md for AI assistant guidance
- Add scripts directory for automation tools
- Update project configuration in pyproject.toml
- Improve type hints and code formatting across all modules
- Update test configurations and fixtures
2025-08-01 08:35:08 -07:00

6.4 KiB
Raw Permalink Blame History

Width Height Selector Documentation

Overview

The Width Height Selector is a ComfyUI node that provides preset-based dimension selection with swap functionality, optimized for SDXL and FLUX models. It offers 26 carefully curated resolution presets plus custom dimension support.

Features

🎯 Preset Categories

  • SDXL Presets (9): ~1MP optimized resolutions
  • FLUX Presets (8): Higher resolution options
  • Ultra-Wide Presets (8): Modern aspect ratios
  • Custom: Manual dimension input

🔄 Smart Swap Logic

  • Visual swap button in bottom-right corner
  • Intelligent orientation switching for presets
  • Simple value swap for custom dimensions
  • Maintains proper aspect ratios

🎨 Enhanced UI

  • Modern blue swap button with hover effects
  • Hidden swap parameter (controlled by button)
  • Clean interface with visual feedback

✅ Built-in Validation

  • Ensures divisible-by-8 constraint
  • Auto-sanitization of invalid inputs
  • Proper error handling and fallbacks

Node Interface

Inputs

  • preset: Dropdown with 26 preset options + custom
  • width: Custom width (64-8192, step 8)
  • height: Custom height (64-8192, step 8)

Outputs

  • width: Integer width value
  • height: Integer height value

Preset Reference

SDXL Presets (~1 Megapixel)

Preset Dimensions Aspect Ratio Use Case
1024×1024 1024×1024 1:1 Square, base SDXL
896×1152 896×1152 7:9 Moderate portrait
832×1216 832×1216 13:19 Standard portrait
768×1344 768×1344 4:7 Tall portrait
640×1536 640×1536 5:12 Very tall portrait
1152×896 1152×896 9:7 Moderate landscape
1216×832 1216×832 19:13 Standard landscape
1344×768 1344×768 7:4 Wide landscape
1536×640 1536×640 12:5 Very wide landscape

FLUX Presets (High Resolution)

Preset Dimensions Aspect Ratio Use Case
1920×1080 1920×1080 16:9 Full HD, best quality/speed
1536×1536 1536×1536 1:1 High-res square
1280×768 1280×768 5:3 Cinematic wide
768×1280 768×1280 3:5 Mobile optimized
1440×1080 1440×1080 4:3 Classic aspect ratio
1080×1440 1080×1440 3:4 Classic portrait
1728×1152 1728×1152 3:2 Photography standard
1152×1728 1152×1728 2:3 Portrait photography

Ultra-Wide Presets (Modern Ratios)

Preset Dimensions Aspect Ratio Use Case
2560×1080 2560×1080 64:27 Ultra-wide gaming
2048×768 2048×768 8:3 Wide cinematic
1792×768 1792×768 7:3 Panoramic
2304×768 2304×768 3:1 Banner landscape
1080×2560 1080×2560 27:64 Mobile ultra-tall
768×2048 768×2048 3:8 Vertical cinematic
768×1792 768×1792 3:7 Vertical panoramic
768×2304 768×2304 1:3 Banner portrait

Usage Examples

Basic Usage

  1. Select Preset: Choose from dropdown (e.g., "1920×1080")
  2. Connect Outputs: Link width/height to your target nodes
  3. Use Swap Button: Click blue button in bottom-right corner to swap orientation

Custom Dimensions

  1. Set Preset: Select "custom"
  2. Enter Dimensions: Input width and height manually
  3. Validation: Automatic sanitization to divisible-by-8

Orientation Swapping

  1. Choose Preset: Any preset (e.g., "1920×1080")
  2. Click Swap Button: Blue button in bottom-right corner of node
  3. Result: Gets 1080×1920 (landscape → portrait) or switches to equivalent preset if available

Integration with Resolution Calculator

Width Height Selector → EmptyLatentImage → Resolution Calculator
  1. Set base dimensions with Width Height Selector
  2. Create latent image with those dimensions
  3. Calculate upscaled dimensions with Resolution Calculator

Common Workflows

SDXL Portrait Generation

Width Height Selector (832×1216) → EmptyLatentImage → SDXL Pipeline
  • Perfect for portrait generation
  • Optimized ~1MP resolution
  • 13:19 aspect ratio

FLUX HD Generation

Width Height Selector (1920×1080) → EmptyLatentImage → FLUX Pipeline
  • Best quality/speed balance
  • Full HD resolution
  • 16:9 cinematic aspect ratio

Ultra-Wide Panoramic

Width Height Selector (2560×1080) → EmptyLatentImage → Pipeline
  • Modern ultra-wide format
  • Great for panoramic scenes
  • 64:27 gaming aspect ratio

Upscaling Workflow

Width Height Selector → EmptyLatentImage → Resolution Calculator → Upscaler
  1. Base dimensions from selector
  2. Generate at base resolution
  3. Calculate upscale dimensions
  4. Feed to upscaler node

Tips and Best Practices

Model Optimization

  • SDXL: Use SDXL presets for best results (~1MP)
  • FLUX: Use FLUX presets for optimal quality/speed
  • Custom: Ensure divisible by 8 for all models

Aspect Ratio Considerations

  • Portrait: 3:4, 2:3, 13:19 work well for people
  • Landscape: 16:9, 19:13, 7:4 for scenes and objects
  • Square: 1:1 for centered compositions
  • Ultra-wide: 21:9+ for panoramic and cinematic shots

Memory Management

  • Higher resolutions use more VRAM
  • SDXL presets are memory-efficient
  • FLUX presets require more resources
  • Ultra-wide presets need substantial VRAM

Workflow Integration

  • Always connect width/height outputs
  • Use swap button for quick orientation changes
  • Combine with Resolution Calculator for upscaling
  • Link to EmptyLatentImage for generation

Troubleshooting

Common Issues

  • Invalid dimensions: Auto-sanitized to nearest valid values
  • Memory errors: Use lower resolution presets
  • Orientation wrong: Use the blue swap button instead of manual input
  • Swap button not visible: Ensure node is not collapsed

Error Handling

  • Invalid presets fall back to custom dimensions
  • Out-of-range values are clamped and rounded
  • Division-by-8 constraint automatically enforced

Technical Details

Validation Rules

  • Width/Height: 64-8192 pixels
  • Must be divisible by 8
  • Positive integers only

Swap Button Implementation

  • JavaScript-based visual interface
  • Intelligent preset switching when possible
  • Falls back to custom dimensions when needed
  • Modern blue styling with hover effects

Preset Organization

  • Categorized by model optimization
  • Sorted by aspect ratio within categories
  • Comprehensive tooltips for each preset