본문 바로가기
Nuke/개발

Command Line Operations

by 르면가게 2025. 2. 19.

Nuke 명령어 스위치/플래그 정리 (한국어 번역)


기본 실행 옵션

  • -h, --help
    → 명령어 도움말 표시
  • --version
    → Nuke 버전 정보 출력

렌더링 및 실행 관련 옵션

  • -x
    → Nuke 스크립트를 실행하고 모든 활성 Write 노드를 렌더링
  • -X <노드>
    → 특정 Write 노드만 렌더링
  • --cont
    → 오류 발생 시에도 지정된 범위의 다음 프레임을 계속 렌더링
  • -F <프레임>
    → 실행할 프레임 지정 (예: -F 1-10, -F 1-10x2)
  • --sro
    → Write 노드의 렌더 순서를 강제하여 이전 Write 노드의 결과를 Read 노드에서 사용할 수 있도록 설정
  • --topdown
    → 메모리를 더 사용하지만 전체 프레임을 빠르게 렌더링하는 "위에서 아래로" 렌더링 모드 활성화

GPU 관련 옵션

  • --gpu <ARG>
    → 터미널 모드에서 GPU 사용 활성화 (기본값: 0)
  • --gpulist
    → 사용 가능한 GPU 목록과 인덱스 출력
  • --multigpu
    → 동일한 유형의 다중 GPU를 활용하여 작업 부하 분산

메모리 및 성능 관련 옵션

  • -c <크기(k, M, G)>
    → 캐시 메모리 사용 제한 (예: -c 2G → 2GB 제한)
  • -m <숫자>
    → 사용할 쓰레드 개수 지정
  • -s <크기>
    → 스레드당 스택 크기 지정 (기본값: 16MB)
  • -P
    → 노드의 성능 측정 결과를 노드 그래프에 표시
  • -Pf <파일명>
    → 성능 측정 데이터를 XML 파일로 저장

파일 및 프로젝트 관련 옵션

  • -a
    → 기본 포맷을 Anamorphic으로 설정
  • -f
    → Nuke 스크립트를 전체 해상도로 열기
  • -p
    → Nuke 스크립트를 프록시 해상도로 열기
  • -n
    → 노드의 Postage Stamp(미리보기 이미지) 비활성화
  • --remap <경로>
    → 운영체제 간 경로를 매핑하여 공유 가능하도록 설정 (예: --remap "X:/path,Y:,A:,B:/anotherpath")
  • --workspace <이름>
    → Nuke 실행 시 지정된 워크스페이스 자동 활성화 (예: --workspace Compositing)

라이선스 및 실행 모드

  • -t
    → GUI 없이 터미널 모드로 실행, Python 명령 실행 가능
  • --tg
    → 터미널 모드에서 PySide/PyQt 사용 가능 (XWindows 세션 필요)

-i (인터랙티브 라이선스)

  • 인터랙티브(nuke_i) 라이선스를 사용하여 실행할 때 사용하는 옵션입니다.
  • 일반적으로 -x(렌더 모드)와 함께 사용됩니다.
  • 기본적으로 -x는 nuke_r 라이선스를 사용하지만, -xi를 사용하면 인터랙티브 라이선스(nuke_i)로 렌더링할 수 있습니다.
  • --nc
    → Nuke 비상업용(Non-commercial) 모드 실행
  • --nukeassist
    → Nuke Assist 실행 (NukeX 유지보수 패키지 포함)

안정성 및 충돌 보고

  • --crashhandling 1
    → GUI 및 터미널 모드에서 충돌 보고 활성화
  • --crashhandling 0
    → 충돌 보고 비활성화
  • --nocrashprompt
    → 충돌 발생 시 자동으로 보고서를 제출하고 알림창을 띄우지 않음
  • --safe
    → 플러그인 및 사용자 스크립트(~/.nuke 및 $NUKE_PATH 내 파일) 로드를 중단하여 안전 모드로 실행

기타 옵션

  • -q
    → 조용한 모드(불필요한 출력 및 팝업 억제)
  • --priority <우선순위>
    → 실행 우선순위 설정 (high, medium, low)
  • -V <레벨>
    → 터미널에서 실행 내용을 상세하게 출력 (0: 최소, 2: 최대)
  • --pause
    → Viewer를 일시 정지된 상태로 실행
  • --view <뷰>
    → 특정 뷰만 렌더링 (left,right 형식)

Nuke의 -t(터미널 모드)와 -i(인터랙티브 라이선스) 옵션 정리

-t (터미널 모드)

  • GUI 없이 터미널에서 실행하는 모드입니다.
  • Python 인터프리터 모드로 실행되며, >>> 프롬프트에서 Python 명령어 입력이 가능합니다.
  • Python 스크립트를 실행하거나 자동화 작업을 수행할 때 유용합니다.
  • 이 모드에서는 기본적으로 nuke_r(렌더 전용) 라이선스를 사용합니다.
  • 종료 방법: quit() 입력 후 엔터

예제

nuke -t my_script.py # Python 스크립트 실행 nuke -t # Nuke Python 인터프리터 실행

-i (인터랙티브 라이선스)

  • 인터랙티브(nuke_i) 라이선스를 사용하여 실행할 때 사용하는 옵션입니다.
  • 일반적으로 -x(렌더 모드)와 함께 사용됩니다.
  • 기본적으로 -x는 nuke_r 라이선스를 사용하지만, -xi를 사용하면 인터랙티브 라이선스(nuke_i)로 렌더링할 수 있습니다.

예제

nuke -xi myscript.nk # 인터랙티브 라이선스로 렌더링 실행

-t vs -i 차이점

옵션 설명 기본 라이선스 주요 사용 사례
-t 터미널에서 실행, Python 인터프리터 제공 nuke_r 자동화, 스크립트 실행
-i 인터랙티브 라이선스 사용 nuke_i 렌더링 시 GUI 라이선스 필요할 때 사용
-xi -x(렌더링) + -i(인터랙티브 라이선스) nuke_i 인터랙티브 라이선스로 렌더링

즉, -t는 GUI 없이 터미널에서 Python을 실행하는 모드이고, -i는 렌더링 시 인터랙티브 라이선스를 사용하는 옵션입니다.

 

Nuke 명령어 실행 방식 및 주요 옵션 정리

1. Nuke 실행 기본 구문

Nuke를 커맨드라인에서 실행할 때의 일반적인 구문은 다음과 같습니다.

nuke <스위치> <스크립트> <argv> <프레임 범위>
  • <스위치>: Nuke 실행 방식을 변경하는 옵션(예: -t, -i, -x 등)
  • <스크립트>: 실행할 Nuke .nk 파일
  • <argv>: 선택적 인자로, argv 변수를 통해 Nuke에서 사용할 수 있음
  • <프레임 범위>: 렌더링할 프레임 범위 지정

2. 기본적인 실행 예시

  1. Nuke 스크립트 실행 및 열기
 
nuke myscript.nk
  • myscript.nk 파일을 열고 GUI에서 실행
  1. 파일명이 -(하이픈)으로 시작하는 경우
 
nuke -- -myscript.nk
  • 하이픈(-)이 파일명 앞에 있을 경우, --를 추가하여 실행 가능
  1. 이미지 보기
 
nuke -v polarbear.tif
  • polarbear.tif 이미지 표시
  1. 여러 이미지 보기
 
nuke -v polarbear.tif whiteflower.psd mountains.cin
  • 여러 개의 이미지 표시
  1. 이미지 시퀀스 보기 (예: taxi.0001.tif ~ taxi.0050.tif)
 
nuke -v taxi.####.tif 1-50
  • 프레임 범위를 1~50으로 설정하여 이미지 시퀀스 표시

3. 렌더링 실행

  1. 특정 프레임(예: 5번 프레임) 렌더링
 
nuke -F 5 -x myscript.nk
  • myscript.nk의 5번 프레임 렌더링
  1. 프레임 범위(30~50) 지정하여 렌더링
 
nuke -F 30-50 -x myscript.nk
  • 30~50번 프레임 렌더링
  1. 여러 프레임 범위(1020, 3460) 렌더링
 
nuke -F 10-20 -F 34-60 -x myscript.nk
  • 1020 및 3460번 프레임 렌더링
  1. 10프레임 간격으로 렌더링 (1, 11, 21, 31, 41번 프레임)
nuke -F 1-50x10 -x myscript.nk
  • 50프레임 중 10프레임 간격으로 렌더링
  1. 특정 Write 노드만 렌더링 (예: WriteBlur 노드, 1~20번 프레임)
 
nuke -X WriteBlur myscript.nk 1-20
  • WriteBlur 노드에서 1~20번 프레임만 렌더링

4. argv 사용 예시

  1. 출력 파일명을 argv로 변경
    • GUI에서 Write 노드의 파일 경로를 [argv 0].####.tif 로 설정 후
    • 아래 명령어 실행
    nuke -x myscript.nk mychecker 1-5
    • mychecker.0001.tif, mychecker.0002.tif, ... 렌더링
  2. 출력 파일 확장자 변경
    • Write 노드의 파일 경로를 [argv 0].####.[argv 1] 로 설정 후
    • 아래 명령어 실행
    nuke -x myscript.nk mychecker cin 1-5
    • mychecker.0001.cin, mychecker.0002.cin, ... 렌더링

5. Python을 사용한 TIFF → JPEG 변환

  1. Python 명령어 직접 실행 (-t 옵션 사용)
nuke -t
 
>>> r = nuke.nodes.Read(file="myimage.####.tif") 
>>> w = nuke.nodes.Write(file="myimage.####.jpg") 
>>> w.setInput(0, r) 
>>> nuke.execute("Write1", 1, 5) >>> quit()
  • myimage.####.tif 파일을 myimage.####.jpg로 변환
  1. Python 스크립트 파일 실행 (imageconvert.py 파일 사용)
cat imageconvert.py

 


r = nuke.nodes.Read(file="myimage.####.tif") 
w = nuke.nodes.Write(file="myimage.####.jpg") 
w.setInput(0, r) 
nuke.execute("Write1", 1, 5)
 
nuke -t < imageconvert.py
  • Python 스크립트를 사용해 변환 실행
  1. Python 스크립트 실행 시 인자 전달
cat imageconvertwithargs.py
 
import sys 
r = nuke.nodes.Read(file=sys.argv[1]) 
w = nuke.nodes.Write(file=sys.argv[2]) 
w.setInput(0, r) 
nuke.execute("Write1", 1, 5)
 
nuke -t imageconvertwithargs.py myimage.####.tif myimage.####.jpg
  • 스크립트 실행 시 입력/출력 파일명을 인자로 전달하여 변환 실행

🔹 정리

  1. Nuke 실행 방식
    • nuke myscript.nk → GUI에서 Nuke 스크립트 실행
    • nuke -t myscript.py → Python 스크립트 실행 (GUI 없이 터미널에서 실행)
    • nuke -x myscript.nk → Nuke 스크립트를 렌더링 모드로 실행
  2. 주요 옵션 (switches)
    옵션 설명
    -t Python 인터프리터 실행 (GUI 없이)
    -x 렌더링 실행
    -F 특정 프레임(또는 범위) 렌더링
    -X 특정 Write 노드만 렌더링
    -v 이미지 파일 출력
  3. Python을 활용한 자동화
    • Nuke의 -t 옵션을 사용하여 Python으로 자동화 가능
    • sys.argv를 활용해 동적 변수 처리 가능

Nuke의 CLI 기능을 활용하면 GUI 없이도 효율적으로 렌더링과 파일 변환을 수행할 수 있습니다. 🚀

 

https://learn.foundry.com/nuke/content/comp_environment/configuring_nuke/command_line_operations.html

 

Command Line Operations

 

learn.foundry.com

 

'Nuke > 개발' 카테고리의 다른 글

확장자 - EXR: 무손실 압축  (0) 2025.02.27
폰트  (0) 2025.02.26
Callbacks  (0) 2025.02.19
HTML in Nuke  (0) 2024.12.17
nuke의 다양한 개발방식?들  (0) 2024.12.07