Z-Image-Turbo

Z-Image-Turbo

Z-Image-Turbo는 빠른 텍스트-투-이미지 생성을 위한 증류된 6B 단일 스트림 DiT입니다. 8번의 함수 평가(function evaluations)로 의도된 동작 지점에 도달하며 사실적인 장면, 프롬프트 준수, 영어/중국어 텍스트 렌더링에 특히 강합니다.

출처: 문서

본문

<DiffusionModelTags tags={["image", "text-to-image", "6B S3-DiT", "8-step", "bilingual text"]} />

1. 모델 소개 (Model Introduction)

Z-Image-Turbo는 빠른 텍스트-투-이미지 생성을 위한 증류된 6B 단일 스트림 DiT입니다. 8번의 함수 평가로 의도된 동작 지점에 도달하며 사실적인 장면, 프롬프트 준수, 영어/중국어 텍스트 렌더링에 특히 강합니다.

지연과 상대적으로 작은 배포 풋프린트가 더 큰 이미지 모델의 편집성이나 최대 용량보다 더 중요할 때 이를 선택하세요. 생성 전용 체크포인트이므로, 소스 이미지나 정체성 보존 편집을 포함하는 요청에는 Qwen-Image-Edit 또는 FLUX.2를 사용하세요.

2. SGLang-diffusion 설치 (Installation)

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

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

3. 모델 배포 (Model Deployment)

이 섹션은 다양한 하드웨어 플랫폼과 사용 사례에 최적화된 배포 구성을 제공합니다.

3.1 기본 구성 (Basic Configuration)

Z-Image-Turbo는 단 8개의 추론 스텝으로 고품질 이미지 생성을 위해 최적화되었습니다. 권장 시작 구성은 하드웨어에 따라 다릅니다.

대화형 명령 생성기 (Interactive Command Generator): 아래 구성 선택기를 사용해 하드웨어 플랫폼과 모델 버전에 적합한 배포 명령을 자동 생성하세요. SGLang은 NVIDIA B200, H200, H100 GPU, AMD MI355X, MI325X, MI300X GPU, Ascend A2, A3 NPU, Intel Arc Pro B-Series GPU(코드명: BMG (Battlemage))에서 Z-Image-Turbo 서빙을 지원합니다.

3.2 구성 팁 (Configuration Tips)

가속 기능과 런타임 요구사항은 성능 최적화를 참조하세요.

  • --vae-path: 커스텀 VAE 모델 또는 HuggingFace 모델 ID 경로(예: fal/FLUX.2-Tiny-AutoEncoder). 지정하지 않으면 메인 모델 경로에서 VAE를 로드합니다.
  • --num-gpus: 사용할 GPU 수
  • --tp-size: 텐서 병렬 크기(인코더 전용. 텍스트 인코더 오프로드가 활성화되면 1보다 크면 안 됩니다. 레이어별 오프로드 + 프리페치가 더 빠르기 때문)
  • --sp-degree: 시퀀스 병렬 크기(보통 GPU 수와 일치해야 함)
  • --ulysses-degree: USP에서 DeepSpeed-Ulysses 스타일 SP의 정도
  • --ring-degree: USP에서 ring attention 스타일 SP의 정도

AMD ROCm 참고: SGLang >= v0.5.8 필요.

4. API 사용법 (API Usage)

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

4.1 이미지 생성 (Generate an Image)

import base64
from openai import OpenAI

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

response = client.images.generate(
    model="Tongyi-MAI/Z-Image-Turbo",
    prompt="A logo With Bold Large text: SGL Diffusion",
    n=1,
    response_format="b64_json",
)

# Save the generated image
image_bytes = base64.b64decode(response.data[0].b64_json)
with open("output.png", "wb") as f:
    f.write(image_bytes)

4.2 고급 사용법 (Advanced Usage)

4.2.1 Cache-DiT 가속 (Cache-DiT Acceleration)

SGLang은 Diffusion Transformer(DiT)용 캐싱 가속 엔진인 Cache-DiT를 통합해 최소 품질 손실로 최대 7.4배 추론 속도 향상을 얻을 수 있습니다. SGLANG_CACHE_DIT_ENABLED=True로 활성화할 수 있습니다. 자세한 내용은 SGLang Cache-DiT 문서를 참조하세요.

기본 사용법 (Basic Usage)

SGLANG_CACHE_DIT_ENABLED=true sglang serve --model-path Tongyi-MAI/Z-Image-Turbo

고급 사용법 (Advanced Usage)

  • 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 캐싱이 시작되기 전 워밍업 스텝
R SGLANG_CACHE_DIT_RDT 0.24 잔차 차이 임계값
MC SGLANG_CACHE_DIT_MC 3 최대 연속 캐시 스텝 수
  • TaylorSeer 구성: TaylorSeer는 Taylor 전개를 사용해 캐싱 정확도를 개선합니다:
파라미터 (Parameter) 환경 변수 (Env Variable) 기본값 (Default) 설명 (Description)
Enable SGLANG_CACHE_DIT_TAYLORSEER false TaylorSeer 교정기 활성화
Order SGLANG_CACHE_DIT_TS_ORDER 1 Taylor 전개 차수 (1 또는 2)

결합 구성 예시:

SGLANG_CACHE_DIT_ENABLED=true \
SGLANG_CACHE_DIT_FN=2 \
SGLANG_CACHE_DIT_BN=1 \
SGLANG_CACHE_DIT_WARMUP=4 \
SGLANG_CACHE_DIT_RDT=0.4 \
SGLANG_CACHE_DIT_MC=4 \
SGLANG_CACHE_DIT_TAYLORSEER=true \
SGLANG_CACHE_DIT_TS_ORDER=2 \
sglang serve --model-path Tongyi-MAI/Z-Image-Turbo

4.2.2 CPU 오프로드 (CPU Offload)

  • --dit-cpu-offload: DiT 추론에 CPU 오프로드 사용. 메모리가 부족하면 활성화.
  • --text-encoder-cpu-offload: 텍스트 인코더 추론에 CPU 오프로드 사용.
  • --vae-cpu-offload: VAE에 CPU 오프로드 사용.
  • --pin-cpu-memory: CPU 오프로드를 위한 메모리 고정. "CUDA error: invalid argument"가 발생할 때만 임시 해결책으로 추가.

4.2.3 알려진 LoRA 예시 (Known LoRA examples)

어댑터를 로드하려면 시작 시 --lora-path 또는 LoRA 관리 API를 사용하세요. 알려진 Z-Image-Turbo 예시:

5. 벤치마크 (Benchmark)

테스트 환경:

  • 하드웨어: AMD Instinct MI300X GPU (1x)
  • 모델: Tongyi-MAI/Z-Image-Turbo
  • Docker 이미지: lmsysorg/sglang:v0.5.8-rocm700-mi30x
  • sglang diffusion 버전: 0.5.8

5.1 속도 향상 벤치마크 (Speedup Benchmark)

5.1.1 이미지 생성 (Generate an image)

**서버 명령 (Server Command):**
```shell Command theme={null}
sglang serve --model-path Tongyi-MAI/Z-Image-Turbo \
    --ulysses-degree=1 --ring-degree=1 --port 30000
```

**벤치마크 명령 (Benchmark Command):**

```shell Command theme={null}
python3 -m sglang.multimodal_gen.benchmarks.bench_serving \
    --dataset vbench --task text-to-image --num-prompts 1 --max-concurrency 1
```

**결과 (Result):**

```text Output theme={null}
================= Serving Benchmark Result =================
Task:                                    text-to-image
Model:                                   Tongyi-MAI/Z-Image-Turbo
Dataset:                                 vbench
--------------------------------------------------
Benchmark duration (s):                  1.84
Request rate:                            inf
Max request concurrency:                 1
Successful requests:                     1/1
--------------------------------------------------
Request throughput (req/s):              0.54
Latency Mean (s):                        1.8435
Latency Median (s):                      1.8435
Latency P99 (s):                         1.8435
--------------------------------------------------
Peak Memory Max (MB):                    30689.20
Peak Memory Mean (MB):                   30689.20
Peak Memory Median (MB):                 30689.20
============================================================
```
**서버 명령 (Server Command):**
```shell Command theme={null}
#One A3 Series card has 2 npu chips
sglang serve --model-path Tongyi-MAI/Z-Image-Turbo --tp-size 2 --sp-degree 1 --num-gpus 2
```

**벤치마크 명령 (Benchmark Command):**

```shell Command theme={null}
python -m sglang.multimodal_gen.benchmarks.bench_serving --dataset vbench --task text-to-image --num-prompts 1 --max-concurrency 1
```

**결과 (Result):**

```text Output theme={null}
================= Serving Benchmark Result =================
Task:                                         text-to-image
Model:                                        Tongyi-MAI/Z-Image-Turbo
Dataset:                                      vbench
--------------------------------------------------
Benchmark duration (s):                       2.43
Request rate:                                 inf
Max request concurrency:                      1
Successful requests:                          1/1
Completed outputs:                            1
Outputs per prompt:                           1
--------------------------------------------------
Request throughput (req/s):                   0.41
Output throughput (outputs/s):                0.41
Latency Mean (s):                             2.43
Latency Median (s):                           2.43
Latency P90 (s):                              2.43
Latency P95 (s):                              2.43
Latency P99 (s):                              2.43
--------------------------------------------------
Peak Memory Max (MB):                         11052.00
Peak Memory Mean (MB):                        11052.00
Peak Memory Median (MB):                      11052.00
------------------------------------------------------------
```

5.1.2 고동시성 이미지 생성 (Generate images with high concurrency)

**벤치마크 명령 (Benchmark Command):**
```shell Command theme={null}
python3 -m sglang.multimodal_gen.benchmarks.bench_serving \
    --dataset vbench --task text-to-image --num-prompts 20 --max-concurrency 20
```

**결과 (Result):**

```text Output theme={null}
================= Serving Benchmark Result =================
Task:                                    text-to-image
Model:                                   Tongyi-MAI/Z-Image-Turbo
Dataset:                                 vbench
--------------------------------------------------
Benchmark duration (s):                  35.32
Request rate:                            inf
Max request concurrency:                 20
Successful requests:                     20/20
--------------------------------------------------
Request throughput (req/s):              0.57
Latency Mean (s):                        18.5672
Latency Median (s):                      18.5573
Latency P99 (s):                         34.9880
--------------------------------------------------
Peak Memory Max (MB):                    30689.26
Peak Memory Mean (MB):                   30689.21
Peak Memory Median (MB):                 30689.21
============================================================
```
**벤치마크 명령 (Benchmark Command):**
```shell Command theme={null}
python -m sglang.multimodal_gen.benchmarks.bench_serving --dataset vbench --task text-to-image --num-prompts 20 --max-concurrency 20
```

**결과 (Result):**

```text Output theme={null}
================= Serving Benchmark Result =================
Task:                                         text-to-image
Model:                                        /models/Tongyi-MAI/Z-Image-Turbo/Z-Image-Turbo
Dataset:                                      vbench
--------------------------------------------------
Benchmark duration (s):                       49.08
Request rate:                                 inf
Max request concurrency:                      20
Successful requests:                          20/20
Completed outputs:                            20
Outputs per prompt:                           1
--------------------------------------------------
Request throughput (req/s):                   0.41
Output throughput (outputs/s):                0.41
Latency Mean (s):                             25.78
Latency Median (s):                           25.77
Latency P90 (s):                              44.42
Latency P95 (s):                              46.75
Latency P99 (s):                              48.61
--------------------------------------------------
Peak Memory Max (MB):                         11054.00
Peak Memory Mean (MB):                        11054.00
Peak Memory Median (MB):                      11054.00
------------------------------------------------------------
```

6. ComfyUI에서 실행 (Run in ComfyUI)

더 알아보기 (Learn more)