AI 이미지/Stable Diffusion

Stable Diffusion 3를 내 PC에서 돌리는 방법

하늘이푸른오늘 2024. 12. 20. 15:34

얼마전, ComfyUI에서 API를 통해 SD3를 돌리는 방법을 올려드렸는데, 이 글에서는 자신의 컴퓨터에서 스테이블 디퓨전 3 미디엄(Stable Diffusion 3 medium)을 돌리는 방법에 대해 설명드립니다.

소프트웨어

이 글에서는 ComfyUI를 사용하여 SD3 medium을 돌리는 방법을 사용합니다. ComfyUI는 매우 빠르게 사용자가 늘고 있는, 이제는 사실상 AUTOMATIC1111보다 더 많이 활용되는 것으로 예상되는 Stable Diffusion용 웹UI 입니다. 

ComfyUI를 설치하는 방법과 기초적인 사용법은 이 글을 읽어보시고, 좀 더 잘 활용하는 방법은 튜토리얼을 읽어보시기 바랍니다.

시스템 요구사항

SD3 미디엄 모델을 돌리려면 VRAM이 12GB인 GPU가 필요합니다. 약간 작은 버전(T5XXL이 빠진 모델)은 8GM VRAM의 GPU가 필요합니다.

모델

스테이블 디퓨전 3 미디엄 모델은 이른바 2B(20억 파라미터) 입니다. SD3 API로 접근할 수 있는 모델은 8B 대형 모델이라고 추정되고 있는데, 명백히 이것과 다른 모델입니다. 기본적으로 SD3 medium은 SD3 API에 비해 기능이 조금 떨어진다고 보시면 됩니다.

스테이블 디퓨전 3에 대해 잘 모르신다면 이 글을 읽어보시기 바랍니다.

라이선스 문제

SD3 모델은 상업용이 아닌 경우에 무료로 사용할 수 있습니다. 무엇이 상업용인가하는 것에 대해서는 아직 몇가지 우려가 있다고 합니다. 예를 들어 SD3모델로 생성한 이미지를 책에서 사용할 경우 이를 상업용으로 볼 것인가 하는 것이죠. 

라이선스에 따르면 모델의 사용 및 모델을 사용한 "파생 저작물'의 사용을 제한하고 있습니다.

당신은 (Stability AI사에서 제공하는) 소프트웨어 제품 또는 파생 저작물을 사용하여 제3자가 귀하의 호스팅 서비스 혹은 귀하의 API를 통해 소프트웨어 제품 또는 파생 저작물을 사용할 수 있도록 해서는 안 됩니다. (You may not use the Software Products or Derivative Works to enable third parties to use the Software Products or Derivative Works as part of your hosted service or via your APIs,)

여기에서 파생 저작물은 무엇일까요? 라이선스에 따르면 모델로 생성한 이미지는 파생저작물이 아니라고 명시하고 있습니다.

명확히 하기 위해 파생 저작물에는 모델의 결과물이 포함되지 않습니다. (For clarity, Derivative Works do not include the output of any Model.)

결국 라이선스에서 요구하는 것은 Stability AI로부터 상업적 라이선스를 획득하지 않는 한, 이미지 생성 서비스를 호스팅할 수 없다는 것입니다. 즉, 허용가능한 사용 정책에 부합하는 한, 모델을 사용해서 생성한 이미지는 어떻게 사용해도 무방하다는 뜻일 겁니다.

그런데 Stability AI의 등록 페이지에 나와 있는 내용은 좀 모호합니다. Creator License 라는 라이선스에 따르면, 예술가 혹은 소셜미디어 사용자일 경우, 라이선스(매월 20달러)를 사는 것이 좋다고 제안하고 있습니다.

Stability AI는 사용자 커뮤니티에 관계가 깊은 만큼 성공을 위해서는 라이선스 문제를 최대한 빨리 명확히 해야 할 것 같습니다.

CompyUI에서 사용방법

1 단계: ComfyUI 업데이트

ComfyUI를 업데이트하는 가장 쉬운 방법은 ComfyUI Manager 를 사용하여 업데이트 하는 방법입니다. 그냥 간단히 [Manager] 버튼을 누른 다음 [Update ComfyUI] 또는 [Update All] 버튼을 누르면 됩니다.

2 단계: SD3 모델 다운로드

아래의 링크에서 SD3 모델을 다운로드 받은 후, CompyUI/models/checkpoints  폴더에 넣어주면 됩니다.

3 단계: 워크플로 다운로드

아래의 워크플로를 다운로드 받은 후, ComfyUI 화면에 Drag&Drop 합니다. 아래쪽의 그림을 다운로드 받은 후 Drag&Drop  해도 됩니다.

sd3m.json
0.01MB

4 단계: 모델 선택 및 이미지 생성

[Load Checkpoint] 노드에서 아래의 모델을 선택합니다.

      • 완전한 미디엄 모델 : stableDiffusion3SD3_sd3MediumInclT5XXL (12 GB VRAM)
      • 소형 미디엄 모델 : stableDiffusion3SD3_sd3MediumInclClips (8 GB VRAM)

그 다음 화면 아래에 있는 [Queue] 버튼을 누르면 이미지가 생성됩니다. 메모리가 부족할 경우, 아래와 같은 메시지가 뜨면서 실행되지 않습니다. 저도 5070이 나오면 새로 장만해야겠습니다. ㅠㅠ

이미지 크기

SD3 Medium 모델을 사용하에 생성할 수 있는 이미지 종횡비 및 크기는 아래와 같습니다. 기본적으로 SDXL과 동일하다고 생각하시면 됩니다.

1:1 – 1024 x 1024
5:4 – 1152 x 896
3:2 – 1216 x 832
16:9 – 1344 x 768
21:9 – 1536 x 640

비교

아래는 스테이블 디퓨전 3  API를 사용한 이미지와 자신의 PC에서 돌릴 수 있는 SD3 미디엄 모델에서 생성된 이미지를 여러가지 측면에서 비교해본 결과입니다.

참고로,  SD3  API와 SDXL, SD Cascade를 비교한 글도 참고하시기 바랍니다.

텍스트 생성

Stable Diffusion 3 API를 사용할 수 있게 되면서, 매우 품질이 좋은 텍스트를 생성할 수 있게 되었습니다. SD3 미디엄 모델에서도 그정도 성능이 나오는지 확인해 보겠습니다.

아래는 프롬프트입니다.

프롬프트: The words “Stable Diffusion 3 Medium” made with fire and lava. dimly lit background with rocks
부정적 프롬프트: disfigured, deformed, ugly

아래는 T5XXL이 없는 소형 SD3 미디엄 모델을 사용하여 생성한 결과입니다. (제 GPU가 8GB 모델이라서 대형 모델은 돌릴 수 없었습니다.ㅠㅠ)

아래는 Stable Diffusion 3 API로 생성한 이미지입니다. 공정하게 비교할 수 있도록 취사선택하지 않고 그냥 4개를 생성한 결과를 모두 보여드립니다.

보시는 것처럼, 소형 SD3 미디엄 모델은 SD3 API로 생성한 이미지보다 텍스트 생성 기능이 떨어집니다. 그런데 SD3 API로 생성한 텍스트도 그다지 만족스럽지 못하죠. 위의 예를 보면 맞춤법이 맞는 그림이 하나도 없으니까요. 그리고 원하는 위치에 배치할 수 없다는 점에서도 전혀 실용적이라고 볼 수는 없습니다. 이 정도 수준이면 그냥 텍스트 없이 생성한 후, 포토샵 등에서 편집하는 편이 훨씬 나을 겁니다.

참고로 아래는 이미지 크리에이터(DALL-E 3)로 생성한 이미지입니다.

자세 제어

Stable Diffusion 3 미디엄 모델은 사람의 자세 및 해부학적 표현에 문제가 있습니다. 여기에서는 SD3 Medium, SDXL, SD3 API를 서로 비교해 보겠습니다.

프롬프트: Photo of a woman sitting on a chair with both hands above her head, white background
부정적 프롬프트: disfigured, deformed, ugly, detailed face

아래는 소형 SD3 Medium (T5XXX 없음)으로 생성한 결과입니다. 손 발이 제대로 표현되지 않은 이미지가 많네요.

아래는 SDXL 모델 (DreamshaperXL10)을 사용하여 생성한 이미지입니다. 깔끔하게 나왔네요.

아래는 SD3 API를 사용하여 생성한 이미지입니다. 이상하네요. 원래 잘 나왔었는데 이번엔 제대로 나온 게 없군요. ㅠ

어쨌든 SD3 미디엄의 경우 인간의 자세를 모사하는데는 그다지 성능이 뛰어나다고 할 수 없습니다. SDXL이 훨씬 나아 보이네요.

참고로 아래는 이미지 크리에이터(DALL-E 3)로 생성한 이미지입니다. 깔끔합니다. 거의 완벽하네요.

프롬프트 따르기

모델이 얼마나 프롬프트를 잘 이해하고 따르는지 테스트해 보겠습니다. 프롬프트는 아래와 같습니다.

프롬프트: Still life painting of a skull above a book, with an orange on the right and an apple on the left

다음은 SD3 미디엄(소형)으로 생성한 이미지입니다. 오른쪽엔 오렌지, 왼쪽엔 사과가 있어야 하는데, 하나도 맞지 않네요.

다음은 SDXL로 생성한 이미지입니다. 마찬가지로 하나도 프롬프트와 맞지를 않네요.

스테이블 디퓨전 3 API를 사용하면 훨씬 낫네요. 세개 모두 정확하게 프롬프트를 따릅니다.

참고로 아래는 DALL-E 3(이미지 크리에이터)를 사용하여 생성한 결과입니다. 다채롭기는 한데 프롬프트를 정확하게 따른다고 보기는 힘드네요.

이번엔 좀더 복잡한 프롬프트로 시험해보겠습니다.

프롬프트: a man and woman are standing together gains a brick wall. The left side of the brick wall is red, right side is gold. the woman is wearing a t-shirt with a panda motif, she has a long skirt with birds on it, the man is wearing a silver suit, he has spiky red hair

SD3 미디엄 모델(소형)입니다. 남녀가 뒤바뀐 경우도 있고, 오른쪽 벽이 금색이 아닌 경우도 있고 모든 여자 치마에 새 그림이 없습니다. 정확하게 맞는 건 없고... 잘해도 70점 정도 수준이네요.

이번엔 SD3 API로 생성한 이미지입니다. 이 이미지들은 뭐... 흠잡을데가 없네요. T5XXL이 포함된 SD3 미디엄 모델은 테스트해보지 않아서 모르겠지만 이 중간쯤 되지 않을까 싶습니다.

이번엔 이미지 크리에이터(DALLE-3)로 생성한 결과입니다. 애니 스타일로 나오기는 했습니다만, 프롬프트는 잘 이해하고 있네요. 

결론

SD3  미디엄 모델은 (T5XXL이 빠진 소형 모델은) 약간 어중간해 보입니다. 12GB 에서 돌려지는 SD 미디엄 모델은 SDXL에 비해 프롬프트를 이해하는 능력이 훨씬 나어졌다고 하는데... 이 부분은 나중에 더 확인을 해봐야겠습니다. 전반적으로 볼때 소형 SD3 미디엄 모델만으로는 SDXL을 완전히 대체할 수 있다고 하긴 힘들 것 같네요. 나중에 파인튜닝 모델이 추가되고 LoRA나 ControlNet 지원여부에 따라 달라질 수는 있겠지만요. 

이상입니다.

이 글은 stable-diffusion-art.com의 글을 번역하면서, 여러가지로 변형해 작성한 글입니다.

====