이 페이지는 복잡한 조건식을 통해 자동생성 프롬프트를 강제로 수정하고자 하는 고급 사용자들을 위한 가이드를 제공합니다. 일반적으로 nsfw 이미지를 생성하고자 할 때 유용할 가능성이 있습니다.


요약하면:


1. 랜덤/다음 프롬프트를 눌렀을 때 획득한 프롬프트가 (조건식)을 만족하면 키워드를 수정/가중치 조절 하거나, 또는 보조 키워드를 추가합니다. 

2. NAI 이미지 생성을 눌렀을 때 와일드카드 체크등이 모두 끝난 프롬프트가 (조건식)을 만족하면 네거티브 프롬프트를 수정/제거 하거나, 또는 보조 키워드를 추가합니다.


예제가 워낙 숭해서 검색용으로만 일반탭에 냅둘 예정입니다.




예시:


1. 조건식


해당 명령어를 발동하기 위한 조건을 기입합니다. AND (&) 및 OR (|) 연산을 사용 할 수 있으며, ((A&B)|(C&B)) 와 같이 중첩하여 조건문을 사용할 수 있습니다. 


조건식의 원소 A, B, C .. 는 *퍼펙트 매칭, ~!퍼펙트 네거티브 매칭 등을 지원합니다. 지원하는 상세한 구문은 다음과 같습니다.


keyword매칭 키워드 검색 (breasts 검색 -> large breasts 등도 인식) -> 찾으면 True
*keyword퍼펙트 매칭 (*breasts 검색 -> breasts 만 인식) -> 찾으면 True
~keyword네거티브 키워드 검색 (~loli 검색 -> hololive 등도 인식) -> 못찾으면 True
~!keyword퍼펙트 네거티브 매칭 (~!loli 검색 -> loli 만 인식) -> 못찾으면 True


예시 구문 = (penis&*sex&girl on top): = (프롬프트 내에 penis를 포함하는 키워드가 있고, sex 키워드가 확실하게 있고, girl on top을 포함하는 키워드가 있으면):


(조건식): 을 비포함 하는 경우에는 조건식이 True인 것으로 간주됩니다. 아래 프롬프트에서는 cum이 프롬프트 내에 퍼펙트 매칭으로 존재한다면 무조건 cum, {{cum overflow}} 로 나타나는 경우를 예시로 들고 있습니다. 


2. 프롬프트 삽입 위치 지정



(1girl이 퍼펙트 매칭으로 존재하고, 동시에 breasts를 포함하는 키워드가 있으면): 랜덤 프롬프트 뒤에 {nsfw}를 추가합니다. 

(랜덤 프롬프트에 loli 키워드가 없으면 선행 고정 프롬프트 뒤에 {loli, aged down, young} 을 추가합니다.)


prefix선행 고정 프롬프트의 뒤에
prompt랜덤 프롬프트의 뒤에 (후행 고정 프롬프트의 앞에)
postfix후행 고정 프롬프트의 뒤에
keyword프롬프트 내의 특정 키워드 뒤에 / 단, 키워드가 프롬프트 상에 없으면 무효


3. 키워드 대치 지정



(랜덤 프롬프트 내에 penis를 포함하는 키워드가 있고, sex 키워드가 확실하게 있고, girl on top을 포함하는 키워드가 있으면): 프롬프트 내의 pussy 키워드를 pussy, {spread pussy}로 대치합니다.


4. ^ (캐럿) 기호 

프로그램의 로직에 의해 조건부 프롬프트에서는 A, B, C 형태로 변경 하거나, 추가 할 키워드를 지정할 수 없습니다. 대신, A^B^C 형태로 입력 해 두면 A, B, C 형태로 자동으로 바꿔줍니다. 


대신 조건부 프롬프트 내에서 이런 키워드는 사용할 수 없게 됩니다. 



추가적으로 용도에 대해


1. small breasts를 지우고 large breasts 등의 프롬프트를 선행 프롬프트의 뒤에 넣는 등 프롬프트의 다양성은 유지하면서 좀 더 정밀하게 제어하고 싶은 경우가 있습니다.

2. Explicit, NSFW, Sensitive 프롬프트를 동시에 적용했을 때 Explicit에만 특정 선/후행 고정 프롬프트를 삽입하고 싶은 경우가 있습니다. 

3. 프롬프트가 길어지면서 일부 주요 프롬프트가 씹히거나, NAI에서 매우 weak한 키워드가 있을 때 사용자가 임의로 해당 키워드가 출현하면 해당 키워드를 {,}를 이용하여 부스팅 하거나, 과도한 영향을 행사하는 키워드의 영향력을 [,]를 통해 줄일 수 있습니다.



조건부 네거티브 프롬프트



조건부 네거티브 프롬프트는 기본적으로 작동 방식이 유사합니다. 


rem 제거 할 키워드를 잘못 씀 



추가적으로 다음 두가지 문법을 제공합니다:


add keyword네거티브 프롬프트에 keyword 추가
rem keyword네거티브 프롬프트에 keyword 제거


(92m):add {glasses:1.2}, (~outdoors&~indoors):rem simple background^white background


예를들어, 92m 이라는 아티스트는 안경을 매우 선호하기 때문에 일반 프롬프트에서 안경이 튀어나올 수 있습니다. 이 경우 와일드카드 등을 사용하여 랜덤으로 작가를 호출하고 있을 때 원하지 않는 이미지가 생성될 수 있으므로 그림에서는 조건식 (92m) 이 프롬프트 내에 존재하면 네거티브 프롬프트에 {glasses:1.2}를 추가하는 예제를 설명하고 있습니다.


또한, outdoors 키워드나 indoors 키워드가 프롬프트 내에 존재하지 않으면 네거티브 프롬프트에 존재하던 white background 및 simple background 프롬프트를 제거하는 예시를 설명합니다.


지동화 과정에서 조건부 프롬프트와 조건부 네거티브를 다루는 것은 생각보다 까다롭고 매 검색/생성 단계마다 cpu 자원을 소모하기 때문에 적절한 길이 조절이 필요하며, 내용이 길어지는 경우 외부 문서 프로그램의 도움을 받아 체계적으로 정리해야 할 필요가 있습니다. 


현재는 (조건):{(조건):command1, (조건):command2, ... }와 같은 재귀적 접근을 지원하지 않습니다.


2/1 추가 내용


조건식 내에  를 체크할 수 있는 로직을 추가하였습니다.


(e): Explicit 일 때, (q): NSFW 일 때, (s): Sensitive 일 때, (g): General 일 때

마찬가지로, (~e):, (~q):, (~s):, (~g): 형태로도 사용 가능하며, (e&boy): 처럼 논리연산자와 묶어서 사용 할 수 있습니다.