Add scene-chain option nodes

This commit is contained in:
2026-06-27 23:39:30 +02:00
parent 29efb954fb
commit 3c54bb4bbe
6 changed files with 1269 additions and 23 deletions
+40
View File
@@ -17,6 +17,10 @@ COMMON_INPUT_TOOLTIPS = {
"filter_config": "Ethnicity/body filter config. Ethnicity List can feed this too.",
"ethnicity_list": "Optional ethnicity pool. When connected, it overrides the slot or generator ethnicity picker.",
"seed_config": "Per-axis seed config. Use Global Seed for full reproducibility, Seed Locker to reroll one axis, or Seed Control for manual axis seeds.",
"layer": "Scene layer affected by this side node. all applies to every compatible scene node that receives the options.",
"seed_mode": "follow_global uses the scene seed, fixed uses the seed field, random resolves a fresh seed at queue time, disabled does nothing.",
"row_behavior": "same_for_all_rows keeps the option seed as-is; vary_by_row offsets it by row number before writing axis seeds.",
"reroll_axis": "Specific generator axis group to reroll. none uses the default axes for the selected scene layer.",
"camera_config": "Camera config consumed only by nodes/options set to from_camera_config.",
"location_config": "Location config from SxCP Location Pool. It can replace or add to the category scene pool.",
"composition_config": "Composition config from SxCP Composition Pool or Location Theme. It can replace or add framing options.",
@@ -33,6 +37,20 @@ COMMON_INPUT_TOOLTIPS = {
"scene": "Structured v2 scene context. Chain Scene nodes in order, then connect to Scene Output or Scene Pair Output.",
"softcore_scene": "Softcore branch scene from Scene Branch Pair, optionally refined by Softcore Branch Options.",
"hardcore_scene": "Hardcore branch scene from Scene Branch Pair, optionally refined by Hardcore Branch Options.",
"options": "Incoming options of the same type. Chain option nodes with combine_mode=add when multiple side knobs should contribute.",
"seed_options": "Scene layer seed options. Connect Scene Layer Seed Options to reroll one layer without changing the whole scene.",
"cast_options": "Optional cast side-node settings that override the Cast node widgets only when connected.",
"character_options": "Optional character side-node settings that override descriptor, presence, and expression controls.",
"wardrobe_options": "Optional wardrobe side-node settings for subject-specific clothing, nudity state, and wardrobe prompt text.",
"location_options": "Optional location layout settings such as foreground anchors, midground, repetition, and public/private context.",
"set_options": "Optional set-dressing settings for props, repeated background, foreground anchors, and sensory details.",
"blocking_options": "Optional blocking settings for subject placement, orientation, depth plane, and exact body geography.",
"action_options": "Optional action settings for scene kind, action family, category preset, and manual action text.",
"performance_options": "Optional performance settings for expression, gaze, hands, body tension, and actor notes.",
"camera_options": "Optional camera side-node settings that describe camera source and freeform camera text.",
"composition_options": "Optional composition side-node settings for readability target, crop, occlusion, and framing text.",
"lighting_options": "Optional lighting side-node settings for source, softness, contrast, color, and time of day.",
"branch_options": "Optional branch settings that apply to softcore, hardcore, or both Insta/OF branches.",
"target_formatter": "Intended downstream formatter target. The scene stores this as metadata; use formatter nodes for final rewriting.",
"category_preset": "Category preset this scene should render through when no explicit category config overrides it.",
"central_subject": "Who should be visually central in this scene metadata.",
@@ -42,24 +60,43 @@ COMMON_INPUT_TOOLTIPS = {
"custom_location": "Exact location text for this scene. One line or JSON entry is enough.",
"location_note": "Additional location wording merged into the location pool entry.",
"foreground_anchors": "Objects or surfaces that should stay near the camera or lower frame.",
"midground_layer": "Readable middle-distance scene elements between the subject and background.",
"background_repetition": "Repeated environmental structure that helps the model keep a location coherent across rerolls.",
"visibility_level": "How visible or hidden the scene should feel inside the location.",
"public_level": "Private, semi-public, or public context for the location layer.",
"repeated_background": "Repeating background structure such as desks, doors, shelves, pillars, or windows.",
"props": "Scene props or set dressing objects that make the location readable.",
"sensory_details": "Small material/light/surface details that make the set dressing feel specific.",
"set_prompt": "Freeform set-dressing sentence appended to the scene layer.",
"blocking_mode": "Broad body-placement mode. custom lets custom_blocking carry the exact placement.",
"subject_placement": "Where the subject or cast sits in the space: foreground, near desk edge, on bed, in aisle, etc.",
"body_relation": "Spatial relationship between participants, separate from the action itself.",
"body_orientation": "Front, side, back, three-quarter, or POV-facing body orientation.",
"depth_plane": "Whether the subjects sit in foreground, midground, background, or a layered composition.",
"distance_note": "Extra spatial distance wording, such as close together, across the table, or partly hidden behind a shelf.",
"custom_blocking": "Exact blocking/positioning sentence for the scene layer.",
"scene_kind": "Regular, softcore, or hardcore intent for this action layer.",
"action_family": "Broad action family such as softcore tease, oral, penetration, climax, group, or custom.",
"action_prompt": "Action text stored separately from blocking and camera. Use position pools for hardcore randomization when possible.",
"gaze": "Where the character looks: camera, partner, down, away, over shoulder, or eyes closed.",
"hand_placement": "What hands are doing: relaxed, on body, on partner, holding camera, pulling clothing, or braced.",
"body_tension": "Body performance cue: relaxed, posed, arched, braced, or active motion.",
"performance_prompt": "Expression, gaze, hand, and body-performance note stored separately from the action.",
"camera_source": "Where camera text comes from conceptually: config, qwen orbit, POV, phone, external, or manual.",
"preserve_location_layout": "Keep location layout wording compatible with the camera instead of letting camera text replace the space.",
"camera_prompt": "Optional freeform camera note kept as scene metadata. Camera config still controls existing formatter behavior.",
"custom_composition": "Exact composition/framing entry to add to the composition pool.",
"readability_target": "What the composition should keep most readable: face, body, action, room, anchor objects, or contact points.",
"crop": "Composition crop intent such as full body, three-quarter, close-up, or extreme close-up.",
"occlusion": "How much foreground or hidden-sightline occlusion the composition should allow.",
"composition_prompt": "Additional composition wording merged into the composition layer.",
"lighting_source": "Main light source family for the scene.",
"lighting_softness": "Softness of the light: soft, balanced, or hard.",
"lighting_contrast": "Overall contrast level for the lighting layer.",
"color_temperature": "Warm, neutral, cool, or mixed color temperature.",
"time_of_day": "Optional time-of-day lighting context.",
"custom_lighting": "Exact lighting sentence for the scene layer.",
"branch_target": "Whether branch options affect both Insta/OF branches, softcore only, or hardcore only.",
"continuity": "How branch outputs share cast/location setup between softcore and hardcore scenes.",
"platform_style": "Instagram/OnlyFans styling bias for Scene Pair Output.",
"softcore_cast": "Whether the softcore branch uses a solo creator or the same cast as the hardcore branch.",
@@ -126,6 +163,9 @@ COMMON_INPUT_TOOLTIPS = {
"presence_mode": "Controls whether the character is visible or acts as the male POV participant.",
"softcore_outfit": "Manual softcore outfit text for this character. Prefer Character Clothing for reusable outfit pools.",
"hardcore_clothing": "Manual hardcore exposure text for this character. Use explicit nude states when you do not want clothing words repeated.",
"wardrobe_state": "High-level clothing/body-exposure state. explicit_nude avoids conflicting outfit text in hardcore prompts.",
"accessories": "Accessories that can remain visible without forcing full outfit wording.",
"avoid_clothing_when_nude": "When nude states are selected, avoid reintroducing clothing words that make the image model dress the subject.",
"custom_softcore_outfits": "One custom softcore outfit per line. Used when softcore_source is custom.",
"custom_hardcore_clothing": "One custom hardcore clothing/body exposure state per line.",
"condition": "Loop condition. When false, the loop stops and passes current values through.",