Nodes/Atlas Camera/Atlas SDXL Inpaint (native) ✨
ComfyUI Node

Atlas SDXL Inpaint (native) ✨

Atlas SDXL Inpaint (native) ✨ — SDXL inpaint that understands the camera

By mikejamesvfx·Created 3 months ago·Updated a day ago· 1
Atlas SDXL Inpaint (native) ✨
  • image
  • mask
  • image
  • report
checkpointSDXL/sd_xl_base_1.0.safetensors
positive_prompthigh detail, coherent architecture
negative_promptblurry, warped, duplicate, text
seed0
steps30
cfg5.5
denoise0.85
grow_mask_by8
max_side0
preserve_perspectivetrue

AtlasSDXLInpaint is the pack's clean-plate workhorse: it re-renders the masked-out regions of a plate with SDXL, and - this is the Atlas twist - it conditions that inpaint on the solved camera geometry so the continuation matches the perspective, not just the texture. It's deliberately built as an adapter over ComfyUI's own stock SDXL checkpoint/conditioning/latent inpaint path, which means it uses whatever SDXL checkpoint is already sitting in models/checkpoints and stays compatible with ComfyUI's memory/offload policies. No second model framework to maintain.

The intended slot: feed it a cropped image and mask (usually from AtlasInpaintCrop), get an IMAGE back, and stitch it into place with AtlasInpaintStitch. That crop-stitch structure is the classic mask-inpaint loop the community has used since the beginning - the KB's own framing: crop, re-render at the model's native resolution, paste back - and it's still the right tool because it gives bit-identical unmasked pixels, which whole-frame edit models can't.

The inputs that matter

  • image, mask - the crop and its hole.
  • checkpoint - an SDXL-compatible base/inpaint checkpoint in models/checkpoints.
  • positive_prompt / negative_prompt - defaults are tuned for architecture ("high detail, coherent architecture"; negatives "blurry, warped, duplicate, text").
  • seed, steps, cfg, denoise - standard sampler controls; denoise 0.85 default is a strong fill, dial it down toward 0.5 if you want the surroundings to hold more authority.
  • grow_mask_by - expand the mask a bit so the fill has room and the seam hides.
  • max_side - the OOM killer. Downscale the crop to this long edge (1024 = SDXL native) before sampling, then lanczos-upscale back. On a big crop this is the difference between running and hitting the tiled-VAE slow path or an out-of-memory. Inpainted content is generative anyway, so the quality cost is minor.
  • preserve_perspective - on by default, and the reason to pick this node over a stock inpaint. It appends camera-geometry guidance that tells SDXL to continue the source viewpoint, facade angle, foreshortening and converging lines, and negatively conditions straight-on/orthographic facades. Disable it if you want an intentionally novel view.

Outputs: the inpainted image and a report.

Gotchas

If you get a "checkpoint not found" error, the filename must match what's in models/checkpoints exactly, and it needs to be an SDXL-family model - an SD1.5 checkpoint will not behave at these settings. And remember the honest limit from the KB: masked inpainting owns only-masked, bit-identical repair; if you want the whole frame re-edited, that's a different node family entirely. Use this where it belongs - filling holes without touching anything else.

Install

No extra deps - the node expands into ComfyUI's stock SDXL nodes, so you need an SDXL checkpoint, not a new Python package:

cd <ComfyUI>/custom_nodes
git clone https://github.com/mikejamesvfx/atlas-camera.git

Restart, or install the pack via ComfyUI Manager ("atlas-camera"). It sits in Atlas/07 · Clean Plate & Inpaint.

CategoryAtlas/07 · Clean Plate & Inpaint

Inputs (12)

NameTypeDefaultDescription
imageIMAGE
maskMASK
checkpointSTRINGSDXL/sd_xl_base_1.0.safetensorsCheckpoint filename in models/checkpoints. Use an SDXL-compatible inpaint/base checkpoint.
positive_promptSTRINGhigh detail, coherent architecture
negative_promptSTRINGblurry, warped, duplicate, text
seedINT00–18446744073709550000
stepsINT301–100
cfgFLOAT5.50–30
denoiseFLOAT0.850–1
grow_mask_byINT80–64
max_sideINT00–4096Downscale the crop to this long edge before SDXL (1024 = SDXL native) and lanczos-upscale the result back. Kills the OOM/tiled-VAE slow path on big crops; inpainted content is generative, so the quality cost is minor. 0 = off.
preserve_perspectiveoptBOOLEANtrueAppend camera-geometry guidance that tells SDXL to continue the source viewpoint, facade angle, foreshortening, and converging lines; negatively conditions straight-on and orthographic facades. Disable for intentionally novel views.

Outputs (2)

NameTypeDescription
imageIMAGE
reportSTRING