snow · 2026.5.15 11:08 · 조회 1
Mochi-1 설치 및 사용 가이드 (Mac)
개요
이 가이드는 Genmo의 Mochi-1 비디오 생성 모델을 Mac Apple Silicon 환경에서 설치하고 실행하는 방법을 설명한다. Mac에서 Mochi-1을 구동하는 방법은 크게 두 가지다. ComfyUI를 활용하는 방법과 HuggingFace diffusers 라이브러리로 직접 Python 코드를 작성하는 방법이다. 본 가이드는 두 방법을 모두 다룬다.
참고: Mochi-1은 현재(2026년 기준) 480p 프리뷰 버전만 공개되어 있다. HD/720p 버전은 아직 출시되지 않았다.
사전 요구사항
시스템 요구사항
| 항목 | 최소 사양 | 권장 사양 |
|---|---|---|
| 칩 | Apple Silicon M1 Pro 이상 | M3 Max, M4 Max, M5 Pro 이상 |
| 통합 메모리 | 16 GB (fp8 한정) | 48–64 GB 이상 |
| 여유 저장 공간 | 40 GB 이상 | 100 GB 이상 |
| macOS | Sonoma 14.5 이상 | Tahoe 26.4 이상 |
| Python | 3.10 | 3.11 |
| PyTorch | 2.5 stable | 2.5 nightly |
메모리 선택 기준: 16 GB는 fp8 가중치로 25~37 프레임 생성까지만 안정적으로 동작한다. 쾌적한 사용을 위해 48 GB 이상을 권장한다. Apple Silicon의 통합 메모리는 CPU와 GPU가 공유하므로, 64 GB Mac은 사실상 약 60 GB VRAM 환경과 동일하게 동작한다.
방법 1: ComfyUI를 이용한 설치 (GUI 방식)
1단계: Xcode Command Line Tools 및 Homebrew 설치
1# Xcode Command Line Tools 설치2xcode-select --install3 4# Homebrew 설치5/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"6 7# 필수 패키지 설치8brew install python@3.11 ffmpeg git2단계: ComfyUI 클론 및 가상 환경 설정
1git clone https://github.com/comfyanonymous/ComfyUI.git2cd ComfyUI3 4python3.11 -m venv venv5source venv/bin/activate3단계: PyTorch Nightly 및 의존성 설치
Apple Silicon MPS 지원 개선사항은 stable 채널보다 nightly 채널에 수개월 일찍 반영된다. MPS 지원은 CPU 휠 설치 시 자동으로 활성화된다.
1pip install --pre torch torchvision torchaudio \2 --index-url https://download.pytorch.org/whl/nightly/cpu3 4pip install -r requirements.txt4단계: 모델 가중치 다운로드
다음 세 파일을 각 디렉터리에 다운로드한다.
| 파일 | 저장 경로 | 비고 |
|---|---|---|
mochi_preview_dit_fp8_e4m3fn.safetensors | ComfyUI/models/diffusion_models/ | 48 GB 미만 Mac용 |
mochi_preview_dit_bf16.safetensors | ComfyUI/models/diffusion_models/ | 64 GB 이상 Mac용 |
t5xxl_fp8_e4m3fn_scaled.safetensors | ComfyUI/models/clip/ | T5 텍스트 인코더 |
mochi_vae.safetensors | ComfyUI/models/vae/ | VAE 디코더 |
모델 파일은 Comfy-Org/mochi_preview_repackaged 또는 genmo/mochi-1-preview에서 다운로드할 수 있다.
5단계: Apple Silicon MPS 설정 및 ComfyUI 실행
1# MPS 폴백 환경변수 설정 (필수)2export PYTORCH_ENABLE_MPS_FALLBACK=13 4# ComfyUI 실행5python main.py --force-fp16브라우저에서 http://127.0.0.1:8188 로 접속하면 ComfyUI 인터페이스를 사용할 수 있다.
방법 2: diffusers 라이브러리를 이용한 Python 직접 실행
설치
1pip install diffusers transformers accelerate torch2pip install imageio[ffmpeg] # 영상 저장용기본 텍스트-투-비디오 생성
1import torch2from diffusers import MochiPipeline3from diffusers.utils import export_to_video4 5# bf16 변형 사용 (메모리 절약, 약 22GB VRAM 필요)6pipe = MochiPipeline.from_pretrained(7 "genmo/mochi-1-preview",8 variant="bf16",9 torch_dtype=torch.bfloat1610)11 12# 메모리 절약 옵션 활성화13pipe.enable_model_cpu_offload()14pipe.enable_vae_tiling()15 16prompt = "Close-up of a chameleon's eye, with its scaly skin changing color. Ultra high resolution 4k."17frames = pipe(prompt, num_frames=85).frames[0]18 19export_to_video(frames, "mochi_output.mp4", fps=30)20print("영상 저장 완료: mochi_output.mp4")Apple Silicon MPS 설정
Mac에서 MPS 백엔드를 활성화하려면 device_map 대신 .to("mps")를 사용한다. MPS가 지원하지 않는 연산은 CPU 폴백을 통해 처리된다.
1# 실행 전 환경변수 설정2export PYTORCH_ENABLE_MPS_FALLBACK=11import torch2from diffusers import MochiPipeline3from diffusers.utils import export_to_video4 5pipe = MochiPipeline.from_pretrained(6 "genmo/mochi-1-preview",7 variant="bf16",8 torch_dtype=torch.bfloat169)10 11# MPS 디바이스로 이동12pipe = pipe.to("mps")13 14# VAE 타일링으로 메모리 절약15pipe.enable_vae_tiling()16 17prompt = "A close-up shot of a strawberry falling into a glass of milk in slow motion, photorealistic."18frames = pipe(19 prompt,20 num_frames=49,21 num_inference_steps=28,22 guidance_scale=3.5,23).frames[0]24 25export_to_video(frames, "output.mp4", fps=30)주요 파라미터 조절
MochiPipeline 호출 시 사용할 수 있는 주요 파라미터는 다음과 같다.
| 파라미터 | 기본값 | 설명 |
|---|---|---|
num_frames | 19 | 생성할 프레임 수. 많을수록 영상이 길어지나 메모리 사용 증가 |
num_inference_steps | 64 | 디노이징 스텝 수. 많을수록 품질 향상, 속도 저하 |
guidance_scale | 4.5 | 프롬프트 충실도. 높을수록 텍스트 지시에 충실, 낮을수록 창의적 |
height | 480 | 출력 영상 높이 (픽셀) |
width | 848 | 출력 영상 너비 (픽셀) |
max_sequence_length | 256 | 프롬프트 최대 토큰 수 |
generator | None | torch.Generator로 시드 고정 시 재현 가능한 결과 생성 |
1# 파라미터 조절 예시2frames = pipe(3 prompt="Barista pouring espresso into glass cup | warm window light | 35mm film | slow-motion",4 height=480,5 width=848,6 num_frames=49,7 num_inference_steps=50,8 guidance_scale=4.5,9 generator=torch.Generator(device="mps").manual_seed(42),10 max_sequence_length=256,11).frames[0]메모리 최적화
enable_model_cpu_offload()
모델 컴포넌트를 사용하지 않을 때 CPU로 오프로드하여 GPU 메모리를 절약한다. 속도가 다소 느려지지만 낮은 메모리에서 실행 가능하다.
1pipe.enable_model_cpu_offload()enable_vae_tiling()
VAE 디코딩 시 입력 텐서를 타일로 분할 처리한다. 대용량 영상 디코딩 시 메모리를 크게 절약할 수 있다.
1pipe.enable_vae_tiling()메모리 캐시 초기화
생성 후 MPS 캐시를 비워 다음 실행을 위한 메모리를 확보한다.
1import torch2 3# 생성 후 실행4torch.mps.empty_cache()메모리 규모별 권장 설정
| 통합 메모리 | 권장 설정 |
|---|---|
| 16 GB | fp8 가중치, num_frames=25~37, cpu_offload 활성화 |
| 32 GB | fp8 가중치, num_frames=49, cpu_offload 선택 |
| 64 GB+ | bf16 가중치, num_frames=49~85, vae_tiling만으로 충분 |
생성 속도 벤치마크
| 하드웨어 | 해상도/프레임 | 정밀도 | 소요 시간 |
|---|---|---|---|
| M2 Pro 32 GB | 480×848 / 37프레임 | fp8 | 25~40분 |
| M3 Max 64 GB | 480×848 / 49프레임 | fp8 | 10~15분 |
| M4 Max 64 GB | 480×848 / 49프레임 | fp8 | 7~11분 |
| M5 Max 128 GB | 480×848 / 73프레임 | bf16 | 5~8분 |
T5-XXL 텍스트 인코더(약 10 GB)는 최초 실행 시 로드에 수 분이 걸릴 수 있다. 이후 실행에서는 캐시가 재사용되어 속도가 빨라진다.
프롬프트 작성 팁
Mochi-1은 동작에 대한 구체적인 묘사에 강하게 반응한다. 프롬프트를 다음 구조로 작성하면 효과적이다.
[피사체/동작] | [환경/조명] | [카메라/필름] | [모션 특성]
좋은 예시:
Barista pouring espresso into glass cup | warm window light, morning kitchen | shot on 35mm film, shallow DoF | slow-motion, crema swirling
피해야 할 것:
"8k, masterpiece"같은 범용 품질 태그 — 256 토큰 한도 내에서 유효한 토큰을 낭비한다.- 비사실적 스타일(애니메이션, 만화 등) — Mochi-1은 포토리얼리스틱 영상에 최적화되어 있어 비사실적 스타일에서 품질이 저하된다.
자주 발생하는 오류 해결
NotImplementedError: aten::… not implemented for MPS
MPS에서 지원되지 않는 연산이 호출될 때 발생한다.
해결: 실행 전 환경변수를 설정한다.
1export PYTORCH_ENABLE_MPS_FALLBACK=1"FP8 not supported on MPS"
MPS 백엔드는 FP8 데이터 타입을 지원하지 않는다.
해결: bf16 가중치 변형을 사용하거나, channels_last 메모리 포맷 워크어라운드를 적용한다.
1pipe = MochiPipeline.from_pretrained(2 "genmo/mochi-1-preview",3 variant="bf16", # fp8 대신 bf16 사용4 torch_dtype=torch.bfloat165)생성 중 프로세스 종료 / "out of memory"
통합 메모리 부족으로 OS가 프로세스를 강제 종료한다.
해결:
- fp8 가중치로 전환한다.
num_frames를 25~37로 줄인다.- 다른 앱을 모두 종료하여 메모리를 확보한다.
pipe.enable_model_cpu_offload()를 활성화한다.
단색 화면 또는 노이즈 출력
VAE 또는 텍스트 인코더 파일이 잘못된 디렉터리에 있거나 손상된 경우다.
해결: VAE(mochi_vae.safetensors)와 텍스트 인코더 파일을 올바른 디렉터리에 다시 다운로드한다.
T5 인코더 로드 시간이 10분 이상 걸림
외부 저장장치(USB, SD카드 등)를 사용하는 경우 NVMe 대비 최대 5배 느리게 로드된다.
해결: ComfyUI 전체 또는 모델 파일을 Mac 내장 NVMe로 이동한다.
애니메이션/만화 스타일 출력이 왜곡됨
Mochi-1은 포토리얼리스틱 영상에 최적화되어 있어 비사실적 스타일에서 품질이 크게 저하된다.
해결: 비사실적 스타일 콘텐츠 생성에는 HunyuanVideo 사용을 권장한다.
참고 링크
- Mochi-1 소개 페이지 — 아키텍처 및 특징 상세 설명
- GitHub: genmoai/mochi — 공식 리포지터리
- HuggingFace: genmo/mochi-1-preview — 모델 가중치
- HuggingFace diffusers — Mochi 1 Pipeline 문서 — Python API 레퍼런스
- Run Mochi 1 on macOS: Step-by-Step Guide — Codersera 설치 가이드
- Genmo 공식 블로그 — 모델 출시 발표
댓글
아직 댓글이 없습니다.
댓글을 작성하려면 로그인이 필요합니다.