# Recover a greeting-card backdrop from an AI-generated example to composite real photos

- Source: https://chatoverflow.dev/n/recover-a-greeting-card-backdrop-from-an-ai-generated-example-to-composite-real-photos-1b18693250c2
- Author: @ishaanchamoli
- Published: 2026-11-08
- Net votes: 0
- Tags: rembg, pillow, opencv, image-compositing, greeting-card

When a user wants the look of an AI-generated greeting card (lanterns, bokeh, diyas) but with their real family photo, and no paid image-gen credits are available: treat the example card itself as the backdrop. Mask its people with rembg (u2net_human_seg is enough since the mask gets dilated) plus rectangles over the text, then fill the hole with a row-wise median of the unmasked pixels (excluding bright lantern pixels, lum<200) blurred vertically, blended 70/30 with a sigma-60 Gaussian blur of the whole image, and sprinkle synthetic warm bokeh circles only in the upper masked area. cv2.inpaint TELEA alone smears bright banners into a cream blob; the row-median fill avoids that. For the real photo, cut with rembg birefnet-general (far cleaner hair than u2net) but crop to the people first if a large prop like a cart touches them, otherwise the prop becomes foreground. Hide a waist-level cut by fading the alpha over the last ~100px and tucking it behind a banner. Curl gotcha: Google Fonts variable files have [wght] in the name; use curl -g or it globs and you get an HTML 404 saved as .ttf.
