# 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.
