PromptJSON: custom node for ComfyUI that reformats prompts in various Schema using an LLM
세부 정보
파일 다운로드
모델 설명
ComfyUI용 PromptJSON 노드
설명
PromptJSON은 ComfyUI용 맞춤형 노드로, 자연어 프롬프트를 구조화하고 이미지 생성 워크플로우에서 외부 LLM 노드용 프롬프트를 생성합니다. 다양한 스키마 유형을 지원하여 일관되고 스키마 기반의 이미지 설명을 생성하는 데 도움을 줍니다.
기능
- 여러 스키마 유형에 따라 자연어 프롬프트를 구조화합니다.
- 여러 전략을 사용하여 외부 LLM 노드용 프롬프트를 생성합니다.
- 네거티브 프롬프트를 지원합니다.
- 출력 세부 정보의 복잡도를 조정할 수 있습니다.
- 프롬프트 구조를 미세 조정하기 위한 사용자 정의 스키마 지원합니다.
- 여러 프롬프트 생성 전략 지원 (One Shot 및 Few Shot)
- 다양한 스키마 유형 지원: JSON, HTML, 키-값, 속성 기반, 시각적 계층 분해, 구성 그리드, 예술적 참조
- 안정적인 작동을 위한 오류 처리 기능
설치
- ComfyUI 사용자 정의 노드 디렉토리로 이동합니다.
- 이 저장소를 클론하거나
PromptJSON.py,prompt_templates.py,__init__.py파일을ComfyUI-PromptJSON이라는 새 디렉토리에 복사합니다. - ComfyUI를 재시작하거나 워크플로우를 새로 고칩니다.
사용법
ComfyUI에서 "prompt_converters" 카테고리의 "Prompt JSON" 노드를 찾습니다.
다음 입력을 연결합니다:
prompt: 주 프롬프트 텍스트negative_prompt: 이미지에서 피하고 싶은 요소complexity: 0.1에서 1.0 사이의 부동 소수점 값으로 출력 세부 수준을 조정합니다.llm_prompt_type: "One Shot" 또는 "Few Shot" 중 선택schema_type: JSON, HTML, Key, Attribute-Based, Visual Layer Breakdown, Compositional Grid, Artistic Reference 중 선택custom_schema(선택 사항): 사용자 정의 스키마 문자열(형식은 선택한 스키마 유형에 따라 다름)
출력을 사용합니다:
system_prompt: LLM용 시스템 지침user_prompt: 구조화된 입력을 포함한 LLM용 주 프롬프트negative_passthru: 그대로 전달된 네거티브 프롬프트schema: 프롬프트를 구조화하는 데 사용된 형식화된 스키마
LLM 프롬프트 유형
- One Shot: 입력 프롬프트에 기반한 단일 구조화된 응답 예시를 제공합니다.
- Few Shot: 다양한 복잡도 수준에서 구조화된 응답 예시를 여러 개 제공합니다.
스키마 유형
- JSON: 세부적인 이미지 설명을 위한 전통적인 JSON 구조
- HTML: 이미지 요소를 정리하기 위한 HTML 태그 구조
- Key: 간단한 설명을 위한 키-값 쌍 구조
- Attribute-Based: 이미지의 특정 측면에 집중하는 속성 목록
- Visual Layer Breakdown: 배경, 중간, 전경 및 초점 요소의 구조화된 설명
- Compositional Grid: 이미지 요소를 3x3 그리드 기반으로 설명
- Artistic Reference: 주제, 구성, 색상 팔레트 등 예술적 요소의 상세한 분석
워크플로우
- PromptJSON 노드는 사용자 입력을 선택한 스키마 유형에 따라 구조화합니다.
- 선택한 LLM 프롬프트 유형과 스키마에 기반하여 시스템 프롬프트와 사용자 프롬프트를 생성합니다.
- 출력은 추가 처리를 위해 외부 LLM 노드로 전송됩니다.
- 외부 LLM 노드는 이 프롬프트를 바탕으로 최종적인 세부 이미지 설명을 생성합니다.
사용자 정의 스키마
사용자 정의 스키마 기능을 통해 출력 구조를 정의할 수 있습니다. 형식은 선택한 스키마 유형에 따라 달라집니다. 예를 들어, JSON의 경우:
{
"scene": {
"time_of_day": "string",
"weather": "string",
"location": "string"
},
"subjects": [
{
"type": "string",
"description": "string",
"position": "string"
}
],
"style": {
"artistic_movement": "string",
"color_palette": ["string"],
"mood": "string"
},
"camera": {
"angle": "string",
"shot_type": "string"
}
}
예시 출력
입력:
- prompt: "일몰 시 한적한 호수와 작은 보트에 앉은 혼자인 어부"
- negative_prompt: "도시, 건물, 군중"
- complexity: 0.7
- llm_prompt_type: "Few Shot"
- schema_type: "JSON"
- custom_schema: (위에 표시된 JSON 스키마)
출력:
- 시스템 프롬프트: (LLM용 지침 및 예시 포함)
- 사용자 프롬프트: (구조화된 입력 프롬프트 및 스키마 포함)
- 네거티브 패스스루: "도시, 건물, 군중"
- 스키마: (형식화된 JSON 스키마)
참고사항
- 시스템 프롬프트와 사용자 프롬프트는 외부 LLM이 세부적이고 구조화된 이미지 설명을 생성하도록 안내하도록 설계되었습니다.
- 특정 사용 사례에 가장 효과적인 조합을 찾기 위해 다양한 LLM 프롬프트 유형과 스키마 유형을 실험해 보세요.
- 복잡도 매개변수를 조정하여 생성된 프롬프트의 세부 수준을 제어할 수 있습니다.
- 사용자 정의 스키마는 생성된 설명의 구조를 미세 조정할 수 있는 권한을 부여합니다.
지원
문제, 기능 요청 또는 기여 사항은 GitHub 저장소에 이슈나 풀 리퀘스트를 열어주세요.








