목적
생각없이 랜덤 돌리고 싶고, 잔뜩 쌓아둔 로라 중 이것저것 써먹어 보고 싶을 때
준비물
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) 같은 것도 안 먹히더라.