프롬프트의 작성 방법에 관해 설명하겠습니다. 세부적인 표현에 관한 설명은 나중에 하겠습니다. 이번 포스팅은 프롬프트의 작성 규칙 혹은 문법에 관한 설명입니다. 지켜야 할 몇 가지 규칙을 설명하고, 실제 예시를 들어 보겠습니다.
프롬프트의 작성 규칙
보통 대부분의 이미지 생성형 AI는 표현을 나열하는 식으로 프롬프트를 작성합니다. 순서가 태그(키워드)의 중요도에 영향을 미치지 않습니다. 반면 스테이블 디퓨전은 먼저 배치된 표현에 더 가중치를 주고 있습니다. 물론 정확한 배수는 알려져 있지 않습니다. 지금부터 이런 규칙을 정리해 보겠습니다.
먼저 배치될수록 높은 가중치 부여
예를 들어 대상보다 배경이나 공간의 품질이 더 중요하다고 가정합시다. 이때는 Masterpiece, best quality, ultra-realistic 같은 표현을 앞에 배치합니다.
반면 이미지에 등장하는 대상이나 사물의 묘사가 더 중요하다고 가정합니다. 그렇다면 대상에 대한 세부 묘사를 앞쪽에 배치합니다. ‘1 man, highly detailed eyes, tanned skin, well built body, military uniform’ 같이 특정 대상을 상세하게 묘사하고 배경이나 공간에 대한 묘사는 후 순위로 미룰 수 있습니다.
키워드 배열 또는 문장으로 구성
키워드를 나열하면서 프롬프트를 작성하거나, 문장 형식으로 구성하거나 차이는 없습니다. 다만 복잡하고 섬세한 묘사를 할 때는 문장의 형식으로 구성하는 것이 더 적절할 수 있습니다.
괄호의 사용
순서와 별개로 괄호를 넣어 가중치를 조정할 수 있습니다. 대괄호 ‘[]‘와 소괄호 ‘()‘을 사용합니다. 대괄호는 가중치 0.9를 의미하며 소괄호는 가중치 1.1을 의미합니다.
- ()는 키워드에 가중치 1.1을 부여합니다.
- 다음과 같이 (()) 중복 사용도 가능합니다. 중복 사용 시 1.1 x 1.1 = 1.21입니다.
- []는 키워드에 가중치 0.9를 부여합니다.
- 마찬가지로 2번 사용하면 0.9 x 0.9 = 0.81입니다.
우선순위
괄호를 적용된 키워드는 기존의 배치를 무시합니다. 예를 들어 기본이 A, B, C, D, E라고 합니다. 여기서 D와 E에 괄호를 부여하면 가중치 순서는 (D), (E), A, B, C입니다. 중요하지 않은 키워드에 너무 많은 괄호를 부여하면, 예상치 못한 결과가 나올 수도 있습니다.
괄호 내부에 가중치 부여
괄호를 사용하고 구체적인 수치를 기재하여, 가중치를 조정할 수 있습니다. 예를 들어 (masterpiece)라는 표현 안에 (masterpiece:1.5)와 같이 수치를 부여합니다. 구체적인 수치를 기재하여 가중치를 조정합니다. 디폴트 값은 1이며, 보통 0.5~1.5 정도의 수치를 추천합니다. 너무 올리거나 내릴 경우 이미지가 뭉개지거나, 원하지 않는 결과가 나오기도 합니다.
실제 이미지 예시
이제 간단하게 프롬프트를 작성하여 2개의 이미지를 생성하겠습니다. 다만 가중치를 달리하여 이미지가 어떻게 달라지는지 확인해 보겠습니다. 프롬프트는 다음과 같습니다.
텍스트 프롬프트: masterpiece, best quality, ultra-detailed, illustration, scenery, Korean Buddhist temple, stone lanterns, square pond, pine trees, snowing
네거티브 프롬프트: worst quality, low quality, bad pictures, signature, watermark, username, monochrome(흑백)
이제 프롬프트의 가중치를 조정하겠습니다. (square pond:1.5), (pine trees:1.5)로 변경합니다. 프롬프트는 다음과 같습니다.
텍스트 프롬프트: masterpiece, best quality, ultra-detailed, illustration, scenery, Korean Buddhist temple, stone lanterns, (square pond:1.5), (pine trees:1.5), snowing
네거티브 프롬프트: worst quality, low quality, bad pictures, signature, watermark, username, monochrome(흑백)
2번째 이미지는 연못과 소나무의 가중치가 너무 높아서, 절과 눈이 사라졌습니다. 1.5의 가중치를 1.2로 바꾸고 다시 이미지를 생성했습니다. 이렇듯 가중치에 따라 이미지가 완전히 바뀌기 때문에 시행착오의 과정이 필요합니다.
정리
이번 포스팅에서는 스테이블 디퓨전의 작성 규칙을 알아보았습니다. 스테이블 디퓨전에 빨리 익숙해지기 위해 다음 방법을 추천합니다. 우선 Civit AI 갤러리에서 마음에 드는 이미지를 고릅니다. 관련 모델(Checkpoint 및 Lora)을 다운로드받습니다. 프롬프트(텍스트/네거티브)를 참조하여 이미지를 생성합니다. 프롬프트의 표현 및 가중치를 취향에 맞게 변경합니다. 이런 과정을 반복하다 보면 자연스레 프롬프트 표현에 익숙해질 것입니다.