엊그제 쓴 SDXL 모델 스타일 106가지라는 글에서는, AUTOMATIC1111 확장인 StyleSelectorSDXL 1.0을 소개했습니다. 사실상, 이 106가지 스타일이란, StyleSelectorSDXL 확장에서 제공하는 스타일을 하나씩 나열한 것에 불과했습니다. 즉, "woman" 또는 "city"와 같이 간단한 프롬프트만 입력한 상태에서 StyleSelector가 제공하는 스타일을 선택하면 다른 스타일과는 완전히 다른 새로운 이미지가 만들어졌습니다.
이 StyleSelector를 ComfyUI에서도 사용할 수 있습니다. 커스톰 노드인 SDXL Prompt Styler를 설치하면 됩니다(사실 Style Selector for SDXL 1.0 도 이 SDXL Prompt Styler를 따라한 것 같습니다). 설치하는 방법은 아래와 같습니다.
1. 명령 프롬프트(cmd)룰 실행하고, 아래와 같이 custome_nodes 디렉토리로 이동합니다. 아래서 실제 폴더 위치는 자신의 환경에 맞춰 적당히 수정하세요.
cd C:\ComfyUI\ComfyUI_windows_portable\ComfyUI\custom_nodes
2. 다음 명령을 실행합니다.
git clone https://github.com/twri/sdxl_prompt_styler.git
3. 설치가 완료되면 ComfyUI를 완전히 새로 시작합니다.
사용방법은 간단합니다. 아래 그림과 같이, Add node -> utils -> SDXL Prompt Styler (또는 SDXL Prompt Styler Advanced)를 선택하면 됩니다.
이제부터 직접 활용하는 방법을 보여드리겠습니다. 우선 저는 아래와 같은 기본적인 워크플로에서 시작하겠습니다. 아래 그림을 저장한 뒤 ComfyUI 캔버스에 드래그&드롭하면 이 워크플로를 불러들일 수 있습니다.
여기에서 프롬프트와 관련된 부분만 확대시켜보겠습니다.
- 왼쪽 두개는 그냥 프롬프트와 부정적 프롬프트를 입력하는 노드입니다.
- 오른쪽의 위 두개는 SDXL base 모델에대한 CLIP Text Encoder 로서, 앞쪽은 긍정적 뒤쪽은 부정적 프롬프트를 처리합니다.
- 이 두 노드에는 텍스트를 2개 입력받습니다. text_g는 OpenCLIP ViT-bigG 모델, text_l 은 CLIP ViT-L 모델에 대한 입력입니다. 대부분 동일한 값을 사용해야 하기 때문에 왼쪽 프롬프트와 오른쪽 CLIP Text Encoder 에 두개씩 연결합니다.
- 오른쪽 아래 두개는 SDXL refiner 모델에 대한 CLIP Text Encoder입니다. 이 노드들은 부정적 프롬프트는 없이 긍정적 프롬프트만 입력으로 받습니다.
우리는 여기에서 Prompt(Pos) 및 Prompt(Neg)를 SDXL Prompt Styler 를 대체하는 것이 목표입니다.
우선 빈 캔버스에서 Add node -> utils -> SDXL Prompt Styler를 선택해 SD Prompt Styler 노드를 하나 추가합니다. (프롬프트는 그냥 복사해 두었습니다)
이제 Prompt 노드 두개는 삭제합니다. 그리고 SD Prompt Styler 노드의 text_positive 슬롯을 CLIPTextSDXL(Pos) 노드의 text_g/text_l 슬롯, 그리고 CLIPTextRefiner(Pos) 노드의 text 슬롯에 연결합니다.
마찬가지로 SD Prompt Styler 노드의 text_negative 슬롯을 CLIPTextSDXL(Neg) 노드의 text_g/text_l 슬롯, 그리고 CLIPTextRefiner(Neg) 노드의 text 슬롯에 연결하면 완성입니다.
이제 시험해 보겠습니다. SDXL 모델 스타일 106가지의 첫번째 예를 해보죠. 아래와 같이 SDXL Prompt Styler를 입력합니다.
- SD Prompt Styler 노드의 긍정적 프롬프트 : woman
- SD Prompt Styler 노드의 긍정적 프롬프트 : (비워둡니다)
- <style> 위젯 : sai-3d-model
- log_prompt : Yes
참고로 맨아래에 있는 log_prompt 를 yes로 설정하면, ComfyUI가 실행되는 명령 프롬프트 창에 탬플릿까지 적용된 최종 프롬프트들이 출력됩니다. 예를 들어 위의 예에서 프롬프트에는 "woman"만 입력했지만, 명령 프롬프트에는 아래와 같이 출력됩니다.
text_positive: woman
text_negative:
text_positive_styled: professional 3d model woman . octane render, highly detailed, volumetric, dramatic lighting
text_negative_styled: ugly, deformed, noisy, low poly, blurry, painting
아래는 실행 결과입니다. 잘 됩니다. ㅎㅎㅎ
===
스타일 설정은 ComfyUI_windows_portable\ComfyUI\custom_nodes\sdxl_prompt_styler 에 들어있는 jason파일에 의해 결정됩니다. 이 JSON 파일들은 아래와 같은 형식으로 만들어야 하며, 원하는대로 추가하거나 수정할 수도 있습니다.
[
{
"name": "base",
"prompt": "{prompt}",
"negative_prompt": ""
},
{
"name": "sai-enhance",
"prompt": "breathtaking {prompt} . award-winning, professional, highly detailed",
"negative_prompt": "ugly, deformed, noisy, blurry, distorted, grainy"
}
]
또한 자신이 잘 사용하는 스타일이 있다면 이런 형식으로 별도의 JSON 파일을 생성하여 이 폴더에 함께 넣어주면 같이 사용할 수 있습니다. 여러개의 JSON 파일을 함께 읽어서 사용하기 떄문입니다.
만약 이 폴더에 있는 JSON 파일을 모두 지우고 SDXL 모델 스타일 106가지에 들어있는 파일을 넣으면, AUTOMATIC1111과 동일하게 사용할 수 있을 겁니다. 사실 내용상으로는 거의 동일하기 떄문에 구지 그럴 필요는 없겠지만요. ㅎㅎ
아래는 최종적으로 만든 워크플로입니다. 필요하시면 가져다 쓰세요~
이상입니다.
- ComfyUI로 설치 및 사용법 기초
- ComfyUI 초보자 가이드
- ComfyUI를 위한 유용한 정보
- ComfyUI 사용법(1) - 기초
- ComfyUI에서 ControlNet 사용법
- 편리한 ComfyUI 워크플로 모음
- LCM-LoRA - 초고속 스테이블 디퓨전
- Stable Video Diffusion(비디오 스테이블 디퓨전)
- Stable Diffusion 인공지능 이미지 생초보 가이드
- Stable Diffusion 대표 UI - AUTOMATIC1111 설치방법
- Automatic1111 GUI: 초보자 가이드(메뉴 해설)
- Stable Diffusion에 대한 기본적인 이론
- ChatGPT로 스테이블 디퓨전 프롬프트 만들기