Extract seed config policy

This commit is contained in:
2026-06-27 00:00:35 +02:00
parent f552f76c1a
commit 6abcccbae1
6 changed files with 254 additions and 121 deletions
+6 -2
View File
@@ -304,8 +304,12 @@ Already isolated:
- direct and config-driven prompt builder nodes live in `node_builder.py`, with
registration maps imported by `__init__.py`.
- seed/global-seed/seed-locker and SDXL/Krea2 resolution utility nodes live in
`node_seed_resolution.py`, with registration maps imported by `__init__.py`.
- seed axis salts/aliases, seed mode choices, lock builders, seed config
parsing, row seed math, and deterministic axis RNG live in `seed_config.py`;
seed/global-seed/seed-locker nodes live in `node_seed_resolution.py`, with
registration maps imported by `__init__.py`.
- SDXL/Krea2 resolution utility nodes live in `node_seed_resolution.py`, with
registration maps imported by `__init__.py`.
- camera/orbit/Qwen translator utility nodes live in `node_camera.py`, using
`camera_config.py` for option lists and JSON builders, with registration maps
imported by `__init__.py`.
+7 -5
View File
@@ -69,6 +69,7 @@ Core helper ownership:
| --- | --- |
| `category_library.py` | JSON category loading, subcategory normalization, named scene/expression/composition pool loading, cast compatibility filtering, exact subcategory lookup, and inheritance-based pool merging. |
| `camera_config.py` | Camera option schema, direct/orbit/Qwen camera JSON builders, camera config parsing, plain camera directive text, and camera caption labels. |
| `seed_config.py` | Seed axis salts/aliases, seed mode choices, global/axis lock JSON builders, seed config parsing, row seed math, and deterministic axis RNG construction. |
| `pair_options.py` | Insta/OF option schema/defaults, softcore category/outfit/pose pools, partner outfit pools, clothing-continuity labels, negatives, and hardcore cast count policy. |
| `pair_rows.py` | Insta/OF soft/hard row creation, softcore expression override resolution, Woman A slot context application, soft outfit/pose overrides, and POV row fields. |
| `pair_camera.py` | Insta/OF soft/hard camera route resolution, same-as-softcore camera mode, camera-detail override, camera-aware composition mutation, POV camera suppression, and synchronized row/root camera metadata. |
@@ -124,8 +125,8 @@ These recipes identify the intended road before editing prompt text.
## Seed Axes
Seed routing is centralized around `SEED_AXIS_SALTS`, `SEED_AXIS_ALIASES`, and
`_axis_rng` in `prompt_builder.py`.
Seed routing is centralized in `seed_config.py` around `SEED_AXIS_SALTS`,
`SEED_AXIS_ALIASES`, and `axis_rng`.
| Axis | Controls |
| --- | --- |
@@ -161,8 +162,9 @@ axes change.
| Same soft/hard pair but different hardcore action | In pair mode, keep `person_seed`, `scene_seed`, `content_seed` if clothing must stay; change `pose_seed`/`role_seed`. |
| Debug expression only | Fix everything except `expression_seed` or expression intensity. |
Common trap: `row_number` participates in `_axis_rng`. If two workflows have the
same seeds but different `row_number`, they are not expected to match.
Common trap: `row_number` participates in `seed_config.axis_rng`. If two
workflows have the same seeds but different `row_number`, they are not expected
to match.
## Category Sources
@@ -699,7 +701,7 @@ These do not own prompt pool wording, but they affect execution and review:
| Accumulator | `loop_nodes.py`, `web/accumulator_preview.js` | Stores generated values/images during workflow execution and previews/reorders/deletes them. |
| Persistent text preview | `loop_nodes.py`, `web/preview_any_text.js` | Stores any value as text and keeps it after workflow reload. |
| Builder node wrappers | `node_builder.py`, imported by `__init__.py` | Direct prompt builder and config-driven prompt builder ComfyUI declarations. |
| Seed and resolution utility nodes | `node_seed_resolution.py`, imported by `__init__.py` | Global/per-axis seed configs plus SDXL/Krea width/height helpers. |
| Seed and resolution utility nodes | `node_seed_resolution.py`, imported by `__init__.py` | UI wrappers for global/per-axis seed configs via `seed_config.py`, plus SDXL/Krea width/height helpers. |
| Camera utility nodes | `node_camera.py`, imported by `__init__.py` | UI wrappers for direct camera config, orbit-to-camera config, and Qwen MultiAngle camera translation via `camera_config.py`. |
| Character utility nodes | `node_character.py`, imported by `__init__.py` | Hair, age/body/eyes/clothing pools, manual details, character slots, and profile save/load nodes. |
| Hardcore position utility nodes | `node_hardcore_position.py`, imported by `__init__.py` | Position-family pool and action/filter gates for hardcore routes. |