세상사는 이야기 / 도움이 되었다면 배너 클릭 부탁드려요~ →→→

2026년 5월 29일 금요일

Stable Diffusion WebUI 완벽 한글화 가이드

스테이블 디퓨전(Stable Diffusion) WebUI를 처음 설치하면 모든 메뉴가 영어로 되어 있어 사용하기가 조금 막막할 수 있습니다. 하지만 확장 기능(Extensions)을 통해 클릭 몇 번만으로 완벽한 한글 패치를 적용할 수 있습니다.

특히 많은 분들이 확장 기능 탭에서 한글 패치를 검색해도 나오지 않아 당황하시는데, '숨김 해제'라는 아주 간단한 팁 하나면 1분 만에 해결할 수 있습니다. 그 완벽한 방법을 알기 쉽게 정리해 드립니다!


🚨 주의: 검색해도 'ko_KR'이 안 나오는 이유!

WebUI는 확장 기능 목록이 너무 길어지는 것을 막기 위해, 기본적으로 언어 번역(localization) 관련 기능들을 검색 목록에서 숨기도록 설정되어 있습니다. 따라서 이 숨김 설정을 먼저 풀어주는 것이 핵심입니다!


1단계: 한글 패치 숨김 해제 및 설치하기

  1. WebUI 화면 상단의 [Extensions] 탭을 클릭합니다.
  2. 바로 아래에 있는 [Available] 하위 탭을 선택합니다.
  3. 화면의 주황색 'Load from:' 버튼 바로 위에 있는 Hide extensions with tags: 항목을 찾습니다.
  4. 옆에 있는 여러 체크박스 중 localization이라고 적힌 체크박스를 클릭해서 체크를 해제(빈칸) 해줍니다. (★가장 중요한 핵심 단계)
  5. 이제 주황색 [Load from:] 버튼을 클릭합니다.
  6. 버튼 아래에 검색창(Search)이 나타나면 ko_KR을 입력합니다.
  7. 목록에 ko_KR Localization (또는 a1111-sd-webui-loc-ko_KR)이 나타나면 맨 우측의 [Install] 버튼을 클릭합니다.

※ 설치가 완료되면 버튼 아래에 작게 'Installed into...'라는 메시지가 나타납니다.


2단계: 한글 언어 적용 및 재시작

  1. 설치가 끝났다면, 화면 맨 우측 상단의 [Settings] 탭으로 이동합니다.
  2. 화면 왼쪽의 세로 메뉴 목록에서 [User interface]를 찾아 클릭합니다.
  3. 스크롤을 중간쯤 내려서 Localization (requires restart) 항목을 찾습니다.
  4. 옆에 있는 드롭다운 메뉴(기본값 None)를 눌러 ko_KR을 선택합니다.
  5. 화면 맨 위로 다시 스크롤을 올려서 주황색 [Apply settings] 버튼을 눌러 설정을 저장합니다.
  6. 바로 옆에 있는 [Reload UI] 버튼을 눌러 화면을 새로고침합니다.

🎉 짠! 화면이 깜빡이며 새로고침된 후, 모든 메뉴가 완벽한 한글로 바뀐 것을 확인하실 수 있습니다.

이제 영어의 압박에서 벗어나, 훨씬 편안하고 직관적인 환경에서 여러분만의 멋진 AI 이미지를 자유롭게 생성해 보세요!

🚀 Stable Diffusion WebUI (A1111) 완벽 설치 & 오류 해결 가이드

내 PC에서 프라이빗하게 고품질 AI 이미지를 무제한으로 생성할 수 있는 스테이블 디퓨전(Stable Diffusion) WebUI! 하지만 최근 파이썬 버전 충돌과 공식 저장소 증발 사태가 겹치면서 설치 과정에서 수많은 에러를 뿜어내고 있습니다.

오늘은 AUTOMATIC1111(A1111) 버전의 기본 설치 방법부터, 현재 전 세계 유저들을 괴롭히고 있는 가장 치명적인 2가지 오류의 완벽한 해결책까지 하나로 총정리해 드립니다. 이 글만 순서대로 따라오시면 무조건 설치에 성공하실 수 있습니다!


1. 필수 프로그램 사전 준비

설치를 시작하기 전, 아래 두 가지 프로그램이 PC에 깔려 있어야 합니다.

  • Python 3.10.6: 스테이블 디퓨전과 가장 호환성이 좋은 버전입니다. 파이썬 홈페이지에서 다운로드 후, 설치 창 맨 아래의 "Add Python 3.10 to PATH" 체크박스를 반드시! 선택하고 설치해 주세요.
  • Git (깃): Git 공식 홈페이지에서 Windows용 버전을 다운로드하고, 기본 설정(Next)으로 설치를 마칩니다.

2. 스테이블 디퓨전 기본 설치하기

  1. C드라이브나 용량이 넉넉한 드라이브에 영어 이름으로 된 빈 폴더를 하나 만듭니다. (예: D:\StableDiffusion)
  2. 해당 폴더 안으로 들어가서, 파일 탐색기 상단의 주소창을 클릭하고 cmd를 입력한 뒤 엔터를 치면 검은색 명령 프롬프트 창이 열립니다.
  3. 아래 명령어를 복사해서 붙여넣고 엔터를 칩니다.
    git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
  4. 다운로드가 끝나면 stable-diffusion-webui라는 폴더가 생성됩니다. 그 안으로 들어가서 webui-user.bat (톱니바퀴 아이콘) 파일을 더블 클릭하면 본격적인 설치가 시작됩니다.

※ 주의: 만약 여기서 에러 없이 쭉쭉 설치가 진행되어 Running on local URL: http://127.0.0.1:7860 문구가 뜬다면 당신은 럭키비키! 하지만 요즘은 십중팔구 아래의 에러들을 만나게 됩니다. 당황하지 말고 아래 해결법을 따라오세요.


3. 치명적 오류 ①: Installing clip 무한 에러 (pkg_resources)

🚨 증상

설치 초반 Installing clip 단계에서 멈추더니 ModuleNotFoundError: No module named 'pkg_resources'error: invalid command 'bdist_wheel' 같은 붉은 글씨가 쏟아지며 설치가 튕기는 현상입니다.

🔍 원인

파이썬의 최신 뼈대 도구(setuptools v80 이상)가 업데이트되면서 구버전 파일(pkg_resources)을 통째로 삭제해 버렸습니다. 이 때문에 과거 구조를 쓰는 CLIP 패키지가 조립되지 않아 발생하는 버전 호환성 충돌입니다.

✅ 해결 방법 (명령어 수동 입력)

설치 폴더(stable-diffusion-webui) 주소창에 다시 cmd를 입력해 검은 창을 열고, 아래 3개의 명령어를 순서대로 하나씩 입력(엔터)해 줍니다.

  1. 가상 환경(venv) 켜기: (입력 줄 맨 앞에 (venv)가 생겨야 합니다)
    venv\Scripts\activate
  2. 설치 도구를 구버전으로 강제 다운그레이드:
    pip install setuptools==69.5.1
  3. 파이썬 고립 환경을 무시하고 CLIP 강제 설치:
    pip install https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip --no-build-isolation

Successfully installed clip 문구가 뜨면 성공입니다! 검은 창을 닫고 다시 webui-user.bat를 실행하세요.


4. 치명적 오류 ②: 원본 저장소 증발 및 깃허브 로그인 에러

🚨 증상

기분 좋게 1번 에러를 넘겼는데, 이번엔 뜬금없이 웹 브라우저가 열리며 GitHub 로그인을 요구합니다. 로그인을 안 하면 Repository not found 에러를 뿜으며 튕겨버립니다.

🔍 원인

놀랍게도 스테이블 디퓨전 원작자(Stability AI) 측에서 공식 깃허브 원본 저장소를 숨기거나 지워버렸습니다. 파일 자체가 서버에 없으니 다운로드 프로그램(Git)이 "비공개 파일인가?" 착각하고 로그인 팝업을 띄운 것입니다.

✅ 해결 방법 (백업 미러 서버 사용)

유저들이 만들어둔 백업(Mirror) 주소로 파일을 받아오면 깔끔하게 해결됩니다. 이번엔 venv를 켤 필요 없이, 설치 폴더에서 cmd를 열고 아래 명령어를 길게 한 줄 그대로 복사/붙여넣기 하세요.

git clone https://github.com/w-e-w/stablediffusion.git D:\Work\StableDiffusion\stable-diffusion-webui\repositories\stable-diffusion-stability-ai

⚠️ 매우 중요: 명령어를 치고 다운로드가 진행되는 도중, 또 GitHub 로그인 팝업이 뜬다면 절대 로그인하지 말고 창의 X를 누르거나 Cancel(취소)을 누르세요. 취소를 눌러야 다운로드가 마저 100%까지 완료됩니다.


5. 최종 실행 및 모델 적용하기

여기까지 오셨다면 최악의 에러 고비는 모두 넘겼습니다! 🎉

  1. 열려있는 cmd 창을 모두 닫고, 폴더 안의 webui-user.bat를 다시 실행합니다.
  2. 나머지 필수 파일들이 에러 없이 쭉쭉 다운로드됩니다.
  3. 마지막에 검은 창에 Running on local URL: http://127.0.0.1:7860 문구가 나타나면 설치 성공입니다!
  4. 인터넷 브라우저(크롬 등) 주소창에 저 주소를 복사해 넣으면 드디어 스테이블 디퓨전 WebUI 화면을 만날 수 있습니다.

💡 꿀팁: 멋진 실사나 애니메이션 그림을 뽑고 싶다면 Civitai 같은 사이트에서 체크포인트 모델 파일(.safetensors)을 다운받아 \models\Stable-diffusion 폴더에 넣고 WebUI 왼쪽 위의 새로고침 버튼을 누르면 적용됩니다.

설치하시느라 정말 고생 많으셨습니다. 이제 쾌적한 로컬 환경에서 마음껏 AI 이미지를 생성해 보세요!

2023년 1월 31일 화요일

[WPF] SmtpClient - 5.7.0 Authentication Required

error : The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Authentication Required. Learn more at


WPF로 Gmail을 사용해서 Mail을 보내기 구현중 Error가 발생했다.

- 검색해보니 "보안 수준이 낮은 앱 및 Google 계정"를 사용하라고 하는데 현재 사용할수 없다.

- 다른방법으로 앱비밀번호를 설정해서 사용가능하다.

    Google계정 -> 보안 -> Google에 로그인 -> 앱 비밀번호

비밀번호 생성후 사용하면 된다.

https://support.google.com/accounts/answer/185833#app-passwords






2021년 8월 26일 목요일

Google Play Game Service 연결

Google Play Game Service 연결

Google Play Game Service 로그인을 위해 사용자 인증 정보 추가를 설명한다.


1. Play 게임 서비스 설정

1-1. "Play 게임 서비스" / "설정"  - "Play 게임 서비스 설정"

 - 선택 : "아니요. 게임에서 Google API를 사용하지 않습니다."

 - 게임 이름 : "이름 입력"

 - 우측 하단 "만들기"


1-2. 사용자 인증 정보 "설정"


 - "Google Cloud Platform"링크 또는 설정 상단 "Google Cloud Platform에서 보기"클릭


2. Google Cloud Platform 설정

2.1"Google Cloud Platform"에서 프로젝트가 선택되었는지 확인

"API 및 서비스" / "OAuth 동의 화면" 확인



2.2 "OAuth 동의 화면" / "User Type" - "외부" 선택 "만들기"


2.3 앱 등록 수정

"OAuth 동의 화면" - "앱 등록 수정"
1. "OAuth 동의 화면" 빨간곳 정보 넣고 "저장 후 계속"
2. "범위" 다음
3. "테스트 사용자" 다음
4. "요약" 확인

3. Play 게임 서비스 설정

    "Google Play Console" / "Play 게임 서비스" 

3.1 "사용자 인증 정보" 새로고침



3.2 "사용자 인증 정보 추가"

"사용자 인증 정보" / "사용자 인증 정보 추가"


"사용자 인증 정보 추가 창에서"

유형 : Android

이름 : 게임 이름

불법 복제 방지 사용 : 사용(권장)

"OAuth 클라이언트 만들기" 버튼 선택 후 

"OAuth 클라이언트를 만드는 방법" 팝업 창에서 "OAuth 클라이언트 ID 만들기"링크 클릭

"OAuth 클라이언트를 만드는 방법"



4. Google Cloud Platform 설정
"Google Cloud Platform" ->" OAuth Client ID 만들기"

어플리케이션 유형 :  "Android"


"OAuth 클라이언트를 만드는 방법" 팝업 창에서의 정보를 넣어준다.



5. Play 게임 서비스 설정

"OAuth 클라이언트 새로고침" 후 위에서 만든 "OAuth 클라이언트" 사용자 인증 선택
불법 복제 방지 사용 : 사용(권장)
OAuth 클라이언트 확인 후 오른쪽 하단 "변경사항 저장"


"사용자 인증 정보" 완료


2021년 8월 23일 월요일

[Unity Android] Build - error: unexpected element found in

유니티에서 Plugin 추가 후 빌드 에러가 발생했다.

    유니티 버전 2019.4.29f1


증상

* What went wrong:
Execution failed for task ':launcher:processReleaseResources'.
> Android resource linking failed
C:\Work\DCubeClient\Temp\gradleOut\launcher\build\intermediates\merged_manifests\release\AndroidManifest.xml:42: AAPT: error: unexpected element <queries> found in <manifest>.



빌드된 merged_manifests 파일 확인

C:\Work\DCubeClient\Temp\gradleOut\launcher\build\intermediates\merged_manifests\release\AndroidManifest.xml


해결법

Gradle 버전이 낮아서 생기는 문제로 3.4.0 -> 3.4.3 변경한다.

    참고

    https://stackoverflow.com/questions/62969917/how-to-fix-unexpected-element-queries-found-in-manifest-error


1. BaseGradleTemplate 체크


2. Assets\Plugins\Android\baseProjectTemplate.gradle File 편집

gradle:3.4.0 -> gradle:3.4.3 으로 변경 후 저장

classpath 'com.android.tools.build:gradle:3.4.0' -> classpath 'com.android.tools.build:gradle:3.4.3' ->



baseProjectTemplate.gradle File

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
allprojects {
    buildscript {
        repositories {**ARTIFACTORYREPOSITORY**
            google()
            jcenter()
        }

        dependencies {
            // If you are changing the Android Gradle Plugin version, make sure it is compatible with the Gradle version preinstalled with Unity
            // See which Gradle version is preinstalled with Unity here https://docs.unity3d.com/Manual/android-gradle-overview.html
            // See official Gradle and Android Gradle Plugin compatibility table here https://developer.android.com/studio/releases/gradle-plugin#updating-gradle
            // To specify a custom Gradle version in Unity, go do "Preferences > External Tools", uncheck "Gradle Installed with Unity (recommended)" and specify a path to a custom Gradle version
            classpath 'com.android.tools.build:gradle:3.4.3'
            **BUILD_SCRIPT_DEPS**
        }
    }

    repositories {**ARTIFACTORYREPOSITORY**
        google()
        jcenter()
        flatDir {
            dirs "${project(':unityLibrary').projectDir}/libs"
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}


2021년 8월 13일 금요일

[GoogleAPI] Drive Error : dailyLimitExceededUnreg - 일일 한도 초과 등록 해제

GoogleAPI Drive Error

잘되던 게임이 갑자기 안되어 로그를 확인하니 아래 링크로 보내고 있었다.


2021-08-13 14:41:08.095 6049-6094/com.google.android.gms E/Volley: [269] NetworkUtility.b: Unexpected response code 404 for https://www.googleapis.com/drive/v2internal/files/1JDF7mwSVgpmFLVQgapIgHO0oQPyapndbOO49s8eqbJcJq1mRkxglacJPtjg-JN2k6Bw4HQg?prettyPrint=false&fields=owners(isAuthenticatedUser,picture(url),displayName,permissionId,emailAddress),spaces,webContentLink,lastModifyingUser(isAuthenticatedUser,picture(url),displayName,permissionId,emailAddress),originalFilename,headRevisionId,fileExtension,id,recencyReason,folderColorRgb,version,webViewLink,indexableText(text),editable,gplusMedia,quotaBytesUsed,properties(key,value,appId,visibility),writersCanShare,sharedWithMeDate,explicitlyTrashed,shared,authorizedAppIds,parents(isRoot,id),thumbnailLink,creatorAppId,modifiedByMeDate,labels(restricted,trashed,starred,viewed),appDataContents,md5Checksum,localId(value,space,version),thumbnail(mimeType,image),ownerNames,sharingUser(isAuthenticatedUser,picture(url),displayName,permissionId,emailAddress),copyable,modifiedDate,userPermission(id,role,withLink,domain,name,additionalRoles,value,type,emailAddress,photoLink),etag,recency,createdDate,alternateLink,mimeType,lastViewedByMeDate,folderFeatures,description,title,fileSize,downloadUrl,embedLink,subscribed&acknowledgeAbuse=false&allProperties=true&fileScopeAppIds=848143016023&updateViewedDate=false


링크의 에러

{"error":{"errors":[{"domain":"usageLimits","reason":"dailyLimitExceededUnreg","message":"Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.","extendedHelp":"https://code.google.com/apis/console"}],"code":403,"message":"Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."}}

API 할당량을 늘려주면 해결된다.
Google Cloud Platform -> 할당량 -> 할당량 수정 -> 전체


2021년 3월 16일 화요일

[Unity Android] Unity 2019.x multi Dex 64k 해결법


Unity 2019.x multi Dex 64k 해결법

Unity 2019 버전으로 넘어오면서 기능이 바뀌여 다른 방식으로 해야 한다.


해결 방법

"Edit" -> "Player Settings" -> "Player"탭 -> "Publishing Settings" -> "Custom Launcher Gradle Template" 체크 후 생성된 파일을 수정한다.

  • Assets\Plugins\Android\launcherTemplate.gradle



Assets\Plugins\Android\launcherTemplate.gradle 파일에 아래 줄 추가
defaultConfig {
    multiDexEnabled true // 추가

}


// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN

apply plugin: 'com.android.application'

dependencies {
    implementation project(':unityLibrary')
}

android {
    compileSdkVersion **APIVERSION**
    buildToolsVersion '**BUILDTOOLS**'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        minSdkVersion **MINSDKVERSION**
        targetSdkVersion **TARGETSDKVERSION**
        multiDexEnabled true
        applicationId '**APPLICATIONID**'
        ndk {
            abiFilters **ABIFILTERS**
        }
        versionCode **VERSIONCODE**
        versionName '**VERSIONNAME**'
    }

    aaptOptions {
        noCompress = ['.unity3d', '.ress', '.resource', '.obb'**STREAMING_ASSETS**]
        ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
    }**SIGN**

    lintOptions {
        abortOnError false
    }

    buildTypes {
        debug {
            minifyEnabled **MINIFY_DEBUG**
            useProguard **PROGUARD_DEBUG**
            proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG**
            jniDebuggable true
        }
        release {
            minifyEnabled **MINIFY_RELEASE**
            useProguard **PROGUARD_RELEASE**
            proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG**
        }
    }**PACKAGING_OPTIONS****SPLITS**
    **BUILT_APK_LOCATION**
    bundle {
        language {
            enableSplit = false
        }
        density {
            enableSplit = false
        }
        abi {
            enableSplit = true
        }
    }
}**SPLITS_VERSION_CODE****LAUNCHER_SOURCE_BUILD_SETUP**

2021년 3월 10일 수요일

[Unity] Custom Packages 만들기

Custom Packages 만들기

https://docs.unity3d.com/kr/current/Manual/CustomPackages.html


회사에 팀끼리의 Lib를 공유할일이 생겨 Custom Package를 사용하려고 한다.

아래 Package 생성과정을 정리한다.


내장된 패키지 새로 만들기 - 직접 프로젝트에 만들어서 사용할때


생성 Project/Packages 폴더에 새로운 폴더를 생성

생성 폴더아래 package.json 파일을 만든다.



패키지 매니페스트 편집(package.json 파일)

설명은 유니티 docs 참고

https://docs.unity3d.com/kr/current/Manual/upm-manifestPkg.html

{
  "name": "com.graivity.lab",
  "version": "0.0.1",
  "displayName": "Graivity SDK",
  "description": "Graivity Common SDK Package",
  "unity": "2018.4",
  "unityRelease": "0b4",
  "dependencies": {
  },
  "keywords": [
    "Graivity",
    "Common"
  ],
  "author": {
    "name": "Deukhyun Han",
    "email": "gravity@gravityneocyon.com",
    "url": "https://www.gravityneocyon.com"
  }
}


유니티를 재 시작하고  Package Manager를 열면 내가 만든 Package가 생성되어 있다.



새로운 로컬 패키지 만들기 - Package 파일로 공유할때

생성 Project/Assets 폴더아래 package.json 파일을 만든다.

패키지 매니페스트 편집(package.json 파일)

위 참고


다른 프로젝트에서 Custom Package 로드
Window/Package Manager/Add package from disk


Package.jon 선택


확인




2021년 2월 8일 월요일

[Unity] Package Manager - Use Google API

 Unity Google API를 사용하는 방법은 2가지가 있다.


 1. Package를 다운받아서 설치하는 방법

 2. Unity Package Manager에서 추가하는 방법


https://docs.unity3d.com/2019.4/Documentation/Manual/upm-scoped.html

2번을 설명하겠다.


2020.05.19 종료

2021년 1월 22일 금요일

[Unity] Error while downloading Asset Bundle: CRC Mismatch

에셋번들 패치 후 아래 에러가 발생했다.

2021-01-20 09:27:04.507 13273-19108/? E/Unity: Error while downloading Asset Bundle: CRC Mismatch. Provided 55c7e683, calculated 3ce95af1 from data. Will not load AssetBundle 'http://192.0.0.1/Android/Android_1/font.unity3d'

나의 경우 유니티 버전을 올려서 에러가 발생했다.

유니티버전을 올리고 빌드를 진행하면 파일 앞부분의 버전도 올라가게 된다.

이전 유니티 버전으로 다시 에셋번들을 만들어서 패치해도 에러가 발생..

캐쉬를 지워주는 기능을 만들어야할듯하다.

이전 버전으로 돌리고 에셋번들을 빌드하면 바뀐 파일들이 보인데.

해당파일을 패치파일로 업로드한다.


그래도 변경되지 않는다면 해당 에셋데이터를 건들고(Active or 좌표 1.0001변경등) 다시 에셋번들을 뽑는다.


이전 에셋번들데이터를 "font.unity3d" 데이터 확인

UnityFS 5.x.x 2018.4.21f1 ` A [ C  ? D€ ? A   ? CAB-a6422a952d839.....

패치된 에셋번들데이터를 "font.unity3d" 데이터 확인

UnityFS 5.x.x 2018.4.29f1 ` A [ C  ? D€ ? A   ? CAB-a6422a952d839......


유니티 포럼에서는 항상 같은 버전의 유니티에서 에셋번들을 만들라고 하고 있다.