
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. 설치&&실행
주의) 아래 스크립트들은 ComfyUI-TheRock 폴더 안에서 실행해야 합니다.
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. 마무리…
설명이 부실하긴 한데 그 부분은 근성과 기합 그리고 노오오오력 하시면 이해가 되실거라 봅니다. (안되면 댓글 달아주세요)


답글 남기기