πLoad Image AIO
Load, mask, crop, and color-grade in one node β TrixLoader's AIO input prep
- in_image
- in_mask
- IMAGE
- MASK
- β original_input
If you've ever built an input-prep chain, you know the ritual: Load Image, a resize node, a mask editor, then four color nodes because the reference photo was shot in a cave. π Load Image AIO from ComfyUI-TrixLoader folds all of that into one node with four tabs - Preview, Mask, Filter, Resize - so you prep the input where it lives instead of stringing ten nodes together and praying the wires stay tidy.
The name isn't hype about the model: it's a UI node, so there's no model to download and no API to call. What it does is swallow an image and let you touch every pixel problem that comes before sampling - cropping, padding for outpaint, a hand-painted mask, and a Lightroom-style color grade - then hand the cleaned result to the sampler.
How it works
Under the hood it's a fancier Load Image. You pick a file from ComfyUI/input (plus its private input/aio_input folder, which it reads but hides from the dropdown), and the node keeps your edits as plain widget data: masks travel in mask_data, crops in crop_data, the whole grading stack in a wall of cr_* sliders plus hsl_data and curve_data. When you run, it composites the mask, applies the Camera Raw filter stack first, then resizes and pads second - a deliberate order so outpaint borders stay clean instead of picking up filter artifacts.
The fancy part is the UI. Double-click the Mask tab and you get the full-screen editor with SAM 3 / SAM 2.1 clicking, GroundingDINO text-to-mask, and RMBG background removal; double-click Filter for the Camera Raw workspace; Resize for the crop/pad/outpaint (CPO) board. The editor saves its result back into the node's widgets, and your preview renders live as you drag.
The inputs that actually matter
The node dumps ~150 widgets on you. Ignore most of them until you need them:
image- the file picker; drop a file inComfyUI/inputto see it here.enable_resize+width/height- the master switch for resizing. Until you flip it, the node is pure pass-through.keep_proportion- the one beginners burn time on:resizefits inside,stretchignores aspect,pad_for_outpaintinggrows the canvas and lets thepad_left/top/right/bottomfields add outpaint room,cropcuts.divisible_by- snaps dimensions to clean multiples (default 8) so you don't feed the VAE an awkward resolution.cr_enable- the master switch for grading; once on, thecr_exp/cr_cont/cr_tempcluster behaves like exposure and white balance.in_image/in_mask- optional inputs for chaining AIO nodes, the intended workaround since layers are kept out of the main node.
Outputs are IMAGE, MASK (wire this straight into an inpaint/ControlNet slot), and β original_input if you want the untouched copy downstream.
Installing it
Either via ComfyUI Manager (search "TrixLoader") or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/trx7111/ComfyUI-TrixLoader.git
Then restart ComfyUI. Fair warning: requirements.txt pulls transformers, transparent-background, ben2, albumentations, pymatting, and timm - that's a chunky install, and the SAM/RMBG model weights download on first use. Don't reach for this pack just to crop an image.
Where people get burned
The README's own gotcha is the big one: on the first run of SAM 3, the download can sit at 100% for a while - that's Python compiling deps and initializing Triton mocks, not a hang. Watch your terminal. Also: "Save to Node" is non-reversible - it rewrites the base file in the workflow, so you can't undo a crop or filter after clicking it, which is deliberate (it stops duplicate files piling up in input/aio_input). If the editor feels sluggish on a weak GPU, flip on Potato PC Mode in ComfyUI settings - it drops canvas previews to 512px and kills animations.
The editor is genuinely useful - Trix built it after the community said they wanted editing without leaving ComfyUI for Photoshop - but it's a big dependency footprint for what's ultimately convenience. Worth it if you prep references constantly; overkill if your input is already clean.
Inputs (96)
| Name | Type | Default | Description |
|---|---|---|---|
| image | COMBO | 1 options: example.png | |
| width | INT | 102416β16384 | β |
| height | INT | 102416β16384 | β |
| pad_left | INT | 00β16384 | β |
| pad_top | INT | 00β16384 | β |
| pad_right | INT | 00β16384 | β |
| pad_bottom | INT | 00β16384 | β |
| upscale_method | COMBO | nearest-exact | 5 options: nearest-exact, bilinear, area, bicubic, lanczos |
| keep_proportion | COMBO | resize | 7 options: stretch, resize, scale_by, pad, pad_edge_pixel, crop, +1 |
| crop_position | COMBO | center | 9 options: top-left, top, top-right, left, center, right, +3 |
| scale_by | FLOAT | 1.000.01β64 | β |
| condition | COMBO | always | 5 options: always, downscale if bigger, upscale if smaller, if bigger area, if smaller area |
| feathering | INT | 00β250 | β |
| divisible_by | INT | 81β256 | β |
| enable_resize | BOOLEAN | false | β |
| mode | COMBO | Preview | 4 options: Preview, Mask, Filter, Resize |
| mask_data | STRING | β | |
| crop_data | STRING | {} | β |
| cr_enable | BOOLEAN | false | β |
| cr_offset | INT | 0-100β100 | β |
| cr_exp | INT | 0-200β200 | β |
| cr_cont | INT | 0-150β150 | β |
| cr_high | INT | 0-150β150 | β |
| cr_shad | INT | 0-150β150 | β |
| cr_white | INT | 0-150β150 | β |
| cr_black | INT | 0-150β150 | β |
| cr_temp | INT | 0-150β150 | β |
| cr_tint | INT | 0-150β150 | β |
| cr_vibrance | INT | 0-150β150 | β |
| cr_colorfulness | INT | 0-150β150 | β |
| cr_sat | INT | 0-100β100 | β |
| cr_tex | INT | 0-200β200 | β |
| cr_clar | INT | 0-200β200 | β |
| cr_dehz | INT | 0-150β150 | β |
| cr_sharp | INT | 00β150 | β |
| cr_denoise | INT | 00β150 | β |
| cr_blur | INT | 00β150 | β |
| cr_surface_blur | INT | 00β200 | β |
| cr_grain | INT | 00β150 | β |
| cr_vignette | INT | 00β150 | β |
| cr_sketch_kernel_size | INT | 00β25 | β |
| cr_sketch_sigma | FLOAT | 1.400.1β5 | β |
| cr_sketch_k_sigma | FLOAT | 1.601β5 | β |
| cr_sketch_epsilon | FLOAT | -0.030-0.2β0.2 | β |
| cr_sketch_phi | FLOAT | 101β50 | β |
| cr_sketch_gamma | FLOAT | 1.0000β1 | β |
| cr_sketch_color | COMBO | gray | 2 options: gray, rgb |
| cr_pixel_colors | INT | 1282β256 | β |
| cr_pixel_dot_size | INT | 00β32 | β |
| cr_pixel_outline | INT | 00β9 | β |
| cr_pixel_smoothing | INT | 00β10 | β |
| cr_pixel_algo | COMBO | kmeans | 3 options: kmeans, dithering, kmeans with dithering |
| cr_ht_size | INT | 00β50 | β |
| cr_ht_angle | INT | 15-180β180 | β |
| cr_ht_contrast | INT | 0-100β100 | β |
| cr_ht_brightness | INT | 0-100β100 | β |
| cr_ht_dither | INT | 1000β100 | β |
| cr_ht_inverse | BOOLEAN | false | β |
| cr_ht_shape | COMBO | Dot | 7 options: Dot, Square Dot, Line, Rhomboid, Cross Cut, Saddle, +1 |
| cr_usm_amount | INT | 00β200 | β |
| cr_usm_radius | INT | 11β10 | β |
| cr_usm_threshold | INT | 00β255 | β |
| cr_lap_amount | FLOAT | 0.000β1 | β |
| cr_lap_kernel | COMBO | 8-neighbor | 2 options: 8-neighbor, 4-neighbor |
| cr_cf_hue | INT | 00β360 | β |
| cr_cf_density | INT | 00β255 | β |
| cr_cf_preserve | INT | 500β100 | β |
| cr_post_enable | BOOLEAN | false | β |
| cr_post_levels | INT | 42β32 | β |
| cr_post_mode | COMBO | RGB | 2 options: RGB, Luminance |
| cr_post_dither_mode | COMBO | None | 5 options: None, Bayer, Random, Floyd-Steinberg, Atkinson |
| cr_post_dither | INT | 00β100 | β |
| cr_lvl_channel | COMBO | rgb | 4 options: rgb, r, g, b |
| cr_lvl_in_black | INT | 00β254 | β |
| cr_lvl_in_white | INT | 2551β255 | β |
| cr_lvl_gamma | FLOAT | 1.000.1β10 | β |
| cr_lvl_out_black | INT | 00β254 | β |
| cr_lvl_out_white | INT | 2551β255 | β |
| cr_cb_shad_r | INT | 0-100β100 | β |
| cr_cb_shad_g | INT | 0-100β100 | β |
| cr_cb_shad_b | INT | 0-100β100 | β |
| cr_cb_mid_r | INT | 0-100β100 | β |
| cr_cb_mid_g | INT | 0-100β100 | β |
| cr_cb_mid_b | INT | 0-100β100 | β |
| cr_cb_high_r | INT | 0-100β100 | β |
| cr_cb_high_g | INT | 0-100β100 | β |
| cr_cb_high_b | INT | 0-100β100 | β |
| cr_blur_mode | COMBO | Gaussian | 4 options: Gaussian, Average, Edge Average, Surface Blur |
| cr_blur_radius | INT | 00β50 | β |
| hsl_active | BOOLEAN | false | β |
| hsl_data | STRING | {} | β |
| curve_active | BOOLEAN | false | β |
| curve_data | STRING | {} | β |
| trix_uuid | STRING | β | |
| in_imageopt | IMAGE | β | |
| in_maskopt | MASK | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |
| MASK | MASK | β |
| β original_input | IMAGE | β |