본문 바로가기

IT/AI

SD Webui - ddetailer, adetailer, ddsd 결과물 비교

ddetailer랑 adetailer랑 ddsd 가 오브젝트만 검출해서 그려주는 부분은 stable diffusion이 처리할 텐데,

많은 사람들이 결과물이 다르다, ddetailer가 낫다 이런 글들을 커뮤니티에서 많이 접하게 되었다.

그래서 과연 다를까? 한번 고찰해 보는 시간을 가지기로 했다.

전문가도 아니고 세 가지를 다 출력해 보고 차이점을 한번 분석해 보겠습니다..

필자는 이번글도 m1에서 테스트해볼 생각이라

코렙은 장점도 있고 단점도 명확한지라 

장점으로 꼽으라고 한다 치면, 구글 공유드라이브를 통한 파일 관리 이게 제일 장점일 테고

단점은 너무 많다. 일단 잦은 런타임 끊어짐, 초기 로딩 시 많은 시간 할여 기타 등등

그럼 일단 세 개의 감지 확장들을 설치해 봐야겠다.

우리 블로그에 물론 설치법이 작성되어 있지만.

간단히 훑고 가겠습니다.

일단 제일 설치에 힘들어하는 ddetailer 

https://github.com/noahge4/ddetailer.git

오늘은 이분 버전으로 하겠습니다.

이분껀 mmcv 2.x가 나오기 전에 개발된 버전이라. 아래와 같이 버전을 명시해서 설치해줘야 한다.

./venv/bin/python3.10 -m pip install openmm mmcv-full==1.7.1 mmdet==2.28.2

위에 열거한 세가지 
설치된 확장프로그램을 보여주고 있다.
세가지 설치된 확장프로그램을 보여주고 있다.

세 가지의 확장프로그램이 준비되어 있으니 테스트를 진행해 보겠습니다. 

 

RAW, photorealistic, intricate details, best quality, masterpiece, extremely delicate and beautiful, detailed skin texture, vibrant shiny skin, 1girl, Grey_sweater_dress, black_ankle_boots, wool_beret_hat, crossbody_bag, layered_necklaces,dusk,

 

paintings, sketches, drawing, (worst quality, normal quality, low quality:1.5), (head out of frame), strabismus, lowres, monochrome, grayscale, bad proportions, watermark, signature, text, bad-artist, negative_hand-neg, nsfw, (multiple views:1.6), split screen

seed: 346004597

공통조건

python: 3.10.10

torch: 2.1.0.dev20230504

xformers: N/A

gradio: 3.28.1

commit: 5ab7f213

checkpoint: ac68270450 (braBeautifulRealistic_brav5)

ADetailer

DDSD

얼굴을 감지하라니깐 머리카락을 감지하는 Dino
Dino model을 swinb로 바꿔봤다.

이것도 검출이 안된다. 이 문제 때문에 이 확장프로그램의 제작자님도 adetailer의 yolov8을 적용 가능하게끔 기능을 추가한 것이다

동일 환경에서 테스트하기 위해서 Detect 1 Prompt를 수정해서 얼굴을 감지해 내겠습니다. 

"a female face" 를 일단 줘보겠습니다. 모델 버그인지 gpu가 아닌 cpu 감지버그인지 암튼, 

막간에 허깅페이스 데모로 돌려보니 감지되네요^^

face검색하랬더니 person을 감지해 내는군요.

근데 여기서 보면 왼쪽은 뭔가 자연스러운데 오른쪽 이미지는 너무 쨍한 느낌이 드네요. 

이 상태에서 가장 왼쪽에 가깝게 inpaint이 안되는 걸까요? 테스트를 좀 해보겠습니다.

전반적으로 스텝(10)이랑 cfg(7)를 줄여서 생성

전반적으로 스텝이랑 cfg를 줄여서 위의 이미지로 가는 도중에 고만두었다는 느낌

 

DDetailer

테스트를 진행하려고 보니 ddetailer에서 에러를 내서 다시 한번 설치해 줬습니다.

# ./venv_nightly 는 저의 가상환경
# 기본적으로 ./venv 입니다.

./venv_nightly/bin/python3.10 -m pip install -U openmim
./venv_nightly/bin/python3.10 -m pip install -U mmcv-full==1.7.1
./venv_nightly/bin/python3.10 -m pip install -U mmdet==2.28.2
./venv_nightly/bin/python3.10 -m pip install -U mmengine

(A) face을 검출하고 (B) person를 검출하고 inpaint model B detections before model A runs ( A 실행하기 전에 B를 그리고)

 

1단계 테스트 결과:

결과물 원본
왼쪽부터 adetailer, ddsd, ddetailer(mmcv 1.x 버전)

일단 1단계 테스트에서는 동일한 전제조건이 성립되지 않았다.

Adetailer 같은 경우는 person을 검출하지 않고 얼굴만 검출해서 그리고,

DDSD 같은 경우 얼굴 자체가 검출되지 않았다. 그래서 person(몸전체)를 검출하고 그걸 그렸다. 이 부분은 다시 동일한 샘플 환경을 만들고

다시 진행해야겠다.

ddetailer 같은 경우 person 검출해서 그리고, face를 검출해서 그리고 두 번 그렸다.

사람들이 말하는 것처럼 결과물이 다르다. 개인 취향의 영역이지만, 3번이 제일 자연스럽고, adetailer의 얼고 느낌도 괜찮다.

그럼 나는 3번의 person에다가 1번 adetailer의 얼굴을 합친 느낌으로 뽑으려면,

참 ddetail를 뽑을 때 masterpiece, best quality, detailed face 프롬을 주지 않았다.

이것부터 해보고 진행해야겠다.

DDetailer:

denoise strength( 왼쪽부터 0.5, 0.45, 0.4)
0.35, 0.3 (머리에 언제 모자를 쓴거야)

ADetailer:

왼쪽부터 0.5 0.45 0.4
왼쪽부터 0.35, 0.3, 0.25

DDSD:

0.5
0.4 (얼굴에 점같은 노이즈가 발생한다. cfg를 7로 바꿔봐야겠다.)
cfg 7로 변경
0.5, 045, 0.4
0.35, 0.30, 0.25

음 변화를 모르겠네요. webui 재시작을 한번 해봐야겠습니다.

다 똑같은 것 같네요 ㅎㅎ

webui 다른 버전으로 실행해서 denoise 0.5 먹이고 이미지 생성해 봤습니다.

0.5: 0.5: 0.5 다르다. 
Detailer Sampler를 DPM++ SDE Karas로 바꿈
윗라인 왼쪽부터 DPM++ SDE Karras, DPM++ 2M Karras v2, 아래라인 DPM++ 2M Karras, DPM++ 2S a karras

그럼 원점을 DDSD 기본 Denoising strength를 0.4로 돌리고, bra5 모델을 얼굴에만 henmix3.0 모델을 먹이고 임베딩을 한번 줘보자.

henmix3.0, bra4, sampoo3.0 (디노이징 0.4)

미묘한 차이가 있긴 하다.

디노이징(0.5)

이번에는 smile512 임베이딩 잘 먹는지 테스트

슬슬 테스트 체력이 달리고 글을 그만 마무리하고 싶지만 몇 가지만 더 해보고 마무리하겠습니다.

왼쪽부터 개인모델, hemix23, chillout (디노이징:0.4)
happy512

마지막으로 로라 짬뽕을 긍정프롬프트에 때려 넣고 세 가지 확장 비교 하고 마무리할게요.

 

(ultimate detailed skin texture, high detailed skin, skin details:1.4),[:(detailed face:1.2):0.2], 
detailed skin texture, vibrant shiny skin, perfect face,
(pureerosface_v1:0.6),
<lora:INSPHOT2:0.3>
<lora:FilmGirl_v4:0.6>, 

 

세 가지 확장모두 얼굴만 감지해서 적용해 볼게요.

denoise 0.45 공통

 

 

ddsd로 동작해서 만든 이미지가 보인다.DDetailer로 동작해서 만든 이미지가 보인다.
왼쪽부터 DDSD, DDetailer, ADetailer

과하면 안 된다는 걸 보여주는 두 개의 이미지네요.

글을 마무리하려고 했는데, 뒤에 두 개의 이미지가 찝찝해서 프롬을 좀 걷어내고 제대로 나오게 하고 마무리해야겠네요

 

 

왼쪽 adetailer, ddetailer

porcelain skin:1.4, detailed skin texture, vibrant shiny skin, perfect face,<lora:INSPHOT2:0.3> <lora:shojovibe_v11:0.3>

수정하긴 했는데, 얼굴에 점빼는거 연구 좀 해봐야겠네요

테스트 감상평:

오늘은 BRA V5를 가지고, 이것저것 해봤는데요

 

BRA(Beautiful Realistic Asians) V5 - Brav5 | Stable Diffusion Checkpoint | Civitai

If you would like to see more and better versions of Bras please consider supporting (tryna recoup gpu cost lol) https://ko-fi.com/bankaiplease Tra...

civitai.com

특별히 차이점이 있다기보다 제대로 설치된 환경에서라면 개인 취향의 성격이 더 강한 것 같고요.

dino detect가 좀 느린감이 있지만 DDSD는 한 번의 동작에 여러 가지를 동시에 처리할 수 있는 강점이 분명 있고요.

Adetailer 역시 간단히 얼굴만 detect 해서 처리하기에 가볍고 좋은 것 같아요.

DDSD랑 Adetailer 랑 동시에 사용할 때 에러메시지가 나는데 이게 제대로 동작했는지 다음기회에 또 테스트를 해봐야겠어요.

딱 person이랑 face를 감지해서 인페이팅 해줄 때는 ddetailer가 좋긴 한데 

오늘 테스트 한 버전이 mmcv 1.7.1 mmdet 2.28.2 버전인데

Adetailer 만드신 분이 mmcv 2.x mmdet 3.x버전으로 동작하게끔 수정한 dddetailer가 있는데

다 좋은데 이 버전은 두 개의 모델 중 person감지하는 모델이 제대로 감지 못하는 것 같아요.

제 환경에서만 그런지는 확실하진 않지만. 암튼 업그레이드가 되면 다시 확인해 보고 글을 업데이트하는 걸로 하고요

 

긴 글 읽어주셔서 대단히 감사드리고, 다음시간에 또 만나요.