Try Pro FREE for 2 weeksGet Started

PowerPaint — Inpainting AI Model

Mask a region and pick what you want done with it: erase the contents, generate something new from a text prompt, regenerate a masked border so the scene carries on into it, or grow an object that follows the mask's silhouette. Light enough to stay resident without crowding out other models, and quick — a few seconds per image.

What it does

PowerPaint does four jobs from one set of weights and one mask: erase what is in the region, generate something new there from a prompt, extend the frame past its border, or grow an object that follows the mask's outline.

Most inpainting models are tuned for a single intent, which is why removal tools and generative-fill tools are usually separate products. Here the behaviour comes from a learned task token, so removal is that token used as a negative rather than a second model. An SD1.5-class model, quick enough to run across hundreds of images.

When to use it

  • Four editing jobs sharing one mask, one node and one parameter set
  • Removal that pushes the object out rather than painting over it
  • Extending a frame for a different aspect ratio, from the same mask
  • Shape control: a high fitting degree makes the object follow the mask
  • Unmasked pixels kept bit-identical, so it is safe on a whole asset

Details

  • CategoryInpainting
  • Year2024
  • LicenseCreativeML OpenRAIL-M

Compliance & Provenance

  • ProviderOpen-source (OpenMMLab) · Specialized
  • EU AI Act RiskLimited Risk
  • Art. 50 TransparencyRequired — AI-generated outputs are marked

Inputs & Outputs

ImageInputimage

Source image to inpaint

MaskInputimage

Mask image — white marks the region to change, black is kept unchanged

TextInputstringoptional

What should fill the masked region. Required for Fill from prompt and Fill a shape; leave empty for Remove object and Extend frame.

ImageOutputimage

Inpainted image — masked region regenerated, rest preserved

Parameters

taskstringdefault text-guidedoptions: text-guided, object-removal, image-outpainting, shape-guided

What to do with the masked region

Selects which of PowerPaint's four behaviours to run. 'text-guided' (default) fills the mask with what the Text prompt describes. 'object-removal' erases the masked content and continues the surrounding scene — no prompt needed. 'image-outpainting' extends the picture into a masked border; set preserve_outside_mask=false with this one or the new border is composited away. 'shape-guided' generates an object that follows the mask's silhouette, tuned by fitting_degree. Picking the wrong task does not error — it just produces the wrong kind of result, so set this deliberately.

stepsintegerdefault 30range 10–50

Diffusion steps (10-50)

Number of denoising steps. Default 30 — balanced quality/speed. Lower (10-20) is faster but can leave artifacts at the mask edge. Higher (40-50) cleans up edges and detail at linear time cost. This model is light enough that 50 steps is still quick.

seedintegerdefault -1range -1–2147483647

Random seed (-1 = random)

Random seed for reproducibility. -1 (default) randomizes each run; fix it to reproduce a previous result, or to hold the fill constant while iterating on the mask shape.

guidance_scalefloatdefault 7.5range 1–20advanced

How strongly the prompt steers the fill (1-20)

Classifier-free guidance strength. Default 7.5. Lower (3-6) lets the fill blend more naturally with the surroundings but follows the prompt loosely; higher (10-15) obeys the prompt harder at the cost of contrast artifacts and a fill that looks pasted on. Has little effect for object-removal, where there is usually no prompt to follow.

fitting_degreefloatdefault 1range 0–1advanced

How literally shape-guided follows the mask outline (0-1)

Only meaningful for task=shape-guided: how tightly the generated object is held to the mask's silhouette. 1.0 (default) follows the outline closely — use when the mask is a real object shape. Lower values (0.3-0.7) treat the mask as a loose hint and let the model pick a more natural form, which helps when the mask is a rough blob. Leave at 1.0 for the other three tasks.

brushnet_conditioning_scalefloatdefault 1range 0–2advanced

How tightly the fill follows the surrounding pixels (0-2)

Weight of the BrushNet branch, which conditions the fill on the unmasked surroundings. 1.0 (default) is the trained setting. Lower values let the prompt roam further from the surrounding texture and lighting; higher values pin the fill harder to the context, which can drag unwanted structure back into a region you were trying to clear. Change this only after steps and guidance_scale have been tried.

negative_promptstringdefault advanced

Negative prompt — what to keep OUT of the filled area. Empty for none.

Names elements the fill should NOT contain. A diffusion model ignores negations written in the positive prompt (e.g. 'no bird' still draws a bird), so put the unwanted element here instead — e.g. positive 'a clear blue sky', negative 'birds, clouds'. Not needed for object-removal, which already fills toward a clean continuation of the scene. Empty (default) applies no negative guidance.

preserve_outside_maskbooleandefault trueadvanced

Keep everything outside the mask pixel-identical to the input.

When true (default), the region outside the mask is composited back from the original image so faces, products, and background stay pixel-for-pixel unchanged — the pipeline returns a full-frame regeneration and does no compositing of its own, so without this a round-trip can drift pixels nobody asked to touch. A small feather blends the seam. Set false for task=image-outpainting, where the newly generated border is the whole point and compositing would erase it. Either way the output size always matches the input.

mask_dilationintegerdefault 8range 0–64advanced

Expand the mask outward by this many pixels to avoid a ghost outline.

Expands the masked region outward before filling. A mask that traces an object exactly — which is what a Masking or Segmentation node produces — leaves the fill boundary and the preserve_outside_mask seam sitting on the object edge, so the seam re-draws a faint outline of whatever you removed. Default 8 pushes both onto the surrounding area, which is usually enough. Raise it (16-32) when a removal still shows an embossed shape, or when the mask is slightly too tight; lower it toward 0 when the region to change butts up against detail you need kept sharp. 0 disables it.

Limitations

  • Edited images are synthetic and have to be marked as such under the EU AI Act
  • The bundled Stable Diffusion 1.5 base is CreativeML OpenRAIL-M, so its use restrictions govern this node

Tags

  • inpainting
  • object-removal
  • outpainting
  • shape-guided
  • text-guided
  • mask-based
  • image-editing
  • diffusion
  • brushnet
  • gpu-light
  • fast

Alternatives in Image Edit

  • FireRed-1.1

    Natural-language image edit with strong identity consistency. 1-3 min.

  • LatentDiffusion (Object Removal)

    Mask-based object removal / inpainting. 10-30s.

  • Moebius (Object Removal)

    Mask-based object removal. Lighter and sharper than LatentDiffusion. 2-3s.

  • QWEN-2511

    Edits images from a natural-language instruction. High quality, and heavy (1–3 min).

  • QWEN-Inpaint

    Prompt-driven mask inpaint — fills the masked area from your prompt, keeps the rest.

  • QWEN-Layered

    Decomposes an image into editable RGBA layers (foreground objects, background, …). Pair with List-Extract → QWEN-Image-Edit → List-Inject → Layer-Compose to edit a single layer and recompose.

Resources

All AI models