Krea-2

Krea-2

Krea-2는 Krea의 포토리얼리스틱 텍스트-이미지 제품군으로, Qwen3-VL 텍스트 인코더와 Qwen-Image VAE를 갖춘 단일 스트림 MMDiT로 구성돼요. 두 공개 변형 모두 같은 네이티브 SGLang 파이프라인을 사용하며 주로 샘플링 목표가 달라요. 인터랙티브 생성에는 8-step으로 증류되어 guidance_scale=1.0인 Turbo를, 지연 시간보다 최대 충실도가 중요할 때는 classifier-free guidance와 함께 약 52 step을 쓰는 Raw를 선택해요.

둘 다 이미지 편집 모델은 아니므로, 입력 이미지를 보존하거나 변형해야 할 때는 Qwen-Image-Edit 또는 FLUX.2 경로를 사용하세요.

출처: 문서

본문

1. 모델 소개

Krea-2는 Krea의 포토리얼리스틱 텍스트-이미지 제품군으로, Qwen3-VL 텍스트 인코더와 Qwen-Image VAE를 갖춘 단일 스트림 MMDiT로 만들어졌어요. 두 공개 변형 모두 같은 네이티브 SGLang 파이프라인을 사용하고 주로 샘플링 목표가 달라요.

인터랙티브 생성에는 Turbo를 고르세요: 8 step으로 증류되어 guidance_scale=1.0이에요. 지연 시간보다 최대 충실도가 더 중요할 때는 Raw를 고르세요: classifier-free guidance와 함께 약 52 step을 사용해요. 둘 다 이미지 편집 모델이 아닙니다. 입력 이미지를 보존하거나 변형해야 할 때는 Qwen-Image-Edit 또는 FLUX.2 경로를 사용하세요.

Variant Model ID Sampling profile
Turbo krea/Krea-2-Turbo 8 steps, CFG 없음; 가장 빠른 경로
Raw krea/Krea-2-Raw CFG와 함께 약 52 steps; 더 높은 충실도 경로

2. SGLang-diffusion 설치

SGLang-diffusion은 여러 설치 방법을 제공해요. 하드웨어 플랫폼과 요구사항에 따라 가장 적합한 방법을 고를 수 있어요.

설치 지침은 공식 SGLang-diffusion 설치 가이드를 참고하세요.

3. 모델 배포

이 절은 빠르고 고품질의 이미지 생성을 위한 Krea-2-Turbo 배포를 다뤄요.

3.1 기본 구성

Krea-2-Turbo는 단 8번의 추론 step으로 고품질 이미지를 생성해요. 서버를 다음으로 시작하세요:

sglang serve \
  --model-path krea/Krea-2-Turbo \
  --num-gpus 1 \
  --port 30000

step 수와 guidance scale은 요청 시각 설정이에요 (API Usage 참고). Krea-2-Turbo는 기본적으로 guidance_scale = 1.0을 쓰는 8 step이에요.

3.2 구성 팁

가속 기능과 런타임 요구사항은 Performance Optimization을 참고하세요.

  • --num-gpus: 사용할 GPU 수.
  • 멀티 GPU(텐서 및/또는 시퀀스 병렬 처리): 섹션 3.3 참고.

3.3 멀티 GPU: 텐서 및 시퀀스 병렬 처리

Krea-2는 결합할 수 있는 두 개의 멀티 GPU 축을 지원해요. --num-gpustp_size × ulysses_degree와 같아야 해요.

  • 텐서 병렬 처리 (--tp-size N) 는 DiT 가중치를 GPU들에 걸쳐 샤딩해 GPU당 VRAM을 낮춰요. Krea-2의 어텐션 헤드(48 query / 12 KV)와 텍스트 헤드(20)는 tp size 1, 2, 4로 나눌 수 있어요.
  • 시퀀스 병렬 처리 / Ulysses (--ulysses-degree N) 는 텍스트 prefix를 복제한 채 이미지-토큰 시퀀스를 GPU들에 걸쳐 샤딩해요. 가중치는 샤딩하지 않고(GPU당 VRAM은 그대로) 출력은 단일 GPU와 비트 단위로 동일해요. 현재 요청당 단일 프롬프트가 필요해요(SP에서 ragged/padded 멀티 프롬프트 배치는 지원되지 않음 — 그런 경우에는 --tp-size 사용).
# Tensor parallel (2 GPUs) — GPU당 최저 VRAM (DiT 가중치 샤딩)
sglang serve --model-path krea/Krea-2-Turbo --num-gpus 2 --tp-size 2 --port 30000

# Sequence parallel / Ulysses (2 GPUs) — 단일 GPU와 비트 단위 동일 출력
sglang serve --model-path krea/Krea-2-Turbo --num-gpus 2 --ulysses-degree 2 --port 30000

# Hybrid TP × SP (4 GPUs) — 두 축 합성
sglang serve --model-path krea/Krea-2-Turbo --num-gpus 4 --tp-size 2 --ulysses-degree 2 --port 30000

2× H200에서 측정(Krea-2-Turbo, 8 steps, 1024×1024): --tp-size 2--ulysses-degree 2 각각은 단일 GPU 대비 ~1.7× denoise 속도 향상, 하이브리드 TP=2 × SP=2는 4 GPU에서 ~2.8×에 도달해요. 선택: 메모리 제약 GPU에서는 --tp-size를 선호해요(~24 GB DiT 샤딩, 예: 2 GPU에서 ~38 GB → GPU당 ~27 GB). 대형 VRAM GPU에서는 시퀀스 병렬 처리가 약간 더 빠르고 수치적으로 정확하며, 두 방식이 가장 높은 처리량을 위해 합성돼요.

4. API 사용

전체 API 문서는 공식 API 사용 가이드를 참고하세요.

4.1 이미지 생성

OpenAI 호환 이미지 API로 이미지를 생성하세요:

from openai import OpenAI

client = OpenAI(api_key="EMPTY", base_url="http://localhost:30000/v1")

response = client.images.generate(
    model="krea/Krea-2-Turbo",
    prompt="a red fox sitting in fresh snow, golden hour, photorealistic",
    n=1,
    response_format="b64_json",
)

# 생성된 이미지 저장
image_bytes = base64.b64decode(response.data[0].b64_json)
with open("output.png", "wb") as f:
    f.write(image_bytes)

명령줄에서 단일 이미지를 생성할 수도 있어요:

sglang generate --model-path krea/Krea-2-Turbo \
    --prompt "a red fox sitting in fresh snow, golden hour, photorealistic" \
    --num-inference-steps 8 --height 1024 --width 1024 --save-output

4.2 고급 사용

4.2.1 Cache-DiT 가속

SGLang은 Diffusion Transformer(DiT)용 캐싱 가속 엔진인 Cache-DiT를 통합해 최소한의 품질 손실로 추론을 가속해요. SGLANG_CACHE_DIT_ENABLED=true를 설정해 활성화하세요. 자세한 내용은 SGLang Cache-DiT 문서를 참고하세요.

Cache-DiT는 추가 구성 없이 Krea-2 변형 모두에서 동작해요. SGLang이 각 요청의 classifier-free-guidance 모드를 추적하므로 Krea-2-Turbo(CFG 없음, guidance_scale = 1.0)와 Krea-2-Raw(CFG, guidance_scale ≈ 4.5) 모두 자동으로 올바르게 캐싱돼요.

기본 사용

SGLANG_CACHE_DIT_ENABLED=true sglang serve \
  --model-path krea/Krea-2-Turbo \
  --num-gpus 1 \
  --port 30000

기본 캐시 설정으로 측정된 이미지당 denoise 속도 향상(NVIDIA H200, 1024x1024, seed 0):

Variant Inference steps Denoise (no cache → cache) Speedup
Krea-2-Turbo (no CFG) 8 1.27s → 0.92s ~1.4x
Krea-2-Raw (CFG 4.5) 50 18.0s → 6.3s ~2.9x

캐싱은 Raw의 더 긴 스케줄에서 여유가 가장 커요. 8-step 증류 Turbo는 warmup 후 캐시 가능한 step이 몇 개뿐이에요.

고급 사용

  • DBCache 파라미터: DBCache는 블록 단위 캐싱 동작을 제어해요:
Parameter Env Variable Default Description
Fn SGLANG_CACHE_DIT_FN 1 항상 계산할 첫 블록 수
Bn SGLANG_CACHE_DIT_BN 0 항상 계산할 마지막 블록 수
W SGLANG_CACHE_DIT_WARMUP 4 캐싱 시작 전 warmup step 수
R SGLANG_CACHE_DIT_RDT 0.24 잔차 차이 임계값
MC SGLANG_CACHE_DIT_MC 3 최대 연속 캐시 step 수
  • TaylorSeer 구성: TaylorSeer는 테일러 전개로 캐싱 정확도를 높여요(긴 Raw 스케줄에 가장 적합하며 8-step Turbo에는 권장되지 않음):
Parameter Env Variable Default Description
Enable SGLANG_CACHE_DIT_TAYLORSEER false TaylorSeer calibrator 활성화
Order SGLANG_CACHE_DIT_TS_ORDER 1 테일러 전개 차수 (1 또는 2)

결합 구성 예시 (Krea-2-Raw, 기본 캐시 설정을 명시적으로 표시):

SGLANG_CACHE_DIT_ENABLED=true \
SGLANG_CACHE_DIT_FN=1 \
SGLANG_CACHE_DIT_BN=0 \
SGLANG_CACHE_DIT_WARMUP=4 \
SGLANG_CACHE_DIT_RDT=0.24 \
SGLANG_CACHE_DIT_MC=3 \
sglang serve --model-path krea/Krea-2-Raw

4.2.2 메모리 및 컴포넌트 상주

Krea-2의 DiT는 bf16에서 ~24 GB(모델의 대부분)예요. 메모리 제약 GPU에서는 덜 상주시킬 수 있어요:

  • --component-residency dit=layerwise-offload: DiT의 트랜스포머 블록을 비동기 host-to-device prefetch 오버랩으로 레이어 단위로 스트리밍해 작은 워킹 셋만 GPU에 남겨요. 소비자/32 GB급 카드에 Krea-2를 맞추는 주된 방법이며 약간의 지연 시간 비용이 들어요. --dit-offload-prefetch-size로 메모리/지연 시간 트레이드오프를 조정해요(0.0은 최저 메모리를 위해 레이어 하나를 prefetch, 더 큰 값은 더 많은 레이어를 prefetch — 더 빠르지만 더 많은 메모리).
  • --component-residency dit=component-offload: denoising 사용 사이에 완전한 DiT를 CPU에 유지. 이 모드와 layerwise offload는 서로 다른 모드이며 같은 컴포넌트에 결합하지 마세요.
  • --component-residency text_encoder=component-offload: denoising 중 유휴한 Qwen3-VL 텍스트 인코더를 오프로드.
  • --component-residency vae=component-offload: 사용 사이에 VAE 오프로드.
  • --pin-cpu-memory: 오프로드용 호스트 메모리를 고정. CUDA error: invalid argument가 뜨면 임시 해결책으로만 추가하세요.

레거시 --dit-layerwise-offload, --dit-cpu-offload, --text-encoder-cpu-offload, --vae-cpu-offload 형식도 계속 허용돼요. 레거시 DiT 오프로드 플래그가 둘 다 켜지면 유효 DiT 모드는 layerwise offload예요.

대형 VRAM GPU(예: H200)에서는 가장 빠른 지연 시간을 위해 모든 것을 상주(오프로드 꺼짐) 상태로 유지하세요.

5. 벤치마크

테스트 환경:

  • 하드웨어: NVIDIA H200 GPU (1x)
  • 모델: krea/Krea-2-Turbo (8 inference steps)
  • sglang diffusion 버전: 0.5.13

서버 명령 (아래 두 벤치마크 모두에 사용):

sglang serve --model-path krea/Krea-2-Turbo --port 30000

5.1 이미지 생성

벤치마크 명령:

python3 -m sglang.multimodal_gen.benchmarks.bench_serving \
    --model krea/Krea-2-Turbo --dataset vbench --task text-to-image \
    --num-prompts 1 --max-concurrency 1

결과:

================= Serving Benchmark Result =================
Task:                                    text-to-image
Model:                                   krea/Krea-2-Turbo
Dataset:                                 vbench
--------------------------------------------------
Benchmark duration (s):                  1.56
Request rate:                            inf
Max request concurrency:                 1
Successful requests:                     1/1
--------------------------------------------------
Request throughput (req/s):              0.64
Latency Mean (s):                        1.5600
Latency Median (s):                      1.5600
Latency P99 (s):                         1.5600
--------------------------------------------------
Peak Memory Max (MB):                    37466.00
Peak Memory Mean (MB):                   37466.00
Peak Memory Median (MB):                 37466.00
============================================================

5.2 고동시성 이미지 생성

벤치마크 명령:

python3 -m sglang.multimodal_gen.benchmarks.bench_serving \
    --model krea/Krea-2-Turbo --dataset vbench --task text-to-image \
    --num-prompts 20 --max-concurrency 20

결과:

================= Serving Benchmark Result =================
Task:                                    text-to-image
Model:                                   krea/Krea-2-Turbo
Dataset:                                 vbench
--------------------------------------------------
Benchmark duration (s):                  31.47
Request rate:                            inf
Max request concurrency:                 20
Successful requests:                     20/20
--------------------------------------------------
Request throughput (req/s):              0.64
Latency Mean (s):                        16.5000
Latency Median (s):                      16.5200
Latency P99 (s):                         31.1300
--------------------------------------------------
Peak Memory Max (MB):                    37468.00
Peak Memory Mean (MB):                   37466.40
Peak Memory Median (MB):                 37466.00
============================================================

6. ComfyUI에서 실행

더 알아보기 (Learn more)