πΈ Bawk Image Loader
Stop typing file paths β Bawk Image Loader browses for you
- image
- mask
- filename
- width
- height
Bawk Image Loader is the img2img gateway of the pack: click-to-browse image loading with preprocessing that gets your reference image ComfyUI-ready. The whole pitch of Bawk Nodes is "fewer nodes, fewer clicks," and this is where that shows up most - you never hand-type a path again. It's the node you reach for when you want to start from a photo, a phone pic, or a previous render instead of a blank latent.
How it works
PIL loads the file. auto_orient reads EXIF orientation and rotates phone photos correctly - the thing a default loader quietly gets wrong (most phone shots are landscape-in-EXIF, actually rotated). target_size (Original/512/768/1024/1536/2048) resizes while keeping the aspect ratio, using resize_method - Lanczos by default, the sharp choice for downscaling. pad_to_square letterboxes with black borders if you need exact squares for a particular model. normalize_colors maps values to the 0β1 range for FLUX compatibility and is on by default.
The inputs that matter
image- the picker itself. Click it and the file browser opens; no typing.target_size- resize big reference photos so your sampler doesn't try to work at 4000px and melt your GPU.create_mask- generates a mask output from the image's alpha channel (white = opaque, black = transparent), handy for inpaint-style or masked img2img work.auto_orient- leave on unless you have a pipeline that expects the raw EXIF.
Outputs and wiring
It outputs image, mask, filename, width, and height. In the pack's img2img chain you wire image into Bawk Sampler's input_image socket and set denoise below 1.0. The README's cheat sheet: 0.3β0.5 keeps the original structure, 0.6β0.7 is a real style change, 0.8β0.9 is a major transformation, and 1.0 is a full replacement (effectively text-to-image). width/height are handy if you want to force the sampler's resolution to match the source.
Install
Same pack install - ComfyUI Manager β search "Bawk Nodes" β install β restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/juddisjudd/ComfyUI-BawkNodes.git
It needs Pillow, which stock ComfyUI ships, so no extra dependencies. The pack's requirements.txt (torch, torchvision, safetensors, numpy, requests) adds nothing you don't already have.
Gotchas
- Resizing happens before mask generation, so the mask always matches the resized image. That's the behavior you want, but know it.
- On a load error the node returns a 64Γ64 placeholder with the error message in the
filenameoutput - you'll spot it immediately, and it won't hard-crash your workflow. normalize_colorsis tuned with FLUX in mind, but since ComfyUI normalizes image tensors anyway, leaving it on won't hurt an SD1.5/SDXL chain either. No real downside.
One genuinely nice touch: this is the only loader in the pack, and it slots into both the FLUX and Z-Image chains unchanged - same four sockets, same behavior. Load a reference, pick your denoise, go.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | COMBO | 2 options: example.png, vrgdg_placeholder_i2i.png | |
| target_sizeopt | COMBO | Original | Resize so the longest side matches this (keeps aspect ratio) |
| resize_methodopt | COMBO | lanczos | 4 options: lanczos, bicubic, bilinear, nearest |
| pad_to_squareopt | BOOLEAN | false | Pad with black to a square canvas |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |
| mask | MASK | β |
| filename | STRING | β |
| width | INT | β |
| height | INT | β |