스테이블디퓨전 xformers 오류 - Extention 업데이트 오류 해결 방법
1. 스테이블디퓨전 webUI xformers 오류 해결방법
xformers 기능
스테이블디퓨전 webUI를 로컬 컴퓨터에 설치 이후, xformers 오류가 발생하는 경우가 있습니다. xformers가 무엇인지도 생소하여 당황스러울 수 있습니다. xformers 라이브러리는 엔비디아 GPU에서만 사용할 수 있습니다. xformers 라이브러리의 주요 기능은 이미지 생성 속도를 높이고 VRAM 사용을 줄여 이미지 생성 시간을 단축시키는 역할을 합니다. 엔비디아 Geforce 1000 이상의 GPU를 사용하고 있다면, xformers 기능이 제대로 가동될 수 있도록 하는 것이 효율적입니다.
xformers 오류 해결방법
스테이블디퓨전 실행을 하기 위해 보통 webui-user.bat 파일을 더블클릭하실 겁니다. 그런데 실행화면에서 xformers 설치되지 않았다는 등의 오류 문구를 보실 수가 있는데, 그런 경우 webui-user.bat 파일을 수정 후 재실행하면 해결됩니다. xformers 오류 해결을 위한 webui-user.bat 파일 수정방법은 아래와 같습니다.
- 첫째, webui-user.bat 파일 위에서 마우스 우클릭 -> 더 많은 옵션표시 -> 편집을 누릅니다.
- 둘째, 메모장 화면이 나오면 'set COMMANDLINE_ARGS=' 우측에 '--xformers' 입력합니다.
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS= --xformers
call webui.bat
- 셋째, 저장을 하고 webui-user.bat 재실행하면 xformers 오류 없이 정상 설치됨을 확인할 수 있습니다.
2. 스테이블디퓨전 webUI Extensions 업데이트 오류 해결방법
스테이블디퓨전 webUI를 로컬 컴퓨터에 설치하고, Extentions 화면에서 Check for updates를 눌렀는데, 오류가 발생하여 업데이트를 할 수 없는 경우가 있습니다. 이것은 어떠한 문제로 인하여 git API 변경으로 발생한 문제인데, 아래와 같이 진행하면 오류사항을 해결하고 업데이트할 수 있습니다.
- 첫째, C:\SD\stable-diffusion-webui\modules 폴더로 이동합니다.
- 둘째, Ctrl+F 를 눌러 텍스트 검색으로 해당 부분을 찾아 수정하여 줍니다. 저장 후 재실행하면 해결됩니다.
for fetch in repo.remote().fetch("--dry-run"): -> for fetch in repo.remote().fetch(dry_run=True):
repo.git.fetch('--all') -> repo.git.fetch(all=True)
repo.git.reset('--hard', 'origin') -> repo.git.reset('origin', hard=True)
import os
import sys
import traceback
import time
import git
from modules import paths, shared
extensions = []
extensions_dir = os.path.join(paths.data_path, "extensions")
extensions_builtin_dir = os.path.join(paths.script_path, "extensions-builtin")
if not os.path.exists(extensions_dir):
os.makedirs(extensions_dir)
def active():
return [x for x in extensions if x.enabled]
class Extension:
def __init__(self, name, path, enabled=True, is_builtin=False):
self.name = name
self.path = path
self.enabled = enabled
self.status = ''
self.can_update = False
self.is_builtin = is_builtin
self.version = ''
repo = None
try:
if os.path.exists(os.path.join(path, ".git")):
repo = git.Repo(path)
except Exception:
print(f"Error reading github repository info from {path}:", file=sys.stderr)
print(traceback.format_exc(), file=sys.stderr)
if repo is None or repo.bare:
self.remote = None
else:
try:
self.remote = next(repo.remote().urls, None)
self.status = 'unknown'
head = repo.head.commit
ts = time.asctime(time.gmtime(repo.head.commit.committed_date))
self.version = f'{head.hexsha[:8]} ({ts})'
except Exception:
self.remote = None
def list_files(self, subdir, extension):
from modules import scripts
dirpath = os.path.join(self.path, subdir)
if not os.path.isdir(dirpath):
return []
res = []
for filename in sorted(os.listdir(dirpath)):
res.append(scripts.ScriptFile(self.path, filename, os.path.join(dirpath, filename)))
res = [x for x in res if os.path.splitext(x.path)[1].lower() == extension and os.path.isfile(x.path)]
return res
def check_updates(self):
repo = git.Repo(self.path)
for fetch in repo.remote().fetch(dry_run=True):
if fetch.flags != fetch.HEAD_UPTODATE:
self.can_update = True
self.status = "behind"
return
self.can_update = False
self.status = "latest"
def fetch_and_reset_hard(self):
repo = git.Repo(self.path)
# Fix: `error: Your local changes to the following files would be overwritten by merge`,
# because WSL2 Docker set 755 file permissions instead of 644, this results to the error.
repo.git.fetch(all=True)
repo.git.reset('origin', hard=True)
def list_extensions():
extensions.clear()
if not os.path.isdir(extensions_dir):
return
paths = []
for dirname in [extensions_dir, extensions_builtin_dir]:
if not os.path.isdir(dirname):
return
for extension_dirname in sorted(os.listdir(dirname)):
path = os.path.join(dirname, extension_dirname)
if not os.path.isdir(path):
continue
paths.append((extension_dirname, path, dirname == extensions_builtin_dir))
for dirname, path, is_builtin in paths:
extension = Extension(name=dirname, path=path, enabled=dirname not in shared.opts.disabled_extensions, is_builtin=is_builtin)
extensions.append(extension)
스테이블 디퓨전 한글 적용 및 Civitai-Helper 트리거워드 사용방법
스테이블 디퓨전 한글 적용 및 Civitai-Helper 트리거워드 사용방법
이번 포스팅에서는 스테이블 디퓨전에 한글을 적용하는 방법과, Civitai-Helper를 설치하여 모델 이미지도 확인하면서 Trigger Words를 클릭만으로 간편하게 프롬프트에 입력하는 방법을 알아보겠습니
agilewith.com
'Tech' 카테고리의 다른 글
스테이블 디퓨전 webUI ControlNet(컨트롤넷) 모델 설치방법 (0) | 2023.03.22 |
---|---|
넷플릭스 프로필 잠금 PIN 번호(비밀번호) 설정 방법 (0) | 2023.03.19 |
스테이블 디퓨전 한글 적용 및 Civitai-Helper 트리거워드 사용방법 (0) | 2023.03.11 |
스테이블디퓨전 WebUI, ChatGPT API 활용 이미지 생성방법 (0) | 2023.03.11 |
다음 키워드 검색량 조회 쉽게 하는 방법 (0) | 2023.03.04 |
댓글