ComfyUI-Multi-Prompt-Generator
Generate multiple images from prompt list with upscaling, LUT, and real-time preview
ComfyUI Multi Prompt Generator
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:
- Create
.envfile in ComfyUI root folder - 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_onlyoption for Opus subscribers (forces 1MP, 28 steps)- Interrupt support (cancel during batch)
- SMEA/DYN for high-resolution generation
Usage (Multi Prompt Generator)
- Search node: "Multi Prompt Generator"
- Connect: Model, CLIP, VAE, Empty Latent, Upscale Model
- 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/ormodels/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)
- Search node: "NAI Multi Prompt Generator"
- Connect: Upscale Model (optional)
- 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, recommendedk_euler_ancestral+native— More variety
CFG: 4~6 for V4.5 (lower works well)
SMEA:
nonefor ≤1MPSMEAorSMEA+DYNfor 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 노드 설정:
- ComfyUI 루트 폴더에
.env파일 생성 - 토큰 추가:
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)
- 노드 검색: "Multi Prompt Generator"
- 연결: Model, CLIP, VAE, Empty Latent, Upscale Model
- 프롬프트 리스트 입력 — 빈 줄로 구분:
# #으로 시작하는 줄은 주석
# -로 시작하면 스킵
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)
- 노드 검색: "NAI Multi Prompt Generator"
- 연결: Upscale Model (선택)
- 프롬프트 리스트 입력 — 위와 동일한 형식
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