Black Forest Labs: FLUX.2 Klein 4B
FLUX.2 [klein] 4B는 텍스트 기반 제작과 최대 4개 참조를 사용한 편집을 위한 Black Forest Labs의 소형 단계 증류 이미지 모델입니다. 4단계 설계로 대화형 시각 작업을 지원하며 비증류 Base 4B 버전과 별도 정체성을 유지합니다.
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
FLUX.2 [klein] 4B는 텍스트 설명에서 이미지를 만들고 시각 참조로 편집하는 Black Forest Labs의 소형 모델입니다. 40억 매개변수의 rectified-flow 트랜스포머가 생성·편집을 하나의 아키텍처에 둡니다. 명명된 4B 버전은 단계 증류되었으며 제조사 참조 예시는 추론 4단계를 사용합니다.
모델의 역할은 제품 장면 탐색, 캐릭터 의상 변경, 피사체·배경 결합이나 일러스트 외형 개선 같은 대화형 시각 초안·수정입니다. 중요한 사건이나 구도부터 시작해 피사체, 재질, 조명과 시점을 설명하세요. 구체적 기획은 옅은 오크 탁자 위 무광 파란 도자기 컵을 손잡이·유약이 보이는 측면광 클로즈업으로 배치할 수 있습니다. 결과는 그러한 결정과 비교해 확인할 이미지입니다.
소수 참조로 편집
문서상 4B 프로파일은 입력 이미지 최대 4개를 받습니다. 제품 외형, 캐릭터, 배경이나 스타일처럼 역할을 명확히 배정하세요. 한 사진이 편집 장면이면 이를 식별하고 변경과 유지 디테일을 모두 명시합니다. 예를 들어 첫 이미지의 컵 실루엣·표면을 유지하고 두 번째의 방을 사용하며 탁자 덮개만 교체할 수 있습니다. 참조 순서와 정확한 변경 지시는 일반적인 개선 요청보다 수정 목표를 명확히 합니다.
제조사는 이 소형 참조 예산을 더 큰 FLUX.2 변형과 구별합니다. [klein]에는 프롬프트 업샘플링이 없다고도 명시합니다. 짧은 라벨의 자동 확장에 기대지 말고 참조 물체 사이 관계 등 중요한 설명을 직접 제공하세요. 시리즈에서는 같은 피사체 참조·시각 요구를 유지하며 장면 결정 하나씩 바꿉니다.
출력 설정과 버전 경계
제작사의 정확한 4B 프로파일은 JPEG·PNG·WebP 출력, 기본 JPEG를 명시합니다. 너비·높이는 각각 최소 64픽셀로 문서화되어 있고 참조 모델 카드 예시는 1024×1024 이미지를 사용합니다. 그 예시는 샘플링 설정이며 모든 작업이 정사각형이어야 한다거나 1024픽셀이 최대치라는 주장이 아닙니다. 시각 기획 전에 의도한 크롭·표시 형태를 고르고 그 크기에서 작은 글자·특징을 비교하세요.
공개 4단계 예시는 guidance_scale 1.0을 사용합니다. 이 증류 버전은 적응, LoRA 학습과 연구용 비증류 학습 신호를 갖춘 FLUX.2 [klein] Base 4B와 구별하세요. Base 4B와 9B 모델은 준비·샘플링 고려사항이 다른 별도 선택입니다. 소형 모델의 표준 제어는 [flex]의 조정 가능한 단계·가이던스와 다르며 [max]는 자체 그라운딩 검색 기능을 갖습니다.
이미지에서 확인할 디테일
정확한 모델 카드는 이 모델이 사실 정보 출처가 아니라고 설명합니다. 이미지 속 글자는 부정확하거나 왜곡될 수 있고 생성 장면은 요청에서 벗어날 수 있습니다. 프롬프트 스타일은 준수에 상당한 영향을 줍니다. 철자, 수량, 라벨, 피사체 정체성과 유지할 특정 물체를 확인하세요. 매력적인 구도가 제품 특징이나 묘사한 사실의 정확성을 입증하지는 않습니다. 제작사는 통계적 출력이 학습 데이터 편향을 반영할 수도 있다고 설명합니다.
검토 에셋에는 원본 참조, 최종 문구와 선택 모델 정체성을 이미지와 함께 보관하세요. 릴리스 문서는 참조 코드의 예시 픽셀 수준 워터마킹과 제조사 호스팅 출력 워크플로의 C2PA 출처 메타데이터를 구별합니다. 반환 출처 정보를 보존하면 에셋 기원을 설명하는 데 도움이 되며 요청한 시각 변경의 성공 여부 확인과는 별개입니다.
Ailoot Ultra · 이미지 POST /v1/images/generations black-forest-labs/flux.2-klein-4b
black-forest-labs/flux.2-klein-4b
black-forest-labs/flux.2-klein-4b시작하기
FLUX.2 [klein] 4B는 텍스트 기반 제작과 최대 4개 참조를 사용한 편집을 위한 Black Forest Labs의 소형 단계 증류 이미지 모델입니다. 4단계 설계로 대화형 시각 작업을 지원하며 비증류 Base 4B 버전과 별도 정체성을 유지합니다.
- 허용 입력
- 텍스트 · 이미지
- 결과
- 이미지
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · 이미지 POST /v1/images/generations
- 입력
text,image- 출력
image
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 black-forest-labs/flux.2-klein-4b | 기본값— |
필드prompt | 유형string | 요건필수 | 값과 한도 최소 길이: 1 | 기본값— |
필드aspect_ratio | 유형string | 요건선택 사항 | 값과 한도 1:1, 4:3, 3:4, 3:2, 2:3, 16:9, 9:16, 21:9, auto | 기본값— |
필드output_format | 유형string | 요건선택 사항 | 값과 한도 png, jpeg | 기본값— |
필드n | 유형integer | 요건선택 사항 | 값과 한도 최솟값: 1 최댓값: 1 | 기본값— |
필드input_references | 유형array | 요건선택 사항 | 값과 한도 최소 항목 수: 0 최대 항목 수: 4 | 기본값— |
필드provider | 유형object | 요건선택 사항 | 값과 한도 | 기본값— |
메서드 매개변수와 수명 주기
| 매개변수 | 명세 |
|---|---|
매개변수content_type | 명세application/json |
매개변수required | 명세model, prompt |
매개변수material_types | 명세text, image |
수명 주기: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · 실제로 반환된 task_id 또는 미디어 라이브러리 기록
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
요금
최종 요금 계산 방식
표시된 요율은 생성 전 비용을 예상하는 데 사용됩니다. 최종 청구액은 최초 생성에 기록된 비용으로 계산됩니다. 측정된 출력 길이와 예상 수량은 최종 청구 수량이 아닙니다.
요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.
- 빠른 모드
- 미지정 빠른 모드를 선택한 경우
- Flex 모드
- 미지정 flex 모드를 선택한 경우
- 최대 추론 수준
- 미지정 최대 추론 수준에 default 조정값을 적용하는 경우
비교용 예상 요금
설정별 가격
각 요금을 표시된 조건과 대조하세요. 서로 대체되는 설정 묶음마다 하나의 요금만 적용하세요.
| 설정 | 요금표 | 예측 수량 | 과금 단위 | 요금 |
|---|---|---|---|---|
| 설정기본 토큰 요금 | 요금표기본 요금 | 예측 수량— | 과금 단위— | 요금 입력 · 입력 토큰 · 비교 전용 추정치 — / 1K 토큰 출력 · 출력 토큰 · 비교 전용 추정치 — / 1K 토큰 입력 · 캐시 읽기 · 비교 전용 추정치 — / 1K 토큰 입력 · 캐시 쓰기 · 비교 전용 추정치 — / 1K 토큰 입력 · 캐시 쓰기, 1시간 · 비교 전용 추정치 — / 1K 토큰 |
| 설정출력 이미지 메가픽셀 | 요금표— | 예측 수량— | 과금 단위출력 이미지 메가픽셀당 | 요금 출력 · 출력 이미지 메가픽셀 · 비교 전용 추정치 $0.028 출력 이미지 메가픽셀당 |
| 설정예상 생성 비용 | 요금표— | 예측 수량1회 생성 예상치 | 과금 단위— | 요금 출력 · 예상 생성 비용 · 비교 전용 추정치 $0.028 생성 전 추정치 이 예상 금액은 추가 요금이나 생성 완료 시 적용되는 고정 요금이 아닙니다. |
Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →
요청 예제
Ailoot Ultra · 이미지
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'model': 'black-forest-labs/flux.2-klein-4b', 'prompt': 'a red panda astronaut floating in space, studio lighting'}
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin
def save_images(items):
if not items: raise SystemExit("No completed images; retain the full response")
for index, item in enumerate(items):
encoded=item.get("b64_json")
uri=item.get("url", "")
if not encoded and uri.startswith("data:image/"):
header, separator, encoded=uri.partition(",")
if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
if encoded:
raw=base64.b64decode(encoded,validate=True)
elif uri:
uri=urljoin("https://api.ailoot.ai",uri)
parsed=urlsplit(uri)
if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
raise SystemExit("Invalid returned image URL")
owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",uri]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
temporary=Path(f"image-{index}.bin")
subprocess.run(args+["-o",str(temporary)],check=True)
raw=temporary.read_bytes()
temporary.unlink()
else: raise SystemExit("Image has neither bytes nor URL")
if not raw: raise SystemExit("Empty image result")
ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
Path(f"image-{index}.{ext}").write_bytes(raw)
print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
결과 수신 및 저장
Ailoot Ultra · 이미지
반환된 각 이미지를 다운로드하거나 Base64 내용을 저장하세요
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
기타 콘텐츠 조회
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
-H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
완료된 결과 모두 보관
완료된 이미지를 모두 저장하세요. 반환된 각 URL에서 가져오거나 Base64 내용을 디코딩하세요.
전체 응답과 헤더, 실제로 생성된 모든 출력, 최초로 반환된 식별자와 모든 사용량 필드를 보관하세요. 생성 요청을 다시 제출하지 말고 최초 작업을 복구하세요.
원래 응답을 확인해야 할 경우
정산 대조를 위해 반환된 X-Client-Request-ID를 보관하세요. 실제로 반환된 task_id/asset_id 값이나 소유한 미디어 라이브러리만 조회하세요. 작업 ID로 태스크 URL을 만들거나 생성 요청을 다시 제출하지 마세요.
응답 필드
| 필드 | 유형 |
|---|---|
필드created | 유형 |
필드data[].url | 유형 |
필드data[].b64_json | 유형 |
필드usage | 유형 |
별칭
모델 별칭
Ailoot Ultra black-forest-labs/flux.2-klein-4b
메서드 경로 별칭
/v1/images
관련 호출용 ID
FAQ · Black Forest Labs: FLUX.2 Klein 4B
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/images/generations·black-forest-labs/flux.2-klein-4b:text,image→image- 요청은 어떤 필드를 사용하나요?
POST /v1/images/generations·black-forest-labs/flux.2-klein-4b:model,prompt,aspect_ratio,output_format,n,input_references,provider- 어떤 제한이 적용되나요?
POST /v1/images/generations·black-forest-labs/flux.2-klein-4b:n.minimum:1;n.maximum:1