Files
transcendedhacker 0f0f088ab2 v2.0
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.
2026-01-19 03:09:18 +05:30

3.8 KiB
Raw Permalink Blame History

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:

  1. Initial library loading (one-time, on ComfyUI startup)
  2. 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:

  1. Add options incrementally (10-20 at a time)
  2. Test composition output for each addition batch
  3. Verify alphabetical sorting correctness
  4. Check for duplicate entries
  5. Confirm prompt assembly remains coherent

Schema validation (future implementation) will automate consistency checking.