1. 개요
Step1X-Edit는 실제 사용자 지시에 따라 통합적으로 이미지 편집을 수행하는 멀티모달 기반 모델입니다. 이 모델은 GPT-4o 및 Gemini 2 Flash와 유사한 성능을 보이며, 참조 이미지와 텍스트 명령어를 처리하기 위해 다중 모달 대규모 언어 모델을 활용합니다. 추출된 잠재적 표현은 확산 기반 이미지 복원기와 결합되어 최종 출력 이미지를 생성합니다. 데이터 생성을 위한 전용 파이프라인과 실제 사용자 지시에 기반한 평가 벤치마크인 GEdit-Bench를 통해 모델의 우수성을 검증하였습니다. 실험 결과, 기존 오픈소스 모델보다 뛰어난 성능을 기록하며 선도적인 사내 모델 수준에 근접함을 입증했습니다. 자세한 내용은 arXiv 논문에서 확인할 수 있습니다.
모델 접근 링크: Step1X-Edit-NPU 버전
2. 환경 구성
2.1 CANN 및 관련 컴포넌트 버전 정보
| 소프트웨어 | 버전 |
|---|---|
| CANN | 8.0.0 |
| PTA (PyTorch Extension) | 6.0.0 |
| HDK | 24.1.0 |
| PyTorch | 2.3.1 |
| Python | 3.11 |
2.2 PyTorch 및 Ascend 확장 설치
다음은 AArch64 아키텍처, Python 3.11, PyTorch 2.3.1, PTA 6.0.0, CANN 8.0.0 조건에서의 설치 절차입니다.
# PyTorch 설치 파일 다운로드
wget https://download.pytorch.org/whl/cpu/torch-2.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
# torch_npu 확장 패키지 다운로드
wget https://gitee.com/ascend/pytorch/releases/download/v6.0.0-pytorch2.3.1/torch_npu-2.3.1.post4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
# 설치 실행
pip3 install torch-2.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
pip3 install torch_npu-2.3.1.post4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
2.3 CANN 설치 및 환경 설정
Ascend 800I A2 서버 환경에서 아래의 설치 파일을 준비하고 실행하세요.
# 실행 권한 부여 (버전 및 아키텍처에 맞게 수정)
chmod +x ./Ascend-cann-toolkit_{version}_linux-{arch}.run
chmod +x ./Ascend-cann-kernels-{soc}_{version}_linux.run
# 설치 파일 무결성 검사
./Ascend-cann-toolkit_{version}_linux-{arch}.run --check
./Ascend-cann-kernels-{soc}_{version}_linux.run --check
# 설치 진행
./Ascend-cann-toolkit_{version}_linux-{arch}.run --install
./Ascend-cann-kernels-{soc}_{version}_linux.run --install
# 환경 변수 설정
source /usr/local/Ascend/ascend-toolkit/set_env.sh
2.4 의존성 패키지 설치
현재 NPU 환경에서는 Triton의 inductor 후백엔드 지원이 제한적이므로, requirements.txt 파일 내 liger_kernel 항목을 주석 처리해야 합니다.
# liger_kernel -> # liger_kernel
설정 후 다음 명령어로 의존성 설치를 완료합니다:
pip install -r requirements.txt
참고: NPU는 자체 구현된 flash_attn 연산자를 제공하므로, 별도의 flash_attn 라이브러리 설치는 필요 없습니다.
3. 모델 다운로드
3.1 Hugging Face
| 모델명 | 링크 |
|---|---|
| Step1X-Edit | Hugging Face 페이지 |
3.2 모델러스 커뮤니티
| 모델명 | 링크 |
|---|---|
| Step1X-Edit | 모델러스 공식 배포 |
4. 추론 실행
- 모델 소스 코드 클론:
git clone https://github.com/stepfun-ai/Step1X-Edit.git scripts/run_examples.sh파일 내model_path변수를 다운로드한 모델 경로로 수정.- 추론 스크립트 실행:
bash scripts/run_examples.sh
실행 성공 시, 현재 디렉터리에 output_cn (중국어 프롬프트), output_en (영문 프롬프트) 폴더가 생성됩니다.
- 중국어 프롬프트 예시: "이 여성의 목에 빨간 진주를 달아줘"
- 영문 프롬프트 예시: "Outerwear를 고급 카프스킨으로 변경해줘"
5. 자주 묻는 질문 (FAQ)
5.1 오류 발생: rms_norm 모듈이 없음
Traceback (most recent call last):
File "/home/Step1X-Edit/Step1X-Edit/inference.py", line 23, in <module>
from modules.model_edit import Step1XParams, Step1XEdit
...
ModuleNotFoundError: No module named 'liger_kernel'
해결 방법: liger_kernel 대신 npu_rms_norm을 사용하여 모듈을 교체하세요. Ascend NPU 환경에서 제공되는 특화된 정규화 연산자로, 호환성 문제를 해결할 수 있습니다.