ComfyUI Extension: ComfyUI_EasyRegion

Authored by EnragedAntelope

Created

Updated

0 stars

Control different parts of your image with separate prompts using visual box drawing.

Custom Nodes (0)

    README

    ComfyUI EasyRegion

    Control different parts of your image with separate prompts using visual box drawing.

    Quick Start

    1. Install: Clone to ComfyUI/custom_nodes/ or use ComfyUI Manager
    2. Add Node: Search for "EasyRegion"
    3. Connect: CLIP → EasyRegion → Sampler
    4. Draw: Use canvas to position regions, type prompts
    5. Generate: Connect to your sampler and run

    Nodes

    EasyRegion (Mask-Based)

    For: Models using mask-based conditioning (Flux, Chroma, SD3, SD3.5, Qwen-Image)

    Inputs:

    • clip: CLIP from checkpoint
    • width/height: Must match your latent dimensions
    • soften_masks: Feathering at edges (recommended ON)
    • background_prompt: Scene description
    • background_strength: Background conditioning strength (0.5 default)
    • region1-4_prompt: Region-specific prompts
    • region1-4_strength: Per-region strength (start with 2-4, adjust as needed)

    General Tips:

    • Include spatial location in prompts - Try adding location hints like "on left side", "right third of image", "top right corner" to your region prompts. This may help guide placement, though results vary by model.
    • Start with strength values 2.5-4.5, adjust if regions don't show or become too soft
    • Lower background_strength (0.3-0.5) makes regions more prominent
    • See "Model-Specific Tips" below for per-model guidance

    EasyRegion (Area-Based)

    For: SD1.5, SD2.x, SDXL

    Same interface, uses area-based conditioning instead of masks.

    Canvas Controls

    • region: Select which region to edit (1-4)
    • box_x, box_y: Region top-left position (pixels)
    • box_w, box_h: Region dimensions (pixels)

    Example Workflow

    Checkpoint Loader
    ├→ CLIP → EasyRegion (Mask-Based)
    │           ├ width: 1024
    │           ├ height: 1024
    │           ├ soften_masks: true
    │           ├ background_prompt: "empty city street at night"
    │           ├ background_strength: 0.5
    │           ├ region1_prompt: "red sports car on left side (left third)"
    │           ├ region1_strength: 2.5
    │           ├ region2_prompt: "giraffe on right side (right third)"
    │           └ region2_strength: 3.5
    ├→ MODEL → KSampler ← conditioning
    └→ VAE → VAE Decode
    

    Troubleshooting

    Regions not showing:

    • Increase region strength (try 3.0-5.0)
    • Lower background_strength (try 0.3-0.5)
    • Check width/height match your latent exactly
    • Verify boxes aren't outside image bounds
    • Try including spatial location in prompts ("left side", "right third")

    Soft/blurry regions:

    • Lower region strength (too high = loss of detail)
    • Sweet spot is usually 2.5-4.5 with bg_strength=0.5

    Validation errors:

    • Ensure width/height are multiples of 64
    • Check no regions overlap fullscreen

    Model-Specific Tips

    Flux (Flux.1-Dev, Flux.1-Schnell)

    • CFG: Use CFG 1.0 with Flux Base (NO negative prompt)
      • Higher CFG = blur and artifacts
    • Strength range: 2.5-4.5 works well with bg_strength=0.5
    • Region count: Keep to 3-4 regions max for best results
    • Positioning: Works best with regions positioned far apart (e.g., left/right thirds)

    SD3 / SD3.5

    • Similar to Flux - mask-based conditioning
    • Start with strength 2.5-4.5

    Chroma

    • Mask-based conditioning like Flux
    • Keep to 3-4 regions max

    SDXL / SD1.5

    • Use EasyRegion (Area-Based) node instead
    • Area-based conditioning doesn't use masks

    Credits

    Based on visual area conditioning by Davemane42.

    Maintained by EnragedAntelope - github.com/EnragedAntelope/ComfyUI_RegionalConditioning

    License

    MIT License - use freely in personal and commercial projects.