AI에게 이미지 편집 시켜보기#
AI는 이미지 편집을 잘 할까?#
이미지속 특정 사물을 지우거나 색을 변경하는 등의 이미지 편집은 AI가 잘하는 영역이 되었습니다.
얼마나 잘 하는지 한번 살펴 볼까요?
왼쪽 이미지는 원본이고, 오른쪽은 AI가 이미지를 수정한 것입니다.
- Sample 1
Prompt : “사진에서 사과를 지워주세요”
AI가 다음처럼 사과를 자연스럽게 삭제했습니다.
- Sample 2
Prompt : “사진에서 사과를 바나나로 바꿔주세요.”
AI가 다음처럼 사과를 바나나로 자연스럽게 바꿨습니다.
자연스럽게 이미지가 편집되었습니다.
이정도면 꽤 훌륭하죠?
자세히 보면 이미지 일부가 변경된 부분이 있지만 Prompt를 더 신경써서 작성하면 말끔히 처리될 수 있을것 같습니다.
자, 이제 어떻게 하는지 방법을 알아봅시다.
어떻게 구현하나?#
위 이미지 편집은 OpenAI에서 제공하는 gpt-image-1 Model을 사용하여 Python으로 구현했습니다.
OpenAI에서 제공하는 AI Model은 유료이지만 전반적으로 좋은 성능을 가지고 있습니다.
위 문서를 참조하여 작성한 Python기반 이미지 편집 소스코드입니다.
이미지 1개 편집#
import base64
from openai import OpenAI
client = OpenAI(api_key='YOUR-API-KEY')
cmd = 'Change the color of the apple to blue in the photo.'
img_input = 'input.jpg'
result = client.images.edit(
model="gpt-image-1",
image=[open(img_input, "rb")],
prompt=cmd,
)
image_base64 = result.data[0].b64_json
image_bytes = base64.b64decode(image_base64)
img_output = 'output.png'
with open(img_output, "wb") as f:
f.write(image_bytes)소스코드는 간단합니다.
여러가지 Prompt로 이미지를 편집하거나 생성해보면 재미있는 결과를 얻을 수 있습니다.
다양하게 prompt를 시도해보세요.
이미지 여러개를 복합하여 편집#
다음은 이미지 두장을 사용하여 편집 해보겠습니다.
오른쪽 이미지의 강아지가 사과를 물고 있도록 Prompt를 작성했습니다.
- Sample 3
Prompt : “input의 사과를 input2의 강아지가 물고 있도록 해주세요.”
(input : 왼쪽 이미지의 파일명, input2 : 오른쪽 이미지의 파일명)

이미지 2장을 사용하는 소스코드 입니다.
cmd = 'Please make the dog in input2 hold the apple from input in its mouth.'
img_input = 'input.jpg'
img_input2 = 'input2.jpg'
result = client.images.edit(
model="gpt-image-1",
image=[open(img_input, "rb"), open(img_input2, "rb")],
prompt=cmd,
)
image_base64 = result.data[0].b64_json
image_bytes = base64.b64decode(image_base64)
img_output = 'output2.png'
with open(img_output, "wb") as f:
f.write(image_bytes)image 파라미터에 List 형태로 이미지를 2개 입력했습니다.
List이므로 3개, 4개 등 더 많은 이미지를 입력할 수 있습니다.
image=[open(img_input, "rb"), open(img_input2, "rb")],