Extract builder nodes

This commit is contained in:
2026-06-26 23:32:39 +02:00
parent ef8b7f5b89
commit 30b5280da1
6 changed files with 363 additions and 237 deletions
+7 -4
View File
@@ -272,10 +272,10 @@ Improve later:
### Node / UI Path
Owner: `__init__.py`, `node_seed_resolution.py`, `node_camera.py`,
`node_character.py`, `node_hardcore_position.py`, `node_formatter.py`,
`node_insta.py`, `node_route_config.py`, `node_profile_filter.py`,
`loop_nodes.py`, `web/*.js`.
Owner: `__init__.py`, `node_builder.py`, `node_seed_resolution.py`,
`node_camera.py`, `node_character.py`, `node_hardcore_position.py`,
`node_formatter.py`, `node_insta.py`, `node_route_config.py`,
`node_profile_filter.py`, `loop_nodes.py`, `web/*.js`.
Keep here:
@@ -283,6 +283,7 @@ Keep here:
- widget behavior;
- button actions;
- dynamic input slots.
- direct and config-driven builder node declarations in `node_builder.py`.
- seed and resolution utility node declarations in `node_seed_resolution.py`.
- camera utility node declarations in `node_camera.py`.
- character pool, slot, and profile node declarations in `node_character.py`.
@@ -296,6 +297,8 @@ Keep here:
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`.
- camera/orbit/Qwen translator utility nodes live in `node_camera.py`, with
+5 -4
View File
@@ -25,10 +25,10 @@ When a result is wrong, first identify which layer owns the bad text:
- Raw builder prompt acceptable, SDXL tags wrong: edit `sdxl_formatter.py`.
- Natural caption/training caption wrong: edit `caption_naturalizer.py`.
- UI/preview/loop behavior wrong: edit `__init__.py`, node family modules such
as `node_seed_resolution.py`, `node_camera.py`, `node_character.py`,
`node_hardcore_position.py`, `node_formatter.py`, `node_insta.py`,
`node_route_config.py`, or `node_profile_filter.py`, `loop_nodes.py`, or
`web/*.js`.
as `node_builder.py`, `node_seed_resolution.py`, `node_camera.py`,
`node_character.py`, `node_hardcore_position.py`, `node_formatter.py`,
`node_insta.py`, `node_route_config.py`, or `node_profile_filter.py`,
`loop_nodes.py`, or `web/*.js`.
## High-Level Routes
@@ -694,6 +694,7 @@ These do not own prompt pool wording, but they affect execution and review:
| Index switch | `loop_nodes.py`, `web/index_switch_slots.js` | Multi-input to selected output, and selected input to multi-output routing. |
| 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. |
| Camera utility nodes | `node_camera.py`, imported by `__init__.py` | Direct camera config, orbit-to-camera config, and Qwen MultiAngle camera translation. |
| 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. |