취미 기록용 블로그

AMD, Radeon, 780m, rocm, therock, stable-diffusion-webui-reForge 포터블 설치 스크립트

예전에 게시판에서 리포지 개발자가 현생이 바빠서 업데이트 포기한다는 글을 봤는데 (얼마 안된거 같은데…) 최근에 보니 계속 업데이트 하고 있네요. 그래서 TheRock을 적용해서 리포지를 쓸 수 있나 해보고 되길래 여기에 스크립트를 올려 봅니다.


2025년12월21일 추가

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

1. 지원 그래픽카드

일단 therock whl을 만들어주신 분 말에 따르면… gfx110x, gfx1151, gfx1201 카드를 지원한다고 합니다.

  • gfx110x : rx7000번대 그래픽카드 + 780m
  • gfx1151 : Strix Halo (8060s)
  • gfx1201 : rx9000 번대 그래픽카드

하지만 therock이 제가 써본걸로는 9070에서 성능도 안나오고 매우 불안정해서 지원그래픽카드에 나온걸로 안정적으로 쓸 수 있다고는 보장하지 못합니다.

그래서 저는 780m은 거의 완벽(제 기준으로)하게 돌아가서 좀 느려도 9070이 안정화 될때까지는 780m으로 사용하고 있습니다. <- therock이 잘 돌아간다는거지 리포지가 잘된다는 말 아님

2. 버전

리포지 버전은 커밋해시 9086b21542c6160a7f43d6139b47029451ff78d8 입니다.

파이썬 버전은 3.12.10입니다.

Git 버전은 2.51.0입니다.

스크립트가 자동으로 다운 받으니깐 별도로 신경 안써도 되긴 합니다.

3. 폴더구조 (하위폴더는 스크립트가 자동 생성합니다)

폴더 구조는 위와 같고 ETC 폴더는 실행에 필요한 파일이 저장되며 대부분은 Models 폴더와 User 폴더만 신경 쓰시면 될것입니다.

4. 스크립트

스크립트를 드래그 드롭 할거 없이 우측 상단에 Copy 버튼을 누르면 클립보드로 복사가 됩니다.

ㄱ. 0_reforge_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 reForge용
set "PATH_REFORGE=%PATH_ROOT%ETC\reForge"
set "PATH_USER=%PATH_ROOT%User"

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_ROOT%Models" (
	mkdir "%PATH_ROOT%Models"
)

REM 유저 폴더 생성
if not exist "%PATH_USER%" (
	mkdir "%PATH_USER%"
)

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.51.0.windows.1/PortableGit-2.51.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 reForge 체크
if not exist "%PATH_REFORGE%\" (
	echo [INFO] reForge 폴더 없음
	mkdir "%PATH_REFORGE%"
	git.exe clone https://github.com/Panchovix/stable-diffusion-webui-reForge.git "%PATH_REFORGE%"
	echo [INFO] reForge 설치 완료: %PATH_REFORGE%
)

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

setlocal
set "PTH_FILE=%PATH_PYTHON%\python312._pth"
set "TEMP_FILE=%PTH_FILE%.tmp"
set "TMP_PATH=..\reForge"
set "tmp_exists=false"

	REM 파일 존재 확인
	if not exist "%PTH_FILE%" (
		echo [ERROR] 파일을 찾을 수 없습니다: %PTH_FILE%
		exit /b 1
	)
	
	(
		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!"=="%TMP_PATH%" (
				set "tmp_exists=true"
				REM 건너뜀 (중복 제거)
			) else (
				echo !line!
			)
		)

		REM 마지막에 ..\reForge 추가
		if "!tmp_exists!"=="false" (
			echo %TMP_PATH%
		) else (
			REM 중복 제거했으니 다시 추가
			echo %TMP_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 
echo [INFO] PIP 설치 완료

echo ---------------------------------------------------------------------------
echo piexif, numpy 설치..
"%PATH_PYTHON%\python.exe" -s -m pip install piexif numpy==1.26.4 

echo ---------------------------------------------------------------------------
echo TheRock Torch 설치
setlocal
	set "url_therock=https://github.com/scottt/rocm-TheRock/releases/download/v6.5.0rc-pytorch-gfx110x/torch-2.7.0a0+git3f903c3-cp312-cp312-win_amd64.whl"
	for %%F in ("!url_therock!") do (
		set "FILENAME=%%~nxF"
	)

	if not exist "%PATH_TEMP_INSTALLER%\!FILENAME!" (
		echo [INFO] !FILENAME! 없음, 다운로드 시작...
		curl -s -L "%url_therock%" -o "%PATH_TEMP_INSTALLER%\!FILENAME!"
	)
	"%PATH_PYTHON%\python.exe" -s -m pip install "%PATH_TEMP_INSTALLER%\!FILENAME!" 
endlocal

echo ---------------------------------------------------------------------------
echo TheRock Torchaudio 설치
setlocal
	set "url_therock=https://github.com/scottt/rocm-TheRock/releases/download/v6.5.0rc-pytorch-gfx110x/torchaudio-2.6.0a0+1a8f621-cp312-cp312-win_amd64.whl"
	for %%F in ("!url_therock!") do (
		set "FILENAME=%%~nxF"
	)

	if not exist "%PATH_TEMP_INSTALLER%\!FILENAME!" (
		echo [INFO] !FILENAME! 없음, 다운로드 시작...
		curl -s -L "%url_therock%" -o "%PATH_TEMP_INSTALLER%\!FILENAME!"
	)
	"%PATH_PYTHON%\python.exe" -s -m pip install "%PATH_TEMP_INSTALLER%\!FILENAME!" 
endlocal

echo ---------------------------------------------------------------------------
echo TheRock Torchvision 설치
setlocal
	set "url_therock=https://github.com/scottt/rocm-TheRock/releases/download/v6.5.0rc-pytorch-gfx110x/torchvision-0.22.0+9eb57cd-cp312-cp312-win_amd64.whl"
	for %%F in ("!url_therock!") do (
		set "FILENAME=%%~nxF"
	)

	if not exist "%PATH_TEMP_INSTALLER%\!FILENAME!" (
		echo [INFO] !FILENAME! 없음, 다운로드 시작...
		curl -s -L "%url_therock%" -o "%PATH_TEMP_INSTALLER%\!FILENAME!"
	)
	"%PATH_PYTHON%\python.exe" -s -m pip install "%PATH_TEMP_INSTALLER%\!FILENAME!" 
endlocal




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

리포지와 리포지 실행에 필요한 파일 설치 스크립트입니다.

ㄴ. 1_reforge_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 "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 reForge용
set "PATH_REFORGE=%PATH_ROOT%ETC\reForge"
set "PATH_USER=%PATH_ROOT%User"

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_ROOT%Models" (
	mkdir "%PATH_ROOT%Models"
)

REM 유저 폴더 생성
if not exist "%PATH_USER%" (
	mkdir "%PATH_USER%"
)


set COMMANDLINE_ARGS=--models-dir "%PATH_ROOT%Models" --data-dir "%PATH_USER%"  --disable-nan-check --opt-sub-quad-attention
"%PATH_PYTHON%\python.exe" -s "%PATH_REFORGE%\launch.py" %COMMANDLINE_ARGS%

A1111좌의 webui 기반은 실행할때 설치 파일 체크를 해서 없는 경우 설치를 하기 때문에 처음 실행시 오래걸립니다. 기다리다 보면 기본 웹브라우져가 열리면서 리포지 화면이 보일것입니다.

5. 결론

리포지 버그인지 therock 버그인지 vae를 오토로 해놓고 하면 vae 디코딩하다가 죽거나 이미지가 깨집니다. 별도로 sdxl.vae 파일을 구해서 사용해야 합니다.

제가 webui 안쓴지 오래되었고 지금 간단히 찍먹만 해보는데 이것저것 살짝 많이 불안정합니다. 개인적으론 컴피 쓰시는걸 추천드리고.. 가급적이면 엔비디아 글카 사는걸 추천드립니다.


Comments

답글 남기기

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

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