Add prompt control and filter options

This commit is contained in:
2026-06-24 14:32:54 +02:00
parent 2b64499687
commit cb35e1881f
5 changed files with 592 additions and 99 deletions
+46 -22
View File
@@ -7,6 +7,7 @@ The node is registered as:
- `prompt_builder / SxCP Prompt Builder`
- `prompt_builder / SxCP Seed Control`
- `prompt_builder / SxCP Seed Locker`
- `prompt_builder / SxCP Camera Control`
- `prompt_builder / SxCP Category Preset`
- `prompt_builder / SxCP Cast Control`
@@ -41,8 +42,8 @@ node. For cleaner workflows, use the split nodes:
- `SxCP Generation Profile` outputs `generation_profile` for common behavior
presets such as casual-clean, evocative-softcore, hardcore-intense,
Krea2-friendly, or Flux-original.
- `SxCP Advanced Filters` outputs `filter_config` for ethnicity, figure, and
exclusion filters.
- `SxCP Advanced Filters` outputs `filter_config` for appearance include
checkboxes, figure, and plus-size inclusion.
- `SxCP Prompt Builder From Configs` consumes those config outputs and produces
the same prompt, negative, caption, metadata, category, and subcategory
outputs as the full builder.
@@ -50,7 +51,7 @@ node. For cleaner workflows, use the split nodes:
The practical compact workflow is:
`Category Preset` + `Cast Control` + `Generation Profile` + optional
`Advanced Filters`, `Seed Control`, `Camera Control`, and `Character Profile`
`Advanced Filters`, `Seed Locker` or `Seed Control`, `Camera Control`, and `Character Profile`
into `Prompt Builder From Configs`.
An importable default workflow is included at
@@ -99,13 +100,18 @@ appearance remains stable.
`SxCP Seed Control` outputs `seed_config`, which can be connected to the prompt
builder's optional `seed_config` input.
`SxCP Seed Locker` is the fast version for iteration. Set `base_seed` to a seed
you like, choose one `reroll_axis`, and connect its `seed_config`. All other
axes stay frozen to `base_seed`; the rerolled axis follows `reroll_seed`, or the
main prompt seed when `reroll_seed=-1`.
`SxCP Camera Control` outputs `camera_config`, which can be connected to the
prompt builder or the Insta/OF pair node. It makes camera/framing first-class
instead of relying on a weak phrase inside the prompt.
Camera controls:
- `camera_mode`: `standard`, `handheld_selfie`, `mirror_selfie`,
- `camera_mode`: `disabled`, `standard`, `handheld_selfie`, `mirror_selfie`,
`phone_tripod`, `creator_pov`, `bed_selfie`, `bathroom_mirror`,
`phone_flash`, or `action_cam`.
- `shot_size`: `auto`, `full_body`, `three_quarter`, `waist_up`, `close_up`,
@@ -119,6 +125,8 @@ Camera controls:
- `phone_visibility`: `auto`, `phone_visible`, `phone_hidden`,
`screen_reflection`, or `ring_light_visible`.
- `priority`: `soft_hint`, `strong`, or `locked`.
- `camera_detail`: `off` emits no camera sentence, `compact` emits one short
camera sentence, and `full` emits the full detailed camera constraint.
`SxCP Caption Naturalizer` rewrites tag-like captions or labeled prompts into
more natural language. Connect the prompt builder's `metadata_json` output to
@@ -177,18 +185,17 @@ It outputs:
- `method`
`SxCP Insta/OF Prompt Pair` is a special paired-output mode. It creates one
shared primary creator descriptor, then returns both a softcore prompt and a
hardcore prompt from that same descriptor. This is useful when you want the same
primary creator descriptor internally, then returns both a softcore prompt and a
hardcore prompt from that descriptor. This is useful when you want matching
person/look/scene continuity but need two different prompt strengths.
When the hardcore cast includes partners, pair mode also creates deterministic
shared cast descriptors such as `woman A / primary creator` and `man A`. Use
cast descriptors such as `Woman A` and `Man A`. Use
`softcore_cast=same_as_hardcore`, `hardcore_cast=couple`, and
`continuity=same_creator_same_room` when you want a soft prompt with the same
woman, man, and location as the hardcore prompt. In that setup, the softcore
prompt keeps the same listed adult cast physically present together in a
non-explicit teaser pose, with deterministic non-explicit partner outfits and a
shared cast pose.
`continuity=same_creator_same_room` when you want both outputs to reuse the cast
and location. The generated positive prompts are still standalone: each output
lists the relevant cast descriptors directly and does not depend on the image
model carrying context from another prompt.
It outputs:
@@ -217,10 +224,11 @@ Options:
- `hardcore_women_count` and `hardcore_men_count`: used when `hardcore_cast` is
`use_counts`. The pair mode always keeps at least one adult woman as the
primary creator so the shared descriptor remains valid.
- `softcore_level`: `social_tease`, `lingerie_tease`, `implied_nude`, or
`explicit_tease`. Insta/OF softcore uses dedicated outfit pools so teaser
prompts do not randomly pull hardcore-adjacent harness, nude accessory,
microwear, or shirtless partner styling.
- `softcore_level`: `social_tease`, `lingerie_tease`, `implied_nude`,
`explicit_tease`, or `explicit_nude`. Insta/OF softcore uses dedicated outfit
pools so teaser prompts do not randomly pull hardcore-adjacent harness,
microwear, or shirtless partner styling. `explicit_nude` is available when
you want visible nude creator-shot framing without a sex act.
- `hardcore_level`: `explicit` or `hardcore`.
- `softcore_expression_intensity`: `0.0` is mild/controlled, `0.5` is sensual,
`1.0` strongly favors more heated softcore faces.
@@ -228,12 +236,17 @@ Options:
hardcore, `1.0` strongly favors ahegao-style, drooling, fucked-out, climax,
and messy orgasm expressions.
- `platform_style`: `hybrid`, `instagram`, or `onlyfans`.
- `continuity`: `same_creator_same_room` keeps the scene/composition aligned;
`same_creator_new_scene` keeps the same creator descriptor but lets the
hardcore scene use its own setting.
- `continuity`: `same_creator_same_room` keeps the scene aligned while each
output keeps its own pose/composition; `same_creator_new_scene` keeps the same
creator descriptor but lets the hardcore scene use its own setting.
- `hardcore_clothing_continuity`: `none`, `same_outfit`, `partially_removed`,
`implied_nude`, or `explicit_nude`. This controls whether the hardcore prompt
references the softcore outfit, uses it displaced/removed, or makes Woman A
explicitly nude.
- `softcore_camera_mode`: base camera mode for the softcore output.
- `hardcore_camera_mode`: `same_as_softcore` or a separate base camera mode for
the hardcore output.
- `camera_detail`: `off`, `compact`, or `full` for the pair prompt camera text.
## Built-In Categories
@@ -242,7 +255,10 @@ The node keeps the original generator controls:
- `category`: `auto_weighted`, `woman`, `man`, `couple`, `group_or_layout`, or a custom JSON category.
- `clothing`: `full` or `minimal`.
- `minimal_clothing_ratio`: `-1` disables mixing; `0.0` to `1.0` mixes minimal/full clothing.
- `ethnicity`: `any`, `asian`, `white_asian`.
- `ethnicity`: `any`, `european`, `mediterranean_mena`, `latina`,
`east_asian`, `southeast_asian`, `south_asian`, `black_african`,
`indigenous`, `mixed`, `asian`, or `white_asian`. Combined filter strings
such as `latina+south_asian` are also accepted in config JSON.
- `poses`: `standard` or `evocative`.
- `expression_intensity`: `0.0` favors mild, neutral, controlled expressions;
`0.5` favors balanced category expressions; `1.0` strongly favors the most
@@ -252,8 +268,8 @@ The node keeps the original generator controls:
- `standard_pose_ratio`: `-1` disables mixing; `0.0` to `1.0` mixes standard/evocative poses.
- `backside_bias`: `0.0` to `1.0`, applies to evocative single-subject poses.
- `figure`: `curvy`, `balanced`, `bombshell`.
- `no_plus_women`: excludes plus-size women.
- `no_black`: excludes Black/African-coded women from women-focused pools.
- In split workflows, use `SxCP Advanced Filters` checkboxes instead of negative
toggles. Black/African and plus-size are positive include choices there.
- Optional `camera_config`: connect `SxCP Camera Control` to force selfie,
phone, lens, angle, distance, crop, and camera-priority behavior. This applies
to custom categories too, including `Hardcore sexual poses`.
@@ -475,6 +491,14 @@ alone.
The main `seed` input is still the default master seed. Connect `SxCP Seed
Control` to `seed_config` when you want to lock or vary specific axes.
For normal prompt iteration, `SxCP Seed Locker` is usually simpler:
- `base_seed`: the seed whose character/location/etc. you want to keep.
- `reroll_axis`: `none`, `content`, `person`, `scene`, `pose`, `role`,
`expression`, `composition`, `content_pose`, or `scene_pose`.
- `reroll_seed`: `-1` makes the selected axis follow the main prompt seed;
`0` or higher pins that selected axis to a specific seed.
Seed values:
- `-1`: follow the main seed.