본문 바로가기
기술 단어장/🎸

[AI] NVIDIA COSMOS-Predict2.5 구동

by MFDO 2026. 3. 18.

 

 

 

오늘은 NVIDIA의 Cosmos Predict 모델을 돌려볼 것이다

일반적으로 Cosmos는 휴머노이드 + 자율주행차량 분야의 로보틱스를 위한 것이나

흥미로웠던 Predict 모델의 자율성과 확장성 가능성 테스트를 위해 실행하게 되었다.

 

 

 

 

실행은 아래 소스를 기반하였다.

 

GitHub - nvidia-cosmos/cosmos-predict2.5: Cosmos-Predict2.5, the latest version of the Cosmos World Foundation Models (WFMs) fam

Cosmos-Predict2.5, the latest version of the Cosmos World Foundation Models (WFMs) family, specialized for simulating and predicting the future state of the world in the form of video. - nvidia-cos...

github.com

 

 

 

환경은 GCP에서 A100 제일 저렴한 VM을 활용하였다.

권장사양에서 A100을 최소 사양으로 요구했기 때문이다...


가격이 가격인 만큼 최대한 빠르게 진행해보자

 

 

 

 

 


CUDA 설치 과정

불필요 하신 분들은 스킵하세요

 

 

 

기본 빌드 도구 설치

sudo apt update && sudo apt install -y build-essential linux-headers-$(uname -r) git-lfs curl
sudo apt install -y libxml2 libxml2-dev libfreeimage3 libfreeimage-dev

 

 

 

CUDA Toolkit 설치

 

CUDA Toolkit 12.1 Downloads

Get the latest feature updates to NVIDIA's proprietary compute stack.

developer.nvidia.com

 

 

각기 저기 접속해서 최신 버전으로 명령어 훔쳐오자

그러지말자 13.1 버전 충돌 난다 (해봐서 안다 슬프다)

아래 명령어들은 13.1.1이지만 나는 12.8.0 버전으로 진행했다

wget https://developer.download.nvidia.com/compute/cuda/13.1.1/local_installers/cuda_13.1.1_590.48.01_linux.run

 

sudo sh cuda_13.1.1_590.48.01_linux.run

 

accept 하고 다음

 

 

방향키로 install에 위치하고 Enter

 

 

 

 

권고한대로 환경변수 등록도 진행해준다

echo 'export PATH=/usr/local/cuda-13.1/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-13.1/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

 

 


 

COSMOS-Predic2.5 구성

 

 

🔸 git lfs 설치 🔸

git 대용량 파일 다운로드를 위함

sudo apt install git-lfs
git lfs install

 

 

 

 

🔸 git clone🔸

 

git clone https://github.com/nvidia-cosmos/cosmos-predict2.5.git
cd cosmos-predict2.5
git lfs pull

 

 

 

으악 선택지다

지금 CUDA 설치한 김에 연결 바로 되는 Virtual Environment로 선택했다

 

 

 

🔸 종속성 다운로드🔸

sudo apt update && sudo apt -y install curl ffmpeg libx11-dev tree wget

 

 

 

 

 

🔸 uv 다운로드🔸

이번에 처음 알았는데 24년도에 나왔는데, Rust로 작성 + 캐싱전략으로

기존 pip 보다도 빠르고 여러 tool (pip, pyenv, poetry venv 등등)을 통합한 친구라고 한다

또 배울게 생겨서 좀 신난다!

 

Installation | uv

Use curl to download the script and execute it with sh: $ curl -LsSf https://astral.sh/uv/install.sh | sh If your system doesn't have curl, you can use wget: $ wget -qO- https://astral.sh/uv/install.sh | sh Request a specific version by including it in the

docs.astral.sh

 

curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env

 

 

 

 

 

 

🔸 python 환경 구성🔸

설치화면 기깔나서 행복했었다

uv python install
uv sync --extra=cu128
source .venv/bin/activate

 

 

 

 

 


 

Checkpoint 다운로드

 

 

 

 

 

해당 과정의 타임어택을 진행해보자

(퇴근 전에 테스트 끝내고 VM 삭제 마쳐야 함)

 

 

 

 

🔸 Hugging Face 토큰 생성🔸

https://huggingface.co/settings/tokens

해당 주소로 접근해서 Read 권한을 넣은 토큰을 만들어준다

 

 

🔸 Hugging Face CLI 설치🔸

설치 진짜 빠르다

uv tool install -U "huggingface_hub[cli]"

 

 

 

 

 

🔸 Hugging Face 로그인 🔸

hf auth login

여기서 아까 받은 토큰을 넣고 엔터 + 

지금 테스트로 잠깐 하는 것이라 git credential로는 쓰지 않을 것이기에 n 엔터

 

 

 

 


 

추론 시작 

 

 

아래 문서를 따릅니다

https://docs.nvidia.com/cosmos/latest/predict2.5/quickstart_guide.html

 

Quickstart Guide — Cosmos

<!--- Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. NVIDIA CORPORATION and its licensors retain all intellectual property and proprietary rights in and to this software, related documentation and any modifications thereto. Any use, reproduct

docs.nvidia.com

 

 

 

🔸 Video to World 추론을 위한 Bash 작성🔸

: run_video2world.sh 라는 이름으로 bash를 작성했다!

#!/bin/bash
# Cosmos Predict 2.5 - Video2World inference 실행 스크립트
# 사용법: ./run_video2world.sh <input_video.mp4> "<프롬프트 설명>" [output_dir]

set -e

# uv / venv 환경 활성화
source $HOME/.local/bin/env 2>/dev/null || true
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
source .venv/bin/activate

# HF_TOKEN 환경변수 설정
export HF_TOKEN="🧨🧨🧨🧨🧨여기에 허깅페이스 토큰을 입력하세요🧨🧨🧨🧨🧨"

# 인자 파싱
INPUT_VIDEO="${1:?'사용법: ./run_video2world.sh <input_video.mp4> \"<프롬프트 설명>\" [output_dir]'}"
PROMPT="${2:?'프롬프트 설명이 필요합니다. 예: \"A robot arm picks up an object from the table.\"'}"
OUTPUT_DIR="${3:-outputs/video2world_custom}"

# 입력 파일 존재 여부 확인
if [ ! -f "$INPUT_VIDEO" ]; then
    echo "❌ 입력 비디오 파일을 찾을 수 없습니다: $INPUT_VIDEO"
    exit 1
fi

# 절대 경로로 변환
INPUT_VIDEO_ABS="$(realpath "$INPUT_VIDEO")"
INPUT_VIDEO_NAME="$(basename "$INPUT_VIDEO" .mp4)"

# 임시 JSON 설정 파일 생성
JSON_FILE="/tmp/cosmos_video2world_${INPUT_VIDEO_NAME}.json"
cat > "$JSON_FILE" << EOF
{
    "inference_type": "video2world",
    "name": "${INPUT_VIDEO_NAME}",
    "input_path": "${INPUT_VIDEO_ABS}",
    "prompt": "${PROMPT}"
}
EOF

echo "=========================================="
echo "🎬 Cosmos Predict 2.5 - Video2World"
echo "=========================================="
echo "📹 입력 영상: $INPUT_VIDEO_ABS"
echo "📝 프롬프트: $PROMPT"
echo "📂 출력 폴더: $OUTPUT_DIR"
echo "📄 설정 파일: $JSON_FILE"
echo "=========================================="

# 추론 실행 (단일 GPU)
python examples/inference.py \
    -i "$JSON_FILE" \
    -o "$OUTPUT_DIR" \
    --inference-type=video2world \
    --model=2B/post-trained \
    --offload-diffusion-model \
    --offload-tokenizer \
    --offload-text-encoder \
    --offload-guardrail-models

echo "=========================================="
echo "✅ 생성 완료! 출력 결과: $OUTPUT_DIR"
echo "=========================================="

 

 


 

 

추론 시작 

 

./run_video2world.sh ./input/도로주행_입력용.mp4 "Naturally extend the driving sequence while maintaining the current lane and trajectory." ./output/도로주행_결과.mp4

 

 

 

 

이 영상이 테스트로 넣은 영상이고

1도로주행_입력용.mp4
7.17MB

 

 

 

이렇게 결과가 나오는 모습을 확인 할 수 있다!

2도로주행_결과.mp4
1.84MB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

댓글