반응형

https://civitai.com/models/22530

 

[Guide] Make your own Loras, easy and free - colabs | Stable Diffusion Other | Civitai

You don't need to download anything, this is a guide with online tools. Click "Show more" below. 🏭 Preamble Even if you don't know where to start o...

civitai.com

원본 글은 22년 03월 22일 마지막으로 수정되었습니다
따라서 원본의 내용이 이 글의 내용과 약간 다를수도 있습니다

 

시작하기에 앞서

필요한 것들

LoRA 만들기

LoRA의 종류

1단계: 데이터셋 만들기

2단계: 설정과 학습

3단계: 테스트

 

반응형

 

시작하기에 앞서

어디서부터 해야할지 모르거나 고성능 컴퓨터가 없더라도 로라 만드는 방법을 알려드릴 수 있습니다!

 

이 가이드에서는 제 깃헙(GitHub) 페이지의 리소스를 사용하겠습니다. 스테이블 디퓨전을 처음 사용하는 경우 이미지를 직접 생성하고 유용한 도구를 배울 수 있는 전체 가이드도 준비되어 있습니다.

 

제 취미와 그 취미에 쏟는 노력을 공유하는 기쁨을 위해 이 가이드를 만들고 있습니다. 필자는 이미지 생성 소프트웨어를 포함한 모든 정보가 모든 사람에게 무료로 제공되어야 한다고 생각합니다. 하지만 AI를 이용해 사람들을 속이거나 사기를 치거나 불법 행위를 하는 것을 지지하지 않습니다. 저는 그냥 재미로 하는 것입니다.

 

또한 홀로라이브(Hololive) 로라를 수집하는 페이지도 있습니다.

 

필요한 것들

  • 인터넷 연결
    (탭이 닫히는 것을 방지할 수 있다면 휴대폰에서도 작업할 수 있습니다)
  • 로라가 무엇이고 어떻게 사용하는지에 대한 지식
  • 인내심
    새로운 개념을 쉽게 설명하도록 노력하겠습니다. 주의 깊게 읽고 비판적 사고를 사용해 문제가 생기더라도 포기하지 마십시오.

 

LoRA 만들기

어렵기로 소문나 있습니다. 옵션이 너무 많고 어떤 기능을 하는지 설명하는 글도 없으니까요. 이 글은 누구나 1시간 이내에 아무것도 모르는 상태에서 나만의 LoRA를 만들 수 있도록 과정을 간소화 했습니다. 나중에 사용할 수 있는 몇가지 고급 설정은 그대로 유지하면서요.

 

물론 6GB 이상의 VRAM이 있는 엔비디아 그래픽카드가 있다면 독자의 컴퓨터에서 LoRA를 학습시킬 수 있습니다. 그러나 이 가이드에서는 그렇게 하지 않고 구글의 고성능 컴퓨터와 그래픽카드를 하루에 몇시간(몇몇은 주당 20시간이라 함) 대여할 수 있는 구글 코랩(Google Colab) 을 사용해보겠습니다. 10달러를 결제하면 최대 50시간까지 추가로 이용할 수 있지만 필수 사항은 아닙니다. 또한 구글 드라이브의 저장 용량도 약간 사용하게 됩니다.

 

이 글은 애니메이션 위주로 설명하지만 실사 사진에도 적용됩니다. 하지만 실제 사람의 얼굴을 무단으로 사용하는 경우에는 도움을 드리지 않습니다.

 

LoRA의 종류

아시는것처럼 LoRA는 아래의 용도로 학습, 사용할 수 있습니다.

  • 캐릭터나 인물
  • 스타일
  • 자세나 컨셉
  • 그 외

하지만 지금은 다양한 종류의 LoRA가 있습니다.

  • LoRA: 고전적입니다. 아무 문제 없이 WEBUI에서 사용할 수 있습니다.
  • LoCon: 더 많은 학습 레이어가 있으며 그림체에 좋은 것으로 알려졌습니다. WEBUI에서 일반 LoRA처럼 사용하려면 Lycoris 확장 프로그램이 필요합니다.
  • LoHa: 더 많은 학습 레이어와 새로운 수학적 알고리즘이 있습니다. 학습하는데 훨씬 오랜 시간이 걸리지만 스타일과 캐릭터와 같은 복잡한 것을 동시에 학습할 수 있습니다. 필자는 추천하지 않습니다. 일반 LoRA처럼 사용하려면 WEBUI에 Lycoris 확장 프로그램이 필요합니다.

 

1단계: 데이터셋 만들기

이것은 LoRA를 만드는데 있어서 가장 길고 중요한 부분입니다. 데이터셋은 이미지와 그 설명의 모음으로 각 쌍은 동일한 파일 이름(1.png, 1.txt) 을 가지며, 모두 AI가 학습하기를 원하는 공통점을 갖고 있습니다. 데이터셋의 품질은 중요합니다. 이미지에는 자세, 각도, 배경, 옷 등의 예시가 2개 이상 있어야 합니다. 예를 들어서 모든 이미지가 얼굴 근접샷이면 몇가지 예시를 추가하지 않으면 LoRA가 전신샷을 생성하는데 어려울 수도 있습니다(생성하는것이 가능은 합니다). 더 다양한 이미지를 추가하려면 개념을 더 잘 이해할 수 있으므로 AI가 학습 데이터에 없던 새로운 것을 생성해 낼 수 있습니다. 예를 들어서 새로운 자세와 다른 옷을 입은 캐릭터가 나올 수 있습니다. 최소 5개의 이미지로 평범한 LoRA를 학습시킬 수 있지만 20개 이상, 최대 1,000개 까지 사용하는 것을 권장합니다.

 

일반적인 이미지의 경우 "full body photograph of a woman with blonde hair sitting on a chair" 와 같이 짧고 자세한 문장이 필요합니다. 애니메이션의 경우 booru 태그(1girl, blonde hair, full body, on chair, 그 외) 를 사용해야 합니다. 데이터셋에서 태그가 어떻게 작동하는지 보겠습니다. LoRA는 학습에 사용하는 기본 모델을 사용하여 무슨 일이 일어나고 있는지 참조하므로 상세하게 알려줘야 합니다. 태그에 포함하지 않은것들은 모두 LoRA의 일부가 됩니다. LoRA는 얼굴이나 액세서리 등 말로 쉽게 설명할 수 없는 디테일을 흡수하기 때문입니다. 이 사실을 알면 모든 텍스트 파일의 시작 부분에 있는 고유한 단어나 문구인 활성화 태그(activation tag) 에 이러한 세부 정보를 포함시켜 LoRA가 쉽게 메시지를 표시하도록 할 수 있습니다.

 

온라인에서 이미지를 수집하고 수동으로 설명할 수 있습니다. 다행히도 새로운 데이터셋 제조기 코랩을 사용하면 이 과정의 대부분을 자동으로 할 수 있습니다.

 

아래는 사용 방법입니다.

 

  1. 설정: 이 작업은 구글 드라이브에 연결됩니다. 프로젝트의 간단한 이름과 원하는 폴더를 선택한 다음 왼쪽에 있는 재생 버튼을 눌러 셀을 실행합니다. 권한을 묻는 창이 나오면 Google Drive에 연결 → 계정 선택 → 허용을 눌러줍니다.
    • 학습할 이미지를 갖고 있다면 구글 드라이브에 Loras/[프로젝트_이름]/dataset 폴더에 이미지를 업로그 하면 3단계부터 하면 됩니다.
  2. Gelbooru에서 이미지 모으기: 애니메이션의 경우 많은 짤들을 사용하여 LoRA를 학습시킵니다. Gelbooru는 이미지에 대한 모든 것을 설명하는 수천개의 booru 태그를 통해 이미지를 분류하며 나중에 이미지에 태그를 지정하는 방법입니다. 이 단계에서는 기본적으로 컨셉, 캐릭터, 스타일을 나타내는 특정 태그가 포함된 이미지를 요청하는 것이 좋습니다. 이 셀을 실행하면 결과가 표시되고 계속할 것인지 묻는 메시지가 표시됩니다. 결과가 마음에 들면 네(Yes) 라고 입력하고 이미지가 다운로드 될 때 까지 잠시 기다립니다.
  3. 이미지 선별 작업: Gelbooru에는 중복된 이미지가 많기 떄문에 FiftyOne AI를 사용해 중복된 이미지를 감지해서 삭제할 수 있도록 표시할겁니다. 이 셀은 실행하면 몇 분 정도 걸립니다. 하지만 아직 삭제되지 않고 셀 아래에 모든 이미지를 격자로 표시하는 대화형 영역이 나타납니다. 여기서 마음에 들지 않은 이미지를 선택하고 삭제하도록 표시할 수 있습니다. 품질이 낮거나 관련 없는 이미지가 있는 경우에는 삭제하는 것이 좋습니다. 모든 작업을 마쳤으면 대화형 영역 위의 텍스트 상자에 Enter 키를 눌러 변경 사항을 적용해줍니다.
  4. 이미지에 태그 달기:이미지를 설명하는 애니메이션 태그를 할당하는데는 WD 1.4 tagger AI를 사용하고 실사나 기타 이미지에 대한 캡션은 BLIP AI를 사용하면 됩니다. 이 작업은 몇 분 정도 소요됩니다. threshold 값을 0.35 ~ 0.5 정도로 설정하면 좋은 결과를 얻을 수 있습니다. 이 셀을 실행하면 데이터셋에서 가장 일반적인 태그가 표시되며 다음 단게에서 유용하게 사용할 수 있습니다.
  5. 태그 선별: 이 과정은 애니메이션 태그에 대해서 매우 유용합니다. 여기에서는 LoRA에 대한 activation tag(또는 트리거 워드, trigger word) 을 지정할 수 있습니다. 스타일을 학습하는 경우 LoRA가 항상 활성화 되도록 activation tag가 필요하지 않을수도 있습니다. 캐럭터를 학습하는 경우 신체의 특징이나 머리카락, 눈 색깔과 같이 캐릭터의 고유한 공통 태그를 삭제(가지치기) 하는 경향이 있습니다. 이렇게 하면 activation tag에 흡수됩니다. 이 과정을 하면 LoRA의 프롬프트를 사용하는 것이 더 쉽지만 유연성은 떨어집니다. 몇몇 사람들은 캐릭터 의상을 정의하는 단일 태그를 갖기 위해 모든 의상을 가지치기하는 경향이 있습니다. 과도한 가지치기는 일부 디테일에 영향을 미치므로 권장하지 않습니다. 보다 유연한 접근 방식은 'striped shirt, vertical stripes, vertical-striped shirt' 와 같은 중복이 있는 태그를 모두 'striped shirt' 태그로 병합하는 것입니다. 이 단계는 원하는 만큼 여러번 실행할 수 있습니다.
  6. 준비: 데이터셋은 구글 드라이브에 저장됩니다. 이 데이터셋으로 원하는 모든 작업을 할 수 있지만 이 글의 다음 단계로 이동하여 LoRA 학습을 시작해 보도록 하겠습니다!

 

2단계: 설정과 학습

이 부분이 까다롭습니다. LoRA를 학습시키기 위해 제 LoRA 학습 코랩을 사용하겠습니다. 필요한 모든 설정이 포함된 단일 셀로 구성되어 있습니다. 이런 설정 중 대부분은 변경할 필요가 없습니다. 하지만 이 글에 있는 코랩에서 각 설정이 어떤 기능을 하는지 설명해 드리니 나중에 이 설정들로 활용할 수 있습니다.

 

설정은 아래와 같습니다.

 

  • Setup: 1단계에서 사용한 것과 동일한 프로젝트 이름을 이름을 입력하면 자동으로 적용됩니다. 여기에서 학습을 위한 기본 모델을 변경할 수 있습니다. 기본 모델은 2가지가 권장되지만 원하는 경우 사용자가 직접 다운로드 링크를 추가해서 사용할 수 있습니다. 데이터셋 생성시 사용할 때 지정한 폴더 경로를 동일하게 사용하면 됩니다.
  • Processing: 데이터셋의 처리 방식을 변경하는 설정은 아래와 같습니다.
    • 해상도는 512로 설정해야 하며 이는 스테이블 디퓨전의 기본값입니다. 해상도를 높이면 학습 속도가 훨씬 느려지지만 정밀한 디테일을 표현하는데 도움됩니다.
    • flip_aug는 더 많은 이미지가 있는 것처럼 더 고르게 학습시키는 트릭이지만 AI가 좌우를 헷갈리게 만들 수 있으므로 사용자가 선택해야 합니다.
      번역자의 추가 설명: 캐릭터를 학습시키는 경우 좌우 대칭이 아닌 경우(머리 한 쪽에만 장식이 있는 경우 등) 에는 해당 설정을 사용하지 말아야 합니다.
    • 애니메이션 태그를 사용하는 경우 shuffle_tags를 활성화 해둬야지 프롬프트가 더 유연해지고 편향성을 줄일 수 있습니다.
    • 활성화 태그(activation_tags) 는 중요하므로 이 글의 데이터셋 부분에서 추가한 경우 1로 설정하세요. 이것을 keep_tokens라고도 합니다.
  • Steps: 여기에서 주의해야 할 점이 있습니다. 이미지 수, 반복 횟수(repeats), 에폭 수(epochs), 배치 크기(batch size) 등 4가지 변수가 작용합니다. 이런 변수에 따라 총 단계가 결정됩니다.

    총 에폭 또는 최종 단계를 설정하도록 선택할 수 있으며 아래에서 몇 가지 예시를 보겠습니다. 단계가 너무 적으면 LoRA가 덜 학습되어서 쓸모 없고 단계가 너무 많으면 이미지가 왜곡됩니다. 그렇기 때문에 LoRA를 에폭마다 저장하여 나중에 비교하고 결정할 수 있도록 합니다. 따라서 반복 횟수를 줄이고 에폭 값을 늘리는 것이 좋습니다.

    LoRA를 학습시키는 방법에는 여러가지가 있습니다. 필자 개인적으로 하는 방법은 빠르게 학습할지, 천천히 학습할지 여부에 따라 10~20개의 에폭 중에서 선택할 수 있도록 에폭의 균형을 맞추는데 중점을 둡니다. 또한 일반적으로 이미지가 많을수록 안정화 단계가 더 많이 필요하다는 것을 알게 되었습니다. 새로운 min_snr_gamma 옵션 덕분에 LoRA를 학습시키는데 걸리는 에폭이 줄어들었습니다. 아래는 시도해 볼 수 있는 몇 가지 설정들입니다.
    • 20 이미지 * 10 반복 횟수 / 2 배치 크기 = 1,000 학습
    • 100 이미지 * 3 반복 횟수 / 2 배치 크기 = 1,500 학습
    • 400 이미지 * 1 반복 횟수 / 2 배치 크기 = 2,000 학습
    • 1,000 이미지 * 1 반복 횟수 / 3 배치 크기 = 3,300 학습
  •  Learning: 가장 중요한 설정입니다. 하지만 이 중 어떤 것도 처음부터 변경할 필요는 없습니다.
    • unet learning rate는 LoRA가 정보를 얼마나 빨리 흡수하는지를 결정합니다. 스텝 수와 마찬가지로 너무 적으면 LoRA는 아무것도 하지 않고 너무 크면 생성하는 모든 이미지가 왜곡됩니다. 특히 프롬프트에서 LoRA의 가중치를 변경할 수 있기 때문에 작업 값에 유연한 범위가 있습니다. dim 값을 8~32 사이로 설정한다 가정하면(아래 참조 바람) 거의 모든 상황에서 unet learning rate는 5e-4를 권장합니다. 천천히 학습시키고 싶다면 1e-4, 2e-4가 더 좋을겁니다.
    • text encoder learning rate은 특히 스타일에서 덜 중요합니다. 태그를 더 잘 학습하는데 도움이 되지만 태그가 없어도 학습이 되기 떄문입니다. 일반적으로 unet learning rate의 1/2 또는 1/5이어야 하고 권장 값은 1e-4, 5e-5입니다.
    • scheduler는 시간이 지남에 따라 학습 속도를 조절해 줍니다. 이것이 중요하지는 않지만 도움이 됩니다. 필자는 항상 cosine with 3 restarts을 사용하는데 개인적으로 LoRA를 잘 학습시키는것 같습니다. cosine, constant, and constant with warmup들도 한번 사용해보세요. 이들이 잘못되는 일은 없습니다. 또한 warmup ratio는 학습을 효율적으로 시작하는데 도움이 되며 기본값인 5%가 잘 작동합니다.
  • Structure: 앞서 설명한 3가지 LoRA 중 원하는 LoRA 유형을 선택하면 됩니다. 개인적으로 캐릭터는 LoRA를, 스타일은 LoCon을 사용하는 것을 추천합니다. LoHa는 학습하기에 어렵습니다.

    dim/alpha는 LoRA의 용량과 스케일링을 의미하며 논란의 여지가 있습니다. 몇 달 동안은 모두가 각각 128이 가장 좋다고 서로에게 알렸는데 그 이유는 이 설정이 디테일이 가장 좋았다는 실험 결과 때문입니다. 그러나 당시에는 dim/alpha를 낮추면 학습률을 높여야 동일한 수준의 디테일을 구현할 수 있다는 사실이 알려지지 않았기 때문에 이런 실험에는 문제가 많았습니다. 이 LoRA 학습 설정은 144MB로 나오기에 안타깝습니다. 필자는 개인적으로 캐릭터에 적합한 설정이고 용량이 18MB 밖에 안되는 16/8을 사용합니다. 현재 권장되는 값은 아래와 같습니다(더 많은 실험 환영).

  • Ready: 이제 LoRA를 학습시킬 이 셀을 실행할 준비가 되었습니다. 사전 준비 작업에는 5분 정도가 걸리고 그 이후로 학습 단계를 합니다. 시간은 1시간이 걸리지 않으며 결과물은 구글 드라이브에 저장됩니다.

 

3단계: 테스트

LoRA 학습을 완료한 뒤에도 테스트해서 제대로 작동하는지를 확인해야 합니다. 
구글 드라이브의 /lora_training/outputs/ 폴더로 이동해서 [프로젝트_이름] 폴더 안에 있는 모든 파일들을 다운로드 하세요. 이 파일들은 각각 학습의 다른 시점에 저장된 다른 LoRA들입니다. 각각 01, 02, 03 등과 같은 숫자가 있습니다.

 

다음은 LoRA를 사용하는 최적의 방법을 찾기 위한 간단한 워크플로입니다.

 

  1. 마지막 LoRA에 0.7~1.0의 가중치로 프롬프트에 입력하고 가이드의 태그 지정 부분에서 본 가장 일반적인 태그 중 일부를 포함하세요. 학습하려고 했던 것과 비슷하거나 유사한 것을 볼 수 있을겁니다. 만족하거나 더 이상 개선할 수 없을 때 까지 프롬프트를 조정하세요.
  2. X/Y/Z 플롯(plot) 을 사용해 서로 다른 에폭을 비교합니다. 이것은 WEBUI의 기본 기능입니다. 아래로 이동해서 Script에서 X/Y/Z plot를 선택하세요. 프롬프트에 첫 번째 에폭의 LoRA를 입력하고 (예를 들어서 <lora:projectname-01:0.7>) 스크립트의 X 값에 '-01, -02, -03 등'을 입력합니다. X 값이 Prompt S/R인지 확인하십시오. 이렇게 하면 프롬프트에서 교체가 수행되어 LoRA의 다른 숫자를 통과하므로 품질을 비교할 수 있습니다. 시간을 절약하려면 먼저 2번째 또는 5번째 마다 비교할 수 있습니다. 보다 공정하게 비교하려면 이미지를 일괄 처리하는 것이 이상적입니다.
  3. 마음에 드는 에폭을 찾았다면 최적의 가중치를 찾아보세요. 이번에는 '0.5>, 0.6>, 0.7>, 0.8>, 0.9>, 1>' 과 같은 X값을 사용해서 X/Y/Z 플롯을 다시 실행합니다. 이렇게 하면 다른 LoRA 가중치로 변경하라는 프롬프트의 일부를 대체할 수 있습니다. 다시 말하지만 일괄적으로 비교하는 것이 좋습니다. 이미지를 왜곡하지 않으면서 최상의 디테일을 구현하는 가중치를 찾고 있습니다. 원하는 경우 2단계와 3단계를 X/Y로 동시에 돌리면 시간이 더 오래 걸리지만 더 확실하게 작업할 수 있습니다.
  4. 마음에 드는 결과물을 찾았다면 축하합니다! 다양한 상황, 방향, 옷 등을 계속 테스트해서 LoRA가 학습 데이터에 없는 창의적인 작업을 할 수 있는지 확인하세요.

마지막으로 잘못되었을 수도 있는 몇 가지 사항들을 알려드립니다.

  • LoRA가 아무것도 하지 않거나 아주 조금만 작동하는 경우에는 학습률을 낮게 설정했거나 더 오래 학습해야 하는 과소적합 상태일 수도 있습니다. 프롬프트 입력에서 실수한 부분은 없는지 확인해보세요.
  • LoRA가 작동은 하지만 원하는 것과 비슷하지 않다면 마찬가지로 충분히 학습되지 않았거나 데이터셋(이미지와 태그) 의 품질이 낮기 때문일 수도 있습니다. 일부 컨셉은 학습하기 훨씬 더 어렵기 때문에 방법을 잘 모르는 경우에는 커뮤니티의 도움을 받는것이 좋습니다.
  • LoRA가 왜곡된 이미지나 아티팩트를 생성하고, 이전 에폭이 도움이 되지 않거나, NaN 오류가 발생하는 경우에는 학습률이나 반복 횟수가 너무 높아서 생기는 과대적합입니다.
  • LoRA가 수행하는 작업이 너무 제한되어 있다면 이를 오버핏이라 합니다. 데이터셋이 너무 적거나 태그가 제대로 지정되지 않았거나 약간 과대적합 되었을 수도 있습니다.
반응형
반응형

https://huggingface.co/hollowstrawberry/stable-diffusion-guide/blob/main/README.md

 

README.md · hollowstrawberry/stable-diffusion-guide at main

X/Y/Z Plot ▲ Capable of generating a series of images, usually with the exact same seed, but varying parameters of your choice. Can compare almost anything you want, including different models, parts of your prompt, sampler, upscaler and much more. You c

huggingface.co

원본 글은 22년 03월 28일 마지막으로 수정되었습니다

따라서 원본의 내용이 이 글의 내용과 약간 다를수도 있습니다

 

소개

구글 코랩

로컬 학습

시작하기

모델

VAE

프롬프트

매개변수 생성

확장 기능

LoRA

LyCORIS

업스케일링

스크립트

X/Y/Z 플롯(Plot)

프롬프트 매트릭스

끝판왕 업스케일러

컨트롤넷(ControlNet)

초심자를 위한 LoRA 학습 방법

 

반응형

 

소개

스테이블 디퓨전은 PC에서 실행할 수 있는 아주 강력한 AI 이미지 생성 소프트웨어입니다. AI의 두뇌와 같은 기능을 하는 '모델'을 사용하며, 누군가가 학습시킨다면 거의 모든것을 만들 수 있습니다. 많이 사용되는 분야는 애니메이션 아트, 포토리얼리즘, 야짤입니다.

 

독자가 만든 이미지는 사용된 모델의 라이선스에 따라 어떤 용도로든 사용할 수 있습니다. 법적 의미에서 '귀하의 것'인지 여부는 현지 법률에 따라 다르며 종종 결정적이지 않습니다. 필자, 스테이블 디퓨전, 스테이블 디퓨전 모델에 관련된 그 누구도 독자가 만드는 모든 것에 대해 책임을 지지 않으며 필자는 불법적이거나 유해한 콘텐츠를 만드는 것이 명시적으로 금지되어 있습니다.

 

이 가이드는 2023년 03월 현재 모범 사례에 대한 최신 정보를 담고 있습니다. AI에서의 일주일은 현실에서의 1년과 같으므로 이 가이드를 읽으실 떄 쯤에도 여전히 유용하길 바랍니다.

 

구글 코랩

스테이블 디퓨전을 사용하는 가장 쉬운 방법은 구글 코랩(Google Colab) 을 이용하는 것입니다. 구글의 컴퓨터를 빌려서 AI를 사용하는데 보통 매일 몇 시간의 시간 제한이 있습니다. 1개 이상의 구글 계정이 필요하며 설정과 결과 이미지를 저장하기 위해 구글 드라이브를 사용합니다.

 

독자의 PC에서 실행하고 싶으면 아래로 내리면 됩니다.

 

  1. 이 페이지를 엽니다.
  2. 상단에 있는 드라이브에 복사를 클릭합니다. 새 창이 열릴 때 까지 기다렸다가 새 창이 열리면 이천 창을 닫습니다. 설정을 저장할 수 있는 여러분만의 코랩이 만들어졌고 이제부터는 구글 드라이브에서 코랩을 열어야 합니다. 원본이 업데이트를 받으면 이 방법대로 해서 독자의 코랩을 교체해야 합니다.
  3. 구성에서 다음의 옵션들을 활성화 합니다: output_to_drive, configs_in_drive, no_custom_theme 다 했으면 Models, VAEs 부분에서 anything_vae, wd_vae, sd_vae 중 하나를 활성화 합니다
  4. 이미 안정적인 배포에 익숙한 경우 custom_urls 텍스트 상자에 원하는 리소스에 대한 링크를 붙여놓을 수 있습니다. 이 가이드의 뒷부분에 몇 가지 링크를 추가할 예정입니다. 링크는 각 파일에 대해 직접 다운로드(civitai, huggingface 추천) 해야하며 쉼표로 구분해야 합니다.
  5. 페이지의 첫 번째 코드 블록에서 시작이라고 표시된 곳의 왼쪽에 있는 재생 버튼(▶)을 누릅니다. 완료될 때 까지 몇분 정도 기다리면 하단에 몇 가지 진행률 메시지가 표시됩니다. 그러면 공개 링크가 생성되며 이 링크를 열어 스테이블 디퓨전을 시작할 수 있습니다. 코랩 탭을 계속 열어두세요! (모바일에서는 코랩 하단에 있는 트릭을 사용해 탭을 계속 열어두십시오)
  6. 기본으로 제공되는 Anything 4.5 모델 덕분에 괜찮은 애니메이션 이미지를 만들 수 있습니다. 하지만 우리는 더 많은 것들을 할 수 있습니다. 이 모든 옵션은 무엇일까요? 시작하려면 아래로 내리면 됩니다.

 

로컬 학습

PC에서 스테이블 디퓨전을 실행하려면 16GB 이상의 RAM, 4GB 이상의 VRAM(권장 8GB) 이 필요합니다. 이 글에서는 윈도우 10/11을 사용하고 엔비디아 그래픽카드 지포스 16, 지포스 20, 지포스 30을 사용하는 경우만 다루겠습니다(지포스 10도 가능). 죄송하게도 AMD, 리눅스, MacOS 사용자의 경우 사용하기가 더 어렵습니다. 하드웨어 요구 사항을 충족하지 않는 경우 의 구글 코랩 방법으로 진행할 수 있습니다.

 

  1. 이 페이지에서 최신 버전을 다운로드 하십시오.
  2. 설치 파일을 실행하여 접근하기 쉬운 위치를 선택한 다음 설치가 완료될 때 까지 기다립니다.
  3. 프로그램을 실행합니다. 몇 가지 옵션이 보일건데 medvram와 xformers를 활성화 해줍니다. 12GB 이상의 VRAM이 있는 경우 medvram은 활성화 하지 않아도 됩니다.
  4. 추가 실행 옵션을 이렇게 설정해줍니다: --opt-channelslast --no-half-vae --theme dark (추가 옵션은 공백으로 구분합니다)
    • GPU가 6GB 이하의 VRAM이 있다면 --opt-split-attention-v1 을 추가 옵션으로 사용하면 VRAM 사용량을 더욱 줄일 수 있습니다.
    • 컴퓨터에서 프로그램을 실행하되 휴대폰과 같은 다른 기기에서 사용하려면 --listen --enable-insecure-extension-access 을 추가 옵션을 사용하세요. 실행 후 동일한 Wi-Fi 네트워크 망에 있는 컴퓨터의 로컬 IP를 이용해 인터페이스에 접근합니다. --gradio-auth name:1234 을 사용해 비밀번호도 추가할 수 있습니다.
    • 사용 가능한 매개변수 전체 목록은 여기에서 확인하세요.
  5. 실행(Launch) 을 클릭하고 인터페이스가 표시된 인터넷 창이 열릴 때까지 기다립니다. 최초 사용시 시간이 걸릴 수 있습니다.
  6. 이제 페이지가 열렸습니다. 독자만의 비공개 웹 사이트입니다. 첫 페이지에서 이미지를 생성할 수 있습니다. 먼저 설정(Settings) 탭으로 이동합니다. 왼쪽에는 설정 부분이 있습니다.
    • 스테이블 디퓨전 부분에서 아래로 내려서 클립 건너뛰기(Clip Skip) 를 1에서 2로 바꿔줍니다. 이렇게 하면 애니메이션 이미지의 경우 더 좋은 이미지가 생성된다고 합니다.
    • 사용자 인터페이스(User Interface) 부분에서 아래로 내려 빠른 설정 목록으로 이동한 뒤 sd_model_checkpoint, sd_vae로 바꿔줍니다.
    • 다시 위로 올려서 큰 주황색의 적용(Apply) 버튼을 누른 뒤 그 옆에 있는 UI 다시 불러오기(Reload UI) 버튼도 눌러줍니다.
  7. 이미지를 생성할 준비가 되었지만 기본 모델만 사용할 수 있습니다. 기껏해봐야 몇 가지 그림만 그릴 수 있을 뿐입니다. 그리고 이 모든 옵션들은 무엇일까요? 시작하려면 아래에서 확인해보세요.

 

시작하기

처음 몇 개의 이미지를 생성하기 전이나 후에 아래 정보를 보고 경험과 결과를 개선하는 것이 좋습니다.
위의 내용대로 했다면 페이지 상단이 아래와 비슷하게 표시되어야 합니다.

여기에서 체크포인트(checkpoint) 와 VAE를 선택할 수 있습니다. 이것들이 무엇이며 어떻게 얻을 수 있는지 보겠습니다. 코랩에도 추가 설정이 있으나 지금은 무시하는 것이 좋습니다.

 

모델

체크포인트라고도 부르는 모델은 특정 유형의 이미지를 생성하기 위해 설계된 AI의 뇌입니다. 많은 옵션들이 있고 대부분은 civitai에 있습니다. 하지만 어떤 것을 선택해야 할까요? 아래는 필자가 추천하는 옵션들입니다.

  • 애니메이션의 경우 7th Heaven Mix는 애니메이션 영화와 비슷한 미학을 제공하고, Abyss Orange Mix 3(아래로 내려서 AOM3 옵션 선택) 는 고급 조명과 더 부드러운 음영의 형태로 더 사실적이고 더 꼴리는 느낌으로 제공합니다. 필자는 이 둘은 Heaven Orange Mix로 합쳤습니다.
  • Abyss Orange Mix 3는 야짤에도 아주 좋지만 인기 있는 Grapefruit도 필요에 따라 사용할 수 있습니다.
  • DreamShaper를 사용한 일반 아트 작업의 경우 창의성 측면에서 발군입니다. 애니메이션이 추가되어 아름답고 독특한 미학을 가진 Pastel Mix도 좋은 평가를 받았습니다.
  • 실사 사진같은것을 원한다면 Deliberate이 좋을겁니다. 거의 모든 작업을 할 수 있고 특히 사진을 찍는듯 합니다. 아주 복잡한 결과입니다.
  • Uber Realistic Porn은 말이 필요 없습니다.

이 가이드에 있는 코랩을 사용하는 경우 파일의 다이렉트 다운로드 링크를 복사해 custom_urls라고 표시된 텍스트 상자에 붙여놓기 합니다. 여러개의 링크는 쉼표로 구분합니다.

 

로컬에서 프로그램을 실행하는 경우 모델은 일반적으로 stable-diffusion-webui/models/Stable-diffusion 폴더에 넣습니다.

 

확장자가 .safetensors인 체크포인트는 안전하지만 .ckpt는 바이러스가 있을수도 있으므로 주의하세요. 또한 모델을 선택할 때 fp16, fp32, pruned 중에서 선택할 수 있습니다. 모두 오차 범위 내에서 동일한 이미지를 생성하므로 용량이 가장 작은 파일(pruned-fp16) 을 선택하면 됩니다. 학습하거나 병합하려면 반대로 용량이 가장 큰 파일을 선택하세요.

 

팁: 새 파일을 수동으로 배치할 때마다 페이지 하단의 UI를 재시작하거나 드롭다운 옆에 있는 🔃버튼을 누르면 됩니다.

 

VAE

대부분의 체크포인트 파일에는 VAE가 내장되어 있지 않습니다. VAE는 '이미지를 사람이 볼 수 있는 형식으로 변환'해주는 작은 별도의 모델입니다. 이 기능이 없으면 색이 시퍼렇고 눈동자가 흐릿해지는 등의 문제가 발생합니다.

 

이 가이드에 있는 코랩을 사용하는 경우 실행하기 전에 선택하라고 말한것처럼 아래의 VAE가 있어야 합니다.

  • anything vae(orangemix vae로도 알려져 있음): 모든 애니메이션 모델에 사용합니다.
  • vae-ft-mse: 스테이블 디퓨전 자체의 최신 버전입니다. 실사 사진 모델 등에 사용됩니다.
  • kl-f8-anime2(와이푸 디퓨전Waifu Diffusion 으로도 알려져 있음): 더 오래되고 더 채도가 높은 결과를 생성합니다. Pastel Mix에서 사용합니다.

VAE 모델은 일반적으로 stable-diffusion-webui/models/VAE 폴더에 넣습니다.

 

이 가이드의 내용을 지금까지 따라하지 않았다면 설정 탭에서 스테이블 디퓨전 부분으로 가서 VAE를 선택해야 합니다.

 

팁: 새 파일을 수동으로 배치할 때마다 페이지 하단의 UI를 재시작하거나 드롭다운 옆에 있는 🔃버튼을 누르면 됩니다.

 

프롬프트

첫번째 탭인 txt2img에서 대부분의 이미지를 생성할겁니다. 여기에서 프롬프트(prompt)와 네거티브 프롬프트(negative prompt)를 볼 수 있을겁니다.
스테이블 디퓨전은 미드저니(Midjourney) 같은 인기있는 이미지 생성 소프트웨어와는 다르게 원하는 것을 그냥 물어볼 수 없습니다. 아주 구체적으로 써야 합니다.
대부분의 사람들은 잘 되는 프롬프트를 찾았고 다른 사람들이 추천하는 것들만 보는 경우가 있습니다. 프롬프트와 네거티브 프롬프트에 대한 필자의 예시를 보여드리겠습니다.

  • 애니메이션
    • 2d, masterpiece, best quality, anime, highly detailed face, highly detailed background, perfect lighting
    • EasyNegative, worst quality, low quality, 3d, realistic, photorealistic, (loli, child, teen, baby face), zombie, animal, multiple views, text, watermark, signature, artist name, artist logo, censored
  • 실사 사진
    • best quality, 4k, 8k, ultra highres, raw photo in hdr, sharp focus, intricate texture, skin imperfections, photograph of
    • EasyNegative, worst quality, low quality, normal quality, child, painting, drawing, sketch, cartoon, anime, render, 3d, blurry, deformed, disfigured, morbid, mutated, bad anatomy, bad art
  • EasyNegative: 위의 네거티브 프롬프트는 이미지를 개선하기 위해 여러가지 나쁜 내용을 인코딩하는 임베딩 또는 '매직 단어'인 EasyNegative를 사용합니다. 그렇지 않으면 아주 많은 네거티브 프롬프트를 써야 합니다.
    • 이 가이드에 있는 코랩을 사용하고 있다면 이미 설치되어 있을겁니다. 다른것을 사용한다면 이 작은 파일을 다운로드 해서 stable-diffusion-webui/embeddings 폴더에 넣은 다음 WebUI 아래로 가서 UI 다시 시작을 눌러주세요. 그러면 해당 단어를 입력할 때 적용됩니다.

EasyNegative를 포함한 이러한 네거티브 프롬프트가 있는 경우와 없는 경우의 비교는 아래에서 확인할 수 있습니다.

위와 같은 '기본 프롬프트'가 표시된 후 원하는 내용을 입력하기 시작할 수 있습니다. 예로 young woman in a bikini in the beach, full body shot 가 있습니다. old, ugly, futanari, furry 등과 같이 싫어하는 다른 용어들을 네거티브 프롬프트에 자유롭게 추가할 수 있습니다.

생성(Generate) 버튼을 눌러 나중에 다시 사용할 수 있도록 프롬프트를 저장할 수 있습니다. 저장💾 버튼을 눌러 이름을 지정합니다. 나중에 스타일 드롭다운을 열어 선택한 다음 📋선택한 스타일을 현재 프롬프트에 적용할 수 있습니다.

 

프롬프트를 쓸 때 중요한 것 중 하나는 강조와 비강조 입니다. 괄호로 무언가를 둘러싸면 결과 이미지에서 해당 부분이 더 강조되거나 가중치가 부여되서 기본적으로 AI에게 해당 부분이 더 중요하다고 알려줍니다. 일반적으로 모든 단어의 가중치는 1이며 (소괄호) 한번마다 1.1이 곱해집니다(중복 사용 가능). 아니면 이런식으로 직접 가중치를 지정할 수도 있습니다: (full body:1.4). 비강조를 하려면 1이하로 설정하면 됩니다. [대괄호]는 가중치가 0.9이지만 더 낮추려면 여전히 소괄호를 써야합니다: (이런 식으로요:0.5)

 

또한 손과 발은 AI가 생성하기 어려운 것으로 유명합니다. 이런 방법을 사용하면 확률이 높아지지만 제대로 만드려면 포토샵, 인페이팅을 통해 수정하거나 컨트롤넷과 같은 고급 기술을 사용해야 할 수도 있습니다.

 

매개변수 생성

시작 페이지의 나머지 매개변수는 아래와 같이 표시됩니다.

  • 샘플링 방법: 이미지를 공식화하는 알고리즘으로 각각 다른 결과를 보여줍니다. 기본값인 Euler a가 가장 좋은 경우가 많습니다. DPM++ 2M Karras, DPM++ SDE Karras의 결과도 좋습니다. 아래에서 비교를 확인해보세요.
  • 샘플링 스텝: 샘플링 스텝은 미리 '계산'된 것이므로 단계가 많다 해서 항상 더 좋은 결과를 얻을 수 있는 것은 아닙니다. 필자는 30 스텝을 사용하지만, 20~50 스텝을 사용해도 일관되게 좋은 결과를 얻을 수 있습니다. 아래에서 비교를 확인해보세요.
  • 너비와 높이: 512x512가 기본값이며 이미지가 왜곡되거나 변형될 수 있으므로 어느 값이던 768을 넘어서는 안됩니다. 더 큰 이미지를 만드려면 Hires fix를 확인하십시오.
  • 배치 수와 배치 크기: 배치 크기는 GPU가 동시에 생성하는 이미지 수로 VRAM에 의해 제한됩니다. 배치 수는 해당 이미지를 반복할 횟수입니다. 배치에는 연속된 시드값이 있으며 시드값에 대한 자세한 내용은 아래에서 확인해보세요.
  • CFG 스케일: '값이 낮을수록 더 창의적인 결과물이 나옵니다'. 7을 사용하는것이 좋지만 4~10도 괜찮습니다.
  • 시드 값: 이미지 생성을 안내하는 숫자입니다. 동일한 프롬프트와 매개변수가 있는 동일한 시드 값은 작은 세부 사항과 일부를 제외하고는 매번 동일한 이미지를 생성합니다.

Hires fix: Lets you create larger images without distortion. Often used at 2x scale. When selected, more options appear:

  • Upscaler: The algorithm to upscale with. Latent and its variations produce creative and detailed results, but you may also like R-ESRGAN 4x+ and its anime version. More explanation and some comparisons further down ▼.
  • Hires steps: I recommend at least half as many as your sampling steps. Higher values aren't always better, and they take a long time, so be conservative here.
  • Denoising strength: The most important parameter. Near 0.0, no detail will be added to the image. Near 1.0, the image will be changed completely. I recommend something between 0.2 and 0.6 depending on the image, to add enough detail as the image gets larger, without destroying any original details you like.

Others:

  • Restore faces: May improve realistic faces. I never need it with the models and prompts listed in this guide as well as hires fix.
  • Tiling: Used to produce repeating textures to put on a grid. Not very useful.
  • Script: Lets you access useful features and extensions, such as X/Y/Z Plot ▼ which lets you compare images with varying parameters on a grid. Very powerful.

Here is a comparison of a few popular samplers and various sampling steps:

 

An explanation of the samplers used above: Euler is a basic sampler. DDIM is a faster version, while DPM++ 2M Karras is an improved version. Meanwhile we have Euler a or "ancestral" which produces more creative results, and DPM++ 2S a Karras which is also ancestral and thus similar. Finally DPM++ SDE Karras is the slowest and quite unique. There are many other samplers not shown here but most of them are related.

 

확장 기능

스테이블 디퓨전 WebUI는 확장 기능을 지원합니다. 확장(Extensions) 탭으로 이동한 다음 URL에서 설치(Install)로 이동해 여기에 있거나 다른곳에서 가져온 링크를 붙여넣기 해서 추가할 수 있습니다. 그런 다음 설치를 누르고 완료될 때 까지 기다립니다. 설치됨(Installed) 부분으로 이동해 적용(Apply) 를 누르고 UI를 다시 불러옵니다.

아래는 몇 가지 유용한 확장 기능들입니다. 이 가이드에 있는 코랩을 사용중이라면 대부분을 사용해 본 것들이겠지만 위의 2개는 직접 추가해서 사용하는 것을 추천합니다.

  • 이미지 브라우저(Image Browser) - 과거에 생성된 이미지를 매우 효율적으로 탐색할 수 있을 뿐만 아니라 해당 이미지의 프롬프트와 매개변수를 txt2img, img2img 등으로 보낼 수 있습니다.
  • 태그 완성(TagComplete) - 애니메이션 그림체에 필수적인 기능입니다. 입력할 떄 일치하는 부루(booru) 태그를 보여줍니다. 애니메이션 모델은 부루 태그를 통해 작동하며, 부루 태그가 없는 프롬프트는 일반적으로 작동하지 않으므로 부루 태그를 알고 있다는 것은 엄청난 것입니다. 하지만 모든 태그가 모든 모델에서 잘 작동하는 것은 아니고 드물게 나오는 태그는 더더욱 잘 작동하지 않습니다.
  • Locon - Locon과 LoHa를 사용할 수 있습니다. 자세한 내용은 아래에서 확인해보세요.
  • 컨트롤넷 - 자체 가이드가 필요할 정도로 큰 확장 기능입니다. 모든 이미지를 분석해 자신의 이미지에 대한 참조로 사용할 수 있습니다. 실제로 원하는 포즈나 환경을 만들 수 있습니다.
  • 끝판왕 업스케일러(Ultimate Upscale) - img2img 부분에서 아주 큰 이미지를 만드는데 사용하는 확장 기능으로 일반적으로 VRAM이 허용하는 최대 크기까지 만들 수 있습니다. 자세한 것은 아래에서 확인해보세요.
  • 투 샷(Two-shot) - 일반적으로 같은 이미지에 둘 이상의 캐릭터를 만들 수 없습니다. 이 확장 기능을 사용하면 이미지의 전체, 왼쪽, 오른쪽 부분으로 분할해 두 캐릭터가 있는 이미지를 만들 수 있습니다.
  • 동적 프롬프트(Dynamic Prompts) - 이미지에서 무작위로 선택된 요소 등을 생성할 수 있는 확장 기능입니다.
  • 모델 변환기(Model Converter) - safetensors. fp16, no-ema를 선택하여 대부분의 4GB, 7GB 모델을 2GB로 변환할 수 있습니다. 이러한 가지치기된(pruned) 모델은 풀(full) 모델과 '거의 동일하게' 작동합니다. 즉 수학적인 이유로 인해 눈에 띄는 차이가 없습니다. 요즘에는 대부분의 모델들이 2GB로 나옵니다.

 

LoRA

LoRA(Low-Rank Adaptation) 는 엑스트라 네트워크의 한 형태이며 전체 모델에 일종의 작은 모델을 추가할 수 있는 최신 기술입니다. 앞서 살펴본 임베딩과 비슷하지만 LoRA는 더 크고 더 많은 기능을 제공합니다. 기술적인 세부 사항은 생략하도록 하겠습니다.

 

LoRA는 캐릭터, 그림체, 자세, 옷, 심지어는 사람의 얼굴까지 표현할 수 있습니다. 일반적인 작업에는 체크포인트로도 충분하지만, 기존 사례가 거의 없는 구체적인 디테일에 관해서는 LoRA가 필요합니다. LoRA는 civitai와 그 외의 곳(NSFW) 에서 다운로드할 수 있으며, 기본적으로 용량이 144MB이지만 1MB까지 낮출 수 있습니다. 용량이 크다고 해서 항상 좋은 것은 아닙니다. 대부분의 체크포인트와 마찬가지로 *.safetensors 형식으로 제공됩니다.

 

stable-diffusion-webui/models/Lora 폴더에 LoRA 파일을 넣거나 이 가이드에 있는 코랩을 사용하는 경우 custom_urls 텍스트 상자에 직접 다운로드 링크를 붙여놓기 해줍니다. 그런 다음 생성(Generate) 버튼 아래에 있는 추가 네트워크 표시 버튼(🎴) 을 눌러줍니다. 바로 아래 또는 맨 아래에 새 부분이 열립니다. LoRA 탭을 클릭하고 새로 고침 버튼을 눌러 새 LoRA를 검색합니다. 해당 메뉴에서 LoRA를 클릭하면 다음과 같이 프롬프트에 LoRA가 추가됩나다: <lora:파일명:1>. 시작은 항상 동일합니다. 파일 이름은 *.safetensors 확장자가 없는 시스템의 정확한 파일 이름입니다. 마지막으로 숫자는 앞서 본 것처럼 가중치입니다. 대부분의 LoRA는 0.5에서 1 사이의 가중치에서 작동하며, 특히 여러 LoRA를 동시에 사용하는 경우 값이 너무 높으면 이미지가 '튀겨질' 수 있습니다.

 

LoRA의 예시로 두꺼운 선을 쓴 애니메이션 스타일이 있는데, 이는 이미지가 전통적인 애니메이션처럼 보이기를 원하는 경우 완벽합니다.

 

LyCORIS

LyCORIS는 LoRA가 더 많은 레이어를 학습할 수 있도록 하는 새롭게 개발된 것입니다. 여기에서 자세히 알아보세요. LyCORIS를 사용하기 위해서는 확장 기능이 필요합니다.

현재 LoRA의 새로운 유형은 아래의 2가지입니다

  • LoCon - 스타일에 좋음
  • LoHa - 캐릭터가 포함된 스타일에 좋음

트레이너 아래에서 독자만을 위한 학습도 가능합니다.

* 원본 글에 해당 내용 없음, 추후 추가될 수도 있음

 

업스케일링

매개변수 생성에서도 언급한것처럼 일반적으로 이미지를 생성할 때는 너비 또는 높이가 768 픽셀을 넘지 않아야 합니다. 대신 업스케일러와 적절한 노이즈 제거 수준을 선택할 때 Hires fix을 사용해야 합니다. 그러나 Hires fix는 VRAM 제한을 받으므로 끝판왕 업스케일러를 통해 더 크게 확장하는데 관심이 있을 수 있습니다.

 

추가 업스케일러는 다운로드 해서 stable-diffusion-webui/models/ESRGAN 폴더에 넣을 수 있습니다. 그러면 Hires fix, 끝판왕 업스케일러, 추가 가능에서 사용할 수 있습니다.

 

이 가이드에 있는 코랩에서는 모든 종류의 이미지에 적당한 만능 업스케일러인 Remacri를 포함한 여러 종류가 코랩에 있습니다.

 

  • 몇 가지 주목할 만한 업스케일러는 여기에서 찾을 수 있습니다.
  • LDSR은 고품질이지만 느린 업스케일러이며 모델과 설정은 여기에서 찾을 수 있고 stable-diffusion-webui/models/LDSR 폴더에 둬야합니다.
  • 업스케일링 위키에는 과거부터의 수십개의 선택 항목이 있습니다.

 

스크립트

스크립트는 매개변수 생성 하단에서 txt2img 또는 img2img로 찾을 수 있습니다.

 

X/Y/Z 플롯(Plot)

일반적으로 똑같은 시드를 사용하지만 원하는 매개변수를 변경하여 일련의 이미지를 생성할 수 있습니다. 다양한 모델, 프롬프트의 일부, 샘플러, 업스케일러 등 원하는 거의 모든 것을 비교할 수 있습니다. 가변 파라미터를 1개, 2개, 3개(X, Y, Z)로 설정할 수 있습니다.

 

X/Y/Z 플롯의 매개변수는 쉼표로 구분되지만 그 사이에 다른 매개변수를 넣을 수 있습니다. 비교하는 가장 일반적인 매개변수는 S/R 프롬프트이며, 첫 번째 용어는 프롬프트의 문구이고 그 이후의 각 용어는 원본을 대체합니다. 이것을 알면 아래와 같이 LoRA 강도를 비교할 수 있습니다.

 

<lora:my lora:0.4>, <lora:my lora:0.6>, <lora:my lora:0.8>, <lora:my lora:1>

 

여기서는 S/R 프롬프트(가로) 를 이용해 다양한 모델(세로) 과 다양한 인종의 얼굴들을 비교했습니다.

: 다음과 같이 따옴표를 사용하여 쉼표로 S/R을 표시할 수 있습니다(쉼표와 따옴표 사이에는 공백을 두지 않음): "term 1, term 2","term 3, term 4","term 5, term 6"

 

프롬프트 매트릭스

개념적으로는 앞서 본 S/R과 비슷하지만 더 심층적입니다. 프롬프트의 | 기호 사이에 나열된 가능한 모든 용어 조합을 표시하는 방식으로 작동합니다. 예로 young man|tree|city 에는 항상 'young man'이 포함되지만 'tree'와 'city'를 추가하거나 제거하면 어떤 일이 발생하는지 살펴볼 것입니다. 기호 사이에는 쉼표와 공백을 사용할 수 있습니다.

 

스크립트 내에서 행렬을 만들 프롬프트, 네거티브 프롬프트 중 하나를 선택하고 변수 조건을 시작, 끝에 넣을지 여부를 선택합니다.

 

다음은 프롬프트 부분에서 설명드린 네거티브 프롬프트를 이용한 비교입니다. EasyNegative가 이미지에 어떤 영향을 미치는지, 나머지 프롬프트가 이미지에 어떤 영향을 미치는지, 그리고 두 프롬프트가 이미지에 어떤 영향을 미치는지 함께 확인할 수 있습니다.

 

: 프롬프트 매트릭스를 사용할 때 배치 크기를 사용하면 여러 이미지 또는 전체 그리드를 한 번에 생성할 수 있습니다.

 

끝판왕 업스케일러

내장 스크립트의 개선 버전으로 확장 기능으로 추가하여 img2img 내에서 사용할 수 있습니다. 이 스크립트의 목적은 이미지의 크기를 조정하고 느리지만 이미지를 여러 덩어리로 나눠 VRAM의 일반적인 한계를 넘는 더 많은 디테일을 추가하는 것입니다. 방법은 아래와 같습니다.

 

1. 일반적으로 최대 768 픽셀의 너비와 높이를 가진 이미지를 생성한 다음 가능한 경우 hires fix을 적용할 수 있습니다.

2. txt2img 또는 이미지 브라우저 확장 프로그램에서 프롬프트와 매개변수를 img2img로 직접 전달합니다.

3. Denoising을 0.1~0.4로 설정합니다. 더 높은 값을 주면 현대 미술이 나올 가능성이 높습니다.

4. 스크립트로 이동하여 Ultimate SD Upscale을 선택합니다. 그런 다음 원하는 크기와 업스케일러 'Chess' 타입을 사용하여 매개변수를 아래와 같이 설정합니다.

  • VRAM이 충분하다면 타일의 타일 너비(Tile width)패딩(Padding) 값을 늘릴 수 있습니다. 예를 들어서 두 값 다 2배입니다. 타일 높이(Tile height)에 0을 넣으면 너비와 같은 값으로 적용됩니다.
  • 최종 이미지에서 영역간에 눈에 띄는 이음새가 발생하지 않는 한 Seams fix을 설정할 필요가 없습니다.

 

5. 이미지를 생성하고 기다립니다. 이미지 미리보기를 활성화 한 경우 사각형이 선명해져 가는것을 볼 수 있습니다.

 

컨트롤넷(ControlNet)

컨트롤넷은 스테이블 디퓨전을 위한 아주 강력한 최신 기능입니다. 이 기능을 사용하면 기존에 존재하는 모든 이미지에 대한 정보를 분석하여 AI 이미지 생성에 활용할 수 있습니다. 이것이 의미하는 것은 아래에서 다시 살펴보겠습니다.

 

이 글에 있는 코랩을 사용하는 경우 all_control_models 옵션을 활성화 해야합니다. 그렇지 않은 경우 컨트롤넷 확장 기능을 설치한 다음 여기로 이동해서 stable-diffusion-webui/extensions/sd-webui-controlnet/models 경로에 둬야 할 몇 가지 모델을 다운로드 해야합니다. 이 글에서는 Canny, Depth, Openpose, Scribble을 추천합니다.

 

컨트롤넷 사용 방법을 보여드리겠습니다 이를 위해 온라인에서 인기 있는 샘플 이미지로 선택했습니다. 이대로 따라할 필요는 없지만 이미지를 다운로드 하여 PNG Info 탭에 넣으면 생성 데이터를 볼 수 있습니다.

 

먼저 txt2img 페이지에서 아래로 내려서 ControlNet을 클릭하여 메뉴를 열어야 합니다. 그런 다음 Enable을 누르고 일치하는 Preprocessor와 Model을 선택해줍니다. 저는 이 두가지 모두에 Canny를 사용해 보겠습니다. 마지막으로 샘플 이미지를 업로드 해줍니다. 샘플 이미지를 누르지 않으면 그리기가 시작합니다. 다른 설정은 무시해도 됩니다.

 

  • Canny

Canny 방법은 샘플 이미지의 테두리 부분을 추출합니다. 다양한 유형의 이미지, 특히 작은 세부 사항과 이미지의 일반적인 모양을 보존하려는 경우에 유용합니다.

ㅇㅇㅇㅇ

 

  • Depth

Depth 방법은 샘플 이미지의 3D 요소를 추출합니다. 복잡한 환경과 일반적인 구도에 적합합니다.

 

  • Openpose

Openpose 방법은 샘플 이미지에서 사람의 자세를 추출합니다. 생성된 캐릭터의 원하는 샷과 구도를 얻는데 큰 도움이 됩니다.

 

  • Scribble

간단한 스케치를 만들고 프롬프트의 도움을 받아 완성된 작품으로 변환할 수 있습니다. 위의 샘플 이미지를 사용하지 않은 유일한 예제입니다.

 

Scribble을 제외한 각 방법에 대해 2가지 결과가 있음을 알 수 있습니다. 첫번째는 전처리된 이미지라고 하는 중간 단계로, 최종 이미지를 생성하는데 사용합니다. 전처리된 이미지를 직접 제공할 수 있으며 이 경우에는 Preprocessor를 None으로 설정해야 합니다. 이 기능은 블렌더(Blender) 나 포토샵(Photoshop) 과 같은 외부 도구에서 아주 강력합니다.

 

설정 탭에서는 여러개의 컨트롤넷은 한번에 활성화 할 수 있는 컨트롤넷 섹션이 있습니다. 특정 환경에서 특정 캐릭터의 자세를 취하거나 특정 손동작이나 디테일을 얻기 이해 Openpose를 사용할 때 유용하게 사용할 수 있습니다.

 

입력 이미지와 샘플 이미지가 모두 결과에 특정 효과를 주는 img2img에서 컨트롤넷을 사용할 수 있습니다. 필자는 이 방법을 많이 써보지 않았습니다.

 

각각의 컨트롤넷 모델에는 약간 다른 결과를 생성하는 대체 버전도 있습니다. 원한다면 사용해 볼 수 있겠지만 사용해 본 적은 없습니다.

 

초심자를 위한 LoRA 학습 방법

LoRA를 학습시키는 것은 어려운 작업입니다. 하지만 구글 코랩의 새로운 가이드는 무료로 시작하는데 필요한 모든 것을 제공합니다.

 

🎴여기에서 LoRA 학습시키는 방법을 보세요

 

최소 8GB의 VRAM이 있는 경우 여러분의 컴퓨터에서 LoRA를 학습시킬 수 있습니다. 이를 위해 아래에 몇 가지 방법들을 보여드리겠습니다.

 

  • 학습에는 bmaltais의 Kohya GUI를 사용해보세요. 여기에는 제 학습 코랩과 동일한 설정 등이 모두 포함되어 있으므로 이 가이드를 따르셔도 됩니다. 이 링크에서 유튜브 튜토리얼도 볼 수 있습니다.
  • 또한 ao의 LoRA 학습 가이드도 참고해보세요
  • 이 가이드와 같이 Gelbooru에서 이미지를 수집하려면 Grabber를 설치해보세요
  • 데이터세트에 태그를 지정하려면 WEBUI용 WD1.4Tagger 확장 프로그램을 사용해보세요. 먼저 확장 프로그램을 추가하고 할성화 한 다음 전체 WEBUI를 재시작합니다. Tagger 탭으로 이동한 다음 디렉토리에서 배치를 선택하고 이미지가 있는 폴더를 선택합니다.출력 이름을 [name].txt로 설정하고 임계값(threshold)을 0.35 이상으로 설정합니다. 그런 다음 Interrogate 버튼을 누르면 텍스트 파일 생성이 시작됩니다.
  • 이 가이드와 같이 대그를 큐레이션 하려면 WEBUI용 태그 편집기 확장 프로그램을 사용하세요. 태그 정렬, 가지치기, 바꾸기, 병합 등 필요한 모든 기능을 갖고 있습니다. 활성화 태그를 추가하는 방법은 이렇습니다: 확장 프로그램을 추가하고 WEBUI를 다시 시작한 뒤 Dataset Tag Editor 탭으로 이동한 다음 Batch Edit Captions으로 이동합니다. 'Show only the tags...' 를 끄고 'Prepend additional tags'를 켠 다음 Edit Tags 텍스트 상자에 활성화 태그를 추가합니다. 그런 다음 변경 사항을 적용하기 위해 위로 스크롤하여 올린 다음 Save all changes를 눌러줍니다. 그래야만 파일이 수정되고 모든 텍스트 파일의 시작 부분에 새 태그가 추가됩니다.
반응형
반응형

https://huggingface.co/blog/dreambooth

 

Training Stable Diffusion with Dreambooth using Diffusers

Training Stable Diffusion with Dreambooth using 🧨 Diffusers Dreambooth is a technique to teach new concepts to Stable Diffusion using a specialized form of fine-tuning. Some people have been using it with a few of their photos to place themselves in fan

huggingface.co

원본 글은 22년 11월 07일에 작성되었습니다

 

요약: 권장 설정들

학습률이 미치는 영향

실험 설정

장난감 고양이

돼지 머리

미스터 포테이토

사람의 얼굴

초기 결과 요약

얼굴 훈련시 사전 보존 사용

스케줄러의 효과

텍스트 인코더 값의 미세 조정

에필로그: 텍스트 반전 + 드림부스

 

반응형

 

요약: 권장 설정들

  • 드림부스(Dreambooth) 는 빨리 과적합(과대적합) 되는 경향이 있습니다. 좋은 품질의 이미지를 얻으려면 학습 단계(Training Stpes) 와 학습률(Learning Rate) 사이에서 '최적점'을 찾아야 합니다. 낮은 학습률을 사용하고 결과가 만족스러울 때 까지 학습 단계 수를 점진적으로 늘리는 것이 좋습니다.
  • 드림부스는 얼굴에 대해 더 많은 학습이 필요합니다. 실험 결과 배치 크기(batch size) 를 2로 설정하고 학습률을 1e-6(0.000001) 으로 설정하고 800~1,200 단계에서 잘 작동했습니다.
  • 얼굴을 학습할 때 과적합을 방지하려면 사전 보존이 중요합니다. 다른 피사체의 경우 큰 차이가 없는 것 같습니다.
  • 생성된 이미지에 노이즈가 있거나 품질이 저하된 경우 과적합이 되었을 수도 있습니다. 먼저 위의 단계를 시도하여 과적합을 방지하십시오. 생성된 이미지에 여전히 노이즈가 있는 경우 DDIM 스케쥴러를 사용하거나 더 많은 추론 단계를 실행하세요.(실험에서 100개 까지는 잘 작동함)
  • U-Net과 텍스트 인코더(Text Encoder) 를 학습시키면 품질에 큰 영향을 미칩니다. 텍스트 인코더의 미세 조정, 낮은 학습률, 적절한 단계수를 사용하여 최상의 결과를 얻었습니다. 그러나 텍스트 인코더를 미세 조정하려면 더 많은 VRAM이 필요하고 최소 24GB 이상의 VRAM이 있는 GPU가 이상적입니다. 8bitAdam, fp16 학습 또는 구글 코랩(Google Colab) 또는 캐글(Kaggle) 에서 제공하는 것과 같은 16GB VRAM을 가진 GPU에서 학습할 수 있습니다.
  • EMA를 사용하거나 사용하지 않고 미세 조정하면 비슷한 결과가 나옵니다.
  • 드림부스를 학습시키기 위해 sks 토큰을 사용할 필요는 없습니다. 첫 번째 구현 중 하나는 어휘에서 드문 토큰이기에 사용했지만 실제로는 일종의 라이플입니다. 우리의 실험과 @nitrosocke의 실험은 대상을 설명할 때 자연스럽게 사용할 수 있는 용어를 선택해도 괜찮다는 것을 보여줍니다.

 

학습률이 미치는 영향

드림부스는 아주 빠르게 과적합됩니다. 좋은 결과를 얻으려면 데이터 세트에서 적합한 방식으로 학습률과 훈련 단계 수를 조정하십시오. 실험(후술) 에서는 학습률이 높거나 낮은 4가지 데이터 세트에 대해 미세조정하였습니다. 모든 경우에서 낮은 학습률이 더 나은 결과를 보였습니다.

 

실험 설정

2대의 TESLA A100 40GB에서 AdamWOptimizer을 활성화하고 train_dreambooth.py 스크립트를 사용하여 실험했습니다. 동일한 시드값을 사용했으며 학습률, 훈련 단계 수, 사전 보존 사용을 제외한 모든 하이퍼파라미터를 동일하게 사용했습니다.

처음 3개의 예제(다양한 오브젝트) 의 경우, 400단계에 대해 배치 크기를 4(GPU당 2) 로 모델을 미세 조정했습니다. 학습률은 5e-6(0.000005)의 높은 속도, 2e-6(0.000002)의 낮은 속도를 사용했습니다. 사전 보존은 사용하지 않았습니다.

마지막 실험에서는 모델에 인간 피사체를 추가하려 시도합니다. 이 경우 배치 크기를 2(GPU당 1), 800단계와 1,200단계의 사전 보존을 사용했습니다. 학습률은 5e-6(0.000005)의 높은 속도, 2e-6(0.000002)의 낮은 속도를 사용했습니다.

8-bit Adam, fp16 학습, Gradient Accumulation을 사용해 메모리 사용량을 줄이고 16GB의 VRAM을 가진 GPU에서 비슷한 실험을 할 수 있다는 점을 유의하세요.

 

장난감 고양이

높은 학습률 5e-6(0.000005)

 

낮은 학습률 2e-6(0.000002)

 

돼지 머리

높은 학습률 5e-6(0.000005)

색상 아티팩트는 노이즈 잔여물이고 추론 단계를 더 실행하면 이런 세부 사항을 해결하는데 도움이 될 수 있습니다.

 

낮은 학습률 2e-6(0.000002)

 

미스터 포테이토

높은 학습률 5e-6(0.000005)

색상 아티팩트는 노이즈 잔여물이고 추론 단계를 더 실행하면 이런 세부 사항을 해결하는데 도움이 될 수 있습니다.

 

낮은 학습률 2e-6(0.000002)

 

사람의 얼굴

우리는 시트콤 '사인필드(Seinfeld)'에 나오는 크레이머(Kramer) 캐릭터를 스테이블 디퓨전에 통합하려 했습니다. 앞서 언급한것처럼 우리는 더 작은 배치로 더 많은 단계를 훈련했습니다. 그럼에도 불구하고 결과는 좋지 않았습니다. 간결성을 위해 이러한 샘플 이미지는 생략하고 다음 부분으로 넘어가서 얼굴 훈련에 대해 집중적으로 설명하겠습니다.

 

초기 결과 요약

드림부스로 스테이블 디퓨전을 훈련하여 좋은 결과를 얻으려면 데이터 세트의 학습 속도와 훈련 단계를 조정하는 것이 중요합니다.

  • 학습률이 높고 훈련 단계가 너무 많으면 과대적합이 될 수 있습니다. 모델은 어떤 프롬프트를 사용하던 대부분을 훈련한 데이터에서 이미지를 생성합니다.
  • 학습률이 낮고 훈련 단계가 너무 낮으면 모델이 통합하려는 개념을 생성할 수 없는 과소적합으로 이어집니다.

얼굴은 훈련하기 더 어렵습니다. 실험 결과 사물의 경우 훈련 단계 400번에 2e-6(0.000002)의 학습률이 효과적이었지만 얼굴의 경우 훈련 단계 1,200번에 1e-6(0.000001) ~ 2e-6(0.000002)의 학습률이 필요했습니다.

모델이 과대적합되면 이미지 품질이 크게 떨어지고 다음과 같은 경우에 발생됩니다

  • 학습률이 너무 높은 경우
  • 훈련 단계가 너무 많은 경우
  • 얼굴의 경우 다음 부분에 있는것처럼 사전 보존이 사용되지 않은 경우

 

얼굴 훈련시 사전 보존 사용

사전 보존은 미세 조정 과정의 일부로 훈련하려는 동일한 클래스의 추가 이미지를 사용하는 기술입니다. 예를 들어서 새로운 사람을 모델에 통합하려고 할 때 보존하려는 클래스는 사람일 수도 있습니다. 사전 보존은 새로운 사람의 사진과 다른 사람의 사진을 결합하여 과대적합을 줄이려고 합니다. 좋은 점으로는 안정 확살 모델 자체를 사용하여 이러한 추가 클래스 이미지를 생성할 수 있다는 것입니다! 원하는 경우 훈련 스크립트가 자동으로 처리하지만 사용자가 직접 사전 보존 이미지가 포함된 폴더를 제공할 수 있습니다.

 

사전 보존을 사용한 경우, 1,200단계, 학습률 2e-6(0.000002)

 

사전 보존을 사용하지 않는 경우, 1,200단계, 학습률 2e-6(0.000002)

보이는것처럼 사전 보존을 사용하면 결과가 더 좋아지지만 여전히 노이즈와 같은 얼룩들이 보입니다. 이제 몇가지 트릭들을 사용할 차례입니다!

 

스케줄러의 효과

이전 예제에서는 추론 프로세스 중에 PNDM 스케줄러를 사용하여 이미지를 샘플링했습니다. 모델이 과대적합일 때 DDIM이 일반적으로 PNDM, LMSDiscrete보다 훨씬 더 잘 작동하는 것을 관찰했습니다. 또한 더 많은 단계에 대해 추론을 실행하면 품질이 향상될 수 있고 100단계가 좋은 선택인 것 같습니다. 추가 단계는 일부 노이즈 패치를 이미지 디테일로 해결하는데 도움이 됩니다.

 

PNDM을 이용한 크레이머 훈련

 

LMSDiscrete을 이용한 크레이머 훈련, 결과는 아주 거지같습니다

 

DDIM을 이용한 크레이머 훈련, 훨씬 낫습니다

차이는 덜하지만 다른 사물들도 비슷한 결과를 보였습니다.

 

PDPM을 이용한 미스터 포테이토 훈련

 

LMSDiscrete을 이용한 미스터 포테이토 훈련

 

DDIM을 이용한 미스터 포테이토 훈련

 

텍스트 인코더 값의 미세 조정

원본 드림부스 논문은 모델의 U-Net 구성 요소를 미세 조정하는 방법을 설명하지만 텍스트 인코더 값은 유지합니다. 하지만 텍스트 인코더 값을 미세 조정하면 더 나은 결과를 얻을 수 있다는 것을 확인했습니다. 다른 드림부스 구현에서 사용되는 것을 보고 이 접근 방식을 실험했는데 결과는 놀라웠습니다!

 

텍스트 인코더 고정

 

텍스트 인코더 미세 조정

텍스트 인코더를 미세 조정하면 특히 얼굴에서 최상의 결과를 얻을 수 있습니다. 더 사실적인 이미지를 생성하고 과대적합이 덜 발생하고 더 나은 프롬프트 해석 가능성을 달성하여 더 복잡한 프롬프트를 처리할 수 있습니다.

 

에필로그: 텍스트 반전 + 드림부스

또한 텍스트 반전(Textual Inversion) 과 드림부스를 결합한 최종 실험을 진행했습니다. 두 기술 모두 유사한 목표를 갖고 있지만 접근 방식은 다릅니다.

이 실험에서 먼저 텍스트 반전 2,000단계에 대해 실행했습니다. 그런 다음 이 모델에서 학습률 1e-6을 사용해 추가 500단계 만큼의 드림부스를 실행했습니다. 결과는 다음과 같습니다.

일반 드림부스를 사용하는 것보다 결과가 훨씬 좋지만 전체 텍스트 인코더를 미세 조정하는 것만큼 좋지 않다고 생각합니다. 훈련 이미지의 스타일을 조금 더 복사하는 것 같아서 이미지에 과도하게 맞출 수 있습니다. 이 조합을 더 자세히 살펴보지 않았지만 프림부스를 개선하면서 16GB의 VRAM을 가진 GPU에 프로세스를 맞출 수 있는 흥미로운 대안이 될 수 있습니다.

반응형
반응형

civitai.com

[번역] 나만의 LoRA를 무료로 쉽게 학습시키는 방법

 

huggingface.co

[번역] 디퓨저를 이용한 드림부스로 스테이블 디퓨전 훈련

[번역] 스테이블 디퓨전 가이드

 

rentry.org

LoRA 가이드

LoRA 훈련 가이드

LoRA 훈련 태깅 FAQ

LoRA 훈련 로그와 유사과학

LAZY 훈련 가이드

 

aaa.com

반응형
반응형

 

Step 3: Unknown initial value (PW=419482)
Ok, seeing that you've figured out how to find a value using exact value let's move on to the next step.

First things first though. Since you are doing a new scan, you have to click on New Scan first, to start a new scan. (You may think this is straighforward, but you'd be surprised how many people get stuck on that step) I won't be explaining this step again, so keep this in mind
Now that you've started a new scan, let's continue

In the previous test we knew the initial value so we could do a exact value, but now we have a status bar where we don't know the starting value.
We only know that the value is between 0 and 500. And each time you click 'hit me' you lose some health. The amount you lose each time is shown above the status bar.

Again there are several different ways to find the value. (like doing a decreased value by... scan), but I'll only explain the easiest. "Unknown initial value", and decreased value.
Because you don't know the value it is right now, a exact value wont do any good, so choose as scantype 'Unknown initial value', again, the value type is 4-bytes. (most windows apps use 4-bytes)click first scan and wait till it's done.

When it is done click 'hit me'. You'll lose some of your health. (the amount you lost shows for a few seconds and then disappears, but you don't need that)
Now go to Cheat Engine, and choose 'Decreased Value' and click 'Next Scan'
When that scan is done, click hit me again, and repeat the above till you only find a few.

We know the value is between 0 and 500, so pick the one that is most likely the address we need, and add it to the list.
Now change the health to 5000, to proceed to the next step.

미쳐날뛰겠습니다

이번에는 모르는 값을 찾아야 합니다

0에서 500까지의 값 중 하나가 시작값인데 정확히 어디에서 시작하는지 알 수 없습니다

 

이전글에서 이어서 하는 경우에는 New Scan을 눌러서 이전값을 없애줘야 합니다

 

Scan Type을 Unknown intial value로 바꿔주고 First Scan을 눌러줍니다

Value Type은 4Byte에서 건들 필요 없습니다

 

아까하곤 다르게 좌측에 아무것도 표시되지 않을겁니다

 

튜토리얼에 있는 Hit me를 한번 눌러줍니다

잠깐동안 얼마나 줄어들었는지 나오는데 그 값을 기억할 필요는 없습니다

 

Scan Type을 Decrease value로 선택하고 Next Scan을 눌러줍니다

 

우리가 찾는 값은 줄어든 값이기 떄문에 Decrease value를 선택하는 것입니다

만약에 늘어난 값을 찾는 것이라면 Increase value를

이상이면 Bigger than

이하면 Smaller than

두 값 사이면 Value between을 선택하면 됩니다

 

아까는 599,040개의 값을 찾았는데 지금은 4,450개로 많이 줄었습니다

그래도 여전히 많기 떄문에 Hit me를 눌러서 값을 줄이고 찾는 갯수도 줄여야합니다

위에서 한 것을 반복해주세요

 

몇번 반복하다 보니까 4개의 값만 남았습니다

이 중 가장 그럴듯한 값을 더블클릭 해서 아래로 내리면 됩니다

저 값이 어떻게 가장 그럴듯한지 알 수 있냐고요?

 

아까 처음에 값이 0에서 500사이라고 했는데 3번째를 제외한 나머지 3개의 값은 모두 42억으로 동일합니다(이는 unsigned int 최대값과 동일함)

즉 처음부터 조건에 맞지 않는 값이라서 제외한것이고요

 

값을 5,000으로 변경해주면 Next가 활성화 됩니다

반응형
반응형

치트엔진을 실행하고 Help→Cheat Engine Tutorial 을 눌러주세요

 

Welcome to the Cheat Engine Tutorial (v3.5)

This tutorial will teach you the basics of cheating in video games. It will also show you foundational aspects of using Cheat Engine (or CE for short). Follow the steps below to get started.

1: Open Cheat Engine if it currently isn't running.
2: Click on the "Open Process" icon (it's the top-left icon with the computer on it, below "File".).
3: With the Process List window now open, look for this tutorial's process in the list. It will look something like "00001F98-Tutorial-x86_64.exe" or "0000047C-Tutorial-i386.exe". (The first 8 numbers/letters will probably be different.)
4: Once you've found the process, click on it to select it, then click the "Open" button. (Don't worry about all the other buttons right now. You can learn about them later if you're interested.)

Congratulations! If you did everything correctly, the process window should be gone with Cheat Engine now attached to the tutorial (you will see the process name towards the top-center of CE).

Click the "Next" button below to continue, or fill in the password and click the "OK" button to proceed to that step.)

If you're having problems, simply head over to forum.cheatengine.org, then click on "Tutorials" to view beginner-friendly guides!

이런식으로 창이 나올겁니다

우측 하단에 있는 Password는 일종의 불러오기와 같은겁니다

값을 입력하고 OK를 누르면 됩니다

 

방법은 다음과 같습니다

1. 치트엔진이 실행중이 아니라면 치트엔진을 실행해 주세요

2. Open Process 아이콘을 눌러주세요(좌측 상단의 File 아래에 컴퓨터 모양으로 된 것)

3. 프로세스 리스트 창이 열리면 튜토리얼 프로세스를 리스트에서 찾아보세요. 00001F98-Tutorial-x86_64.exe이나 0000047C-Tutorial-i386.exe와 같은 형식으로 되어있을겁니다(처음 8자리 숫자와 문자는 다를수도 있음)

4. 프로세스를 찾았으면 선택하고 Open 버튼을 눌러주세요(다른 버튼이 무엇인지 아직은 알 필요 없음)

 

이런식으로 열면 됩니다

열었으면 Next를 눌러줍니다

 

Step 2: Exact Value scanning (PW=090453)
Now that you have opened the tutorial with Cheat Engine let's get on with the next step.

You can see at the bottom of this window is the text Health: xxx
Each time you click 'Hit me' your health gets decreased.

To get to the next step you have to find this value and change it to 1000

To find the value there are different ways, but I'll tell you about the easiest, 'Exact Value':
First make sure value type is set to at least 2-bytes or 4-bytes. 1-byte will also work, but you'll run into an easy to fix problem when you've found the address and want to change it. The 8-byte may perhaps works if the bytes after the address are 0, but I wouldn't take the bet.
Single, double, and the other scans just don't work, because they store the value in a different way.

When the value type is set correctly, make sure the scantype is set to 'Exact Value' Then fill in the number your health is in the value box. And click 'First Scan' After a while (if you have a extremely slow pc) the scan is done and the results are shown in the list on the left

If you find more than 1 address and you don't know for sure which address it is, click 'Hit me', fill in the new health value into the value box, and click 'Next Scan' repeat this until you're sure you've found it. (that includes that there's only 1 address in the list.....)

Now double click the address in the list on the left. This makes the address pop-up in the list at the bottom, showing you the current value. Double click the value, (or select it and press enter), and change the value to 1000.

If everything went ok the next button should become enabled, and you're ready for the next step.

Note:
If you did anything wrong while scanning, click "New Scan" and repeat the scanning again.
Also, try playing around with the value and click 'hit me'

엄청 긴데 천천히 봅시다

 

아래에 Health: 숫자가 있고 Hit me를 누를때마다 체력이 줄어듭니다

다음 단계로 넘어가려면 체력을 1,000으로 만들어야 합니다

 

먼저 가장 쉬운 Exact Value(정확히 일치) 에 대한 방법입니다

Value Type을 2Byte 또는 4Byte로 설정해줍니다

8Byte는 대체로 사용하지 않습니다

Single, Double과 같은 다른 스캔 방식은 다른 방식으로 값을 저장하기 때문에 작동하지 않습니다

 

Value Type을 Exact Value으로 되어있는지 확인한 뒤 Value에 체력(여기에선 100) 을 입력해주세요

그리고 First Scan을 눌러주면 좌측에 입력한 값과 같은 목록이 나올겁니다

 

2개 이상의 목록이 나오면 어느것이 해당 값인지 알 수 없기 때문에 값을 변경하고 그 값으로 다시 찾아야합니다

Hit me를 누르고 나온값을 Value에 넣고 Next Scan을 눌러줍니다

1개의 목록만 나올때까지 이를 반복하면 됩니다

반복할 때는 New Scan이 아닌 Next Scan을 눌러야 합니다

 

1개의 목록만 남으면 더블클릭 하거나 해당 값을 선택한 뒤 엔터를 누르면 아래로 내려와집니다

 

아래로 내려온 값의 숫자 부분을 더블클릭하고 1000을 입력하면 됩니다

 

정상적으로 변경되면 Next가 활성화 됩니다

위의 스크린샷에서는 변경되기 전 값이 표시되는 것이지 내부적으로는 값이 변경된 것입니다

여기에서 한번 더 Hit me를 누르면 값이 1,000보다 조금 적은 값으로 바뀔겁니다

반응형
반응형

치트엔진에 있는 튜토리얼을 이용해서 치트엔진을 어떻게 사용하는지 알아보려 합니다

그러기위해선 치트엔진이 필요하겠지요?

 

아래의 사이트에 들어가서 Download Cheat Engine 을 누르세요

https://www.cheatengine.org/

 

Cheat Engine

Cheat Engine Download Cheat Engine 7.3 for Mac Trouble running Cheat Engine? Check out the known github issue here on how to solve it Read before download: Cheat engine is for private and educational purposes only. Before you attach Cheat Engine to a proce

www.cheatengine.org

설치를 하려고 하는데 이런창이 나오면 안티바이러스(백신) 을 잠깐 비활성화 해주거나

다운로드 폴더만 검사하지 않게끔 설정해주세요

이 방법은 안티바이러스마다 다르므로 설명하지 않겠습니다

 

실행하면 이런식으로 나옵니다

 

참고: 온라인 게임에서 사용하지 않는것을 권장합니다

온라인 게임에서는 메모리 값이 이상하게 변하는 것을 감지하는 경우 해당 계정을 정지할 수도 있습니다

반응형
반응형

00으로 끝나는(예를 들어서 00800F00) 마이크로코드는 ES일 확률이 높습니다

 

구분 마이크로코드 코드네임 CPU 종류
pre
RYZEN
00660F00 브리스톨릿지 APU A-9000
00660F01 A-9000
1st
RYZEN
00800F00 서밋릿지 CPU 1000
00800F10 1000
00800F11 1000
00800F12 1000
00810F00 레이븐릿지 APU 2000G/2000U
00820F01 2000G/2000U
00810F10 2000G/2000U
00810F11 2000G/2000U
2nd
RYZEN
00800F82 피나클릿지 CPU 2000
00810F80 피카소 APU 3000G/3000U
00810F81 3000G/3000U
3rd
RYZEN
00870F00 마티스 CPU 3000
00870F10 3000
00840F70 ? 4700S
00860F00 르누아르 APU 4000G/4000U
00860F01 4000G
00860F81 루시엔 5000U
4th
RYZEN
00A20F00 버미어 CPU 5000
00A20F10 5000
00A50F00 세잔 APU 5000G/5000U
00A20F12 워홀 CPU 5800X3D
반응형

'컴퓨터 > 하드웨어' 카테고리의 다른 글

SGPC의 K99 v2 SFF 케이스 리뷰  (0) 2021.01.25
ASUS ROG STRIX B550-I GAMING에 2700X 구동기  (0) 2020.11.29
하이엔드로 가는 길  (0) 2020.01.01
솔직히 꼴 좋네요  (0) 2019.10.23
3세대 라이젠 가격 말입니다  (0) 2019.06.18
반응형

언젠가부터 티스토리 자체 기능으로 구글 애드센스를 삽입할 수 있는 기능이 생겼습니다

이전에는 플러그인을 통해서 구글 애드센스를 삽입했는데 이제는 좀 더 편한 방법으로 광고를 넣어서 좀 더 쉽게 수익을 낼 수 있을거라 생각됩니다

 

광고를 보니까 다른거는 모두 문제없이 잘 되는데

목록 상단과 목록 하단 이 두개만이 무슨 창과 내용이 뜨면서 안됩니다

 

내용은 이렇습니다

저 내용들이 빠져서 그렇다는건데 그렇다면 아무곳에나 넣으면 되는걸까요?

아무데나 넣으면 좋겠지만 넣어야 하는 곳이 있습니다

 

먼저 목록 상단 광고의 위치부터 알아봅시다

HTML 창을 클릭하고 Ctrl + F를 눌러서 <s_list>를 찾아준 뒤 그 아랫줄에 넣어달라는 목록 상단 치환자인 를 넣어주면됩니다

저렇게 노란색으로 나와야지 정상적으로 찾는중인것이며 노란색 창이 안 나오는 경우에는 HTML이 쓰여 있는곳을 한번 클릭한 후에 다시한번 시도해보세요

뒤에 주석인 <!-- 목록 상단 광고의 치환자 --> 이거는 혹시나 나중에 찾을 일이 있을때를 위해서 넣어둔 것이며 필수 사항은 아닙니다

 

목록 하단 광고를 추가하는 방법도 비슷합니다

마찬가지로 HTML 창을 클릭하고 Ctrl + F를 눌러서 </s_paging>을 찾은 뒤 그 아랫줄에 목록 하단 치환자인 를 넣어주면됩니다

 

모두 넣어줬으면 우측 상단의 적용을 눌러주고 블로그 관리 페이지를 새로고침(F5) 을 해주거나 다시 들어가줍니다

모든것을 정상적으로 해주셨으면 목록 상단과 목록 하단의 활성화가 가능해지며 활성화 후 변경사항 저장을 눌러서 저장해주시면 됩니다

반응형
반응형

예전부터 SFF와 같은 작은 케이스를 이용해서 컴퓨터를 하나 조립해보고 싶었습니다

그런데 SFF로 구성을 하게 되면 케이스부터 시작해서 다 작은 부품으로 구성 해야되고 무엇보다도 비싼 케이스 떄문에 구매하기가 어려웠습니다

이번에 싼 가격에 원하던 제품을 구매하게 되었기에 어떤점이 좋고 어떤점이 안 좋은지 한번 써 보려 합니다


해당 제품은 타오바오에서 구매 가능하며

타오바오에서 구매하실 경우 직배가 안되므로 배대지를 이용하셔야 합니다


알리익스프레스에서도 판매를 하지만 가격이 비싸기 때문에 타오바오를 추천드리며

케이스의 가격은 199 CNY, 라이저 케이블의 가격은 99 CNY로 합쳐서 298 CNY입니다

환율에 따라서 가격이 조금씩 다르지만 50,000원이 조금 넘는 가격으로 엄청나게 저렴한 것은 아니지만 (배대지 이용료 별도)

다른 SFF 케이스들이 10만원은 우습게 넘기는 것에 비하면 상당히 가격이 저렴한 편에 속합니다


전체적인 모습입니다


케이스가 있는 박스와 별도로 구매해야하는 라이저 케이블, 각종 부속품이 담겨있는 에어캡 봉투가 있습니다


에어캡 봉투 안에는 USB 허브(2.0만 지원), 드라이버가 있습니다

USB 허브가 있는 이유는 전면 패널에 USB를 지원하지 않기 때문인것 같고

드라이버는 길기때문에 손이 닿지 않는 곳의 나사를 조이거나 풀 때 유용하게 쓰입니다


그리고 라이저 케이블

정전기 방지 비닐에 포장되어있고

PCIe 슬릇은 고무로 덮여저있어서 손상을 막아줍니다


케이스를 구매하실 때 같이 구매하지 않고 다른곳에서 구매하셔도 되지만 길이 호환이나 나사 구멍의 호환을 위해서 같이 구매하시는 것을 추천드립니다


가장 중요한 케이스


비닐로 덮여저있고 손상 방지를 위해서 스펀지같은것이 있습니다


각종 부속품들


케이블타이, 자석, 상단 쿨러 장착용 브라켓(2개씩 있는것들), 나사, 스탠드오프, PCIe 슬릇 덮개가 있습니다


자석의 용도는 잘 모르겠지만 알루미늄이라서 금속 물질이(Wi-Fi 안테나 등) 잘 붙지 않으니까 준 것이 아닐까 싶습니다

개인적으로는 저 자석의 자성이 약하므로 저것을 사용하시는 것 보다는 네오디뮴 자석을 별도로 구매하신 후 사용하는 것이 더 괜찮을것이라 생각합니다


상단 쿨러 장착용 브라켓은 케이스 상단에 바로 나사를 꽂을 수 있는 나사홀이 없기 때문에 브라켓을 사용해서 달아줘야합니다

8각형 모양의 부품 2개는 일체형수냉(AIO) 를 사용하실 때는 필요없으며 흡/배기용 시스템 쿨러를 장착하실떄만 사용하시면 됩니다


스탠드오프의 용도는 아래에서 나올겁니다


크기가 어느정도인지 감이 안 잡히시는 분들을 위해서 3.5인치 하드디스크와 비교를 해봤습니다


크기가 일반적인 케이스의 반도 안되는 크기로 많이 작습니다


옆면에는 손나사가 적용되어있어서 드라이버 없이 손으로 쉽게 옆판 분리가 가능합니다


아까 위에서 나왔던 스탠드오프의 용도입니다


CPU 쿨러나 그래픽카드와의 호환성을 좀 더 좋게하고자 넣은 것 같은데

이렇게되면 저 사이로 먼지가 유입되거나 안그래도 약한 아크릴판에 별로 안 좋을거같아서 저는 쓰고싶지가 않네요


뒷면의 모습


AC 전원 전선의 굵기가 얇지만 다른 케이스들도 이정도의 굵기라서 큰 문제없이 사용 가능할거 같습니다


전면 패널입니다

전원 스위치, 전원 LED, 디스크 LED 이렇게 3종류 있으며 리셋 스위치는 없습니다


옆면 아크릴 판의 두께입니다

3T로 너무 얇지도, 두껍지도 않은 두께입니다


전체적인 두께는 1.5T로 일반적인 케이스가 0.6~0.7T 인것에 비하면 두꺼운 수준입니다

하지만 이 케이스는 알루미늄이고 다른 케이스들은 철로 만들어져서

두께가 2배가 된다고 해도 철로 만든것들보다 더 무르고 실제로 제가 힘을 세게 주면 약간 휘는것이 느껴졌습니다


철이 아닌 알루미늄으로 제작한 이유가 철보다 무르기 때문에 가공이 쉬워서 그런것이 아닐까 싶습니다




이 글을 쓰는 시점에서 저는 이 케이스로 컴퓨터 조립을 모두 마쳤고 지금 잘 쓰고 있습니다

그러나 가격 때문인지 가격 때문인지 마감 상태는 별로 좋지 않으며

옆판의 손나사도 약간 움푹 파인 것이 보일정도였습니다

케이스는 조립할 때 손이 베이거나 부품에 손상을 줄 수 있을거 같으므로 조립하실 떄 주의 하실 필요가 있습니다


다음에는 이 케이스로 컴퓨터를 조립해보도록 하겠습니다

반응형

'컴퓨터 > 하드웨어' 카테고리의 다른 글

AMD 라이젠 CPU 마이크로코드  (0) 2021.06.28
ASUS ROG STRIX B550-I GAMING에 2700X 구동기  (0) 2020.11.29
하이엔드로 가는 길  (0) 2020.01.01
솔직히 꼴 좋네요  (0) 2019.10.23
3세대 라이젠 가격 말입니다  (0) 2019.06.18

+ Recent posts