2.7 KiB
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 nodeseed.random: use the visible nodeseed.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:
contentorcontent_pose - affected axes:
content_seed, and forcontent_posealsopose_seedandrole_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
randommode layer seed emits the visible widget seed in its metadata. - A
fixedmode layer seed emits the same seed asrandomwhen given the same visible seed. - A softcore branch
contentorcontent_poseseed appears in the generated softcore rowseed_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.