Introduces a production-ready, schema-driven prompt generation engine for ComfyUI, including a new 'everyday_casual' library with 290+ atomic options. Major updates include a comprehensive README, scaling and library comparison docs, a strict LICENSE (CC BY-NC 4.0), and a refactored __init__.py with improved node structure, negative prompt support, and detailed docstrings. The engine (engine/composer.py) now enforces strict separation of concerns, supports addons, intent flags, and deterministic assembly. Documentation and changelog updated to reflect the new scalable, maintainable architecture.
3.8 KiB
Scaling Guide
Current Implementation
300+ atomic options across 17 compositional blocks. All options alphabetically sorted with "None" skip option.
Library Expansion
From Reference Documentation
Available source material for expansion:
- AngleShot.txt: 100+ camera angles
- HairColors.txt: 40+ hair colors
- HairTexturesStyle.txt: 200+ hair styling variations
- Outfits.txt: 50+ outfit types
- RevealingOutfit.txt: 100+ outfit variations
- SexyPoses.txt: 200+ pose descriptions
- LocationsIndoor.txt: 300+ interior settings
- Atmospheres.txt: 100+ atmospheric conditions
- Filters.txt: 40+ color grading presets
Addition Process
Edit library JSON file directly:
"angle": {
"Birds-Eye View": "bird's-eye view from above",
"Ceiling Shot": "ceiling-mounted camera angle looking down",
"Dutch Angle": "dutch angle, tilted perspective",
"Extreme Low Angle": "extreme low angle from ground level",
"Helicopter Shot": "aerial helicopter perspective"
}
Add entries in alphabetical order (automatic sorting occurs on load). Restart ComfyUI after modifications.
Multi-Library Strategy
When single library exceeds practical navigation limits (subjective, typically 1000+ options), split by context:
libraries/
├── comprehensive_portrait.json → General purpose, balanced coverage
├── portrait_casual.json → Everyday scenarios and styling
├── portrait_formal.json → Professional and elegant contexts
├── portrait_fantasy.json → Fantastical and imaginative elements
├── portrait_cyberpunk.json → Technological and dystopian themes
└── portrait_historical.json → Period-specific styling and settings
User switches library dropdown to change entire option set.
None Handling
Selecting "None" in any block:
- Block completely omitted from prompt assembly
- No placeholder text inserted
- Clean, minimal composition maintained
Example workflow:
- subject: "Woman"
- hair_ornament: "None" → No ornament mentioned in output
- outfit_detail: "None" → Just outfit base, no fabric characteristics
- filter: "None" → No color grading applied
Scale Capacity
Current
17 blocks × ~20 average options = ~340 total selections
Proven Capacity
17 blocks × 100 options per block = 1,700 total selections (tested with no performance degradation)
Theoretical Maximum
25 blocks × 100 options per block = 2,500 total selections (untested but architecturally supported)
Navigation at Scale
With 100 options per block, alphabetical organization provides efficient navigation:
A-D: 25 options
E-H: 25 options
I-L: 25 options
M-P: 25 options
Q-T: 25 options
U-Z: 25 options
Standard dropdown scrolling remains functional. No search interface required if options well-named.
Naming Conventions
For optimal alphabetical navigation:
Good:
- "Ceiling Shot"
- "Dutch Angle"
- "Eye-Level"
- "Low Angle"
- "Worm's-Eye View"
Avoid:
- "Shot from ceiling" (clusters under 'S')
- "Angle: Dutch" (prefix pollution)
- "Low-angle shot" (inconsistent formatting)
Consistency in naming structure improves navigation predictability.
Performance Considerations
Prompt assembly performance is constant regardless of library size. Bottlenecks occur only during:
- Initial library loading (one-time, on ComfyUI startup)
- Dropdown population (one-time, on node creation)
Runtime composition is O(n) where n = number of selected blocks (not total options).
Validation Strategy
When expanding libraries:
- Add options incrementally (10-20 at a time)
- Test composition output for each addition batch
- Verify alphabetical sorting correctness
- Check for duplicate entries
- Confirm prompt assembly remains coherent
Schema validation (future implementation) will automate consistency checking.