Bird
Raised Fist0
Prompt Engineering / GenAIml~10 mins

Inpainting and outpainting in Prompt Engineering / GenAI - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to load an image and prepare a mask for inpainting.

Prompt Engineering / GenAI
from PIL import Image
image = Image.open('input.jpg')
mask = Image.new('L', image.size, [1])
Drag options to blanks, or click blank then click option'
A0
B255
C128
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using 255 instead of 0 for the initial mask value.
Confusing mask color values.
2fill in blank
medium

Complete the code to apply inpainting using OpenCV.

Prompt Engineering / GenAI
import cv2
image = cv2.imread('input.jpg')
mask = cv2.imread('mask.png', 0)
inpainted = cv2.inpaint(image, mask, [1], cv2.INPAINT_TELEA)
Drag options to blanks, or click blank then click option'
A10
B0
C3
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using 0 radius which disables inpainting.
Using too large radius causing blurring.
3fill in blank
hard

Fix the error in the code to perform outpainting by extending the image canvas.

Prompt Engineering / GenAI
import numpy as np
from PIL import Image
image = Image.open('input.jpg')
width, height = image.size
new_width = width + 100
new_height = height + 50
new_image = Image.new('RGB', (new_width, new_height), [1])
new_image.paste(image, (50, 25))
Drag options to blanks, or click blank then click option'
A(255, 0, 0)
B(0, 0, 0)
C(128, 128, 128)
D(255, 255, 255)
Attempts:
3 left
💡 Hint
Common Mistakes
Using black background causing harsh edges.
Using a single integer instead of a tuple for color.
4fill in blank
hard

Fill both blanks to create a mask dictionary for inpainting and outpainting regions.

Prompt Engineering / GenAI
masks = {
    'inpainting': [1],
    'outpainting': [2]
}
Drag options to blanks, or click blank then click option'
A{'region': 'center', 'mask': mask_inpaint}
B{'region': 'border', 'mask': mask_outpaint}
C{'region': 'edges', 'mask': mask_outpaint}
D{'region': 'center', 'mask': mask_outpaint}
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping inpainting and outpainting masks.
Using the same mask for both regions.
5fill in blank
hard

Fill all three blanks to define a function that applies inpainting or outpainting based on mode.

Prompt Engineering / GenAI
def apply_painting(image, mask, mode):
    if mode == 'inpainting':
        method = [1]
    elif mode == 'outpainting':
        method = [2]
    else:
        raise ValueError('Invalid mode')
    return cv2.inpaint(image, mask, 3, method)  # radius fixed at 3

result = apply_painting(img, mask, [3])
Drag options to blanks, or click blank then click option'
Acv2.INPAINT_TELEA
Bcv2.INPAINT_NS
C'inpainting'
D'outpainting'
Attempts:
3 left
💡 Hint
Common Mistakes
Using the same method for both modes.
Passing mode as a variable instead of string.

Practice

(1/5)
1. What is the main difference between inpainting and outpainting in image editing?
easy
A. Both inpainting and outpainting only remove unwanted parts from images.
B. Inpainting adds new areas around an image, outpainting removes parts inside it.
C. Inpainting fills missing parts inside an image, outpainting adds new areas around it.
D. Inpainting and outpainting are the same process with different names.

Solution

  1. Step 1: Understand inpainting

    Inpainting is used to fill missing or unwanted parts inside an image, like fixing scratches or holes.
  2. Step 2: Understand outpainting

    Outpainting extends the image by adding new content around the edges, making the image bigger.
  3. Final Answer:

    Inpainting fills missing parts inside an image, outpainting adds new areas around it. -> Option C
  4. Quick Check:

    Inpainting = fill inside, Outpainting = add outside [OK]
Hint: Inpainting fixes inside; outpainting grows outside [OK]
Common Mistakes:
  • Confusing inpainting with outpainting
  • Thinking both remove parts only
  • Believing they are identical
2. Which of the following is the correct way to describe the input for an inpainting model?
easy
A. Only the new areas to add around the image.
B. An image with missing or masked areas to fill.
C. A complete image with no missing parts.
D. A text description of the image content.

Solution

  1. Step 1: Identify input for inpainting

    Inpainting models require an image with missing or masked parts that need filling.
  2. Step 2: Check other options

    Complete images or text descriptions are not direct inputs for inpainting; new areas relate to outpainting.
  3. Final Answer:

    An image with missing or masked areas to fill. -> Option B
  4. Quick Check:

    Inpainting input = image with holes [OK]
Hint: Inpainting needs holes in image input [OK]
Common Mistakes:
  • Choosing complete images without masks
  • Confusing input with outpainting requirements
  • Selecting text descriptions as input
3. Given this Python pseudocode for outpainting, what will be the shape of the output image if the input image is 256x256 and the model adds 64 pixels on each side?
input_image = load_image('photo.png')  # shape (256, 256)
output_image = outpaint_model(input_image, border=64)
print(output_image.shape)
medium
A. (256, 256)
B. (192, 192)
C. (320, 320)
D. (384, 384)

Solution

  1. Step 1: Calculate added pixels

    The model adds 64 pixels on each side, so total added width = 64 * 2 = 128 pixels.
  2. Step 2: Calculate new image size

    Original size 256 + 128 = 384 pixels. This is 256 + 64 + 64 = 384, since 64 pixels on each side means adding 64 left and 64 right.
  3. Step 3: Re-check options

    (384, 384) matches calculation. (320, 320) is 256 + 64, adding only one side.
  4. Final Answer:

    (384, 384) -> Option D
  5. Quick Check:

    256 + 64*2 = 384 [OK]
Hint: Add border pixels twice (both sides) to original size [OK]
Common Mistakes:
  • Adding border only once
  • Confusing inpainting with outpainting size change
  • Ignoring both width and height increase
4. You run an inpainting model but the output image still has visible holes where the mask was applied. What is the most likely cause?
medium
A. The mask was not correctly applied to the input image.
B. The model was trained only for outpainting, not inpainting.
C. The input image was too large for the model to process.
D. The output image format does not support transparency.

Solution

  1. Step 1: Check mask application

    If holes remain, the mask likely was not properly set, so the model didn't know where to fill.
  2. Step 2: Evaluate other options

    Model type mismatch or image size issues usually cause errors or poor quality, not visible holes. Output format affects display but not hole filling.
  3. Final Answer:

    The mask was not correctly applied to the input image. -> Option A
  4. Quick Check:

    Mask error = holes remain [OK]
Hint: Check mask covers missing parts fully [OK]
Common Mistakes:
  • Ignoring mask correctness
  • Blaming model type without checking input
  • Assuming output format causes holes
5. You want to create a larger scenic image by extending the edges of a 512x512 photo using outpainting. You also want to remove a small unwanted object inside the photo using inpainting. Which approach correctly combines both tasks?
hard
A. First apply inpainting on the original image to remove the object, then apply outpainting to extend the image edges.
B. Apply outpainting first to extend the image, then apply inpainting on the extended edges to remove the object.
C. Only use outpainting because it can both remove objects and extend images.
D. Only use inpainting because it can extend images and remove objects.

Solution

  1. Step 1: Remove unwanted object first

    Inpainting fixes inside the image, so remove the object before changing image size.
  2. Step 2: Extend image after cleanup

    Outpainting adds new areas around the cleaned image, so apply it after inpainting.
  3. Step 3: Evaluate other options

    Outpainting cannot remove inside objects; inpainting cannot add new edges. Order matters for best results.
  4. Final Answer:

    First apply inpainting on the original image to remove the object, then apply outpainting to extend the image edges. -> Option A
  5. Quick Check:

    Fix inside first, then grow outside [OK]
Hint: Clean inside first (inpainting), then extend outside (outpainting) [OK]
Common Mistakes:
  • Applying outpainting before inpainting
  • Thinking one method does both tasks
  • Ignoring task order importance