14 KiB
Prompt Orchestration Nodes for ComfyUI
Advanced prompt manipulation system integrated into ComfyUI workflows. Control lighting, style, and variations with precision using 20 pre-defined modifiers and unlimited transformations.
🎯 What This Does
Brings professional prompt engineering capabilities directly into your ComfyUI workflows:
- 20 Lighting Modifiers: Sunrise to moonlit night, dry and wet conditions
- Style Transformations: Cyberpunk, noir, minimalist, and custom styles
- Smart Variation: Natural language prompt modification
- Batch Generation: Multiple variations from single input
- Preset Collections: Optimized modifier sets for common use cases
📦 Available Nodes (9 Total)
All nodes appear under the "Prompt Orchestration" category.
1. Lighting Modifier (Single)
Purpose: Apply one lighting modifier to a prompt
Inputs:
text: Your base promptmodifier_id: Number 1-20 (see modifier reference below)preserve_base: Append vs replace (default: True)
Output: Modified prompt with lighting applied
Example Use:
Input: "Sports car on highway"
Modifier: 7 (golden hour)
Output: "Sports car on highway, golden hour, warm low-angle side-light, clear sky"
2. Batch Variation Generator
Purpose: Generate multiple variations at once
Inputs:
text: Base promptcategory: "all", "dry", "wet", or "custom"custom_ids: Comma-separated IDs if using "custom" (e.g., "1,7,18")
Outputs: Up to 10 variation strings (var_1 through var_10)
Example Use: Connect each output to a different CLIP Text Encode for batch image generation.
3. Style Transform
Purpose: Apply artistic style to prompt
Inputs:
text: Base promptstyle: Choose from 11 built-in styles or "custom"maintain_composition: Keep original composition (default: True)custom_style: Your custom style description (if style="custom")
Output: Style-transformed prompt
Built-in Styles:
- cyberpunk, noir, minimalist, pop_art_1960s
- bauhaus, art_deco, impressionist, futuristic
- vintage, brutalist
4. Smart Variation (NLP)
Purpose: Natural language prompt modification
Inputs:
text: Base promptintent: What you want (e.g., "make it golden hour", "add wet street")
Output: Intelligently modified prompt
Example Intents:
- "make it golden hour"
- "convert to wet night scene"
- "add cyberpunk style"
- "morning sunrise lighting"
5. Preset Collection
Purpose: Apply optimized modifier sets
Inputs:
text: Base promptpreset: Choose from 5 presets
Outputs: 8 variations optimized for the use case
Available Presets:
key_moments: Dramatic lighting variety (6 variations)commercial: Product photography optimized (4 variations)artistic: Creative with styles (7 variations)full_day_cycle: Complete day progression (16 variations)wet_night: Dramatic wet conditions (4 variations)
6. Modifier Info
Purpose: Display information about a modifier
Inputs:
modifier_id: Number 1-20
Outputs:
description: Full modifier descriptioncategory: "dry" or "wet"tags: Comma-separated tags
Use: Connect to a text display to see what modifiers do.
7. Prompt Combiner
Purpose: Merge multiple text inputs
Inputs:
text_1throughtext_4: Text pieces to combineseparator: String to join with (default: ", ")
Output: Combined text
Example:
text_1: "Sports car"
text_2: "on mountain road"
text_3: "golden hour"
separator: ", "
Output: "Sports car, on mountain road, golden hour"
8. Random Modifier
Purpose: Apply random modifier from category
Inputs:
text: Base promptcategory: "all", "dry", or "wet"seed: Random seed for reproducibility
Outputs:
modified_prompt: Result with random modifierused_modifier_id: Which modifier was selected
Use: Create diverse variations with randomness.
9. Multi-Style Layer
Purpose: Apply multiple styles sequentially
Inputs:
text: Base promptstyle_1,style_2,style_3: Up to 3 styles
Output: Prompt with layered styles
Use: Create complex aesthetic combinations.
🌟 The 20 Lighting Modifiers
DRY Category (1-16): Clear Conditions
| ID | Time/Condition | Description |
|---|---|---|
| 1 | Sunrise | car-friendly side-light, clear sky |
| 2 | Early Morning | subtle back-light along road axis, clear sky |
| 3 | Late Morning | high-sun hard light for crisp body lines |
| 4 | Midday | crisp hard sunlight, clear sky |
| 5 | Early Afternoon | gentle side-light, clear sky |
| 6 | Late Afternoon | long shadow geometry, clear sky |
| 7 | Golden Hour ⭐ | warm low-angle side-light (most popular) |
| 8 | Sunset | soft rim-lit edges, clear sky |
| 9 | Twilight | residual glow, clear sky |
| 10 | Blue Hour | deep clear sky |
| 11 | Night | clear sky with clean highlights |
| 12 | Moonlit Night | clear sky |
| 13 | Early Morning | three-quarter back-light, clear sky |
| 14 | Late Afternoon | subtle back-light along road axis |
| 15 | Evening | car-friendly side-light, clear sky |
| 16 | Dawn | clean low-haze air, clear sky |
WET Category (17-20): Dramatic Wet Conditions
| ID | Condition | Description |
|---|---|---|
| 17 | Predawn Blue Hour | wet road, subtle back-light |
| 18 | Blue Hour Wet ⭐ | wet road, car-friendly side-light (dramatic) |
| 19 | Twilight Wet | wet road, residual glow |
| 20 | Night Wet | wet street, warm interior lights glowing |
🔧 Common Workflow Patterns
Pattern 1: Single Image with Lighting
[Text Input] → [Lighting Modifier] → [CLIP Text Encode] → [KSampler]
Set modifier_id to 7 for golden hour (most versatile).
Pattern 2: Batch Variations
[Text Input] → [Batch Variation Generator] → [Multiple CLIP Text Encode nodes]
→ [KSamplers for each variation]
Connect each var_output to a separate CLIP encoder.
Pattern 3: Style + Lighting Combo
[Text Input] → [Lighting Modifier] → [Style Transform] → [CLIP Text Encode]
Apply lighting first, then style for best results.
Pattern 4: Smart Creative Workflow
[Text Input] → [Smart Variation] → [CLIP Text Encode]
Use natural language like "make it cyberpunk golden hour".
Pattern 5: Preset Collection for Comparison
[Text Input] → [Preset Collection] → [8 separate render paths]
Generate 8 variations optimized for a specific use case.
Pattern 6: Random Exploration
[Text Input] → [Random Modifier] → [CLIP Text Encode]
[Seed Control] ↓
[Display Used ID]
Generate different lighting each run, track which modifier was used.
💡 Usage Tips
Best Practices
- Start with Golden Hour (7): Most universally flattering
- Wet modifiers (17-20) for dramatic urban/automotive scenes
- Use presets for quick, professional results
- Layer styles carefully: Apply lighting before styles
- Batch testing: Use Batch Variation Generator for exploration
Modifier Selection Guide
For Products:
- Use modifiers: 3, 4, 7, 11
- Or use "commercial" preset
For Automotive:
- Morning/evening: 1, 2, 7, 8
- Dramatic: 18, 20 (wet conditions)
For Architecture:
- Full day: 1-16 (all DRY)
- Dramatic: 7, 8, 10, 18
For Portraits:
- Flattering: 7, 8, 15
- Dramatic: 10, 18
Performance Tips
- Batch node outputs: Can connect to batch processing nodes
- Seed control: Use fixed seeds with Random Modifier for reproducibility
- Text preview: Use Show Text nodes to preview before rendering
- Save presets: Save workflow variations for different modifier sets
📋 Example Workflows
Example 1: Golden Hour Car Photography
[Prompt: "luxury sports car mountain road"]
↓
[Lighting Modifier: modifier_id=7]
↓
[CLIP Text Encode]
↓
[KSampler]
Result: Car with warm golden hour lighting
Example 2: Cyberpunk Style Variation
[Prompt: "city street night scene"]
↓
[Lighting Modifier: modifier_id=11 (night)]
↓
[Style Transform: style=cyberpunk]
↓
[CLIP Text Encode]
Result: Night scene with cyberpunk aesthetic
Example 3: Multi-Variation Comparison
[Prompt: "product on pedestal"]
↓
[Preset Collection: preset=commercial]
↓
[var_1] → [CLIP] → [KSampler 1]
[var_2] → [CLIP] → [KSampler 2]
[var_3] → [CLIP] → [KSampler 3]
[var_4] → [CLIP] → [KSampler 4]
Result: 4 product shots with optimal lighting
Example 4: Smart Natural Language
[Prompt: "architectural exterior"]
↓
[Smart Variation: intent="make it golden hour with dramatic shadows"]
↓
[CLIP Text Encode]
Result: Automatically applies golden hour + emphasis on shadows
Example 5: Random Daily Inspiration
[Prompt: "creative scene"]
↓
[Random Modifier: category=all, seed=<daily seed>]
↓
[Modifier Info: <connect used_modifier_id>]
↓
[CLIP Text Encode]
Result: Different lighting each day, see which modifier was chosen
🔄 Integration with Other Nodes
With Wildcard Nodes
[Wildcard: "__subject__"] → [Lighting Modifier] → [CLIP]
Combine dynamic subjects with lighting control.
With Lora/Checkpoint Switching
[Text] → [Batch Variation] → [CLIP per variation]
→ [Different LoRAs per output]
Test same prompt with different lighting and models.
With Conditioning Combine
[Base Prompt] → [Lighting Modifier] → [CLIP] ─┐
[Detail Prompt] → [CLIP] ────────────────────┬→ [Conditioning Combine]
Layer lighting-modified base with detailed conditioning.
🎨 Advanced Techniques
Technique 1: Progressive Lighting
Use multiple Lighting Modifier nodes in sequence to build complex lighting:
[Base] → [Modifier 7: golden hour] → [Modifier 19: wet road] → [Result]
Creates golden hour with wet reflections.
Technique 2: Style Layering
[Base] → [Style: noir] → [Style: minimalist] → [Multi-layered aesthetic]
Use Multi-Style Layer node or chain Style Transform nodes.
Technique 3: Conditional Lighting
┌→ [Modifier 7] → [Day scene]
[Base] → [Switch] ──┤
└→ [Modifier 18] → [Night scene]
Use switch nodes to choose lighting based on conditions.
Technique 4: Batch A/B Testing
[Prompt] → [Batch Variation: custom_ids="7,18"]
↓
[var_1: golden hour] → [Render]
[var_2: blue hour wet] → [Render]
Compare specific modifiers side-by-side.
📊 Node Reference Quick Chart
| Node | Input Type | Output Type | Best For |
|---|---|---|---|
| Lighting Modifier | Single text | Single text | Precise control |
| Batch Variation | Single text | 10 texts | Exploration |
| Style Transform | Single text | Single text | Aesthetic change |
| Smart Variation | Single text | Single text | Quick natural edits |
| Preset Collection | Single text | 8 texts | Professional sets |
| Modifier Info | Number | 3 texts | Understanding modifiers |
| Prompt Combiner | 4 texts | Single text | Building prompts |
| Random Modifier | Text + seed | Text + number | Randomization |
| Multi-Style | Text + styles | Single text | Complex aesthetics |
🐛 Troubleshooting
Issue: Node outputs empty text
Cause: Invalid modifier ID or missing inputs
Solution: Check modifier_id is 1-20, ensure text input is connected
Issue: Batch outputs are all the same
Cause: Not enough modifiers in selected category
Solution: Use "all" category or specify more custom_ids
Issue: Style not applying
Cause: Style name typo or "custom" selected without custom_style input
Solution: Double-check style dropdown selection
Issue: Smart Variation not working as expected
Cause: Intent too vague or unrecognized keywords
Solution: Use specific terms like "golden hour", "wet", "night", "cyberpunk"
🎓 Learning Path
- Start Simple: Try Lighting Modifier with modifier_id=7
- Explore: Use Batch Variation with category="all"
- Style: Add Style Transform node after Lighting Modifier
- Optimize: Use Preset Collection for your use case
- Advanced: Combine multiple nodes for complex effects
💾 Workflow JSON Examples
See the example_workflows/ folder for:
basic_lighting.json- Simple lighting modifier workflowbatch_comparison.json- Multi-variation comparisonstyle_transform.json- Style transformation workflowcommercial_product.json- Product photography setuprandom_exploration.json- Random modifier with seed control
🔗 Related Resources
- Core System Docs:
../README.md - Installation Guide:
INSTALLATION.md - Node Reference:
NODE_REFERENCE.md - Python API:
../prompt_orchestrator.py
📝 Version Info
- Version: 1.0.0
- ComfyUI Compatibility: Latest version
- Python: 3.7+
- Dependencies: None (stdlib only)
🚀 Quick Start Workflow
Create your first workflow in 3 steps:
-
Add nodes:
- Add Node → Prompt Orchestration → Lighting Modifier (Single)
- Connect your text input
-
Configure:
- Set modifier_id: 7 (golden hour)
- Keep preserve_base: True
-
Connect:
- Output → CLIP Text Encode → Your image generation pipeline
Result: Prompt with professional golden hour lighting!
📄 License
MIT License - Free for commercial and personal use
Need Help?
Check INSTALLATION.md for setup issues or the core README.md for modifier details.
Ready to use?
Start with the Lighting Modifier node and modifier #7 (golden hour)! 🌅