AI 배경만 바꾸기 — 제품 모양·라벨 변화를 compare 로 확인
제품 사진의 배경만 바꾸는 편집 프롬프트와, 결과에서 병 모양·라벨 글자가 몰래 바뀌었는지 ImageMagick compare 로 영역을 잘라 숫자와 차이 그림으로 확인하는 순서입니다.
라벨의 MOSS 가 M0SS 로 바뀐 사진은 축소 미리보기에서 눈에 띄지 않습니다. 배경만 바꾸라고 했어도 편집 모델은 병 비율, 뚜껑 모양, 라벨 글자까지 다시 그릴 수 있으므로, 프롬프트에서 막고 결과는 픽셀로 대조합니다.
[1] 바꿀 것 하나와 지킬 것 목록을 따로 적습니다. Google 의 Gemini 이미지 문서(Image generation)는 부분 편집을 「제공한 이미지에서 [요소] 만 바꾸고 나머지는 원본 그대로 둔다」 는 틀로 쓰게 합니다. 그 틀에 제품에서 잘 틀리는 부분을 이름으로 붙였습니다.
Using the provided image, change only the background to {a wooden shelf covered with fallen autumn leaves, warm late-afternoon light}.Keep everything else in the image exactly the same, preserving the original style, lighting, and composition.Do not change the product in any way:- the bottle's shape, proportions, size and position in the frame- the cap's shape and color- every letter on the label: "{MOSS}" and "{30 ml}", same font, same spacingKeep the image size at {800x1000} pixels.[2] 유리병이면 배경이 비치는 자리를 미리 압니다. 투명하거나 반사가 있는 병은 배경이 바뀌면 병 안쪽 색도 바뀌는 것이 정상입니다. 이 부분의 차이는 결함이 아니므로, 대조할 때는 라벨처럼 불투명한 곳과 병의 윤곽을 따로 봅니다.
[3] 아래 대조는 손으로 만든 시험 그림으로 보여 줍니다. original.png 는 convert 로 그린 병 그림이고, edit-a.jpg 는 배경만 바꾼 것, edit-b.jpg 는 배경을 바꾸면서 라벨의 O 를 숫자 0 으로 바꾼 것입니다. 두 편집본은 JPEG(품질 85)로 저장하고 크기를 키웠습니다. AI 결과가 아닙니다. 먼저 크기를 봅니다.
$ identify -format "%f %wx%h\n" original.png edit-a.jpg edit-b.jpgoriginal.png 800x1000edit-a.jpg 896x1120edit-b.jpg 896x1120편집 결과의 크기가 원본과 다르면 대조 전에 원본 크기로 맞춥니다. ! 는 비율을 무시하고 그 크기로 맞추라는 뜻입니다. 비율 자체가 다르면 제품이 늘어난 것이므로 그 자리에서 탈락입니다.
$ convert edit-a.jpg -resize 800x1000! edit-a.png$ convert edit-b.jpg -resize 800x1000! edit-b.png[4] 그림 전체를 대조하면 배경 때문에 80만 픽셀 중 77만여 개가 다르게 나와 쓸모가 없습니다.
$ compare -metric AE original.png edit-a.png null:776473[5] 제품 안쪽만 잘라 대조합니다. 이미지 뷰어에서 병 몸통 안쪽(배경이 섞이지 않는 사각형) 좌표를 읽어 세 장을 같은 자리에서 자릅니다. 여기서는 280×440, 시작점 (260,375) 입니다.
$ for f in original edit-a edit-b; do convert $f.png -crop 280x440+260+375 +repage $f-body.png; done$ compare -metric AE original-body.png edit-a-body.png null:108107$ compare -metric AE original-body.png edit-b-body.png null:107558허용 오차 없이 세면 JPEG 저장과 크기 조정이 만든 미세한 색 차이까지 세어, 제품이 그대로인 edit-a 와 글자가 바뀐 edit-b 가 구별되지 않습니다. -fuzz 10% 로 작은 색 차이를 같다고 봅니다.
$ compare -metric AE -fuzz 10% original-body.png edit-a-body.png null:1713$ compare -metric AE -fuzz 10% original-body.png edit-b-body.png null:4050edit-a 에 남은 1,713 픽셀은 글자 테두리의 크기 조정 흔적이고, edit-b 는 두 배가 넘습니다. 흔적이 얼마나 남는지는 편집 도구와 크기 조정 배율마다 달라서 합격선을 숫자 하나로 정할 수 없습니다. 숫자는 여러 결과 중 다시 볼 장을 고르는 데 쓰고, 판정은 6단계 차이 그림으로 합니다.
[6] 라벨 영역의 차이 그림을 만듭니다. 세 번째 파일 이름을 주면 다른 픽셀을 빨갛게 칠한 그림이 나옵니다.
$ convert original.png -crop 220x140+290+520 +repage original-label.png$ convert edit-b.png -crop 220x140+290+520 +repage edit-b-label.png$ compare -metric AE -fuzz 10% original-label.png edit-b-label.png label-diff.png2977label-diff.png 에서 크기 조정 흔적은 글자 윤곽을 따라 가는 선으로만 보입니다. 바뀐 글자는 글자 모양 전체가 빨갛게 칠해집니다. 이 시험 그림에서는 0 뿐 아니라 뒤의 SS 도 칠해졌습니다. 숫자 0 의 폭이 O 와 달라 뒤 글자가 밀렸기 때문입니다.
| 어디를 | 무엇으로 | 바뀌었다는 신호 |
|---|---|---|
| 크기 | identify | 가로세로 비율이 원본과 다름 |
| 병 윤곽 | 원본과 결과를 50% 투명도로 겹쳐 보기 | 어깨·바닥선이 두 겹으로 보임 |
| 몸통 안쪽 | -fuzz 를 준 compare 숫자 | 다른 결과들보다 눈에 띄게 큼 |
| 라벨 글자 | 차이 그림 + 확대해 한 글자씩 | 글자 모양 전체가 칠해짐 |