AMD 8845HS 780M으로 ComfyUI 돌려보기 (The Rock 버전)

제공

TheRock (The HIP Environment and ROCm Kit) 이라고 Hip, Rocm 을 경량화 한 프로젝트가 있는데 최근에 관련 글이 레딧에 올라와서 9070, 780m에서 테스트 해봤습니다.

이건 기존 Zluda 버전으로 돌렸을때 생성 시간입니다. (하단 이미지가 16초 정도 더 걸린건 처음 생성시 모델 파일 로딩하는 시간 때문입니다.)

동일 조건(시드만 랜덤)상에서 TheRock 버전으로 돌린 생성시간입니다. 약 24초 가량 빨라진것을 볼 수 있습니다.

size : 896×1152
step : 28
euler a + normal
obsessionIllustrious_vPredV11.safetensors (sha256: 104b9362d2ab82797b6b26a7eed043b5fd042bec5ba00cccaf3d8ee08bb29b93)

9070에서도 잘 작동하지만 속도는 드라마틱하게 빨라지진 않고 WSL에서 돌렸던거랑 비슷하게 나옵니다.

다만 WSL은 윈도우 위에서 리눅스 돌리느라 램 사용 제한 때문인지 vram 이상 넘어가면 뻗어버리는 증상이 종종 발생했는데요. 이걸로 돌리면 zluda 돌리는것과 비슷하게 별 무리 없이 작동합니다.

TheRock이 경량화+초기 알파버전이라 많은 버그가 있을수 있다고 개발자가 말했기에 가급적 기본 노드들로 사용하는걸 추천합니다.


2025년 6월 24일

9070에서 Hires.fix 돌릴경우 그냥 무한로딩(?)에 빠지는 증상 있더군요. KSampler를 두번들어가서 그런건지 어느정도 전력은 먹는데 작업관리자에서 Compute 항목 그래프가 안올라오고 무한 대기를 합니다.
780m은 문제 없이 잘 돌아갑니다. RDNA4 지원이 아직 좀 부족한거 같습니다.

1. 폴더구조

폴더 구조는 위와 같습니다. 최상위 AI 폴더명은 변경해도 하위 구조가 바뀌지 않는다면 실행되는데 문제가 없도록 작성했습니다.

혹시 제 블로그 글 보고 기존의 zluda버전 세팅하셨던 분들이라면 사알짝 폴더가 바뀌었으니 잘 보세용.

2. 공통 파일 다운로드

2-1 Git

Download : https://git-scm.com/downloads/win

git 포터블 버전을 받아서 실행하면 폴더가 하나 생기는데 이걸 전부 ETC\git 폴더로 옮겨줍니다.

2-2 Python 3.11.9

Download : https://www.python.org/downloads/release/python-3119/

설치할때 ETC\python3.11.9 폴더로 지정하거나 기본 설치 후 ETC\python3.11.9 폴더로 옮겨줍니다.

(제 블로그 Comfy관련 글에서 파이썬 버전이 들쑥날쑥한 이유는 쓰다 보니 특정 모듈들이 파이썬 버전을 많이 가려서 그렇습니다.)

3. 설치&&실행

3-1 ComfyUI-TheRock_download.cmd

@echo off
REM ---------------------------------------------------------------------------
REM parent path를 구함 ex) c:\AI\
FOR %%A IN ("%~dp0.") DO set PARENT_PATH=%%~dpA
set USERPROFILE=%PARENT_PATH%ETC\USERPROFILE\
set GIT_PATH=%PARENT_PATH%ETC\git\cmd\
set "PATH=%GIT_PATH%;%PATH%;"

git init .
git remote add origin https://github.com/comfyanonymous/ComfyUI.git
git pull origin master

ComfyUI 를 깃헙에서 내려 받는 스크립트입니다.

3-2 ComfyUI-TheRock_install.cmd

@echo off
REM ---------------------------------------------------------------------------
REM parent path를 구함 ex) c:\AI\
FOR %%A IN ("%~dp0.") DO set PARENT_PATH=%%~dpA

set USERPROFILE=%PARENT_PATH%ETC\USERPROFILE\
set VENV_DIR=%~dp0venv
set PYTHON_PATH=%PARENT_PATH%ETC\python3.11.9\
set GIT_PATH=%PARENT_PATH%ETC\git\cmd\
set "PATH=%GIT_PATH%;%PATH%;"

REM ---------------------------------------------------------------------------
REM USERPROFILE 폴더 생성
If Not Exist "%USERPROFILE%AppData\Local\" (
    mkdir %USERPROFILE%AppData\Local\
)
If Not Exist "%USERPROFILE%AppData\LocalLow\" (
	mkdir %USERPROFILE%AppData\LocalLow\
)
If Not Exist "%USERPROFILE%AppData\Roaming\" (
	mkdir %USERPROFILE%AppData\Roaming\
)
REM ---------------------------------------------------------------------------
REM 파이썬 가상환경
If Exist %VENV_DIR% (
	rmdir /S /q %VENV_DIR%
)

%PYTHON_PATH%python.exe -m venv %VENV_DIR%

If Not Exist "%VENV_DIR%\Scripts\activate.bat" Exit /B 1
Call "%VENV_DIR%\Scripts\activate.bat"

REM ---------------------------------------------------------------------------
REM 실제 설치 하는 부분

python.exe -m pip install --upgrade pip

set "url_torch=https://github.com/scottt/rocm-TheRock/releases/download/v6.5.0rc-pytorch-gfx110x/torch-2.7.0a0+rocm_git3f903c3-cp311-cp311-win_amd64.whl"
set "url_torchvision=https://github.com/scottt/rocm-TheRock/releases/download/v6.5.0rc-pytorch-gfx110x/torchvision-0.22.0+9eb57cd-cp311-cp311-win_amd64.whl"
set "url_torchaudio=https://github.com/scottt/rocm-TheRock/releases/download/v6.5.0rc-pytorch-gfx110x/torchaudio-2.7.0a0+52638ef-cp311-cp311-win_amd64.whl"

pip3 install %url_torch% %url_torchvision% %url_torchaudio%
pip3 install onnxruntime piexif numpy==1.26.4

pip3 install -r requirements.txt

cd custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
cd ..
pause

구동에 필요한 파일을 설치 하는 스크립트 입니다.

USERPROFILE 폴더는 pip 캐시와 ComfyUI가 사용하는 모듈들의 부산물이 USERPROFILE 폴더 안에 전부 모이도록 하기 위함입니다.

https://github.com/ROCm/TheRock 에서 pytorch를 안 받는 이유는 TheRock이 소스만 제공하고 빌드는 셀프라 다른 분이 미리 빌드해 놓은 https://github.com/scottt/rocm-TheRock 에서 받는것이랍니다.

3-3 extra_model_paths.yaml

linsoo:
    base_path: C:\AI\
    is_default: true
    custom_nodes: ETC/ComfyUI_custom_nodes/
    
    checkpoints: Models/checkpoints/
    clip: Models/clip/
    clip_vision: Models/clip_vision/
    configs: Models/configs/
    controlnet: Models/controlNet/
    diffusion_models: |
        Models/diffusion_models
        Models/unet
    embeddings: Models/embeddings/
    loras: Models/loras/
    upscale_models: Models/upscale_models/
    vae: Models/vae/
    ipadapter: Models/ipadapter/
    hypernetworks: Models/hypernetworks/
    sams: Models/sams/
    ultralytics: Models/ultralytics/
    ultralytics_bbox: Models/ultralytics/bbox/
    ultralytics_segm: Models/ultralytics/segm/

위 내용은 ETC\ComfyUI_user\extra_model_paths.yaml 파일로 저장합니다.

3-4 ComfyUI-TheRock_run.cmd

@echo off
REM ---------------------------------------------------------------------------
REM parent path를 구함 ex) c:\AI\
FOR %%A IN ("%~dp0.") DO set PARENT_PATH=%%~dpA

set CURRENT_PATH=%~dp0
set USERPROFILE=%PARENT_PATH%ETC\USERPROFILE\
set VENV_DIR=%~dp0venv
set PYTHON_PATH=%PARENT_PATH%ETC\python3.11.9\
set GIT_PATH=%PARENT_PATH%ETC\git\cmd\
set "PATH=%GIT_PATH%;%PATH%;"

REM ---------------------------------------------------------------------------
REM 폴더 경로가 바뀌어도 가상 파이쏜 정상 실행 되도록 경로 수정
set tmp_pypath=home = %PYTHON_PATH%
set tmp_venvpath=set VIRTUAL_ENV=%VENV_DIR%
if exist "%VENV_DIR%\" (
	powershell -command "$text = (gc %VENV_DIR%\pyvenv.cfg) -replace 'home = .*', $env:tmp_pypath; $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False);[System.IO.File]::WriteAllLines('%VENV_DIR%\pyvenv.cfg', $text, $Utf8NoBomEncoding);"
	powershell -command "$text = (gc %VENV_DIR%\Scripts\activate.bat) -replace 'set VIRTUAL_ENV=.*', $env:tmp_venvpath; $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False);[System.IO.File]::WriteAllLines('%VENV_DIR%\Scripts\activate.bat', $text, $Utf8NoBomEncoding);"
)
REM ---------------------------------------------------------------------------
REM 컴피용
set "COMFYUI_USER_PATH=%PARENT_PATH%ETC\ComfyUI_user\"
set "EXTRA_MODEL_PATH_FILE=%COMFYUI_USER_PATH%extra_model_paths.yaml"
set "OUTPUTS_PATH=%PARENT_PATH%Outputs"


REM ComfyUI 유저정보 저장하는 폴더가 없으면 실행 안됨
If Not Exist "%COMFYUI_USER_PATH%" (
    mkdir %COMFYUI_USER_PATH%
)

REM outputs 폴더 지정시 해당 폴더 없으면 이미지 저장시 에러남
If Not Exist "%OUTPUTS_PATH%" (
    mkdir %OUTPUTS_PATH%
)

REM extra_model_paths.yaml 설정파일 수정
set "tmp_extra_path=%EXTRA_MODEL_PATH_FILE%"
set tmp_extra_path2=base_path: %PARENT_PATH%
if exist "%tmp_extra_path%" (
	powershell -command "$text = (gc %tmp_extra_path%) -replace 'base_path: .*', $env:tmp_extra_path2; $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False);[System.IO.File]::WriteAllLines('%tmp_extra_path%', $text, $Utf8NoBomEncoding);"
)

REM ---------------------------------------------------------------------------
REM 가상화 실행
If Not Exist "%VENV_DIR%\Scripts\activate.bat" Exit /B 1
Call "%VENV_DIR%\Scripts\activate.bat"

echo #################################################################
REM ---------------------------------------------------------------------------

set COMMANDLINE_ARGS=--use-pytorch-cross-attention --reserve-vram 0.9 --output-directory %OUTPUTS_PATH% --user-directory %COMFYUI_USER_PATH% --extra-model-paths-config %EXTRA_MODEL_PATH_FILE% --preview-method auto

python.exe main.py %COMMANDLINE_ARGS%

ComfyUI 실행 하는 스크립트 입니다.

3-4 ComfyUI-TheRock_Update.cmd

@echo off
REM ---------------------------------------------------------------------------
REM parent path를 구함 ex) c:\AI\
FOR %%A IN ("%~dp0.") DO set "PARENT_PATH=%%~dpA"

set "USERPROFILE=%PARENT_PATH%ETC\USERPROFILE\"
set "PYTHON_PATH=%PARENT_PATH%ETC\python3.11.9\"
set "GIT_PATH=%PARENT_PATH%ETC\git\cmd\"
set "PATH=%GIT_PATH%;%PATH%;"
set "VENV_DIR=%~dp0venv"

REM ---------------------------------------------------------------------------
REM 폴더 경로가 바뀌어도 가상 파이쏜 정상 실행 되도록 경로 수정
set tmp_pypath=home = %PYTHON_PATH%
set tmp_venvpath=set VIRTUAL_ENV=%VENV_DIR%
if exist "%VENV_DIR%\" (
	powershell -command "$text = (gc %VENV_DIR%\pyvenv.cfg) -replace 'home = .*', $env:tmp_pypath; $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False);[System.IO.File]::WriteAllLines('%VENV_DIR%\pyvenv.cfg', $text, $Utf8NoBomEncoding);"
	powershell -command "$text = (gc %VENV_DIR%\Scripts\activate.bat) -replace 'set VIRTUAL_ENV=.*', $env:tmp_venvpath; $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False);[System.IO.File]::WriteAllLines('%VENV_DIR%\Scripts\activate.bat', $text, $Utf8NoBomEncoding);"
)

REM 가상화 실행
If Not Exist "%VENV_DIR%\Scripts\activate.bat" Exit /B 1
Call "%VENV_DIR%\Scripts\activate.bat"



REM ---------------------------------------------------------------------------
REM 업데이트 체크
echo #################################################################
echo ** ComfyUI Update
git pull origin master

python.exe -m pip install --upgrade pip
pip3 install -r requirements.txt
echo.
pause

예전엔 실행할 때 마다 업데이트 체크를 했는데 ComfyUI 업데이트로 인해 커스텀 노드에 문제가 발생하는 경우가 잦아서 스크립트를 분리했습니다.

4. 마무리…

설명이 부실하긴 한데 그 부분은 근성과 기합 그리고 노오오오력 하시면 이해가 되실거라 봅니다. (안되면 댓글 달아주세요)


Comments

“AMD 8845HS 780M으로 ComfyUI 돌려보기 (The Rock 버전)”에 대한 2개의 응답

  1.  아바타
    익명

    안녕하세요, 알려주신 방법대로 진행중에 맞혀 의견을 여쭙고자 댓글 남깁니다.
    3-2와 3-4를 git cmd에 해당 디렉토이 안에서 실행 후, 붙혀넣기를 하면 cmd창이 사라지고 아무 일도 일어나지 않습니다. 어떤것이 문제인지 전혀 모르겠어서 고민입니다.ㅜㅜ

    1. Linsoo 아바타

      맨앞에 “@echo off” 이 부분을 지우고 다시 실행 하면 어디서 에러가 나는지 표시가 될겁니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다