AI 이미지/Stable Diffusion

ComfyUI로 스테이블 디퓨전 3 API 사용하기

하늘이푸른오늘 2024. 5. 28. 09:12

Stable Diffusion 3는 Stability AI의 최신 txt2img(텍스트-이미지) 변환 모델입니다. 스테이블 캐스케이드(Stable Cascade)스테이블 디퓨전 XL(SDXL)과 같은 이전 모델보다 텍스트를 생성하는 성능 및 프롬프트를 이해하고 따르는 능력이 훨씬 뛰어납니다.

이 모델은 현재 많은 관심을 받고 있지만, API를 이용해서만 사용할 수 있습니다.

이 글에서는 ComfyUI에서 Stable Diffusion3를 사용할 수 있는 방법을 알려드리겠습니다.

  • 따라하기
    • 1단계: ComfyUI 매니저 설치
    • 2단계: SAI API 노드 설치
    • 3단계: API 키 정의 
    • 4단계: 워크플로 불러오기
  • 샘플 이미지

따라하기

스테이블 디퓨전 개발사인 Stablility AI에서는 스테이블 디퓨전 3 API를 지원하는 공식 ComfyUI 노드를 제공하고 있습니다.

1단계: ComfyUI 매니저 설치

반드시 설치할 필요는 없어도, ComfyUI Manager를 사용하면 여러가지 편리한 기능을 제공합니다. ComfyUI Manager가 무엇인지, 어떻게 설치하면 되는지 등은 이 글을 읽어보시기 바랍니다.

2단계: SAI API 노드 설치

메인 메뉴 맨 아래에 있는 [Manager] 버튼을 누른 뒤, 다이얼로그 박스에서  [Install Custom Nodes]를 누릅니다. 아래와 같은 창이 나타나면 오른쪽 위 검색창에서 stability api라고 입력한 뒤, Stability API Nodes for ComfyUI 를 찾아 [Install] 버튼을 누르면 설치됩니다. 

설치가 완료된 후에는 [Restart] 버튼을 눌러 ComfyUI를 새로 시작합니다.

3단계: API 키 정의(추천)

Stability AI 노드는 그냥 사용해도 되지만, 별도로 Stability AI API 키를 정의해두면 좋습니다. 각각의 워크플로를 실행시킬 때마다 API키를 입력할 필요가 없기 떄문입니다. 혹은 워크플로를 공유하다가 자신의 API키를 노출시킬 위험도 없기 때문입니다. 

먼저 아래의 폴더로 들어가서...

ComfyUI_windows_portable > ComfyUI > custom_nodes > ComfyUI-SAI_API

sai_platform_key.txt 라는 파일을 생성하고, 이 파일에 여기에서 받아온 API키를 넣어주고 저장합니다.

그 다음 ComfyUI를 새로 시작합니다.

4단계: 워크플로 불러오기

아래는 Stable Diffusion 3 텍스트-이미지(txt2img) 워크플로입니다. 아래의 json 파일을 사용하셔도 되고, 이미지를 저장해서 ComfyUI 화면에 Drag&Drop 하셔도 됩니다.

SD3_text2img.json
0.00MB

참고로 아래는 이미지-이미지(img2img) 워크플로입니다.

sd3_img2img.json
0.00MB

샘플 이미지

텍스트 생성

아래는 텍스트를 포함하는 이미지를 생성해 본 결과입니다. 텍스트를 생성하는 능력은 SDXL이나 SD Cascade와 비교할 필요가 없을 정도로 뛰어납니다. 특히 SDXL 등은 단어가 조금만 길어져도 제대로 생성되지 않지만, Stable Diffusion 3의 경우에는 약간의 오류가 있기는 해도 거의 문제없이 텍스트를 생성합니다.

프롬프트: A beautiful Asian woman in her 20s is holding her hand out in front of her. The words “Stable Diffusion 3 API” are written on the front.(20 대의 아름다운 아시아 여성이 손을 앞으로 뻗고 있다. 앞쪽에 "Stable Diffusion 3 API"라는 글씨가 쓰여있다.)

글씨체나 글씨 위치 등을 마음대로 조정할 방법이 전혀 없지만, 일단 문장 자체는 잘 써지는 편이네요. 손가락은 많이 이상합니다만... ㅠㅠ

좀더 상세한 비교는 이 글을 읽어보시기 바랍니다.

프롬프트 이해 및 따르기

프롬프트를 따르는 능력도 SDXL 이나 SD Cascade에 비해서는 훨씬 뛰어납니다. 하지만, DALLE-3 에 비해서는 아직까지도 미흡한 부분이 많은 것 같네요. 아래의 샘플들은 DALL-E 3와 Stable Diffusion XL 비교에 있는 프롬프트를 그대로 사용해서 생성한 결과입니다.

프롬프트: An aerial perspective of a vast forest landscape that forms a DNA double helix pattern, with rivers and clearings symbolizing its features. (DNA 이중 나선)

프롬프트 : A beautiful lady dancing with aliens at a riverside park with many spectators clapping, flying saucers in the sky, and a cruise ship on the river (외계인과 춤추는 여인)

프롬프트 : girl with red long hair blown by wind, dark black blue cape, castle on the background

프롬프트: Barack Obama smacks Donald Trump in the face with a book. (버락 오바마가 도날드 트럼프의 얼굴을 책으로 때리는 모습)

프롬프트: The word bread made of bread (bread 라고 쓰여진 빵)

결론

전반적으로 품질은 DALL-E 를 쫒아가지 못합니다. 물론 잘 되는 것도 있기는 하지만, 구상했던 대로 생성되지 않는 비율이 높은 것 같습니다. 

무엇보다, 제어할 수 있는게 전혀 없습니다. ControlNet이나 LoRA 같은건 물론이고, 프롬프트를 입력하는 것 외에는 사용자가 설정을 바꿀 수 있는 방법이 아무것도 없다고 보면 됩니다. DALL-E 3보다 나은 건 이미지 비율을 지정할 수 있는 정도?

게다가... Stable Diffusion 3를 사용하려면 Credit이 필요합니다. 10 달러에 1000 크레딧이고, 한장 생성하는데 6.5 크레딧 정도 필요하니, 10달러에 150장 정도 생성할 수 있어서 비싸다고는 할 수 없지만, 그래도 DALLE-3는 Copilot을 통해 무료로 사용할 수 있다는 걸 생각해보면 구지 Stable Diffusion 3를 사용할 이유는 없을 것 같네요.

이상입니다.

Woman holding a wooden board with “Stable Diffusion 3 API is not better than DALL-E 3” written on it.

이 글은 https://stable-diffusion-art.com/stable-diffusion-3-api/#Use_SD3_API_with_ComfyUI 를 번역하면서 일부 수정하여 작성하였습니다.

====