부분 수정(인페인팅)
마스크로 영역을 지정하고 그 영역만 다시 그립니다. 나머지 부분은 그대로 유지됩니다.
코드를 작성하지 않으신다면 내 도구에서 이미지 생성을 참고하십시오.
시작하기 전에
코드에 사용되는 값
API 주소
https://api.ofox.ai/v1모델 ID
openai/gpt-image-2.5-flareAPI 키코드의 YOUR_OFOX_API_KEY를 본인의 키로 바꿔 넣으십시오
Python 의존성
pip install openai pillowpillow는 마스크를 만드는 데 사용합니다마스크 요구 사항
설명용 그림이며 실제 생성 결과가 아닙니다
- 알파 채널이 있는 PNG여야 합니다. JPEG와 불투명 PNG는 동작하지 않습니다.
- 원본 이미지와 크기가 정확히 같아야 합니다.
- 투명한 픽셀은 다시 그려지고, 불투명한 픽셀은 원본이 유지됩니다.
- 편집 엔드포인트에서만 동작합니다. 텍스트로 이미지 생성에 보내면 무시됩니다.
단계
마스크 만들기
이미 마스크가 있다면 이 단계를 건너뛰십시오.
이 코드는 현재 디렉터리의 input.png를 읽어 가운데 40% 크기의 사각형을 투명하게 만든 뒤 mask.png로 저장합니다.
make_mask.py
from PIL import Image, ImageDraw
src = Image.open("input.png")
mask = Image.new("RGBA", src.size, (0, 0, 0, 255)) # 완전 불투명 = 전부 유지
w, h = src.size
ImageDraw.Draw(mask).rectangle( # 투명 영역 = 다시 그릴 부분
(int(w * 0.3), int(h * 0.3), int(w * 0.7), int(h * 0.7)), fill=(0, 0, 0, 0)
)
mask.save("mask.png")요청 보내기
아래 예시는 모두 그대로 실행하여 확인했습니다. 결과는 현재 디렉터리에 output.png로 저장됩니다.
cURL
Terminal
# mask.png: input.png와 같은 크기, 알파 채널 포함, 투명 영역 = 다시 그릴 부분
curl -s https://api.ofox.ai/v1/images/edits \
-H "Authorization: Bearer YOUR_OFOX_API_KEY" \
-F "model=openai/gpt-image-2.5-flare" \
-F "image=@input.png" \
-F "mask=@mask.png" \
-F "prompt=An orange cat sitting in the center, background and everything else unchanged" \
-F "quality=low" \
-o response.json
jq -r '.data[0].b64_json' response.json | base64 --decode > output.png프롬프트 작성
추가할 내용만 적지 말고 수정 후 이미지 전체가 어떻게 보여야 하는지를 설명하십시오.
실측 결과
마스크 바깥 영역은 거의 변하지 않습니다. 원본과의 평균 픽셀 차이는 2/255 미만이었습니다.
비교를 위해 같은 이미지를 마스크 없이 편집했을 때는 같은 영역이 120/255만큼 변했습니다.
문제 해결
그 밖의 오류는 전체 오류 표를 참고하십시오.
공식 문서
OpenAI 문서는 OpenAI를 직접 호출할 때의 동작을 설명합니다. OfoxAI를 통해 호출할 때는 이 시리즈 문서의 실측 결과가 우선합니다. 예를 들어 편집 시 공급자를 지정할 필요가 없습니다.
Last updated on