File size: 2,584 Bytes
5708ff2
 
589f3a0
 
 
 
5708ff2
5c9a178
 
5708ff2
589f3a0
5708ff2
589f3a0
5c9a178
a1ddb51
 
5c9a178
 
 
33e5da6
589f3a0
 
 
 
 
 
5c9a178
589f3a0
 
 
 
 
5c9a178
589f3a0
 
5c9a178
 
589f3a0
 
5c9a178
589f3a0
 
 
 
5c9a178
589f3a0
 
 
5c9a178
589f3a0
 
5708ff2
5c9a178
 
a1ddb51
 
 
 
 
5c9a178
 
 
a1ddb51
5c9a178
5708ff2
589f3a0
 
 
 
5708ff2
5c9a178
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash

# Exit immediately if a command exits with a non-zero status.
set -e

# --- Configuration ---
BLENDER_VERSION="4.2.0"
BLENDER_MAJOR_MINOR="4.2"
BLENDER_PYTHON_VERSION="python3.11"
BLENDER_TARBALL="blender-${BLENDER_VERSION}-linux-x64.tar.xz"
BLENDER_URL="https://download.blender.org/release/Blender${BLENDER_MAJOR_MINOR}/blender-${BLENDER_VERSION}-linux-x64.tar.xz"
INSTALL_DIR="/opt/blender-${BLENDER_VERSION}-linux-x64"
BLENDER_PY_EXEC="${INSTALL_DIR}/${BLENDER_MAJOR_MINOR}/python/bin/${BLENDER_PYTHON_VERSION}"
UNIRIG_REQS_FILE="/home/user/app/unirig_requirements.txt"  # Adjust path if different
TORCH_VERSION="2.3.1"
TORCHVISION_VERSION="0.18.1"
TORCH_CUDA_SUFFIX="cu121"
TORCH_INDEX_URL="https://download.pytorch.org/whl/${TORCH_CUDA_SUFFIX}"
PYG_WHEEL_INDEX="https://data.pyg.org/whl/torch-2.3.0+cu121.html"  # Compatible with 2.3.1

# --- Download and Extract Blender ---
echo "Downloading Blender ${BLENDER_VERSION}..."
wget -nv -O /tmp/${BLENDER_TARBALL} ${BLENDER_URL}
echo "Download complete."

echo "Extracting Blender to ${INSTALL_DIR}..."
mkdir -p /opt
tar -xJf /tmp/${BLENDER_TARBALL} -C /opt
echo "Extraction complete."

# --- Create Blender Symlink ---
echo "Creating symlink for Blender executable..."
ln -sf ${INSTALL_DIR}/blender /usr/local/bin/blender
echo "Symlink created."

# --- Install Dependencies into Blender's Python ---
echo "Installing dependencies into Blender's Python (${BLENDER_PYTHON_VERSION})..."

if [ ! -f "${BLENDER_PY_EXEC}" ]; then
    echo "ERROR: Blender Python executable not found at ${BLENDER_PY_EXEC}!"
    exit 1
fi

if [ ! -f "${UNIRIG_REQS_FILE}" ]; then
    echo "ERROR: Requirements file not found at ${UNIRIG_REQS_FILE}!"
    exit 1
fi

# Upgrade pip
echo "Upgrading pip for Blender Python..."
"${BLENDER_PY_EXEC}" -m pip install --upgrade pip setuptools wheel

# Install PyTorch and Torchvision first
echo "Installing PyTorch ${TORCH_VERSION} and Torchvision ${TORCHVISION_VERSION} (CUDA: ${TORCH_CUDA_SUFFIX})..."
"${BLENDER_PY_EXEC}" -m pip install --no-cache-dir \
    torch==${TORCH_VERSION} \
    torchvision==${TORCHVISION_VERSION} \
    --index-url ${TORCH_INDEX_URL}

# Install remaining dependencies with PyG wheel index
echo "Installing remaining packages from ${UNIRIG_REQS_FILE} with PyG wheel index..."
"${BLENDER_PY_EXEC}" -m pip install --no-cache-dir -r "${UNIRIG_REQS_FILE}" -f ${PYG_WHEEL_INDEX}

echo "Dependency installation complete."

# --- Cleanup ---
echo "Cleaning up downloaded tarball..."
rm /tmp/${BLENDER_TARBALL}
echo "Cleanup complete."

echo "Blender setup finished successfully."