메인 콘텐츠로 건너뛰기
FLUX.2는 생성에 쓰는 JSON 엔드포인트로 편집도 처리합니다. 이미지 한 장을 보내 수정하거나 여러 장을 합칠 수 있고, 요청은 건당 과금되며 결과 URL은 생성 10분 후 만료됩니다. flux-2-pro부터 시작하세요. Black Forest Labs는 가장 정밀한 편집에는 flux-2-max를, 텍스트 렌더링이나 작은 디테일처럼 세밀한 제어에는 flux-2-flex를 권장합니다. 세 모델 모두 요청 형식이 같습니다.

시작하기 전에

1

API 키 발급

FLUX.2 모델은 건당 과금입니다. 토큰 관리에서 API 키(콘솔에서는 ‘토큰’이라고 부릅니다)를 새로 만들거나 기존 키를 편집해 과금 방식(计费模式)을 사용량 우선(按量优先, 권장) 또는 건당 과금(按次计费)으로 설정합니다. 사용량 우선 키는 건당 과금 모델과 사용량 과금 모델을 모두 호출할 수 있고, 건당 과금 키는 건당 과금 모델만 호출할 수 있습니다.키는 서버 측 환경 변수에 보관하세요.LaoZhang API 콘솔의 토큰 만들기 창에서 과금 방식을 건당 과금(按次计费)으로 설정한 화면
2

환경 설정

키를 환경 변수로 설정하고, Python 예제에서 쓰는 requests를 설치합니다.
3

다운로드 스크립트 저장

아래 스크립트를 save_images.py로 저장합니다. cURL 예제는 응답 파일에 이 스크립트를 실행해 모든 이미지를 내려받습니다. FLUX는 URL만 반환하지만, 스크립트는 다른 이미지 모델이 반환하는 b64_json도 디코딩합니다.
save_images.py

이미지 편집

생성 요청에 input_image를 추가하면 편집 요청이 됩니다. URL은 공개적으로 접근 가능한 이미지로 바꾸세요.
스크립트는 저장 완료: flux-edit-1.png를 출력합니다. 참조 URL은 요청 처리 중에 가져오므로 로그인, 쿠키, 봇 확인 없이 열려야 합니다.
여러 참조 이미지를 조합하려면 /v1/images/generations로 JSON을 보내고 각 참조 이미지를 input_image 계열 필드에 넣으세요. multipart 엔드포인트 /v1/images/edits는 image 필드로 파일 한 개만 받으므로 참조 이미지를 조합할 수 없습니다.

로컬 파일 편집

내 컴퓨터의 파일을 편집하려면 파일과 MIME 타입이 일치하는 data URL로 보냅니다. 예를 들어 PNG는 data:image/png;base64,...입니다. 본문을 heredoc으로 넘기면 큰 이미지가 명령줄에 들어가지 않습니다.

참조 이미지 조합

참조 이미지를 더 넣으려면 input_image_2부터 input_image_8까지 추가하고, 프롬프트에서는 필드 순서대로 이미지 1, 이미지 2처럼 가리킵니다. 다음 예제는 현재 디렉터리의 PNG 파일 세 개를 읽습니다.

Python으로 편집하기

이 스크립트는 참조 이미지를 1~8장 받아, 로컬 파일은 data URL로 바꾸고 공개 URL은 그대로 전달하며, 요청이 끝나는 즉시 결과를 저장합니다.

파라미터

출력 크기는 size 또는 width와 height 중 하나로만 정하세요. 자주 쓰는 size 값은 FLUX.2 생성의 출력 크기 절에 있습니다.

응답 처리

응답은 data[0].url로 이미지 한 장을 반환합니다. FLUX는 b64_json을 반환하지 않으므로 response_format은 보내지 마세요. 링크는 이미지 생성 10분 후 만료되므로, 특히 배치 작업에서는 요청이 끝나는 즉시 내려받으세요. output_format을 png로 설정하지 않으면 이미지는 JPEG입니다.

프롬프트 작성 팁

  • 각 원본은 필드 순서대로 이미지 1, 이미지 2, 이미지 3처럼 지칭합니다.
  • 로고, 얼굴, 제품 색상처럼 각 참조 이미지에서 반드시 유지할 요소를 적습니다.
  • 결과가 하나의 자연스러운 이미지여야 한다고 명시합니다.
  • 콜라주, 화면 분할, 테두리, 라벨처럼 피해야 할 것을 적습니다.

오류와 과금

  • HTTP 400: 필드 이름, 참조 이미지 수, 출력 크기를 확인하세요.
    • 필드 이름: input_image 다음에 input_image_2 이상
    • 참조 이미지 수: 최대 8장
    • 출력 크기: 16의 배수, 64픽셀 이상, 약 4MP 이하. size 또는 width와 height로 지정
  • 참조 이미지를 불러오지 못함: URL이 공개되어 있어야 합니다. 그렇지 않으면 파일을 data URL로 보내세요.
  • 결과 링크가 더 이상 열리지 않음: 생성 10분 후 만료된 것입니다. 요청을 다시 실행하고 결과를 즉시 내려받으세요.
  • HTTP 401: 키와 Authorization: Bearer 헤더를 확인하세요.
  • HTTP 429, 5xx, 타임아웃: 백오프를 두고 재시도하세요. 타임아웃 후에는 이중 과금을 피하도록 다시 보내기 전에 호출 로그를 확인하세요.
요청마다 모델의 호출당 가격으로 과금됩니다. 호출 로그에서 요청별 모델과 청구 금액을 볼 수 있습니다.

레거시 FLUX Kontext 모델

flux-kontext-pro와 flux-kontext-max는 기존 연동을 위해 목록에 남아 있습니다. size 대신 aspect_ratio 필드를 쓰며, 자세한 내용은 FLUX.2 생성의 레거시 호환 절에 있습니다. 새 편집 작업은 FLUX.2로 만드세요.

자주 묻는 질문

이미지의 일부만 편집할 수 있나요?

네, 프롬프트로 설명하면 됩니다. 요청에 마스크 필드는 없으므로 바꿀 요소와 유지할 부분을 프롬프트에 적으세요.

편집이 생성보다 비싼가요?

아닙니다. FLUX.2는 건당 과금이므로 참조 이미지가 1장이든 8장이든, 출력 크기가 얼마든 편집도 생성과 같은 호출당 가격입니다. 실제 청구 금액은 호출 로그에서 확인하세요.

편집과 생성은 같은 모델을 쓰나요?

네. flux-2-pro, flux-2-flex, flux-2-max가 둘 다 처리합니다. input_image가 있으면 편집이고, 없으면 FLUX.2 생성처럼 새 이미지를 만듭니다.

OpenAI SDK의 images.edit()로 편집할 수 있나요?

이미지 한 장을 편집할 때만 가능합니다. images.edit()는 multipart 폼 데이터를 /v1/images/edits로 올리는데, 이 엔드포인트는 이미지를 한 장만 받으므로 참조 이미지를 조합할 수 없습니다. 대신 client.images.generate()를 쓰고 input_image(참조 이미지가 더 있으면 번호 붙은 필드도)를 공개 URL이나 data URL로 extra_body에 넣으세요. 이 페이지의 Python 헬퍼는 같은 작업을 requests로 합니다.

관련 문서와 참고 자료