mirror of
https://github.com/BillyOutlast/rocm-automated.git
synced 2026-02-04 03:51:19 +01:00
create-venv.sh creates four virtual environments in the comfyui-build directory:
rocm7.1 (General ROCm 7.1) gfx110X (RDNA 3 - RX 7000 series) gfx1151 (RDNA 3.5 - Strix halo/Ryzen AI Max+ 365) gfx120X (RDNA 4 - RX 9000 series) build-comfyui-variants.sh automatically runs create-venv.sh first, then builds Docker images that copy the appropriate virtual environment based on the GPU_ARCH build argument. Dockerfile simply copies the pre-built ComfyUI repository and the appropriate virtual environment, making builds much faster and more reliable. This approach provides several benefits: Faster builds: No more long pip installations in Docker Better caching: Virtual environments are built once and reused Consistency: Same environment across builds Debugging: Easier to debug venv issues outside of Docker context
This commit is contained in:
@@ -25,25 +25,17 @@ ENV LD_LIBRARY_PATH=/opt/rocm/lib:/opt/rocm/lib64:$LD_LIBRARY_PATH \
|
||||
HSA_OVERRIDE_GFX_VERSION="${GPU_ARCH}" \
|
||||
TORCH_USE_HIP_DSA=1
|
||||
|
||||
# Clone ComfyUI repository
|
||||
# Copy ComfyUI repository and pre-built virtual environment
|
||||
WORKDIR /app
|
||||
RUN git clone https://github.com/comfyanonymous/ComfyUI
|
||||
COPY ComfyUI /app/ComfyUI
|
||||
|
||||
# Copy the appropriate virtual environment based on GPU architecture
|
||||
# The venv should be created by running create-venv.sh on the host
|
||||
COPY ${GPU_ARCH} /app/ComfyUI/venv
|
||||
|
||||
# Set working directory to ComfyUI
|
||||
WORKDIR /app/ComfyUI
|
||||
|
||||
# Create and activate virtual environment, then install dependencies
|
||||
RUN python3 -m venv venv && \
|
||||
. venv/bin/activate && \
|
||||
pip install --upgrade pip && \
|
||||
if echo "${PYTORCH_INDEX_URL}" | grep -q "rocm.nightlies.amd.com"; then \
|
||||
pip install --pre torch torchvision torchaudio --extra-index-url ${PYTORCH_INDEX_URL}; \
|
||||
else \
|
||||
pip install --pre torch torchvision torchaudio --index-url ${PYTORCH_INDEX_URL}; \
|
||||
fi && \
|
||||
pip install -r requirements.txt && \
|
||||
pip install opencv-python gguf
|
||||
|
||||
# Set environment to use the virtual environment and add ROCm runtime settings
|
||||
ENV PATH="/app/ComfyUI/venv/bin:$PATH" \
|
||||
VIRTUAL_ENV="/app/ComfyUI/venv" \
|
||||
|
||||
21
build.sh
21
build.sh
@@ -114,13 +114,30 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}----------------------------------------${NC}"
|
||||
echo ""
|
||||
|
||||
cd comfyui-build
|
||||
|
||||
print_step "Creating/updating virtual environment..."
|
||||
echo -e "${YELLOW}Command: bash ./create-venv.sh${NC}"
|
||||
if bash ./create-venv.sh; then
|
||||
print_success "Virtual environment created/updated successfully"
|
||||
else
|
||||
print_error "Failed to create/update virtual environment"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}----------------------------------------${NC}"
|
||||
echo ""
|
||||
|
||||
print_step "Building ComfyUI variants for different GPU architectures..."
|
||||
echo -e "${YELLOW}Command: bash ./comfyui-build/build-comfyui-variants.sh${NC}"
|
||||
if bash ./comfyui-build/build-comfyui-variants.sh; then
|
||||
echo -e "${YELLOW}Command: bash ./build-comfyui-variants.sh${NC}"
|
||||
if bash ./build-comfyui-variants.sh; then
|
||||
print_success "ComfyUI variants built successfully"
|
||||
else
|
||||
print_error "Failed to build ComfyUI variants"
|
||||
|
||||
@@ -5,6 +5,19 @@
|
||||
REGISTRY="docker.io/getterup"
|
||||
Dockerfiles_DIR="./Dockerfiles"
|
||||
|
||||
echo "Building ComfyUI docker images for different AMD GPU architectures..."
|
||||
|
||||
# First, create the virtual environments using create-venv.sh
|
||||
echo "Creating virtual environments for different GPU architectures..."
|
||||
if [ -f "./comfyui-build/create-venv.sh" ]; then
|
||||
cd comfyui-build
|
||||
chmod +x create-venv.sh
|
||||
./create-venv.sh
|
||||
cd ..
|
||||
else
|
||||
echo "Error: create-venv.sh not found in ./comfyui-build/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Building ComfyUI docker images for different AMD GPU architectures..."
|
||||
|
||||
@@ -13,28 +26,28 @@ echo "Building ComfyUI with ROCm 7.1 (General)..."
|
||||
docker build -t ${REGISTRY}/comfyui:rocm7.1 \
|
||||
--build-arg PYTORCH_INDEX_URL="https://download.pytorch.org/whl/nightly/rocm7.1" \
|
||||
--build-arg GPU_ARCH="rocm7.1" \
|
||||
-f ${Dockerfiles_DIR}/Dockerfile.comfyui-rocm7.1 .
|
||||
-f ${Dockerfiles_DIR}/Dockerfile.comfyui-rocm7.1 ./comfyui-build
|
||||
|
||||
# RDNA 3 (RX 7000 series)
|
||||
echo "Building ComfyUI for RDNA 3 (RX 7000 series)..."
|
||||
docker build -t ${REGISTRY}/comfyui:rdna3-gfx110x \
|
||||
--build-arg PYTORCH_INDEX_URL="https://rocm.nightlies.amd.com/v2/gfx110X-dgpu/" \
|
||||
--build-arg GPU_ARCH="gfx110X" \
|
||||
-f ${Dockerfiles_DIR}/Dockerfile.comfyui-rocm7.1 .
|
||||
-f ${Dockerfiles_DIR}/Dockerfile.comfyui-rocm7.1 ./comfyui-build
|
||||
|
||||
# RDNA 3.5 (Strix halo/Ryzen AI Max+ 365)
|
||||
echo "Building ComfyUI for RDNA 3.5 (Strix halo/Ryzen AI Max+ 365)..."
|
||||
docker build -t ${REGISTRY}/comfyui:rdna3.5-gfx1151 \
|
||||
--build-arg PYTORCH_INDEX_URL="https://rocm.nightlies.amd.com/v2/gfx1151/" \
|
||||
--build-arg GPU_ARCH="gfx1151" \
|
||||
-f ${Dockerfiles_DIR}/Dockerfile.comfyui-rocm7.1 .
|
||||
-f ${Dockerfiles_DIR}/Dockerfile.comfyui-rocm7.1 ./comfyui-build
|
||||
|
||||
# RDNA 4 (RX 9000 series)
|
||||
echo "Building ComfyUI for RDNA 4 (RX 9000 series)..."
|
||||
docker build -t ${REGISTRY}/comfyui:rdna4-gfx120x \
|
||||
--build-arg PYTORCH_INDEX_URL="https://rocm.nightlies.amd.com/v2/gfx120X-all/" \
|
||||
--build-arg GPU_ARCH="gfx120X" \
|
||||
-f ${Dockerfiles_DIR}/Dockerfile.comfyui-rocm7.1 .
|
||||
-f ${Dockerfiles_DIR}/Dockerfile.comfyui-rocm7.1 ./comfyui-build
|
||||
|
||||
echo "All ComfyUI builds completed!"
|
||||
echo ""
|
||||
|
||||
@@ -28,63 +28,70 @@ cd ..
|
||||
echo "Building ComfyUI with ROCm 7.1 (General)..."
|
||||
PYTORCH_INDEX_URL="https://download.pytorch.org/whl/nightly/rocm7.1"
|
||||
GPU_ARCH="rocm7.1"
|
||||
python3 -m venv rocm7.1 && \
|
||||
. rocm7.1/bin/activate && \
|
||||
pip install --upgrade pip && \
|
||||
if echo "${PYTORCH_INDEX_URL}" | grep -q "rocm.nightlies.amd.com"; then \
|
||||
pip install --pre torch torchvision torchaudio --extra-index-url ${PYTORCH_INDEX_URL}; \
|
||||
else \
|
||||
pip install --pre torch torchvision torchaudio --index-url ${PYTORCH_INDEX_URL}; \
|
||||
fi && \
|
||||
pip install -r ComfyUI/requirements.txt && \
|
||||
pip install opencv-python gguf
|
||||
deactivate
|
||||
python3 -m venv rocm7.1
|
||||
. rocm7.1/bin/activate
|
||||
pip install --upgrade pip
|
||||
if echo "${PYTORCH_INDEX_URL}" | grep -q "rocm.nightlies.amd.com"; then
|
||||
pip install --pre torch torchvision torchaudio --extra-index-url ${PYTORCH_INDEX_URL}
|
||||
else
|
||||
pip install --pre torch torchvision torchaudio --index-url ${PYTORCH_INDEX_URL}
|
||||
fi
|
||||
pip install -r ComfyUI/requirements.txt
|
||||
pip install opencv-python gguf
|
||||
deactivate
|
||||
|
||||
# RDNA 3 (RX 7000 series)
|
||||
echo "Building ComfyUI for RDNA 3 (RX 7000 series)..."
|
||||
PYTORCH_INDEX_URL="https://rocm.nightlies.amd.com/v2/gfx110X-dgpu/"
|
||||
GPU_ARCH="gfx110X"
|
||||
python3 -m venv gfx110X && \
|
||||
. gfx110X/bin/activate && \
|
||||
pip install --upgrade pip && \
|
||||
if echo "${PYTORCH_INDEX_URL}" | grep -q "rocm.nightlies.amd.com"; then \
|
||||
pip install --pre torch torchvision torchaudio --extra-index-url ${PYTORCH_INDEX_URL}; \
|
||||
else \
|
||||
pip install --pre torch torchvision torchaudio --index-url ${PYTORCH_INDEX_URL}; \
|
||||
fi && \
|
||||
pip install -r ComfyUI/requirements.txt && \
|
||||
pip install opencv-python gguf
|
||||
deactivate
|
||||
python3 -m venv gfx110X
|
||||
. gfx110X/bin/activate
|
||||
pip install --upgrade pip
|
||||
if echo "${PYTORCH_INDEX_URL}" | grep -q "rocm.nightlies.amd.com"; then
|
||||
pip install --pre torch torchvision torchaudio --extra-index-url ${PYTORCH_INDEX_URL}
|
||||
else
|
||||
pip install --pre torch torchvision torchaudio --index-url ${PYTORCH_INDEX_URL}
|
||||
fi
|
||||
pip install -r ComfyUI/requirements.txt
|
||||
pip install opencv-python gguf
|
||||
deactivate
|
||||
|
||||
# RDNA 3.5 (Strix halo/Ryzen AI Max+ 365)
|
||||
echo "Building ComfyUI for RDNA 3.5 (Strix halo/Ryzen AI Max+ 365)..."
|
||||
PYTORCH_INDEX_URL="https://rocm.nightlies.amd.com/v2/gfx1151/"
|
||||
GPU_ARCH="gfx1151"
|
||||
python3 -m venv gfx1151 && \
|
||||
. gfx1151/bin/activate && \
|
||||
pip install --upgrade pip && \
|
||||
if echo "${PYTORCH_INDEX_URL}" | grep -q "rocm.nightlies.amd.com"; then \
|
||||
pip install --pre torch torchvision torchaudio --extra-index-url ${PYTORCH_INDEX_URL}; \
|
||||
else \
|
||||
pip install --pre torch torchvision torchaudio --index-url ${PYTORCH_INDEX_URL}; \
|
||||
fi && \
|
||||
pip install -r ComfyUI/requirements.txt && \
|
||||
pip install opencv-python gguf
|
||||
deactivate
|
||||
python3 -m venv gfx1151
|
||||
. gfx1151/bin/activate
|
||||
pip install --upgrade pip
|
||||
if echo "${PYTORCH_INDEX_URL}" | grep -q "rocm.nightlies.amd.com"; then
|
||||
pip install --pre torch torchvision torchaudio --extra-index-url ${PYTORCH_INDEX_URL}
|
||||
else
|
||||
pip install --pre torch torchvision torchaudio --index-url ${PYTORCH_INDEX_URL}
|
||||
fi
|
||||
pip install -r ComfyUI/requirements.txt
|
||||
pip install opencv-python gguf
|
||||
deactivate
|
||||
|
||||
# RDNA 4 (RX 9000 series)
|
||||
echo "Building ComfyUI for RDNA 4 (RX 9000 series)..."
|
||||
PYTORCH_INDEX_URL="https://rocm.nightlies.amd.com/v2/gfx120X-all/"
|
||||
GPU_ARCH="gfx120X"
|
||||
python3 -m venv gfx120X && \
|
||||
. gfx120X/bin/activate && \
|
||||
pip install --upgrade pip && \
|
||||
if echo "${PYTORCH_INDEX_URL}" | grep -q "rocm.nightlies.amd.com"; then \
|
||||
pip install --pre torch torchvision torchaudio --extra-index-url ${PYTORCH_INDEX_URL}; \
|
||||
else \
|
||||
pip install --pre torch torchvision torchaudio --index-url ${PYTORCH_INDEX_URL}; \
|
||||
fi && \
|
||||
pip install -r ComfyUI/requirements.txt && \
|
||||
pip install opencv-python gguf
|
||||
deactivate
|
||||
python3 -m venv gfx120X
|
||||
. gfx120X/bin/activate
|
||||
pip install --upgrade pip
|
||||
if echo "${PYTORCH_INDEX_URL}" | grep -q "rocm.nightlies.amd.com"; then
|
||||
pip install --pre torch torchvision torchaudio --extra-index-url ${PYTORCH_INDEX_URL}
|
||||
else
|
||||
pip install --pre torch torchvision torchaudio --index-url ${PYTORCH_INDEX_URL}
|
||||
fi
|
||||
pip install -r ComfyUI/requirements.txt
|
||||
pip install opencv-python gguf
|
||||
deactivate
|
||||
|
||||
echo "All virtual environments created successfully!"
|
||||
echo "Available environments:"
|
||||
echo " - rocm7.1 (General ROCm 7.1)"
|
||||
echo " - gfx110X (RDNA 3 - RX 7000 series)"
|
||||
echo " - gfx1151 (RDNA 3.5 - Strix halo/Ryzen AI Max+ 365)"
|
||||
echo " - gfx120X (RDNA 4 - RX 9000 series)"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user