FLUX.1-Kontext-dev: 이미지 증강 AI 모델

텍스트 지시문으로 이미지를 강화하는 AI 모델

Page content

블랙 포레스트 랩스는 텍스트 지시문을 사용하여 기존 이미지를 향상시키는 고급 이미지에서 이미지로 생성하는 AI 모델인 FLUX.1-Kontext-dev를 출시했습니다.

FLUX.1-dev와 달리, FLUX.1-Kontext-dev는 텍스트 프롬프트와 입력 이미지를 함께 사용하여 이미지를 수정하면서도 핵심 요소를 유지합니다.

자전거를 타고 있는 고퍼 이 이미지는 FLUX.1-Kontext-dev가 이미지를 향상시키는 능력을 보여줍니다.

원본 고(Go) 마스코트 이미지:

고(Go) 로고의 고퍼

이 고퍼는 언덕 길을 따라 자전거를 타고 있습니다라는 지시문으로 변환되었습니다. 꽤 괜찮은 결과가 아닌가요?

FLUX.1-Kontext-dev란 무엇인가요?

FLUX.1-Kontext-dev는 문맥 내 이미지 생성 및 편집을 위해 설계되었습니다. 주요 기능은 다음과 같습니다:

  • 캐릭터 일관성: 여러 장면에서 고유한 요소(캐릭터나 물체 등)를 유지합니다.
  • 로컬 편집: 이미지의 특정 부분만 수정하면서 나머지 부분은 영향을 받지 않습니다.
  • 스타일 참조: 참조 이미지의 스타일을 유지하면서 새로운 장면을 생성합니다.
  • 이미지 향상: 텍스트 지시문을 기반으로 이미지를 변환합니다.

설치 방법

사전 조건

다음이 필요합니다:

  • 16GB 이상의 VRAM을 갖는 GPU (NVIDIA RTX 추천)
  • Python 3.8 이상과 pip
  • Hugging Face에 대한 액세스 (계정 및 토큰)

설치 단계

  1. Hugging Face 계정을 생성하세요. huggingface.co에 계정이 없을 경우

  2. 모델 페이지로 이동: https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev

  3. 라이선스 계약서를 수락하세요 (비상업적 사용)

  4. Write 액세스 토큰을 생성하세요: https://huggingface.co/settings/tokens

  5. 모델을 다운로드하세요:

git clone https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev

또는 코드에서 직접 모델 경로를 사용할 수 있습니다.

설치

필요한 Python 패키지를 설치하세요:

pip install -U diffusers torch transformers pillow accelerate sentencepiece

또는 uv를 사용하세요:

cd tools/fkon
uv sync

사용법

기본 Python 스크립트

FLUX.1-Kontext-dev를 사용하는 완전한 예제입니다:

import torch
from diffusers import FluxKontextPipeline
from PIL import Image

# 모델 로드
model_path = "/path/to/FLUX.1-Kontext-dev"
pipe = FluxKontextPipeline.from_pretrained(
    model_path, 
    torch_dtype=torch.bfloat16
)

# VRAM 절약을 위해 CPU 오프로딩 활성화
pipe.enable_model_cpu_offload()
pipe.enable_sequential_cpu_offload()

# 입력 이미지 로드
input_image = Image.open("path/to/your/image.png").convert("RGB")

# 이미지 향상 지시문 정의
prompt = "이 고퍼는 언덕 길을 따라 자전거를 타고 있습니다"

# 향상된 이미지 생성
result = pipe(
    prompt=prompt,
    image=input_image,
    height=496,
    width=680,
    guidance_scale=3.5,
    num_inference_steps=60,
    max_sequence_length=512,
    generator=torch.Generator("cpu").manual_seed(42)
)

# 결과 저장
output_image = result.images[0]
output_image.save("augmented_image.jpg")

차원 처리

FLUX.1-Kontext-dev는 특정 차원 요구사항이 있습니다:

  • 16의 배수: 차원은 16의 배수여야 합니다.
  • 자동 조정: 모델은 요구사항을 충족하기 위해 차원을 조정할 수 있습니다.
  • 출력 리사이징: 우리의 도구는 요청된 차원으로 다시 리사이징합니다.

도구는 다음과 같이 처리합니다:

  1. 요청된 차원을 16의 배수로 반올림합니다.
  2. 입력 이미지를 반올림된 차원으로 리사이징합니다.
  3. 이미지를 생성합니다 (모델이 추가로 조정할 수 있습니다).
  4. 출력을 요청된 차원으로 다시 리사이징합니다.

예시 사용 사례

  1. 캐릭터 변환

일관성을 유지하면서 캐릭터를 변환합니다:

prompt = "이 고퍼는 언덕 길을 따라 자전거를 타고 있습니다"
  1. 객체 제거

불필요한 요소를 제거합니다:

prompt = "이 사진에서 미니 마우스로 옷을 입은 인간을 제거해 주세요"

팁 및 최고 실천 방법

  1. VRAM 관리: VRAM이 제한된 경우 enable_model_cpu_offload()를 사용하세요.
  2. 차원 계획: 조정을 최소화하기 위해 16의 배수 차원을 요청하세요.
  3. 프롬프트 명확성: 더 나은 결과를 위해 텍스트 지시문을 구체적으로 작성하세요.
  4. 배치 생성: 여러 가지 변형 (--n 4)을 생성하여 최고 결과를 얻으세요.
  5. 시드 제어: 재현 가능한 결과를 위해 수동 시드를 사용하세요.

제한 사항

  • 비상업적 라이선스: 상업적 사용에는 비상업적 라이선스가 필요합니다.
  • 하드웨어 집약적: 상당한 VRAM을 갖는 강력한 GPU가 필요합니다.
  • 차원 제약: 차원이 자동으로 조정될 수 있습니다.
  • 처리 시간: 하드웨어에 따라 이미지당 10~15분이 소요될 수 있습니다.

유용한 링크