Files
ComfyUI-Ethanfel-Prompt-Bui…/docs/superpowers/specs/2026-07-01-clothing-seed-axis-design.md
T

5.0 KiB

Clothing Seed Axis Design

Goal

Allow a workflow to keep the same category, content item, pose, role, person, scene, expression, composition, and branch structure while rerolling only the clothing/outfit choices.

Current Problem

Clothing currently shares the content seed axis in several places. That means a user cannot change clothes without also risking changes to content-driven prompt selection. In scene pairs, this is especially confusing because a softcore branch content seed can pick the outfit that the hardcore branch later inherits through clothing continuity.

The previous layer-seed fix made the visible seed authoritative, but it did not separate clothing from content. A visible content seed is still doing two jobs: content selection and clothing selection.

Design

Add a new first-class clothing seed axis.

The clothing axis controls:

  • prompt clothing mode selection, such as full, minimal, or random;
  • clothing/outfit item selection for normal prompt rows;
  • softcore branch outfit selection;
  • pair partner outfit selection;
  • scene wardrobe outfit selection where the wardrobe layer needs a seed;
  • hard branch clothing continuity when it derives from the soft branch outfit.

The content axis continues to control:

  • category item selection;
  • content templates and item text;
  • content-derived item axis values;
  • pose-category content when an existing category treats the content item as pose-driven metadata.

Changing only clothing_seed should not change non-clothing prompt content.

Seed Vocabulary

Update the shared seed policy:

  • Add clothing to SEED_LOCK_AXES.
  • Add a deterministic salt for clothing.
  • Add aliases for clothing_seed, outfit_seed, and wardrobe_seed.
  • Keep item_seed as a content alias because it describes content item selection, not clothing.
  • Add clothing to reroll-axis choices.
  • Add content_clothing for workflows that intentionally reroll both content and clothes together.
  • Add clothing_pose for workflows that keep content stable but reroll clothes, pose, and role together.

content_pose should remain content + pose + role. It should not include clothing after this split.

Scene Layer Behavior

Update scene layer seed mappings:

  • wardrobe defaults to the clothing axis.
  • softcore_branch defaults to clothing, pose, and role only when no explicit reroll axis is selected.
  • hardcore_branch remains pose and role by default.
  • Explicit reroll axes use the shared vocabulary, including clothing, content_clothing, and clothing_pose.

This keeps the branch seed UI useful while making clothes-only rerolls obvious.

Prompt Flow

Normal prompt rows should use separate RNGs:

  • content_rng for category/subcategory item and content-template choices.
  • clothing_rng for clothing mode and outfit choices.
  • Existing pose, role, person, scene, expression, and composition RNGs remain unchanged.

Scene pair rows should use separate RNGs:

  • soft branch clothing/outfit selection uses the soft branch clothing axis;
  • soft branch pose uses the soft branch pose axis;
  • hard branch content behavior remains independent from soft branch clothing;
  • hard branch clothing continuity reads the selected soft branch outfit, so a clothing-only reroll changes inherited clothing but leaves the hard branch pose and content seeds alone.

Compatibility

Existing workflows should continue to load.

Compatibility rules:

  • Existing configs without clothing_seed fall back to the same effective base seed behavior as before.
  • outfit_seed should map to clothing going forward.
  • content_seed should not control clothing once clothing_seed or outfit_seed is present.
  • The visible scene layer seed remains authoritative for all seed modes.
  • seed_trace should include clothing when the clothing axis is configured or emitted by row generation.

This is a behavior improvement, not a schema break.

Testing

Add smoke coverage proving:

  • seed_reroll_axis_choices() includes clothing, content_clothing, and clothing_pose.
  • build_seed_lock_config_json(..., reroll_axis="clothing") changes only clothing_seed.
  • build_seed_lock_config_json(..., reroll_axis="content_clothing") changes both content_seed and clothing_seed.
  • content_pose does not change clothing_seed.
  • In a scene pair, changing only the soft branch clothing seed changes the softcore outfit and inherited hard clothing state.
  • The same scene pair keeps non-clothing content, pose, role, person, scene, and composition seeds stable under a clothes-only reroll.
  • Legacy outfit_seed is honored as a clothing seed.

Out Of Scope

This design does not add a second visible seed widget to the existing scene layer seed node. The node still has one visible seed field; the selected reroll axis decides what that seed controls.

This design does not rewrite all prompt category data to distinguish fashion categories from non-fashion content categories. It only separates RNG control for clothing choices that the code already treats as clothing or outfit selection.