내가 아직도 뉴비긴 한데 쌩 뉴비시절

문법이 전체적으로 정리가 안 돼서 좀 찾아헤맸던 기억이 있음


공식문서 쭉 읽어보고 prompt 줄에 들어가는 문법 관련 사항을 정리함.

잘못된 거나 애매한 거 있으면 지적해줘


1. 기본 문법사항

prompt에는 단어나 문장이 들어감, 단어와 문장 사이는 쉼표(,)로 구분함

단어형 프롬프트 예시

문장형 프롬프트 예시, 예시는 '하츠네 미쿠가 물 아래에서 노래하고 있다'인데 AI가 물 아래 그림은 잘 못 그려서 그냥 물에 들어가서 노래하는 그림이 나온 거임.

단어형에서는 5/75, 문장형에서는 7/75가 보일텐데 프롬프트에 발행된 토큰의 개수임

개수제한이 있는 건 아니고 디테일한 묘사를 하다 저 75개를 넘으면 상한이 75의 배수로 상승함

이 최대치가 상승할 때마다 각각 단어/문장의 비중이 떨어지니 그림 뽑을 때 신경쓰는 것이 좋음


2. 주의/강조

소괄호 () 를 사용하여 특정 단어를 1.1배 강조

대괄호 [] 를 사용하여 특정 단어를 1/1.1배 = 0.909배 강조(주의를 덜 기울이게 한다는 의미)

소괄호 안에 콜론을 넣어서 특정 단어의 강조 배수를 지정할 수 있음 (Apple:1.3)

문장 내에서 특정 단어만 강조하는 것도 가능함 Snow-White eats (poison apple:1.5)

괄호는 중복해서 넣는 것이 가능함 ((fire)) = (fire:1.21)

강조 용도가 아니라 괄호를 프롬프트에 작성하고 싶으면 rice shower \(umamusume\) 처럼 역슬래시를 넣어서 작성


3. 텍스트 대체

[A|B]

스텝 진행 시마다 다른 텍스트로 그림을 그리게 만듦.

[cow|horse] in a field

움짤은 공식문서에서 가져옴
1스텝은 소, 2스텝은 말, 3스텝은 소, 4스텝은 말… 을 그리는 식으로 그림이 그려짐

[A|B|C|D] 등 더 많이 넣어서 개념을 섞는 것도 가능함

사용 시 그림을 왔다갔다하므로 스텝을 올리는 것도 좋은 선택이 됨

서로 다른 개념을 쓰까보고 싶을때: Prompt editing과 alternating  < 구체적인 예시를 참고하고 있어 보면 도움이 되는 글


4. 프롬프트 에디팅

3번과 유사하지만 스텝 중간에 프롬프트를 바꿔치기하는 기술

[flower:universe:0.5]: 28스텝 기준, 14스텝(50%)까지는 꽃을 그리다 15스텝부터는 우주를 그림

[flower:universe:11]: 몇 스텝짜리든 11스텝까지는 꽃을 그리다 12스텝부터는 우주를 그림

[universe:0.3]: 28스텝 기준, 8스텝(30%)까지는 프롬프트 없고 9스텝부터 우주를 그림

[flower::20]: 20스텝까지 꽃을 그리고 그 이후 스텝은 프롬프트 없음

위 예시 숫자가 정수도 있고 소수도 있는데 0<step<1이면 전체 스텝 대비 %로 들어가고, 정수면 그 스텝에 들어감


이것도 3번에 도움 되는 글 참고


5. 컴포저블 디퓨젼

개념1 AND 개념2

공식문서에는 없고 리드미에 딸랑 세 줄 적혀있지만 잘 작동하는 기술

AND 앞뒤의 단어나 문장을 동시에 반영해서 개념을 섞는다고 함(소문자 and 안 됨, 반드시 모든 철자를 대문자로 AND)

사용 시에는 필히 스텝 수를 높게 지정해야 함

[Web UI] 도 할 수 있다! NAI 멀티프롬프트 + AND란?  참고



아래는 '다이나믹 프롬프트' 또는 '랜덤 다이나믹 프롬프트' 스크립트를 켜야 작동함

AI그림챈에서 최신버전(글 작성 시 0.58.4)을 설치했다면 다이나믹 프롬프트 v0.13.5가 기본으로 켜져있음

아마 공식문서에 있는 와일드카드 확장기능이랑 다른 거 같은데 여튼 비슷하니까 여기서 설명함


6. 다이나믹 프롬프트

{A|B|C|D}

{2$A|B|C|D}

단어나 문장 중 하나를 임의로 골라서 그리게끔 하는 태그

앞에 n$을 넣으면 n개 뽑아줌(n은 2 이상인 정수)

스펙상으로는 있는데 굴려보니 실제로 작동하지는 않음(버전 0.57.1 기준: 업데이트 되면 고쳐질 수도 있음)

와일드카드 스크립트에 병합되는 과정에서 버그 난 듯

0.58.3에서 원래 쓰던 거 말고 다른 걸로 교체됨


7. 와일드카드

a girl who wear __aesthetics\colours__ dress run on playground

다이나믹 프롬프트의 파일 버전

'webUI 설치 폴더\extensions\sd-dynamic-prompts\wildcards'에 들어있는 텍스트 파일(예시에선 저기의 하위 폴더인 aesthetics 안의 colour.txt) 내부의 문장 중 임의로 하나를 뽑아서 그리는 기능

언더바(_) 둘 + 파일명 + 언더바(_) 둘임 → __filename__

6번과 7번은 조합해서 쓸 수 있음 {__aesthetics\colours\brown__|__aesthetics\colours\pink__}

혹은 텍스트 파일 안에 6번 {2$A|B|C} 문법이 들어가있는 것도 가능함

WebUI 랜덤가챠 좋아하는사람들이 왜 이건 안쓰냐 wildcards 카테고리 추가  < 참고


아래는 '프롬프트 매트릭스' 스크립트를 켜야 작동함


8. 표

<cyber|cyborg|> cat <photo|image|artistic photo|oil painting> in a <car|boat|cyber city>

다양한 태그를 넣었다 뺐다 하는 표를 만들어주는 기능

물론 저렇게 뽑으면 3*4*3=36장을 한 번에 뽑는 거니까 그래픽카드 사용에 주의

프롬프트랑 직접 관련된 거라 다루기는 했는데 X/Y 플롯 스크립트를 사용하는 편이 나음

뭔가 버그가 있는지 이상하게 동작하더라

[Web UI] 프롬 매트릭스보다 좋다? X/Y Plot: Prompt S/R+Order  < 참고



요약


1. 단어, 문장을 쉼표로 구분

2. (강조 1.1배), [강조 0.9배], (강조 n배:n), \(이건 강조 아님\)

3. [홀수 스텝|짝수 스텝]

4. [초반 스텝:나중 스텝:n]

5. 섞을 개념 1 AND 섞을 개념 2    ※ 스텝 올리기

(6~7) '다이나믹 프롬프트' 스크립트

6. {2$랜|덤|태|그}

7. __랜덤태그텍스트파일__ (scripts\wildcards)

(8) '프롬프트 매트릭스' 스크립트

8. <표|그><리|기>


참고 자료

Stable Diffusion WebUI 공식 문서

Stable Diffusion WebUI README

이 글 다섯 번째 댓글

기타 AI그림채널 정보탭 관련글들(본문에 링크됨)

통합팩 스크립트 업데이트 [0.58.3]