이미지·영상 생성

최종 업데이트

Mac에서 DIAMOND 실행하기: CSGO 월드 모델을 MPS로 조작하는 법

이동과 시점 조작을 입력하면 AI가 다음 게임 화면을 생성해요.

DIAMOND는 입력 행동을 받아 다음 게임 화면을 확산 모델1로 생성하는 월드 모델이에요. 이 가이드는 원본 eloialonso/diamond 저장소의 csgo 브랜치를 설치하고 Apple Silicon에서 MPS CPU2 fallback을 켜 조작 화면을 여는 방법을 안내해요.

실행 조건과 핵심 내용
  • 원본 프로젝트의 csgo 브랜치를 선택하고 Atari의 --pretrained 경로는 따로 실행해요.
  • 실행 명령은 모델과 스폰 자료를 내려받은 뒤 대화형 창과 터미널 조작 안내를 띄워요.

입력을 받아 다음 게임 화면을 만드는 모델이에요

DIAMOND는 현재 게임 화면과 플레이어의 행동을 바탕으로 다음 화면을 그리는 확산 월드 모델이에요. 연구용 CSGO 브랜치에서는 행동을 입력하면 모델이 다음 프레임3을 생성하고, 화면의 상태가 이어지도록 반복해요. 아래 절차는 Mac에서 직접 조작할 수 있는 이 CSGO 경로를 사용합니다.

Mac에서는 원본 저장소 eloialonso/diamond의 csgo 브랜치를 사용해요. MPS가 지원하지 않는 연산을 CPU에 맡기도록 설정하면, 모델이 만든 화면을 보며 직접 이동하고 시점을 바꿔볼 수 있어요.

해안 도로의 자전거 주행 장면이 시작 이미지와 연속 프레임으로 배열돼 있다
월드 모델은 입력 행동에 이어 다음 화면을 생성해요.

원본 CSGO 브랜치를 준비해요

Apple Silicon이 들어간 Mac과 conda가 필요해요. 프로젝트는 Python 3.10 환경을 안내하며, CSGO 플레이 경로는 첫 실행 때 Hugging Face에서 모델 가중치와 스폰 지점·플레이어 행동 자료를 내려받아요. 공개 안내의 가중치 크기는 1.5GB예요. 이 경로에는 Atari ROM이 포함되지 않습니다.

원본 저장소의 CSGO 브랜치 설치
git clone https://github.com/eloialonso/diamond.git
cd diamond
git switch csgo
conda create -n diamond python=3.10 -y
conda activate diamond
python -m pip install -r requirements.txt
원본 저장소를 복제한 뒤 의존성을 설치해요.

MPS fallback을 켜고 조작 창을 열어요

Apple Silicon에서 일부 PyTorch4 연산이 MPS로 처리되지 않으면 PyTorch가 CPU로 넘기도록 환경 변수를 지정해요. 아래 명령은 실행하는 한 번의 프로세스에만 설정을 적용합니다. 첫 실행은 모델 파일을 내려받으므로 인터넷과 저장 공간이 필요해요.

CSGO 월드 모델 실행
PYTORCH_ENABLE_MPS_FALLBACK=1 python src/play.py
터미널에 사용 장치가 표시되고 조작 안내가 나오면 Enter를 눌러 플레이를 시작해요.

생성된 게임 화면은 조작 가능한 창에 표시돼요. 실행이 멈추면 터미널의 첫 traceback을 보고, 현재 위치가 저장소 안인지와 git branch --show-current 결과가 csgo인지 확인하세요.

Atari 예제는 ROM 사용 권한부터 확인해요

Atari 예제도 해보고 싶다면 기본 브랜치의 사전학습 모델을 사용할 수 있어요. 이 경로는 의존성을 설치할 때 Atari ROM을 함께 내려받으므로, 먼저 ROM을 사용할 라이선스가 있는지 확인해야 해요. 이용 권한을 확인한 경우에만 아래 절차를 진행하세요.

라이선스 확인 뒤 선택하는 별도 Atari 경로
git switch main
conda create -n diamond-atari python=3.10 -y
conda activate diamond-atari
python -m pip install -r requirements.txt
python src/play.py --pretrained
이는 기본 브랜치의 Atari 월드 모델과 에이전트 실행 예제예요. CSGO MPS 명령과 다른 경로입니다.
책상 위 필름 스트립에 자전거를 타고 이동하는 사람이 연속으로 보인다
연속 화면을 보면 모델이 장면의 움직임을 어떻게 이어 가는지 살펴볼 수 있어요.

첫 실행 오류와 화면 상태를 점검해요

No module named ...가 나오면 diamond conda 환경이 활성화됐는지 확인하고 그 환경에서 requirements 설치를 다시 확인해요. 모델 다운로드가 끊기면 오류에 표시된 Hugging Face 파일을 다시 받을 수 있도록 연결과 디스크 여유를 확인한 다음 같은 실행 명령을 다시 입력하세요. MPS 관련 연산 오류는 환경 변수가 빠지지 않았는지, 명령 앞에 PYTORCH_ENABLE_MPS_FALLBACK=1을 붙였는지 살펴봅니다.

시작 로그의 device가 mps면 Mac GPU5를 사용하고 있어요. cpu가 선택됐다면 화면 갱신이 느려지므로, 설치한 PyTorch가 MPS를 지원하는지 먼저 확인하세요.

다른 월드 모델도 살펴보세요

DIAMOND의 조작 화면을 본 뒤에는 다른 모델이 어떤 입력을 받는지 비교해보세요. 월드 모델 입문은 여섯 프로젝트의 용도를 나눠 설명해요. RTX 5090에서 게임 엔진과 AI 렌더링을 함께 써보고 싶다면 Matrix-Game 4.0 가이드로 이어갈 수 있어요.

책상 위 소형 컴퓨터에 연결된 모니터에 코드와 대화 화면이 떠 있다
플레이 창에서는 행동을 바꿔 가며 다음 화면이 어떻게 달라지는지 살펴볼 수 있어요.

용어 각주

  1. 확산 모델 — 학습 중 데이터에 노이즈를 더하고 이를 되돌리는 과정을 익힌 뒤, 생성 때 노이즈에서 출발해 데이터를 만드는 모델 계열입니다. 이미지·음성·영상 생성에 쓰입니다.

    본문으로 돌아가기
  2. CPU — 운영체제와 일반 프로그램 명령을 실행하고, AI에서는 전처리·데이터 이동 등 범용 연산을 맡는 중앙 처리 장치입니다.

    본문으로 돌아가기
  3. 프레임 — 영상의 한 장면을 이루는 단일 이미지입니다.

    본문으로 돌아가기
  4. PyTorch — AI 모델을 만들고 실행하는 소프트웨어 프레임워크입니다. 모델과 함께 호환되는 PyTorch 버전 및 하드웨어 지원도 확인해야 합니다.

    본문으로 돌아가기
  5. GPU — 많은 계산을 병렬로 처리하는 프로세서입니다. AI 모델 실행에서는 모델 계산을 맡습니다.

    본문으로 돌아가기

자주 묻는 질문

이 글에서 가장 먼저 확인할 것은 무엇인가요?
DIAMOND는 입력 행동을 받아 다음 게임 화면을 확산 모델로 생성하는 월드 모델이에요. 이 가이드는 원본 eloialonso/diamond 저장소의 csgo 브랜치를 설치하고 Apple Silicon에서 MPS CPU fallback을 켜 조작 화면을 여는 방법을 안내해요.
조건과 출처는 어디서 확인하나요?
Atari 예제도 해보고 싶다면 기본 브랜치의 사전학습 모델을 사용할 수 있어요. 이 경로는 의존성을 설치할 때 Atari ROM을 함께 내려받으므로, 먼저 ROM을 사용할 라이선스가 있는지 확인해야 해요. 이용 권한을 확인한 경우에만 아래 절차를 진행하세요.