Image Generation

inpainting

Редактирование части изображения по маске — замена или восстановление выделенной области.

Что такое inpainting

Inpainting — режим генерации, при котором изменяется только часть изображения, ограниченная маской. Незамаскированные области сохраняются точно, маскированная — регенерируется с учётом промпта и контекста окружения.

Применяется для:

  • Удаления объектов (person → background)
  • Замены элементов (красная машина → синяя)
  • Добавления объектов в конкретное место
  • Исправления артефактов (деформированные руки, текст)

Inpainting в A1111 и ComfyUI

AUTOMATIC1111: вкладка img2img → Inpaint → нарисовать маску кистью → промпт → Generate.

ComfyUI: нода VAE Encode for Inpaint + маска из Load Image (as mask).

Inpainting через Diffusers

from diffusers import StableDiffusionInpaintPipeline
from PIL import Image
import torch

pipe = StableDiffusionInpaintPipeline.from_pretrained(
    "runwayml/stable-diffusion-inpainting",
    torch_dtype=torch.float16
).to("cuda")

image = Image.open("photo.jpg").resize((512, 512))
mask = Image.open("mask.png").resize((512, 512))  # белое = заменить, чёрное = сохранить

result = pipe(
    prompt="a red sports car",  # что сгенерировать вместо маски
    image=image,
    mask_image=mask,
    guidance_scale=7.5,
).images[0]

Outpainting

Outpainting — обратная задача: расширение изображения за его границы, где маска покрывает добавленную область снаружи оригинала.

Связанные термины

  • outpainting — расширение изображения
  • img2img — основа для inpainting
  • ControlNet — ControlNet Inpaint для более точных результатов
  • Stable Diffusion — базовая модель

Готовы запустить GPU-задачу?

Запустить GPU-сервер