Extensions/ComfyUI-Multi-Prompt-Generator
ComfyUI Extension

ComfyUI-Multi-Prompt-Generator

Generate multiple images from prompt list with upscaling, LUT, and real-time preview

By mrm987·Created 7 months ago·Updated 7 months ago· 0
mrm987/ComfyUI_Multi_Prompt_Generator
Nodes2
On cloudLocal install
Categoryimage/generation
Stars0
Updated7 months ago
Readme

ComfyUI Multi Prompt Generator

English | 한국어


English

A ComfyUI custom node that processes a list of prompts in a single run to generate multiple images. Includes upscaling, LUT application, and real-time preview.

Features

  • Batch Generation — Process line-separated prompt list at once
  • 2-Pass Upscale — Upscale model + img2img refinement
  • Size Alignment — 64/8 pixel alignment to prevent edge artifacts
  • LUT Support — Apply .cube LUT files
  • Real-time Preview — Check results during generation, cancel if needed
  • Auto Save — Automatic filename based on first tag

Installation

cd ComfyUI/custom_nodes
git clone https://github.com/mrm987/ComfyUI_Multi_Prompt_Generator.git

Restart ComfyUI.

Nodes

1. Multi Prompt Generator

Generate multiple images with local models (SD, SDXL, etc.)

2. NAI Multi Prompt Generator

Generate multiple images using NovelAI API + local upscale

Setup for NAI node:

  1. Create .env file in ComfyUI root folder
  2. Add your token: NAI_ACCESS_TOKEN=your_token_here

NAI Node Features:

  • V4.5 model support with T5 encoder
  • Auto-retry on server errors (429, 500, 502, 503, 504)
  • free_only option for Opus subscribers (forces 1MP, 28 steps)
  • Interrupt support (cancel during batch)
  • SMEA/DYN for high-resolution generation

Usage (Multi Prompt Generator)

  1. Search node: "Multi Prompt Generator"
  2. Connect: Model, CLIP, VAE, Empty Latent, Upscale Model
  3. Enter prompt list — separate with blank lines:
# Lines starting with # are comments
# Start with - to skip

smile, happy, bright eyes,
looking at viewer

-angry, furrowed brow,
clenched teeth, glaring

sad, downcast eyes, frown

Inputs

Required

| Input | Type | Description | |-------|------|-------------| | model | MODEL | Checkpoint model | | clip | CLIP | CLIP model | | vae | VAE | VAE model | | latent | LATENT | Empty Latent Image | | upscale_model | UPSCALE_MODEL | Upscale model (e.g., 2x-AnimeSharp) | | base_prompt | STRING | Base prompt (combined with each line) | | negative_prompt | STRING | Negative prompt | | prompt_list | STRING | Prompt list (line-separated) | | seed | INT | Seed | | random_seed_per_image | BOOL | Use different random seed for each image | | steps | INT | Sampling steps (default: 30) | | cfg | FLOAT | CFG scale (default: 5.0) | | sampler_name | COMBO | Sampler (euler_ancestral, etc.) | | scheduler | COMBO | Scheduler (normal, karras, etc.) | | enable_upscale | BOOL | Enable upscale (default: True) | | save_prefix | STRING | Output folder name (default: "MultiPrompt") |

Optional

| Input | Type | Default | Description | |-------|------|---------|-------------| | skip_indices | STRING | "" | Prompt numbers to skip (e.g. "3,4,7") | | downscale_ratio | FLOAT | 0.7 | Downscale ratio after upscale | | upscale_steps | INT | 15 | 2nd pass steps | | upscale_cfg | FLOAT | 5.0 | 2nd pass CFG | | upscale_denoise | FLOAT | 0.5 | 2nd pass denoise | | size_alignment | COMBO | "none" | Size alignment (none / 8 / 64) | | lut_name | COMBO | "None" | LUT file selection | | lut_strength | FLOAT | 0.3 | LUT strength | | enable_preview | BOOL | True | Real-time preview |

Output

output/[save_prefix]/01_smile_00001.png
output/[save_prefix]/02_angry_00001.png
output/[save_prefix]/03_sad_00001.png
...

Filename format: [index]_[first_tag]_[counter].png

Pipeline

For each prompt:
  1. Combine base_prompt + current line
  2. KSampler (1st pass)
  3. Show preview
  4. Upscale Model → Size alignment → KSampler (2nd pass)
  5. Apply LUT
  6. Update preview
  7. Save

Notes

  • Prompt format: Separate prompts with blank lines. Lines starting with # are comments. Start first line with - to skip that block
  • size_alignment: 64 is safest. Use 64 if you see white edges
  • LUT files: Auto-detected from comfyui-propost/LUTs/ or models/luts/ folder
  • Preview: Check 1st pass result, cancel with Cancel button if not satisfied
  • Metadata: Workflow info saved in PNG, can drag back into ComfyUI

Usage (NAI Multi Prompt Generator)

  1. Search node: "NAI Multi Prompt Generator"
  2. Connect: Upscale Model (optional)
  3. Enter prompt list — same format as above

NAI Inputs

| Input | Type | Default | Description | |-------|------|---------|-------------| | base_prompt | STRING | | Base prompt | | negative_prompt | STRING | | Negative prompt | | prompt_list | STRING | | Prompt list (line-separated) | | width | INT | 832 | Image width | | height | INT | 1216 | Image height | | seed | INT | 0 | Seed (0 = random) | | random_seed_per_image | BOOL | False | Use different random seed for each image | | steps | INT | 28 | Sampling steps | | cfg | FLOAT | 5.0 | CFG scale | | sampler | COMBO | k_euler | Sampler | | scheduler | COMBO | native | Scheduler | | smea | COMBO | none | SMEA mode (none/SMEA/SMEA+DYN) | | variety | BOOL | False | Enable variety (diverse compositions) | | decrisper | BOOL | False | Dynamic thresholding (for high CFG) | | free_only | BOOL | True | Force Opus free conditions | | reference_image | IMAGE | None | Character reference image | | char_ref_style_aware | BOOL | True | Copy style along with identity | | char_ref_fidelity | FLOAT | 1.0 | How strictly to match the character | | enable_upscale | BOOL | True | Enable local upscale | | save_prefix | STRING | "NAI" | Output folder name |

NAI Recommended Settings

Resolution (free_only=True):

  • Portrait: 832×1216
  • Landscape: 1216×832
  • Square: 1024×1024
  • Must be ≤1MP (1,048,576 pixels)

Sampler/Scheduler:

  • k_euler + native — Stable, recommended
  • k_euler_ancestral + native — More variety

CFG: 4~6 for V4.5 (lower works well)

SMEA:

  • none for ≤1MP
  • SMEA or SMEA+DYN for higher resolutions

Multi-Character Prompting

Use | to separate base prompt and character prompts:

2girls, scene, background | 1girl, blonde hair, smile | 1girl, black hair, angry
  • First part = scene/style (base_caption)
  • Following parts = each character (char_captions)
  • Up to 6 characters supported
  • Negative prompt also supports | for per-character negatives

한국어

프롬프트 리스트를 한 번에 처리해서 여러 이미지를 생성하는 ComfyUI 커스텀 노드. 업스케일, LUT 적용, 실시간 프리뷰 기능 포함.

기능

  • 다중 프롬프트 배치 생성 — 줄바꿈으로 구분된 프롬프트 리스트를 한 번에 처리
  • 2-Pass 업스케일 — 업스케일 모델 + img2img 리파인
  • 크기 정렬 — 64/8배수 정렬로 테두리 아티팩트 방지
  • LUT 적용 — .cube LUT 파일 지원
  • 실시간 프리뷰 — 생성 중 결과 확인, 마음에 안 들면 취소 가능
  • 자동 저장 — 첫 태그 기반 파일명 자동 생성

설치

cd ComfyUI/custom_nodes
git clone https://github.com/mrm987/ComfyUI_Multi_Prompt_Generator.git

ComfyUI 재시작.

노드 목록

1. Multi Prompt Generator

로컬 모델(SD, SDXL 등)로 다중 이미지 생성

2. NAI Multi Prompt Generator

NovelAI API로 이미지 생성 + 로컬 업스케일

NAI 노드 설정:

  1. ComfyUI 루트 폴더에 .env 파일 생성
  2. 토큰 추가: NAI_ACCESS_TOKEN=your_token_here

NAI 노드 특징:

  • V4.5 모델 지원 (T5 인코더)
  • 서버 에러 자동 재시도 (429, 500, 502, 503, 504)
  • free_only 옵션으로 Opus 무료 조건 강제 (1MP, 28 steps)
  • 인터럽트 지원 (배치 중 취소 가능)
  • 고해상도 생성용 SMEA/DYN

사용법 (Multi Prompt Generator)

  1. 노드 검색: "Multi Prompt Generator"
  2. 연결: Model, CLIP, VAE, Empty Latent, Upscale Model
  3. 프롬프트 리스트 입력 — 빈 줄로 구분:
# #으로 시작하는 줄은 주석
# -로 시작하면 스킵

smile, happy, bright eyes,
looking at viewer

-angry, furrowed brow,
clenched teeth, glaring

sad, downcast eyes, frown

입력

필수

| Input | Type | Description | |-------|------|-------------| | model | MODEL | 체크포인트 모델 | | clip | CLIP | CLIP 모델 | | vae | VAE | VAE 모델 | | latent | LATENT | Empty Latent Image | | upscale_model | UPSCALE_MODEL | 업스케일 모델 (예: 2x-AnimeSharp) | | base_prompt | STRING | 기본 프롬프트 (각 줄과 결합됨) | | negative_prompt | STRING | 네거티브 프롬프트 | | prompt_list | STRING | 프롬프트 리스트 (줄바꿈 구분) | | seed | INT | 시드 | | random_seed_per_image | BOOL | 각 이미지마다 다른 랜덤 시드 사용 | | steps | INT | 샘플링 스텝 (기본: 30) | | cfg | FLOAT | CFG 스케일 (기본: 5.0) | | sampler_name | COMBO | 샘플러 (euler_ancestral 등) | | scheduler | COMBO | 스케줄러 (normal, karras 등) | | enable_upscale | BOOL | 업스케일 활성화 (기본: True) | | save_prefix | STRING | 저장 폴더명 (기본: "MultiPrompt") |

선택

| Input | Type | Default | Description | |-------|------|---------|-------------| | skip_indices | STRING | "" | 스킵할 프롬프트 번호 (예: "3,4,7") | | downscale_ratio | FLOAT | 0.7 | 업스케일 후 다운스케일 비율 | | upscale_steps | INT | 15 | 2차 샘플링 스텝 | | upscale_cfg | FLOAT | 5.0 | 2차 CFG | | upscale_denoise | FLOAT | 0.5 | 2차 디노이즈 | | size_alignment | COMBO | "none" | 크기 정렬 (none / 8 / 64) | | lut_name | COMBO | "None" | LUT 파일 선택 | | lut_strength | FLOAT | 0.3 | LUT 강도 | | enable_preview | BOOL | True | 실시간 프리뷰 |

출력

output/[save_prefix]/01_smile_00001.png
output/[save_prefix]/02_angry_00001.png
output/[save_prefix]/03_sad_00001.png
...

파일명: [순번]_[첫태그]_[카운터].png

파이프라인

각 프롬프트마다:
  1. base_prompt + 현재 줄 결합
  2. KSampler (1차)
  3. 프리뷰 표시
  4. Upscale Model → 크기 정렬 → KSampler (2차)
  5. LUT 적용
  6. 프리뷰 업데이트
  7. 저장

참고

  • 프롬프트 형식: 빈 줄로 프롬프트 구분. #으로 시작하는 줄은 주석. 첫 줄이 -로 시작하면 해당 블록 스킵
  • size_alignment: 64가 가장 안전. 흰 테두리 생기면 64 사용
  • LUT 파일: comfyui-propost/LUTs/ 또는 models/luts/ 폴더의 .cube 파일 자동 인식
  • 프리뷰: 1차 결과 확인 후 마음에 안 들면 Cancel로 중단 가능
  • 메타데이터: 워크플로우 정보가 PNG에 저장되어 ComfyUI에 다시 드래그 가능

사용법 (NAI Multi Prompt Generator)

  1. 노드 검색: "NAI Multi Prompt Generator"
  2. 연결: Upscale Model (선택)
  3. 프롬프트 리스트 입력 — 위와 동일한 형식

NAI 입력

| Input | Type | Default | Description | |-------|------|---------|-------------| | base_prompt | STRING | | 기본 프롬프트 | | negative_prompt | STRING | | 네거티브 프롬프트 | | prompt_list | STRING | | 프롬프트 리스트 (줄바꿈 구분) | | width | INT | 832 | 이미지 너비 | | height | INT | 1216 | 이미지 높이 | | seed | INT | 0 | 시드 (0 = 랜덤) | | random_seed_per_image | BOOL | False | 각 이미지마다 다른 랜덤 시드 사용 | | steps | INT | 28 | 샘플링 스텝 | | cfg | FLOAT | 5.0 | CFG 스케일 | | sampler | COMBO | k_euler | 샘플러 | | scheduler | COMBO | native | 스케줄러 | | smea | COMBO | none | SMEA 모드 (none/SMEA/SMEA+DYN) | | variety | BOOL | False | 다양성 모드 (구도 다양화) | | decrisper | BOOL | False | Dynamic Thresholding (고CFG용) | | free_only | BOOL | True | Opus 무료 조건 강제 | | reference_image | IMAGE | None | 캐릭터 레퍼런스 이미지 | | char_ref_style_aware | BOOL | True | 스타일도 함께 복사 | | char_ref_fidelity | FLOAT | 1.0 | 캐릭터 일치도 (높을수록 정확) | | enable_upscale | BOOL | True | 로컬 업스케일 활성화 | | save_prefix | STRING | "NAI" | 저장 폴더명 |

NAI 권장 설정

해상도 (free_only=True):

  • 세로: 832×1216
  • 가로: 1216×832
  • 정사각: 1024×1024
  • 반드시 ≤1MP (1,048,576 pixels)

샘플러/스케줄러:

  • k_euler + native — 안정적, 권장
  • k_euler_ancestral + native — 더 다양한 결과

CFG: V4.5는 4~6 권장 (낮아도 잘 나옴)

SMEA:

  • 1MP 이하는 none
  • 고해상도는 SMEA 또는 SMEA+DYN

멀티 캐릭터 프롬프팅

|로 베이스 프롬프트와 캐릭터 프롬프트 구분:

2girls, 장면, 배경 | 1girl, 금발, 미소 | 1girl, 검은 머리, 화남
  • 첫 번째 = 장면/스타일 (base_caption)
  • 이후 = 각 캐릭터 (char_captions)
  • 최대 6명 지원
  • 네거티브도 |로 캐릭터별 지정 가능

License

MIT