Add scene-chain adapter layout workflow

This commit is contained in:
2026-06-27 23:51:42 +02:00
parent 3c54bb4bbe
commit e2c4ecb853
2 changed files with 965 additions and 0 deletions
+5
View File
@@ -157,6 +157,11 @@ as one long chain:
A dedicated v2 scene-chain Insta/OF branching demo is available at A dedicated v2 scene-chain Insta/OF branching demo is available at
`examples/scene_chain_insta_of_branching_workflow.json`. `examples/scene_chain_insta_of_branching_workflow.json`.
A proposed adapter-style v2 layout is available at
`examples/scene_chain_adapter_layout_workflow.json`. It keeps the main scene
chain in one center lane and parks layer-specific option nodes beside the layer
they override.
## Loop Nodes ## Loop Nodes
`SxCP For Loop Start` and `SxCP For Loop End` provide a lightweight replacement `SxCP For Loop Start` and `SxCP For Loop End` provide a lightweight replacement
@@ -0,0 +1,960 @@
{
"last_node_id": 45,
"last_link_id": 56,
"nodes": [
{
"id": 1,
"type": "SxCPGlobalSeed",
"pos": [-1900, -1040],
"size": [300, 90],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "seed", "type": "INT", "links": null, "slot_index": 0},
{"name": "seed_config", "type": "STRING", "links": [1], "slot_index": 1},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPGlobalSeed"},
"widgets_values": [20260821]
},
{
"id": 2,
"type": "SxCPSceneStart",
"pos": [-1260, -600],
"size": [360, 250],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [
{"name": "seed_config", "type": "STRING", "link": 1}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [2], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneStart"},
"widgets_values": [1, 41, 20260821, "raw", "provocative_erotic", "random", "balanced", "sxcppnl7", true]
},
{
"id": 3,
"type": "SxCPSceneCastOptions",
"pos": [-840, -1040],
"size": [340, 180],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "cast_options", "type": "STRING", "links": [11], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneCastOptions"},
"widgets_values": ["replace", "mixed_couple", 1, 1, "woman_a", "none"]
},
{
"id": 4,
"type": "SxCPSceneCast",
"pos": [-840, -600],
"size": [360, 150],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 2},
{"name": "cast_options", "type": "STRING", "link": 11}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [12], "slot_index": 0},
{"name": "cast_config", "type": "STRING", "links": null, "slot_index": 1},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 2},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 3}
],
"properties": {"Node name for S&R": "SxCPSceneCast"},
"widgets_values": ["mixed_couple", 1, 1, "woman_a", "none"]
},
{
"id": 5,
"type": "SxCPSceneCharacterOptions",
"pos": [-420, -1040],
"size": [390, 260],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "character_options", "type": "STRING", "links": [14], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneCharacterOptions"},
"widgets_values": ["replace", "medium", "visible", "enabled", 0.45, 0.35, 0.85, "creator remains visually central"]
},
{
"id": 6,
"type": "SxCPSceneCharacter",
"pos": [-420, -760],
"size": [390, 360],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 12},
{"name": "character_options", "type": "STRING", "link": 14},
{"name": "seed_options", "type": "STRING", "link": 9}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [15], "slot_index": 0},
{"name": "character_cast", "type": "STRING", "links": null, "slot_index": 1},
{"name": "character_slot", "type": "STRING", "links": null, "slot_index": 2},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 3},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 4}
],
"properties": {"Node name for S&R": "SxCPSceneCharacter"},
"widgets_values": [true, "woman", "A", -1, "25-year-old adult", "random", "random", "random", "medium", true, 0.45, "visible", -1.0, -1.0]
},
{
"id": 7,
"type": "SxCPSceneCharacter",
"pos": [-420, -310],
"size": [390, 360],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 15},
{"name": "seed_options", "type": "STRING", "link": 13}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [16], "slot_index": 0},
{"name": "character_cast", "type": "STRING", "links": null, "slot_index": 1},
{"name": "character_slot", "type": "STRING", "links": null, "slot_index": 2},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 3},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 4}
],
"properties": {"Node name for S&R": "SxCPSceneCharacter"},
"widgets_values": [true, "man", "A", -1, "40-year-old adult", "random", "random", "average", "compact", true, 0.35, "visible", -1.0, -1.0]
},
{
"id": 8,
"type": "SxCPSceneWardrobeOptions",
"pos": [40, -1040],
"size": [410, 320],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "wardrobe_options", "type": "STRING", "links": [18], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneWardrobeOptions"},
"widgets_values": ["replace", "woman", "A", "minimal", "explicit_nude", true, "black lace lingerie set with stockings and garter details", "", "thin necklace, small earrings", "softcore outfit only; hardcore branch should not repeat outfit tokens"]
},
{
"id": 9,
"type": "SxCPSceneWardrobe",
"pos": [40, -760],
"size": [390, 250],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 16},
{"name": "wardrobe_options", "type": "STRING", "link": 18},
{"name": "seed_options", "type": "STRING", "link": 17}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [19], "slot_index": 0},
{"name": "character_cast", "type": "STRING", "links": null, "slot_index": 1},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 2},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 3}
],
"properties": {"Node name for S&R": "SxCPSceneWardrobe"},
"widgets_values": [true, "woman", "A", "minimal", "black lace lingerie set with stockings and garter details", "fully nude", ""]
},
{
"id": 10,
"type": "SxCPSceneWardrobeOptions",
"pos": [40, 10],
"size": [410, 290],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "wardrobe_options", "type": "STRING", "links": [20], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneWardrobeOptions"},
"widgets_values": ["replace", "man", "A", "full", "dressed", true, "half-open black shirt with dark trousers", "shirt open, lower body mostly off-camera when explicit action is framed", "", "partner outfit stays simpler than creator outfit"]
},
{
"id": 11,
"type": "SxCPSceneWardrobe",
"pos": [40, -360],
"size": [390, 250],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 19},
{"name": "wardrobe_options", "type": "STRING", "link": 20},
{"name": "seed_options", "type": "STRING", "link": 21}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [22], "slot_index": 0},
{"name": "character_cast", "type": "STRING", "links": null, "slot_index": 1},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 2},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 3}
],
"properties": {"Node name for S&R": "SxCPSceneWardrobe"},
"widgets_values": [true, "man", "A", "full", "half-open black shirt with dark trousers", "shirt open, lower body mostly off-camera when explicit action is framed", ""]
},
{
"id": 12,
"type": "SxCPSceneLocationLayoutOptions",
"pos": [500, -1040],
"size": [410, 250],
"flags": {},
"order": 11,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "location_options", "type": "STRING", "links": [23], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneLocationLayoutOptions"},
"widgets_values": ["replace", "near desk edge, laptop corner, chair back", "warm work desks, laptop tables, glass partition seams", "repeated desk rows, plants, tall windows", "semi_public", "semi_public", "coworking lounge layout that survives camera rerolls"]
},
{
"id": 13,
"type": "SxCPSceneLocation",
"pos": [500, -760],
"size": [410, 210],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 22},
{"name": "location_options", "type": "STRING", "link": 23},
{"name": "seed_options", "type": "STRING", "link": 24}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [25], "slot_index": 0},
{"name": "location_config", "type": "STRING", "links": null, "slot_index": 1},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 2},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 3}
],
"properties": {"Node name for S&R": "SxCPSceneLocation"},
"widgets_values": [true, "replace", "custom_only", "coworking lounge with tall windows, warm desks, glass partitions, plants, and polished office-lounge surfaces", "shared location base"]
},
{
"id": 14,
"type": "SxCPSceneSetDressingOptions",
"pos": [500, -170],
"size": [410, 230],
"flags": {},
"order": 13,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "set_options", "type": "STRING", "links": [26], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneSetDressingOptions"},
"widgets_values": ["replace", "laptop corner and polished tabletop line", "desks, chairs, glass seams, plant rows", "phone, coffee cup, folded jacket", "warm wood, glass reflections, muted office light", "keep props beside or behind the action, not blocking the subject"]
},
{
"id": 15,
"type": "SxCPSceneSetDressing",
"pos": [500, -470],
"size": [410, 250],
"flags": {},
"order": 14,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 25},
{"name": "set_options", "type": "STRING", "link": 26}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [27], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneSetDressing"},
"widgets_values": [true, "", "", "", ""]
},
{
"id": 16,
"type": "SxCPSceneBlockingOptions",
"pos": [960, -1040],
"size": [410, 270],
"flags": {},
"order": 15,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "blocking_options", "type": "STRING", "links": [28], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneBlockingOptions"},
"widgets_values": ["replace", "custom", "woman close to the desk edge with room depth behind her", "man close enough for the hardcore branch but not forced into the softcore pose", "three_quarter", "foreground", "subjects dominate the frame while the coworking pattern remains visible", "shared blocking base before branch-specific action"]
},
{
"id": 17,
"type": "SxCPSceneBlocking",
"pos": [960, -760],
"size": [410, 250],
"flags": {},
"order": 16,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 27},
{"name": "blocking_options", "type": "STRING", "link": 28}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [29], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneBlocking"},
"widgets_values": [true, "custom", "", "", ""]
},
{
"id": 18,
"type": "SxCPSceneActionOptions",
"pos": [960, -170],
"size": [410, 190],
"flags": {},
"order": 17,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "action_options", "type": "STRING", "links": [30], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneActionOptions"},
"widgets_values": ["replace", "softcore", "softcore_tease", "no_change", "soft branch starts as an outfit tease; hardcore branch replaces action through the action filter"]
},
{
"id": 19,
"type": "SxCPSceneAction",
"pos": [960, -470],
"size": [410, 210],
"flags": {},
"order": 18,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 29},
{"name": "action_options", "type": "STRING", "link": 30},
{"name": "seed_options", "type": "STRING", "link": 31}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [32], "slot_index": 0},
{"name": "hardcore_position_config", "type": "STRING", "links": null, "slot_index": 1},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 2},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 3}
],
"properties": {"Node name for S&R": "SxCPSceneAction"},
"widgets_values": [true, "regular", "no_change", ""]
},
{
"id": 20,
"type": "SxCPScenePerformanceOptions",
"pos": [1420, -1040],
"size": [410, 250],
"flags": {},
"order": 19,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "performance_options", "type": "STRING", "links": [33], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPScenePerformanceOptions"},
"widgets_values": ["replace", "enabled", "fixed", 0.55, "camera", "on_body", "posed", "controlled creator-camera expression"]
},
{
"id": 21,
"type": "SxCPScenePerformance",
"pos": [1420, -760],
"size": [410, 180],
"flags": {},
"order": 20,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 32},
{"name": "performance_options", "type": "STRING", "link": 33}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [34], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPScenePerformance"},
"widgets_values": [true, "fixed", 0.55, ""]
},
{
"id": 22,
"type": "SxCPSceneCameraOptions",
"pos": [1420, -150],
"size": [410, 170],
"flags": {},
"order": 21,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "camera_options", "type": "STRING", "links": [35], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneCameraOptions"},
"widgets_values": ["replace", "from_camera_config", true, "camera should adapt to the location layout instead of replacing it"]
},
{
"id": 23,
"type": "SxCPSceneCamera",
"pos": [1420, -530],
"size": [410, 330],
"flags": {},
"order": 22,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 34},
{"name": "camera_options", "type": "STRING", "link": 35}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [36], "slot_index": 0},
{"name": "camera_config", "type": "STRING", "links": null, "slot_index": 1},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 2},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 3}
],
"properties": {"Node name for S&R": "SxCPSceneCamera"},
"widgets_values": [true, "standard", "three_quarter", "eye_level", "auto", "auto", "vertical_story", "auto", "strong", "compact", ""]
},
{
"id": 24,
"type": "SxCPSceneCompositionOptions",
"pos": [1880, -1040],
"size": [410, 200],
"flags": {},
"order": 23,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "composition_options", "type": "STRING", "links": [37], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneCompositionOptions"},
"widgets_values": ["replace", "body", "three_quarter", "clear", "subject remains dominant while desk rows and glass seams prove the location"]
},
{
"id": 25,
"type": "SxCPSceneComposition",
"pos": [1880, -760],
"size": [410, 210],
"flags": {},
"order": 24,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 36},
{"name": "composition_options", "type": "STRING", "link": 37}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [38], "slot_index": 0},
{"name": "composition_config", "type": "STRING", "links": null, "slot_index": 1},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 2},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 3}
],
"properties": {"Node name for S&R": "SxCPSceneComposition"},
"widgets_values": [true, "replace", "no_outfit_check", "", ""]
},
{
"id": 26,
"type": "SxCPSceneLightingOptions",
"pos": [1880, -150],
"size": [410, 220],
"flags": {},
"order": 25,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "lighting_options", "type": "STRING", "links": [39], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneLightingOptions"},
"widgets_values": ["replace", "window_light", "soft", "medium", "warm", "evening", "soft office-window light with practical lamps in the background"]
},
{
"id": 27,
"type": "SxCPSceneLighting",
"pos": [1880, -470],
"size": [410, 210],
"flags": {},
"order": 26,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 38},
{"name": "lighting_options", "type": "STRING", "link": 39}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [40], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneLighting"},
"widgets_values": [true, "auto", "auto", "auto", "auto", ""]
},
{
"id": 28,
"type": "SxCPSceneBranchOptions",
"pos": [2340, -1040],
"size": [390, 180],
"flags": {},
"order": 27,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "branch_options", "type": "STRING", "links": [41, 44, 47], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneBranchOptions"},
"widgets_values": ["replace", "both", "same_creator_same_room", "hybrid", "same cast, same coworking room, different explicitness"]
},
{
"id": 29,
"type": "SxCPSceneBranchPair",
"pos": [2340, -600],
"size": [340, 130],
"flags": {},
"order": 28,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 40},
{"name": "branch_options", "type": "STRING", "link": 41},
{"name": "seed_options", "type": "STRING", "link": 42}
],
"outputs": [
{"name": "softcore_scene", "type": "STRING", "links": [43], "slot_index": 0},
{"name": "hardcore_scene", "type": "STRING", "links": [45], "slot_index": 1},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 2},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 3}
],
"properties": {"Node name for S&R": "SxCPSceneBranchPair"},
"widgets_values": ["same_creator_same_room", "hybrid"]
},
{
"id": 30,
"type": "SxCPSoftcoreBranchOptions",
"pos": [2760, -760],
"size": [390, 260],
"flags": {},
"order": 29,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 43},
{"name": "branch_options", "type": "STRING", "link": 44}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [49], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSoftcoreBranchOptions"},
"widgets_values": ["same_as_hardcore", "lingerie_tease", true, 0.45, "from_camera_config", "compact", ""]
},
{
"id": 31,
"type": "SxCPHardcoreActionFilter",
"pos": [2340, -310],
"size": [360, 300],
"flags": {},
"order": 30,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "hardcore_position_config", "type": "STRING", "links": [46], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1}
],
"properties": {"Node name for S&R": "SxCPHardcoreActionFilter"},
"widgets_values": ["penetration_only", false, false, true, false, false, false, false, false, false, false]
},
{
"id": 32,
"type": "SxCPHardcoreBranchOptions",
"pos": [2760, -350],
"size": [390, 360],
"flags": {},
"order": 31,
"mode": 0,
"inputs": [
{"name": "scene", "type": "STRING", "link": 45},
{"name": "hardcore_position_config", "type": "STRING", "link": 46},
{"name": "branch_options", "type": "STRING", "link": 47},
{"name": "seed_options", "type": "STRING", "link": 48}
],
"outputs": [
{"name": "scene", "type": "STRING", "links": [50], "slot_index": 0},
{"name": "hardcore_position_config", "type": "STRING", "links": null, "slot_index": 1},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 2},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 3}
],
"properties": {"Node name for S&R": "SxCPHardcoreBranchOptions"},
"widgets_values": ["couple", 1, 1, "hardcore", true, 0.85, "explicit_nude", "from_camera_config", "compact", "balanced", ""]
},
{
"id": 33,
"type": "SxCPScenePairOutput",
"pos": [3220, -600],
"size": [430, 290],
"flags": {},
"order": 32,
"mode": 0,
"inputs": [
{"name": "softcore_scene", "type": "STRING", "link": 49},
{"name": "hardcore_scene", "type": "STRING", "link": 50}
],
"outputs": [
{"name": "softcore_prompt", "type": "STRING", "links": [53], "slot_index": 0},
{"name": "hardcore_prompt", "type": "STRING", "links": [54], "slot_index": 1},
{"name": "softcore_negative_prompt", "type": "STRING", "links": null, "slot_index": 2},
{"name": "hardcore_negative_prompt", "type": "STRING", "links": null, "slot_index": 3},
{"name": "softcore_caption", "type": "STRING", "links": null, "slot_index": 4},
{"name": "hardcore_caption", "type": "STRING", "links": null, "slot_index": 5},
{"name": "shared_descriptor", "type": "STRING", "links": null, "slot_index": 6},
{"name": "metadata_json", "type": "STRING", "links": [51, 52], "slot_index": 7},
{"name": "scene_metadata_json", "type": "STRING", "links": null, "slot_index": 8}
],
"properties": {"Node name for S&R": "SxCPScenePairOutput"},
"widgets_values": []
},
{
"id": 34,
"type": "SxCPKrea2Formatter",
"pos": [3720, -760],
"size": [390, 270],
"flags": {},
"order": 33,
"mode": 0,
"inputs": [
{"name": "metadata_json", "type": "STRING", "link": 51}
],
"outputs": [
{"name": "krea_prompt", "type": "STRING", "links": null, "slot_index": 0},
{"name": "negative_prompt", "type": "STRING", "links": null, "slot_index": 1},
{"name": "krea_softcore_prompt", "type": "STRING", "links": [55], "slot_index": 2},
{"name": "krea_hardcore_prompt", "type": "STRING", "links": [56], "slot_index": 3},
{"name": "softcore_negative_prompt", "type": "STRING", "links": null, "slot_index": 4},
{"name": "hardcore_negative_prompt", "type": "STRING", "links": null, "slot_index": 5},
{"name": "method", "type": "STRING", "links": null, "slot_index": 6},
{"name": "route_trace_json", "type": "STRING", "links": null, "slot_index": 7}
],
"properties": {"Node name for S&R": "SxCPKrea2Formatter"},
"widgets_values": ["", "metadata_json", "auto", "balanced", "preserve", false, "", ""]
},
{
"id": 35,
"type": "SxCPCaptionNaturalizer",
"pos": [3720, -370],
"size": [390, 240],
"flags": {},
"order": 34,
"mode": 0,
"inputs": [
{"name": "metadata_json", "type": "STRING", "link": 52}
],
"outputs": [
{"name": "natural_caption", "type": "STRING", "links": null, "slot_index": 0},
{"name": "method", "type": "STRING", "links": null, "slot_index": 1},
{"name": "route_trace_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPCaptionNaturalizer"},
"widgets_values": ["", "metadata_json", "training_dense", "balanced", "drop_style_tail", "sxcppnl7", true, "auto"]
},
{
"id": 36,
"type": "SxCPPreviewAnyAsText",
"pos": [4200, -900],
"size": [420, 180],
"flags": {},
"order": 35,
"mode": 0,
"inputs": [
{"name": "value", "type": "*", "link": 53}
],
"outputs": [
{"name": "text", "type": "STRING", "links": null, "slot_index": 0}
],
"properties": {"Node name for S&R": "SxCPPreviewAnyAsText"},
"widgets_values": ["Raw softcore prompt preview", "auto", 30000]
},
{
"id": 37,
"type": "SxCPPreviewAnyAsText",
"pos": [4200, -690],
"size": [420, 180],
"flags": {},
"order": 36,
"mode": 0,
"inputs": [
{"name": "value", "type": "*", "link": 54}
],
"outputs": [
{"name": "text", "type": "STRING", "links": null, "slot_index": 0}
],
"properties": {"Node name for S&R": "SxCPPreviewAnyAsText"},
"widgets_values": ["Raw hardcore prompt preview", "auto", 30000]
},
{
"id": 38,
"type": "SxCPPreviewAnyAsText",
"pos": [4200, -480],
"size": [420, 180],
"flags": {},
"order": 37,
"mode": 0,
"inputs": [
{"name": "value", "type": "*", "link": 55}
],
"outputs": [
{"name": "text", "type": "STRING", "links": null, "slot_index": 0}
],
"properties": {"Node name for S&R": "SxCPPreviewAnyAsText"},
"widgets_values": ["Krea softcore prompt preview", "auto", 30000]
},
{
"id": 39,
"type": "SxCPPreviewAnyAsText",
"pos": [4200, -270],
"size": [420, 180],
"flags": {},
"order": 38,
"mode": 0,
"inputs": [
{"name": "value", "type": "*", "link": 56}
],
"outputs": [
{"name": "text", "type": "STRING", "links": null, "slot_index": 0}
],
"properties": {"Node name for S&R": "SxCPPreviewAnyAsText"},
"widgets_values": ["Krea hardcore prompt preview", "auto", 30000]
},
{
"id": 40,
"type": "Note",
"pos": [-1900, -470],
"size": [560, 260],
"flags": {},
"order": 39,
"mode": 0,
"inputs": [],
"outputs": [],
"properties": {},
"widgets_values": [
"Proposed adapter layout: the center row is the mental-model chain (scene start -> cast -> characters -> wardrobe -> location -> set -> blocking -> action -> performance -> camera -> composition -> lighting -> branch). Adapter nodes sit above/below the layer they override. The seed adapter bus on the left is chained once and reused by character, wardrobe, location, action, and hardcore branch nodes."
]
},
{
"id": 41,
"type": "SxCPSceneLayerSeedOptions",
"pos": [-1900, -900],
"size": [340, 170],
"flags": {},
"order": 40,
"mode": 0,
"inputs": [],
"outputs": [
{"name": "seed_options", "type": "STRING", "links": [3], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneLayerSeedOptions"},
"widgets_values": ["character", "fixed", 20260831, "person", "same_for_all_rows", "replace_layer"]
},
{
"id": 42,
"type": "SxCPSceneLayerSeedOptions",
"pos": [-1900, -710],
"size": [340, 170],
"flags": {},
"order": 41,
"mode": 0,
"inputs": [
{"name": "seed_options", "type": "STRING", "link": 3}
],
"outputs": [
{"name": "seed_options", "type": "STRING", "links": [4], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneLayerSeedOptions"},
"widgets_values": ["wardrobe", "fixed", 20260832, "content", "same_for_all_rows", "add"]
},
{
"id": 43,
"type": "SxCPSceneLayerSeedOptions",
"pos": [-1540, -900],
"size": [340, 170],
"flags": {},
"order": 42,
"mode": 0,
"inputs": [
{"name": "seed_options", "type": "STRING", "link": 4}
],
"outputs": [
{"name": "seed_options", "type": "STRING", "links": [5], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneLayerSeedOptions"},
"widgets_values": ["location", "fixed", 20260833, "scene", "same_for_all_rows", "add"]
},
{
"id": 44,
"type": "SxCPSceneLayerSeedOptions",
"pos": [-1540, -710],
"size": [340, 170],
"flags": {},
"order": 43,
"mode": 0,
"inputs": [
{"name": "seed_options", "type": "STRING", "link": 5}
],
"outputs": [
{"name": "seed_options", "type": "STRING", "links": [6], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneLayerSeedOptions"},
"widgets_values": ["action", "fixed", 20260834, "pose", "same_for_all_rows", "add"]
},
{
"id": 45,
"type": "SxCPSceneLayerSeedOptions",
"pos": [-1540, -520],
"size": [340, 170],
"flags": {},
"order": 44,
"mode": 0,
"inputs": [
{"name": "seed_options", "type": "STRING", "link": 6}
],
"outputs": [
{"name": "seed_options", "type": "STRING", "links": [9, 13, 17, 21, 24, 31, 42, 48], "slot_index": 0},
{"name": "summary", "type": "STRING", "links": null, "slot_index": 1},
{"name": "metadata_json", "type": "STRING", "links": null, "slot_index": 2}
],
"properties": {"Node name for S&R": "SxCPSceneLayerSeedOptions"},
"widgets_values": ["hardcore_branch", "fixed", 20260835, "pose", "same_for_all_rows", "add"]
}
],
"links": [
[1, 1, 1, 2, 0, "STRING"],
[2, 2, 0, 4, 0, "STRING"],
[3, 41, 0, 42, 0, "STRING"],
[4, 42, 0, 43, 0, "STRING"],
[5, 43, 0, 44, 0, "STRING"],
[6, 44, 0, 45, 0, "STRING"],
[9, 45, 0, 6, 2, "STRING"],
[11, 3, 0, 4, 1, "STRING"],
[12, 4, 0, 6, 0, "STRING"],
[13, 45, 0, 7, 1, "STRING"],
[14, 5, 0, 6, 1, "STRING"],
[15, 6, 0, 7, 0, "STRING"],
[16, 7, 0, 9, 0, "STRING"],
[17, 45, 0, 9, 2, "STRING"],
[18, 8, 0, 9, 1, "STRING"],
[19, 9, 0, 11, 0, "STRING"],
[20, 10, 0, 11, 1, "STRING"],
[21, 45, 0, 11, 2, "STRING"],
[22, 11, 0, 13, 0, "STRING"],
[23, 12, 0, 13, 1, "STRING"],
[24, 45, 0, 13, 2, "STRING"],
[25, 13, 0, 15, 0, "STRING"],
[26, 14, 0, 15, 1, "STRING"],
[27, 15, 0, 17, 0, "STRING"],
[28, 16, 0, 17, 1, "STRING"],
[29, 17, 0, 19, 0, "STRING"],
[30, 18, 0, 19, 1, "STRING"],
[31, 45, 0, 19, 2, "STRING"],
[32, 19, 0, 21, 0, "STRING"],
[33, 20, 0, 21, 1, "STRING"],
[34, 21, 0, 23, 0, "STRING"],
[35, 22, 0, 23, 1, "STRING"],
[36, 23, 0, 25, 0, "STRING"],
[37, 24, 0, 25, 1, "STRING"],
[38, 25, 0, 27, 0, "STRING"],
[39, 26, 0, 27, 1, "STRING"],
[40, 27, 0, 29, 0, "STRING"],
[41, 28, 0, 29, 1, "STRING"],
[42, 45, 0, 29, 2, "STRING"],
[43, 29, 0, 30, 0, "STRING"],
[44, 28, 0, 30, 1, "STRING"],
[45, 29, 1, 32, 0, "STRING"],
[46, 31, 0, 32, 1, "STRING"],
[47, 28, 0, 32, 2, "STRING"],
[48, 45, 0, 32, 3, "STRING"],
[49, 30, 0, 33, 0, "STRING"],
[50, 32, 0, 33, 1, "STRING"],
[51, 33, 7, 34, 0, "STRING"],
[52, 33, 7, 35, 0, "STRING"],
[53, 33, 0, 36, 0, "STRING"],
[54, 33, 1, 37, 0, "STRING"],
[55, 34, 2, 38, 0, "STRING"],
[56, 34, 3, 39, 0, "STRING"]
],
"groups": [
{
"title": "Seed Adapter Bus",
"bounding": [-1930, -1090, 760, 780],
"color": "#4d6b8f",
"font_size": 24
},
{
"title": "Main Scene Chain",
"bounding": [-1290, -810, 3610, 900],
"color": "#3f789e",
"font_size": 24
},
{
"title": "Layer Option Adapters",
"bounding": [-870, -1090, 3220, 1180],
"color": "#6b5a8f",
"font_size": 24
},
{
"title": "Softcore/Hardcore Branch Adapters",
"bounding": [2310, -1090, 880, 1160],
"color": "#8a5a5a",
"font_size": 24
},
{
"title": "Pair Output, Formatters, Persistent Text Previews",
"bounding": [3190, -950, 1470, 900],
"color": "#4d7f45",
"font_size": 24
}
],
"config": {},
"extra": {
"ds": {
"scale": 0.52,
"offset": [1290, 665]
}
},
"version": 0.4
}