69 lines
2.7 KiB
Markdown
69 lines
2.7 KiB
Markdown
# Scene Layer Seed Design
|
|
|
|
## Problem
|
|
|
|
`SxCPSceneLayerSeedOptions` currently has a confusing double-seed behavior. When
|
|
`seed_mode=random`, the node displays one seed in the widget, but the build
|
|
method replaces it with a hidden `SystemRandom` value. The generated prompt may
|
|
therefore use a clothing/content seed that is not visible in the workflow after
|
|
the run.
|
|
|
|
This makes softcore branch clothing hard to reproduce. In a scene pair, the
|
|
woman's softcore outfit is selected from the softcore branch content seed, then
|
|
the hardcore branch may inherit that outfit through clothing continuity. If the
|
|
resolved content seed is hidden, the user cannot reliably answer which seed
|
|
picked the clothes.
|
|
|
|
## Approved Behavior
|
|
|
|
The visible `seed` field in `SxCPSceneLayerSeedOptions` is the authoritative
|
|
seed. `seed_mode=random` must no longer replace it with a hidden random value.
|
|
For layer-seed behavior:
|
|
|
|
- `follow_global`: use the scene seed.
|
|
- `fixed`: use the visible node `seed`.
|
|
- `random`: use the visible node `seed`.
|
|
- `disabled`: apply no layer seed.
|
|
|
|
The `random` option can remain in the UI for compatibility, but it behaves like
|
|
an explicit seed mode. If a user wants a new random value, they should randomize
|
|
the visible seed field in the node or use ComfyUI's widget randomization.
|
|
|
|
## Seed Reporting
|
|
|
|
The existing scene `seed_trace` remains the source of truth for resolved prompt
|
|
axis seeds. For softcore branch clothing, the relevant trace is usually:
|
|
|
|
- layer: `softcore_branch`
|
|
- reroll axis: `content` or `content_pose`
|
|
- affected axes: `content_seed`, and for `content_pose` also `pose_seed` and
|
|
`role_seed`
|
|
|
|
Scene pair metadata should continue to include the full softcore and hardcore
|
|
scene chain so `seed_trace` is preserved in `metadata_json` and
|
|
`scene_metadata_json`.
|
|
|
|
## Non-Goals
|
|
|
|
This change does not introduce a separate `clothing_seed` axis. Clothing is still
|
|
part of the existing content axis. Splitting clothing from content would be a
|
|
larger behavior change and should be handled separately if needed.
|
|
|
|
This change does not alter image sampler seeds. KSampler/image seeds remain
|
|
separate from prompt layer seeds.
|
|
|
|
## Testing
|
|
|
|
Add or update smoke coverage for `SxCPSceneLayerSeedOptions`:
|
|
|
|
- A `random` mode layer seed emits the visible widget seed in its metadata.
|
|
- A `fixed` mode layer seed emits the same seed as `random` when given the same
|
|
visible seed.
|
|
- A softcore branch `content` or `content_pose` seed appears in the generated
|
|
softcore row `seed_config`.
|
|
- The generated softcore outfit can be traced to that visible content seed.
|
|
|
|
Existing scene pair tests should continue to verify that softcore branch seeds do
|
|
not leak into hardcore pose/content seeds unless explicitly applied to the hard
|
|
branch.
|