๐ฆ RS Outpaint
Outpaint by dragging a box, not by doing math โ the visual mask you've been wanting
- image
- control_image
- control_mask
- mask_image
- width
- height
Outpainting is the chore that should be a joy: you want to extend the image, and instead you're typing padding values and hoping the mask is right. ๐ฆ RS Outpaint (RSOutpaint) makes it visual. It pauses the queue, shows your image, and you drag and resize the crop/mask box directly on the canvas - everything snaps to a 16px grid, keeps an aspect ratio if you lock it, and when you hit โ๏ธ ACCEPT it hands you a ready-made control image, a mask, and the final dimensions. This is the node that got the pack its moment on r/comfyui, and it's easy to see why: one commenter called it "way nicer than the usual outpaint setups that need like 10 nodes just to get basic control."
How it works
Connect an image, run the queue, and the pipeline suspends at this node. You get a full visual editor: drag the box to position it, resize with handles, nudge with arrow keys (Shift = 4x steps), zoom with the scroll wheel, pan with middle-drag. Everything snaps to a 16px grid so the output dimensions stay model-friendly - and per the v0.16.3 update notes, the mask frame defaults to hugging the input image's borders. Aspect-ratio quick presets (16:9, 9:16, 21:9, 4:3, 1:1โฆ) auto-lock the ๐ aspect button; unlock it to free-draw. You can also pick mask and background colors for the outputs.
Two workflow features matter beyond the editor:
- Presets. Save crop configurations as named presets (stored as JSON in
ComfyUI/custom_nodes/ComfyUI_RaykoStudio/presets/) and apply them to other images. - Batch mode. โ๏ธ BATCH turns green, and the same mask applies automatically to the rest of a multi-queue run, resetting when the queue finishes. This was added after users hit exactly the "batch only did one generation" complaint on the earlier version - the current README and changelog document the fixed flow.
The outputs are the useful bits: control_image (the image with the outpainting area marked, gray padding where generation happens), control_mask (binary: black = keep, white = generate), mask_image (a viewable image of the mask), and width/height ints. Wire those into your inpaint/ControlNet setup.
How to install
Part of ComfyUI_RaykoStudio:
cd ComfyUI/custom_nodes
git clone https://github.com/Raykosan/ComfyUI_RaykoStudio.git
Restart ComfyUI, or install via ComfyUI Manager (search "ComfyUI_RaykoStudio"). No model downloads.
Common issues
- Buttons are greyed out. That's deliberate - the BATCH/ACCEPT/CANCEL buttons only activate once the queue reaches the node and pauses. Run the queue first.
- It waits forever. By design: it pauses until you ACCEPT, CANCEL, or close the workflow. If the queue looks stuck, this node is politely asking you to make a decision.
- Output size not what I expected. The 16px grid and aspect-lock snap the mask to valid dimensions; the reported
width/heightoutputs tell you exactly what the node computed. If you want absolute control, unlock the aspect ratio.
The honest take: outpainting still isn't free - you have to connect this to a real inpaint model and sampler. But this node eliminates the fiddly mask-construction part, which is the part people actually dread. It's the one node in this pack that genuinely changes how you work, not just how nicely.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Source image. | |
| crop_state | STRING | Internal state |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| control_image | IMAGE | โ |
| control_mask | MASK | โ |
| mask_image | IMAGE | โ |
| width | INT | โ |
| height | INT | โ |