sdas / 3-bmab /docs /en /preprocess.md
dikdimon's picture
Upload 3-bmab using SD-Hub
c10aebf verified
# Preprocess
## Context
BMAB์—์„œ ์‚ฌ์šฉํ•  Checkpoint์™€ VAE๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
ํŠน์ • ๊ธฐ๋Šฅ๋“ค์€ ์ž์ฒด Checkpoint์™€ VAE๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•œ ๋ฒˆ ๋ณ€๊ฒฝ๋œ Checkpoint๋Š” ๊ทธ ์ดํ›„ ํ”„๋กœ์„ธ์Šค๋“ค์ด ๊ณ„์† ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
<img src="https://i.ibb.co/VTP5ddx/2023-11-12-3-48-54.png">
#### txt2img noise multiplier for hires.fix
hires.fix ๋‹จ๊ณ„์—์„œ noise๋ฅผ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋‹ค.
#### txt2img extra noise multiplier for hires.fix (EXPERIMENTAL)
hires.fix ๋‹จ๊ณ„์—์„œ ์ถ”๊ฐ€์ ์ธ noise๋ฅผ ๋” ํ•  ์ˆ˜ ์žˆ๋‹ค.
#### Hires.fix filter before upscaler
Hires.fix ๋‹จ๊ณ„ ์ค‘ upscaler ์ „์— filter๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
#### Hires.fix filter after upscaler
Hires.fix ๋‹จ๊ณ„ ์ค‘ upscaler ํ›„์— filter๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
## Resample (EXPERIMENTAL)
Self resampling ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. txt2img -> hres.fix๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์‹œ txt2img -> hires.fix ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ
ControlNet Tile Resample์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
* ๋‘ ๋ชจ๋ธ๊ฐ„์— ๊ฒฐ๊ณผ๋ฌผ ์ฐจ์ด๊ฐ€ ํฐ ๊ฒฝ์šฐ
* ๋‘ ๋ชจ๋ธ๊ฐ„์— ์ธ๋ฌผ ๋น„์œจ์ด ์ฐจ์ด๋‚˜๋Š” ๊ฒฝ์šฐ
* ๋‘ ๋ชจ๋ธ๊ฐ„ ๋ฒ„์ „์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ (SDXL, SD15)
<table>
<tr>
<td>txt2img->hires.fix</td>
<td>Resample + BMAB Basic</td>
</tr>
<tr>
<td><img src="https://i.ibb.co/VxPfgN0/00153-3939130001-before-resample.png"></td>
<td><img src="https://i.ibb.co/XZ9gHHN/00154-3939130001.png"></td>
</tr>
</table>
<img src="https://i.ibb.co/5hWtbmZ/e822842f656d73757ee65713317f7ba9d947472d3fe94fc3ceffc72aee31064d.jpg">
BMAB resample image by [padapari](https://www.instagram.com/_padapari_/)
<br>
<br>
<br>
<br>
<img src="https://i.ibb.co/9hD81hd/resample.png">
#### Enable self resample (EXPERIMENTAL)
์ด ๊ธฐ๋Šฅ์„ ์ผœ๊ณ  ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
#### Save image before processing
์ตœ์ดˆ txt2img -> hires.fix๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€๊ฐ€ ํ›„ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด BMAB๋กœ ์ž…๋ ฅ๋˜๋ฉด,
ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ํ”„๋กœ์„ธ์‹ฑํ•˜๊ธฐ ์ „์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ postfix๋กœ "-before-resample"์ด ๋ถ™์Šต๋‹ˆ๋‹ค.
#### Checkpoint
SD Checkpoint๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์•ž์—์„œ ์„ค์ •๋œ Checkpoint๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์Šค๊ฐ€ ์™„๋ฃŒ๋˜์–ด๋„ ์›๋ž˜ ๊ฒƒ์œผ๋กœ ๋Œ๋ ค๋†“์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
#### SD VAE
SD VAE๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์•ž์—์„œ ์„ค์ •๋œ VAE๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์Šค๊ฐ€ ์™„๋ฃŒ๋˜์–ด๋„ ์›๋ž˜ ๊ฒƒ์œผ๋กœ ๋Œ๋ ค๋†“์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
#### Resample method
Resample ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
txt2img-1pass : txt2img์„ hires.fix ์—†์ด ๋™์ž‘์‹œํ‚จ๋‹ค.
txt2img-2pass : txt2img๋ฅผ hires.fix๋กœ ๋™์ž‘์‹œํ‚จ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ hires.fix๊ฐ€ ๋™์ž‘ํ•ด์•ผํ•˜๋งŒ ํ•œ๋‹ค.
img2img-1pass : img2img๋กœ ๋™์ž‘์‹œํ‚จ๋‹ค.
#### Resample filter
Resample์ด ์™„๋ฃŒ๋˜๊ณ  ๋‚œ ์ดํ›„์— ์™ธ๋ถ€ filter ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ณ€ํ™˜์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
#### Resample prompt
resampling ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•  prompt์ž…๋‹ˆ๋‹ค. ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ main prompt์™€ ๋™์ผํ•˜๋ฉฐ,
"#!org!#" ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด main prompt๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. "#!org!#" ์ดํ›„์— ์ถ”๊ฐ€๋กœ prompt๋ฅผ ์ ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ex) #!org!#, soft light, some more keyword
#### Resample negative prompt
resampling ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•  prompt์ž…๋‹ˆ๋‹ค. ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ main negative prompt์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
#### Sampling method
ํ”„๋กœ์„ธ์Šค์— ์‚ฌ์šฉํ•  sampling method๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ด์ „ ํ”„๋กœ์„ธ์Šค์™€ ๊ฐ™์€ sampler๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
#### Upsacler
hires.fix๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ์ง€์ •ํ•˜๋Š” upscaler์ž…๋‹ˆ๋‹ค.
#### Resample sampling steps
resample process ์‚ฌ์šฉํ•  samping steps๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
(๊ถŒ์žฅ 20)
#### Resample CFG scale
resample process ์‚ฌ์šฉํ•  CFG scale ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
dynamic threshold๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
#### Resample denoising strength
resample process๊ฐ€ ์‚ฌ์šฉํ•  denoising strength๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
(๊ถŒ์žฅ 0.4)
#### Resample strength
0์— ๊ฐ€๊นŒ์šด ๊ฐ’์€ ์ž…๋ ฅ ์ด๋ฏธ์ง€์™€ ๋ฉ€์–ด์ง€๊ณ , 1์— ๊ฐ€๊นŒ์šธ ์ˆ˜๋ก ์›๋ณธ ์ด๋ฏธ์ง€์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
#### Resample begin
sampling ๋‹จ๊ณ„์— ์ ์šฉ ์‹œ์ž‘์ .
#### Resample end
sampling ๋‹จ๊ณ„ ์ ์šฉ ์ข…๋ฃŒ ์‹œ์ .
## Pretraining (EXPERIMENTAL)
Pretraining detailer์ž…๋‹ˆ๋‹ค. ultralytics๋กœ pretraining ๋ชจ๋ธ์„ ์ ์šฉํ•˜์—ฌ detection์„ ์ˆ˜ํ–‰ํ•˜๊ณ 
์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ prompt, negative prompt๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ถ€๋ถ„์ ์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋” ์ž์„ธํ•˜๊ฒŒ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
<img src="https://i.ibb.co/Qkx6rQK/pretraining.png"/>
#### Enable pretraining detailer (EXPERIMENTAL)
์ด ๊ธฐ๋Šฅ์„ ์ผœ๊ณ  ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
#### Enable pretraining before hires.fix
pretraining detailer๋ฅผ hires.fix ์ „์— ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค.
#### Pretraining model
ultralytics ๋กœ ํ•™์Šต๋œ detection model (*.pt)๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
stable-diffusion-webui/models/BMAB์— ํ•ด๋‹น ํŒŒ์ผ์ด ์žˆ์–ด์•ผ ๋ชฉ๋ก์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
#### Pretraining prompt
pretraining detailer process ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•  prompt์ž…๋‹ˆ๋‹ค. ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ main prompt์™€ ๋™์ผํ•˜๋ฉฐ,
"#!org!#" ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด main prompt๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. "#!org!#" ์ดํ›„์— ์ถ”๊ฐ€๋กœ prompt๋ฅผ ์ ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ex) #!org!#, soft light, some more keyword
#### Pretraining negative prompt
pretraining detailer process ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•  prompt์ž…๋‹ˆ๋‹ค. ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ main negative prompt์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
#### Sampling method
ํ”„๋กœ์„ธ์Šค์— ์‚ฌ์šฉํ•  sampling method๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ด์ „ ํ”„๋กœ์„ธ์Šค์™€ ๊ฐ™์€ sampler๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
#### Pretraining sampling steps
resample process ์‚ฌ์šฉํ•  samping steps๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
(๊ถŒ์žฅ 20)
#### Pretraining CFG scale
resample process ์‚ฌ์šฉํ•  CFG scale ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
dynamic threshold๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
#### Pretraining denoising strength
resample process๊ฐ€ ์‚ฌ์šฉํ•  denoising strength๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
(๊ถŒ์žฅ 0.4)
#### Pretraining dilation
detection ๋œ ์‚ฌ๊ฐํ˜•์˜ ๋ฒ”์œ„๋ฅผ ์ฃผ์–ด์ง„ ๊ฐ’ ๋งŒํผ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
#### Pretraining box threshold
Detector์˜ ๊ฒ€์ถœ ๊ฐ’์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ 0.35๋ณด๋‹ค ์ž‘์œผ๋ฉด face๊ฐ€ ์•„๋‹ ๊ฒƒ์œผ๋กœ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค.
ultralytics predict์˜ confidence ๊ฐ’์ž…๋‹ˆ๋‹ค.
## Edge enhancemant
์ด๋ฏธ์ง€ ๊ฒฝ๊ณ„๋ฅผ ๊ฐ•ํ™”ํ•ด ์„ ๋ช…๋„๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ฑฐ๋‚˜ ๋””ํ…Œ์ผ์„ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
**<span style="color: red">Upscaler๊ฐ€ Latent ๊ณ„์—ด์ธ ๊ฒฝ์šฐ ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (R-ESRGAN, 4x-UltraSharp ์ถ”์ฒœ)</span>**
<img src="https://i.ibb.co/4sjB1Lr/edge.png">
๊ถŒ์žฅ์„ค์ •
* Edge low threshold : 50
* Edge high threshold : 200
* Edge strength : 0.5
<p>
<img src="https://i.ibb.co/Wsw2Wrh/00598-1745587019.png" width="40%">
<img src="https://i.ibb.co/z4nCW9Z/00600-1745587019.png" width="40%">
</p>
Enabled : CHECK!!
Contrast : 1.2
Brightness : 0.9
Sharpeness : 1.5
Enable edge enhancement : CHECK!!
Edge low threshold : 50
Edge high threshold : 200
Edge strength : 0.5
## Resize
txt2img -> hires.fix ์˜ ์ค‘๊ฐ„ ๊ณผ์ •์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค..
๋งŒ์•ฝ img2img์—์„œ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ํ”„๋กœ์„ธ์Šค ์‹œ์ž‘ ์ „์— ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆผ ์† ์ธ๋ฌผ์ค‘ ๊ฐ€์žฅ ์‹ ์žฅ์ด ํฐ ์‚ฌ๋žŒ์˜ ๊ธธ์ด์™€ ๊ทธ๋ฆผ ๋†’์ด์˜ ๋น„์œจ์ด ์„ค์ •๊ฐ’์„ ๋„˜์–ด๊ฐ€๋ฉด ๋น„์œจ์„ ์„ค์ •๊ฐ’๋กœ ๋งž์ถ”๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
์„ค์ •๊ฐ’์ด 0.90์ด๊ณ  ์ธ๋ฌผ์˜ ์ „์ฒด ๊ธธ์ด: ๊ทธ๋ฆผ ๋†’์ด์˜ ๋น„์œจ์ด 0.95๋ผ๊ณ  ํ•œ๋‹ค๋ฉด
๋ฐฐ๊ฒฝ์„ ๋Š˜๋ ค์„œ ์ธ๋ฌผ์˜ ๋น„์œจ์ด 0.90์ด ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๋ฐฐ๊ฒฝ์€ Alignment์—์„œ ์ง€์ •ํ•œ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.
txt2img ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹จ๊ณ„์—์„œ hires.fix ํ•˜๊ธฐ ์ง์ „์— ์ด๋ฏธ์ง€๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
์ด ๊ณผ์ •์€ ๋ณ€๊ฒฝ๋œ ์ด๋ฏธ์ง€๊ฐ€ hires.fix ๊ณผ์ •์—์„œ ๋งค๋„๋Ÿฝ๊ฒŒ ๋ณ€ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
**<span style="color: red">denoising strength๋Š” 0.6~0.7 ์ •๋„๋ฅผ ์‚ฌ์šฉํ•˜์…”์•ผ ์ฃผ๋ณ€๋ถ€ ์ด๋ฏธ์ง€ ์™œ๊ณก์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.</span>**
**<span style="color: red">Upscaler๊ฐ€ Latent ๊ณ„์—ด์ธ ๊ฒฝ์šฐ ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (R-ESRGAN, 4x-UltraSharp ์ถ”์ฒœ)</span>**
#### Method
Resize ํ•˜๋Š” ๋ฐฉ์‹์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
* Stretching : ๋‹จ์ˆœํžˆ ์ด๋ฏธ์ง€๋ฅผ ์™ธ๊ณฝ๋ถ€๋ถ„์„ ๋Š˜๋ ค์„œ ๋ฐฐ๊ฒฝ์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.
* inpaint : Stretching๋œ ์ด๋ฏธ์ง€๋ฅผ mask๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Š˜๋ฆฐ ๋ถ€๋ถ„๋งŒ img2img inpainting์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
* inpaint+lama : Controlnet์˜ inpaint+lama ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์žฅ๋œ ์˜์—ญ์„ ๋‹ค์‹œ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.
* inpaint_only : Controlnet์˜ inpaint_only๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์žฅ๋œ ์˜์—ญ์„ ๋‹ค์‹œ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.
#### Alignment
์ด๋ฏธ์ง€๋ฅผ ํ™•์žฅํ•˜๊ณ  ์›๋ž˜ ์ด๋ฏธ์ง€๋ฅผ ์–ด๋А ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
<img src="https://i.ibb.co/g62KhZQ/align.png">
#### Resize filter
Resize๊ฐ€ ์™„๋ฃŒ๋˜๊ณ  ๋‚œ ์ดํ›„์— ์™ธ๋ถ€ filter ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ณ€ํ™˜์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
#### Resize by person intermediate
์ธ๋ฌผ์˜ ํฌ๊ธฐ ๋น„์œจ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์ดˆ๊ณผํ•˜๋ฉด ์ด ํฌ๊ธฐ๊ฐ€ ๋˜๋„๋ก ๋ฐฐ๊ฒฝ์„ ํ™•์žฅ์‹œํ‚ต๋‹ˆ๋‹ค.
<table>
<tr>
<td>Original</td>
<td>Resize 0.7</td>
<td>Resize 0.5</td>
</tr>
<tr>
<td><img src="https://i.ibb.co/XttbBz0/00133-3615254454.png"></td>
<td><img src="https://i.ibb.co/RS4tbZs/00135-3615254454.png"></td>
<td><img src="https://i.ibb.co/mHHqBKk/00134-3615254454.png"></td>
</tr>
</table>
<table>
<tr>
<td>Original</td>
<td>Alignment center</td>
</tr>
<tr>
<td><img src="https://i.ibb.co/hmSG5SK/00074-2037889107.png"></td>
<td><img src="https://i.ibb.co/7kPycZ5/00075-2037889107.png"></td>
</tr>
<tr>
<td>Alignment bottom</td>
<td>Alignment bottom-left</td>
</tr>
<tr>
<td><img src="https://i.ibb.co/2gPCbr4/00076-2037889107.png"></td>
<td><img src="https://i.ibb.co/x7T91QH/00080-2037889107.png"></td>
</tr>
</table>
Resize sample
<img src="https://i.ibb.co/G07KG6M/resize-00008-4017585008.png">
## Refiner
txt2img์—์„œ ๋งŒ๋“ค์–ด์ง„ ์ด๋ฏธ์ง€๋ฅผ ํ•œ๋ฒˆ ๋” ๊ทธ๋ฆฌ๋Š” ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
txt2img + hires.fix ๊ฐ€ ๋œ ์ƒํ™ฉ์—์„œ๋„ ์œ ํšจํ•˜๋‹ค.
refiner๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  detailing ํ•˜๊ธฐ์ „์— ๋™์ž‘ํ•˜๋ฉฐ,
sd-webui์˜ hires.fix + refiner๋ฅผ ํ•ฉ์นœ ๋™์ž‘๊ณผ ๋น„์Šทํ•˜๋‹ค.
<table>
<tr>
<td>txt2img(512x768)</td>
<td>txt2img + hires.fix(800x1200)</td>
<td>txt2img + hires.fix + refiner(1200x1800)</td>
</tr>
<tr>
<td><img src="https://i.ibb.co/JCxXc9D/resize-00268-767037284.png"></td>
<td><img src="https://i.ibb.co/zR3nWKt/resize-00269-767037284.png"></td>
<td><img src="https://i.ibb.co/R21B0fr/resize-00270-767037284.png"></td>
</tr>
</table>
(์œ„ ์˜ˆ์ œ๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋‘ resizeํ•˜์—ฌ ๋™์ผํ•œ ํฌ๊ธฐ์ด๋‹ค.)
์œ„ ์˜ˆ์ œ์™€ ๊ฐ™์ด 3๋‹จ๊ณ„๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜๋„ ์žˆ์œผ๋‚˜,
hires.fix ๋‹จ๊ณ„ ์—†์ด refiner๋กœ resizeํ•˜์—ฌ ์ฒ˜๋ฆฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
<p>
<img src="https://i.ibb.co/GFjgJ5B/refiner.png">
</p>
#### Enable refiner
refiner ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค.
#### CheckPoint
refiner๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค์‹œ ๊ทธ๋ฆด๋•Œ ์‚ฌ์šฉํ•  checkpoint๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
#### Use this checkpoint for detailing
์œ„์—์„œ ์ง€์ •ํ•œ checkpoint๋ฅผ ์ด์šฉํ•˜์—ฌ detailing์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
#### Prompt
refiner๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์‹œ ๊ทธ๋ฆด๋•Œ ์‚ฌ์šฉํ•˜๋Š” prompt๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๋น„์–ด์žˆ๋‹ค๋ฉด main prompt์™€ ๋™์ผํ•˜๊ณ ,์ฑ„์›Œ์ ธ ์žˆ๋‹ค๋ฉด main prompt๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
๋งŒ์•ฝ #!org!# ๋ฌธ์ž์—ด์ด ์žˆ๋‹ค๋ฉด main prompt๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
#### Negative prompt
refiner๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์‹œ ๊ทธ๋ฆด๋•Œ ์‚ฌ์šฉํ•˜๋Š” negative prompt๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
#### Sampling method
refiner๊ฐ€ ์‚ฌ์šฉํ•  sampler๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
(Euler A ๊ถŒ์žฅ)
#### Upscaler
refiner๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ resizeํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  upscaler๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
#### Refiner sampling steps
refiner๊ฐ€ ์‚ฌ์šฉํ•  samping steps๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
(๊ถŒ์žฅ 20)
#### Refiner CFG scale
refiner๊ฐ€ ์‚ฌ์šฉํ•  CFG scale ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
dynamic threshold๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
#### Refiner denoising strength
refiner๊ฐ€ ์‚ฌ์šฉํ•  denoising strength๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
(๊ถŒ์žฅ 0.4)
#### Refiner scale
refiner๊ฐ€ ์ฃผ์–ด์ง„ ์ด๋ฏธ์ง€๋ฅผ scale ๊ฐ’์œผ๋กœ resizeํ•ฉ๋‹ˆ๋‹ค.
๋งŒ์•ฝ refiner width, refiner height๊ฐ€ ์„ค์ •๋˜์–ด์žˆ๋‹ค๋ฉด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.
#### Refiner width
์ด๋ฏธ์ง€ ํญ์„ ํ•ด๋‹น ๊ฐ’์œผ๋กœ ๊ฐ•์ œ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
#### Refiner height
์ด๋ฏธ์ง€ ๋†’์ด๋ฅผ ํ•ด๋‹น ๊ฐ’์œผ๋กœ ๊ฐ•์ œ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
<br>
<br>
<br>