😊

UniRig簡単起動docker-compose

に公開

UniRigを起動させるdocker-composeです

  1. 作業用のディレクトリを用意してください
  2. Dockerfile,docker-compose.yml,config.pyをコピペして貼り付けてください
  3. volumesに認識させたいモデルファイルを設定してください
    ex: - ./model.glb:/tmp/model.glb
    
  4. /tmp/model.glbの部分を上で設定したpathにしてください
  5. docker-compose upでresultsディレクトリに出力されます
  • uvを使っていますが、--no-build-isolationを使用しているためuvのメリットは半減していますが、pythonのversionを3.11にしたいという用途がメインなので問題ありません
  • Segmentation faultが出ますがwaitの部分なのでそのまま動きました
    ./launch/inference/extract.sh: line 58:    14 Segmentation fault      (core dumped)
    

Dockerfile

FROM nvidia/cuda:12.6.3-cudnn-devel-ubuntu22.04
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
    git \
    wget \
    curl ca-certificates \
    xorg \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*
ADD https://astral.sh/uv/install.sh /uv-installer.sh
RUN sh /uv-installer.sh && rm /uv-installer.sh
ENV PATH="/root/.local/bin/:$PATH"
RUN git clone https://github.com/VAST-AI-Research/UniRig.git /UniRig
WORKDIR /UniRig
RUN uv init -p 3.11.6
RUN uv venv --python 3.11.6
RUN uv add torch==2.7.0 torchvision --no-build-isolation
RUN uv add setuptools --no-build-isolation
RUN uv add -r requirements.txt --no-build-isolation
RUN uv add hatchling editables wheel --no-build-isolation
RUN uv add spconv-cu126 --no-build-isolation
RUN uv add torch_scatter torch_cluster -f https://data.pyg.org/whl/torch-2.7.0+cu126.html --no-cache-dir --no-build-isolation
RUN uv add numpy==1.26.4 --no-build-isolation
RUN uv add pip --no-build-isolation
RUN build_deps="curl" && \
   apt-get update && \
   DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ${build_deps} ca-certificates && \
   curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash && \
   DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git-lfs && \
   git lfs install && \
   DEBIAN_FRONTEND=noninteractive apt-get purge -y --auto-remove ${build_deps} && \
   rm -r /var/lib/apt/lists/*
RUN git lfs pull

docker-compose.yml

services:
  unirig:
    build:
      context: .
      dockerfile: Dockerfile
    entrypoint:
      - /bin/bash
      - -c
      - . .venv/bin/activate && bash launch/inference/generate_skeleton.sh --input /tmp/model.glb --output /results/model.fbx && bash launch/inference/merge.sh --source /results/model.fbx --target /tmp/model.glb --output /results/model.glb
    volumes:
      - hugggingface:/hugggingface
      - ./results:/results
      - ./model.glb:/tmp/model.glb
    environment:
      - HF_HOME=/hugggingface
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
volumes:
  hugggingface:

Discussion