✨🍬Efficiency Nodes for ComfyUI Version 2.0+ 에서 다양한 기능을 추가한 포크 버전. 원본의 설명은 https://github.com/jags111/efficiency-nodes-comfyui 를 참조.🍬
원본과 다르게 💬ED노드는 Context 링크를 주고 받는다.-( 오른쪽 아래에 BiRefNet이 포함되어 있다. 필요없으면 워크플로에서 삭제하자.
BiRefNet은 필요없는 배경을 삭제하는데 정말 좋은 도구이다. 한번 써보는 것을 추천)
context를 사용해 어지럽게 널린 링크들을 위의 그림 처럼 단 한개로 정리했다!
context는 model, clip, vae, positve 컨디셔닝, negative 컨디셔닝, 등등이 합쳐져 있는 코드 다발로 생각하면 된다.
(rgthree의 커스텀 노드에서 차용)
Efficiency Nodes 💬ED의 context는 rgthree의 노드가 없어도 독립적으로 작동하지만 rgthree의 커스텀 노드 설치를 권장한다. 당연하지만 rgthree의 context와 호환된다.
context 간단 사용법
Efficient Loader 💬ED
- 클릭 한번으로 Txt2Img, Img2Img, Inpaint 모드 설정이 가능하다.
(Txt2Img로 설정시 처음에 연결된 Ksampler (Efficient) 💬ED의 denoise 값이 자동으로 1로 설정됨.)
- Inpaint(MaskDetailer) 모드가 추가 되었다.
(그냥 Inpaint를 사용하면 점점 화질이 열화되는데 Impact Pack의 MaskDetailer를 임포트 시켰다.
자세한 것은 Inpaint(MaskDetailer)에서 설명.)
- seed, cfg, sampler, scheduler를 설정하고
context
에 저장. 후에 Ksampler (Efficient) 💬ED등에서 그 설정값을 이용할 수 있다. - 오른 클릭에 드롭다운 메뉴 추가.
"🔍 View model info..."는 모델의 정보를 표시한다.
("🔍 View model info..."는 크기가 큰 모델은 해쉬값을 찾느라 '첫' 로딩이 느리다. 처음 한번은 "Use as preview"를 눌러 주는걸 권장.)"📐 Aspect Ratio..."는 image_width와 image_height에 선택한 값을 입력한다.
(Txt2Img 모드로 이미지를 만들 때 편리하다. ◆ 표시는 추천 해상도) - 모델 선택시 프리뷰 이미지 표시
(이름 입력 창은 하위 폴더별로 서브메뉴가 만들어지며 "🔍 View model info..."에서 "Use as preview"했던 이미지를 모델 선택시 보여준다.
모델의 프리뷰 이미지가 있다면 이름 옆에 '*'로 표시된다.
폴더와 모델이 함께 있을땐 유형 별로 정렬이 안되는데 그땐 폴더 이름 맨 앞에-
를 붙여주면 정렬이 된다.)
- Tiled VAE 인코딩
- 오른 클릭 > Property Panel에서 Use tiled VAE encode를 true로 하면 VAE 인코딩시에 Tiled VAE 인코딩을 사용한다.
- Tiled VAE 인코딩은 큰 이미지를 VRAM이 부족해도 인코딩할 수 있다. 대신 기본보다 느리다.
- 로라, 임베딩, 컨트롤 넷 스태커를
lora_stack
과cnet_stack
에 입력 가능. - positive와 negative 프롬프트 텍스트 박스 내장.
token_normalization
과weight_interpretation
에서 프롬프트 인코딩 방식 설정 가능. - Efficient Loader 💬ED에서 context로 출력하는 값은: model, clip, vae, positive, negative, latent, images, seed, cfg, sampler, scheduler, clip_width=image_width, clip_height=image_height, text_pos_g=positive_text, text_neg_g=negative_text 이다.
KSampler (Efficient) 💬ED, KSampler TEXT (Eff.) 💬ED
- 원래 에피션트 노드에서 context를 입력 받을 수 있게 수정. - 이미지를 샘플링 후 context와 OUTPUT_IMAGE에 출력한다. SOURCE_IMAGE는 입력받은 이미지. - KSampler TEXT (Eff.) 💬ED는 배경 제작용으로 따로 프롬프트 텍스트 입력창을 추가한 버전.(KSampler TEXT (Eff.) 💬ED가 생성하는 이미지 사이즈는 image_source_to_use로 선택에 따라 context의 이미지 또는 latent를 참조하고 텍스트 입력창의 프롬프트 텍스트는 context에 저장하지 않는다.)
- from node to ctx는 현재 노드의 seed, cfg, sampler, scheduler 설정을 context에 내보내기
- from context는 context에서 seed, cfg, sampler, scheduler 설정을 가져오기
- from node only는 현재 노드의 seed, cfg, sampler, scheduler 설정을 이용하고 context에 저장하지는 않는다.
- Properties Panel에서 Use tiled VAE decode를 true로 하면 된다.
- Tiled VAE 디코딩은 큰 이미지를 VRAM이 부족해도 디코딩할 수 있다. 대신 기본보다 느리다.
Inpaint(MaskDetailer) 모드
- Efficient Loader 💬ED에서 Inpaint(MaskDetailer) 모드를 선택하면 에피션트 샘플러 💬ED가 마스크 디테일러 모드로 변경된다. - Impact Pack의 MaskDetailer를 그대로 통합시켰다. - 인페인트에 정말 탁월하고 화질의 열화가 일어나지 않는다.(사용법은 기존의 MaskDetailer와 동일하다.)
Load Image 💬ED
- 원래 Load Image에서 프롬프트 텍스트를 출력하게 수정한 노드이다.(아쉽게도 이미 설치된 노드의 프롬프트만 추출할 수 있으며, 설치되지 않은 노드는 추출하지 못한다.)
Save Image 🔔ED
- 원래 Save Image에서 Context입력을 추가하고 이미지를 입력 받으면 종소리가 들리게 수정한 노드.LoRA Stacker
- 최대 8개까지의 로라를 한번에 로딩할 수있는 노드이다.(로라의 프리뷰 이미지가 있다면 이름 옆에 '*'로 표시된다.
폴더와 로라가 함께 있을땐 유형 별로 정렬이 안되는데 그땐 폴더 이름 맨 앞에
-
를 붙여주면 정렬이 된다.)Embedding Stacker 💬ED
- 임베딩 일일이 치는거 스펠링도 기억안나고 짜증나서 하나 만들었다.(기능은 단순하게 💬ED 로더 positive, negative의 맨 마지막에 임베딩 문자열을 추가해준다.
💬ED 로더만 사용 가능함.)
- 로라 스태커와 동일하게 "🔍 View model info..."로 정보를 볼 수 있다.
Apply Lora Stack 💬ED
- 로라 적용 시점을 늦추기 위해서 만든 노드이다.(💬ED 로더가 로라 스택을 로딩한 시점에서 로라가 적용되는데 FreeU나 IPAdapter등을 사용하면 로라를 적용한 모델을 변경하게 된다.
{ex: 모델 로딩 -> 로라 적용 -> FreeU 또는 IPAdapter}
이것을 {모델 로딩 -> FreeU 또는 IPAdapter -> 로라 적용} 이렇게 순서를 바꾸게 하기 위해서 만든 노드이다.)
Control Net Script 💬ED
- 컨트롤넷 스크립트. 샘플러와 연결하여 컨트롤넷을 사용하는 노드.(KSampler (Efficient) 💬ED 또는 KSampler TEXT (Eff.) 💬ED에서만 동작한다.)
FaceDetailer 💬ED
- Impact pack의 FaceDetailer 애드온. Impact pack이 설치되지 않았다면 보이지 않는다. - context를 입력받을 수 있게 수정한 버전. - 💬ED 샘플러와 마찬가지로 set_seed_cfg_sampler 설정이 있으며, 각종 모델 로더를 통합한 노드.(FaceDetailer 💬ED에서 눈을 더 반짝이게 하고 싶다던가 표정을 바꾸고 싶을 때 유용하다.
프롬프트 텍스트를 입력하면 context의 프롬프트는 무시하고 입력된 프롬프트를 우선 사용한다.)
MaskDetailer 💬ED
- Impact pack의 MaskDetailer 애드온. Impact pack이 설치되지 않았다면 보이지 않는다. - context를 입력받을 수 있게 수정한 버전. - 💬ED 샘플러와 마찬가지로 set_seed_cfg_sampler 설정이 있음.Detailer (SEGS) 💬ED
- Impact pack의 Detailer (SEGS) 애드온. Impact pack이 설치되지 않았다면 보이지 않는다. - context를 입력받을 수 있게 수정한 버전. - 💬ED 샘플러와 마찬가지로 set_seed_cfg_sampler 설정이 있음.Ultimate SD Upscale 💬ED
- Ultimate SD Upscale의 애드온. Ultimate SD Upscale이 설치되지 않았다면 보이지 않는다. - context를 입력받을 수 있게 수정한 버전. - 💬ED 샘플러와 마찬가지로 set_seed_cfg_sampler 설정이 있으며, upscale 모델 로더를 통합한 노드.매니저 -> Install via git URL -> https://github.com/NyaamZ/efficiency-nodes-comfyui 입력
대부분 뭐가 없으면 나오는 문제다. 그리고 아래 나오는 에러들은 커스텀 노드에서만 발생하는게 아니라 바닐라 CompyUI 에서도 똑같이 발생하는 에러다.
(모델은 반드시 있어야 한다. 없으면 매니저 > 인스톨 모델에서 checkpoints 검색해서 Type:checkpoints, Base: SD 1.5나 SDXL 을 다운.)
(bbox_detector는 반드시 있어야 한다. 없으면 매니저 > 인스톨 모델 에서 bbox 검색해서 다운)
(업스케일 모델은 반드시 있어야 한다. 없으면 매니저 > 인스톨 모델 에서 upscale 검색해서 다운)