목적

생각없이 랜덤 돌리고 싶고, 잔뜩 쌓아둔 로라 중 이것저것 써먹어 보고 싶을 때


준비물

sd-dynamic-prompts 확장


실행

로라 받을 때마다 와일드카드 파일 수정하기 귀찮으니 파일로 만들어두기.

- loraPath 경로랑 outPath 경로값은 각자 환경에 맞게 변경

- setLoraList.ps1 는 어디에 둬도 상관없음.

setLoraList.ps1

$loraPath = "C:\github\stable-diffusion-webui\models\Lora"

$outPath = "C:\github\stable-diffusion-webui\extensions\sd-dynamic-prompts\wildcards\lora.txt"


Get-ChildItem -Path $loraPath -Recurse -Filter "*.safetensors" | Where-Object {!$_.PSIsContainer} | Select-Object @{Name="FileName"; Expression={"<lora:" + $_.BaseName}} | ForEach-Object {$_.FileName} | Out-File $outPath -Force

탐색기에서setLoraList.ps1 우클릭/ powershell 에서 실행 클릭
powershell 에서.\setLoraList.ps1

사용

1girl, {2$$__lora__:0.1>|__lora__:0.3>|__lora__:0.5>|__lora__:0.7>|__lora__:0.9>}


주의

Batch count=1, Generate Forever 에서 사용 권장

Batch count 가 2 이상이면 적용이 안 된다는 제보가 있음.



1.

\stable-diffusion-webui\models\Lora 폴더에 들어가서 폴더 경로 넣는 곳에 powershell 적고 엔터


2. 파란 화면에서 다음 입력 후 엔터

Get-ChildItem -Recurse -Filter "*.safetensors" | Where-Object {!$_.PSIsContainer} | Select-Object @{Name="FileName"; Expression={"<lora:" + $_.BaseName}} | ForEach-Object {$_.FileName} | Set-Clipboard



명령어 의미

모든 하위 폴더에서 확장자가 safetensors 인 파일을 찾고, 거기서 filename 부분만 추출한 다음, 각 줄 앞에 "<lora:" 를 붙여주고, 클립보드에 넣어줘


3. 와일드카드에서 lora.txt 만들고, 메모장에 붙여넣기

\stable-diffusion-webui\extensions\sd-dynamic-prompts\wildcards


4. webui 에서 사용

예시1. 와일드 카드 쓴 뒤에 :가중치> 붙여줘야 해.

__lora__:0.5>


예시2. 로라 목록 중에서 원하는 거 임의로 2개 쓰고 싶을 때

1girl, {2$$__lora__:0.5>|__lora__:0.5>}


1girl, <lora:skirtUp-accidentalExposure_v10:0.5>,<lora:sttabi_v1.4-04:0.5>

Negative prompt: (low quality, worst quality:1.4), naked, loli



예시3. 가중치를 임의로 주고 싶고, 2개만 쓰고 싶을 때

1girl, {2$$__lora__:0.1>|__lora__:0.3>|__lora__:0.5>|__lora__:0.7>|__lora__:0.9>}


<lora:로라:0.1-0.9> 는 안 먹힌다는 얘기를 듣고 고안해봤어.

<lora:로라:1> 이름 통째로 넣고 (__lora__:0.1) 이나 ((__lora__):0.1) 같은 것도 안 먹히더라.