취미 기록용 블로그

AMD rx9070 ROCM 7.1(정식버전)+ComfyUI 포터블 버전

라데온 레포에 rocm 윈도우용 정식버전이 업데이트(6.4.4 -> 7.1.1) 됐습니다.

6.4.4 버전은 느리고 OOM도 자주 발생해서 쓸게 못돼서 버리고 나이틀리 버전을 쓰던중에 파이토치 프리뷰 드라이버랑 같이 7.1.1이 릴리즈 되는걸 보고 설치해 봤습니다.

rocm-0.1.dev0.tar.gz
rocm_sdk_core-0.1.dev0-py3-none-win_amd64.whl
rocm_sdk_devel-0.1.dev0-py3-none-win_amd64.whl
rocm_sdk_libraries_custom-0.1.dev0-py3-none-win_amd64.whl
torch-2.9.0+rocmsdk20251116-cp312-cp312-win_amd64.whl
torchaudio-2.9.0+rocmsdk20251116-cp312-cp312-win_amd64.whl
torchvision-0.24.0+rocmsdk20251116-cp312-cp312-win_amd64.whl

https://repo.radeon.com/rocm/windows/rocm-rel-7.1.1/

이번에 공개된 버전은 위와 같고 제가 저 버전과 비슷한 버전의 나이틀리 버전을 사용중인데 매우 쓸만했습니다.

우선 게임용으로 쓰던 adrenalin-25.9.2 드라이버를 가지고 테스트를 해봤습니다. 처음 모델 로딩할때만 27초 가량 걸리고 그 뒤 이미지 생성엔 11~12초 사이로 생성이 되었습니다.

amd에서 같이 쓰라고 배포한 amd-software-adrenalin-edition-25.20.01.17-win11-pytorch-combined 드라이버를 가지고 테스트를 해보면 이미지 생성 시간은 큰 차이는 없는데 처음 모델 로딩 속도가 조금 더 빨랐습니다.

저 파이토치 조합 드라이버가 내부적으로 안정성 때문에 여유를 둔거 때문인지 전압 다이어트가 더 잘 먹힙니다. 25.9.2는 -75mA 이상 깎으면 재부팅하거나 게임 하다가 안정성 이슈로 롤백이 되는데 이 드라이버는 -95mA까지 깎아도 잘 돌아갑니다. (게임 퍼포먼스는 고사양게임을 안해서 잘 모르겠습니다)


2025년12월21일 추가

통합 스크립트를 작성했으니 위 링크 사용하는걸 추천합니다.

1. Install.cmd

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
chcp 65001 >nul
REM ---------------------------------------------------------------------------
REM 루트를 구함 ex) "c:\AI\"
set "PATH_ROOT=%~dp0"

set "PATH_PYTHON=%PATH_ROOT%ETC\python_embeded"
set "PATH_GIT=%PATH_ROOT%ETC\git"
set "PATH=%PATH_PYTHON%;%PATH_PYTHON%\Scripts;%PATH_GIT%;%PATH_GIT%\cmd;%SystemRoot%\System32;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\"

REM ---------------------------------------------------------------------------
REM 설치시 필요한 파일 저장하는 경로 (인터넷에서 두번 다운 받는거 안하기 위해)
set "PATH_TEMP_INSTALLER=%PATH_ROOT%ETC\TMP_INSTALLER" 
set "USERPROFILE=%PATH_TEMP_INSTALLER%\USERPROFILE"
REM ---------------------------------------------------------------------------
REM 컴피용
set "PATH_COMFYUI=%PATH_ROOT%ETC\ComfyUI"
set "PATH_COMFYUI_USER=%PATH_ROOT%userdata"
set "PATH_COMFYUI_CUSTOM_NODES=%PATH_COMFYUI_USER%\custom_nodes"
set "FILE_PATH_EXTRA_MODEL=%PATH_COMFYUI_USER%\extra_model_paths.yaml"
set "PATH_OUTPUTS=%PATH_ROOT%Outputs"

REM ---------------------------------------------------------------------------
REM 필수 폴더 생성

REM PATH_TEMP_INSTALLER 폴더 생성
if not exist "%PATH_TEMP_INSTALLER%" (
	mkdir "%PATH_TEMP_INSTALLER%"
)

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 컴피 유저 폴더 생성
if not exist "%PATH_COMFYUI_USER%" (
	mkdir "%PATH_COMFYUI_USER%"
)

REM 커스텀 노드 폴더 생성
if not exist "%PATH_COMFYUI_CUSTOM_NODES%" (
	mkdir "%PATH_COMFYUI_CUSTOM_NODES%"
)

REM 모델 체크포인트 폴더 생성
if not exist "%PATH_ROOT%Models\checkpoints" (
	mkdir "%PATH_ROOT%Models\checkpoints"
)

REM 모델 로라 폴더 생성
if not exist "%PATH_ROOT%Models\loras" (
	mkdir "%PATH_ROOT%Models\loras"
)

REM 결과 파일 폴더 생성
if not exist "%PATH_OUTPUTS%" (
	mkdir "%PATH_OUTPUTS%"
)


REM ---------------------------------------------------------------------------
if not exist "%FILE_PATH_EXTRA_MODEL%" (
	echo ---------------------------------------------------------------------------
	REM "C:\AI\" 제거 (주의: 끝에 \ 포함해야 정확히 제거됨)
	call set "TRIMMED=%%PATH_COMFYUI_CUSTOM_NODES:%PATH_ROOT%=%%"
	REM echo 원본: !PATH_COMFYUI_CUSTOM_NODES!
	REM echo 변환: !TRIMMED!

	echo extra_model_paths.yaml 파일 생성
	(
		echo linsoo:
		echo.    base_path: C:\AI\
		echo.    is_default: true
		echo.    custom_nodes: !TRIMMED!/
		echo.
		echo.    checkpoints: Models/checkpoints/
		echo.    clip: Models/clip/
		echo.    clip_vision: Models/clip_vision/
		echo.    configs: Models/configs/
		echo.    controlnet: Models/control_net/
		echo.    diffusion_models: ^|
		echo.        Models/diffusion_models
		echo.        Models/unet
		echo.    embeddings: Models/embeddings/
		echo.    loras: Models/loras/
		echo.    upscale_models: Models/upscale_models/
		echo.    vae: Models/vae/
		echo.    ipadapter: Models/ipadapter/
		echo.    hypernetworks: Models/hypernetworks/
		echo.    sams: Models/sams/
		echo.    ultralytics: Models/ultralytics/
		echo.    ultralytics_bbox: Models/ultralytics/bbox/
		echo.    ultralytics_segm: Models/ultralytics/segm/
	) > "%FILE_PATH_EXTRA_MODEL%"
	echo 파일이 성공적으로 저장되었습니다: %FILE_PATH_EXTRA_MODEL%
)

REM ---------------------------------------------------------------------------
echo ---------------------------------------------------------------------------
echo 파이썬 체크
set "URL_PYTHON=https://www.python.org/ftp/python/3.12.10/python-3.12.10-embed-amd64.zip"
if not exist "%PATH_PYTHON%" (
	echo [INFO] 파이썬 폴더 없음
	if not exist "%PATH_TEMP_INSTALLER%\python_install.zip" (
		echo [INFO] Python 다운로드 중...
		curl -s -L "%URL_PYTHON%" -o "%PATH_TEMP_INSTALLER%\python_install.zip"
	)
	
	echo [INFO] 파이썬 압축 해제 중...
	mkdir "%PATH_PYTHON%"
	tar -xf "%PATH_TEMP_INSTALLER%\python_install.zip" -C "%PATH_PYTHON%"
	
	echo [INFO] 파이썬 설치 완료: %PATH_PYTHON%
) 

echo ---------------------------------------------------------------------------
echo Git 체크
set "URL_GIT=https://github.com/git-for-windows/git/releases/download/v2.52.0.windows.1/PortableGit-2.52.0-64-bit.7z.exe"
if not exist "%PATH_GIT%" (
	echo [INFO] Git 폴더 없음
	if not exist "%PATH_TEMP_INSTALLER%\Git_install.exe" (
		echo [INFO] Git 다운로드 중...
		curl -s -L "%URL_GIT%" -o "%PATH_TEMP_INSTALLER%\Git_install.exe"
	)
	
	echo [INFO] Git 압축 해제 중...
	mkdir "%PATH_GIT%"
	"%PATH_TEMP_INSTALLER%\Git_install.exe" -y -o"%PATH_GIT%"
	
	echo [INFO] Git 설치 완료: %PATH_GIT%
) 

echo ---------------------------------------------------------------------------
echo ComfyUI 체크
if not exist "%PATH_COMFYUI%\" (
	echo [INFO] ComfyUI 폴더 없음
	mkdir "%PATH_COMFYUI%"
	git.exe clone https://github.com/comfyanonymous/ComfyUI.git "%PATH_COMFYUI%"
	
	echo [INFO] 기타 ComfyUI 버그 방지용 작업
	mkdir "%PATH_COMFYUI%\user"
	REM 빈 comfyui.db 파일 생성
	type nul > "%PATH_COMFYUI%\user\comfyui.db"
	
	echo [INFO] ComfyUI-Manager 설치
	if not exist "%PATH_COMFYUI%\custom_nodes\ComfyUI-Manager" (
		mkdir "%PATH_COMFYUI%\custom_nodes\ComfyUI-Manager"
		git.exe clone https://github.com/Comfy-Org/ComfyUI-Manager.git "%PATH_COMFYUI%\custom_nodes\ComfyUI-Manager"
	)
	
	echo [INFO] ComfyUI 설치 완료: %PATH_COMFYUI%
)

REM 이 파일에서 주석처리를 해지 해야지만 pip 기능이 작동
echo ---------------------------------------------------------------------------
echo python312._pth 파일 수정

set "PTH_FILE=%PATH_PYTHON%\python312._pth"
set "TEMP_FILE=%PTH_FILE%.tmp"
set "COMFY_PATH=..\ComfyUI"

setlocal
	REM 파일 존재 확인
	if not exist "%PTH_FILE%" (
		echo [ERROR] 파일을 찾을 수 없습니다: %PTH_FILE%
		exit /b 1
	)

	set "comfy_exists=false"
	(
		for /f "usebackq delims=" %%A in ("%PTH_FILE%") do (
			set "line=%%A"

			REM '#import site' → 'import site'
			call set "line=%%line:#import site=import site%%"

			REM 중복된 ..\ComfyUI 제거
			if /i "!line!"=="%COMFY_PATH%" (
				set "comfy_exists=true"
				REM 건너뜀 (중복 제거)
			) else (
				echo !line!
			)
		)

		REM 마지막에 ..\ComfyUI 추가
		if "!comfy_exists!"=="false" (
			echo %COMFY_PATH%
		) else (
			REM 중복 제거했으니 다시 추가
			echo %COMFY_PATH%
		)

	) > "%TEMP_FILE%"

	REM 원본 파일 덮어쓰기
	move /Y "%TEMP_FILE%" "%PTH_FILE%" > nul

	echo [DONE] python312._pth 파일 수정 완료: %PTH_FILE%
endlocal

echo ---------------------------------------------------------------------------
echo PIP 설치

if not exist "%PATH_TEMP_INSTALLER%\get-pip.py" (
	echo [INFO] get-pip.py 없음, 다운로드 시작...
	curl -s -L "https://bootstrap.pypa.io/get-pip.py" -o "%PATH_TEMP_INSTALLER%\get-pip.py"
)
"%PATH_PYTHON%\python.exe" "%PATH_TEMP_INSTALLER%\get-pip.py" 
"%PATH_PYTHON%\python.exe" -s -m pip install --upgrade pip setuptools wheel
echo [INFO] PIP 설치 완료



echo ---------------------------------------------------------------------------
echo rocm 설치
"%PATH_PYTHON%\python.exe" -s -m pip install https://repo.radeon.com/rocm/windows/rocm-rel-7.1.1/rocm_sdk_core-0.1.dev0-py3-none-win_amd64.whl
"%PATH_PYTHON%\python.exe" -s -m pip install https://repo.radeon.com/rocm/windows/rocm-rel-7.1.1/rocm_sdk_devel-0.1.dev0-py3-none-win_amd64.whl
"%PATH_PYTHON%\python.exe" -s -m pip install https://repo.radeon.com/rocm/windows/rocm-rel-7.1.1/rocm_sdk_libraries_custom-0.1.dev0-py3-none-win_amd64.whl
"%PATH_PYTHON%\python.exe" -s -m pip install https://repo.radeon.com/rocm/windows/rocm-rel-7.1.1/rocm-0.1.dev0.tar.gz

echo ---------------------------------------------------------------------------
echo torch torchaudio torchvision 설치
"%PATH_PYTHON%\python.exe" -s -m pip install https://repo.radeon.com/rocm/windows/rocm-rel-7.1.1/torch-2.9.0+rocmsdk20251116-cp312-cp312-win_amd64.whl
"%PATH_PYTHON%\python.exe" -s -m pip install https://repo.radeon.com/rocm/windows/rocm-rel-7.1.1/torchaudio-2.9.0+rocmsdk20251116-cp312-cp312-win_amd64.whl
"%PATH_PYTHON%\python.exe" -s -m pip install https://repo.radeon.com/rocm/windows/rocm-rel-7.1.1/torchvision-0.24.0+rocmsdk20251116-cp312-cp312-win_amd64.whl


echo ---------------------------------------------------------------------------
"%PATH_PYTHON%\python.exe" -s -m pip install piexif transformers accelerate


echo ---------------------------------------------------------------------------
echo "%PATH_COMFYUI%\requirements.txt" 설치
"%PATH_PYTHON%\python.exe" -s -m pip install -r "%PATH_COMFYUI%\requirements.txt" 

echo ---------------------------------------------------------------------------
pip list
echo 설치 완료
echo ---------------------------------------------------------------------------
pause

2. Run.cmd

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
chcp 65001 >nul
REM ---------------------------------------------------------------------------
REM 루트를 구함 ex) "c:\AI\"
set "PATH_ROOT=%~dp0"

set "PATH_PYTHON=%PATH_ROOT%ETC\python_embeded"
set "PYTHONHOME=%PATH_PYTHON%"
set "PATH_GIT=%PATH_ROOT%ETC\git"
set "PATH=%PATH_PYTHON%;%PATH_PYTHON%\Scripts;%PATH_GIT%;%PATH_GIT%\cmd;%SystemRoot%\System32;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\"

REM ---------------------------------------------------------------------------
REM 설치시 필요한 파일 저장하는 경로 (인터넷에서 두번 다운 받는거 안하기 위해)
set "PATH_TEMP_INSTALLER=%PATH_ROOT%ETC\TMP_INSTALLER" 
set "USERPROFILE=%PATH_TEMP_INSTALLER%\USERPROFILE"
REM ---------------------------------------------------------------------------
REM 컴피용
set "PATH_COMFYUI=%PATH_ROOT%ETC\ComfyUI"
set "PATH_COMFYUI_USER=%PATH_ROOT%userdata"
set "PATH_COMFYUI_CUSTOM_NODES=%PATH_COMFYUI_USER%\custom_nodes"
set "FILE_PATH_EXTRA_MODEL=%PATH_COMFYUI_USER%\extra_model_paths.yaml"
set "PATH_OUTPUTS=%PATH_ROOT%Outputs"

REM ---------------------------------------------------------------------------
REM comfyui-impact-pack 에서 사용하는거
set "COMFYUI_PATH=%PATH_COMFYUI%
set "COMFYUI_MODEL_PATH=%PATH_ROOT%Models

REM ---------------------------------------------------------------------------
REM 필수 폴더 생성

REM PATH_TEMP_INSTALLER 폴더 생성
if not exist "%PATH_TEMP_INSTALLER%" (
	mkdir "%PATH_TEMP_INSTALLER%"
)

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 컴피 유저 폴더 생성
if not exist "%PATH_COMFYUI_USER%" (
	mkdir "%PATH_COMFYUI_USER%"
)

REM 커스텀 노드 폴더 생성
if not exist "%PATH_COMFYUI_CUSTOM_NODES%" (
	mkdir "%PATH_COMFYUI_CUSTOM_NODES%"
)

REM 모델 체크포인트 폴더 생성
if not exist "%PATH_ROOT%Models\checkpoints" (
	mkdir "%PATH_ROOT%Models\checkpoints"
)

REM 모델 로라 폴더 생성
if not exist "%PATH_ROOT%Models\loras" (
	mkdir "%PATH_ROOT%Models\loras"
)

REM onnx
if not exist "%PATH_ROOT%Models\onnx" (
	mkdir "%PATH_ROOT%Models\onnx"
)
REM sams
if not exist "%PATH_ROOT%Models\sams" (
	mkdir "%PATH_ROOT%Models\sams"
)


REM 결과 파일 폴더 생성
if not exist "%PATH_OUTPUTS%" (
	mkdir "%PATH_OUTPUTS%"
)

REM 변경된 루트 폴더 위치에 맞게 모델파일 경로 변경
if exist "%FILE_PATH_EXTRA_MODEL%" (
    set "EXTRA_MODEL_PATH_LINE=base_path: %PATH_ROOT%"
    powershell -NoProfile -Command ^
        "$file = '%FILE_PATH_EXTRA_MODEL%';" ^
        "$newLine = 'base_path: %PATH_ROOT%';" ^
        "$text = Get-Content -LiteralPath $file -Raw;" ^
        "$text = $text -replace 'base_path: .*', $newLine;" ^
        "$utf8 = New-Object System.Text.UTF8Encoding($false);" ^
        "[System.IO.File]::WriteAllText($file, $text, $utf8)"
)

echo ---------------------------------------------------------------------------
set COMMANDLINE_ARGS=--use-pytorch-cross-attention --output-directory "%PATH_OUTPUTS%" --user-directory "%PATH_COMFYUI_USER%" --extra-model-paths-config "%FILE_PATH_EXTRA_MODEL%" 

"%PATH_PYTHON%\python.exe" -s  "%PATH_COMFYUI%\main.py" %COMMANDLINE_ARGS% 
pause

3. 설치방법

폴더를 하나 만들고

  1. Install.cmd <- 설치
  2. Run.cmd <- 실행

이전처럼 문제가 생기면 근성과 기합 그리고 노력으로 극복하시면 됩니다. (아님 댓글을)

4. 잡썰

며칠전에 공개된 Z-Image Turbo 돌려봤는 5스텝으로 이미지 뽑는데 대충 2분인가 걸리더군요. 요 모델 신기했던게 한글로 프롬프트 작성해도 이해 한다는거 였습니다.

그리고 실존인물도 잘 나옵니다. (트럼푸랑 시진핑 뽑아봤는데 잘나옴 ㅋㅋㅋ)

트럼푸랑 시진핑이 한복입고 명동에서 강남스타일 춤추는거 뽑아보라고 했는데 경복궁 앞에서 양복입고 춤추는거가 나오는게 살짝 아쉬웠습니다.

애니메이션은 일부 유명한 캐릭터는 나오는데 안나오는게 많아서 아마 조만간 저걸로 애니메이션 튜닝이 나올거라 봅니다.

출처 : https://www.amd.com/en/resources/support-articles/release-notes/RN-AMDGPU-WINDOWS-PYTORCH-7-1-1.html


Comments

2의 “AMD rx9070 ROCM 7.1(정식버전)+ComfyUI 포터블 버전”에 대한 답변

  1. Sd 아바타
    Sd

    5060ti가 fp16 1024*1024 9스텝으로 15초라는데…rocm은 아직 갈 길이 멀었네요
    9070xt랑 5070ti 고민중이었는데 마음이 자꾸 기웁니다 ㅠㅠ

    1. Linsoo 아바타

      네.. 지금 당장 쓰기엔 좀 아쉽습니다.
      다만 sdxl 돌릴때 처럼 GPU를 풀로 쓰는게 아니라 듬성듬성 쓰는데 그래서 소비전력도 낮게 나오고 시간도 오래걸리죠. (이 현상이 9070 처음 rocm 지원할때 현상이랑 비슷합니다)

      개인적으로 AI 이미지 생성을 많이 할거 같으면 5070 가시고 게임 가성비 따지시면 9070가는걸 추천드립니다.

답글 남기기

이메일 주소는 공개되지 않습니다. (이름과 이메일은 안써도 됩니다)

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.