Apple Silicon 최적화를 위한 H3-metal의 구현 구조

M5 Max에서 MiniMax-H3 모델의 네이티브 추론이 가능해졌다. H3-metal 프로젝트가 Apple Silicon의 Metal API를 직접 사용해 비디오와 오디오 생성 기능을 구현했기 때문이다. 개발팀은 핵심 기능을 얇게 쪼개어 구현하는 '수직 슬라이스' 방식을 통해 프롬프트 인코딩부터 프레임 컨디셔닝, Ref2VA 순서 지정 참조까지 엔드-투-엔드 파이프라인을 구축했다.

실제 작업은 Iris 스타일의 대화형 세션에서 이뤄진다. BF16 프롬프트 컨디셔닝과 DiT(Diffusion Transformer), 비디오 디코더를 메모리에 상주시킨 상태로 유지한다. 덕분에 프롬프트는 그대로 두고 시드(seed) 값만 바꿔 반복 생성할 때, 모델을 다시 로드하는 대기 시간 없이 즉시 결과물을 확인할 수 있다. 세션 내에서는 `!status`, `!seed random`, `!save output.mp4` 등의 명령어로 상태를 관리한다.

영상 제어는 세션 내 컨디셔닝 설정으로 처리한다. `!first clear`나 `!last clear`로 앵커 프레임을 제거하고, `!ref-image PATH`로 참조 이미지를 추가해 구도를 잡는다. 추가된 이미지는 `<Picture 1>`, `<Picture 2>` 순으로 모델에 입력되며, `!refs`로 순서를 확인하거나 `!ref-remove N`으로 개별 삭제가 가능하다. 다만 Ref2VA 참조 기능은 앵커 설정과 동시에 사용할 수 없다.

연산 시간 단축을 위한 하드웨어 가속 및 최적화 제어

생성 속도는 `--steps N` 옵션으로 조절하는 디노이징 패스 횟수가 결정한다. 4~7회 패스 설정 시 저예산 스케줄이 적용되며, 횟수가 늘어날수록 디테일과 움직임이 정교해진다. 소규모 설정에서는 모든 패스가 모델을 실행하도록 `--reuse 1` 옵션을 쓰는 것이 좋고, `--show`를 더하면 패스마다 프리뷰를 볼 수 있다.

M5 칩셋의 성능을 더 쥐어짜려면 `--use-int8-row-fc2` 옵션을 켠다. FC2(Fully Connected 2) 행마다 활성화 스케일을 적용해 단일 전체 너비 TensorOps 곱셈을 수행하는 방식이다. 그룹화된 int8 방식보다 수치적 보수성은 낮지만, 전체 디노이저 포워드 횟수를 약 2.6% 줄이는 효과가 있다.

메모리와 연산 시간을 동시에 잡으려면 레이어 솎아내기(`--layers`)와 토큰 감소(`--token-reduction`)를 조합한다. M5 Max에서 512px 해상도로 테스트했을 때, '45개 레이어 + reuse 2' 프로필에 토큰 감소를 적용하자 연산 시간이 16.69초에서 12.60초로 줄었다. 하지만 `--layers 40`과 `--reuse 3` 설정에서 토큰 감소를 과하게 적용하면 컬러 링잉이나 외곽선 왜곡, 잔상 현상이 나타난다. 빠른 프리뷰가 필요할 때는 `--core-reuse 6`까지 사용할 수 있지만, 그 이상은 피사체 충실도가 급격히 떨어진다.

해상도 제약 조건과 품질-속도 선택 기준

캔버스 크기는 가로세로 모두 32의 배수여야 하며, 최대 $768 imes 1344$ 픽셀까지 지원한다. H3-Base는 768p 모델이지만, 256px 해상도에서는 공간적 RoPE(Rotary Positional Embedding) 좌표를 자동으로 절반으로 줄여 격자 아티팩트를 방지한다. 반면 128px 해상도는 $4 imes 4$ 토큰 그리드 구조 탓에 피사체 복구가 불가능해 현재 지원 대상에서 제외됐다.

영상 길이는 24fps 기준이며, 프레임 수는 $5 + 17n$ 공식에 따라 결정된다. `--seconds N`이나 `--frames N` 중 하나를 선택해 제어하며, 예를 들어 `--seconds 10`을 입력하면 올림 처리되어 총 243프레임(10.125초)이 생성된다. 보통 4~15초 길이의 워크플로우가 권장된다.

결국 사용자는 SSIM(구조 유사도) 수치를 기준으로 속도와 품질 사이의 타협점을 찾아야 한다. M5 Max에서 512px 해상도로 4-pass 디노이징을 수행하면 3.5초 만에 결과가 나오지만, 29-pass 레퍼런스 대비 SSIM은 여우 테스트 0.556, 서퍼 테스트 0.547 수준으로 떨어진다. 정밀한 구도 검증이 필요할 때는 연산 비용이 높더라도 `--steps 50 --layers 50 --reuse 1` 설정의 '오라클 모드'를 절대적 기준으로 삼고, 단순 확인용으로는 4-pass 설정을 선택해 운용하는 것이 효율적이다.