diff --git a/ab_batches/normal_camera/normal_camera_acceptance_gates.md b/ab_batches/normal_camera/normal_camera_acceptance_gates.md new file mode 100644 index 0000000..bfa96bd --- /dev/null +++ b/ab_batches/normal_camera/normal_camera_acceptance_gates.md @@ -0,0 +1,14 @@ +# Normal Camera Pre-A/B Acceptance Gates + +No-generation gate sheet for later fixed-seed generation review. This file does not record generated evidence. + +- `camera_geometry`: Camera angle, elevation, side/front/back orientation, and framing match the atlas family. +- `pose_ownership`: The visible actors own the pose correctly, with no POV body cues leaking into normal-camera framing. +- `workspace_continuity`: Workspace/lounge details support the camera angle instead of fighting the pose. +- `clothing_visibility`: Clothing cues stay attached to the intended visible subject and only describe garments visible in this pose. +- `subject_identity`: The same woman identity, face, hair, eyes, and body type remain stable across fixed-seed variants. +- `body_proportion_control`: Penis/body proportions and limb lengths stay plausible for the selected atlas framing. +- `prompt_noise`: Prompt text uses direct visual cues, with option, negative, and instruction-like wording removed from positive text. +- `atlas_reference_match`: The generated frame can be matched back to the selected atlas references for this variant. + +Prompt-ready cues must stay positive and direct. Cues with option words, negative wording, or instruction-like cleanup text remain review-only until manually rewritten from atlas evidence. diff --git a/ab_batches/normal_camera/normal_camera_needs_samples_acquisition.json b/ab_batches/normal_camera/normal_camera_needs_samples_acquisition.json new file mode 100644 index 0000000..7943006 --- /dev/null +++ b/ab_batches/normal_camera/normal_camera_needs_samples_acquisition.json @@ -0,0 +1,1928 @@ +{ + "schema": "sxcp_normal_camera_needs_samples_acquisition_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "source_variant_catalog": "categories/normal_camera_variants.json", + "selection": "needs_samples variants sorted by missing reference count, action family, and variant key", + "target_reference_count": 12, + "available_variant_count": 76, + "selected_count": 76, + "variants": [ + { + "variant_key": "normal_blowjob_laying_back_three_quarter_single_reference_pool", + "family": "blowjob", + "action_family": "blowjob", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "blowjob laying - back view - 3-4 angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "blowjob laying - back view - 3-4 angle", + "canonical_folder": "blowjob laying - back view - 3-4 angle", + "canonical_key": "blowjob_laying_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Single-reference laying oral-contact back three-quarter source pool: one reviewed sample preserves the rear-offset cue but remains too thin for a prompt-ready route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found one rear-offset sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "acquisition_rank": 1 + }, + { + "variant_key": "normal_blowjob_low_angle", + "family": "blowjob", + "action_family": "blowjob", + "camera_view": "low_angle", + "atlas_folders": [ + "blowjob - low angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "blowjob - low angle", + "canonical_folder": "blowjob - low angle", + "canonical_key": "blowjob_low_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Thin generic low-angle normal-camera oral reference.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed this as a one-sample low-angle reference; keep needs_samples.", + "acquisition_rank": 2 + }, + { + "variant_key": "normal_anal_cowgirl_single_reference_pool", + "family": "cowgirl", + "action_family": "cowgirl", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "anal cowgirl" + ], + "folder_aliases": [ + { + "exact_source_folder": "anal cowgirl", + "canonical_folder": "anal cowgirl", + "canonical_key": "anal_cowgirl", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Single-reference anal cowgirl source pool: one reviewed third-person sample preserves the action cue but cannot define a stable normal-camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found one sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "acquisition_rank": 3 + }, + { + "variant_key": "normal_cowgirl_front_view", + "family": "cowgirl", + "action_family": "cowgirl", + "camera_view": "front_view", + "atlas_folders": [ + "cowgirl - front view" + ], + "folder_aliases": [ + { + "exact_source_folder": "cowgirl - front view", + "canonical_folder": "cowgirl - front view", + "canonical_key": "cowgirl_front_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Thin generic cowgirl front normal-camera reference.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Split from the cowgirl front grouping; kept as needs_samples because the source folder is a single thin sample. Visual review confirmed this status from a full-folder cowgirl/reverse-cowgirl contact sheet.", + "acquisition_rank": 4 + }, + { + "variant_key": "normal_anal_doggy_side_view_single_reference_pool", + "family": "doggy", + "action_family": "doggy", + "camera_view": "side_view", + "atlas_folders": [ + "anal doggy - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "anal doggy - side view", + "canonical_folder": "anal doggy - side view", + "canonical_key": "anal_doggy_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Single-reference anal doggy side-view source pool: one reviewed side-view sample preserves the label but remains too thin for a prompt-ready route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review confirmed one side-view sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "acquisition_rank": 5 + }, + { + "variant_key": "normal_anal_laying_back_three_quarter_single_reference_pool", + "family": "doggy", + "action_family": "doggy", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "anal fuck from behind laying - back view - 3-4 angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "anal fuck from behind laying - back view - 3-4 angle", + "canonical_folder": "anal fuck from behind laying - back view - 3-4 angle", + "canonical_key": "anal_fuck_from_behind_laying_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Single-reference laying rear three-quarter anal source pool: one reviewed sample preserves the back three-quarter cue but remains coverage only.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found one rear three-quarter sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "acquisition_rank": 6 + }, + { + "variant_key": "normal_doggy_press_back_side_single_reference_pool", + "family": "doggy", + "action_family": "doggy", + "camera_view": "back_view", + "atlas_folders": [ + "doggy press - back side" + ], + "folder_aliases": [ + { + "exact_source_folder": "doggy press - back side", + "canonical_folder": "doggy press - back side", + "canonical_key": "doggy_press_back_side", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Single-reference doggy-press back-side source pool: one reviewed rear/back sample preserves the posture cue but remains coverage only.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found one rear/back sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "acquisition_rank": 7 + }, + { + "variant_key": "normal_double_blowjob_handjob_front_view", + "family": "double_contact", + "action_family": "double_contact", + "camera_view": "front_view", + "atlas_folders": [ + "double blowjob-handjob-frontview" + ], + "folder_aliases": [ + { + "exact_source_folder": "double blowjob-handjob-frontview", + "canonical_folder": "double blowjob-handjob-frontview", + "canonical_key": "double_blowjob_handjob_frontview", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Thin double-contact front normal-camera reference.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed the label as plausible, but the folder has only one front-view double-contact reference; keep needs_samples.", + "acquisition_rank": 8 + }, + { + "variant_key": "normal_double_blowjob_handjob_top_view", + "family": "double_contact", + "action_family": "double_contact", + "camera_view": "top_view", + "atlas_folders": [ + "double blowjob-handjob-topview" + ], + "folder_aliases": [ + { + "exact_source_folder": "double blowjob-handjob-topview", + "canonical_folder": "double blowjob-handjob-topview", + "canonical_key": "double_blowjob_handjob_topview", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Thin double-contact top-view normal-camera reference.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed the label as plausible, but the folder has only one top-view double-contact reference; keep needs_samples.", + "acquisition_rank": 9 + }, + { + "variant_key": "normal_double_penetration_back_three_quarter", + "family": "double_contact", + "action_family": "double_contact", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "double penetration - back view - 3-4 angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "double penetration - back view - 3-4 angle", + "canonical_folder": "double penetration - back view - 3-4 angle", + "canonical_key": "double_penetration_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Thin double-contact rear three-quarter normal-camera reference.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed the label as plausible, but the folder has only one rear three-quarter reference; keep needs_samples.", + "acquisition_rank": 10 + }, + { + "variant_key": "normal_double_penetration_on_back_back_three_quarter", + "family": "double_contact", + "action_family": "double_contact", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "double penetration on her back- back view - 3-4 angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "double penetration on her back- back view - 3-4 angle", + "canonical_folder": "double penetration on her back- back view - 3-4 angle", + "canonical_key": "double_penetration_on_her_back_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Thin double-contact on-back rear three-quarter normal-camera reference.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed the label as plausible, but the folder has only one on-back rear three-quarter reference; keep needs_samples.", + "acquisition_rank": 11 + }, + { + "variant_key": "normal_face_sitting_front_view_single_reference_pool", + "family": "face_sitting", + "action_family": "face_sitting", + "camera_view": "front_view", + "atlas_folders": [ + "face sitting - front view" + ], + "folder_aliases": [ + { + "exact_source_folder": "face sitting - front view", + "canonical_folder": "face sitting - front view", + "canonical_key": "face_sitting_front_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Single-reference face-sitting front-view source pool: one reviewed front sample preserves the label but remains too thin for a selected route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found one front-view sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "acquisition_rank": 12 + }, + { + "variant_key": "normal_fist_mixed_camera_folder_pool", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "fist" + ], + "folder_aliases": [ + { + "exact_source_folder": "fist", + "canonical_folder": "fist", + "canonical_key": "fist", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Single-reference manual-contact source pool: the folder has one reviewed sample, so it is coverage evidence only and not a normal-camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found only one reference. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "acquisition_rank": 13 + }, + { + "variant_key": "normal_handjob_standing_low_angle_single_reference_pool", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "low_angle", + "atlas_folders": [ + "handjob - standing -low angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "handjob - standing -low angle", + "canonical_folder": "handjob - standing - low angle", + "canonical_key": "handjob_standing_low_angle", + "alias_applied": true, + "alias_reason": "Spacing typo normalized for review metadata while preserving exact source path." + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Single-reference standing manual-contact low-angle source pool: one reviewed low-angle sample preserves the label but remains coverage only.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found one low-angle sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "acquisition_rank": 14 + }, + { + "variant_key": "normal_missionary_front_three_quarter", + "family": "missionary", + "action_family": "missionary", + "camera_view": "front_three_quarter", + "atlas_folders": [ + "missionary - front view - 3-4 angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "missionary - front view - 3-4 angle", + "canonical_folder": "missionary - front view - 3-4 angle", + "canonical_key": "missionary_front_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Thin generic missionary front three-quarter normal-camera reference.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Single sample matches the front three-quarter label but is too thin to promote. Split from the missionary front grouping and kept as needs_samples because this source folder has one sample.", + "acquisition_rank": 15 + }, + { + "variant_key": "normal_missionary_top_down", + "family": "missionary", + "action_family": "missionary", + "camera_view": "top_view", + "atlas_folders": [ + "missionary - top view" + ], + "folder_aliases": [ + { + "exact_source_folder": "missionary - top view", + "canonical_folder": "missionary - top view", + "canonical_key": "missionary_top_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Sparse overhead missionary reference: camera looks down from above, bodies are arranged below the camera plane, and the relationship of legs, torsos, and contact line matters more than front/side azimuth.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Single sample matches a top/downward camera reference, but it remains too thin for A/B. Only one source image; keep as needs-samples before serious A/B.", + "acquisition_rank": 16 + }, + { + "variant_key": "normal_anus_licking_single_reference_pool", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "anus lickiing" + ], + "folder_aliases": [ + { + "exact_source_folder": "anus lickiing", + "canonical_folder": "anus licking", + "canonical_key": "anus_licking", + "alias_applied": true, + "alias_reason": "Folder-name typo normalized for review metadata while preserving exact source path." + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Single-reference anal oral-contact source pool: one reviewed sample preserves the action cue but remains coverage only.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found one sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "acquisition_rank": 17 + }, + { + "variant_key": "normal_penis_worship_foreground_close_reference_folder_pool", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "penis worship" + ], + "folder_aliases": [ + { + "exact_source_folder": "penis worship", + "canonical_folder": "penis worship", + "canonical_key": "penis_worship", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Foreground-heavy close-reference source pool: many samples place the contact object prominently near camera with performer face visible, so the folder is useful for action reference but not a clean normal third-person camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Residual mixed foreground-close source pool after user-anchored top-view and side-view subsets were split out. Keep needs_samples and manually filter for non-POV crops before any A/B.", + "acquisition_rank": 18 + }, + { + "variant_key": "normal_pussy_licking_leg_up_back_three_quarter_single_reference_pool", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "pussy licking leg up - back view - 3-4 angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "pussy licking leg up - back view - 3-4 angle", + "canonical_folder": "pussy licking leg up - back view - 3-4 angle", + "canonical_key": "pussy_licking_leg_up_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Single-reference leg-up oral-contact back three-quarter source pool: one reviewed sample preserves the label but remains coverage only.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found one rear-offset leg-up sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "acquisition_rank": 19 + }, + { + "variant_key": "normal_pussy_licking_standing_woman_single_reference_pool", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "pussy licking standing woman" + ], + "folder_aliases": [ + { + "exact_source_folder": "pussy licking standing woman", + "canonical_folder": "pussy licking standing woman", + "canonical_key": "pussy_licking_standing_woman", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Single-reference standing-woman oral-contact source pool: one reviewed sample preserves the posture cue but remains coverage only.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found one sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "acquisition_rank": 20 + }, + { + "variant_key": "normal_under_desk_single_reference_pool", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "under desk" + ], + "folder_aliases": [ + { + "exact_source_folder": "under desk", + "canonical_folder": "under desk", + "canonical_key": "under_desk", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Single-reference under-desk oral-contact source pool: one reviewed sample preserves the under-desk context cue but remains coverage only.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found one contextual sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "acquisition_rank": 21 + }, + { + "variant_key": "normal_anal_reverse_congress_single_reference_pool", + "family": "reverse_congress", + "action_family": "reverse_congress", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "anal reverse congress" + ], + "folder_aliases": [ + { + "exact_source_folder": "anal reverse congress", + "canonical_folder": "anal reverse congress", + "canonical_key": "anal_reverse_congress", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Single-reference anal reverse-congress source pool: one reviewed sample preserves the posture/action cue but cannot define a selected normal-camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found one sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "acquisition_rank": 22 + }, + { + "variant_key": "normal_standing_sideway_side_view", + "family": "standing_penetration", + "action_family": "standing_penetration", + "camera_view": "side_view", + "atlas_folders": [ + "fuck standing - woman sideway" + ], + "folder_aliases": [ + { + "exact_source_folder": "fuck standing - woman sideway", + "canonical_folder": "fuck standing - woman sideway", + "canonical_key": "fuck_standing_woman_sideway", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 1, + "target_reference_count": 12, + "missing_reference_count": 11, + "canonical_geometry": "Thin standing sideway normal-camera reference.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed this as a one-sample reference; keep needs_samples.", + "acquisition_rank": 23 + }, + { + "variant_key": "normal_ballsucking_laying_close_reference_folder_pool", + "family": "ballsucking", + "action_family": "ballsucking", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "ballsucking - laying" + ], + "folder_aliases": [ + { + "exact_source_folder": "ballsucking - laying", + "canonical_folder": "ballsucking - laying", + "canonical_key": "ballsucking_laying", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 2, + "target_reference_count": 12, + "missing_reference_count": 10, + "canonical_geometry": "Laying oral-contact close-reference source pool with only two samples and no stable camera azimuth.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed this as a two-sample laying close-reference pool; keep needs_samples.", + "acquisition_rank": 24 + }, + { + "variant_key": "normal_blowjob_front_low_angle", + "family": "blowjob", + "action_family": "blowjob", + "camera_view": "front_view", + "atlas_folders": [ + "blowjob - front view - low angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "blowjob - front view - low angle", + "canonical_folder": "blowjob - front view - low angle", + "canonical_key": "blowjob_front_view_low_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 2, + "target_reference_count": 12, + "missing_reference_count": 10, + "canonical_geometry": "Thin front low-angle normal-camera oral reference.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed the label, but this remains needs_samples because the source folder contains only two examples.", + "acquisition_rank": 25 + }, + { + "variant_key": "normal_double_contact_bj_pen_back_three_quarter", + "family": "double_contact", + "action_family": "double_contact", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "double penetration - BJ and Pen - back view - 3-4 angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "double penetration - BJ and Pen - back view - 3-4 angle", + "canonical_folder": "double penetration - BJ and Pen - back view - 3-4 angle", + "canonical_key": "double_penetration_bj_and_pen_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 2, + "target_reference_count": 12, + "missing_reference_count": 10, + "canonical_geometry": "Thin mixed double-contact rear three-quarter normal-camera reference with distinct layout cues.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed the label as plausible, but the folder has only two mixed-layout rear three-quarter references; keep needs_samples.", + "acquisition_rank": 26 + }, + { + "variant_key": "normal_double_penetration_side_view", + "family": "double_contact", + "action_family": "double_contact", + "camera_view": "side_view", + "atlas_folders": [ + "double penetration - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "double penetration - side view", + "canonical_folder": "double penetration - side view", + "canonical_key": "double_penetration_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 2, + "target_reference_count": 12, + "missing_reference_count": 10, + "canonical_geometry": "Thin double-contact side-view normal-camera reference.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed the label as plausible, but the folder has only two side-view double-contact references; keep needs_samples.", + "acquisition_rank": 27 + }, + { + "variant_key": "normal_footjob_mixed_camera_folder_pool", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "footjob" + ], + "folder_aliases": [ + { + "exact_source_folder": "footjob", + "canonical_folder": "footjob", + "canonical_key": "footjob", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 2, + "target_reference_count": 12, + "missing_reference_count": 10, + "canonical_geometry": "Foot-contact mixed-camera source pool: two reviewed references share the action family but vary between seated front context and tighter lower-body crop, so the folder is too thin for a camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found two related but camera-variable references. Keep as needs_samples until more matched samples define a route.", + "acquisition_rank": 28 + }, + { + "variant_key": "normal_mating_press_front_view", + "family": "missionary", + "action_family": "missionary", + "camera_view": "front_view", + "atlas_folders": [ + "mating press - front view" + ], + "folder_aliases": [ + { + "exact_source_folder": "mating press - front view", + "canonical_folder": "mating press - front view", + "canonical_key": "mating_press_front_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 2, + "target_reference_count": 12, + "missing_reference_count": 10, + "canonical_geometry": "Thin mating-press front normal-camera reference with folded/pressed posture cues.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Mating-press front label is accurate, but the source is only two near-duplicate samples. Split from the missionary front grouping because mating press needs distinct posture wording; kept needs_samples due thin source.", + "acquisition_rank": 29 + }, + { + "variant_key": "normal_pussy_licking_front_three_quarter", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "front_three_quarter", + "atlas_folders": [ + "pussy licking - front view - 3-4 angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "pussy licking - front view - 3-4 angle", + "canonical_folder": "pussy licking - front view - 3-4 angle", + "canonical_key": "pussy_licking_front_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 2, + "target_reference_count": 12, + "missing_reference_count": 10, + "canonical_geometry": "Thin-sample front-offset oral-contact reference: the receiving partner and performer are arranged so the front contact plane remains readable while the camera is offset enough to show body depth.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed the label, but this remains needs_samples because the source folder contains only two examples.", + "acquisition_rank": 30 + }, + { + "variant_key": "normal_pretzel_mixed_camera_folder_pool", + "family": "piledriver_or_pretzel", + "action_family": "piledriver_or_pretzel", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "pretzel" + ], + "folder_aliases": [ + { + "exact_source_folder": "pretzel", + "canonical_folder": "pretzel", + "canonical_key": "pretzel", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 2, + "target_reference_count": 12, + "missing_reference_count": 10, + "canonical_geometry": "Pretzel folded-body action reference with camera not locked enough for a preset.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed this as a two-sample pretzel mixed-camera pool; keep needs_samples.", + "acquisition_rank": 31 + }, + { + "variant_key": "normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool", + "family": "reverse_cowgirl", + "action_family": "reverse_cowgirl", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "reverse cowgirl - leg up" + ], + "folder_aliases": [ + { + "exact_source_folder": "reverse cowgirl - leg up", + "canonical_folder": "reverse cowgirl - leg up", + "canonical_key": "reverse_cowgirl_leg_up", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 2, + "target_reference_count": 12, + "missing_reference_count": 10, + "canonical_geometry": "Reverse-cowgirl leg-up source pool: two references preserve the posture cue, but the sample count and camera/crop variation are too thin for a locked normal-camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review preserved this as a two-sample posture source pool. Do not promote until a larger matched camera subset exists.", + "acquisition_rank": 32 + }, + { + "variant_key": "normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool", + "family": "reverse_cowgirl", + "action_family": "reverse_cowgirl", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "reverse cowgirl -pretzel" + ], + "folder_aliases": [ + { + "exact_source_folder": "reverse cowgirl -pretzel", + "canonical_folder": "reverse cowgirl - pretzel", + "canonical_key": "reverse_cowgirl_pretzel", + "alias_applied": true, + "alias_reason": "Missing-space folder label normalized for review metadata while preserving exact source path." + } + ], + "reference_count": 2, + "target_reference_count": 12, + "missing_reference_count": 10, + "canonical_geometry": "Reverse-cowgirl pretzel source pool: two references preserve a compact pretzel-like posture cue, but the folder is too thin and posture-specific for a pre-A/B camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review preserved this as a two-sample posture source pool. Do not promote until a larger matched camera subset exists.", + "acquisition_rank": 33 + }, + { + "variant_key": "normal_anal_random_mixed_camera_folder_pool", + "family": "anal", + "action_family": "anal", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "anal random" + ], + "folder_aliases": [ + { + "exact_source_folder": "anal random", + "canonical_folder": "anal random", + "canonical_key": "anal_random", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Large anal source pool with mixed normal-camera examples and no single locked camera view until contact-sheet review selects stable subsets.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Added as a large unused-pool review tranche after reverse cowgirl. The full 99-image folder is a cue-expansion pool, not a prompt-ready route; split selected-reference subvariants only after contact-sheet evidence shows repeated non-POV camera geometry.", + "acquisition_rank": 34 + }, + { + "variant_key": "normal_ballsucking_standing_partner_mixed_camera_folder_pool", + "family": "ballsucking", + "action_family": "ballsucking", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "ballsucking - standing" + ], + "folder_aliases": [ + { + "exact_source_folder": "ballsucking - standing", + "canonical_folder": "ballsucking - standing", + "canonical_key": "ballsucking_standing", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Standing-partner oral-contact source pool: the receiving partner stands while the performer is kneeling, squatting, or low in frame, and the camera varies between side, front, close, and low angles.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed this as a standing-partner source pool, not a locked normal-camera route. Needs sample selection before A/B.", + "acquisition_rank": 35 + }, + { + "variant_key": "normal_blowjob_kneeling_side_profile_folder_pool", + "family": "blowjob", + "action_family": "blowjob", + "camera_view": "side_view", + "atlas_folders": [ + "blowjob - kneeling - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "blowjob - kneeling - side view", + "canonical_folder": "blowjob - kneeling - side view", + "canonical_key": "blowjob_kneeling_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Kneeling oral-contact side-view source pool with only a few samples and mixed side, front, and low/overhead framing.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Downgraded after visual review: the folder has only six samples and mixes side, front, and low/overhead frames. Keep as a folder_pool until more clean kneeling side references are selected.", + "acquisition_rank": 36 + }, + { + "variant_key": "normal_blowjob_laying_side_profile_folder_pool", + "family": "blowjob", + "action_family": "blowjob", + "camera_view": "side_view", + "atlas_folders": [ + "blowjob - laying - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "blowjob - laying - side view", + "canonical_folder": "blowjob - laying - side view", + "canonical_key": "blowjob_laying_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Laying oral-contact side-view source pool: the source folder contains useful side-profile references plus frontal close and offset samples, so the full folder is not a locked side-profile route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Full source folder mixes true side-profile samples with frontal close and offset oral references. Renamed as a folder_pool; use the selected-reference side-profile subvariant for generator-ready wording.", + "acquisition_rank": 37 + }, + { + "variant_key": "normal_boobjob_front_close_mixed_camera_folder_pool", + "family": "boobjob", + "action_family": "boobjob", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "boobjob" + ], + "folder_aliases": [ + { + "exact_source_folder": "boobjob", + "canonical_folder": "boobjob", + "canonical_key": "boobjob", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Boobjob front-close mixed-camera source pool: many samples are frontal close references, but the folder also contains side, standing, and foreground-heavy crops, so it is not a single camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed useful front-close material, but the full source folder is mixed. Keep as a folder_pool until a representative non-POV subset is selected.", + "acquisition_rank": 38 + }, + { + "variant_key": "normal_couple_kissing_mixed_camera_folder_pool", + "family": "couple", + "action_family": "couple", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "couple kissing" + ], + "folder_aliases": [ + { + "exact_source_folder": "couple kissing", + "canonical_folder": "couple kissing", + "canonical_key": "couple_kissing", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Normal-camera couple kissing action pool: two-person kissing or intimacy examples with mixed camera placement, useful for future soft/non-explicit camera tests after selecting a consistent subset.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed this as a mixed normal-camera couple-contact pool across standing, seated, bed, close, side, and front crops; keep needs_samples.", + "acquisition_rank": 39 + }, + { + "variant_key": "normal_display_breasts_exposed_mixed_camera_folder_pool", + "family": "display", + "action_family": "display", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "breasts exposed" + ], + "folder_aliases": [ + { + "exact_source_folder": "breasts exposed", + "canonical_folder": "breasts exposed", + "canonical_key": "breasts_exposed", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Upper-body display mixed-camera source pool: the folder combines standing, seated, side, front, close, and full-body display crops.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed this as a broad mixed-camera display pool; keep needs_samples until a camera-specific subset is selected.", + "acquisition_rank": 40 + }, + { + "variant_key": "normal_display_front_open_leg_mixed_camera_folder_pool", + "family": "display", + "action_family": "display", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "pussy spread" + ], + "folder_aliases": [ + { + "exact_source_folder": "pussy spread", + "canonical_folder": "pussy spread", + "canonical_key": "pussy_spread", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Front/open-leg display mixed-camera source pool: the subject usually faces camera, but camera height, crop, and azimuth vary widely across the folder.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed this as a large useful display pool, but it needs subset selection before A/B because camera geometry varies.", + "acquisition_rank": 41 + }, + { + "variant_key": "normal_display_rear_body_view_folder_pool", + "family": "display", + "action_family": "display", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "woman solo showing her hass - back view" + ], + "folder_aliases": [ + { + "exact_source_folder": "woman solo showing her hass - back view", + "canonical_folder": "woman solo showing her ass - back view", + "canonical_key": "woman_solo_showing_her_ass_back_view", + "alias_applied": true, + "alias_reason": "Folder-name typo normalized for review metadata while preserving exact source path." + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Solo rear-body display source pool: the folder contains many useful back/rear references plus seated, standing, side, and three-quarter crops, so the full folder is not a locked back-view route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Full source folder is broad and mixes rear, side, seated, standing, and three-quarter crops. Renamed as a folder_pool; use the selected-reference rear-view subvariant for generator-ready wording.", + "acquisition_rank": 42 + }, + { + "variant_key": "normal_display_rear_close_reference_folder_pool", + "family": "display", + "action_family": "display", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "anus exposed - back view" + ], + "folder_aliases": [ + { + "exact_source_folder": "anus exposed - back view", + "canonical_folder": "anus exposed - back view", + "canonical_key": "anus_exposed_back_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Rear close display source pool: one sample is a true rear/back close view while the folder also contains front and oblique close references.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Downgraded after visual review: only one of four samples is a clear rear/back close reference; keep as a mixed close-reference pool.", + "acquisition_rank": 43 + }, + { + "variant_key": "normal_removing_pants_mixed_camera_folder_pool", + "family": "display", + "action_family": "display", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "removing pants" + ], + "folder_aliases": [ + { + "exact_source_folder": "removing pants", + "canonical_folder": "removing pants", + "canonical_key": "removing_pants", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Removing-pants action source pool: three near-duplicate close references show a standing clothing-removal setup with strong foreground crop, so the folder is review evidence rather than a stable normal-camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found three near-duplicate close action references with strong foreground crop. Keep as needs_samples and do not queue the folder as a pre-A/B camera preset until more matched, wider non-POV samples exist.", + "acquisition_rank": 44 + }, + { + "variant_key": "normal_doggy_all_fours_side_view_folder_pool", + "family": "doggy", + "action_family": "doggy", + "camera_view": "side_view", + "atlas_folders": [ + "doggy on all four - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "doggy on all four - side view", + "canonical_folder": "doggy on all four - side view", + "canonical_key": "doggy_on_all_four_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Normal third-person doggy all-fours side view: the woman is low or on all fours, the partner is behind or beside her, and the camera stays lateral so the body axis and rear-entry contact line read across the frame.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Mostly useful non-POV side/rear-entry material, but the full folder mixes all-fours, standing, seated, low/close, and front-leaning frames. Select a narrower all-fours side-profile subset before fixed-seed A/B testing. Renamed as a folder_pool because the full source folder is mixed. The clean route name is reserved for the reviewed image-selected subvariant.", + "acquisition_rank": 45 + }, + { + "variant_key": "normal_doggy_from_behind_side_view_folder_pool", + "family": "doggy", + "action_family": "doggy", + "camera_view": "side_view", + "atlas_folders": [ + "fuck from behind - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "fuck from behind - side view", + "canonical_folder": "fuck from behind - side view", + "canonical_key": "fuck_from_behind_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Normal third-person from-behind side view: the source folder is kept separate from all-fours and generic doggy side folders, with the partner behind and the camera lateral rather than POV.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "The folder is normal-camera and from-behind related, but many frames read as reclined front/three-quarter rather than stable side-profile. Select a tighter side-view subset before testing. Renamed as a folder_pool because the full source folder is mixed and does not consistently support the strict side-view route.", + "acquisition_rank": 46 + }, + { + "variant_key": "normal_doggy_laying_from_behind_back_three_quarter_folder_pool", + "family": "doggy", + "action_family": "doggy", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "fuck from behind laying - back view - 3-4 angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "fuck from behind laying - back view - 3-4 angle", + "canonical_folder": "fuck from behind laying - back view - 3-4 angle", + "canonical_key": "fuck_from_behind_laying_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Laying from-behind rear three-quarter normal-camera view, with the camera offset behind the action rather than from POV.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Folder is from-behind/laying related, but the contact sheet reads mixed front/side/reclined more than stable rear three-quarter. Needs a narrower camera-confirmed subset. Renamed as a folder_pool because the full source folder label says back 3/4, while the reviewed images are visually mixed and include a front three-quarter reclined subcategory.", + "acquisition_rank": 47 + }, + { + "variant_key": "normal_doggy_standing_backside_side_view_folder_pool", + "family": "doggy", + "action_family": "doggy", + "camera_view": "side_view", + "atlas_folders": [ + "fuck from behind standing - woman backside - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "fuck from behind standing - woman backside - side view", + "canonical_folder": "fuck from behind standing - woman backside - side view", + "canonical_key": "fuck_from_behind_standing_woman_backside_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Standing from-behind side-profile normal-camera view where the backside/hip orientation is the dominant folder cue.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Standing normal-camera material is present, but many images are front/three-quarter or portrait-like instead of strict side/backside framing. Needs sample narrowing. Renamed as a folder_pool because the full source folder contains standing backside material plus front/three-quarter and portrait-like frames.", + "acquisition_rank": 48 + }, + { + "variant_key": "normal_doggy_standing_from_behind_side_view_folder_pool", + "family": "doggy", + "action_family": "doggy", + "camera_view": "side_view", + "atlas_folders": [ + "fuck from behind standing - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "fuck from behind standing - side view", + "canonical_folder": "fuck from behind standing - side view", + "canonical_key": "fuck_from_behind_standing_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Standing from-behind side-profile normal-camera view with the camera beside the action and the standing body line readable.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contains useful standing side/back examples, but also reclined and front-facing frames. Needs a narrowed standing side/back subset before fixed-seed A/B testing. Renamed as a folder_pool because the full source folder contains standing side/back examples plus reclined and front-facing frames.", + "acquisition_rank": 49 + }, + { + "variant_key": "normal_front_penetration_low_angle", + "family": "front_penetration", + "action_family": "front_penetration", + "camera_view": "front_view", + "atlas_folders": [ + "fuck from front - front view -low angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "fuck from front - front view -low angle", + "canonical_folder": "fuck from front - front view -low angle", + "canonical_key": "fuck_from_front_front_view_low_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Front-entry low/front normal camera reference: camera faces the front contact plane and sits low enough to emphasize upward body scale, but source coverage is modest.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed this as a thin front/low-angle reference; keep needs_samples until narrowed or expanded.", + "acquisition_rank": 50 + }, + { + "variant_key": "normal_fingering_mixed_camera_folder_pool", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "fingering" + ], + "folder_aliases": [ + { + "exact_source_folder": "fingering", + "canonical_folder": "fingering", + "canonical_key": "fingering", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Fingering mixed-camera source pool: the folder contains useful manual-contact examples, but mixes reclined front views with upright, standing, side, and oral-adjacent frames, so it is not one locked normal-camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed useful manual-contact material, but the full 15-image source folder mixes reclined front, upright, standing, side, and oral-adjacent frames. Keep as a folder_pool and use the selected reclined front-view split for prompt testing.", + "acquisition_rank": 51 + }, + { + "variant_key": "normal_handjob_laying_front_view", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "front_view", + "atlas_folders": [ + "handjob - laying - front view" + ], + "folder_aliases": [ + { + "exact_source_folder": "handjob - laying - front view", + "canonical_folder": "handjob - laying - front view", + "canonical_key": "handjob_laying_front_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Laying manual-contact front normal-camera view.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Downgraded after visual review: only three samples, with posture/camera variation that is too thin for a front laying route.", + "acquisition_rank": 52 + }, + { + "variant_key": "normal_handjob_laying_side_profile_folder_pool", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "side_view", + "atlas_folders": [ + "handjob - laying -side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "handjob - laying -side view", + "canonical_folder": "handjob - laying -side view", + "canonical_key": "handjob_laying_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Laying manual-contact side-view source pool with too few clean side-profile examples to define a selected pre-A/B route in this batch.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Downgraded after visual review: the folder contains useful laying references but not enough clean, consistent side-profile samples for a pre-A/B route.", + "acquisition_rank": 53 + }, + { + "variant_key": "normal_handjob_sitting_side_profile_folder_pool", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "side_view", + "atlas_folders": [ + "handjob - sitting - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "handjob - sitting - side view", + "canonical_folder": "handjob - sitting - side view", + "canonical_key": "handjob_sitting_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Sitting manual-contact side-view source pool: the folder contains seated side references plus close, front, and posture-variable frames, so the full folder is not a locked route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Full source folder is visually mixed and the reviewed candidate subset still drifted too much across seated, standing/close, and front-facing frames. Keep as a folder_pool until a cleaner seated side subset exists.", + "acquisition_rank": 54 + }, + { + "variant_key": "normal_handjob_standing_side_profile_folder_pool", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "side_view", + "atlas_folders": [ + "handjob standing - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "handjob standing - side view", + "canonical_folder": "handjob standing - side view", + "canonical_key": "handjob_standing_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Standing manual-contact side-view source pool: the full folder contains useful standing side references plus kneeling, seated, close, front, and oral-adjacent frames, so it is not a locked side-profile route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Full source folder is visually over-broad. Renamed as a folder_pool; use the selected-reference standing side-profile subvariant for generator-ready wording.", + "acquisition_rank": 55 + }, + { + "variant_key": "normal_wand_mixed_camera_folder_pool", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "wand" + ], + "folder_aliases": [ + { + "exact_source_folder": "wand", + "canonical_folder": "wand", + "canonical_key": "wand", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Wand toy-contact mixed-camera source pool: the folder contains useful front-close tool-contact examples, but includes side, portrait-close, and wider posture variation, so it is not one locked normal-camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed useful wand/contact material, but the full 9-image source folder mixes front-close, side, portrait-close, and wider posture framing. Keep as a folder_pool and use the selected front-close split for prompt testing.", + "acquisition_rank": 56 + }, + { + "variant_key": "normal_anal_missionary_front_three_quarter", + "family": "missionary", + "action_family": "missionary", + "camera_view": "front_three_quarter", + "atlas_folders": [ + "anal missionary - front view - 3-4 angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "anal missionary - front view - 3-4 angle", + "canonical_folder": "anal missionary - front view - 3-4 angle", + "canonical_key": "anal_missionary_front_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Thin anal missionary front three-quarter normal-camera reference.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Front three-quarter anal missionary label is visually accurate, but the source remains thin. Split from the missionary front grouping and kept as needs_samples because the source folder is thin.", + "acquisition_rank": 57 + }, + { + "variant_key": "normal_mating_press_side_view", + "family": "missionary", + "action_family": "missionary", + "camera_view": "side_view", + "atlas_folders": [ + "mating press - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "mating press - side view", + "canonical_folder": "mating press - side view", + "canonical_key": "mating_press_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Thin mating-press side-view normal-camera reference with folded/pressed posture cues.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Mating-press side label is accurate, but only three samples are available; keep needs_samples. Split from the missionary side grouping because mating press needs distinct posture wording; kept needs_samples due thin source.", + "acquisition_rank": 58 + }, + { + "variant_key": "normal_missionary_anal_side_view_folder_pool", + "family": "missionary", + "action_family": "missionary", + "camera_view": "side_view", + "atlas_folders": [ + "missionary anal - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "missionary anal - side view", + "canonical_folder": "missionary anal - side view", + "canonical_key": "missionary_anal_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Thin missionary side-view anal reference; useful but not broad enough for default testing.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "The folder is thin and not consistently side-profile; keep as a source pool until a cleaner subset exists. Renamed as a folder_pool because the thin source folder does not consistently support strict side-profile wording.", + "acquisition_rank": 59 + }, + { + "variant_key": "normal_missionary_folded_leg_mixed_camera_folder_pool", + "family": "missionary", + "action_family": "missionary", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "missionary - leg folded - back view 3-4 angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "missionary - leg folded - back view 3-4 angle", + "canonical_folder": "missionary - leg folded - back view 3-4 angle", + "canonical_key": "missionary_leg_folded_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Folded-leg missionary source pool with mixed normal-camera angles; posture is useful, but camera geometry is not stable enough for a locked back-three-quarter route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "The folded-leg posture is clear, but the reviewed images read front, side, low, and top mixed rather than stable back three-quarter. Do not use as a back 3/4 candidate until a narrower subset is selected. Renamed from folded back-three-quarter because visual review showed a mixed-camera folded-leg source pool rather than a stable back 3/4 route.", + "acquisition_rank": 60 + }, + { + "variant_key": "normal_missionary_side_profile_folder_pool", + "family": "missionary", + "action_family": "missionary", + "camera_view": "side_view", + "atlas_folders": [ + "missionary - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "missionary - side view", + "canonical_folder": "missionary - side view", + "canonical_key": "missionary_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Missionary side-profile normal-camera view with the stacked body line visible from the side.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "The full missionary side-view folder is useful but visually broad: it mixes strict side-profile samples with front/open-leg, low/close, and offset framing. Use the selected side-profile subvariant for generator-ready wording. Renamed as a folder_pool because the full side-view folder is mixed. The clean route name is reserved for the reviewed selected-reference subvariant.", + "acquisition_rank": 61 + }, + { + "variant_key": "normal_missionary_side_profile_full_visibility_folder_pool", + "family": "missionary", + "action_family": "missionary", + "camera_view": "side_view", + "atlas_folders": [ + "missionary - side view - full penis" + ], + "folder_aliases": [ + { + "exact_source_folder": "missionary - side view - full penis", + "canonical_folder": "missionary - side view - full penis", + "canonical_key": "missionary_side_view_full_penis", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Missionary side-profile normal-camera reference emphasizing full contact visibility from the side.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "The full visibility side folder contains some strong side references, but also front/three-quarter and close framing. Use the selected full-contact side subvariant for precise wording. Renamed as a folder_pool because the full visibility side folder is mixed. The clean route name is reserved for the reviewed selected-reference subvariant.", + "acquisition_rank": 62 + }, + { + "variant_key": "normal_pussy_licking_backview_mixed_camera_folder_pool", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "pussy licking - backv iew" + ], + "folder_aliases": [ + { + "exact_source_folder": "pussy licking - backv iew", + "canonical_folder": "pussy licking - back view", + "canonical_key": "pussy_licking_back_view", + "alias_applied": true, + "alias_reason": "Folder-name typo normalized for review metadata while preserving exact source path." + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Thin oral-contact source pool from the mislabeled back-view folder: the reviewed samples show high/front and high-oblique third-person framing rather than one stable back-view normal-camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found only three samples, all closer to high-front or high-oblique oral-contact framing than a stable back-view route. Keep as needs_samples and do not queue the folder as a pre-A/B preset.", + "acquisition_rank": 63 + }, + { + "variant_key": "normal_pussy_licking_side_profile_folder_pool", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "side_view", + "atlas_folders": [ + "pussy licking - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "pussy licking - side view", + "canonical_folder": "pussy licking - side view", + "canonical_key": "pussy_licking_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Side-view oral-contact source pool: contains many useful side-profile references but also front, low, leg-up, and oblique samples, so the full folder is not a locked side-profile route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Full source folder mixes side-profile references with front, low, leg-up, and oblique frames. Renamed as a folder_pool; use the selected-reference side-profile subvariant for generator-ready wording.", + "acquisition_rank": 64 + }, + { + "variant_key": "normal_rimjob_mixed_camera_folder_pool", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "rimjob" + ], + "folder_aliases": [ + { + "exact_source_folder": "rimjob", + "canonical_folder": "rimjob", + "canonical_key": "rimjob", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Rimjob mixed-camera source pool: three reviewed references include close side/back oral-contact framing plus a wider kneeling context, so the folder is useful evidence but not a locked camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found only three mixed close/wide references. Keep as needs_samples and do not queue the folder as a pre-A/B camera preset.", + "acquisition_rank": 65 + }, + { + "variant_key": "normal_sixty_nine_mixed_camera_folder_pool", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "69" + ], + "folder_aliases": [ + { + "exact_source_folder": "69", + "canonical_folder": "69", + "canonical_key": "69", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Sixty-nine mixed-camera source pool: the folder contains useful mutual oral-contact examples, but mixes close/front, side/downward, upright seated, and wider room-context views, so it is not one locked normal-camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed useful mutual oral-contact material, but the full 10-image source folder mixes close/front, side/downward, upright seated, and wider room-context framing. Keep as a folder_pool and use the selected front-close split for prompt testing.", + "acquisition_rank": 66 + }, + { + "variant_key": "normal_piledriver_mixed_camera_folder_pool", + "family": "piledriver_or_pretzel", + "action_family": "piledriver_or_pretzel", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "piledriver" + ], + "folder_aliases": [ + { + "exact_source_folder": "piledriver", + "canonical_folder": "piledriver", + "canonical_key": "piledriver", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Piledriver folded-body action reference with camera not locked enough for a preset.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed a coherent piledriver action pool, but camera angle varies across top, front, close, and inverted views; keep needs_samples.", + "acquisition_rank": 67 + }, + { + "variant_key": "normal_reverse_cowgirl_anal_front_view", + "family": "reverse_cowgirl", + "action_family": "reverse_cowgirl", + "camera_view": "front_view", + "atlas_folders": [ + " anal reverse cowgirl - front view", + "anal reverse cowgirl - front view" + ], + "folder_aliases": [ + { + "exact_source_folder": " anal reverse cowgirl - front view", + "canonical_folder": " anal reverse cowgirl - front view", + "canonical_key": "anal_reverse_cowgirl_front_view", + "alias_applied": false, + "alias_reason": "" + }, + { + "exact_source_folder": "anal reverse cowgirl - front view", + "canonical_folder": "anal reverse cowgirl - front view", + "canonical_key": "anal_reverse_cowgirl_front_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Thin reverse-cowgirl front-view reference group from duplicate front-view source labels.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Split from the broad reverse-cowgirl front variant; kept needs_samples because the combined duplicate folders are thin. Visual review confirmed this status from a full-folder cowgirl/reverse-cowgirl contact sheet.", + "acquisition_rank": 68 + }, + { + "variant_key": "normal_reverse_cowgirl_mixed_camera_folder_pool", + "family": "reverse_cowgirl", + "action_family": "reverse_cowgirl", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "reverse cowgirl" + ], + "folder_aliases": [ + { + "exact_source_folder": "reverse cowgirl", + "canonical_folder": "reverse cowgirl", + "canonical_key": "reverse_cowgirl", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 3, + "target_reference_count": 12, + "missing_reference_count": 9, + "canonical_geometry": "Large reverse-cowgirl source pool with normal-camera examples but no single locked camera view until contact-sheet review selects stable subsets.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Added as the first large unused-pool review tranche. The full 240-image folder is a cue-expansion pool, not a prompt-ready route; split selected-reference subvariants only after contact-sheet evidence shows repeated non-POV camera geometry.", + "acquisition_rank": 69 + }, + { + "variant_key": "normal_display_rear_exposed_body_folder_pool", + "family": "display", + "action_family": "display", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "woman ass exposed" + ], + "folder_aliases": [ + { + "exact_source_folder": "woman ass exposed", + "canonical_folder": "woman ass exposed", + "canonical_key": "woman_ass_exposed", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 4, + "target_reference_count": 12, + "missing_reference_count": 8, + "canonical_geometry": "Rear exposed-body display source pool with only four mixed rear/side samples and no locked camera preset.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Visual review confirmed this as a thin mixed rear-display pool; keep needs_samples. The reviewed source-pool references now include all four folder images.", + "acquisition_rank": 70 + }, + { + "variant_key": "normal_face_sitting_mixed_camera_folder_pool", + "family": "face_sitting", + "action_family": "face_sitting", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "face sitting" + ], + "folder_aliases": [ + { + "exact_source_folder": "face sitting", + "canonical_folder": "face sitting", + "canonical_key": "face_sitting", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 4, + "target_reference_count": 12, + "missing_reference_count": 8, + "canonical_geometry": "Face-sitting mixed-camera source pool: the folder has three front or near-front samples plus one rear/back-view outlier, so it preserves review evidence without defining one locked normal-camera route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Contact-sheet review found a thin, mixed 4-image source pool. Keep as needs_samples; do not queue the full folder as a pre-A/B route until a narrower camera subset has enough matched samples.", + "acquisition_rank": 71 + }, + { + "variant_key": "normal_penis_worship_laying_partner_vertical_side_view", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "side_view", + "atlas_folders": [ + "penis worship" + ], + "folder_aliases": [ + { + "exact_source_folder": "penis worship", + "canonical_folder": "penis worship", + "canonical_key": "penis_worship", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 5, + "target_reference_count": 12, + "missing_reference_count": 7, + "canonical_geometry": "User-anchored penis-worship side-view subset with the receiving partner laying down and the contact axis reading vertically in the frame; distinct from the broader side-view subset because posture and vertical alignment are part of the route.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Created from five user-provided laying-partner vertical side-view anchors inside a mixed penis-worship folder. Keep needs_samples for now; promote only after broader visual split or enough additional matching samples make it stable for fixed-seed A/B.", + "acquisition_rank": 72 + }, + { + "variant_key": "normal_pussy_licking_leg_up_mixed_camera_folder_pool", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "mixed_or_unspecified", + "atlas_folders": [ + "pussy licking woman standing - side view" + ], + "folder_aliases": [ + { + "exact_source_folder": "pussy licking woman standing - side view", + "canonical_folder": "pussy licking woman standing - side view", + "canonical_key": "pussy_licking_woman_standing_side_view", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 5, + "target_reference_count": 12, + "missing_reference_count": 7, + "canonical_geometry": "Leg-up oral-contact mixed-camera source pool: the folder label says standing side view, but the reviewed samples mostly read as leg-up or reclined setups with mixed front, side, and low framing.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Downgraded after visual review: the folder name implies standing side-profile, but the five images are mostly leg-up or reclined mixed-camera references. Keep as a folder_pool until manually narrowed.", + "acquisition_rank": 73 + }, + { + "variant_key": "normal_reverse_cowgirl_anal_front_three_quarter", + "family": "reverse_cowgirl", + "action_family": "reverse_cowgirl", + "camera_view": "front_three_quarter", + "atlas_folders": [ + "anal reverse cowgirl - front view - 3-4 angle", + "anal reverse cowgirl - front view - 3-4 angle" + ], + "folder_aliases": [ + { + "exact_source_folder": "anal reverse cowgirl - front view - 3-4 angle", + "canonical_folder": "anal reverse cowgirl - front view - 3-4 angle", + "canonical_key": "anal_reverse_cowgirl_front_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + { + "exact_source_folder": "anal reverse cowgirl - front view - 3-4 angle", + "canonical_folder": "anal reverse cowgirl - front view - 3-4 angle", + "canonical_key": "anal_reverse_cowgirl_front_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 5, + "target_reference_count": 12, + "missing_reference_count": 7, + "canonical_geometry": "Thin reverse-cowgirl front three-quarter reference group from duplicate 3/4 source labels.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Split from the broad reverse-cowgirl front variant; kept needs_samples until the thin 3/4 samples are reviewed. Visual review confirmed this status from a full-folder cowgirl/reverse-cowgirl contact sheet.", + "acquisition_rank": 74 + }, + { + "variant_key": "normal_penis_worship_top_view", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "top_view", + "atlas_folders": [ + "penis worship" + ], + "folder_aliases": [ + { + "exact_source_folder": "penis worship", + "canonical_folder": "penis worship", + "canonical_key": "penis_worship", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 6, + "target_reference_count": 12, + "missing_reference_count": 6, + "canonical_geometry": "User-anchored penis-worship top-view normal-camera subset: camera looks down from above the interaction, making elevation the defining geometry instead of front, side, or foreground-close framing.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Created from six user-provided top-view anchors inside a mixed penis-worship folder. Keep needs_samples for now; promote only after broader visual split or enough additional top-view samples make it stable for fixed-seed A/B.", + "acquisition_rank": 75 + }, + { + "variant_key": "normal_penis_worship_side_view", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "side_view", + "atlas_folders": [ + "penis worship" + ], + "folder_aliases": [ + { + "exact_source_folder": "penis worship", + "canonical_folder": "penis worship", + "canonical_key": "penis_worship", + "alias_applied": false, + "alias_reason": "" + } + ], + "reference_count": 8, + "target_reference_count": 12, + "missing_reference_count": 4, + "canonical_geometry": "User-anchored penis-worship side-view normal-camera subset: camera reads the interaction laterally enough that the body/contact axis runs across the frame instead of from overhead or foreground-close framing.", + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": "Created from eight user-provided side-view anchors inside a mixed penis-worship folder. Keep needs_samples for now; promote only after broader visual split or enough additional side-view samples make it stable for fixed-seed A/B.", + "acquisition_rank": 76 + } + ] +} diff --git a/ab_batches/normal_camera/normal_camera_needs_samples_acquisition.md b/ab_batches/normal_camera/normal_camera_needs_samples_acquisition.md new file mode 100644 index 0000000..ec1d342 --- /dev/null +++ b/ab_batches/normal_camera/normal_camera_needs_samples_acquisition.md @@ -0,0 +1,84 @@ +# Normal Camera Needs-Samples Acquisition + +No-generation acquisition list for variants that are not ready for fixed-seed pre-A/B testing. + +Target reference count per promoted selected-reference family: 12. + +| Rank | Variant | Action | Camera | Refs | Missing | Source folders | +| ---: | --- | --- | --- | ---: | ---: | --- | +| 1 | normal_blowjob_laying_back_three_quarter_single_reference_pool | blowjob | back_three_quarter | 1 | 11 | blowjob laying - back view - 3-4 angle | +| 2 | normal_blowjob_low_angle | blowjob | low_angle | 1 | 11 | blowjob - low angle | +| 3 | normal_anal_cowgirl_single_reference_pool | cowgirl | mixed_or_unspecified | 1 | 11 | anal cowgirl | +| 4 | normal_cowgirl_front_view | cowgirl | front_view | 1 | 11 | cowgirl - front view | +| 5 | normal_anal_doggy_side_view_single_reference_pool | doggy | side_view | 1 | 11 | anal doggy - side view | +| 6 | normal_anal_laying_back_three_quarter_single_reference_pool | doggy | back_three_quarter | 1 | 11 | anal fuck from behind laying - back view - 3-4 angle | +| 7 | normal_doggy_press_back_side_single_reference_pool | doggy | back_view | 1 | 11 | doggy press - back side | +| 8 | normal_double_blowjob_handjob_front_view | double_contact | front_view | 1 | 11 | double blowjob-handjob-frontview | +| 9 | normal_double_blowjob_handjob_top_view | double_contact | top_view | 1 | 11 | double blowjob-handjob-topview | +| 10 | normal_double_penetration_back_three_quarter | double_contact | back_three_quarter | 1 | 11 | double penetration - back view - 3-4 angle | +| 11 | normal_double_penetration_on_back_back_three_quarter | double_contact | back_three_quarter | 1 | 11 | double penetration on her back- back view - 3-4 angle | +| 12 | normal_face_sitting_front_view_single_reference_pool | face_sitting | front_view | 1 | 11 | face sitting - front view | +| 13 | normal_fist_mixed_camera_folder_pool | manual_or_toy | mixed_or_unspecified | 1 | 11 | fist | +| 14 | normal_handjob_standing_low_angle_single_reference_pool | manual_or_toy | low_angle | 1 | 11 | handjob - standing -low angle | +| 15 | normal_missionary_front_three_quarter | missionary | front_three_quarter | 1 | 11 | missionary - front view - 3-4 angle | +| 16 | normal_missionary_top_down | missionary | top_view | 1 | 11 | missionary - top view | +| 17 | normal_anus_licking_single_reference_pool | oral_other | mixed_or_unspecified | 1 | 11 | anus lickiing | +| 18 | normal_penis_worship_foreground_close_reference_folder_pool | oral_other | mixed_or_unspecified | 1 | 11 | penis worship | +| 19 | normal_pussy_licking_leg_up_back_three_quarter_single_reference_pool | oral_other | back_three_quarter | 1 | 11 | pussy licking leg up - back view - 3-4 angle | +| 20 | normal_pussy_licking_standing_woman_single_reference_pool | oral_other | mixed_or_unspecified | 1 | 11 | pussy licking standing woman | +| 21 | normal_under_desk_single_reference_pool | oral_other | mixed_or_unspecified | 1 | 11 | under desk | +| 22 | normal_anal_reverse_congress_single_reference_pool | reverse_congress | mixed_or_unspecified | 1 | 11 | anal reverse congress | +| 23 | normal_standing_sideway_side_view | standing_penetration | side_view | 1 | 11 | fuck standing - woman sideway | +| 24 | normal_ballsucking_laying_close_reference_folder_pool | ballsucking | mixed_or_unspecified | 2 | 10 | ballsucking - laying | +| 25 | normal_blowjob_front_low_angle | blowjob | front_view | 2 | 10 | blowjob - front view - low angle | +| 26 | normal_double_contact_bj_pen_back_three_quarter | double_contact | back_three_quarter | 2 | 10 | double penetration - BJ and Pen - back view - 3-4 angle | +| 27 | normal_double_penetration_side_view | double_contact | side_view | 2 | 10 | double penetration - side view | +| 28 | normal_footjob_mixed_camera_folder_pool | manual_or_toy | mixed_or_unspecified | 2 | 10 | footjob | +| 29 | normal_mating_press_front_view | missionary | front_view | 2 | 10 | mating press - front view | +| 30 | normal_pussy_licking_front_three_quarter | oral_other | front_three_quarter | 2 | 10 | pussy licking - front view - 3-4 angle | +| 31 | normal_pretzel_mixed_camera_folder_pool | piledriver_or_pretzel | mixed_or_unspecified | 2 | 10 | pretzel | +| 32 | normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool | reverse_cowgirl | mixed_or_unspecified | 2 | 10 | reverse cowgirl - leg up | +| 33 | normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool | reverse_cowgirl | mixed_or_unspecified | 2 | 10 | reverse cowgirl -pretzel | +| 34 | normal_anal_random_mixed_camera_folder_pool | anal | mixed_or_unspecified | 3 | 9 | anal random | +| 35 | normal_ballsucking_standing_partner_mixed_camera_folder_pool | ballsucking | mixed_or_unspecified | 3 | 9 | ballsucking - standing | +| 36 | normal_blowjob_kneeling_side_profile_folder_pool | blowjob | side_view | 3 | 9 | blowjob - kneeling - side view | +| 37 | normal_blowjob_laying_side_profile_folder_pool | blowjob | side_view | 3 | 9 | blowjob - laying - side view | +| 38 | normal_boobjob_front_close_mixed_camera_folder_pool | boobjob | mixed_or_unspecified | 3 | 9 | boobjob | +| 39 | normal_couple_kissing_mixed_camera_folder_pool | couple | mixed_or_unspecified | 3 | 9 | couple kissing | +| 40 | normal_display_breasts_exposed_mixed_camera_folder_pool | display | mixed_or_unspecified | 3 | 9 | breasts exposed | +| 41 | normal_display_front_open_leg_mixed_camera_folder_pool | display | mixed_or_unspecified | 3 | 9 | pussy spread | +| 42 | normal_display_rear_body_view_folder_pool | display | mixed_or_unspecified | 3 | 9 | woman solo showing her hass - back view | +| 43 | normal_display_rear_close_reference_folder_pool | display | mixed_or_unspecified | 3 | 9 | anus exposed - back view | +| 44 | normal_removing_pants_mixed_camera_folder_pool | display | mixed_or_unspecified | 3 | 9 | removing pants | +| 45 | normal_doggy_all_fours_side_view_folder_pool | doggy | side_view | 3 | 9 | doggy on all four - side view | +| 46 | normal_doggy_from_behind_side_view_folder_pool | doggy | side_view | 3 | 9 | fuck from behind - side view | +| 47 | normal_doggy_laying_from_behind_back_three_quarter_folder_pool | doggy | back_three_quarter | 3 | 9 | fuck from behind laying - back view - 3-4 angle | +| 48 | normal_doggy_standing_backside_side_view_folder_pool | doggy | side_view | 3 | 9 | fuck from behind standing - woman backside - side view | +| 49 | normal_doggy_standing_from_behind_side_view_folder_pool | doggy | side_view | 3 | 9 | fuck from behind standing - side view | +| 50 | normal_front_penetration_low_angle | front_penetration | front_view | 3 | 9 | fuck from front - front view -low angle | +| 51 | normal_fingering_mixed_camera_folder_pool | manual_or_toy | mixed_or_unspecified | 3 | 9 | fingering | +| 52 | normal_handjob_laying_front_view | manual_or_toy | front_view | 3 | 9 | handjob - laying - front view | +| 53 | normal_handjob_laying_side_profile_folder_pool | manual_or_toy | side_view | 3 | 9 | handjob - laying -side view | +| 54 | normal_handjob_sitting_side_profile_folder_pool | manual_or_toy | side_view | 3 | 9 | handjob - sitting - side view | +| 55 | normal_handjob_standing_side_profile_folder_pool | manual_or_toy | side_view | 3 | 9 | handjob standing - side view | +| 56 | normal_wand_mixed_camera_folder_pool | manual_or_toy | mixed_or_unspecified | 3 | 9 | wand | +| 57 | normal_anal_missionary_front_three_quarter | missionary | front_three_quarter | 3 | 9 | anal missionary - front view - 3-4 angle | +| 58 | normal_mating_press_side_view | missionary | side_view | 3 | 9 | mating press - side view | +| 59 | normal_missionary_anal_side_view_folder_pool | missionary | side_view | 3 | 9 | missionary anal - side view | +| 60 | normal_missionary_folded_leg_mixed_camera_folder_pool | missionary | mixed_or_unspecified | 3 | 9 | missionary - leg folded - back view 3-4 angle | +| 61 | normal_missionary_side_profile_folder_pool | missionary | side_view | 3 | 9 | missionary - side view | +| 62 | normal_missionary_side_profile_full_visibility_folder_pool | missionary | side_view | 3 | 9 | missionary - side view - full penis | +| 63 | normal_pussy_licking_backview_mixed_camera_folder_pool | oral_other | mixed_or_unspecified | 3 | 9 | pussy licking - backv iew | +| 64 | normal_pussy_licking_side_profile_folder_pool | oral_other | side_view | 3 | 9 | pussy licking - side view | +| 65 | normal_rimjob_mixed_camera_folder_pool | oral_other | mixed_or_unspecified | 3 | 9 | rimjob | +| 66 | normal_sixty_nine_mixed_camera_folder_pool | oral_other | mixed_or_unspecified | 3 | 9 | 69 | +| 67 | normal_piledriver_mixed_camera_folder_pool | piledriver_or_pretzel | mixed_or_unspecified | 3 | 9 | piledriver | +| 68 | normal_reverse_cowgirl_anal_front_view | reverse_cowgirl | front_view | 3 | 9 | anal reverse cowgirl - front view, anal reverse cowgirl - front view | +| 69 | normal_reverse_cowgirl_mixed_camera_folder_pool | reverse_cowgirl | mixed_or_unspecified | 3 | 9 | reverse cowgirl | +| 70 | normal_display_rear_exposed_body_folder_pool | display | mixed_or_unspecified | 4 | 8 | woman ass exposed | +| 71 | normal_face_sitting_mixed_camera_folder_pool | face_sitting | mixed_or_unspecified | 4 | 8 | face sitting | +| 72 | normal_penis_worship_laying_partner_vertical_side_view | oral_other | side_view | 5 | 7 | penis worship | +| 73 | normal_pussy_licking_leg_up_mixed_camera_folder_pool | oral_other | mixed_or_unspecified | 5 | 7 | pussy licking woman standing - side view | +| 74 | normal_reverse_cowgirl_anal_front_three_quarter | reverse_cowgirl | front_three_quarter | 5 | 7 | anal reverse cowgirl - front view - 3-4 angle, anal reverse cowgirl - front view - 3-4 angle | +| 75 | normal_penis_worship_top_view | oral_other | top_view | 6 | 6 | penis worship | +| 76 | normal_penis_worship_side_view | oral_other | side_view | 8 | 4 | penis worship | diff --git a/ab_batches/normal_camera/normal_camera_priority_plan.json b/ab_batches/normal_camera/normal_camera_priority_plan.json new file mode 100644 index 0000000..dd6b0f7 --- /dev/null +++ b/ab_batches/normal_camera/normal_camera_priority_plan.json @@ -0,0 +1,2007 @@ +{ + "schema": "sxcp_normal_camera_priority_plan_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "source_variant_catalog": "categories/normal_camera_variants.json", + "available_pre_ab_count": 55, + "selected_count": 55, + "deferred_counts": { + "needs_samples": 76, + "hold": 0 + }, + "acceptance_gate_descriptions": { + "camera_geometry": "Camera angle, elevation, side/front/back orientation, and framing match the atlas family.", + "pose_ownership": "The visible actors own the pose correctly, with no POV body cues leaking into normal-camera framing.", + "workspace_continuity": "Workspace/lounge details support the camera angle instead of fighting the pose.", + "clothing_visibility": "Clothing cues stay attached to the intended visible subject and only describe garments visible in this pose.", + "subject_identity": "The same woman identity, face, hair, eyes, and body type remain stable across fixed-seed variants.", + "body_proportion_control": "Penis/body proportions and limb lengths stay plausible for the selected atlas framing.", + "prompt_noise": "Prompt text uses direct visual cues, with option, negative, and instruction-like wording removed from positive text.", + "atlas_reference_match": "The generated frame can be matched back to the selected atlas references for this variant." + }, + "candidates": [ + { + "priority_rank": 1, + "key": "normal_doggy_all_fours_side_view", + "family": "doggy", + "action_family": "doggy", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "doggy on all four - side view" + ], + "reference_images": [ + "doggy on all four - side view/0020.jpg", + "doggy on all four - side view/192.jpg", + "doggy on all four - side view/2.jpg", + "doggy on all four - side view/204.jpg", + "doggy on all four - side view/254.jpg", + "doggy on all four - side view/254_2.jpg", + "doggy on all four - side view/254_3.jpg", + "doggy on all four - side view/271.jpg", + "doggy on all four - side view/271_2.jpg", + "doggy on all four - side view/362.jpg", + "doggy on all four - side view/495.jpg", + "doggy on all four - side view/556.jpg", + "doggy on all four - side view/86.jpg", + "doggy on all four - side view/99.jpg" + ], + "canonical_geometry": "Reviewed image-selected doggy all-fours side view: the woman is low or on all fours and the camera remains lateral enough for the body axis and rear-entry contact line to read across the frame.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 2, + "key": "normal_doggy_generic_side_view", + "family": "doggy", + "action_family": "doggy", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "doggy - side view" + ], + "reference_images": [ + "doggy - side view/0014.jpg", + "doggy - side view/276.jpg", + "doggy - side view/541.jpg" + ], + "canonical_geometry": "Normal third-person generic doggy side view: the source folder is kept separate from all-fours and explicit from-behind side folders, with the camera lateral and the action axis readable across the frame.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 3, + "key": "normal_doggy_standing_from_behind_side_view", + "family": "doggy", + "action_family": "doggy", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "fuck from behind standing - side view" + ], + "reference_images": [ + "fuck from behind standing - side view/0013.jpg", + "fuck from behind standing - side view/0019.jpg", + "fuck from behind standing - side view/0020.jpg", + "fuck from behind standing - side view/162.jpg", + "fuck from behind standing - side view/162_2.jpg", + "fuck from behind standing - side view/509.jpg", + "fuck from behind standing - side view/9.jpg" + ], + "canonical_geometry": "Reviewed image-selected standing from-behind side view: upright posture is visible and the camera is lateral or rear-lateral rather than front portrait framing.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 4, + "key": "normal_doggy_standing_backside_side_view", + "family": "doggy", + "action_family": "doggy", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "fuck from behind standing - woman backside - side view" + ], + "reference_images": [ + "fuck from behind standing - woman backside - side view/0010.jpg", + "fuck from behind standing - woman backside - side view/0012.jpg", + "fuck from behind standing - woman backside - side view/186.jpg", + "fuck from behind standing - woman backside - side view/186_2.jpg", + "fuck from behind standing - woman backside - side view/196.jpg", + "fuck from behind standing - woman backside - side view/257.jpg", + "fuck from behind standing - woman backside - side view/286.jpg", + "fuck from behind standing - woman backside - side view/288.jpg", + "fuck from behind standing - woman backside - side view/343.jpg", + "fuck from behind standing - woman backside - side view/343_2.jpg", + "fuck from behind standing - woman backside - side view/343_3.jpg", + "fuck from behind standing - woman backside - side view/345.jpg", + "fuck from behind standing - woman backside - side view/345_2.jpg", + "fuck from behind standing - woman backside - side view/542.jpg", + "fuck from behind standing - woman backside - side view/68.jpg", + "fuck from behind standing - woman backside - side view/68_2.jpg" + ], + "canonical_geometry": "Reviewed image-selected standing backside side view: backside/hip orientation dominates and the camera is side or rear-lateral.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 5, + "key": "normal_doggy_all_fours_back_three_quarter", + "family": "doggy", + "action_family": "doggy", + "camera_view": "back_three_quarter", + "status": "pre_ab_candidate", + "atlas_folders": [ + "doggy on all four - back view - 3-4 angle" + ], + "reference_images": [ + "doggy on all four - back view - 3-4 angle/0002.jpg", + "doggy on all four - back view - 3-4 angle/0003.jpg", + "doggy on all four - back view - 3-4 angle/0013.jpg", + "doggy on all four - back view - 3-4 angle/0014.jpg", + "doggy on all four - back view - 3-4 angle/0019.jpg", + "doggy on all four - back view - 3-4 angle/0020.jpg", + "doggy on all four - back view - 3-4 angle/206.jpg", + "doggy on all four - back view - 3-4 angle/267.jpg", + "doggy on all four - back view - 3-4 angle/302.jpg", + "doggy on all four - back view - 3-4 angle/327.jpg", + "doggy on all four - back view - 3-4 angle/550_2.jpg", + "doggy on all four - back view - 3-4 angle/608_2.jpg", + "doggy on all four - back view - 3-4 angle/611.jpg", + "doggy on all four - back view - 3-4 angle/70.jpg", + "doggy on all four - back view - 3-4 angle/97.jpg" + ], + "canonical_geometry": "Doggy all-fours rear three-quarter normal-camera view with the camera offset behind the action.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 6, + "key": "normal_doggy_generic_back_three_quarter", + "family": "doggy", + "action_family": "doggy", + "camera_view": "back_three_quarter", + "status": "pre_ab_candidate", + "atlas_folders": [ + "doggy - back view - 3-4 angle" + ], + "reference_images": [ + "doggy - back view - 3-4 angle/0002.jpg", + "doggy - back view - 3-4 angle/0002_2.jpg", + "doggy - back view - 3-4 angle/0008_2.jpg", + "doggy - back view - 3-4 angle/0013.jpg", + "doggy - back view - 3-4 angle/0015.jpg", + "doggy - back view - 3-4 angle/0017.jpg", + "doggy - back view - 3-4 angle/0021.jpg", + "doggy - back view - 3-4 angle/132.jpg", + "doggy - back view - 3-4 angle/145.jpg", + "doggy - back view - 3-4 angle/183.jpg", + "doggy - back view - 3-4 angle/185.jpg", + "doggy - back view - 3-4 angle/227.jpg", + "doggy - back view - 3-4 angle/39.jpg", + "doggy - back view - 3-4 angle/41.jpg", + "doggy - back view - 3-4 angle/77.jpg" + ], + "canonical_geometry": "Generic doggy rear three-quarter normal-camera view, separate from all-fours and laying from-behind source folders.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 7, + "key": "normal_doggy_laying_from_behind_front_three_quarter", + "family": "doggy", + "action_family": "doggy", + "camera_view": "front_three_quarter", + "status": "pre_ab_candidate", + "atlas_folders": [ + "fuck from behind laying - back view - 3-4 angle" + ], + "reference_images": [ + "fuck from behind laying - back view - 3-4 angle/0002.jpg", + "fuck from behind laying - back view - 3-4 angle/0004.jpg", + "fuck from behind laying - back view - 3-4 angle/0004_2.jpg", + "fuck from behind laying - back view - 3-4 angle/0006.jpg", + "fuck from behind laying - back view - 3-4 angle/0009.jpg", + "fuck from behind laying - back view - 3-4 angle/0009_2.jpg", + "fuck from behind laying - back view - 3-4 angle/0011.jpg", + "fuck from behind laying - back view - 3-4 angle/0013.jpg", + "fuck from behind laying - back view - 3-4 angle/0014.jpg", + "fuck from behind laying - back view - 3-4 angle/0015.jpg", + "fuck from behind laying - back view - 3-4 angle/0016.jpg", + "fuck from behind laying - back view - 3-4 angle/377.jpg", + "fuck from behind laying - back view - 3-4 angle/379.jpg", + "fuck from behind laying - back view - 3-4 angle/537.jpg", + "fuck from behind laying - back view - 3-4 angle/560.jpg", + "fuck from behind laying - back view - 3-4 angle/590.jpg", + "fuck from behind laying - back view - 3-4 angle/591.jpg", + "fuck from behind laying - back view - 3-4 angle/591_2.jpg", + "fuck from behind laying - back view - 3-4 angle/595.jpg", + "fuck from behind laying - back view - 3-4 angle/606.jpg", + "fuck from behind laying - back view - 3-4 angle/615.jpg", + "fuck from behind laying - back view - 3-4 angle/615_2.jpg", + "fuck from behind laying - back view - 3-4 angle/624.jpg" + ], + "canonical_geometry": "Reviewed image-selected laying from-behind front three-quarter view: reclined body layout is visible, the camera is normal third-person and front-offset more than rear 3/4.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 8, + "key": "normal_doggy_all_fours_front_view", + "family": "doggy", + "action_family": "doggy", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "doggy all four - front view" + ], + "reference_images": [ + "doggy all four - front view/0016.jpg", + "doggy all four - front view/48.jpg", + "doggy all four - front view/58.jpg", + "doggy all four - front view/64.jpg", + "doggy all four - front view/69.jpg", + "doggy all four - front view/77.jpg", + "doggy all four - front view/83.jpg", + "doggy all four - front view/97.jpg", + "doggy all four - front view/171.jpg", + "doggy all four - front view/197.jpg", + "doggy all four - front view/204.jpg", + "doggy all four - front view/221.jpg", + "doggy all four - front view/290.jpg", + "doggy all four - front view/596.jpg", + "doggy all four - front view/598.jpg" + ], + "canonical_geometry": "Doggy all-fours front normal-camera view where the front subject plane faces the camera while the partner remains behind.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 9, + "key": "normal_doggy_generic_front_view", + "family": "doggy", + "action_family": "doggy", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "doggy - front view", + "doggy - front view " + ], + "reference_images": [ + "doggy - front view/11.jpg", + "doggy - front view/5.jpg", + "doggy - front view/6.jpg", + "doggy - front view /0003.jpg", + "doggy - front view /253.jpg", + "doggy - front view /262.jpg", + "doggy - front view /349.jpg", + "doggy - front view /354.jpg", + "doggy - front view /41.jpg", + "doggy - front view /49.jpg", + "doggy - front view /505.jpg", + "doggy - front view /537.jpg", + "doggy - front view /541.jpg", + "doggy - front view /567.jpg", + "doggy - front view /627.jpg" + ], + "canonical_geometry": "Generic doggy front normal-camera view from the duplicate front-view source folders.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 10, + "key": "normal_doggy_under_view_low_camera", + "family": "doggy", + "action_family": "doggy", + "camera_view": "under_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "doggy - underview" + ], + "reference_images": [ + "doggy - underview/0001.jpg", + "doggy - underview/0008.jpg", + "doggy - underview/614.jpg" + ], + "canonical_geometry": "Extreme low under-view doggy camera: the camera is below the hips or leg line, looking upward through or under the pose so underside body geometry dominates the frame.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 11, + "key": "normal_cowgirl_side_profile", + "family": "cowgirl", + "action_family": "cowgirl", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "cowgirl - side view" + ], + "reference_images": [ + "cowgirl - side view/0003.jpg", + "cowgirl - side view/0004_2.jpg", + "cowgirl - side view/0005.jpg", + "cowgirl - side view/0007.jpg", + "cowgirl - side view/0009.jpg", + "cowgirl - side view/0011.jpg", + "cowgirl - side view/0015.jpg", + "cowgirl - side view/118.jpg", + "cowgirl - side view/195.jpg", + "cowgirl - side view/2.jpg", + "cowgirl - side view/200.jpg", + "cowgirl - side view/255.jpg", + "cowgirl - side view/280.jpg", + "cowgirl - side view/86.jpg", + "cowgirl - side view/86_2.jpg" + ], + "canonical_geometry": "Side-profile cowgirl view: woman sits or rises on top of the reclined partner, both bodies are seen from the side, and the vertical straddle relation remains readable without first-person framing.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 12, + "key": "normal_cowgirl_full_body_front_view", + "family": "cowgirl", + "action_family": "cowgirl", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "cowgirl full man body - front view" + ], + "reference_images": [ + "cowgirl full man body - front view/0005.jpg", + "cowgirl full man body - front view/303.jpg", + "cowgirl full man body - front view/99.jpg" + ], + "canonical_geometry": "Cowgirl front normal-camera view with the partner body visible beneath the woman.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 13, + "key": "normal_cowgirl_front_three_quarter", + "family": "cowgirl", + "action_family": "cowgirl", + "camera_view": "front_three_quarter", + "status": "pre_ab_candidate", + "atlas_folders": [ + "cowgirl - front view - 3-4 angle" + ], + "reference_images": [ + "cowgirl - front view - 3-4 angle/588.jpg", + "cowgirl - front view - 3-4 angle/62_2.jpg", + "cowgirl - front view - 3-4 angle/70.jpg" + ], + "canonical_geometry": "Cowgirl front three-quarter normal-camera view with the front contact plane readable from an offset camera.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 14, + "key": "normal_cowgirl_back_three_quarter", + "family": "cowgirl", + "action_family": "cowgirl", + "camera_view": "back_three_quarter", + "status": "pre_ab_candidate", + "atlas_folders": [ + "cowgirl - back view - 3-4 angle" + ], + "reference_images": [ + "cowgirl - back view - 3-4 angle/0002.jpg", + "cowgirl - back view - 3-4 angle/0003_4.jpg", + "cowgirl - back view - 3-4 angle/0006.jpg", + "cowgirl - back view - 3-4 angle/0008_2.jpg", + "cowgirl - back view - 3-4 angle/16.jpg", + "cowgirl - back view - 3-4 angle/22.jpg", + "cowgirl - back view - 3-4 angle/41.jpg", + "cowgirl - back view - 3-4 angle/82.jpg", + "cowgirl - back view - 3-4 angle/90.jpg", + "cowgirl - back view - 3-4 angle/145.jpg", + "cowgirl - back view - 3-4 angle/160.jpg", + "cowgirl - back view - 3-4 angle/172.jpg", + "cowgirl - back view - 3-4 angle/225.jpg", + "cowgirl - back view - 3-4 angle/241_2.jpg", + "cowgirl - back view - 3-4 angle/248.jpg" + ], + "canonical_geometry": "Rear three-quarter cowgirl view: camera sits behind or behind-offset from the woman on top, with her back, hips, and legs closest while the reclined partner remains visible beneath or ahead of her.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 15, + "key": "normal_reverse_cowgirl_back_view", + "family": "reverse_cowgirl", + "action_family": "reverse_cowgirl", + "camera_view": "back_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "reverse cowgirl - back view" + ], + "reference_images": [ + "reverse cowgirl - back view/267.jpg", + "reverse cowgirl - back view/64.jpg", + "reverse cowgirl - back view/80.jpg" + ], + "canonical_geometry": "Reverse-cowgirl rear normal-camera view where the woman faces away and the back-facing orientation dominates.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 16, + "key": "normal_reverse_cowgirl_back_three_quarter", + "family": "reverse_cowgirl", + "action_family": "reverse_cowgirl", + "camera_view": "back_three_quarter", + "status": "pre_ab_candidate", + "atlas_folders": [ + "reverse cowgirl - backview - 3-4 angle" + ], + "reference_images": [ + "reverse cowgirl - backview - 3-4 angle/207.jpg", + "reverse cowgirl - backview - 3-4 angle/280_2.jpg", + "reverse cowgirl - backview - 3-4 angle/99.jpg" + ], + "canonical_geometry": "Reverse-cowgirl rear three-quarter normal-camera view from an offset back camera.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 17, + "key": "normal_reverse_cowgirl_side_profile", + "family": "reverse_cowgirl", + "action_family": "reverse_cowgirl", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "reverse cowgirl - side view" + ], + "reference_images": [ + "reverse cowgirl - side view/0004.jpg", + "reverse cowgirl - side view/596.jpg", + "reverse cowgirl - side view/606_3.jpg" + ], + "canonical_geometry": "Side-profile reverse cowgirl view: woman is on top facing away from the partner, both bodies are seen laterally, and the back-facing orientation stays readable through hip, back, and leg placement.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 18, + "key": "normal_reverse_cowgirl_front_view", + "family": "reverse_cowgirl", + "action_family": "reverse_cowgirl", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "reverse cowgirl" + ], + "reference_images": [ + "reverse cowgirl/0001.jpg", + "reverse cowgirl/0004.jpg", + "reverse cowgirl/0005_4.jpg", + "reverse cowgirl/0014.jpg", + "reverse cowgirl/79.jpg", + "reverse cowgirl/82.jpg", + "reverse cowgirl/145.jpg", + "reverse cowgirl/260.jpg", + "reverse cowgirl/288.jpg", + "reverse cowgirl/319.jpg", + "reverse cowgirl/527.jpg", + "reverse cowgirl/608.jpg" + ], + "canonical_geometry": "Reviewed reverse-cowgirl front-view normal-camera subset from the large mixed source pool: the woman is on top facing the camera, the contact plane reads frontally, and the reclined partner remains visible below her in third person.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 19, + "key": "normal_reverse_cowgirl_front_three_quarter", + "family": "reverse_cowgirl", + "action_family": "reverse_cowgirl", + "camera_view": "front_three_quarter", + "status": "pre_ab_candidate", + "atlas_folders": [ + "reverse cowgirl" + ], + "reference_images": [ + "reverse cowgirl/153.jpg", + "reverse cowgirl/153_2.jpg", + "reverse cowgirl/239_2.jpg", + "reverse cowgirl/239_3.jpg", + "reverse cowgirl/241.jpg", + "reverse cowgirl/241_2.jpg", + "reverse cowgirl/241_3.jpg", + "reverse cowgirl/257.jpg", + "reverse cowgirl/287.jpg", + "reverse cowgirl/323_2.jpg", + "reverse cowgirl/609.jpg", + "reverse cowgirl/609_2.jpg" + ], + "canonical_geometry": "Reviewed reverse-cowgirl front three-quarter normal-camera subset from the large mixed source pool: the woman is on top turned partly toward the camera, the contact plane reads from a front-offset angle, and the reclined partner remains visible below or behind her in third person.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 20, + "key": "normal_reverse_cowgirl_low_close_front_view", + "family": "reverse_cowgirl", + "action_family": "reverse_cowgirl", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "reverse cowgirl" + ], + "reference_images": [ + "reverse cowgirl/0009.jpg", + "reverse cowgirl/0009_2.jpg", + "reverse cowgirl/0009_3.jpg", + "reverse cowgirl/0015.jpg", + "reverse cowgirl/0015_2.jpg", + "reverse cowgirl/0016_2.jpg", + "reverse cowgirl/170.jpg", + "reverse cowgirl/261.jpg", + "reverse cowgirl/332.jpg", + "reverse cowgirl/332_2.jpg", + "reverse cowgirl/551.jpg", + "reverse cowgirl/618.jpg" + ], + "canonical_geometry": "Reviewed reverse-cowgirl low-close front-view normal-camera subset from the large mixed source pool: the woman is on top facing the camera, the foreground contact plane dominates the lower frame, and the subject remains visible above it in third-person framing.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 21, + "key": "normal_reverse_congress_front_view", + "family": "reverse_congress", + "action_family": "reverse_congress", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "reverse congress - front view" + ], + "reference_images": [ + "reverse congress - front view/0012.jpg", + "reverse congress - front view/0012_2.jpg", + "reverse congress - front view/0013.jpg", + "reverse congress - front view/61.jpg", + "reverse congress - front view/105.jpg", + "reverse congress - front view/105_2.jpg", + "reverse congress - front view/122.jpg", + "reverse congress - front view/183.jpg", + "reverse congress - front view/189.jpg", + "reverse congress - front view/289.jpg", + "reverse congress - front view/289_2.jpg", + "reverse congress - front view/291.jpg", + "reverse congress - front view/542.jpg", + "reverse congress - front view/542_2.jpg", + "reverse congress - front view/563_2.jpg" + ], + "canonical_geometry": "Front-facing reverse-congress normal camera: the seated or folded position faces camera, with both bodies stacked or framed vertically and the contact plane visible from the front.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 22, + "key": "normal_missionary_side_profile", + "family": "missionary", + "action_family": "missionary", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "missionary - side view" + ], + "reference_images": [ + "missionary - side view/0003.jpg", + "missionary - side view/0013.jpg", + "missionary - side view/0014.jpg", + "missionary - side view/509.jpg", + "missionary - side view/521.jpg", + "missionary - side view/533.jpg", + "missionary - side view/534.jpg", + "missionary - side view/593.jpg", + "missionary - side view/596.jpg", + "missionary - side view/596_2.jpg", + "missionary - side view/602.jpg", + "missionary - side view/613.jpg", + "missionary - side view/627.jpg" + ], + "canonical_geometry": "Reviewed image-selected missionary side-profile normal-camera view with stacked body geometry readable from the side.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 23, + "key": "normal_missionary_side_profile_full_visibility", + "family": "missionary", + "action_family": "missionary", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "missionary - side view - full penis" + ], + "reference_images": [ + "missionary - side view - full penis/0002.jpg", + "missionary - side view - full penis/0002_2.jpg", + "missionary - side view - full penis/0021.jpg", + "missionary - side view - full penis/550.jpg", + "missionary - side view - full penis/69_2.jpg", + "missionary - side view - full penis/74.jpg", + "missionary - side view - full penis/97.jpg" + ], + "canonical_geometry": "Reviewed image-selected missionary side-profile normal-camera view emphasizing unobscured side contact visibility.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 24, + "key": "normal_missionary_front_view", + "family": "missionary", + "action_family": "missionary", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "missionary - front view" + ], + "reference_images": [ + "missionary - front view/0011.jpg", + "missionary - front view/567.jpg", + "missionary - front view/72.jpg" + ], + "canonical_geometry": "Missionary front normal-camera view where the reclined partner faces the camera and the top partner remains visible.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 25, + "key": "normal_anal_random_front_view", + "family": "anal", + "action_family": "anal", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "anal random" + ], + "reference_images": [ + "anal random/0005.jpg", + "anal random/0006.jpg", + "anal random/0015.jpg", + "anal random/160_3.jpg", + "anal random/188.jpg", + "anal random/347_3.jpg", + "anal random/347_10.jpg", + "anal random/347_11.jpg", + "anal random/366.jpg", + "anal random/366_3.jpg", + "anal random/366_4.jpg" + ], + "canonical_geometry": "Reviewed anal front-view normal-camera subset from the large mixed source pool: the main subject faces the camera, the contact plane reads frontally, and partner context remains visible in third person.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 26, + "key": "normal_anal_random_back_side_offset_view", + "family": "anal", + "action_family": "anal", + "camera_view": "back_three_quarter", + "status": "pre_ab_candidate", + "atlas_folders": [ + "anal random" + ], + "reference_images": [ + "anal random/0003.jpg", + "anal random/0003_3.jpg", + "anal random/0010.jpg", + "anal random/0013.jpg", + "anal random/119.jpg", + "anal random/119_2.jpg", + "anal random/119_3.jpg", + "anal random/124_2.jpg", + "anal random/124_8.jpg", + "anal random/347_4.jpg", + "anal random/347_5.jpg", + "anal random/347_8.jpg" + ], + "canonical_geometry": "Reviewed anal rear/side-offset normal-camera subset from the large mixed source pool: the main body turns partly away from the camera, the rear-side contact plane remains readable, and partner context stays visible in third person.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 27, + "key": "normal_blowjob_laying_front_view", + "family": "blowjob", + "action_family": "blowjob", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "blowjob - laying - front view" + ], + "reference_images": [ + "blowjob - laying - front view/0001.jpg", + "blowjob - laying - front view/0003.jpg", + "blowjob - laying - front view/0004.jpg", + "blowjob - laying - front view/0010.jpg", + "blowjob - laying - front view/0010_2.jpg", + "blowjob - laying - front view/0018.jpg", + "blowjob - laying - front view/48.jpg", + "blowjob - laying - front view/69.jpg", + "blowjob - laying - front view/91.jpg", + "blowjob - laying - front view/94.jpg", + "blowjob - laying - front view/122.jpg", + "blowjob - laying - front view/171.jpg", + "blowjob - laying - front view/184.jpg", + "blowjob - laying - front view/274.jpg", + "blowjob - laying - front view/512.jpg" + ], + "canonical_geometry": "Front-facing laying blowjob normal camera: the receiving partner reclines or is partly visible while the performing partner lies or leans forward facing camera, with face, mouth contact, and body line visible from the front.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 28, + "key": "normal_blowjob_sitting_front_view", + "family": "blowjob", + "action_family": "blowjob", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "blowjob - sitting - frontview" + ], + "reference_images": [ + "blowjob - sitting - frontview/0003.jpg", + "blowjob - sitting - frontview/37.jpg", + "blowjob - sitting - frontview/81.jpg" + ], + "canonical_geometry": "Front-facing seated-context blowjob normal camera: the performing partner is upright, kneeling, or leaning near a seated/reclined partner, with face, mouth contact, and partner placement readable from the front.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 29, + "key": "normal_blowjob_laying_side_profile", + "family": "blowjob", + "action_family": "blowjob", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "blowjob - laying - side view" + ], + "reference_images": [ + "blowjob - laying - side view/0013.jpg", + "blowjob - laying - side view/119.jpg", + "blowjob - laying - side view/209.jpg", + "blowjob - laying - side view/232.jpg", + "blowjob - laying - side view/244.jpg", + "blowjob - laying - side view/255.jpg", + "blowjob - laying - side view/333.jpg", + "blowjob - laying - side view/36.jpg", + "blowjob - laying - side view/364.jpg", + "blowjob - laying - side view/375.jpg", + "blowjob - laying - side view/62.jpg", + "blowjob - laying - side view/74.jpg", + "blowjob - laying - side view/85.jpg" + ], + "canonical_geometry": "Reviewed image-selected laying blowjob side-profile normal-camera view: the performer leans or lies laterally, the contact line reads from the side, and the receiving partner remains third-person visible without POV foreground framing.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 30, + "key": "normal_blowjob_sitting_side_profile", + "family": "blowjob", + "action_family": "blowjob", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "blowjob - sitting - side view" + ], + "reference_images": [ + "blowjob - sitting - side view/0002.jpg", + "blowjob - sitting - side view/241.jpg", + "blowjob - sitting - side view/64.jpg" + ], + "canonical_geometry": "Sitting oral-contact side-profile normal-camera view.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 31, + "key": "normal_ballsucking_standing_low_side_view", + "family": "ballsucking", + "action_family": "ballsucking", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "ballsucking - standing" + ], + "reference_images": [ + "ballsucking - standing/0014.jpg", + "ballsucking - standing/130.jpg", + "ballsucking - standing/137.jpg", + "ballsucking - standing/207.jpg", + "ballsucking - standing/222.jpg", + "ballsucking - standing/252.jpg", + "ballsucking - standing/333.jpg", + "ballsucking - standing/34.jpg", + "ballsucking - standing/540.jpg", + "ballsucking - standing/589.jpg", + "ballsucking - standing/624.jpg" + ], + "canonical_geometry": "Selected standing-partner low side or near-side normal-camera view where the receiving partner stands, the performer stays low beside or in front of the standing body, and the contact plane remains readable in third-person framing.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 32, + "key": "normal_boobjob_front_close_view", + "family": "boobjob", + "action_family": "boobjob", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "boobjob" + ], + "reference_images": [ + "boobjob/0017.jpg", + "boobjob/0018_2.jpg", + "boobjob/141.jpg", + "boobjob/186.jpg", + "boobjob/218.jpg", + "boobjob/259.jpg", + "boobjob/327.jpg", + "boobjob/588.jpg", + "boobjob/592.jpg", + "boobjob/598.jpg", + "boobjob/615.jpg", + "boobjob/618.jpg" + ], + "canonical_geometry": "Selected front-close boobjob normal-camera view where the performer faces camera or near-camera, upper body and face remain readable, and the contact action stays centered without becoming POV.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 33, + "key": "normal_breast_contact_front_view", + "family": "breast_contact", + "action_family": "breast_contact", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "breast - touching - front view" + ], + "reference_images": [ + "breast - touching - front view/0006.jpg", + "breast - touching - front view/0006_2.jpg", + "breast - touching - front view/12.jpg", + "breast - touching - front view/0014.jpg", + "breast - touching - front view/0015.jpg", + "breast - touching - front view/16.jpg", + "breast - touching - front view/56.jpg", + "breast - touching - front view/72.jpg", + "breast - touching - front view/183.jpg", + "breast - touching - front view/220.jpg", + "breast - touching - front view/246.jpg", + "breast - touching - front view/248.jpg", + "breast - touching - front view/281.jpg", + "breast - touching - front view/348.jpg", + "breast - touching - front view/361.jpg" + ], + "canonical_geometry": "Front-facing breast-contact normal camera: torso and face/front body are oriented toward the camera while hands or partner contact remains readable on the front body plane.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 34, + "key": "normal_breast_touching_side_view", + "family": "breast_contact", + "action_family": "breast_contact", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "breast - touching - side view" + ], + "reference_images": [ + "breast - touching - side view/0010.jpg", + "breast - touching - side view/364.jpg", + "breast - touching - side view/97.jpg" + ], + "canonical_geometry": "Side-profile breast-touching normal-camera view.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 35, + "key": "normal_breast_sucking_side_view", + "family": "breast_contact", + "action_family": "breast_contact", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "breast sucking - side view" + ], + "reference_images": [ + "breast sucking - side view/0003.jpg", + "breast sucking - side view/0005.jpg", + "breast sucking - side view/0007.jpg", + "breast sucking - side view/0009.jpg", + "breast sucking - side view/0010_2.jpg", + "breast sucking - side view/182.jpg", + "breast sucking - side view/186.jpg", + "breast sucking - side view/218.jpg", + "breast sucking - side view/234.jpg", + "breast sucking - side view/244.jpg", + "breast sucking - side view/257.jpg", + "breast sucking - side view/267.jpg", + "breast sucking - side view/269.jpg", + "breast sucking - side view/356.jpg", + "breast sucking - side view/99.jpg" + ], + "canonical_geometry": "Side-profile breast mouth-contact normal-camera view.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 36, + "key": "normal_sixty_nine_front_close_view", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "69" + ], + "reference_images": [ + "69/0002.jpg", + "69/0008.jpg", + "69/0016.jpg", + "69/19.jpg", + "69/166.jpg", + "69/292.jpg", + "69/624.jpg" + ], + "canonical_geometry": "Selected sixty-nine front-close normal-camera view where the upper subject faces camera, opposed oral-contact pose stays centered, and both bodies remain readable in close third-person framing.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 37, + "key": "normal_fingering_reclined_front_view", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "fingering" + ], + "reference_images": [ + "fingering/0004.jpg", + "fingering/0006.jpg", + "fingering/0013.jpg", + "fingering/0015.jpg", + "fingering/39.jpg", + "fingering/50.jpg", + "fingering/132.jpg", + "fingering/133.jpg", + "fingering/279.jpg", + "fingering/603.jpg" + ], + "canonical_geometry": "Selected reclined manual-contact front normal-camera view where the subject is reclined, faces the camera, the open-thigh contact plane stays centered, and face or upper body remains readable in third-person framing.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 38, + "key": "normal_wand_front_close_view", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "wand" + ], + "reference_images": [ + "wand/0005.jpg", + "wand/0015.jpg", + "wand/217.jpg", + "wand/532.jpg", + "wand/561.jpg", + "wand/611.jpg", + "wand/75.jpg" + ], + "canonical_geometry": "Selected wand front-close normal-camera view where the subject faces camera or near-camera, the open-thigh tool-contact plane is centered, and the wand remains readable as one continuous object in third-person framing.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 39, + "key": "normal_handjob_standing_side_profile", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "handjob standing - side view" + ], + "reference_images": [ + "handjob standing - side view/16.jpg", + "handjob standing - side view/105.jpg", + "handjob standing - side view/171.jpg", + "handjob standing - side view/174.jpg", + "handjob standing - side view/175.jpg", + "handjob standing - side view/305.jpg", + "handjob standing - side view/549.jpg" + ], + "canonical_geometry": "Reviewed image-selected standing manual-contact side-profile normal-camera view: both participants remain upright or near-upright, the contact line reads laterally, and the framing stays third-person rather than POV.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 40, + "key": "normal_handjob_both_sitting_front_view", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "handjob - both sitting - front view" + ], + "reference_images": [ + "handjob - both sitting - front view/109.jpg", + "handjob - both sitting - front view/588.jpg", + "handjob - both sitting - front view/598.jpg" + ], + "canonical_geometry": "Both-sitting manual-contact front normal-camera view.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 41, + "key": "normal_handjob_laying_front_three_quarter", + "family": "manual_or_toy", + "action_family": "manual_or_toy", + "camera_view": "front_three_quarter", + "status": "pre_ab_candidate", + "atlas_folders": [ + "handjob - laying - front view - 3-4 angle" + ], + "reference_images": [ + "handjob - laying - front view - 3-4 angle/39.jpg", + "handjob - laying - front view - 3-4 angle/41.jpg", + "handjob - laying - front view - 3-4 angle/91.jpg" + ], + "canonical_geometry": "Laying manual-contact front three-quarter normal-camera view.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 42, + "key": "normal_pussy_licking_side_profile", + "family": "oral_other", + "action_family": "oral_other", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "pussy licking - side view" + ], + "reference_images": [ + "pussy licking - side view/0003.jpg", + "pussy licking - side view/0006.jpg", + "pussy licking - side view/0010.jpg", + "pussy licking - side view/0013_2.jpg", + "pussy licking - side view/0015.jpg", + "pussy licking - side view/0015_2.jpg", + "pussy licking - side view/0016.jpg", + "pussy licking - side view/0016_2.jpg", + "pussy licking - side view/536.jpg", + "pussy licking - side view/537.jpg", + "pussy licking - side view/544.jpg", + "pussy licking - side view/560.jpg", + "pussy licking - side view/603.jpg", + "pussy licking - side view/609.jpg", + "pussy licking - side view/613.jpg" + ], + "canonical_geometry": "Reviewed image-selected side-profile oral-contact normal-camera view: the performer is seen laterally, the receiving partner hips and legs remain readable, and the contact line runs across the frame without POV foreground cues.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 43, + "key": "normal_display_rear_body_view", + "family": "display", + "action_family": "display", + "camera_view": "back_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "woman solo showing her hass - back view" + ], + "reference_images": [ + "woman solo showing her hass - back view/0001_2.jpg", + "woman solo showing her hass - back view/0003.jpg", + "woman solo showing her hass - back view/0006_2.jpg", + "woman solo showing her hass - back view/0009.jpg", + "woman solo showing her hass - back view/0015.jpg", + "woman solo showing her hass - back view/0016_2.jpg", + "woman solo showing her hass - back view/112.jpg", + "woman solo showing her hass - back view/153.jpg", + "woman solo showing her hass - back view/157.jpg", + "woman solo showing her hass - back view/162_2.jpg", + "woman solo showing her hass - back view/169.jpg", + "woman solo showing her hass - back view/182_2.jpg", + "woman solo showing her hass - back view/232.jpg", + "woman solo showing her hass - back view/270.jpg", + "woman solo showing her hass - back view/322.jpg" + ], + "canonical_geometry": "Reviewed image-selected solo rear body-display normal-camera view: the subject is back-facing or rear three-quarter, rear body shape is the primary composition, and the camera remains third-person rather than POV.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 44, + "key": "normal_display_rear_body_standing_back_view", + "family": "display", + "action_family": "display", + "camera_view": "back_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "woman solo showing her hass - back view" + ], + "reference_images": [ + "woman solo showing her hass - back view/0002.jpg", + "woman solo showing her hass - back view/0006.jpg", + "woman solo showing her hass - back view/0006_3.jpg", + "woman solo showing her hass - back view/0007_2.jpg", + "woman solo showing her hass - back view/173.jpg", + "woman solo showing her hass - back view/197.jpg", + "woman solo showing her hass - back view/230.jpg", + "woman solo showing her hass - back view/235.jpg", + "woman solo showing her hass - back view/287.jpg", + "woman solo showing her hass - back view/293.jpg", + "woman solo showing her hass - back view/300.jpg", + "woman solo showing her hass - back view/321.jpg" + ], + "canonical_geometry": "Reviewed standing solo rear body-display normal-camera subset: the subject stands upright with back or rear three-quarter side toward camera, rear body remains the primary composition, and the full standing posture stays readable in third-person framing.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 45, + "key": "normal_display_front_open_leg_front_view", + "family": "display", + "action_family": "display", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "pussy spread" + ], + "reference_images": [ + "pussy spread/0002_3.jpg", + "pussy spread/0003_4.jpg", + "pussy spread/0012.jpg", + "pussy spread/0015.jpg", + "pussy spread/0017.jpg", + "pussy spread/80.jpg", + "pussy spread/130.jpg", + "pussy spread/153.jpg", + "pussy spread/296.jpg", + "pussy spread/297.jpg", + "pussy spread/328.jpg", + "pussy spread/367.jpg" + ], + "canonical_geometry": "Reviewed front open-leg display normal-camera subset from the mixed source pool: the subject faces the camera, the open-leg display reads frontally, and enough body or room context remains visible to separate it from tight low-close crops.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 46, + "key": "normal_display_front_open_leg_low_close", + "family": "display", + "action_family": "display", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "pussy spread" + ], + "reference_images": [ + "pussy spread/1.jpg", + "pussy spread/1_2.jpg", + "pussy spread/0003.jpg", + "pussy spread/0003_2.jpg", + "pussy spread/0003_3.jpg", + "pussy spread/0010_2.jpg", + "pussy spread/0016.jpg", + "pussy spread/0016_2.jpg", + "pussy spread/41.jpg", + "pussy spread/201.jpg", + "pussy spread/217_2.jpg", + "pussy spread/223.jpg" + ], + "canonical_geometry": "Reviewed low-close front open-leg display normal-camera subset from the mixed source pool: the camera is front-facing and close enough that the foreground body plane dominates while the subject remains visible in normal third-person framing.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 47, + "key": "normal_display_front_open_leg_side_offset_view", + "family": "display", + "action_family": "display", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "pussy spread" + ], + "reference_images": [ + "pussy spread/0007.jpg", + "pussy spread/0008.jpg", + "pussy spread/73.jpg", + "pussy spread/121.jpg", + "pussy spread/134.jpg", + "pussy spread/154_3.jpg", + "pussy spread/163.jpg", + "pussy spread/175.jpg", + "pussy spread/256.jpg", + "pussy spread/308.jpg", + "pussy spread/311.jpg", + "pussy spread/368.jpg" + ], + "canonical_geometry": "Reviewed side-offset front open-leg display normal-camera subset from the mixed source pool: the subject sits or reclines at an oblique angle, the open-leg display reads from a lateral offset, and torso plus leg line angle across the frame in third-person composition.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 48, + "key": "normal_display_breasts_exposed_front_view", + "family": "display", + "action_family": "display", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "breasts exposed" + ], + "reference_images": [ + "breasts exposed/0001_3.jpg", + "breasts exposed/0006.jpg", + "breasts exposed/0008_2.jpg", + "breasts exposed/0011_2.jpg", + "breasts exposed/141.jpg", + "breasts exposed/181.jpg", + "breasts exposed/263.jpg", + "breasts exposed/302.jpg", + "breasts exposed/327.jpg", + "breasts exposed/346.jpg", + "breasts exposed/594_2.jpg", + "breasts exposed/624.jpg" + ], + "canonical_geometry": "Reviewed display front-view normal-camera subset from the broad breasts-exposed source pool: the subject faces the camera, the upper torso and full body remain readable, and the frame uses normal third-person display composition.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 49, + "key": "normal_display_breasts_exposed_side_offset_view", + "family": "display", + "action_family": "display", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "breasts exposed" + ], + "reference_images": [ + "breasts exposed/83.jpg", + "breasts exposed/196.jpg", + "breasts exposed/235.jpg", + "breasts exposed/267.jpg", + "breasts exposed/271.jpg", + "breasts exposed/305.jpg", + "breasts exposed/353.jpg", + "breasts exposed/373.jpg", + "breasts exposed/590.jpg", + "breasts exposed/590_2.jpg" + ], + "canonical_geometry": "Reviewed display side-offset normal-camera subset from the broad breasts-exposed source pool: the subject turns laterally, the side torso outline is readable, and the frame remains normal third-person display composition.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 50, + "key": "normal_display_breasts_exposed_standing_front_view", + "family": "display", + "action_family": "display", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "breasts exposed" + ], + "reference_images": [ + "breasts exposed/0002_2.jpg", + "breasts exposed/0003.jpg", + "breasts exposed/49.jpg", + "breasts exposed/138.jpg", + "breasts exposed/155.jpg", + "breasts exposed/169.jpg", + "breasts exposed/190.jpg", + "breasts exposed/230.jpg", + "breasts exposed/242.jpg", + "breasts exposed/302_2.jpg", + "breasts exposed/332.jpg", + "breasts exposed/368.jpg" + ], + "canonical_geometry": "Reviewed standing display front-view normal-camera subset from the broad breasts-exposed source pool: the subject stands upright facing the camera, the torso and legs remain readable, and the frame preserves normal third-person display composition.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 51, + "key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "family": "display", + "action_family": "display", + "camera_view": "front_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "breasts exposed" + ], + "reference_images": [ + "breasts exposed/0001_2.jpg", + "breasts exposed/0007_2.jpg", + "breasts exposed/101_2.jpg", + "breasts exposed/154.jpg", + "breasts exposed/165.jpg", + "breasts exposed/173.jpg", + "breasts exposed/259.jpg", + "breasts exposed/285.jpg", + "breasts exposed/293.jpg", + "breasts exposed/322.jpg", + "breasts exposed/328.jpg", + "breasts exposed/523.jpg" + ], + "canonical_geometry": "Reviewed seated/kneeling display front-view normal-camera subset from the broad breasts-exposed source pool: the subject faces the camera from a seated or kneeling posture, the torso and lower-body placement remain readable, and the frame preserves normal third-person display composition.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 52, + "key": "normal_standing_from_front_side_view", + "family": "standing_penetration", + "action_family": "standing_penetration", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "fuck from front standing - side view" + ], + "reference_images": [ + "fuck from front standing - side view/0001.jpg", + "fuck from front standing - side view/252.jpg", + "fuck from front standing - side view/73.jpg" + ], + "canonical_geometry": "Standing from-front side-profile normal-camera view with the upright body line readable.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 53, + "key": "normal_standing_suspended_side_view", + "family": "standing_penetration", + "action_family": "standing_penetration", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "fuck standing - woman suspended - side view" + ], + "reference_images": [ + "fuck standing - woman suspended - side view/0005.jpg", + "fuck standing - woman suspended - side view/0015.jpg", + "fuck standing - woman suspended - side view/611.jpg" + ], + "canonical_geometry": "Suspended standing side-profile normal-camera view where lift posture is part of the cue.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 54, + "key": "normal_couple_kissing_upright_side_profile", + "family": "couple", + "action_family": "couple", + "camera_view": "side_view", + "status": "pre_ab_candidate", + "atlas_folders": [ + "couple kissing" + ], + "reference_images": [ + "couple kissing/0001_2.jpg", + "couple kissing/0003.jpg", + "couple kissing/0005_2.jpg", + "couple kissing/16.jpg", + "couple kissing/159.jpg", + "couple kissing/247.jpg", + "couple kissing/247_2.jpg", + "couple kissing/253.jpg", + "couple kissing/253_2.jpg", + "couple kissing/322.jpg", + "couple kissing/354.jpg", + "couple kissing/379.jpg" + ], + "canonical_geometry": "Reviewed couple-kissing upright side-profile normal-camera subset from the mixed source pool: two subjects face each other laterally, the kissing contact is centered between their faces, and both bodies remain visible enough to preserve third-person camera geometry.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + { + "priority_rank": 55, + "key": "normal_piledriver_high_front_down_view", + "family": "piledriver_or_pretzel", + "action_family": "piledriver_or_pretzel", + "camera_view": "top_down_or_high_angle", + "status": "pre_ab_candidate", + "atlas_folders": [ + "piledriver" + ], + "reference_images": [ + "piledriver/0002.jpg", + "piledriver/0004_2.jpg", + "piledriver/0005.jpg", + "piledriver/0006_2.jpg", + "piledriver/0009.jpg", + "piledriver/0009_2.jpg", + "piledriver/0012.jpg", + "piledriver/0013.jpg", + "piledriver/282.jpg", + "piledriver/317.jpg", + "piledriver/317_2.jpg", + "piledriver/318.jpg", + "piledriver/319.jpg", + "piledriver/494_2.jpg", + "piledriver/538.jpg" + ], + "canonical_geometry": "Selected piledriver high front-down normal-camera view where the folded body stays readable below the partner from a high third-person camera.", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "priority_reason": "Catalog status is pre_ab_candidate with representative references; catalog order is preserved until fixed-seed evidence exists.", + "generator_hook_notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + } + ] +} diff --git a/ab_batches/normal_camera/normal_camera_prompt_cue_batch.json b/ab_batches/normal_camera/normal_camera_prompt_cue_batch.json new file mode 100644 index 0000000..cfe4d3e --- /dev/null +++ b/ab_batches/normal_camera/normal_camera_prompt_cue_batch.json @@ -0,0 +1,3129 @@ +{ + "schema": "sxcp_normal_camera_prompt_cue_batch_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "selection": "pre_ab_candidate variants in catalog order", + "items": [ + { + "batch_rank": 1, + "variant_key": "normal_doggy_all_fours_side_view", + "family": "doggy", + "camera_view": "side_view", + "atlas_folders": [ + "doggy on all four - side view" + ], + "reference_images": [ + "doggy on all four - side view/0020.jpg", + "doggy on all four - side view/192.jpg", + "doggy on all four - side view/2.jpg", + "doggy on all four - side view/204.jpg", + "doggy on all four - side view/254.jpg", + "doggy on all four - side view/254_2.jpg", + "doggy on all four - side view/254_3.jpg", + "doggy on all four - side view/271.jpg", + "doggy on all four - side view/271_2.jpg", + "doggy on all four - side view/362.jpg", + "doggy on all four - side view/495.jpg", + "doggy on all four - side view/556.jpg", + "doggy on all four - side view/86.jpg", + "doggy on all four - side view/99.jpg" + ], + "canonical_geometry": "Reviewed image-selected doggy all-fours side view: the woman is low or on all fours and the camera remains lateral enough for the body axis and rear-entry contact line to read across the frame.", + "source_prompt_cues": [ + "reviewed doggy all-fours side-profile normal camera view", + "woman on all fours or low forward in profile", + "body axis runs horizontally across the frame", + "rear-entry contact line visible from the side" + ], + "review_only_avoid_cues": [ + "POV foreground body cues", + "standing from-behind wording", + "seated or couch posture wording", + "front-facing or overhead camera wording" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "reviewed doggy all-fours side-profile normal camera view", + "body axis runs horizontally across the frame", + "rear-entry contact line visible from the side" + ], + "blocked_prompt_cues": [ + { + "cue": "woman on all fours or low forward in profile", + "issues": [ + "option_word" + ] + } + ], + "prompt_text": "reviewed doggy all-fours side-profile normal camera view. body axis runs horizontally across the frame. rear-entry contact line visible from the side.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 2, + "variant_key": "normal_doggy_generic_side_view", + "family": "doggy", + "camera_view": "side_view", + "atlas_folders": [ + "doggy - side view" + ], + "reference_images": [ + "doggy - side view/0014.jpg", + "doggy - side view/276.jpg", + "doggy - side view/541.jpg" + ], + "canonical_geometry": "Normal third-person generic doggy side view: the source folder is kept separate from all-fours and explicit from-behind side folders, with the camera lateral and the action axis readable across the frame.", + "source_prompt_cues": [ + "generic doggy side-profile normal camera view", + "camera beside the couple", + "body axis runs horizontally across the frame", + "lateral contact line stays visible" + ], + "review_only_avoid_cues": [ + "POV foreground body cues", + "all-fours-only wording", + "standing from-behind wording", + "front-facing or overhead camera wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "generic doggy side-profile normal camera view", + "camera beside the couple", + "body axis runs horizontally across the frame", + "lateral contact line stays visible" + ], + "blocked_prompt_cues": [], + "prompt_text": "generic doggy side-profile normal camera view. camera beside the couple. body axis runs horizontally across the frame. lateral contact line stays visible.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 3, + "variant_key": "normal_doggy_standing_from_behind_side_view", + "family": "doggy", + "camera_view": "side_view", + "atlas_folders": [ + "fuck from behind standing - side view" + ], + "reference_images": [ + "fuck from behind standing - side view/0013.jpg", + "fuck from behind standing - side view/0019.jpg", + "fuck from behind standing - side view/0020.jpg", + "fuck from behind standing - side view/162.jpg", + "fuck from behind standing - side view/162_2.jpg", + "fuck from behind standing - side view/509.jpg", + "fuck from behind standing - side view/9.jpg" + ], + "canonical_geometry": "Reviewed image-selected standing from-behind side view: upright posture is visible and the camera is lateral or rear-lateral rather than front portrait framing.", + "source_prompt_cues": [ + "reviewed standing from-behind side-profile normal camera view", + "upright body line visible", + "camera beside or slightly behind the action", + "rear-entry side relation readable" + ], + "review_only_avoid_cues": [ + "POV foreground body cues", + "all-fours wording", + "reclined posture wording", + "front-facing portrait framing" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "reviewed standing from-behind side-profile normal camera view", + "upright body line visible", + "rear-entry side relation readable" + ], + "blocked_prompt_cues": [ + { + "cue": "camera beside or slightly behind the action", + "issues": [ + "option_word" + ] + } + ], + "prompt_text": "reviewed standing from-behind side-profile normal camera view. upright body line visible. rear-entry side relation readable.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 4, + "variant_key": "normal_doggy_standing_backside_side_view", + "family": "doggy", + "camera_view": "side_view", + "atlas_folders": [ + "fuck from behind standing - woman backside - side view" + ], + "reference_images": [ + "fuck from behind standing - woman backside - side view/0010.jpg", + "fuck from behind standing - woman backside - side view/0012.jpg", + "fuck from behind standing - woman backside - side view/186.jpg", + "fuck from behind standing - woman backside - side view/186_2.jpg", + "fuck from behind standing - woman backside - side view/196.jpg", + "fuck from behind standing - woman backside - side view/257.jpg", + "fuck from behind standing - woman backside - side view/286.jpg", + "fuck from behind standing - woman backside - side view/288.jpg", + "fuck from behind standing - woman backside - side view/343.jpg", + "fuck from behind standing - woman backside - side view/343_2.jpg", + "fuck from behind standing - woman backside - side view/343_3.jpg", + "fuck from behind standing - woman backside - side view/345.jpg", + "fuck from behind standing - woman backside - side view/345_2.jpg", + "fuck from behind standing - woman backside - side view/542.jpg", + "fuck from behind standing - woman backside - side view/68.jpg", + "fuck from behind standing - woman backside - side view/68_2.jpg" + ], + "canonical_geometry": "Reviewed image-selected standing backside side view: backside/hip orientation dominates and the camera is side or rear-lateral.", + "source_prompt_cues": [ + "reviewed standing backside side-profile normal camera view", + "woman backside and hips readable in profile", + "camera beside or rear-lateral to the action", + "standing posture remains visible" + ], + "review_only_avoid_cues": [ + "POV foreground body cues", + "all-fours wording", + "generic standing wording that loses backside orientation", + "front-facing portrait framing" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "reviewed standing backside side-profile normal camera view", + "woman backside and hips readable in profile", + "standing posture remains visible" + ], + "blocked_prompt_cues": [ + { + "cue": "camera beside or rear-lateral to the action", + "issues": [ + "option_word" + ] + } + ], + "prompt_text": "reviewed standing backside side-profile normal camera view. woman backside and hips readable in profile. standing posture remains visible.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 5, + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "family": "doggy", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "doggy on all four - back view - 3-4 angle" + ], + "reference_images": [ + "doggy on all four - back view - 3-4 angle/0002.jpg", + "doggy on all four - back view - 3-4 angle/0003.jpg", + "doggy on all four - back view - 3-4 angle/0013.jpg", + "doggy on all four - back view - 3-4 angle/0014.jpg", + "doggy on all four - back view - 3-4 angle/0019.jpg", + "doggy on all four - back view - 3-4 angle/0020.jpg", + "doggy on all four - back view - 3-4 angle/206.jpg", + "doggy on all four - back view - 3-4 angle/267.jpg", + "doggy on all four - back view - 3-4 angle/302.jpg", + "doggy on all four - back view - 3-4 angle/327.jpg", + "doggy on all four - back view - 3-4 angle/550_2.jpg", + "doggy on all four - back view - 3-4 angle/608_2.jpg", + "doggy on all four - back view - 3-4 angle/611.jpg", + "doggy on all four - back view - 3-4 angle/70.jpg", + "doggy on all four - back view - 3-4 angle/97.jpg" + ], + "canonical_geometry": "Doggy all-fours rear three-quarter normal-camera view with the camera offset behind the action.", + "source_prompt_cues": [ + "doggy all-fours rear three-quarter normal camera view", + "camera offset behind the action", + "back and hips closest to camera", + "torso and partner context visible" + ], + "review_only_avoid_cues": [ + "pure side-profile wording", + "front-facing camera wording", + "standing from-behind wording", + "POV viewer-body foreground cues" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "doggy all-fours rear three-quarter normal camera view", + "camera offset behind the action", + "back and hips closest to camera", + "torso and partner context visible" + ], + "blocked_prompt_cues": [], + "prompt_text": "doggy all-fours rear three-quarter normal camera view. camera offset behind the action. back and hips closest to camera. torso and partner context visible.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 6, + "variant_key": "normal_doggy_generic_back_three_quarter", + "family": "doggy", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "doggy - back view - 3-4 angle" + ], + "reference_images": [ + "doggy - back view - 3-4 angle/0002.jpg", + "doggy - back view - 3-4 angle/0002_2.jpg", + "doggy - back view - 3-4 angle/0008_2.jpg", + "doggy - back view - 3-4 angle/0013.jpg", + "doggy - back view - 3-4 angle/0015.jpg", + "doggy - back view - 3-4 angle/0017.jpg", + "doggy - back view - 3-4 angle/0021.jpg", + "doggy - back view - 3-4 angle/132.jpg", + "doggy - back view - 3-4 angle/145.jpg", + "doggy - back view - 3-4 angle/183.jpg", + "doggy - back view - 3-4 angle/185.jpg", + "doggy - back view - 3-4 angle/227.jpg", + "doggy - back view - 3-4 angle/39.jpg", + "doggy - back view - 3-4 angle/41.jpg", + "doggy - back view - 3-4 angle/77.jpg" + ], + "canonical_geometry": "Generic doggy rear three-quarter normal-camera view, separate from all-fours and laying from-behind source folders.", + "source_prompt_cues": [ + "generic doggy rear three-quarter normal camera view", + "camera offset behind the action", + "back and hips readable", + "third-person partner context visible" + ], + "review_only_avoid_cues": [ + "pure side-profile wording", + "front-facing camera wording", + "all-fours-only wording", + "POV viewer-body foreground cues" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "generic doggy rear three-quarter normal camera view", + "camera offset behind the action", + "back and hips readable", + "third-person partner context visible" + ], + "blocked_prompt_cues": [], + "prompt_text": "generic doggy rear three-quarter normal camera view. camera offset behind the action. back and hips readable. third-person partner context visible.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 7, + "variant_key": "normal_doggy_laying_from_behind_front_three_quarter", + "family": "doggy", + "camera_view": "front_three_quarter", + "atlas_folders": [ + "fuck from behind laying - back view - 3-4 angle" + ], + "reference_images": [ + "fuck from behind laying - back view - 3-4 angle/0002.jpg", + "fuck from behind laying - back view - 3-4 angle/0004.jpg", + "fuck from behind laying - back view - 3-4 angle/0004_2.jpg", + "fuck from behind laying - back view - 3-4 angle/0006.jpg", + "fuck from behind laying - back view - 3-4 angle/0009.jpg", + "fuck from behind laying - back view - 3-4 angle/0009_2.jpg", + "fuck from behind laying - back view - 3-4 angle/0011.jpg", + "fuck from behind laying - back view - 3-4 angle/0013.jpg", + "fuck from behind laying - back view - 3-4 angle/0014.jpg", + "fuck from behind laying - back view - 3-4 angle/0015.jpg", + "fuck from behind laying - back view - 3-4 angle/0016.jpg", + "fuck from behind laying - back view - 3-4 angle/377.jpg", + "fuck from behind laying - back view - 3-4 angle/379.jpg", + "fuck from behind laying - back view - 3-4 angle/537.jpg", + "fuck from behind laying - back view - 3-4 angle/560.jpg", + "fuck from behind laying - back view - 3-4 angle/590.jpg", + "fuck from behind laying - back view - 3-4 angle/591.jpg", + "fuck from behind laying - back view - 3-4 angle/591_2.jpg", + "fuck from behind laying - back view - 3-4 angle/595.jpg", + "fuck from behind laying - back view - 3-4 angle/606.jpg", + "fuck from behind laying - back view - 3-4 angle/615.jpg", + "fuck from behind laying - back view - 3-4 angle/615_2.jpg", + "fuck from behind laying - back view - 3-4 angle/624.jpg" + ], + "canonical_geometry": "Reviewed image-selected laying from-behind front three-quarter view: reclined body layout is visible, the camera is normal third-person and front-offset more than rear 3/4.", + "source_prompt_cues": [ + "reviewed laying from-behind front three-quarter normal camera view", + "reclined body line visible", + "front-offset contact plane readable", + "normal third-person framing" + ], + "review_only_avoid_cues": [ + "POV foreground body cues", + "standing posture wording", + "strict rear three-quarter wording", + "pure side-profile wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed laying from-behind front three-quarter normal camera view", + "reclined body line visible", + "front-offset contact plane readable", + "normal third-person framing" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed laying from-behind front three-quarter normal camera view. reclined body line visible. front-offset contact plane readable. normal third-person framing.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 8, + "variant_key": "normal_doggy_all_fours_front_view", + "family": "doggy", + "camera_view": "front_view", + "atlas_folders": [ + "doggy all four - front view" + ], + "reference_images": [ + "doggy all four - front view/0016.jpg", + "doggy all four - front view/48.jpg", + "doggy all four - front view/58.jpg", + "doggy all four - front view/64.jpg", + "doggy all four - front view/69.jpg", + "doggy all four - front view/77.jpg", + "doggy all four - front view/83.jpg", + "doggy all four - front view/97.jpg", + "doggy all four - front view/171.jpg", + "doggy all four - front view/197.jpg", + "doggy all four - front view/204.jpg", + "doggy all four - front view/221.jpg", + "doggy all four - front view/290.jpg", + "doggy all four - front view/596.jpg", + "doggy all four - front view/598.jpg" + ], + "canonical_geometry": "Doggy all-fours front normal-camera view where the front subject plane faces the camera while the partner remains behind.", + "source_prompt_cues": [ + "doggy all-fours front normal camera view", + "woman on all fours facing the camera", + "face and forearms visible in front", + "partner remains behind rather than becoming the viewpoint" + ], + "review_only_avoid_cues": [ + "POV wording", + "rear-view wording as primary camera", + "generic doggy front wording that loses all-fours posture", + "cropping the face out" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "doggy all-fours front normal camera view", + "woman on all fours facing the camera", + "face and forearms visible in front" + ], + "blocked_prompt_cues": [ + { + "cue": "partner remains behind rather than becoming the viewpoint", + "issues": [ + "contrast_wording" + ] + } + ], + "prompt_text": "doggy all-fours front normal camera view. woman on all fours facing the camera. face and forearms visible in front.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 9, + "variant_key": "normal_doggy_generic_front_view", + "family": "doggy", + "camera_view": "front_view", + "atlas_folders": [ + "doggy - front view", + "doggy - front view " + ], + "reference_images": [ + "doggy - front view/11.jpg", + "doggy - front view/5.jpg", + "doggy - front view/6.jpg", + "doggy - front view /0003.jpg", + "doggy - front view /253.jpg", + "doggy - front view /262.jpg", + "doggy - front view /349.jpg", + "doggy - front view /354.jpg", + "doggy - front view /41.jpg", + "doggy - front view /49.jpg", + "doggy - front view /505.jpg", + "doggy - front view /537.jpg", + "doggy - front view /541.jpg", + "doggy - front view /567.jpg", + "doggy - front view /627.jpg" + ], + "canonical_geometry": "Generic doggy front normal-camera view from the duplicate front-view source folders.", + "source_prompt_cues": [ + "generic doggy front normal camera view", + "front subject plane faces the camera", + "face and forearms readable", + "partner remains behind in third person" + ], + "review_only_avoid_cues": [ + "POV wording", + "rear-view wording as primary camera", + "all-fours-only wording unless the selected sample supports it", + "cropping the face out" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "generic doggy front normal camera view", + "front subject plane faces the camera", + "face and forearms readable", + "partner remains behind in third person" + ], + "blocked_prompt_cues": [], + "prompt_text": "generic doggy front normal camera view. front subject plane faces the camera. face and forearms readable. partner remains behind in third person.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 10, + "variant_key": "normal_doggy_under_view_low_camera", + "family": "doggy", + "camera_view": "under_view", + "atlas_folders": [ + "doggy - underview" + ], + "reference_images": [ + "doggy - underview/0001.jpg", + "doggy - underview/0008.jpg", + "doggy - underview/614.jpg" + ], + "canonical_geometry": "Extreme low under-view doggy camera: the camera is below the hips or leg line, looking upward through or under the pose so underside body geometry dominates the frame.", + "source_prompt_cues": [ + "under-view normal camera angle", + "camera below the hips or legs", + "low camera looking upward through the pose", + "underside body geometry visible" + ], + "review_only_avoid_cues": [ + "overhead wording", + "eye-level side profile wording", + "first-person viewer-body cues" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "under-view normal camera angle", + "low camera looking upward through the pose", + "underside body geometry visible" + ], + "blocked_prompt_cues": [ + { + "cue": "camera below the hips or legs", + "issues": [ + "option_word" + ] + } + ], + "prompt_text": "under-view normal camera angle. low camera looking upward through the pose. underside body geometry visible.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 11, + "variant_key": "normal_cowgirl_side_profile", + "family": "cowgirl", + "camera_view": "side_view", + "atlas_folders": [ + "cowgirl - side view" + ], + "reference_images": [ + "cowgirl - side view/0003.jpg", + "cowgirl - side view/0004_2.jpg", + "cowgirl - side view/0005.jpg", + "cowgirl - side view/0007.jpg", + "cowgirl - side view/0009.jpg", + "cowgirl - side view/0011.jpg", + "cowgirl - side view/0015.jpg", + "cowgirl - side view/118.jpg", + "cowgirl - side view/195.jpg", + "cowgirl - side view/2.jpg", + "cowgirl - side view/200.jpg", + "cowgirl - side view/255.jpg", + "cowgirl - side view/280.jpg", + "cowgirl - side view/86.jpg", + "cowgirl - side view/86_2.jpg" + ], + "canonical_geometry": "Side-profile cowgirl view: woman sits or rises on top of the reclined partner, both bodies are seen from the side, and the vertical straddle relation remains readable without first-person framing.", + "source_prompt_cues": [ + "cowgirl side-profile normal camera view", + "woman on top seen from the side", + "reclined partner visible beneath her", + "vertical straddle relation readable in profile" + ], + "review_only_avoid_cues": [ + "POV reclined-viewer wording", + "front-facing portrait framing", + "rear-view reverse cowgirl wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "cowgirl side-profile normal camera view", + "woman on top seen from the side", + "reclined partner visible beneath her", + "vertical straddle relation readable in profile" + ], + "blocked_prompt_cues": [], + "prompt_text": "cowgirl side-profile normal camera view. woman on top seen from the side. reclined partner visible beneath her. vertical straddle relation readable in profile.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 12, + "variant_key": "normal_cowgirl_full_body_front_view", + "family": "cowgirl", + "camera_view": "front_view", + "atlas_folders": [ + "cowgirl full man body - front view" + ], + "reference_images": [ + "cowgirl full man body - front view/0005.jpg", + "cowgirl full man body - front view/303.jpg", + "cowgirl full man body - front view/99.jpg" + ], + "canonical_geometry": "Cowgirl front normal-camera view with the partner body visible beneath the woman.", + "source_prompt_cues": [ + "cowgirl full-body front normal camera view", + "woman faces the camera while on top", + "partner body visible beneath her", + "front torso and hips readable" + ], + "review_only_avoid_cues": [ + "POV recline framing", + "reverse-cowgirl back-facing wording", + "tight crop that loses partner placement", + "front three-quarter wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "cowgirl full-body front normal camera view", + "woman faces the camera while on top", + "partner body visible beneath her", + "front torso and hips readable" + ], + "blocked_prompt_cues": [], + "prompt_text": "cowgirl full-body front normal camera view. woman faces the camera while on top. partner body visible beneath her. front torso and hips readable.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 13, + "variant_key": "normal_cowgirl_front_three_quarter", + "family": "cowgirl", + "camera_view": "front_three_quarter", + "atlas_folders": [ + "cowgirl - front view - 3-4 angle" + ], + "reference_images": [ + "cowgirl - front view - 3-4 angle/588.jpg", + "cowgirl - front view - 3-4 angle/62_2.jpg", + "cowgirl - front view - 3-4 angle/70.jpg" + ], + "canonical_geometry": "Cowgirl front three-quarter normal-camera view with the front contact plane readable from an offset camera.", + "source_prompt_cues": [ + "cowgirl front three-quarter normal camera view", + "woman on top seen from a front-offset angle", + "body depth remains visible", + "partner placement readable beneath her" + ], + "review_only_avoid_cues": [ + "POV recline framing", + "reverse-cowgirl back-facing wording", + "pure front-view wording", + "tight crop that loses partner placement" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "cowgirl front three-quarter normal camera view", + "woman on top seen from a front-offset angle", + "body depth remains visible", + "partner placement readable beneath her" + ], + "blocked_prompt_cues": [], + "prompt_text": "cowgirl front three-quarter normal camera view. woman on top seen from a front-offset angle. body depth remains visible. partner placement readable beneath her.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 14, + "variant_key": "normal_cowgirl_back_three_quarter", + "family": "cowgirl", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "cowgirl - back view - 3-4 angle" + ], + "reference_images": [ + "cowgirl - back view - 3-4 angle/0002.jpg", + "cowgirl - back view - 3-4 angle/0003_4.jpg", + "cowgirl - back view - 3-4 angle/0006.jpg", + "cowgirl - back view - 3-4 angle/0008_2.jpg", + "cowgirl - back view - 3-4 angle/16.jpg", + "cowgirl - back view - 3-4 angle/22.jpg", + "cowgirl - back view - 3-4 angle/41.jpg", + "cowgirl - back view - 3-4 angle/82.jpg", + "cowgirl - back view - 3-4 angle/90.jpg", + "cowgirl - back view - 3-4 angle/145.jpg", + "cowgirl - back view - 3-4 angle/160.jpg", + "cowgirl - back view - 3-4 angle/172.jpg", + "cowgirl - back view - 3-4 angle/225.jpg", + "cowgirl - back view - 3-4 angle/241_2.jpg", + "cowgirl - back view - 3-4 angle/248.jpg" + ], + "canonical_geometry": "Rear three-quarter cowgirl view: camera sits behind or behind-offset from the woman on top, with her back, hips, and legs closest while the reclined partner remains visible beneath or ahead of her.", + "source_prompt_cues": [ + "rear three-quarter cowgirl normal camera view", + "woman on top seen from behind", + "back and hips closest to camera", + "reclined partner still visible beneath her" + ], + "review_only_avoid_cues": [ + "front-facing cowgirl wording", + "pure side profile wording", + "POV foreground body cues" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "rear three-quarter cowgirl normal camera view", + "woman on top seen from behind", + "back and hips closest to camera", + "reclined partner still visible beneath her" + ], + "blocked_prompt_cues": [], + "prompt_text": "rear three-quarter cowgirl normal camera view. woman on top seen from behind. back and hips closest to camera. reclined partner still visible beneath her.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 15, + "variant_key": "normal_reverse_cowgirl_back_view", + "family": "reverse_cowgirl", + "camera_view": "back_view", + "atlas_folders": [ + "reverse cowgirl - back view" + ], + "reference_images": [ + "reverse cowgirl - back view/267.jpg", + "reverse cowgirl - back view/64.jpg", + "reverse cowgirl - back view/80.jpg" + ], + "canonical_geometry": "Reverse-cowgirl rear normal-camera view where the woman faces away and the back-facing orientation dominates.", + "source_prompt_cues": [ + "reverse cowgirl rear normal camera view", + "woman faces away from camera", + "back and hips dominate the frame", + "partner visible below her in third person" + ], + "review_only_avoid_cues": [ + "POV reverse-cowgirl wording", + "front-facing cowgirl wording", + "rear three-quarter wording unless selected sample supports it", + "losing the back-facing orientation" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reverse cowgirl rear normal camera view", + "woman faces away from camera", + "back and hips dominate the frame", + "partner visible below her in third person" + ], + "blocked_prompt_cues": [], + "prompt_text": "reverse cowgirl rear normal camera view. woman faces away from camera. back and hips dominate the frame. partner visible below her in third person.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 16, + "variant_key": "normal_reverse_cowgirl_back_three_quarter", + "family": "reverse_cowgirl", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "reverse cowgirl - backview - 3-4 angle" + ], + "reference_images": [ + "reverse cowgirl - backview - 3-4 angle/207.jpg", + "reverse cowgirl - backview - 3-4 angle/280_2.jpg", + "reverse cowgirl - backview - 3-4 angle/99.jpg" + ], + "canonical_geometry": "Reverse-cowgirl rear three-quarter normal-camera view from an offset back camera.", + "source_prompt_cues": [ + "reverse cowgirl rear three-quarter normal camera view", + "woman faces away from camera", + "camera offset behind her", + "partner visible below in third person" + ], + "review_only_avoid_cues": [ + "POV reverse-cowgirl wording", + "front-facing cowgirl wording", + "pure back-view wording", + "losing the back-facing orientation" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reverse cowgirl rear three-quarter normal camera view", + "woman faces away from camera", + "camera offset behind her", + "partner visible below in third person" + ], + "blocked_prompt_cues": [], + "prompt_text": "reverse cowgirl rear three-quarter normal camera view. woman faces away from camera. camera offset behind her. partner visible below in third person.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 17, + "variant_key": "normal_reverse_cowgirl_side_profile", + "family": "reverse_cowgirl", + "camera_view": "side_view", + "atlas_folders": [ + "reverse cowgirl - side view" + ], + "reference_images": [ + "reverse cowgirl - side view/0004.jpg", + "reverse cowgirl - side view/596.jpg", + "reverse cowgirl - side view/606_3.jpg" + ], + "canonical_geometry": "Side-profile reverse cowgirl view: woman is on top facing away from the partner, both bodies are seen laterally, and the back-facing orientation stays readable through hip, back, and leg placement.", + "source_prompt_cues": [ + "reverse cowgirl side-profile normal camera view", + "woman on top facing away", + "lateral body axis across frame", + "back-facing orientation visible from the side" + ], + "review_only_avoid_cues": [ + "front-facing cowgirl wording", + "POV wording", + "overhead camera wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reverse cowgirl side-profile normal camera view", + "woman on top facing away", + "lateral body axis across frame", + "back-facing orientation visible from the side" + ], + "blocked_prompt_cues": [], + "prompt_text": "reverse cowgirl side-profile normal camera view. woman on top facing away. lateral body axis across frame. back-facing orientation visible from the side.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 18, + "variant_key": "normal_reverse_cowgirl_front_view", + "family": "reverse_cowgirl", + "camera_view": "front_view", + "atlas_folders": [ + "reverse cowgirl" + ], + "reference_images": [ + "reverse cowgirl/0001.jpg", + "reverse cowgirl/0004.jpg", + "reverse cowgirl/0005_4.jpg", + "reverse cowgirl/0014.jpg", + "reverse cowgirl/79.jpg", + "reverse cowgirl/82.jpg", + "reverse cowgirl/145.jpg", + "reverse cowgirl/260.jpg", + "reverse cowgirl/288.jpg", + "reverse cowgirl/319.jpg", + "reverse cowgirl/527.jpg", + "reverse cowgirl/608.jpg" + ], + "canonical_geometry": "Reviewed reverse-cowgirl front-view normal-camera subset from the large mixed source pool: the woman is on top facing the camera, the contact plane reads frontally, and the reclined partner remains visible below her in third person.", + "source_prompt_cues": [ + "reviewed reverse cowgirl front-view normal camera", + "woman on top faces the camera", + "front contact plane centered between her legs", + "reclined partner visible below her in third person" + ], + "review_only_avoid_cues": [ + "POV reverse-cowgirl wording", + "rear or back-view reverse-cowgirl wording", + "side-profile reverse-cowgirl wording", + "overhead camera wording", + "using the full mixed folder as one route" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed reverse cowgirl front-view normal camera", + "woman on top faces the camera", + "front contact plane centered between her legs", + "reclined partner visible below her in third person" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed reverse cowgirl front-view normal camera. woman on top faces the camera. front contact plane centered between her legs. reclined partner visible below her in third person.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 19, + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "family": "reverse_cowgirl", + "camera_view": "front_three_quarter", + "atlas_folders": [ + "reverse cowgirl" + ], + "reference_images": [ + "reverse cowgirl/153.jpg", + "reverse cowgirl/153_2.jpg", + "reverse cowgirl/239_2.jpg", + "reverse cowgirl/239_3.jpg", + "reverse cowgirl/241.jpg", + "reverse cowgirl/241_2.jpg", + "reverse cowgirl/241_3.jpg", + "reverse cowgirl/257.jpg", + "reverse cowgirl/287.jpg", + "reverse cowgirl/323_2.jpg", + "reverse cowgirl/609.jpg", + "reverse cowgirl/609_2.jpg" + ], + "canonical_geometry": "Reviewed reverse-cowgirl front three-quarter normal-camera subset from the large mixed source pool: the woman is on top turned partly toward the camera, the contact plane reads from a front-offset angle, and the reclined partner remains visible below or behind her in third person.", + "source_prompt_cues": [ + "reviewed reverse cowgirl front three-quarter normal camera", + "woman on top turns partly toward the camera", + "front-offset contact plane remains readable", + "reclined partner visible below her from a three-quarter angle" + ], + "review_only_avoid_cues": [ + "POV reverse-cowgirl wording", + "pure front-view reverse-cowgirl wording", + "rear or side-profile reverse-cowgirl wording", + "overhead camera wording", + "using the full mixed folder as one route" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed reverse cowgirl front three-quarter normal camera", + "woman on top turns partly toward the camera", + "front-offset contact plane remains readable", + "reclined partner visible below her from a three-quarter angle" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed reverse cowgirl front three-quarter normal camera. woman on top turns partly toward the camera. front-offset contact plane remains readable. reclined partner visible below her from a three-quarter angle.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 20, + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "family": "reverse_cowgirl", + "camera_view": "front_view", + "atlas_folders": [ + "reverse cowgirl" + ], + "reference_images": [ + "reverse cowgirl/0009.jpg", + "reverse cowgirl/0009_2.jpg", + "reverse cowgirl/0009_3.jpg", + "reverse cowgirl/0015.jpg", + "reverse cowgirl/0015_2.jpg", + "reverse cowgirl/0016_2.jpg", + "reverse cowgirl/170.jpg", + "reverse cowgirl/261.jpg", + "reverse cowgirl/332.jpg", + "reverse cowgirl/332_2.jpg", + "reverse cowgirl/551.jpg", + "reverse cowgirl/618.jpg" + ], + "canonical_geometry": "Reviewed reverse-cowgirl low-close front-view normal-camera subset from the large mixed source pool: the woman is on top facing the camera, the foreground contact plane dominates the lower frame, and the subject remains visible above it in third-person framing.", + "source_prompt_cues": [ + "reviewed reverse cowgirl low-close front-view normal camera", + "woman on top faces the camera", + "foreground contact plane dominates the lower frame", + "subject remains visible above the foreground plane" + ], + "review_only_avoid_cues": [ + "POV reverse-cowgirl wording", + "wider room-context front-view wording", + "front three-quarter reverse-cowgirl wording", + "rear or side-profile reverse-cowgirl wording", + "using the full mixed folder as one route" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed reverse cowgirl low-close front-view normal camera", + "woman on top faces the camera", + "foreground contact plane dominates the lower frame", + "subject remains visible above the foreground plane" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed reverse cowgirl low-close front-view normal camera. woman on top faces the camera. foreground contact plane dominates the lower frame. subject remains visible above the foreground plane.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 21, + "variant_key": "normal_reverse_congress_front_view", + "family": "reverse_congress", + "camera_view": "front_view", + "atlas_folders": [ + "reverse congress - front view" + ], + "reference_images": [ + "reverse congress - front view/0012.jpg", + "reverse congress - front view/0012_2.jpg", + "reverse congress - front view/0013.jpg", + "reverse congress - front view/61.jpg", + "reverse congress - front view/105.jpg", + "reverse congress - front view/105_2.jpg", + "reverse congress - front view/122.jpg", + "reverse congress - front view/183.jpg", + "reverse congress - front view/189.jpg", + "reverse congress - front view/289.jpg", + "reverse congress - front view/289_2.jpg", + "reverse congress - front view/291.jpg", + "reverse congress - front view/542.jpg", + "reverse congress - front view/542_2.jpg", + "reverse congress - front view/563_2.jpg" + ], + "canonical_geometry": "Front-facing reverse-congress normal camera: the seated or folded position faces camera, with both bodies stacked or framed vertically and the contact plane visible from the front.", + "source_prompt_cues": [ + "reverse-congress front normal camera view", + "stacked bodies face the camera", + "folded seated geometry readable", + "contact plane visible from the front" + ], + "review_only_avoid_cues": [ + "POV wording", + "side-profile wording", + "generic sitting pose without stacked-body geometry" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reverse-congress front normal camera view", + "stacked bodies face the camera", + "folded seated geometry readable", + "contact plane visible from the front" + ], + "blocked_prompt_cues": [], + "prompt_text": "reverse-congress front normal camera view. stacked bodies face the camera. folded seated geometry readable. contact plane visible from the front.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 22, + "variant_key": "normal_missionary_side_profile", + "family": "missionary", + "camera_view": "side_view", + "atlas_folders": [ + "missionary - side view" + ], + "reference_images": [ + "missionary - side view/0003.jpg", + "missionary - side view/0013.jpg", + "missionary - side view/0014.jpg", + "missionary - side view/509.jpg", + "missionary - side view/521.jpg", + "missionary - side view/533.jpg", + "missionary - side view/534.jpg", + "missionary - side view/593.jpg", + "missionary - side view/596.jpg", + "missionary - side view/596_2.jpg", + "missionary - side view/602.jpg", + "missionary - side view/613.jpg", + "missionary - side view/627.jpg" + ], + "canonical_geometry": "Reviewed image-selected missionary side-profile normal-camera view with stacked body geometry readable from the side.", + "source_prompt_cues": [ + "reviewed missionary side-profile normal camera view", + "reclined partner beneath", + "top partner above in profile", + "stacked body line visible from the side" + ], + "review_only_avoid_cues": [ + "front-facing bed portrait wording", + "overhead wording", + "POV body foreground cues", + "mating-press wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed missionary side-profile normal camera view", + "reclined partner beneath", + "top partner above in profile", + "stacked body line visible from the side" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed missionary side-profile normal camera view. reclined partner beneath. top partner above in profile. stacked body line visible from the side.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 23, + "variant_key": "normal_missionary_side_profile_full_visibility", + "family": "missionary", + "camera_view": "side_view", + "atlas_folders": [ + "missionary - side view - full penis" + ], + "reference_images": [ + "missionary - side view - full penis/0002.jpg", + "missionary - side view - full penis/0002_2.jpg", + "missionary - side view - full penis/0021.jpg", + "missionary - side view - full penis/550.jpg", + "missionary - side view - full penis/69_2.jpg", + "missionary - side view - full penis/74.jpg", + "missionary - side view - full penis/97.jpg" + ], + "canonical_geometry": "Reviewed image-selected missionary side-profile normal-camera view emphasizing unobscured side contact visibility.", + "source_prompt_cues": [ + "reviewed missionary side-profile normal camera view with full contact visibility", + "reclined partner beneath", + "top partner above in profile", + "side contact line unobscured" + ], + "review_only_avoid_cues": [ + "front-facing bed portrait wording", + "overhead wording", + "POV body foreground cues", + "mating-press wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed missionary side-profile normal camera view with full contact visibility", + "reclined partner beneath", + "top partner above in profile", + "side contact line unobscured" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed missionary side-profile normal camera view with full contact visibility. reclined partner beneath. top partner above in profile. side contact line unobscured.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 24, + "variant_key": "normal_missionary_front_view", + "family": "missionary", + "camera_view": "front_view", + "atlas_folders": [ + "missionary - front view" + ], + "reference_images": [ + "missionary - front view/0011.jpg", + "missionary - front view/567.jpg", + "missionary - front view/72.jpg" + ], + "canonical_geometry": "Missionary front normal-camera view where the reclined partner faces the camera and the top partner remains visible.", + "source_prompt_cues": [ + "missionary front normal camera view", + "reclined partner faces the camera", + "top partner visible above or between the legs", + "front contact plane readable" + ], + "review_only_avoid_cues": [ + "POV missionary wording", + "pure side-profile wording", + "front three-quarter wording unless selected sample supports it", + "cropping away the top partner" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "missionary front normal camera view", + "reclined partner faces the camera", + "front contact plane readable" + ], + "blocked_prompt_cues": [ + { + "cue": "top partner visible above or between the legs", + "issues": [ + "option_word" + ] + } + ], + "prompt_text": "missionary front normal camera view. reclined partner faces the camera. front contact plane readable.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 25, + "variant_key": "normal_anal_random_front_view", + "family": "anal", + "camera_view": "front_view", + "atlas_folders": [ + "anal random" + ], + "reference_images": [ + "anal random/0005.jpg", + "anal random/0006.jpg", + "anal random/0015.jpg", + "anal random/160_3.jpg", + "anal random/188.jpg", + "anal random/347_3.jpg", + "anal random/347_10.jpg", + "anal random/347_11.jpg", + "anal random/366.jpg", + "anal random/366_3.jpg", + "anal random/366_4.jpg" + ], + "canonical_geometry": "Reviewed anal front-view normal-camera subset from the large mixed source pool: the main subject faces the camera, the contact plane reads frontally, and partner context remains visible in third person.", + "source_prompt_cues": [ + "reviewed anal front-view normal camera", + "main subject faces the camera", + "front contact plane centered", + "partner context visible in third person" + ], + "review_only_avoid_cues": [ + "POV anal wording", + "side-profile anal wording", + "rear-view anal wording", + "overhead camera wording", + "using the full mixed folder as one route" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed anal front-view normal camera", + "main subject faces the camera", + "front contact plane centered", + "partner context visible in third person" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed anal front-view normal camera. main subject faces the camera. front contact plane centered. partner context visible in third person.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 26, + "variant_key": "normal_anal_random_back_side_offset_view", + "family": "anal", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "anal random" + ], + "reference_images": [ + "anal random/0003.jpg", + "anal random/0003_3.jpg", + "anal random/0010.jpg", + "anal random/0013.jpg", + "anal random/119.jpg", + "anal random/119_2.jpg", + "anal random/119_3.jpg", + "anal random/124_2.jpg", + "anal random/124_8.jpg", + "anal random/347_4.jpg", + "anal random/347_5.jpg", + "anal random/347_8.jpg" + ], + "canonical_geometry": "Reviewed anal rear/side-offset normal-camera subset from the large mixed source pool: the main body turns partly away from the camera, the rear-side contact plane remains readable, and partner context stays visible in third person.", + "source_prompt_cues": [ + "reviewed anal rear side-offset normal camera", + "main body turns partly away from the camera", + "rear-side contact plane remains readable", + "partner context visible in third person" + ], + "review_only_avoid_cues": [ + "POV anal wording", + "straight front-view anal wording", + "standing anal wording", + "overhead camera wording", + "using the full mixed folder as one route" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed anal rear side-offset normal camera", + "main body turns partly away from the camera", + "rear-side contact plane remains readable", + "partner context visible in third person" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed anal rear side-offset normal camera. main body turns partly away from the camera. rear-side contact plane remains readable. partner context visible in third person.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 27, + "variant_key": "normal_blowjob_laying_front_view", + "family": "blowjob", + "camera_view": "front_view", + "atlas_folders": [ + "blowjob - laying - front view" + ], + "reference_images": [ + "blowjob - laying - front view/0001.jpg", + "blowjob - laying - front view/0003.jpg", + "blowjob - laying - front view/0004.jpg", + "blowjob - laying - front view/0010.jpg", + "blowjob - laying - front view/0010_2.jpg", + "blowjob - laying - front view/0018.jpg", + "blowjob - laying - front view/48.jpg", + "blowjob - laying - front view/69.jpg", + "blowjob - laying - front view/91.jpg", + "blowjob - laying - front view/94.jpg", + "blowjob - laying - front view/122.jpg", + "blowjob - laying - front view/171.jpg", + "blowjob - laying - front view/184.jpg", + "blowjob - laying - front view/274.jpg", + "blowjob - laying - front view/512.jpg" + ], + "canonical_geometry": "Front-facing laying blowjob normal camera: the receiving partner reclines or is partly visible while the performing partner lies or leans forward facing camera, with face, mouth contact, and body line visible from the front.", + "source_prompt_cues": [ + "front-facing normal camera blowjob view", + "performing partner faces camera", + "mouth contact visible from the front", + "reclined partner placement readable" + ], + "review_only_avoid_cues": [ + "POV oral framing", + "side-profile wording", + "cropping the performer face out" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "front-facing normal camera blowjob view", + "performing partner faces camera", + "mouth contact visible from the front", + "reclined partner placement readable" + ], + "blocked_prompt_cues": [], + "prompt_text": "front-facing normal camera blowjob view. performing partner faces camera. mouth contact visible from the front. reclined partner placement readable.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 28, + "variant_key": "normal_blowjob_sitting_front_view", + "family": "blowjob", + "camera_view": "front_view", + "atlas_folders": [ + "blowjob - sitting - frontview" + ], + "reference_images": [ + "blowjob - sitting - frontview/0003.jpg", + "blowjob - sitting - frontview/37.jpg", + "blowjob - sitting - frontview/81.jpg" + ], + "canonical_geometry": "Front-facing seated-context blowjob normal camera: the performing partner is upright, kneeling, or leaning near a seated/reclined partner, with face, mouth contact, and partner placement readable from the front.", + "source_prompt_cues": [ + "seated-context blowjob front normal camera view", + "performing partner faces camera or near camera", + "mouth contact centered", + "receiving partner remains third-person visible" + ], + "review_only_avoid_cues": [ + "POV oral wording", + "low-angle underside framing", + "side-profile-only wording" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "seated-context blowjob front normal camera view", + "mouth contact centered", + "receiving partner remains third-person visible" + ], + "blocked_prompt_cues": [ + { + "cue": "performing partner faces camera or near camera", + "issues": [ + "option_word" + ] + } + ], + "prompt_text": "seated-context blowjob front normal camera view. mouth contact centered. receiving partner remains third-person visible.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 29, + "variant_key": "normal_blowjob_laying_side_profile", + "family": "blowjob", + "camera_view": "side_view", + "atlas_folders": [ + "blowjob - laying - side view" + ], + "reference_images": [ + "blowjob - laying - side view/0013.jpg", + "blowjob - laying - side view/119.jpg", + "blowjob - laying - side view/209.jpg", + "blowjob - laying - side view/232.jpg", + "blowjob - laying - side view/244.jpg", + "blowjob - laying - side view/255.jpg", + "blowjob - laying - side view/333.jpg", + "blowjob - laying - side view/36.jpg", + "blowjob - laying - side view/364.jpg", + "blowjob - laying - side view/375.jpg", + "blowjob - laying - side view/62.jpg", + "blowjob - laying - side view/74.jpg", + "blowjob - laying - side view/85.jpg" + ], + "canonical_geometry": "Reviewed image-selected laying blowjob side-profile normal-camera view: the performer leans or lies laterally, the contact line reads from the side, and the receiving partner remains third-person visible without POV foreground framing.", + "source_prompt_cues": [ + "reviewed laying blowjob side-profile normal camera view", + "performer head and torso seen from the side", + "contact line visible laterally", + "receiving partner placement readable without POV" + ], + "review_only_avoid_cues": [ + "front-facing oral portrait wording", + "sitting or kneeling posture wording", + "POV viewer-thigh foreground cues", + "overhead oral wording" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "reviewed laying blowjob side-profile normal camera view", + "performer head and torso seen from the side", + "contact line visible laterally" + ], + "blocked_prompt_cues": [ + { + "cue": "receiving partner placement readable without POV", + "issues": [ + "negative_word" + ] + } + ], + "prompt_text": "reviewed laying blowjob side-profile normal camera view. performer head and torso seen from the side. contact line visible laterally.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 30, + "variant_key": "normal_blowjob_sitting_side_profile", + "family": "blowjob", + "camera_view": "side_view", + "atlas_folders": [ + "blowjob - sitting - side view" + ], + "reference_images": [ + "blowjob - sitting - side view/0002.jpg", + "blowjob - sitting - side view/241.jpg", + "blowjob - sitting - side view/64.jpg" + ], + "canonical_geometry": "Sitting oral-contact side-profile normal-camera view.", + "source_prompt_cues": [ + "sitting side-profile normal camera oral view", + "performer head and torso seen from the side", + "contact line visible laterally", + "seated posture readable" + ], + "review_only_avoid_cues": [ + "front-facing oral portrait wording", + "laying or kneeling posture wording", + "POV viewer-thigh foreground cues", + "overhead oral wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "sitting side-profile normal camera oral view", + "performer head and torso seen from the side", + "contact line visible laterally", + "seated posture readable" + ], + "blocked_prompt_cues": [], + "prompt_text": "sitting side-profile normal camera oral view. performer head and torso seen from the side. contact line visible laterally. seated posture readable.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 31, + "variant_key": "normal_ballsucking_standing_low_side_view", + "family": "ballsucking", + "camera_view": "side_view", + "atlas_folders": [ + "ballsucking - standing" + ], + "reference_images": [ + "ballsucking - standing/0014.jpg", + "ballsucking - standing/130.jpg", + "ballsucking - standing/137.jpg", + "ballsucking - standing/207.jpg", + "ballsucking - standing/222.jpg", + "ballsucking - standing/252.jpg", + "ballsucking - standing/333.jpg", + "ballsucking - standing/34.jpg", + "ballsucking - standing/540.jpg", + "ballsucking - standing/589.jpg", + "ballsucking - standing/624.jpg" + ], + "canonical_geometry": "Selected standing-partner low side or near-side normal-camera view where the receiving partner stands, the performer stays low beside or in front of the standing body, and the contact plane remains readable in third-person framing.", + "source_prompt_cues": [ + "standing-partner low side normal camera view", + "performer stays low beside the standing partner", + "standing partner remains visible above the contact plane", + "third-person side or near-side framing keeps the bodies readable" + ], + "review_only_avoid_cues": [ + "POV oral wording", + "laying posture wording", + "water-close crop", + "using the full mixed folder as one preset" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "standing-partner low side normal camera view", + "performer stays low beside the standing partner", + "standing partner remains visible above the contact plane" + ], + "blocked_prompt_cues": [ + { + "cue": "third-person side or near-side framing keeps the bodies readable", + "issues": [ + "option_word" + ] + } + ], + "prompt_text": "standing-partner low side normal camera view. performer stays low beside the standing partner. standing partner remains visible above the contact plane.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 32, + "variant_key": "normal_boobjob_front_close_view", + "family": "boobjob", + "camera_view": "front_view", + "atlas_folders": [ + "boobjob" + ], + "reference_images": [ + "boobjob/0017.jpg", + "boobjob/0018_2.jpg", + "boobjob/141.jpg", + "boobjob/186.jpg", + "boobjob/218.jpg", + "boobjob/259.jpg", + "boobjob/327.jpg", + "boobjob/588.jpg", + "boobjob/592.jpg", + "boobjob/598.jpg", + "boobjob/615.jpg", + "boobjob/618.jpg" + ], + "canonical_geometry": "Selected front-close boobjob normal-camera view where the performer faces camera or near-camera, upper body and face remain readable, and the contact action stays centered without becoming POV.", + "source_prompt_cues": [ + "boobjob front-close normal camera view", + "front-facing upper body and face remain readable", + "breast-contact action stays centered in the frame", + "third-person close camera without POV wording" + ], + "review_only_avoid_cues": [ + "POV foreground body cues", + "side-profile boobjob wording", + "standing-only framing", + "using the full mixed folder as one locked camera preset" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "boobjob front-close normal camera view", + "front-facing upper body and face remain readable", + "breast-contact action stays centered in the frame" + ], + "blocked_prompt_cues": [ + { + "cue": "third-person close camera without POV wording", + "issues": [ + "negative_word" + ] + } + ], + "prompt_text": "boobjob front-close normal camera view. front-facing upper body and face remain readable. breast-contact action stays centered in the frame.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 33, + "variant_key": "normal_breast_contact_front_view", + "family": "breast_contact", + "camera_view": "front_view", + "atlas_folders": [ + "breast - touching - front view" + ], + "reference_images": [ + "breast - touching - front view/0006.jpg", + "breast - touching - front view/0006_2.jpg", + "breast - touching - front view/12.jpg", + "breast - touching - front view/0014.jpg", + "breast - touching - front view/0015.jpg", + "breast - touching - front view/16.jpg", + "breast - touching - front view/56.jpg", + "breast - touching - front view/72.jpg", + "breast - touching - front view/183.jpg", + "breast - touching - front view/220.jpg", + "breast - touching - front view/246.jpg", + "breast - touching - front view/248.jpg", + "breast - touching - front view/281.jpg", + "breast - touching - front view/348.jpg", + "breast - touching - front view/361.jpg" + ], + "canonical_geometry": "Front-facing breast-contact normal camera: torso and face/front body are oriented toward the camera while hands or partner contact remains readable on the front body plane.", + "source_prompt_cues": [ + "front-facing breast-contact normal camera view", + "front torso visible", + "hands or contact on the front body plane", + "face or upper body remains readable" + ], + "review_only_avoid_cues": [ + "side-profile wording", + "POV touch wording", + "cropping to only detail texture" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "front-facing breast-contact normal camera view", + "front torso visible" + ], + "blocked_prompt_cues": [ + { + "cue": "hands or contact on the front body plane", + "issues": [ + "option_word" + ] + }, + { + "cue": "face or upper body remains readable", + "issues": [ + "option_word" + ] + } + ], + "prompt_text": "front-facing breast-contact normal camera view. front torso visible.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 34, + "variant_key": "normal_breast_touching_side_view", + "family": "breast_contact", + "camera_view": "side_view", + "atlas_folders": [ + "breast - touching - side view" + ], + "reference_images": [ + "breast - touching - side view/0010.jpg", + "breast - touching - side view/364.jpg", + "breast - touching - side view/97.jpg" + ], + "canonical_geometry": "Side-profile breast-touching normal-camera view.", + "source_prompt_cues": [ + "side-profile breast-touching normal camera view", + "lateral torso plane visible", + "hand contact readable from the side", + "body axis runs across the frame" + ], + "review_only_avoid_cues": [ + "front-only body presentation", + "mouth-contact wording", + "POV touch language", + "overhead wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "side-profile breast-touching normal camera view", + "lateral torso plane visible", + "hand contact readable from the side", + "body axis runs across the frame" + ], + "blocked_prompt_cues": [], + "prompt_text": "side-profile breast-touching normal camera view. lateral torso plane visible. hand contact readable from the side. body axis runs across the frame.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 35, + "variant_key": "normal_breast_sucking_side_view", + "family": "breast_contact", + "camera_view": "side_view", + "atlas_folders": [ + "breast sucking - side view" + ], + "reference_images": [ + "breast sucking - side view/0003.jpg", + "breast sucking - side view/0005.jpg", + "breast sucking - side view/0007.jpg", + "breast sucking - side view/0009.jpg", + "breast sucking - side view/0010_2.jpg", + "breast sucking - side view/182.jpg", + "breast sucking - side view/186.jpg", + "breast sucking - side view/218.jpg", + "breast sucking - side view/234.jpg", + "breast sucking - side view/244.jpg", + "breast sucking - side view/257.jpg", + "breast sucking - side view/267.jpg", + "breast sucking - side view/269.jpg", + "breast sucking - side view/356.jpg", + "breast sucking - side view/99.jpg" + ], + "canonical_geometry": "Side-profile breast mouth-contact normal-camera view.", + "source_prompt_cues": [ + "side-profile breast mouth-contact normal camera view", + "lateral torso plane visible", + "mouth contact readable from the side", + "body axis runs across the frame" + ], + "review_only_avoid_cues": [ + "front-only body presentation", + "hand-touch-only wording", + "POV touch language", + "overhead wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "side-profile breast mouth-contact normal camera view", + "lateral torso plane visible", + "mouth contact readable from the side", + "body axis runs across the frame" + ], + "blocked_prompt_cues": [], + "prompt_text": "side-profile breast mouth-contact normal camera view. lateral torso plane visible. mouth contact readable from the side. body axis runs across the frame.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 36, + "variant_key": "normal_sixty_nine_front_close_view", + "family": "oral_other", + "camera_view": "front_view", + "atlas_folders": [ + "69" + ], + "reference_images": [ + "69/0002.jpg", + "69/0008.jpg", + "69/0016.jpg", + "69/19.jpg", + "69/166.jpg", + "69/292.jpg", + "69/624.jpg" + ], + "canonical_geometry": "Selected sixty-nine front-close normal-camera view where the upper subject faces camera, opposed oral-contact pose stays centered, and both bodies remain readable in close third-person framing.", + "source_prompt_cues": [ + "sixty-nine front-close normal camera view", + "upper subject faces the camera", + "opposed oral-contact pose stays centered", + "third-person close framing keeps both bodies readable" + ], + "review_only_avoid_cues": [ + "POV viewer-mouth framing", + "wide room-context layout", + "upright seated straddle framing", + "side-downward camera wording", + "using the full mixed folder as one preset" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "sixty-nine front-close normal camera view", + "upper subject faces the camera", + "opposed oral-contact pose stays centered", + "third-person close framing keeps both bodies readable" + ], + "blocked_prompt_cues": [], + "prompt_text": "sixty-nine front-close normal camera view. upper subject faces the camera. opposed oral-contact pose stays centered. third-person close framing keeps both bodies readable.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 37, + "variant_key": "normal_fingering_reclined_front_view", + "family": "manual_or_toy", + "camera_view": "front_view", + "atlas_folders": [ + "fingering" + ], + "reference_images": [ + "fingering/0004.jpg", + "fingering/0006.jpg", + "fingering/0013.jpg", + "fingering/0015.jpg", + "fingering/39.jpg", + "fingering/50.jpg", + "fingering/132.jpg", + "fingering/133.jpg", + "fingering/279.jpg", + "fingering/603.jpg" + ], + "canonical_geometry": "Selected reclined manual-contact front normal-camera view where the subject is reclined, faces the camera, the open-thigh contact plane stays centered, and face or upper body remains readable in third-person framing.", + "source_prompt_cues": [ + "manual-contact reclined front normal camera view", + "reclined subject faces the camera", + "open-thigh contact plane centered in frame", + "face and upper body remain readable behind the contact plane" + ], + "review_only_avoid_cues": [ + "POV foreground-hand framing", + "upright chair-only framing", + "side-profile manual-contact wording", + "oral-contact primary-action wording", + "using the full mixed folder as one preset" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "manual-contact reclined front normal camera view", + "reclined subject faces the camera", + "open-thigh contact plane centered in frame", + "face and upper body remain readable behind the contact plane" + ], + "blocked_prompt_cues": [], + "prompt_text": "manual-contact reclined front normal camera view. reclined subject faces the camera. open-thigh contact plane centered in frame. face and upper body remain readable behind the contact plane.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 38, + "variant_key": "normal_wand_front_close_view", + "family": "manual_or_toy", + "camera_view": "front_view", + "atlas_folders": [ + "wand" + ], + "reference_images": [ + "wand/0005.jpg", + "wand/0015.jpg", + "wand/217.jpg", + "wand/532.jpg", + "wand/561.jpg", + "wand/611.jpg", + "wand/75.jpg" + ], + "canonical_geometry": "Selected wand front-close normal-camera view where the subject faces camera or near-camera, the open-thigh tool-contact plane is centered, and the wand remains readable as one continuous object in third-person framing.", + "source_prompt_cues": [ + "wand front-close normal camera view", + "subject faces camera or near camera", + "open-thigh tool-contact plane centered in frame", + "single continuous wand remains readable" + ], + "review_only_avoid_cues": [ + "POV foreground-tool wording", + "side portrait-only crop", + "wide posture-variable framing", + "split-device wording", + "using the full mixed folder as one preset" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "wand front-close normal camera view", + "open-thigh tool-contact plane centered in frame", + "single continuous wand remains readable" + ], + "blocked_prompt_cues": [ + { + "cue": "subject faces camera or near camera", + "issues": [ + "option_word" + ] + } + ], + "prompt_text": "wand front-close normal camera view. open-thigh tool-contact plane centered in frame. single continuous wand remains readable.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 39, + "variant_key": "normal_handjob_standing_side_profile", + "family": "manual_or_toy", + "camera_view": "side_view", + "atlas_folders": [ + "handjob standing - side view" + ], + "reference_images": [ + "handjob standing - side view/16.jpg", + "handjob standing - side view/105.jpg", + "handjob standing - side view/171.jpg", + "handjob standing - side view/174.jpg", + "handjob standing - side view/175.jpg", + "handjob standing - side view/305.jpg", + "handjob standing - side view/549.jpg" + ], + "canonical_geometry": "Reviewed image-selected standing manual-contact side-profile normal-camera view: both participants remain upright or near-upright, the contact line reads laterally, and the framing stays third-person rather than POV.", + "source_prompt_cues": [ + "reviewed standing manual-contact side-profile normal camera view", + "upright participants seen from the side", + "hand contact visible laterally", + "third-person standing posture readable" + ], + "review_only_avoid_cues": [ + "POV manual-contact wording", + "sitting, kneeling, or laying posture wording", + "front-facing portrait-only crop", + "overhead camera wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed standing manual-contact side-profile normal camera view", + "upright participants seen from the side", + "hand contact visible laterally", + "third-person standing posture readable" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed standing manual-contact side-profile normal camera view. upright participants seen from the side. hand contact visible laterally. third-person standing posture readable.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 40, + "variant_key": "normal_handjob_both_sitting_front_view", + "family": "manual_or_toy", + "camera_view": "front_view", + "atlas_folders": [ + "handjob - both sitting - front view" + ], + "reference_images": [ + "handjob - both sitting - front view/109.jpg", + "handjob - both sitting - front view/588.jpg", + "handjob - both sitting - front view/598.jpg" + ], + "canonical_geometry": "Both-sitting manual-contact front normal-camera view.", + "source_prompt_cues": [ + "both-sitting manual-contact front normal camera view", + "hand contact visible from the front", + "both participants readable", + "normal third-person camera" + ], + "review_only_avoid_cues": [ + "POV manual-contact wording", + "pure side-profile wording", + "laying posture wording", + "cropping away the performer" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "both-sitting manual-contact front normal camera view", + "hand contact visible from the front", + "both participants readable", + "normal third-person camera" + ], + "blocked_prompt_cues": [], + "prompt_text": "both-sitting manual-contact front normal camera view. hand contact visible from the front. both participants readable. normal third-person camera.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 41, + "variant_key": "normal_handjob_laying_front_three_quarter", + "family": "manual_or_toy", + "camera_view": "front_three_quarter", + "atlas_folders": [ + "handjob - laying - front view - 3-4 angle" + ], + "reference_images": [ + "handjob - laying - front view - 3-4 angle/39.jpg", + "handjob - laying - front view - 3-4 angle/41.jpg", + "handjob - laying - front view - 3-4 angle/91.jpg" + ], + "canonical_geometry": "Laying manual-contact front three-quarter normal-camera view.", + "source_prompt_cues": [ + "laying manual-contact front three-quarter normal camera view", + "hand contact visible from a front-offset camera", + "both participants readable", + "normal third-person camera" + ], + "review_only_avoid_cues": [ + "POV manual-contact wording", + "pure side-profile wording", + "both-sitting posture wording", + "pure front-view wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "laying manual-contact front three-quarter normal camera view", + "hand contact visible from a front-offset camera", + "both participants readable", + "normal third-person camera" + ], + "blocked_prompt_cues": [], + "prompt_text": "laying manual-contact front three-quarter normal camera view. hand contact visible from a front-offset camera. both participants readable. normal third-person camera.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 42, + "variant_key": "normal_pussy_licking_side_profile", + "family": "oral_other", + "camera_view": "side_view", + "atlas_folders": [ + "pussy licking - side view" + ], + "reference_images": [ + "pussy licking - side view/0003.jpg", + "pussy licking - side view/0006.jpg", + "pussy licking - side view/0010.jpg", + "pussy licking - side view/0013_2.jpg", + "pussy licking - side view/0015.jpg", + "pussy licking - side view/0015_2.jpg", + "pussy licking - side view/0016.jpg", + "pussy licking - side view/0016_2.jpg", + "pussy licking - side view/536.jpg", + "pussy licking - side view/537.jpg", + "pussy licking - side view/544.jpg", + "pussy licking - side view/560.jpg", + "pussy licking - side view/603.jpg", + "pussy licking - side view/609.jpg", + "pussy licking - side view/613.jpg" + ], + "canonical_geometry": "Reviewed image-selected side-profile oral-contact normal-camera view: the performer is seen laterally, the receiving partner hips and legs remain readable, and the contact line runs across the frame without POV foreground cues.", + "source_prompt_cues": [ + "reviewed side-profile oral-contact normal camera view", + "performer head seen from the side", + "receiving partner hips and legs visible laterally", + "contact line remains readable" + ], + "review_only_avoid_cues": [ + "POV oral wording", + "front-facing presentation wording as primary camera", + "standing posture wording", + "overhead view" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed side-profile oral-contact normal camera view", + "performer head seen from the side", + "receiving partner hips and legs visible laterally", + "contact line remains readable" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed side-profile oral-contact normal camera view. performer head seen from the side. receiving partner hips and legs visible laterally. contact line remains readable.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 43, + "variant_key": "normal_display_rear_body_view", + "family": "display", + "camera_view": "back_view", + "atlas_folders": [ + "woman solo showing her hass - back view" + ], + "reference_images": [ + "woman solo showing her hass - back view/0001_2.jpg", + "woman solo showing her hass - back view/0003.jpg", + "woman solo showing her hass - back view/0006_2.jpg", + "woman solo showing her hass - back view/0009.jpg", + "woman solo showing her hass - back view/0015.jpg", + "woman solo showing her hass - back view/0016_2.jpg", + "woman solo showing her hass - back view/112.jpg", + "woman solo showing her hass - back view/153.jpg", + "woman solo showing her hass - back view/157.jpg", + "woman solo showing her hass - back view/162_2.jpg", + "woman solo showing her hass - back view/169.jpg", + "woman solo showing her hass - back view/182_2.jpg", + "woman solo showing her hass - back view/232.jpg", + "woman solo showing her hass - back view/270.jpg", + "woman solo showing her hass - back view/322.jpg" + ], + "canonical_geometry": "Reviewed image-selected solo rear body-display normal-camera view: the subject is back-facing or rear three-quarter, rear body shape is the primary composition, and the camera remains third-person rather than POV.", + "source_prompt_cues": [ + "reviewed solo rear body-display normal camera view", + "subject faces away or turns back", + "rear body closest to camera", + "solo display composition" + ], + "review_only_avoid_cues": [ + "POV body inspection wording", + "front-facing portrait wording", + "partner-contact wording", + "mixed camera wording" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "reviewed solo rear body-display normal camera view", + "rear body closest to camera", + "solo display composition" + ], + "blocked_prompt_cues": [ + { + "cue": "subject faces away or turns back", + "issues": [ + "option_word" + ] + } + ], + "prompt_text": "reviewed solo rear body-display normal camera view. rear body closest to camera. solo display composition.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 44, + "variant_key": "normal_display_rear_body_standing_back_view", + "family": "display", + "camera_view": "back_view", + "atlas_folders": [ + "woman solo showing her hass - back view" + ], + "reference_images": [ + "woman solo showing her hass - back view/0002.jpg", + "woman solo showing her hass - back view/0006.jpg", + "woman solo showing her hass - back view/0006_3.jpg", + "woman solo showing her hass - back view/0007_2.jpg", + "woman solo showing her hass - back view/173.jpg", + "woman solo showing her hass - back view/197.jpg", + "woman solo showing her hass - back view/230.jpg", + "woman solo showing her hass - back view/235.jpg", + "woman solo showing her hass - back view/287.jpg", + "woman solo showing her hass - back view/293.jpg", + "woman solo showing her hass - back view/300.jpg", + "woman solo showing her hass - back view/321.jpg" + ], + "canonical_geometry": "Reviewed standing solo rear body-display normal-camera subset: the subject stands upright with back or rear three-quarter side toward camera, rear body remains the primary composition, and the full standing posture stays readable in third-person framing.", + "source_prompt_cues": [ + "reviewed standing rear body-display normal camera view", + "subject stands upright with back toward camera", + "rear body closest to camera", + "full standing solo display posture" + ], + "review_only_avoid_cues": [ + "POV body inspection wording", + "seated rear-display wording", + "kneeling rear-display wording", + "front-facing portrait wording", + "partner-contact wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed standing rear body-display normal camera view", + "subject stands upright with back toward camera", + "rear body closest to camera", + "full standing solo display posture" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed standing rear body-display normal camera view. subject stands upright with back toward camera. rear body closest to camera. full standing solo display posture.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 45, + "variant_key": "normal_display_front_open_leg_front_view", + "family": "display", + "camera_view": "front_view", + "atlas_folders": [ + "pussy spread" + ], + "reference_images": [ + "pussy spread/0002_3.jpg", + "pussy spread/0003_4.jpg", + "pussy spread/0012.jpg", + "pussy spread/0015.jpg", + "pussy spread/0017.jpg", + "pussy spread/80.jpg", + "pussy spread/130.jpg", + "pussy spread/153.jpg", + "pussy spread/296.jpg", + "pussy spread/297.jpg", + "pussy spread/328.jpg", + "pussy spread/367.jpg" + ], + "canonical_geometry": "Reviewed front open-leg display normal-camera subset from the mixed source pool: the subject faces the camera, the open-leg display reads frontally, and enough body or room context remains visible to separate it from tight low-close crops.", + "source_prompt_cues": [ + "reviewed open-leg display front-view normal camera", + "subject faces the camera", + "front display pose readable", + "body and room context remain visible" + ], + "review_only_avoid_cues": [ + "POV spread wording", + "tight low-close crop wording", + "side-offset display wording", + "using the full mixed folder as one route" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed open-leg display front-view normal camera", + "subject faces the camera", + "front display pose readable", + "body and room context remain visible" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed open-leg display front-view normal camera. subject faces the camera. front display pose readable. body and room context remain visible.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 46, + "variant_key": "normal_display_front_open_leg_low_close", + "family": "display", + "camera_view": "front_view", + "atlas_folders": [ + "pussy spread" + ], + "reference_images": [ + "pussy spread/1.jpg", + "pussy spread/1_2.jpg", + "pussy spread/0003.jpg", + "pussy spread/0003_2.jpg", + "pussy spread/0003_3.jpg", + "pussy spread/0010_2.jpg", + "pussy spread/0016.jpg", + "pussy spread/0016_2.jpg", + "pussy spread/41.jpg", + "pussy spread/201.jpg", + "pussy spread/217_2.jpg", + "pussy spread/223.jpg" + ], + "canonical_geometry": "Reviewed low-close front open-leg display normal-camera subset from the mixed source pool: the camera is front-facing and close enough that the foreground body plane dominates while the subject remains visible in normal third-person framing.", + "source_prompt_cues": [ + "reviewed low-close open-leg display front-view normal camera", + "front-facing close composition", + "foreground body plane dominates the frame", + "subject remains visible above the foreground plane" + ], + "review_only_avoid_cues": [ + "POV spread wording", + "wider room-context front-view wording", + "side-offset display wording", + "using the full mixed folder as one route" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed low-close open-leg display front-view normal camera", + "front-facing close composition", + "foreground body plane dominates the frame", + "subject remains visible above the foreground plane" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed low-close open-leg display front-view normal camera. front-facing close composition. foreground body plane dominates the frame. subject remains visible above the foreground plane.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 47, + "variant_key": "normal_display_front_open_leg_side_offset_view", + "family": "display", + "camera_view": "side_view", + "atlas_folders": [ + "pussy spread" + ], + "reference_images": [ + "pussy spread/0007.jpg", + "pussy spread/0008.jpg", + "pussy spread/73.jpg", + "pussy spread/121.jpg", + "pussy spread/134.jpg", + "pussy spread/154_3.jpg", + "pussy spread/163.jpg", + "pussy spread/175.jpg", + "pussy spread/256.jpg", + "pussy spread/308.jpg", + "pussy spread/311.jpg", + "pussy spread/368.jpg" + ], + "canonical_geometry": "Reviewed side-offset front open-leg display normal-camera subset from the mixed source pool: the subject sits or reclines at an oblique angle, the open-leg display reads from a lateral offset, and torso plus leg line angle across the frame in third-person composition.", + "source_prompt_cues": [ + "reviewed side-offset open-leg display normal camera", + "subject sits or reclines at an oblique angle", + "open-leg display reads from a lateral offset", + "torso and leg line angle across the frame" + ], + "review_only_avoid_cues": [ + "POV spread wording", + "straight front-view display wording", + "low-close foreground-dominant crop wording", + "using the full mixed folder as one route" + ], + "state": "needs_prompt_cleanup", + "positive_prompt_cues": [ + "reviewed side-offset open-leg display normal camera", + "open-leg display reads from a lateral offset", + "torso and leg line angle across the frame" + ], + "blocked_prompt_cues": [ + { + "cue": "subject sits or reclines at an oblique angle", + "issues": [ + "option_word" + ] + } + ], + "prompt_text": "reviewed side-offset open-leg display normal camera. open-leg display reads from a lateral offset. torso and leg line angle across the frame.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 48, + "variant_key": "normal_display_breasts_exposed_front_view", + "family": "display", + "camera_view": "front_view", + "atlas_folders": [ + "breasts exposed" + ], + "reference_images": [ + "breasts exposed/0001_3.jpg", + "breasts exposed/0006.jpg", + "breasts exposed/0008_2.jpg", + "breasts exposed/0011_2.jpg", + "breasts exposed/141.jpg", + "breasts exposed/181.jpg", + "breasts exposed/263.jpg", + "breasts exposed/302.jpg", + "breasts exposed/327.jpg", + "breasts exposed/346.jpg", + "breasts exposed/594_2.jpg", + "breasts exposed/624.jpg" + ], + "canonical_geometry": "Reviewed display front-view normal-camera subset from the broad breasts-exposed source pool: the subject faces the camera, the upper torso and full body remain readable, and the frame uses normal third-person display composition.", + "source_prompt_cues": [ + "reviewed torso-display front-view normal camera", + "subject faces the camera", + "upper torso and full body remain readable", + "camera-facing display posture" + ], + "review_only_avoid_cues": [ + "POV touch wording", + "side-offset display wording", + "tight upper-body crop wording", + "using the full mixed folder as one route" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed torso-display front-view normal camera", + "subject faces the camera", + "upper torso and full body remain readable", + "camera-facing display posture" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed torso-display front-view normal camera. subject faces the camera. upper torso and full body remain readable. camera-facing display posture.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 49, + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "family": "display", + "camera_view": "side_view", + "atlas_folders": [ + "breasts exposed" + ], + "reference_images": [ + "breasts exposed/83.jpg", + "breasts exposed/196.jpg", + "breasts exposed/235.jpg", + "breasts exposed/267.jpg", + "breasts exposed/271.jpg", + "breasts exposed/305.jpg", + "breasts exposed/353.jpg", + "breasts exposed/373.jpg", + "breasts exposed/590.jpg", + "breasts exposed/590_2.jpg" + ], + "canonical_geometry": "Reviewed display side-offset normal-camera subset from the broad breasts-exposed source pool: the subject turns laterally, the side torso outline is readable, and the frame remains normal third-person display composition.", + "source_prompt_cues": [ + "reviewed torso-display side-offset normal camera", + "body turned laterally", + "side torso outline readable", + "profile display pose" + ], + "review_only_avoid_cues": [ + "POV touch wording", + "pure camera-facing display wording", + "tight upper-body crop wording", + "using the full mixed folder as one route" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed torso-display side-offset normal camera", + "body turned laterally", + "side torso outline readable", + "profile display pose" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed torso-display side-offset normal camera. body turned laterally. side torso outline readable. profile display pose.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 50, + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "family": "display", + "camera_view": "front_view", + "atlas_folders": [ + "breasts exposed" + ], + "reference_images": [ + "breasts exposed/0002_2.jpg", + "breasts exposed/0003.jpg", + "breasts exposed/49.jpg", + "breasts exposed/138.jpg", + "breasts exposed/155.jpg", + "breasts exposed/169.jpg", + "breasts exposed/190.jpg", + "breasts exposed/230.jpg", + "breasts exposed/242.jpg", + "breasts exposed/302_2.jpg", + "breasts exposed/332.jpg", + "breasts exposed/368.jpg" + ], + "canonical_geometry": "Reviewed standing display front-view normal-camera subset from the broad breasts-exposed source pool: the subject stands upright facing the camera, the torso and legs remain readable, and the frame preserves normal third-person display composition.", + "source_prompt_cues": [ + "reviewed standing torso-display front-view normal camera", + "subject stands upright facing the camera", + "torso and legs remain readable", + "front-facing standing display posture" + ], + "review_only_avoid_cues": [ + "POV touch wording", + "seated or kneeling display wording", + "side-offset display wording", + "tight upper-body crop wording", + "using the full mixed folder as one route" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed standing torso-display front-view normal camera", + "subject stands upright facing the camera", + "torso and legs remain readable", + "front-facing standing display posture" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed standing torso-display front-view normal camera. subject stands upright facing the camera. torso and legs remain readable. front-facing standing display posture.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 51, + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "family": "display", + "camera_view": "front_view", + "atlas_folders": [ + "breasts exposed" + ], + "reference_images": [ + "breasts exposed/0001_2.jpg", + "breasts exposed/0007_2.jpg", + "breasts exposed/101_2.jpg", + "breasts exposed/154.jpg", + "breasts exposed/165.jpg", + "breasts exposed/173.jpg", + "breasts exposed/259.jpg", + "breasts exposed/285.jpg", + "breasts exposed/293.jpg", + "breasts exposed/322.jpg", + "breasts exposed/328.jpg", + "breasts exposed/523.jpg" + ], + "canonical_geometry": "Reviewed seated/kneeling display front-view normal-camera subset from the broad breasts-exposed source pool: the subject faces the camera from a seated or kneeling posture, the torso and lower-body placement remain readable, and the frame preserves normal third-person display composition.", + "source_prompt_cues": [ + "reviewed seated-kneeling torso-display front-view normal camera", + "subject faces the camera from a seated posture", + "kneeling posture remains readable", + "front-facing seated display posture" + ], + "review_only_avoid_cues": [ + "POV touch wording", + "standing display wording", + "side-offset display wording", + "tight upper-body crop wording", + "using the full mixed folder as one route" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed seated-kneeling torso-display front-view normal camera", + "subject faces the camera from a seated posture", + "kneeling posture remains readable", + "front-facing seated display posture" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed seated-kneeling torso-display front-view normal camera. subject faces the camera from a seated posture. kneeling posture remains readable. front-facing seated display posture.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 52, + "variant_key": "normal_standing_from_front_side_view", + "family": "standing_penetration", + "camera_view": "side_view", + "atlas_folders": [ + "fuck from front standing - side view" + ], + "reference_images": [ + "fuck from front standing - side view/0001.jpg", + "fuck from front standing - side view/252.jpg", + "fuck from front standing - side view/73.jpg" + ], + "canonical_geometry": "Standing from-front side-profile normal-camera view with the upright body line readable.", + "source_prompt_cues": [ + "standing from-front side-profile normal camera view", + "upright body line visible", + "camera beside the couple", + "standing posture readable" + ], + "review_only_avoid_cues": [ + "front-only portrait wording", + "POV wording", + "suspended posture wording", + "cropping out the full standing posture" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "standing from-front side-profile normal camera view", + "upright body line visible", + "camera beside the couple", + "standing posture readable" + ], + "blocked_prompt_cues": [], + "prompt_text": "standing from-front side-profile normal camera view. upright body line visible. camera beside the couple. standing posture readable.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 53, + "variant_key": "normal_standing_suspended_side_view", + "family": "standing_penetration", + "camera_view": "side_view", + "atlas_folders": [ + "fuck standing - woman suspended - side view" + ], + "reference_images": [ + "fuck standing - woman suspended - side view/0005.jpg", + "fuck standing - woman suspended - side view/0015.jpg", + "fuck standing - woman suspended - side view/611.jpg" + ], + "canonical_geometry": "Suspended standing side-profile normal-camera view where lift posture is part of the cue.", + "source_prompt_cues": [ + "suspended standing side-profile normal camera view", + "vertical lift posture readable", + "camera beside the couple", + "full standing body line visible" + ], + "review_only_avoid_cues": [ + "front-only portrait wording", + "POV wording", + "ordinary standing wording that loses suspended posture", + "cropping out the full standing posture" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "suspended standing side-profile normal camera view", + "vertical lift posture readable", + "camera beside the couple", + "full standing body line visible" + ], + "blocked_prompt_cues": [], + "prompt_text": "suspended standing side-profile normal camera view. vertical lift posture readable. camera beside the couple. full standing body line visible.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 54, + "variant_key": "normal_couple_kissing_upright_side_profile", + "family": "couple", + "camera_view": "side_view", + "atlas_folders": [ + "couple kissing" + ], + "reference_images": [ + "couple kissing/0001_2.jpg", + "couple kissing/0003.jpg", + "couple kissing/0005_2.jpg", + "couple kissing/16.jpg", + "couple kissing/159.jpg", + "couple kissing/247.jpg", + "couple kissing/247_2.jpg", + "couple kissing/253.jpg", + "couple kissing/253_2.jpg", + "couple kissing/322.jpg", + "couple kissing/354.jpg", + "couple kissing/379.jpg" + ], + "canonical_geometry": "Reviewed couple-kissing upright side-profile normal-camera subset from the mixed source pool: two subjects face each other laterally, the kissing contact is centered between their faces, and both bodies remain visible enough to preserve third-person camera geometry.", + "source_prompt_cues": [ + "reviewed couple kissing upright side-profile normal camera", + "two subjects face each other in lateral profile", + "kissing contact centered between their faces", + "both bodies visible in third-person framing" + ], + "review_only_avoid_cues": [ + "POV kissing wording", + "front-facing couple portrait wording", + "bed or seated crop wording", + "tight face close-up wording", + "using the full mixed folder as one route" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "reviewed couple kissing upright side-profile normal camera", + "two subjects face each other in lateral profile", + "kissing contact centered between their faces", + "both bodies visible in third-person framing" + ], + "blocked_prompt_cues": [], + "prompt_text": "reviewed couple kissing upright side-profile normal camera. two subjects face each other in lateral profile. kissing contact centered between their faces. both bodies visible in third-person framing.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + }, + { + "batch_rank": 55, + "variant_key": "normal_piledriver_high_front_down_view", + "family": "piledriver_or_pretzel", + "camera_view": "top_down_or_high_angle", + "atlas_folders": [ + "piledriver" + ], + "reference_images": [ + "piledriver/0002.jpg", + "piledriver/0004_2.jpg", + "piledriver/0005.jpg", + "piledriver/0006_2.jpg", + "piledriver/0009.jpg", + "piledriver/0009_2.jpg", + "piledriver/0012.jpg", + "piledriver/0013.jpg", + "piledriver/282.jpg", + "piledriver/317.jpg", + "piledriver/317_2.jpg", + "piledriver/318.jpg", + "piledriver/319.jpg", + "piledriver/494_2.jpg", + "piledriver/538.jpg" + ], + "canonical_geometry": "Selected piledriver high front-down normal-camera view where the folded body stays readable below the partner from a high third-person camera.", + "source_prompt_cues": [ + "piledriver high front-down normal camera view", + "folded body visible below the partner", + "legs folded high around the torso", + "third-person camera looking down at the compact stacked pose" + ], + "review_only_avoid_cues": [ + "POV folded-leg wording", + "tight genital-only crop", + "using the entire mixed piledriver folder as one camera angle", + "pretzel pose wording" + ], + "state": "prompt_ready", + "positive_prompt_cues": [ + "piledriver high front-down normal camera view", + "folded body visible below the partner", + "legs folded high around the torso", + "third-person camera looking down at the compact stacked pose" + ], + "blocked_prompt_cues": [], + "prompt_text": "piledriver high front-down normal camera view. folded body visible below the partner. legs folded high around the torso. third-person camera looking down at the compact stacked pose.", + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues" + ], + "later_test_seed_slots": { + "generator_seed": null, + "sampling_seed": null, + "fixed_subject_seed": null + } + } + ] +} diff --git a/ab_batches/normal_camera/normal_camera_score_sheet.json b/ab_batches/normal_camera/normal_camera_score_sheet.json new file mode 100644 index 0000000..ba4aa53 --- /dev/null +++ b/ab_batches/normal_camera/normal_camera_score_sheet.json @@ -0,0 +1,2071 @@ +{ + "schema": "sxcp_normal_camera_score_sheet_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "acceptance_gates": [ + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match" + ], + "acceptance_gate_descriptions": { + "camera_geometry": "Camera angle, elevation, side/front/back orientation, and framing match the atlas family.", + "pose_ownership": "The visible actors own the pose correctly, with no POV body cues leaking into normal-camera framing.", + "workspace_continuity": "Workspace/lounge details support the camera angle instead of fighting the pose.", + "clothing_visibility": "Clothing cues stay attached to the intended visible subject and only describe garments visible in this pose.", + "subject_identity": "The same woman identity, face, hair, eyes, and body type remain stable across fixed-seed variants.", + "body_proportion_control": "Penis/body proportions and limb lengths stay plausible for the selected atlas framing.", + "prompt_noise": "Prompt text uses direct visual cues, with option, negative, and instruction-like wording removed from positive text.", + "atlas_reference_match": "The generated frame can be matched back to the selected atlas references for this variant." + }, + "score_scale": { + "0": "fails the gate", + "1": "partial or unstable", + "2": "usable but needs wording refinement", + "3": "strong enough to preserve as candidate wording" + }, + "rows": [ + { + "batch_rank": 1, + "variant_key": "normal_doggy_all_fours_side_view", + "family": "doggy", + "camera_view": "side_view", + "atlas_folders": [ + "doggy on all four - side view" + ], + "reference_images": [ + "doggy on all four - side view/0020.jpg", + "doggy on all four - side view/192.jpg", + "doggy on all four - side view/2.jpg", + "doggy on all four - side view/204.jpg", + "doggy on all four - side view/254.jpg", + "doggy on all four - side view/254_2.jpg", + "doggy on all four - side view/254_3.jpg", + "doggy on all four - side view/271.jpg", + "doggy on all four - side view/271_2.jpg", + "doggy on all four - side view/362.jpg", + "doggy on all four - side view/495.jpg", + "doggy on all four - side view/556.jpg", + "doggy on all four - side view/86.jpg", + "doggy on all four - side view/99.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 2, + "variant_key": "normal_doggy_generic_side_view", + "family": "doggy", + "camera_view": "side_view", + "atlas_folders": [ + "doggy - side view" + ], + "reference_images": [ + "doggy - side view/0014.jpg", + "doggy - side view/276.jpg", + "doggy - side view/541.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 3, + "variant_key": "normal_doggy_standing_from_behind_side_view", + "family": "doggy", + "camera_view": "side_view", + "atlas_folders": [ + "fuck from behind standing - side view" + ], + "reference_images": [ + "fuck from behind standing - side view/0013.jpg", + "fuck from behind standing - side view/0019.jpg", + "fuck from behind standing - side view/0020.jpg", + "fuck from behind standing - side view/162.jpg", + "fuck from behind standing - side view/162_2.jpg", + "fuck from behind standing - side view/509.jpg", + "fuck from behind standing - side view/9.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 4, + "variant_key": "normal_doggy_standing_backside_side_view", + "family": "doggy", + "camera_view": "side_view", + "atlas_folders": [ + "fuck from behind standing - woman backside - side view" + ], + "reference_images": [ + "fuck from behind standing - woman backside - side view/0010.jpg", + "fuck from behind standing - woman backside - side view/0012.jpg", + "fuck from behind standing - woman backside - side view/186.jpg", + "fuck from behind standing - woman backside - side view/186_2.jpg", + "fuck from behind standing - woman backside - side view/196.jpg", + "fuck from behind standing - woman backside - side view/257.jpg", + "fuck from behind standing - woman backside - side view/286.jpg", + "fuck from behind standing - woman backside - side view/288.jpg", + "fuck from behind standing - woman backside - side view/343.jpg", + "fuck from behind standing - woman backside - side view/343_2.jpg", + "fuck from behind standing - woman backside - side view/343_3.jpg", + "fuck from behind standing - woman backside - side view/345.jpg", + "fuck from behind standing - woman backside - side view/345_2.jpg", + "fuck from behind standing - woman backside - side view/542.jpg", + "fuck from behind standing - woman backside - side view/68.jpg", + "fuck from behind standing - woman backside - side view/68_2.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 5, + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "family": "doggy", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "doggy on all four - back view - 3-4 angle" + ], + "reference_images": [ + "doggy on all four - back view - 3-4 angle/0002.jpg", + "doggy on all four - back view - 3-4 angle/0003.jpg", + "doggy on all four - back view - 3-4 angle/0013.jpg", + "doggy on all four - back view - 3-4 angle/0014.jpg", + "doggy on all four - back view - 3-4 angle/0019.jpg", + "doggy on all four - back view - 3-4 angle/0020.jpg", + "doggy on all four - back view - 3-4 angle/206.jpg", + "doggy on all four - back view - 3-4 angle/267.jpg", + "doggy on all four - back view - 3-4 angle/302.jpg", + "doggy on all four - back view - 3-4 angle/327.jpg", + "doggy on all four - back view - 3-4 angle/550_2.jpg", + "doggy on all four - back view - 3-4 angle/608_2.jpg", + "doggy on all four - back view - 3-4 angle/611.jpg", + "doggy on all four - back view - 3-4 angle/70.jpg", + "doggy on all four - back view - 3-4 angle/97.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 6, + "variant_key": "normal_doggy_generic_back_three_quarter", + "family": "doggy", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "doggy - back view - 3-4 angle" + ], + "reference_images": [ + "doggy - back view - 3-4 angle/0002.jpg", + "doggy - back view - 3-4 angle/0002_2.jpg", + "doggy - back view - 3-4 angle/0008_2.jpg", + "doggy - back view - 3-4 angle/0013.jpg", + "doggy - back view - 3-4 angle/0015.jpg", + "doggy - back view - 3-4 angle/0017.jpg", + "doggy - back view - 3-4 angle/0021.jpg", + "doggy - back view - 3-4 angle/132.jpg", + "doggy - back view - 3-4 angle/145.jpg", + "doggy - back view - 3-4 angle/183.jpg", + "doggy - back view - 3-4 angle/185.jpg", + "doggy - back view - 3-4 angle/227.jpg", + "doggy - back view - 3-4 angle/39.jpg", + "doggy - back view - 3-4 angle/41.jpg", + "doggy - back view - 3-4 angle/77.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 7, + "variant_key": "normal_doggy_laying_from_behind_front_three_quarter", + "family": "doggy", + "camera_view": "front_three_quarter", + "atlas_folders": [ + "fuck from behind laying - back view - 3-4 angle" + ], + "reference_images": [ + "fuck from behind laying - back view - 3-4 angle/0002.jpg", + "fuck from behind laying - back view - 3-4 angle/0004.jpg", + "fuck from behind laying - back view - 3-4 angle/0004_2.jpg", + "fuck from behind laying - back view - 3-4 angle/0006.jpg", + "fuck from behind laying - back view - 3-4 angle/0009.jpg", + "fuck from behind laying - back view - 3-4 angle/0009_2.jpg", + "fuck from behind laying - back view - 3-4 angle/0011.jpg", + "fuck from behind laying - back view - 3-4 angle/0013.jpg", + "fuck from behind laying - back view - 3-4 angle/0014.jpg", + "fuck from behind laying - back view - 3-4 angle/0015.jpg", + "fuck from behind laying - back view - 3-4 angle/0016.jpg", + "fuck from behind laying - back view - 3-4 angle/377.jpg", + "fuck from behind laying - back view - 3-4 angle/379.jpg", + "fuck from behind laying - back view - 3-4 angle/537.jpg", + "fuck from behind laying - back view - 3-4 angle/560.jpg", + "fuck from behind laying - back view - 3-4 angle/590.jpg", + "fuck from behind laying - back view - 3-4 angle/591.jpg", + "fuck from behind laying - back view - 3-4 angle/591_2.jpg", + "fuck from behind laying - back view - 3-4 angle/595.jpg", + "fuck from behind laying - back view - 3-4 angle/606.jpg", + "fuck from behind laying - back view - 3-4 angle/615.jpg", + "fuck from behind laying - back view - 3-4 angle/615_2.jpg", + "fuck from behind laying - back view - 3-4 angle/624.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 8, + "variant_key": "normal_doggy_all_fours_front_view", + "family": "doggy", + "camera_view": "front_view", + "atlas_folders": [ + "doggy all four - front view" + ], + "reference_images": [ + "doggy all four - front view/0016.jpg", + "doggy all four - front view/48.jpg", + "doggy all four - front view/58.jpg", + "doggy all four - front view/64.jpg", + "doggy all four - front view/69.jpg", + "doggy all four - front view/77.jpg", + "doggy all four - front view/83.jpg", + "doggy all four - front view/97.jpg", + "doggy all four - front view/171.jpg", + "doggy all four - front view/197.jpg", + "doggy all four - front view/204.jpg", + "doggy all four - front view/221.jpg", + "doggy all four - front view/290.jpg", + "doggy all four - front view/596.jpg", + "doggy all four - front view/598.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 9, + "variant_key": "normal_doggy_generic_front_view", + "family": "doggy", + "camera_view": "front_view", + "atlas_folders": [ + "doggy - front view", + "doggy - front view " + ], + "reference_images": [ + "doggy - front view/11.jpg", + "doggy - front view/5.jpg", + "doggy - front view/6.jpg", + "doggy - front view /0003.jpg", + "doggy - front view /253.jpg", + "doggy - front view /262.jpg", + "doggy - front view /349.jpg", + "doggy - front view /354.jpg", + "doggy - front view /41.jpg", + "doggy - front view /49.jpg", + "doggy - front view /505.jpg", + "doggy - front view /537.jpg", + "doggy - front view /541.jpg", + "doggy - front view /567.jpg", + "doggy - front view /627.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 10, + "variant_key": "normal_doggy_under_view_low_camera", + "family": "doggy", + "camera_view": "under_view", + "atlas_folders": [ + "doggy - underview" + ], + "reference_images": [ + "doggy - underview/0001.jpg", + "doggy - underview/0008.jpg", + "doggy - underview/614.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 11, + "variant_key": "normal_cowgirl_side_profile", + "family": "cowgirl", + "camera_view": "side_view", + "atlas_folders": [ + "cowgirl - side view" + ], + "reference_images": [ + "cowgirl - side view/0003.jpg", + "cowgirl - side view/0004_2.jpg", + "cowgirl - side view/0005.jpg", + "cowgirl - side view/0007.jpg", + "cowgirl - side view/0009.jpg", + "cowgirl - side view/0011.jpg", + "cowgirl - side view/0015.jpg", + "cowgirl - side view/118.jpg", + "cowgirl - side view/195.jpg", + "cowgirl - side view/2.jpg", + "cowgirl - side view/200.jpg", + "cowgirl - side view/255.jpg", + "cowgirl - side view/280.jpg", + "cowgirl - side view/86.jpg", + "cowgirl - side view/86_2.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 12, + "variant_key": "normal_cowgirl_full_body_front_view", + "family": "cowgirl", + "camera_view": "front_view", + "atlas_folders": [ + "cowgirl full man body - front view" + ], + "reference_images": [ + "cowgirl full man body - front view/0005.jpg", + "cowgirl full man body - front view/303.jpg", + "cowgirl full man body - front view/99.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 13, + "variant_key": "normal_cowgirl_front_three_quarter", + "family": "cowgirl", + "camera_view": "front_three_quarter", + "atlas_folders": [ + "cowgirl - front view - 3-4 angle" + ], + "reference_images": [ + "cowgirl - front view - 3-4 angle/588.jpg", + "cowgirl - front view - 3-4 angle/62_2.jpg", + "cowgirl - front view - 3-4 angle/70.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 14, + "variant_key": "normal_cowgirl_back_three_quarter", + "family": "cowgirl", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "cowgirl - back view - 3-4 angle" + ], + "reference_images": [ + "cowgirl - back view - 3-4 angle/0002.jpg", + "cowgirl - back view - 3-4 angle/0003_4.jpg", + "cowgirl - back view - 3-4 angle/0006.jpg", + "cowgirl - back view - 3-4 angle/0008_2.jpg", + "cowgirl - back view - 3-4 angle/16.jpg", + "cowgirl - back view - 3-4 angle/22.jpg", + "cowgirl - back view - 3-4 angle/41.jpg", + "cowgirl - back view - 3-4 angle/82.jpg", + "cowgirl - back view - 3-4 angle/90.jpg", + "cowgirl - back view - 3-4 angle/145.jpg", + "cowgirl - back view - 3-4 angle/160.jpg", + "cowgirl - back view - 3-4 angle/172.jpg", + "cowgirl - back view - 3-4 angle/225.jpg", + "cowgirl - back view - 3-4 angle/241_2.jpg", + "cowgirl - back view - 3-4 angle/248.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 15, + "variant_key": "normal_reverse_cowgirl_back_view", + "family": "reverse_cowgirl", + "camera_view": "back_view", + "atlas_folders": [ + "reverse cowgirl - back view" + ], + "reference_images": [ + "reverse cowgirl - back view/267.jpg", + "reverse cowgirl - back view/64.jpg", + "reverse cowgirl - back view/80.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 16, + "variant_key": "normal_reverse_cowgirl_back_three_quarter", + "family": "reverse_cowgirl", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "reverse cowgirl - backview - 3-4 angle" + ], + "reference_images": [ + "reverse cowgirl - backview - 3-4 angle/207.jpg", + "reverse cowgirl - backview - 3-4 angle/280_2.jpg", + "reverse cowgirl - backview - 3-4 angle/99.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 17, + "variant_key": "normal_reverse_cowgirl_side_profile", + "family": "reverse_cowgirl", + "camera_view": "side_view", + "atlas_folders": [ + "reverse cowgirl - side view" + ], + "reference_images": [ + "reverse cowgirl - side view/0004.jpg", + "reverse cowgirl - side view/596.jpg", + "reverse cowgirl - side view/606_3.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 18, + "variant_key": "normal_reverse_cowgirl_front_view", + "family": "reverse_cowgirl", + "camera_view": "front_view", + "atlas_folders": [ + "reverse cowgirl" + ], + "reference_images": [ + "reverse cowgirl/0001.jpg", + "reverse cowgirl/0004.jpg", + "reverse cowgirl/0005_4.jpg", + "reverse cowgirl/0014.jpg", + "reverse cowgirl/79.jpg", + "reverse cowgirl/82.jpg", + "reverse cowgirl/145.jpg", + "reverse cowgirl/260.jpg", + "reverse cowgirl/288.jpg", + "reverse cowgirl/319.jpg", + "reverse cowgirl/527.jpg", + "reverse cowgirl/608.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 19, + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "family": "reverse_cowgirl", + "camera_view": "front_three_quarter", + "atlas_folders": [ + "reverse cowgirl" + ], + "reference_images": [ + "reverse cowgirl/153.jpg", + "reverse cowgirl/153_2.jpg", + "reverse cowgirl/239_2.jpg", + "reverse cowgirl/239_3.jpg", + "reverse cowgirl/241.jpg", + "reverse cowgirl/241_2.jpg", + "reverse cowgirl/241_3.jpg", + "reverse cowgirl/257.jpg", + "reverse cowgirl/287.jpg", + "reverse cowgirl/323_2.jpg", + "reverse cowgirl/609.jpg", + "reverse cowgirl/609_2.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 20, + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "family": "reverse_cowgirl", + "camera_view": "front_view", + "atlas_folders": [ + "reverse cowgirl" + ], + "reference_images": [ + "reverse cowgirl/0009.jpg", + "reverse cowgirl/0009_2.jpg", + "reverse cowgirl/0009_3.jpg", + "reverse cowgirl/0015.jpg", + "reverse cowgirl/0015_2.jpg", + "reverse cowgirl/0016_2.jpg", + "reverse cowgirl/170.jpg", + "reverse cowgirl/261.jpg", + "reverse cowgirl/332.jpg", + "reverse cowgirl/332_2.jpg", + "reverse cowgirl/551.jpg", + "reverse cowgirl/618.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 21, + "variant_key": "normal_reverse_congress_front_view", + "family": "reverse_congress", + "camera_view": "front_view", + "atlas_folders": [ + "reverse congress - front view" + ], + "reference_images": [ + "reverse congress - front view/0012.jpg", + "reverse congress - front view/0012_2.jpg", + "reverse congress - front view/0013.jpg", + "reverse congress - front view/61.jpg", + "reverse congress - front view/105.jpg", + "reverse congress - front view/105_2.jpg", + "reverse congress - front view/122.jpg", + "reverse congress - front view/183.jpg", + "reverse congress - front view/189.jpg", + "reverse congress - front view/289.jpg", + "reverse congress - front view/289_2.jpg", + "reverse congress - front view/291.jpg", + "reverse congress - front view/542.jpg", + "reverse congress - front view/542_2.jpg", + "reverse congress - front view/563_2.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 22, + "variant_key": "normal_missionary_side_profile", + "family": "missionary", + "camera_view": "side_view", + "atlas_folders": [ + "missionary - side view" + ], + "reference_images": [ + "missionary - side view/0003.jpg", + "missionary - side view/0013.jpg", + "missionary - side view/0014.jpg", + "missionary - side view/509.jpg", + "missionary - side view/521.jpg", + "missionary - side view/533.jpg", + "missionary - side view/534.jpg", + "missionary - side view/593.jpg", + "missionary - side view/596.jpg", + "missionary - side view/596_2.jpg", + "missionary - side view/602.jpg", + "missionary - side view/613.jpg", + "missionary - side view/627.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 23, + "variant_key": "normal_missionary_side_profile_full_visibility", + "family": "missionary", + "camera_view": "side_view", + "atlas_folders": [ + "missionary - side view - full penis" + ], + "reference_images": [ + "missionary - side view - full penis/0002.jpg", + "missionary - side view - full penis/0002_2.jpg", + "missionary - side view - full penis/0021.jpg", + "missionary - side view - full penis/550.jpg", + "missionary - side view - full penis/69_2.jpg", + "missionary - side view - full penis/74.jpg", + "missionary - side view - full penis/97.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 24, + "variant_key": "normal_missionary_front_view", + "family": "missionary", + "camera_view": "front_view", + "atlas_folders": [ + "missionary - front view" + ], + "reference_images": [ + "missionary - front view/0011.jpg", + "missionary - front view/567.jpg", + "missionary - front view/72.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 25, + "variant_key": "normal_anal_random_front_view", + "family": "anal", + "camera_view": "front_view", + "atlas_folders": [ + "anal random" + ], + "reference_images": [ + "anal random/0005.jpg", + "anal random/0006.jpg", + "anal random/0015.jpg", + "anal random/160_3.jpg", + "anal random/188.jpg", + "anal random/347_3.jpg", + "anal random/347_10.jpg", + "anal random/347_11.jpg", + "anal random/366.jpg", + "anal random/366_3.jpg", + "anal random/366_4.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 26, + "variant_key": "normal_anal_random_back_side_offset_view", + "family": "anal", + "camera_view": "back_three_quarter", + "atlas_folders": [ + "anal random" + ], + "reference_images": [ + "anal random/0003.jpg", + "anal random/0003_3.jpg", + "anal random/0010.jpg", + "anal random/0013.jpg", + "anal random/119.jpg", + "anal random/119_2.jpg", + "anal random/119_3.jpg", + "anal random/124_2.jpg", + "anal random/124_8.jpg", + "anal random/347_4.jpg", + "anal random/347_5.jpg", + "anal random/347_8.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 27, + "variant_key": "normal_blowjob_laying_front_view", + "family": "blowjob", + "camera_view": "front_view", + "atlas_folders": [ + "blowjob - laying - front view" + ], + "reference_images": [ + "blowjob - laying - front view/0001.jpg", + "blowjob - laying - front view/0003.jpg", + "blowjob - laying - front view/0004.jpg", + "blowjob - laying - front view/0010.jpg", + "blowjob - laying - front view/0010_2.jpg", + "blowjob - laying - front view/0018.jpg", + "blowjob - laying - front view/48.jpg", + "blowjob - laying - front view/69.jpg", + "blowjob - laying - front view/91.jpg", + "blowjob - laying - front view/94.jpg", + "blowjob - laying - front view/122.jpg", + "blowjob - laying - front view/171.jpg", + "blowjob - laying - front view/184.jpg", + "blowjob - laying - front view/274.jpg", + "blowjob - laying - front view/512.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 28, + "variant_key": "normal_blowjob_sitting_front_view", + "family": "blowjob", + "camera_view": "front_view", + "atlas_folders": [ + "blowjob - sitting - frontview" + ], + "reference_images": [ + "blowjob - sitting - frontview/0003.jpg", + "blowjob - sitting - frontview/37.jpg", + "blowjob - sitting - frontview/81.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 29, + "variant_key": "normal_blowjob_laying_side_profile", + "family": "blowjob", + "camera_view": "side_view", + "atlas_folders": [ + "blowjob - laying - side view" + ], + "reference_images": [ + "blowjob - laying - side view/0013.jpg", + "blowjob - laying - side view/119.jpg", + "blowjob - laying - side view/209.jpg", + "blowjob - laying - side view/232.jpg", + "blowjob - laying - side view/244.jpg", + "blowjob - laying - side view/255.jpg", + "blowjob - laying - side view/333.jpg", + "blowjob - laying - side view/36.jpg", + "blowjob - laying - side view/364.jpg", + "blowjob - laying - side view/375.jpg", + "blowjob - laying - side view/62.jpg", + "blowjob - laying - side view/74.jpg", + "blowjob - laying - side view/85.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 30, + "variant_key": "normal_blowjob_sitting_side_profile", + "family": "blowjob", + "camera_view": "side_view", + "atlas_folders": [ + "blowjob - sitting - side view" + ], + "reference_images": [ + "blowjob - sitting - side view/0002.jpg", + "blowjob - sitting - side view/241.jpg", + "blowjob - sitting - side view/64.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 31, + "variant_key": "normal_ballsucking_standing_low_side_view", + "family": "ballsucking", + "camera_view": "side_view", + "atlas_folders": [ + "ballsucking - standing" + ], + "reference_images": [ + "ballsucking - standing/0014.jpg", + "ballsucking - standing/130.jpg", + "ballsucking - standing/137.jpg", + "ballsucking - standing/207.jpg", + "ballsucking - standing/222.jpg", + "ballsucking - standing/252.jpg", + "ballsucking - standing/333.jpg", + "ballsucking - standing/34.jpg", + "ballsucking - standing/540.jpg", + "ballsucking - standing/589.jpg", + "ballsucking - standing/624.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 32, + "variant_key": "normal_boobjob_front_close_view", + "family": "boobjob", + "camera_view": "front_view", + "atlas_folders": [ + "boobjob" + ], + "reference_images": [ + "boobjob/0017.jpg", + "boobjob/0018_2.jpg", + "boobjob/141.jpg", + "boobjob/186.jpg", + "boobjob/218.jpg", + "boobjob/259.jpg", + "boobjob/327.jpg", + "boobjob/588.jpg", + "boobjob/592.jpg", + "boobjob/598.jpg", + "boobjob/615.jpg", + "boobjob/618.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 33, + "variant_key": "normal_breast_contact_front_view", + "family": "breast_contact", + "camera_view": "front_view", + "atlas_folders": [ + "breast - touching - front view" + ], + "reference_images": [ + "breast - touching - front view/0006.jpg", + "breast - touching - front view/0006_2.jpg", + "breast - touching - front view/12.jpg", + "breast - touching - front view/0014.jpg", + "breast - touching - front view/0015.jpg", + "breast - touching - front view/16.jpg", + "breast - touching - front view/56.jpg", + "breast - touching - front view/72.jpg", + "breast - touching - front view/183.jpg", + "breast - touching - front view/220.jpg", + "breast - touching - front view/246.jpg", + "breast - touching - front view/248.jpg", + "breast - touching - front view/281.jpg", + "breast - touching - front view/348.jpg", + "breast - touching - front view/361.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 34, + "variant_key": "normal_breast_touching_side_view", + "family": "breast_contact", + "camera_view": "side_view", + "atlas_folders": [ + "breast - touching - side view" + ], + "reference_images": [ + "breast - touching - side view/0010.jpg", + "breast - touching - side view/364.jpg", + "breast - touching - side view/97.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 35, + "variant_key": "normal_breast_sucking_side_view", + "family": "breast_contact", + "camera_view": "side_view", + "atlas_folders": [ + "breast sucking - side view" + ], + "reference_images": [ + "breast sucking - side view/0003.jpg", + "breast sucking - side view/0005.jpg", + "breast sucking - side view/0007.jpg", + "breast sucking - side view/0009.jpg", + "breast sucking - side view/0010_2.jpg", + "breast sucking - side view/182.jpg", + "breast sucking - side view/186.jpg", + "breast sucking - side view/218.jpg", + "breast sucking - side view/234.jpg", + "breast sucking - side view/244.jpg", + "breast sucking - side view/257.jpg", + "breast sucking - side view/267.jpg", + "breast sucking - side view/269.jpg", + "breast sucking - side view/356.jpg", + "breast sucking - side view/99.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 36, + "variant_key": "normal_sixty_nine_front_close_view", + "family": "oral_other", + "camera_view": "front_view", + "atlas_folders": [ + "69" + ], + "reference_images": [ + "69/0002.jpg", + "69/0008.jpg", + "69/0016.jpg", + "69/19.jpg", + "69/166.jpg", + "69/292.jpg", + "69/624.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 37, + "variant_key": "normal_fingering_reclined_front_view", + "family": "manual_or_toy", + "camera_view": "front_view", + "atlas_folders": [ + "fingering" + ], + "reference_images": [ + "fingering/0004.jpg", + "fingering/0006.jpg", + "fingering/0013.jpg", + "fingering/0015.jpg", + "fingering/39.jpg", + "fingering/50.jpg", + "fingering/132.jpg", + "fingering/133.jpg", + "fingering/279.jpg", + "fingering/603.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 38, + "variant_key": "normal_wand_front_close_view", + "family": "manual_or_toy", + "camera_view": "front_view", + "atlas_folders": [ + "wand" + ], + "reference_images": [ + "wand/0005.jpg", + "wand/0015.jpg", + "wand/217.jpg", + "wand/532.jpg", + "wand/561.jpg", + "wand/611.jpg", + "wand/75.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 39, + "variant_key": "normal_handjob_standing_side_profile", + "family": "manual_or_toy", + "camera_view": "side_view", + "atlas_folders": [ + "handjob standing - side view" + ], + "reference_images": [ + "handjob standing - side view/16.jpg", + "handjob standing - side view/105.jpg", + "handjob standing - side view/171.jpg", + "handjob standing - side view/174.jpg", + "handjob standing - side view/175.jpg", + "handjob standing - side view/305.jpg", + "handjob standing - side view/549.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 40, + "variant_key": "normal_handjob_both_sitting_front_view", + "family": "manual_or_toy", + "camera_view": "front_view", + "atlas_folders": [ + "handjob - both sitting - front view" + ], + "reference_images": [ + "handjob - both sitting - front view/109.jpg", + "handjob - both sitting - front view/588.jpg", + "handjob - both sitting - front view/598.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 41, + "variant_key": "normal_handjob_laying_front_three_quarter", + "family": "manual_or_toy", + "camera_view": "front_three_quarter", + "atlas_folders": [ + "handjob - laying - front view - 3-4 angle" + ], + "reference_images": [ + "handjob - laying - front view - 3-4 angle/39.jpg", + "handjob - laying - front view - 3-4 angle/41.jpg", + "handjob - laying - front view - 3-4 angle/91.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 42, + "variant_key": "normal_pussy_licking_side_profile", + "family": "oral_other", + "camera_view": "side_view", + "atlas_folders": [ + "pussy licking - side view" + ], + "reference_images": [ + "pussy licking - side view/0003.jpg", + "pussy licking - side view/0006.jpg", + "pussy licking - side view/0010.jpg", + "pussy licking - side view/0013_2.jpg", + "pussy licking - side view/0015.jpg", + "pussy licking - side view/0015_2.jpg", + "pussy licking - side view/0016.jpg", + "pussy licking - side view/0016_2.jpg", + "pussy licking - side view/536.jpg", + "pussy licking - side view/537.jpg", + "pussy licking - side view/544.jpg", + "pussy licking - side view/560.jpg", + "pussy licking - side view/603.jpg", + "pussy licking - side view/609.jpg", + "pussy licking - side view/613.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 43, + "variant_key": "normal_display_rear_body_view", + "family": "display", + "camera_view": "back_view", + "atlas_folders": [ + "woman solo showing her hass - back view" + ], + "reference_images": [ + "woman solo showing her hass - back view/0001_2.jpg", + "woman solo showing her hass - back view/0003.jpg", + "woman solo showing her hass - back view/0006_2.jpg", + "woman solo showing her hass - back view/0009.jpg", + "woman solo showing her hass - back view/0015.jpg", + "woman solo showing her hass - back view/0016_2.jpg", + "woman solo showing her hass - back view/112.jpg", + "woman solo showing her hass - back view/153.jpg", + "woman solo showing her hass - back view/157.jpg", + "woman solo showing her hass - back view/162_2.jpg", + "woman solo showing her hass - back view/169.jpg", + "woman solo showing her hass - back view/182_2.jpg", + "woman solo showing her hass - back view/232.jpg", + "woman solo showing her hass - back view/270.jpg", + "woman solo showing her hass - back view/322.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 44, + "variant_key": "normal_display_rear_body_standing_back_view", + "family": "display", + "camera_view": "back_view", + "atlas_folders": [ + "woman solo showing her hass - back view" + ], + "reference_images": [ + "woman solo showing her hass - back view/0002.jpg", + "woman solo showing her hass - back view/0006.jpg", + "woman solo showing her hass - back view/0006_3.jpg", + "woman solo showing her hass - back view/0007_2.jpg", + "woman solo showing her hass - back view/173.jpg", + "woman solo showing her hass - back view/197.jpg", + "woman solo showing her hass - back view/230.jpg", + "woman solo showing her hass - back view/235.jpg", + "woman solo showing her hass - back view/287.jpg", + "woman solo showing her hass - back view/293.jpg", + "woman solo showing her hass - back view/300.jpg", + "woman solo showing her hass - back view/321.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 45, + "variant_key": "normal_display_front_open_leg_front_view", + "family": "display", + "camera_view": "front_view", + "atlas_folders": [ + "pussy spread" + ], + "reference_images": [ + "pussy spread/0002_3.jpg", + "pussy spread/0003_4.jpg", + "pussy spread/0012.jpg", + "pussy spread/0015.jpg", + "pussy spread/0017.jpg", + "pussy spread/80.jpg", + "pussy spread/130.jpg", + "pussy spread/153.jpg", + "pussy spread/296.jpg", + "pussy spread/297.jpg", + "pussy spread/328.jpg", + "pussy spread/367.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 46, + "variant_key": "normal_display_front_open_leg_low_close", + "family": "display", + "camera_view": "front_view", + "atlas_folders": [ + "pussy spread" + ], + "reference_images": [ + "pussy spread/1.jpg", + "pussy spread/1_2.jpg", + "pussy spread/0003.jpg", + "pussy spread/0003_2.jpg", + "pussy spread/0003_3.jpg", + "pussy spread/0010_2.jpg", + "pussy spread/0016.jpg", + "pussy spread/0016_2.jpg", + "pussy spread/41.jpg", + "pussy spread/201.jpg", + "pussy spread/217_2.jpg", + "pussy spread/223.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 47, + "variant_key": "normal_display_front_open_leg_side_offset_view", + "family": "display", + "camera_view": "side_view", + "atlas_folders": [ + "pussy spread" + ], + "reference_images": [ + "pussy spread/0007.jpg", + "pussy spread/0008.jpg", + "pussy spread/73.jpg", + "pussy spread/121.jpg", + "pussy spread/134.jpg", + "pussy spread/154_3.jpg", + "pussy spread/163.jpg", + "pussy spread/175.jpg", + "pussy spread/256.jpg", + "pussy spread/308.jpg", + "pussy spread/311.jpg", + "pussy spread/368.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 48, + "variant_key": "normal_display_breasts_exposed_front_view", + "family": "display", + "camera_view": "front_view", + "atlas_folders": [ + "breasts exposed" + ], + "reference_images": [ + "breasts exposed/0001_3.jpg", + "breasts exposed/0006.jpg", + "breasts exposed/0008_2.jpg", + "breasts exposed/0011_2.jpg", + "breasts exposed/141.jpg", + "breasts exposed/181.jpg", + "breasts exposed/263.jpg", + "breasts exposed/302.jpg", + "breasts exposed/327.jpg", + "breasts exposed/346.jpg", + "breasts exposed/594_2.jpg", + "breasts exposed/624.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 49, + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "family": "display", + "camera_view": "side_view", + "atlas_folders": [ + "breasts exposed" + ], + "reference_images": [ + "breasts exposed/83.jpg", + "breasts exposed/196.jpg", + "breasts exposed/235.jpg", + "breasts exposed/267.jpg", + "breasts exposed/271.jpg", + "breasts exposed/305.jpg", + "breasts exposed/353.jpg", + "breasts exposed/373.jpg", + "breasts exposed/590.jpg", + "breasts exposed/590_2.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 50, + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "family": "display", + "camera_view": "front_view", + "atlas_folders": [ + "breasts exposed" + ], + "reference_images": [ + "breasts exposed/0002_2.jpg", + "breasts exposed/0003.jpg", + "breasts exposed/49.jpg", + "breasts exposed/138.jpg", + "breasts exposed/155.jpg", + "breasts exposed/169.jpg", + "breasts exposed/190.jpg", + "breasts exposed/230.jpg", + "breasts exposed/242.jpg", + "breasts exposed/302_2.jpg", + "breasts exposed/332.jpg", + "breasts exposed/368.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 51, + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "family": "display", + "camera_view": "front_view", + "atlas_folders": [ + "breasts exposed" + ], + "reference_images": [ + "breasts exposed/0001_2.jpg", + "breasts exposed/0007_2.jpg", + "breasts exposed/101_2.jpg", + "breasts exposed/154.jpg", + "breasts exposed/165.jpg", + "breasts exposed/173.jpg", + "breasts exposed/259.jpg", + "breasts exposed/285.jpg", + "breasts exposed/293.jpg", + "breasts exposed/322.jpg", + "breasts exposed/328.jpg", + "breasts exposed/523.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 52, + "variant_key": "normal_standing_from_front_side_view", + "family": "standing_penetration", + "camera_view": "side_view", + "atlas_folders": [ + "fuck from front standing - side view" + ], + "reference_images": [ + "fuck from front standing - side view/0001.jpg", + "fuck from front standing - side view/252.jpg", + "fuck from front standing - side view/73.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 53, + "variant_key": "normal_standing_suspended_side_view", + "family": "standing_penetration", + "camera_view": "side_view", + "atlas_folders": [ + "fuck standing - woman suspended - side view" + ], + "reference_images": [ + "fuck standing - woman suspended - side view/0005.jpg", + "fuck standing - woman suspended - side view/0015.jpg", + "fuck standing - woman suspended - side view/611.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 54, + "variant_key": "normal_couple_kissing_upright_side_profile", + "family": "couple", + "camera_view": "side_view", + "atlas_folders": [ + "couple kissing" + ], + "reference_images": [ + "couple kissing/0001_2.jpg", + "couple kissing/0003.jpg", + "couple kissing/0005_2.jpg", + "couple kissing/16.jpg", + "couple kissing/159.jpg", + "couple kissing/247.jpg", + "couple kissing/247_2.jpg", + "couple kissing/253.jpg", + "couple kissing/253_2.jpg", + "couple kissing/322.jpg", + "couple kissing/354.jpg", + "couple kissing/379.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + }, + { + "batch_rank": 55, + "variant_key": "normal_piledriver_high_front_down_view", + "family": "piledriver_or_pretzel", + "camera_view": "top_down_or_high_angle", + "atlas_folders": [ + "piledriver" + ], + "reference_images": [ + "piledriver/0002.jpg", + "piledriver/0004_2.jpg", + "piledriver/0005.jpg", + "piledriver/0006_2.jpg", + "piledriver/0009.jpg", + "piledriver/0009_2.jpg", + "piledriver/0012.jpg", + "piledriver/0013.jpg", + "piledriver/282.jpg", + "piledriver/317.jpg", + "piledriver/317_2.jpg", + "piledriver/318.jpg", + "piledriver/319.jpg", + "piledriver/494_2.jpg", + "piledriver/538.jpg" + ], + "test_prompt_id": null, + "image_path": null, + "generator_seed": null, + "sampling_seed": null, + "scores": { + "camera_geometry": null, + "pose_ownership": null, + "workspace_continuity": null, + "clothing_visibility": null, + "subject_identity": null, + "body_proportion_control": null, + "prompt_noise": null, + "atlas_reference_match": null + }, + "notes": "", + "decision": null + } + ] +} diff --git a/ab_batches/normal_camera/normal_camera_unused_pool_backlog.json b/ab_batches/normal_camera/normal_camera_unused_pool_backlog.json new file mode 100644 index 0000000..90947c8 --- /dev/null +++ b/ab_batches/normal_camera/normal_camera_unused_pool_backlog.json @@ -0,0 +1,966 @@ +{ + "schema": "sxcp_normal_camera_unused_pool_backlog_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "source_inventory": "categories/normal_camera_atlas.json", + "source_variant_catalog": "categories/normal_camera_variants.json", + "selection": "non-empty folders with unselected images, sorted by remaining image count", + "available_folder_count": 53, + "selected_count": 53, + "folders": [ + { + "folder": "reverse cowgirl", + "folder_alias": { + "exact_source_folder": "reverse cowgirl", + "canonical_folder": "reverse cowgirl", + "canonical_key": "reverse_cowgirl", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 240, + "selected_reference_count": 36, + "remaining_image_count": 204, + "covered_by_variants": true, + "camera_view": "mixed_or_unspecified", + "action_family": "reverse_cowgirl", + "catalog_status": "action_reference_only", + "suggested_action": "split_or_expand_selected_reference_subvariants" + }, + { + "folder": "breasts exposed", + "folder_alias": { + "exact_source_folder": "breasts exposed", + "canonical_folder": "breasts exposed", + "canonical_key": "breasts_exposed", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 168, + "selected_reference_count": 49, + "remaining_image_count": 119, + "covered_by_variants": true, + "camera_view": "mixed_or_unspecified", + "action_family": "display", + "catalog_status": "action_reference_only", + "suggested_action": "split_or_expand_selected_reference_subvariants" + }, + { + "folder": "cowgirl - back view - 3-4 angle", + "folder_alias": { + "exact_source_folder": "cowgirl - back view - 3-4 angle", + "canonical_folder": "cowgirl - back view - 3-4 angle", + "canonical_key": "cowgirl_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 129, + "selected_reference_count": 15, + "remaining_image_count": 114, + "covered_by_variants": true, + "camera_view": "back_three_quarter", + "action_family": "cowgirl", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "anal random", + "folder_alias": { + "exact_source_folder": "anal random", + "canonical_folder": "anal random", + "canonical_key": "anal_random", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 99, + "selected_reference_count": 26, + "remaining_image_count": 73, + "covered_by_variants": true, + "camera_view": "mixed_or_unspecified", + "action_family": "anal", + "catalog_status": "action_reference_only", + "suggested_action": "split_or_expand_selected_reference_subvariants" + }, + { + "folder": "couple kissing", + "folder_alias": { + "exact_source_folder": "couple kissing", + "canonical_folder": "couple kissing", + "canonical_key": "couple_kissing", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 88, + "selected_reference_count": 15, + "remaining_image_count": 73, + "covered_by_variants": true, + "camera_view": "mixed_or_unspecified", + "action_family": "couple", + "catalog_status": "action_reference_only", + "suggested_action": "split_or_expand_selected_reference_subvariants" + }, + { + "folder": "woman solo showing her hass - back view", + "folder_alias": { + "exact_source_folder": "woman solo showing her hass - back view", + "canonical_folder": "woman solo showing her ass - back view", + "canonical_key": "woman_solo_showing_her_ass_back_view", + "alias_applied": true, + "alias_reason": "Folder-name typo normalized for review metadata while preserving exact source path." + }, + "image_count": 99, + "selected_reference_count": 30, + "remaining_image_count": 69, + "covered_by_variants": true, + "camera_view": "back_view", + "action_family": "display", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "pussy spread", + "folder_alias": { + "exact_source_folder": "pussy spread", + "canonical_folder": "pussy spread", + "canonical_key": "pussy_spread", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 100, + "selected_reference_count": 39, + "remaining_image_count": 61, + "covered_by_variants": true, + "camera_view": "mixed_or_unspecified", + "action_family": "display", + "catalog_status": "action_reference_only", + "suggested_action": "split_or_expand_selected_reference_subvariants" + }, + { + "folder": "doggy on all four - back view - 3-4 angle", + "folder_alias": { + "exact_source_folder": "doggy on all four - back view - 3-4 angle", + "canonical_folder": "doggy on all four - back view - 3-4 angle", + "canonical_key": "doggy_on_all_four_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 69, + "selected_reference_count": 15, + "remaining_image_count": 54, + "covered_by_variants": true, + "camera_view": "back_three_quarter", + "action_family": "doggy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "doggy on all four - side view", + "folder_alias": { + "exact_source_folder": "doggy on all four - side view", + "canonical_folder": "doggy on all four - side view", + "canonical_key": "doggy_on_all_four_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 70, + "selected_reference_count": 16, + "remaining_image_count": 54, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "doggy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "handjob standing - side view", + "folder_alias": { + "exact_source_folder": "handjob standing - side view", + "canonical_folder": "handjob standing - side view", + "canonical_key": "handjob_standing_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 63, + "selected_reference_count": 10, + "remaining_image_count": 53, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "manual_or_toy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "fuck from front standing - side view", + "folder_alias": { + "exact_source_folder": "fuck from front standing - side view", + "canonical_folder": "fuck from front standing - side view", + "canonical_key": "fuck_from_front_standing_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 36, + "selected_reference_count": 3, + "remaining_image_count": 33, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "standing_penetration", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "fuck from behind standing - woman backside - side view", + "folder_alias": { + "exact_source_folder": "fuck from behind standing - woman backside - side view", + "canonical_folder": "fuck from behind standing - woman backside - side view", + "canonical_key": "fuck_from_behind_standing_woman_backside_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 47, + "selected_reference_count": 17, + "remaining_image_count": 30, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "doggy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "penis worship", + "folder_alias": { + "exact_source_folder": "penis worship", + "canonical_folder": "penis worship", + "canonical_key": "penis_worship", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 49, + "selected_reference_count": 20, + "remaining_image_count": 29, + "covered_by_variants": true, + "camera_view": "mixed_or_unspecified", + "action_family": "oral_other", + "catalog_status": "action_reference_only", + "suggested_action": "split_or_expand_selected_reference_subvariants" + }, + { + "folder": "breast sucking - side view", + "folder_alias": { + "exact_source_folder": "breast sucking - side view", + "canonical_folder": "breast sucking - side view", + "canonical_key": "breast_sucking_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 43, + "selected_reference_count": 15, + "remaining_image_count": 28, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "breast_contact", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "doggy - back view - 3-4 angle", + "folder_alias": { + "exact_source_folder": "doggy - back view - 3-4 angle", + "canonical_folder": "doggy - back view - 3-4 angle", + "canonical_key": "doggy_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 35, + "selected_reference_count": 15, + "remaining_image_count": 20, + "covered_by_variants": true, + "camera_view": "back_three_quarter", + "action_family": "doggy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "cowgirl - side view", + "folder_alias": { + "exact_source_folder": "cowgirl - side view", + "canonical_folder": "cowgirl - side view", + "canonical_key": "cowgirl_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 34, + "selected_reference_count": 15, + "remaining_image_count": 19, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "cowgirl", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "blowjob - sitting - side view", + "folder_alias": { + "exact_source_folder": "blowjob - sitting - side view", + "canonical_folder": "blowjob - sitting - side view", + "canonical_key": "blowjob_sitting_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 17, + "selected_reference_count": 3, + "remaining_image_count": 14, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "blowjob", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "cowgirl full man body - front view", + "folder_alias": { + "exact_source_folder": "cowgirl full man body - front view", + "canonical_folder": "cowgirl full man body - front view", + "canonical_key": "cowgirl_full_man_body_front_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 17, + "selected_reference_count": 3, + "remaining_image_count": 14, + "covered_by_variants": true, + "camera_view": "front_view", + "action_family": "cowgirl", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "doggy all four - front view", + "folder_alias": { + "exact_source_folder": "doggy all four - front view", + "canonical_folder": "doggy all four - front view", + "canonical_key": "doggy_all_four_front_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 28, + "selected_reference_count": 15, + "remaining_image_count": 13, + "covered_by_variants": true, + "camera_view": "front_view", + "action_family": "doggy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "fuck from behind - side view", + "folder_alias": { + "exact_source_folder": "fuck from behind - side view", + "canonical_folder": "fuck from behind - side view", + "canonical_key": "fuck_from_behind_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 16, + "selected_reference_count": 3, + "remaining_image_count": 13, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "doggy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "pussy licking - side view", + "folder_alias": { + "exact_source_folder": "pussy licking - side view", + "canonical_folder": "pussy licking - side view", + "canonical_key": "pussy_licking_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 28, + "selected_reference_count": 16, + "remaining_image_count": 12, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "oral_other", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "blowjob - laying - front view", + "folder_alias": { + "exact_source_folder": "blowjob - laying - front view", + "canonical_folder": "blowjob - laying - front view", + "canonical_key": "blowjob_laying_front_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 26, + "selected_reference_count": 15, + "remaining_image_count": 11, + "covered_by_variants": true, + "camera_view": "front_view", + "action_family": "blowjob", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "missionary - side view", + "folder_alias": { + "exact_source_folder": "missionary - side view", + "canonical_folder": "missionary - side view", + "canonical_key": "missionary_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 24, + "selected_reference_count": 13, + "remaining_image_count": 11, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "missionary", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "blowjob - laying - side view", + "folder_alias": { + "exact_source_folder": "blowjob - laying - side view", + "canonical_folder": "blowjob - laying - side view", + "canonical_key": "blowjob_laying_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 24, + "selected_reference_count": 14, + "remaining_image_count": 10, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "blowjob", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "breast - touching - front view", + "folder_alias": { + "exact_source_folder": "breast - touching - front view", + "canonical_folder": "breast - touching - front view", + "canonical_key": "breast_touching_front_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 25, + "selected_reference_count": 15, + "remaining_image_count": 10, + "covered_by_variants": true, + "camera_view": "front_view", + "action_family": "breast_contact", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "blowjob - sitting - frontview", + "folder_alias": { + "exact_source_folder": "blowjob - sitting - frontview", + "canonical_folder": "blowjob - sitting - frontview", + "canonical_key": "blowjob_sitting_frontview", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 12, + "selected_reference_count": 3, + "remaining_image_count": 9, + "covered_by_variants": true, + "camera_view": "front_view", + "action_family": "blowjob", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "doggy - side view", + "folder_alias": { + "exact_source_folder": "doggy - side view", + "canonical_folder": "doggy - side view", + "canonical_key": "doggy_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 12, + "selected_reference_count": 3, + "remaining_image_count": 9, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "doggy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "missionary - leg folded - back view 3-4 angle", + "folder_alias": { + "exact_source_folder": "missionary - leg folded - back view 3-4 angle", + "canonical_folder": "missionary - leg folded - back view 3-4 angle", + "canonical_key": "missionary_leg_folded_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 12, + "selected_reference_count": 3, + "remaining_image_count": 9, + "covered_by_variants": true, + "camera_view": "back_three_quarter", + "action_family": "missionary", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "piledriver", + "folder_alias": { + "exact_source_folder": "piledriver", + "canonical_folder": "piledriver", + "canonical_key": "piledriver", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 27, + "selected_reference_count": 18, + "remaining_image_count": 9, + "covered_by_variants": true, + "camera_view": "mixed_or_unspecified", + "action_family": "piledriver_or_pretzel", + "catalog_status": "action_reference_only", + "suggested_action": "split_or_expand_selected_reference_subvariants" + }, + { + "folder": "doggy - underview", + "folder_alias": { + "exact_source_folder": "doggy - underview", + "canonical_folder": "doggy - underview", + "canonical_key": "doggy_underview", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 11, + "selected_reference_count": 3, + "remaining_image_count": 8, + "covered_by_variants": true, + "camera_view": "under_view", + "action_family": "doggy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "fuck from behind standing - side view", + "folder_alias": { + "exact_source_folder": "fuck from behind standing - side view", + "canonical_folder": "fuck from behind standing - side view", + "canonical_key": "fuck_from_behind_standing_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 16, + "selected_reference_count": 8, + "remaining_image_count": 8, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "doggy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "handjob - laying -side view", + "folder_alias": { + "exact_source_folder": "handjob - laying -side view", + "canonical_folder": "handjob - laying -side view", + "canonical_key": "handjob_laying_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 11, + "selected_reference_count": 3, + "remaining_image_count": 8, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "manual_or_toy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "handjob - sitting - side view", + "folder_alias": { + "exact_source_folder": "handjob - sitting - side view", + "canonical_folder": "handjob - sitting - side view", + "canonical_key": "handjob_sitting_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 11, + "selected_reference_count": 3, + "remaining_image_count": 8, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "manual_or_toy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "breast - touching - side view", + "folder_alias": { + "exact_source_folder": "breast - touching - side view", + "canonical_folder": "breast - touching - side view", + "canonical_key": "breast_touching_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 10, + "selected_reference_count": 3, + "remaining_image_count": 7, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "breast_contact", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "boobjob", + "folder_alias": { + "exact_source_folder": "boobjob", + "canonical_folder": "boobjob", + "canonical_key": "boobjob", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 19, + "selected_reference_count": 13, + "remaining_image_count": 6, + "covered_by_variants": true, + "camera_view": "mixed_or_unspecified", + "action_family": "boobjob", + "catalog_status": "action_reference_only", + "suggested_action": "split_or_expand_selected_reference_subvariants" + }, + { + "folder": "fuck standing - woman suspended - side view", + "folder_alias": { + "exact_source_folder": "fuck standing - woman suspended - side view", + "canonical_folder": "fuck standing - woman suspended - side view", + "canonical_key": "fuck_standing_woman_suspended_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 9, + "selected_reference_count": 3, + "remaining_image_count": 6, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "standing_penetration", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "reverse congress - front view", + "folder_alias": { + "exact_source_folder": "reverse congress - front view", + "canonical_folder": "reverse congress - front view", + "canonical_key": "reverse_congress_front_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 21, + "selected_reference_count": 15, + "remaining_image_count": 6, + "covered_by_variants": true, + "camera_view": "front_view", + "action_family": "reverse_congress", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "missionary - front view", + "folder_alias": { + "exact_source_folder": "missionary - front view", + "canonical_folder": "missionary - front view", + "canonical_key": "missionary_front_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 8, + "selected_reference_count": 3, + "remaining_image_count": 5, + "covered_by_variants": true, + "camera_view": "front_view", + "action_family": "missionary", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "reverse cowgirl - side view", + "folder_alias": { + "exact_source_folder": "reverse cowgirl - side view", + "canonical_folder": "reverse cowgirl - side view", + "canonical_key": "reverse_cowgirl_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 8, + "selected_reference_count": 3, + "remaining_image_count": 5, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "reverse_cowgirl", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "blowjob - kneeling - side view", + "folder_alias": { + "exact_source_folder": "blowjob - kneeling - side view", + "canonical_folder": "blowjob - kneeling - side view", + "canonical_key": "blowjob_kneeling_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 6, + "selected_reference_count": 3, + "remaining_image_count": 3, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "blowjob", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "cowgirl - front view - 3-4 angle", + "folder_alias": { + "exact_source_folder": "cowgirl - front view - 3-4 angle", + "canonical_folder": "cowgirl - front view - 3-4 angle", + "canonical_key": "cowgirl_front_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 6, + "selected_reference_count": 3, + "remaining_image_count": 3, + "covered_by_variants": true, + "camera_view": "front_three_quarter", + "action_family": "cowgirl", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "fingering", + "folder_alias": { + "exact_source_folder": "fingering", + "canonical_folder": "fingering", + "canonical_key": "fingering", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 15, + "selected_reference_count": 12, + "remaining_image_count": 3, + "covered_by_variants": true, + "camera_view": "mixed_or_unspecified", + "action_family": "manual_or_toy", + "catalog_status": "action_reference_only", + "suggested_action": "split_or_expand_selected_reference_subvariants" + }, + { + "folder": "reverse cowgirl - back view", + "folder_alias": { + "exact_source_folder": "reverse cowgirl - back view", + "canonical_folder": "reverse cowgirl - back view", + "canonical_key": "reverse_cowgirl_back_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 6, + "selected_reference_count": 3, + "remaining_image_count": 3, + "covered_by_variants": true, + "camera_view": "back_view", + "action_family": "reverse_cowgirl", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "69", + "folder_alias": { + "exact_source_folder": "69", + "canonical_folder": "69", + "canonical_key": "69", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 10, + "selected_reference_count": 8, + "remaining_image_count": 2, + "covered_by_variants": true, + "camera_view": "mixed_or_unspecified", + "action_family": "oral_other", + "catalog_status": "action_reference_only", + "suggested_action": "split_or_expand_selected_reference_subvariants" + }, + { + "folder": "missionary - side view - full penis", + "folder_alias": { + "exact_source_folder": "missionary - side view - full penis", + "canonical_folder": "missionary - side view - full penis", + "canonical_key": "missionary_side_view_full_penis", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 9, + "selected_reference_count": 7, + "remaining_image_count": 2, + "covered_by_variants": true, + "camera_view": "side_view", + "action_family": "missionary", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "reverse cowgirl - backview - 3-4 angle", + "folder_alias": { + "exact_source_folder": "reverse cowgirl - backview - 3-4 angle", + "canonical_folder": "reverse cowgirl - backview - 3-4 angle", + "canonical_key": "reverse_cowgirl_backview_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 5, + "selected_reference_count": 3, + "remaining_image_count": 2, + "covered_by_variants": true, + "camera_view": "back_three_quarter", + "action_family": "reverse_cowgirl", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "anal missionary - front view - 3-4 angle", + "folder_alias": { + "exact_source_folder": "anal missionary - front view - 3-4 angle", + "canonical_folder": "anal missionary - front view - 3-4 angle", + "canonical_key": "anal_missionary_front_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 4, + "selected_reference_count": 3, + "remaining_image_count": 1, + "covered_by_variants": true, + "camera_view": "front_three_quarter", + "action_family": "missionary", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "anus exposed - back view", + "folder_alias": { + "exact_source_folder": "anus exposed - back view", + "canonical_folder": "anus exposed - back view", + "canonical_key": "anus_exposed_back_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 4, + "selected_reference_count": 3, + "remaining_image_count": 1, + "covered_by_variants": true, + "camera_view": "back_view", + "action_family": "display", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "doggy - front view ", + "folder_alias": { + "exact_source_folder": "doggy - front view ", + "canonical_folder": "doggy - front view", + "canonical_key": "doggy_front_view", + "alias_applied": true, + "alias_reason": "Trailing-space source folder preserved exactly for path stability." + }, + "image_count": 13, + "selected_reference_count": 12, + "remaining_image_count": 1, + "covered_by_variants": true, + "camera_view": "front_view", + "action_family": "doggy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "fuck from front - front view -low angle", + "folder_alias": { + "exact_source_folder": "fuck from front - front view -low angle", + "canonical_folder": "fuck from front - front view -low angle", + "canonical_key": "fuck_from_front_front_view_low_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 4, + "selected_reference_count": 3, + "remaining_image_count": 1, + "covered_by_variants": true, + "camera_view": "front_view", + "action_family": "front_penetration", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "handjob - both sitting - front view", + "folder_alias": { + "exact_source_folder": "handjob - both sitting - front view", + "canonical_folder": "handjob - both sitting - front view", + "canonical_key": "handjob_both_sitting_front_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 4, + "selected_reference_count": 3, + "remaining_image_count": 1, + "covered_by_variants": true, + "camera_view": "front_view", + "action_family": "manual_or_toy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "handjob - laying - front view - 3-4 angle", + "folder_alias": { + "exact_source_folder": "handjob - laying - front view - 3-4 angle", + "canonical_folder": "handjob - laying - front view - 3-4 angle", + "canonical_key": "handjob_laying_front_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 4, + "selected_reference_count": 3, + "remaining_image_count": 1, + "covered_by_variants": true, + "camera_view": "front_three_quarter", + "action_family": "manual_or_toy", + "catalog_status": "camera_reference", + "suggested_action": "mine_remaining_reference_images" + }, + { + "folder": "wand", + "folder_alias": { + "exact_source_folder": "wand", + "canonical_folder": "wand", + "canonical_key": "wand", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 9, + "selected_reference_count": 8, + "remaining_image_count": 1, + "covered_by_variants": true, + "camera_view": "mixed_or_unspecified", + "action_family": "manual_or_toy", + "catalog_status": "action_reference_only", + "suggested_action": "split_or_expand_selected_reference_subvariants" + } + ] +} diff --git a/ab_batches/normal_camera/review/69_contact_sheet.html b/ab_batches/normal_camera/review/69_contact_sheet.html new file mode 100644 index 0000000..ac106da --- /dev/null +++ b/ab_batches/normal_camera/review/69_contact_sheet.html @@ -0,0 +1,77 @@ + + + + +Normal Camera Review Contact Sheet: 69 + + + +

Normal Camera Review Contact Sheet: 69

+

No-generation contact sheet. 10 JPGs from 69. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: 69.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-10

+
+
+69/0002.jpg +
001 69/0002.jpgbucket: front_view / normal_sixty_nine_front_close_view
+
+
+69/6.jpg +
002 69/6.jpgbucket: unassigned
+
+
+69/0008.jpg +
003 69/0008.jpgbucket: front_view / normal_sixty_nine_front_close_view
+
+
+69/0016.jpg +
004 69/0016.jpgbucket: front_view / normal_sixty_nine_front_close_view
+
+
+69/19.jpg +
005 69/19.jpgbucket: front_view / normal_sixty_nine_front_close_view
+
+
+69/166.jpg +
006 69/166.jpgbucket: front_view / normal_sixty_nine_front_close_view
+
+
+69/196.jpg +
007 69/196.jpgbucket: reject_or_unclear / normal_sixty_nine_mixed_camera_folder_pool
+
+
+69/292.jpg +
008 69/292.jpgbucket: front_view / normal_sixty_nine_front_close_view
+
+
+69/354.jpg +
009 69/354.jpgbucket: unassigned
+
+
+69/624.jpg +
010 69/624.jpgbucket: front_view / normal_sixty_nine_front_close_view
+
+
+ + diff --git a/ab_batches/normal_camera/review/69_review_manifest.json b/ab_batches/normal_camera/review/69_review_manifest.json new file mode 100644 index 0000000..49117b9 --- /dev/null +++ b/ab_batches/normal_camera/review/69_review_manifest.json @@ -0,0 +1,248 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "69", + "folder_alias": { + "exact_source_folder": "69", + "canonical_folder": "69", + "canonical_key": "69", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 10, + "action_family": "oral_other", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_sixty_nine_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "69/0002.jpg", + "69/196.jpg", + "69/624.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the folder as a mixed source-pool anchor. The source images include useful mutual oral-contact examples, but side/downward, upright seated, and wider room-context frames keep the full folder from being one locked prompt-ready route." + }, + { + "variant_key": "normal_sixty_nine_front_close_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "69/0002.jpg", + "69/0008.jpg", + "69/0016.jpg", + "69/19.jpg", + "69/166.jpg", + "69/292.jpg", + "69/624.jpg" + ], + "evidence_notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset." + } + ], + "review_items": [ + { + "reference_image": "69/0002.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_sixty_nine_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset.", + "index": 1 + }, + { + "index": 2, + "reference_image": "69/6.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "69/0008.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_sixty_nine_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset.", + "index": 3 + }, + { + "reference_image": "69/0016.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_sixty_nine_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset.", + "index": 4 + }, + { + "reference_image": "69/19.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_sixty_nine_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset.", + "index": 5 + }, + { + "reference_image": "69/166.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_sixty_nine_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset.", + "index": 6 + }, + { + "reference_image": "69/196.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_sixty_nine_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the folder as a mixed source-pool anchor. The source images include useful mutual oral-contact examples, but side/downward, upright seated, and wider room-context frames keep the full folder from being one locked prompt-ready route.", + "index": 7 + }, + { + "reference_image": "69/292.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_sixty_nine_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset.", + "index": 8 + }, + { + "index": 9, + "reference_image": "69/354.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "69/624.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_sixty_nine_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset.", + "index": 10 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 10, + "image_count": 10, + "images": [ + { + "index": 1, + "reference_image": "69/0002.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_sixty_nine_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset." + }, + { + "index": 2, + "reference_image": "69/6.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 3, + "reference_image": "69/0008.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_sixty_nine_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset." + }, + { + "index": 4, + "reference_image": "69/0016.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_sixty_nine_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset." + }, + { + "index": 5, + "reference_image": "69/19.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_sixty_nine_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset." + }, + { + "index": 6, + "reference_image": "69/166.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_sixty_nine_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset." + }, + { + "index": 7, + "reference_image": "69/196.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_sixty_nine_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the folder as a mixed source-pool anchor. The source images include useful mutual oral-contact examples, but side/downward, upright seated, and wider room-context frames keep the full folder from being one locked prompt-ready route." + }, + { + "index": 8, + "reference_image": "69/292.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_sixty_nine_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset." + }, + { + "index": 9, + "reference_image": "69/354.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "69/624.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_sixty_nine_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the upper subject faces camera and the opposed oral-contact pose stays centered. Side/downward, upright seated, and wider room-context outliers remain outside this selected subset." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/anal_cowgirl_contact_sheet.html b/ab_batches/normal_camera/review/anal_cowgirl_contact_sheet.html new file mode 100644 index 0000000..33dd621 --- /dev/null +++ b/ab_batches/normal_camera/review/anal_cowgirl_contact_sheet.html @@ -0,0 +1,41 @@ + + + + +Normal Camera Review Contact Sheet: anal cowgirl + + + +

Normal Camera Review Contact Sheet: anal cowgirl

+

No-generation contact sheet. 1 JPGs from anal cowgirl. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: anal cowgirl.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-1

+
+
+anal cowgirl/49.jpg +
001 anal cowgirl/49.jpgbucket: reject_or_unclear / normal_anal_cowgirl_single_reference_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/anal_cowgirl_review_manifest.json b/ab_batches/normal_camera/review/anal_cowgirl_review_manifest.json new file mode 100644 index 0000000..cd97e13 --- /dev/null +++ b/ab_batches/normal_camera/review/anal_cowgirl_review_manifest.json @@ -0,0 +1,75 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "anal cowgirl", + "folder_alias": { + "exact_source_folder": "anal cowgirl", + "canonical_folder": "anal cowgirl", + "canonical_key": "anal_cowgirl", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 1, + "action_family": "cowgirl", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_anal_cowgirl_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "anal cowgirl/49.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the one available sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ], + "review_items": [ + { + "reference_image": "anal cowgirl/49.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_anal_cowgirl_single_reference_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the one available sample as coverage evidence only. A single image cannot define a stable normal-camera route.", + "index": 1 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 1, + "image_count": 1, + "images": [ + { + "index": 1, + "reference_image": "anal cowgirl/49.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_anal_cowgirl_single_reference_pool", + "notes": "Contact-sheet review preserved the one available sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/anal_doggy_side_view_contact_sheet.html b/ab_batches/normal_camera/review/anal_doggy_side_view_contact_sheet.html new file mode 100644 index 0000000..d2b5faa --- /dev/null +++ b/ab_batches/normal_camera/review/anal_doggy_side_view_contact_sheet.html @@ -0,0 +1,41 @@ + + + + +Normal Camera Review Contact Sheet: anal doggy - side view + + + +

Normal Camera Review Contact Sheet: anal doggy - side view

+

No-generation contact sheet. 1 JPGs from anal doggy - side view. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: anal doggy - side view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-1

+
+
+anal doggy - side view/16.jpg +
001 anal doggy - side view/16.jpgbucket: reject_or_unclear / normal_anal_doggy_side_view_single_reference_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/anal_doggy_side_view_review_manifest.json b/ab_batches/normal_camera/review/anal_doggy_side_view_review_manifest.json new file mode 100644 index 0000000..0848deb --- /dev/null +++ b/ab_batches/normal_camera/review/anal_doggy_side_view_review_manifest.json @@ -0,0 +1,75 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "anal doggy - side view", + "folder_alias": { + "exact_source_folder": "anal doggy - side view", + "canonical_folder": "anal doggy - side view", + "canonical_key": "anal_doggy_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 1, + "action_family": "doggy", + "source_camera_view": "side_view", + "source_catalog_status": "thin_sample", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_anal_doggy_side_view_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "anal doggy - side view/16.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the one side-view sample as coverage evidence only. The label is plausible, but a single image is too thin for a selected pre-A/B route." + } + ], + "review_items": [ + { + "reference_image": "anal doggy - side view/16.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_anal_doggy_side_view_single_reference_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the one side-view sample as coverage evidence only. The label is plausible, but a single image is too thin for a selected pre-A/B route.", + "index": 1 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 1, + "image_count": 1, + "images": [ + { + "index": 1, + "reference_image": "anal doggy - side view/16.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_anal_doggy_side_view_single_reference_pool", + "notes": "Contact-sheet review preserved the one side-view sample as coverage evidence only. The label is plausible, but a single image is too thin for a selected pre-A/B route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/anal_fuck_from_behind_laying_back_view_3_4_angle_contact_sheet.html b/ab_batches/normal_camera/review/anal_fuck_from_behind_laying_back_view_3_4_angle_contact_sheet.html new file mode 100644 index 0000000..2f6a739 --- /dev/null +++ b/ab_batches/normal_camera/review/anal_fuck_from_behind_laying_back_view_3_4_angle_contact_sheet.html @@ -0,0 +1,41 @@ + + + + +Normal Camera Review Contact Sheet: anal fuck from behind laying - back view - 3-4 angle + + + +

Normal Camera Review Contact Sheet: anal fuck from behind laying - back view - 3-4 angle

+

No-generation contact sheet. 1 JPGs from anal fuck from behind laying - back view - 3-4 angle. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: anal fuck from behind laying - back view - 3-4 angle.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-1

+
+
+anal fuck from behind laying - back view - 3-4 angle/14.jpg +
001 anal fuck from behind laying - back view - 3-4 angle/14.jpgbucket: reject_or_unclear / normal_anal_laying_back_three_quarter_single_reference_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/anal_fuck_from_behind_laying_back_view_3_4_angle_review_manifest.json b/ab_batches/normal_camera/review/anal_fuck_from_behind_laying_back_view_3_4_angle_review_manifest.json new file mode 100644 index 0000000..443a4db --- /dev/null +++ b/ab_batches/normal_camera/review/anal_fuck_from_behind_laying_back_view_3_4_angle_review_manifest.json @@ -0,0 +1,75 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "anal fuck from behind laying - back view - 3-4 angle", + "folder_alias": { + "exact_source_folder": "anal fuck from behind laying - back view - 3-4 angle", + "canonical_folder": "anal fuck from behind laying - back view - 3-4 angle", + "canonical_key": "anal_fuck_from_behind_laying_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 1, + "action_family": "doggy", + "source_camera_view": "back_three_quarter", + "source_catalog_status": "thin_sample", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_anal_laying_back_three_quarter_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "anal fuck from behind laying - back view - 3-4 angle/14.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the one rear three-quarter sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ], + "review_items": [ + { + "reference_image": "anal fuck from behind laying - back view - 3-4 angle/14.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_anal_laying_back_three_quarter_single_reference_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the one rear three-quarter sample as coverage evidence only. A single image cannot define a stable normal-camera route.", + "index": 1 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 1, + "image_count": 1, + "images": [ + { + "index": 1, + "reference_image": "anal fuck from behind laying - back view - 3-4 angle/14.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_anal_laying_back_three_quarter_single_reference_pool", + "notes": "Contact-sheet review preserved the one rear three-quarter sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/anal_random_contact_sheet.html b/ab_batches/normal_camera/review/anal_random_contact_sheet.html new file mode 100644 index 0000000..a8982e9 --- /dev/null +++ b/ab_batches/normal_camera/review/anal_random_contact_sheet.html @@ -0,0 +1,439 @@ + + + + +Normal Camera Review Contact Sheet: anal random + + + +

Normal Camera Review Contact Sheet: anal random

+

No-generation contact sheet. 99 JPGs from anal random. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: anal random.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-40

+
+
+anal random/0001.jpg +
001 anal random/0001.jpgbucket: unassigned
+
+
+anal random/0002.jpg +
002 anal random/0002.jpgbucket: unassigned
+
+
+anal random/0002_2.jpg +
003 anal random/0002_2.jpgbucket: unassigned
+
+
+anal random/0002_3.jpg +
004 anal random/0002_3.jpgbucket: unassigned
+
+
+anal random/0003.jpg +
005 anal random/0003.jpgbucket: back_three_quarter / normal_anal_random_back_side_offset_view
+
+
+anal random/0003_2.jpg +
006 anal random/0003_2.jpgbucket: unassigned
+
+
+anal random/0003_3.jpg +
007 anal random/0003_3.jpgbucket: back_three_quarter / normal_anal_random_back_side_offset_view
+
+
+anal random/0003_4.jpg +
008 anal random/0003_4.jpgbucket: unassigned
+
+
+anal random/0005.jpg +
009 anal random/0005.jpgbucket: front_view / normal_anal_random_front_view
+
+
+anal random/0006.jpg +
010 anal random/0006.jpgbucket: front_view / normal_anal_random_front_view
+
+
+anal random/0008.jpg +
011 anal random/0008.jpgbucket: unassigned
+
+
+anal random/0008_2.jpg +
012 anal random/0008_2.jpgbucket: unassigned
+
+
+anal random/0009.jpg +
013 anal random/0009.jpgbucket: unassigned
+
+
+anal random/0010.jpg +
014 anal random/0010.jpgbucket: back_three_quarter / normal_anal_random_back_side_offset_view
+
+
+anal random/0011.jpg +
015 anal random/0011.jpgbucket: unassigned
+
+
+anal random/0012.jpg +
016 anal random/0012.jpgbucket: unassigned
+
+
+anal random/0013.jpg +
017 anal random/0013.jpgbucket: back_three_quarter / normal_anal_random_back_side_offset_view
+
+
+anal random/0014.jpg +
018 anal random/0014.jpgbucket: unassigned
+
+
+anal random/0014_2.jpg +
019 anal random/0014_2.jpgbucket: unassigned
+
+
+anal random/0015.jpg +
020 anal random/0015.jpgbucket: front_view / normal_anal_random_front_view
+
+
+anal random/0018.jpg +
021 anal random/0018.jpgbucket: unassigned
+
+
+anal random/94.jpg +
022 anal random/94.jpgbucket: unassigned
+
+
+anal random/94_2.jpg +
023 anal random/94_2.jpgbucket: unassigned
+
+
+anal random/94_3.jpg +
024 anal random/94_3.jpgbucket: unassigned
+
+
+anal random/94_4.jpg +
025 anal random/94_4.jpgbucket: unassigned
+
+
+anal random/94_5.jpg +
026 anal random/94_5.jpgbucket: unassigned
+
+
+anal random/118.jpg +
027 anal random/118.jpgbucket: unassigned
+
+
+anal random/118_2.jpg +
028 anal random/118_2.jpgbucket: unassigned
+
+
+anal random/119.jpg +
029 anal random/119.jpgbucket: back_three_quarter / normal_anal_random_back_side_offset_view
+
+
+anal random/119_2.jpg +
030 anal random/119_2.jpgbucket: back_three_quarter / normal_anal_random_back_side_offset_view
+
+
+anal random/119_3.jpg +
031 anal random/119_3.jpgbucket: back_three_quarter / normal_anal_random_back_side_offset_view
+
+
+anal random/124.jpg +
032 anal random/124.jpgbucket: unassigned
+
+
+anal random/124_2.jpg +
033 anal random/124_2.jpgbucket: back_three_quarter / normal_anal_random_back_side_offset_view
+
+
+anal random/124_3.jpg +
034 anal random/124_3.jpgbucket: unassigned
+
+
+anal random/124_4.jpg +
035 anal random/124_4.jpgbucket: unassigned
+
+
+anal random/124_5.jpg +
036 anal random/124_5.jpgbucket: unassigned
+
+
+anal random/124_6.jpg +
037 anal random/124_6.jpgbucket: unassigned
+
+
+anal random/124_7.jpg +
038 anal random/124_7.jpgbucket: unassigned
+
+
+anal random/124_8.jpg +
039 anal random/124_8.jpgbucket: back_three_quarter / normal_anal_random_back_side_offset_view
+
+
+anal random/124_9.jpg +
040 anal random/124_9.jpgbucket: unassigned
+
+
+

Page 2: 41-80

+
+
+anal random/133.jpg +
041 anal random/133.jpgbucket: unassigned
+
+
+anal random/133_2.jpg +
042 anal random/133_2.jpgbucket: unassigned
+
+
+anal random/160.jpg +
043 anal random/160.jpgbucket: unassigned
+
+
+anal random/160_2.jpg +
044 anal random/160_2.jpgbucket: unassigned
+
+
+anal random/160_3.jpg +
045 anal random/160_3.jpgbucket: front_view / normal_anal_random_front_view
+
+
+anal random/186.jpg +
046 anal random/186.jpgbucket: unassigned
+
+
+anal random/186_2.jpg +
047 anal random/186_2.jpgbucket: unassigned
+
+
+anal random/186_3.jpg +
048 anal random/186_3.jpgbucket: unassigned
+
+
+anal random/186_4.jpg +
049 anal random/186_4.jpgbucket: unassigned
+
+
+anal random/188.jpg +
050 anal random/188.jpgbucket: front_view / normal_anal_random_front_view
+
+
+anal random/188_2.jpg +
051 anal random/188_2.jpgbucket: unassigned
+
+
+anal random/223.jpg +
052 anal random/223.jpgbucket: unassigned
+
+
+anal random/223_2.jpg +
053 anal random/223_2.jpgbucket: unassigned
+
+
+anal random/266.jpg +
054 anal random/266.jpgbucket: unassigned
+
+
+anal random/266_2.jpg +
055 anal random/266_2.jpgbucket: unassigned
+
+
+anal random/266_3.jpg +
056 anal random/266_3.jpgbucket: unassigned
+
+
+anal random/272.jpg +
057 anal random/272.jpgbucket: unassigned
+
+
+anal random/272_2.jpg +
058 anal random/272_2.jpgbucket: unassigned
+
+
+anal random/281.jpg +
059 anal random/281.jpgbucket: unassigned
+
+
+anal random/283.jpg +
060 anal random/283.jpgbucket: unassigned
+
+
+anal random/283_2.jpg +
061 anal random/283_2.jpgbucket: unassigned
+
+
+anal random/283_3.jpg +
062 anal random/283_3.jpgbucket: unassigned
+
+
+anal random/286.jpg +
063 anal random/286.jpgbucket: unassigned
+
+
+anal random/286_2.jpg +
064 anal random/286_2.jpgbucket: unassigned
+
+
+anal random/291.jpg +
065 anal random/291.jpgbucket: unassigned
+
+
+anal random/291_2.jpg +
066 anal random/291_2.jpgbucket: unassigned
+
+
+anal random/291_3.jpg +
067 anal random/291_3.jpgbucket: unassigned
+
+
+anal random/318.jpg +
068 anal random/318.jpgbucket: unassigned
+
+
+anal random/318_2.jpg +
069 anal random/318_2.jpgbucket: unassigned
+
+
+anal random/318_3.jpg +
070 anal random/318_3.jpgbucket: unassigned
+
+
+anal random/338.jpg +
071 anal random/338.jpgbucket: unassigned
+
+
+anal random/347.jpg +
072 anal random/347.jpgbucket: unassigned
+
+
+anal random/347_2.jpg +
073 anal random/347_2.jpgbucket: unassigned
+
+
+anal random/347_3.jpg +
074 anal random/347_3.jpgbucket: front_view / normal_anal_random_front_view
+
+
+anal random/347_4.jpg +
075 anal random/347_4.jpgbucket: back_three_quarter / normal_anal_random_back_side_offset_view
+
+
+anal random/347_5.jpg +
076 anal random/347_5.jpgbucket: back_three_quarter / normal_anal_random_back_side_offset_view
+
+
+anal random/347_6.jpg +
077 anal random/347_6.jpgbucket: unassigned
+
+
+anal random/347_7.jpg +
078 anal random/347_7.jpgbucket: unassigned
+
+
+anal random/347_8.jpg +
079 anal random/347_8.jpgbucket: back_three_quarter / normal_anal_random_back_side_offset_view
+
+
+anal random/347_9.jpg +
080 anal random/347_9.jpgbucket: unassigned
+
+
+

Page 3: 81-99

+
+
+anal random/347_10.jpg +
081 anal random/347_10.jpgbucket: front_view / normal_anal_random_front_view
+
+
+anal random/347_11.jpg +
082 anal random/347_11.jpgbucket: front_view / normal_anal_random_front_view
+
+
+anal random/366.jpg +
083 anal random/366.jpgbucket: front_view / normal_anal_random_front_view
+
+
+anal random/366_2.jpg +
084 anal random/366_2.jpgbucket: unassigned
+
+
+anal random/366_3.jpg +
085 anal random/366_3.jpgbucket: front_view / normal_anal_random_front_view
+
+
+anal random/366_4.jpg +
086 anal random/366_4.jpgbucket: front_view / normal_anal_random_front_view
+
+
+anal random/366_5.jpg +
087 anal random/366_5.jpgbucket: unassigned
+
+
+anal random/367.jpg +
088 anal random/367.jpgbucket: unassigned
+
+
+anal random/367_2.jpg +
089 anal random/367_2.jpgbucket: unassigned
+
+
+anal random/367_3.jpg +
090 anal random/367_3.jpgbucket: unassigned
+
+
+anal random/367_4.jpg +
091 anal random/367_4.jpgbucket: unassigned
+
+
+anal random/562.jpg +
092 anal random/562.jpgbucket: unassigned
+
+
+anal random/569.jpg +
093 anal random/569.jpgbucket: unassigned
+
+
+anal random/569_2.jpg +
094 anal random/569_2.jpgbucket: unassigned
+
+
+anal random/589.jpg +
095 anal random/589.jpgbucket: unassigned
+
+
+anal random/589_2.jpg +
096 anal random/589_2.jpgbucket: unassigned
+
+
+anal random/589_3.jpg +
097 anal random/589_3.jpgbucket: unassigned
+
+
+anal random/589_4.jpg +
098 anal random/589_4.jpgbucket: unassigned
+
+
+anal random/595.jpg +
099 anal random/595.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/anal_random_review_manifest.json b/ab_batches/normal_camera/review/anal_random_review_manifest.json new file mode 100644 index 0000000..88c5413 --- /dev/null +++ b/ab_batches/normal_camera/review/anal_random_review_manifest.json @@ -0,0 +1,1866 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "anal random", + "folder_alias": { + "exact_source_folder": "anal random", + "canonical_folder": "anal random", + "canonical_key": "anal_random", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 99, + "action_family": "anal", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_anal_random_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "anal random/0005.jpg", + "anal random/0006.jpg", + "anal random/0015.jpg", + "anal random/160_3.jpg", + "anal random/188.jpg", + "anal random/347_3.jpg", + "anal random/347_10.jpg", + "anal random/347_11.jpg", + "anal random/366.jpg", + "anal random/366_3.jpg", + "anal random/366_4.jpg" + ], + "evidence_notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool." + }, + { + "variant_key": "normal_anal_random_back_side_offset_view", + "review_bucket": "back_three_quarter", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "anal random/0003.jpg", + "anal random/0003_3.jpg", + "anal random/0010.jpg", + "anal random/0013.jpg", + "anal random/119.jpg", + "anal random/119_2.jpg", + "anal random/119_3.jpg", + "anal random/124_2.jpg", + "anal random/124_8.jpg", + "anal random/347_4.jpg", + "anal random/347_5.jpg", + "anal random/347_8.jpg" + ], + "evidence_notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool." + } + ], + "review_items": [ + { + "index": 1, + "reference_image": "anal random/0001.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 2, + "reference_image": "anal random/0002.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 3, + "reference_image": "anal random/0002_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 4, + "reference_image": "anal random/0002_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/0003.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_anal_random_back_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool.", + "index": 5 + }, + { + "index": 6, + "reference_image": "anal random/0003_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/0003_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_anal_random_back_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool.", + "index": 7 + }, + { + "index": 8, + "reference_image": "anal random/0003_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/0005.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_anal_random_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool.", + "index": 9 + }, + { + "reference_image": "anal random/0006.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_anal_random_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool.", + "index": 10 + }, + { + "index": 11, + "reference_image": "anal random/0008.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 12, + "reference_image": "anal random/0008_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 13, + "reference_image": "anal random/0009.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/0010.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_anal_random_back_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool.", + "index": 14 + }, + { + "index": 15, + "reference_image": "anal random/0011.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 16, + "reference_image": "anal random/0012.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/0013.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_anal_random_back_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool.", + "index": 17 + }, + { + "index": 18, + "reference_image": "anal random/0014.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 19, + "reference_image": "anal random/0014_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/0015.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_anal_random_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool.", + "index": 20 + }, + { + "index": 21, + "reference_image": "anal random/0018.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 22, + "reference_image": "anal random/94.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "anal random/94_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 24, + "reference_image": "anal random/94_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 25, + "reference_image": "anal random/94_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 26, + "reference_image": "anal random/94_5.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 27, + "reference_image": "anal random/118.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 28, + "reference_image": "anal random/118_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/119.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_anal_random_back_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool.", + "index": 29 + }, + { + "reference_image": "anal random/119_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_anal_random_back_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool.", + "index": 30 + }, + { + "reference_image": "anal random/119_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_anal_random_back_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool.", + "index": 31 + }, + { + "index": 32, + "reference_image": "anal random/124.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/124_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_anal_random_back_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool.", + "index": 33 + }, + { + "index": 34, + "reference_image": "anal random/124_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 35, + "reference_image": "anal random/124_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 36, + "reference_image": "anal random/124_5.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 37, + "reference_image": "anal random/124_6.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 38, + "reference_image": "anal random/124_7.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/124_8.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_anal_random_back_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool.", + "index": 39 + }, + { + "index": 40, + "reference_image": "anal random/124_9.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 41, + "reference_image": "anal random/133.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 42, + "reference_image": "anal random/133_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 43, + "reference_image": "anal random/160.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 44, + "reference_image": "anal random/160_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/160_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_anal_random_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool.", + "index": 45 + }, + { + "index": 46, + "reference_image": "anal random/186.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 47, + "reference_image": "anal random/186_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 48, + "reference_image": "anal random/186_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 49, + "reference_image": "anal random/186_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/188.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_anal_random_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool.", + "index": 50 + }, + { + "index": 51, + "reference_image": "anal random/188_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 52, + "reference_image": "anal random/223.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 53, + "reference_image": "anal random/223_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 54, + "reference_image": "anal random/266.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 55, + "reference_image": "anal random/266_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 56, + "reference_image": "anal random/266_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 57, + "reference_image": "anal random/272.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 58, + "reference_image": "anal random/272_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 59, + "reference_image": "anal random/281.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 60, + "reference_image": "anal random/283.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 61, + "reference_image": "anal random/283_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 62, + "reference_image": "anal random/283_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 63, + "reference_image": "anal random/286.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 64, + "reference_image": "anal random/286_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 65, + "reference_image": "anal random/291.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 66, + "reference_image": "anal random/291_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 67, + "reference_image": "anal random/291_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 68, + "reference_image": "anal random/318.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 69, + "reference_image": "anal random/318_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 70, + "reference_image": "anal random/318_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 71, + "reference_image": "anal random/338.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 72, + "reference_image": "anal random/347.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 73, + "reference_image": "anal random/347_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/347_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_anal_random_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool.", + "index": 74 + }, + { + "reference_image": "anal random/347_4.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_anal_random_back_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool.", + "index": 75 + }, + { + "reference_image": "anal random/347_5.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_anal_random_back_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool.", + "index": 76 + }, + { + "index": 77, + "reference_image": "anal random/347_6.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 78, + "reference_image": "anal random/347_7.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/347_8.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_anal_random_back_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool.", + "index": 79 + }, + { + "index": 80, + "reference_image": "anal random/347_9.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/347_10.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_anal_random_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool.", + "index": 81 + }, + { + "reference_image": "anal random/347_11.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_anal_random_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool.", + "index": 82 + }, + { + "reference_image": "anal random/366.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_anal_random_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool.", + "index": 83 + }, + { + "index": 84, + "reference_image": "anal random/366_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "anal random/366_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_anal_random_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool.", + "index": 85 + }, + { + "reference_image": "anal random/366_4.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_anal_random_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool.", + "index": 86 + }, + { + "index": 87, + "reference_image": "anal random/366_5.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 88, + "reference_image": "anal random/367.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 89, + "reference_image": "anal random/367_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 90, + "reference_image": "anal random/367_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 91, + "reference_image": "anal random/367_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 92, + "reference_image": "anal random/562.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 93, + "reference_image": "anal random/569.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 94, + "reference_image": "anal random/569_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 95, + "reference_image": "anal random/589.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 96, + "reference_image": "anal random/589_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 97, + "reference_image": "anal random/589_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 98, + "reference_image": "anal random/589_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 99, + "reference_image": "anal random/595.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 40, + "image_count": 40, + "images": [ + { + "index": 1, + "reference_image": "anal random/0001.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 2, + "reference_image": "anal random/0002.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 3, + "reference_image": "anal random/0002_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 4, + "reference_image": "anal random/0002_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "anal random/0003.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_back_side_offset_view", + "notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool." + }, + { + "index": 6, + "reference_image": "anal random/0003_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 7, + "reference_image": "anal random/0003_3.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_back_side_offset_view", + "notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool." + }, + { + "index": 8, + "reference_image": "anal random/0003_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "anal random/0005.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_front_view", + "notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool." + }, + { + "index": 10, + "reference_image": "anal random/0006.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_front_view", + "notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool." + }, + { + "index": 11, + "reference_image": "anal random/0008.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "anal random/0008_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "anal random/0009.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 14, + "reference_image": "anal random/0010.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_back_side_offset_view", + "notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool." + }, + { + "index": 15, + "reference_image": "anal random/0011.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "anal random/0012.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "anal random/0013.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_back_side_offset_view", + "notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool." + }, + { + "index": 18, + "reference_image": "anal random/0014.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 19, + "reference_image": "anal random/0014_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "anal random/0015.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_front_view", + "notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool." + }, + { + "index": 21, + "reference_image": "anal random/0018.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "anal random/94.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "anal random/94_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "anal random/94_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "anal random/94_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "anal random/94_5.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 27, + "reference_image": "anal random/118.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "anal random/118_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 29, + "reference_image": "anal random/119.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_back_side_offset_view", + "notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool." + }, + { + "index": 30, + "reference_image": "anal random/119_2.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_back_side_offset_view", + "notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool." + }, + { + "index": 31, + "reference_image": "anal random/119_3.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_back_side_offset_view", + "notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool." + }, + { + "index": 32, + "reference_image": "anal random/124.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "anal random/124_2.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_back_side_offset_view", + "notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool." + }, + { + "index": 34, + "reference_image": "anal random/124_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 35, + "reference_image": "anal random/124_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 36, + "reference_image": "anal random/124_5.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 37, + "reference_image": "anal random/124_6.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 38, + "reference_image": "anal random/124_7.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 39, + "reference_image": "anal random/124_8.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_back_side_offset_view", + "notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool." + }, + { + "index": 40, + "reference_image": "anal random/124_9.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 2, + "html_anchor": "page-02", + "start_index": 41, + "end_index": 80, + "image_count": 40, + "images": [ + { + "index": 41, + "reference_image": "anal random/133.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 42, + "reference_image": "anal random/133_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 43, + "reference_image": "anal random/160.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 44, + "reference_image": "anal random/160_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 45, + "reference_image": "anal random/160_3.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_front_view", + "notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool." + }, + { + "index": 46, + "reference_image": "anal random/186.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 47, + "reference_image": "anal random/186_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 48, + "reference_image": "anal random/186_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 49, + "reference_image": "anal random/186_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 50, + "reference_image": "anal random/188.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_front_view", + "notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool." + }, + { + "index": 51, + "reference_image": "anal random/188_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 52, + "reference_image": "anal random/223.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 53, + "reference_image": "anal random/223_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 54, + "reference_image": "anal random/266.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 55, + "reference_image": "anal random/266_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 56, + "reference_image": "anal random/266_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 57, + "reference_image": "anal random/272.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 58, + "reference_image": "anal random/272_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 59, + "reference_image": "anal random/281.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 60, + "reference_image": "anal random/283.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 61, + "reference_image": "anal random/283_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 62, + "reference_image": "anal random/283_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 63, + "reference_image": "anal random/286.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 64, + "reference_image": "anal random/286_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 65, + "reference_image": "anal random/291.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 66, + "reference_image": "anal random/291_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 67, + "reference_image": "anal random/291_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 68, + "reference_image": "anal random/318.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 69, + "reference_image": "anal random/318_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 70, + "reference_image": "anal random/318_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 71, + "reference_image": "anal random/338.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 72, + "reference_image": "anal random/347.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 73, + "reference_image": "anal random/347_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 74, + "reference_image": "anal random/347_3.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_front_view", + "notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool." + }, + { + "index": 75, + "reference_image": "anal random/347_4.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_back_side_offset_view", + "notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool." + }, + { + "index": 76, + "reference_image": "anal random/347_5.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_back_side_offset_view", + "notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool." + }, + { + "index": 77, + "reference_image": "anal random/347_6.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 78, + "reference_image": "anal random/347_7.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 79, + "reference_image": "anal random/347_8.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_back_side_offset_view", + "notes": "Residual-pool review found a repeated rear/side-offset anal camera family with third-person framing. Front-view, standing, overhead-like, and tight close-crop frames remain in the mixed source pool." + }, + { + "index": 80, + "reference_image": "anal random/347_9.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 3, + "html_anchor": "page-03", + "start_index": 81, + "end_index": 99, + "image_count": 19, + "images": [ + { + "index": 81, + "reference_image": "anal random/347_10.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_front_view", + "notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool." + }, + { + "index": 82, + "reference_image": "anal random/347_11.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_front_view", + "notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool." + }, + { + "index": 83, + "reference_image": "anal random/366.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_front_view", + "notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool." + }, + { + "index": 84, + "reference_image": "anal random/366_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 85, + "reference_image": "anal random/366_3.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_front_view", + "notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool." + }, + { + "index": 86, + "reference_image": "anal random/366_4.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_anal_random_front_view", + "notes": "Paged review found a repeated front-view anal camera family. Side, rear, standing, and overhead-like frames remain in the mixed source pool." + }, + { + "index": 87, + "reference_image": "anal random/366_5.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 88, + "reference_image": "anal random/367.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 89, + "reference_image": "anal random/367_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 90, + "reference_image": "anal random/367_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 91, + "reference_image": "anal random/367_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 92, + "reference_image": "anal random/562.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 93, + "reference_image": "anal random/569.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 94, + "reference_image": "anal random/569_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 95, + "reference_image": "anal random/589.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 96, + "reference_image": "anal random/589_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 97, + "reference_image": "anal random/589_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 98, + "reference_image": "anal random/589_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 99, + "reference_image": "anal random/595.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/anal_reverse_congress_contact_sheet.html b/ab_batches/normal_camera/review/anal_reverse_congress_contact_sheet.html new file mode 100644 index 0000000..59d8723 --- /dev/null +++ b/ab_batches/normal_camera/review/anal_reverse_congress_contact_sheet.html @@ -0,0 +1,41 @@ + + + + +Normal Camera Review Contact Sheet: anal reverse congress + + + +

Normal Camera Review Contact Sheet: anal reverse congress

+

No-generation contact sheet. 1 JPGs from anal reverse congress. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: anal reverse congress.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-1

+
+
+anal reverse congress/160.jpg +
001 anal reverse congress/160.jpgbucket: reject_or_unclear / normal_anal_reverse_congress_single_reference_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/anal_reverse_congress_review_manifest.json b/ab_batches/normal_camera/review/anal_reverse_congress_review_manifest.json new file mode 100644 index 0000000..f0ee42a --- /dev/null +++ b/ab_batches/normal_camera/review/anal_reverse_congress_review_manifest.json @@ -0,0 +1,75 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "anal reverse congress", + "folder_alias": { + "exact_source_folder": "anal reverse congress", + "canonical_folder": "anal reverse congress", + "canonical_key": "anal_reverse_congress", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 1, + "action_family": "reverse_congress", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_anal_reverse_congress_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "anal reverse congress/160.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the one available sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ], + "review_items": [ + { + "reference_image": "anal reverse congress/160.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_anal_reverse_congress_single_reference_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the one available sample as coverage evidence only. A single image cannot define a stable normal-camera route.", + "index": 1 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 1, + "image_count": 1, + "images": [ + { + "index": 1, + "reference_image": "anal reverse congress/160.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_anal_reverse_congress_single_reference_pool", + "notes": "Contact-sheet review preserved the one available sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/anus_lickiing_contact_sheet.html b/ab_batches/normal_camera/review/anus_lickiing_contact_sheet.html new file mode 100644 index 0000000..11fd3c4 --- /dev/null +++ b/ab_batches/normal_camera/review/anus_lickiing_contact_sheet.html @@ -0,0 +1,41 @@ + + + + +Normal Camera Review Contact Sheet: anus lickiing + + + +

Normal Camera Review Contact Sheet: anus lickiing

+

No-generation contact sheet. 1 JPGs from anus lickiing. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: anus licking.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-1

+
+
+anus lickiing/0004.jpg +
001 anus lickiing/0004.jpgbucket: reject_or_unclear / normal_anus_licking_single_reference_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/anus_lickiing_review_manifest.json b/ab_batches/normal_camera/review/anus_lickiing_review_manifest.json new file mode 100644 index 0000000..e18274e --- /dev/null +++ b/ab_batches/normal_camera/review/anus_lickiing_review_manifest.json @@ -0,0 +1,75 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "anus lickiing", + "folder_alias": { + "exact_source_folder": "anus lickiing", + "canonical_folder": "anus licking", + "canonical_key": "anus_licking", + "alias_applied": true, + "alias_reason": "Folder-name typo normalized for review metadata while preserving exact source path." + }, + "image_count": 1, + "action_family": "oral_other", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_anus_licking_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "anus lickiing/0004.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the one available sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ], + "review_items": [ + { + "reference_image": "anus lickiing/0004.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_anus_licking_single_reference_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the one available sample as coverage evidence only. A single image cannot define a stable normal-camera route.", + "index": 1 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 1, + "image_count": 1, + "images": [ + { + "index": 1, + "reference_image": "anus lickiing/0004.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_anus_licking_single_reference_pool", + "notes": "Contact-sheet review preserved the one available sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/ballsucking_laying_contact_sheet.html b/ab_batches/normal_camera/review/ballsucking_laying_contact_sheet.html new file mode 100644 index 0000000..c917b52 --- /dev/null +++ b/ab_batches/normal_camera/review/ballsucking_laying_contact_sheet.html @@ -0,0 +1,45 @@ + + + + +Normal Camera Review Contact Sheet: ballsucking - laying + + + +

Normal Camera Review Contact Sheet: ballsucking - laying

+

No-generation contact sheet. 2 JPGs from ballsucking - laying. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: ballsucking - laying.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-2

+
+
+ballsucking - laying/271.jpg +
001 ballsucking - laying/271.jpgbucket: reject_or_unclear / normal_ballsucking_laying_close_reference_folder_pool
+
+
+ballsucking - laying/591.jpg +
002 ballsucking - laying/591.jpgbucket: reject_or_unclear / normal_ballsucking_laying_close_reference_folder_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/ballsucking_laying_review_manifest.json b/ab_batches/normal_camera/review/ballsucking_laying_review_manifest.json new file mode 100644 index 0000000..f766af4 --- /dev/null +++ b/ab_batches/normal_camera/review/ballsucking_laying_review_manifest.json @@ -0,0 +1,93 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "ballsucking - laying", + "folder_alias": { + "exact_source_folder": "ballsucking - laying", + "canonical_folder": "ballsucking - laying", + "canonical_key": "ballsucking_laying", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 2, + "action_family": "ballsucking", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_ballsucking_laying_close_reference_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "ballsucking - laying/271.jpg", + "ballsucking - laying/591.jpg" + ], + "evidence_notes": "Contact-sheet review records the existing two-sample laying close-reference source pool as needs_samples. The folder is fully represented but too thin and crop-variable for a selected pre-A/B route." + } + ], + "review_items": [ + { + "reference_image": "ballsucking - laying/271.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_ballsucking_laying_close_reference_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review records the existing two-sample laying close-reference source pool as needs_samples. The folder is fully represented but too thin and crop-variable for a selected pre-A/B route.", + "index": 1 + }, + { + "reference_image": "ballsucking - laying/591.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_ballsucking_laying_close_reference_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review records the existing two-sample laying close-reference source pool as needs_samples. The folder is fully represented but too thin and crop-variable for a selected pre-A/B route.", + "index": 2 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 2, + "image_count": 2, + "images": [ + { + "index": 1, + "reference_image": "ballsucking - laying/271.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_laying_close_reference_folder_pool", + "notes": "Contact-sheet review records the existing two-sample laying close-reference source pool as needs_samples. The folder is fully represented but too thin and crop-variable for a selected pre-A/B route." + }, + { + "index": 2, + "reference_image": "ballsucking - laying/591.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_laying_close_reference_folder_pool", + "notes": "Contact-sheet review records the existing two-sample laying close-reference source pool as needs_samples. The folder is fully represented but too thin and crop-variable for a selected pre-A/B route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/ballsucking_standing_contact_sheet.html b/ab_batches/normal_camera/review/ballsucking_standing_contact_sheet.html new file mode 100644 index 0000000..d21e270 --- /dev/null +++ b/ab_batches/normal_camera/review/ballsucking_standing_contact_sheet.html @@ -0,0 +1,85 @@ + + + + +Normal Camera Review Contact Sheet: ballsucking - standing + + + +

Normal Camera Review Contact Sheet: ballsucking - standing

+

No-generation contact sheet. 12 JPGs from ballsucking - standing. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: ballsucking - standing.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-12

+
+
+ballsucking - standing/0014.jpg +
001 ballsucking - standing/0014.jpgbucket: side_view / normal_ballsucking_standing_low_side_view
+
+
+ballsucking - standing/0017.jpg +
002 ballsucking - standing/0017.jpgbucket: reject_or_unclear / normal_ballsucking_standing_partner_mixed_camera_folder_pool
+
+
+ballsucking - standing/34.jpg +
003 ballsucking - standing/34.jpgbucket: side_view / normal_ballsucking_standing_low_side_view
+
+
+ballsucking - standing/130.jpg +
004 ballsucking - standing/130.jpgbucket: side_view / normal_ballsucking_standing_low_side_view
+
+
+ballsucking - standing/137.jpg +
005 ballsucking - standing/137.jpgbucket: side_view / normal_ballsucking_standing_low_side_view
+
+
+ballsucking - standing/207.jpg +
006 ballsucking - standing/207.jpgbucket: side_view / normal_ballsucking_standing_low_side_view
+
+
+ballsucking - standing/222.jpg +
007 ballsucking - standing/222.jpgbucket: side_view / normal_ballsucking_standing_low_side_view
+
+
+ballsucking - standing/252.jpg +
008 ballsucking - standing/252.jpgbucket: side_view / normal_ballsucking_standing_low_side_view
+
+
+ballsucking - standing/333.jpg +
009 ballsucking - standing/333.jpgbucket: side_view / normal_ballsucking_standing_low_side_view
+
+
+ballsucking - standing/540.jpg +
010 ballsucking - standing/540.jpgbucket: side_view / normal_ballsucking_standing_low_side_view
+
+
+ballsucking - standing/589.jpg +
011 ballsucking - standing/589.jpgbucket: side_view / normal_ballsucking_standing_low_side_view
+
+
+ballsucking - standing/624.jpg +
012 ballsucking - standing/624.jpgbucket: side_view / normal_ballsucking_standing_low_side_view
+
+
+ + diff --git a/ab_batches/normal_camera/review/ballsucking_standing_review_manifest.json b/ab_batches/normal_camera/review/ballsucking_standing_review_manifest.json new file mode 100644 index 0000000..396c1ba --- /dev/null +++ b/ab_batches/normal_camera/review/ballsucking_standing_review_manifest.json @@ -0,0 +1,284 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "ballsucking - standing", + "folder_alias": { + "exact_source_folder": "ballsucking - standing", + "canonical_folder": "ballsucking - standing", + "canonical_key": "ballsucking_standing", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 12, + "action_family": "ballsucking", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_ballsucking_standing_partner_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "ballsucking - standing/0017.jpg", + "ballsucking - standing/252.jpg", + "ballsucking - standing/624.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the existing mixed source-pool anchor. The standing-partner context is useful, but the full folder still mixes close, side, front, and one water-close outlier; the outlier is anchored here rather than in the pre-A/B split." + }, + { + "variant_key": "normal_ballsucking_standing_low_side_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "ballsucking - standing/0014.jpg", + "ballsucking - standing/130.jpg", + "ballsucking - standing/137.jpg", + "ballsucking - standing/207.jpg", + "ballsucking - standing/222.jpg", + "ballsucking - standing/252.jpg", + "ballsucking - standing/333.jpg", + "ballsucking - standing/34.jpg", + "ballsucking - standing/540.jpg", + "ballsucking - standing/589.jpg", + "ballsucking - standing/624.jpg" + ], + "evidence_notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset." + } + ], + "review_items": [ + { + "reference_image": "ballsucking - standing/0014.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_ballsucking_standing_low_side_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset.", + "index": 1 + }, + { + "reference_image": "ballsucking - standing/0017.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_ballsucking_standing_partner_mixed_camera_folder_pool", + "selection_date": "2026-06-29", + "review_notes": "Contact-sheet review preserved the existing mixed source-pool anchor. The standing-partner context is useful, but the full folder still mixes close, side, front, and one water-close outlier; the outlier is anchored here rather than in the pre-A/B split.", + "index": 2 + }, + { + "reference_image": "ballsucking - standing/34.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_ballsucking_standing_low_side_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset.", + "index": 3 + }, + { + "reference_image": "ballsucking - standing/130.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_ballsucking_standing_low_side_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset.", + "index": 4 + }, + { + "reference_image": "ballsucking - standing/137.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_ballsucking_standing_low_side_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset.", + "index": 5 + }, + { + "reference_image": "ballsucking - standing/207.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_ballsucking_standing_low_side_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset.", + "index": 6 + }, + { + "reference_image": "ballsucking - standing/222.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_ballsucking_standing_low_side_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset.", + "index": 7 + }, + { + "reference_image": "ballsucking - standing/252.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_ballsucking_standing_low_side_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset.", + "index": 8 + }, + { + "reference_image": "ballsucking - standing/333.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_ballsucking_standing_low_side_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset.", + "index": 9 + }, + { + "reference_image": "ballsucking - standing/540.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_ballsucking_standing_low_side_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset.", + "index": 10 + }, + { + "reference_image": "ballsucking - standing/589.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_ballsucking_standing_low_side_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset.", + "index": 11 + }, + { + "reference_image": "ballsucking - standing/624.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_ballsucking_standing_low_side_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset.", + "index": 12 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 12, + "image_count": 12, + "images": [ + { + "index": 1, + "reference_image": "ballsucking - standing/0014.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_standing_low_side_view", + "notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset." + }, + { + "index": 2, + "reference_image": "ballsucking - standing/0017.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_standing_partner_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the existing mixed source-pool anchor. The standing-partner context is useful, but the full folder still mixes close, side, front, and one water-close outlier; the outlier is anchored here rather than in the pre-A/B split." + }, + { + "index": 3, + "reference_image": "ballsucking - standing/34.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_standing_low_side_view", + "notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset." + }, + { + "index": 4, + "reference_image": "ballsucking - standing/130.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_standing_low_side_view", + "notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset." + }, + { + "index": 5, + "reference_image": "ballsucking - standing/137.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_standing_low_side_view", + "notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset." + }, + { + "index": 6, + "reference_image": "ballsucking - standing/207.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_standing_low_side_view", + "notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset." + }, + { + "index": 7, + "reference_image": "ballsucking - standing/222.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_standing_low_side_view", + "notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset." + }, + { + "index": 8, + "reference_image": "ballsucking - standing/252.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_standing_low_side_view", + "notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset." + }, + { + "index": 9, + "reference_image": "ballsucking - standing/333.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_standing_low_side_view", + "notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset." + }, + { + "index": 10, + "reference_image": "ballsucking - standing/540.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_standing_low_side_view", + "notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset." + }, + { + "index": 11, + "reference_image": "ballsucking - standing/589.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_standing_low_side_view", + "notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset." + }, + { + "index": 12, + "reference_image": "ballsucking - standing/624.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_ballsucking_standing_low_side_view", + "notes": "Contact-sheet review found a repeated standing-partner, low-performer side or near-side camera family. The water-close crop remains outside this selected subset." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/blowjob_laying_back_view_3_4_angle_contact_sheet.html b/ab_batches/normal_camera/review/blowjob_laying_back_view_3_4_angle_contact_sheet.html new file mode 100644 index 0000000..0df572d --- /dev/null +++ b/ab_batches/normal_camera/review/blowjob_laying_back_view_3_4_angle_contact_sheet.html @@ -0,0 +1,41 @@ + + + + +Normal Camera Review Contact Sheet: blowjob laying - back view - 3-4 angle + + + +

Normal Camera Review Contact Sheet: blowjob laying - back view - 3-4 angle

+

No-generation contact sheet. 1 JPGs from blowjob laying - back view - 3-4 angle. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: blowjob laying - back view - 3-4 angle.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-1

+
+
+blowjob laying - back view - 3-4 angle/14.jpg +
001 blowjob laying - back view - 3-4 angle/14.jpgbucket: reject_or_unclear / normal_blowjob_laying_back_three_quarter_single_reference_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/blowjob_laying_back_view_3_4_angle_review_manifest.json b/ab_batches/normal_camera/review/blowjob_laying_back_view_3_4_angle_review_manifest.json new file mode 100644 index 0000000..4b83c84 --- /dev/null +++ b/ab_batches/normal_camera/review/blowjob_laying_back_view_3_4_angle_review_manifest.json @@ -0,0 +1,75 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "blowjob laying - back view - 3-4 angle", + "folder_alias": { + "exact_source_folder": "blowjob laying - back view - 3-4 angle", + "canonical_folder": "blowjob laying - back view - 3-4 angle", + "canonical_key": "blowjob_laying_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 1, + "action_family": "blowjob", + "source_camera_view": "back_three_quarter", + "source_catalog_status": "thin_sample", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_blowjob_laying_back_three_quarter_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "blowjob laying - back view - 3-4 angle/14.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the one rear-offset laying oral-contact sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ], + "review_items": [ + { + "reference_image": "blowjob laying - back view - 3-4 angle/14.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_blowjob_laying_back_three_quarter_single_reference_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the one rear-offset laying oral-contact sample as coverage evidence only. A single image cannot define a stable normal-camera route.", + "index": 1 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 1, + "image_count": 1, + "images": [ + { + "index": 1, + "reference_image": "blowjob laying - back view - 3-4 angle/14.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_back_three_quarter_single_reference_pool", + "notes": "Contact-sheet review preserved the one rear-offset laying oral-contact sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/blowjob_laying_front_view_contact_sheet.html b/ab_batches/normal_camera/review/blowjob_laying_front_view_contact_sheet.html new file mode 100644 index 0000000..7c55673 --- /dev/null +++ b/ab_batches/normal_camera/review/blowjob_laying_front_view_contact_sheet.html @@ -0,0 +1,141 @@ + + + + +Normal Camera Review Contact Sheet: blowjob - laying - front view + + + +

Normal Camera Review Contact Sheet: blowjob - laying - front view

+

No-generation contact sheet. 26 JPGs from blowjob - laying - front view. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: blowjob - laying - front view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-26

+
+
+blowjob - laying - front view/0001.jpg +
001 blowjob - laying - front view/0001.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/0003.jpg +
002 blowjob - laying - front view/0003.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/0004.jpg +
003 blowjob - laying - front view/0004.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/0010.jpg +
004 blowjob - laying - front view/0010.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/0010_2.jpg +
005 blowjob - laying - front view/0010_2.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/0018.jpg +
006 blowjob - laying - front view/0018.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/48.jpg +
007 blowjob - laying - front view/48.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/64.jpg +
008 blowjob - laying - front view/64.jpgbucket: unassigned
+
+
+blowjob - laying - front view/69.jpg +
009 blowjob - laying - front view/69.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/90.jpg +
010 blowjob - laying - front view/90.jpgbucket: unassigned
+
+
+blowjob - laying - front view/91.jpg +
011 blowjob - laying - front view/91.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/94.jpg +
012 blowjob - laying - front view/94.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/122.jpg +
013 blowjob - laying - front view/122.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/124.jpg +
014 blowjob - laying - front view/124.jpgbucket: unassigned
+
+
+blowjob - laying - front view/133.jpg +
015 blowjob - laying - front view/133.jpgbucket: unassigned
+
+
+blowjob - laying - front view/165.jpg +
016 blowjob - laying - front view/165.jpgbucket: unassigned
+
+
+blowjob - laying - front view/171.jpg +
017 blowjob - laying - front view/171.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/184.jpg +
018 blowjob - laying - front view/184.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/226.jpg +
019 blowjob - laying - front view/226.jpgbucket: unassigned
+
+
+blowjob - laying - front view/274.jpg +
020 blowjob - laying - front view/274.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/283.jpg +
021 blowjob - laying - front view/283.jpgbucket: unassigned
+
+
+blowjob - laying - front view/319.jpg +
022 blowjob - laying - front view/319.jpgbucket: unassigned
+
+
+blowjob - laying - front view/507.jpg +
023 blowjob - laying - front view/507.jpgbucket: unassigned
+
+
+blowjob - laying - front view/512.jpg +
024 blowjob - laying - front view/512.jpgbucket: front_view / normal_blowjob_laying_front_view
+
+
+blowjob - laying - front view/615.jpg +
025 blowjob - laying - front view/615.jpgbucket: unassigned
+
+
+blowjob - laying - front view/618.jpg +
026 blowjob - laying - front view/618.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/blowjob_laying_front_view_review_manifest.json b/ab_batches/normal_camera/review/blowjob_laying_front_view_review_manifest.json new file mode 100644 index 0000000..1243894 --- /dev/null +++ b/ab_batches/normal_camera/review/blowjob_laying_front_view_review_manifest.json @@ -0,0 +1,525 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "blowjob - laying - front view", + "folder_alias": { + "exact_source_folder": "blowjob - laying - front view", + "canonical_folder": "blowjob - laying - front view", + "canonical_key": "blowjob_laying_front_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 26, + "action_family": "blowjob", + "source_camera_view": "front_view", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_blowjob_laying_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "blowjob - laying - front view/0001.jpg", + "blowjob - laying - front view/0003.jpg", + "blowjob - laying - front view/0004.jpg", + "blowjob - laying - front view/0010.jpg", + "blowjob - laying - front view/0010_2.jpg", + "blowjob - laying - front view/0018.jpg", + "blowjob - laying - front view/48.jpg", + "blowjob - laying - front view/69.jpg", + "blowjob - laying - front view/91.jpg", + "blowjob - laying - front view/94.jpg", + "blowjob - laying - front view/122.jpg", + "blowjob - laying - front view/171.jpg", + "blowjob - laying - front view/184.jpg", + "blowjob - laying - front view/274.jpg", + "blowjob - laying - front view/512.jpg" + ], + "evidence_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + } + ], + "review_items": [ + { + "reference_image": "blowjob - laying - front view/0001.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 1 + }, + { + "reference_image": "blowjob - laying - front view/0003.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 2 + }, + { + "reference_image": "blowjob - laying - front view/0004.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 3 + }, + { + "reference_image": "blowjob - laying - front view/0010.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 4 + }, + { + "reference_image": "blowjob - laying - front view/0010_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 5 + }, + { + "reference_image": "blowjob - laying - front view/0018.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 6 + }, + { + "reference_image": "blowjob - laying - front view/48.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 7 + }, + { + "index": 8, + "reference_image": "blowjob - laying - front view/64.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "blowjob - laying - front view/69.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 9 + }, + { + "index": 10, + "reference_image": "blowjob - laying - front view/90.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "blowjob - laying - front view/91.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 11 + }, + { + "reference_image": "blowjob - laying - front view/94.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 12 + }, + { + "reference_image": "blowjob - laying - front view/122.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 13 + }, + { + "index": 14, + "reference_image": "blowjob - laying - front view/124.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 15, + "reference_image": "blowjob - laying - front view/133.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 16, + "reference_image": "blowjob - laying - front view/165.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "blowjob - laying - front view/171.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 17 + }, + { + "reference_image": "blowjob - laying - front view/184.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 18 + }, + { + "index": 19, + "reference_image": "blowjob - laying - front view/226.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "blowjob - laying - front view/274.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 20 + }, + { + "index": 21, + "reference_image": "blowjob - laying - front view/283.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 22, + "reference_image": "blowjob - laying - front view/319.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "blowjob - laying - front view/507.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "blowjob - laying - front view/512.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_blowjob_laying_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset.", + "index": 24 + }, + { + "index": 25, + "reference_image": "blowjob - laying - front view/615.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 26, + "reference_image": "blowjob - laying - front view/618.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 26, + "image_count": 26, + "images": [ + { + "index": 1, + "reference_image": "blowjob - laying - front view/0001.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 2, + "reference_image": "blowjob - laying - front view/0003.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 3, + "reference_image": "blowjob - laying - front view/0004.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 4, + "reference_image": "blowjob - laying - front view/0010.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 5, + "reference_image": "blowjob - laying - front view/0010_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 6, + "reference_image": "blowjob - laying - front view/0018.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 7, + "reference_image": "blowjob - laying - front view/48.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 8, + "reference_image": "blowjob - laying - front view/64.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "blowjob - laying - front view/69.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 10, + "reference_image": "blowjob - laying - front view/90.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "blowjob - laying - front view/91.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 12, + "reference_image": "blowjob - laying - front view/94.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 13, + "reference_image": "blowjob - laying - front view/122.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 14, + "reference_image": "blowjob - laying - front view/124.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "blowjob - laying - front view/133.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "blowjob - laying - front view/165.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "blowjob - laying - front view/171.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 18, + "reference_image": "blowjob - laying - front view/184.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 19, + "reference_image": "blowjob - laying - front view/226.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "blowjob - laying - front view/274.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 21, + "reference_image": "blowjob - laying - front view/283.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "blowjob - laying - front view/319.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "blowjob - laying - front view/507.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "blowjob - laying - front view/512.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_blowjob_laying_front_view", + "notes": "Residual-pool review confirmed the existing front-facing laying oral-contact route as a broad but coherent third-person camera family. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." + }, + { + "index": 25, + "reference_image": "blowjob - laying - front view/615.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "blowjob - laying - front view/618.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/boobjob_contact_sheet.html b/ab_batches/normal_camera/review/boobjob_contact_sheet.html new file mode 100644 index 0000000..3dac3ae --- /dev/null +++ b/ab_batches/normal_camera/review/boobjob_contact_sheet.html @@ -0,0 +1,113 @@ + + + + +Normal Camera Review Contact Sheet: boobjob + + + +

Normal Camera Review Contact Sheet: boobjob

+

No-generation contact sheet. 19 JPGs from boobjob. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: boobjob.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-19

+
+
+boobjob/0017.jpg +
001 boobjob/0017.jpgbucket: front_view / normal_boobjob_front_close_view
+
+
+boobjob/0018.jpg +
002 boobjob/0018.jpgbucket: unassigned
+
+
+boobjob/0018_2.jpg +
003 boobjob/0018_2.jpgbucket: front_view / normal_boobjob_front_close_view
+
+
+boobjob/91.jpg +
004 boobjob/91.jpgbucket: reject_or_unclear / normal_boobjob_front_close_mixed_camera_folder_pool
+
+
+boobjob/141.jpg +
005 boobjob/141.jpgbucket: front_view / normal_boobjob_front_close_view
+
+
+boobjob/182.jpg +
006 boobjob/182.jpgbucket: unassigned
+
+
+boobjob/186.jpg +
007 boobjob/186.jpgbucket: front_view / normal_boobjob_front_close_view
+
+
+boobjob/186_2.jpg +
008 boobjob/186_2.jpgbucket: unassigned
+
+
+boobjob/218.jpg +
009 boobjob/218.jpgbucket: front_view / normal_boobjob_front_close_view
+
+
+boobjob/225.jpg +
010 boobjob/225.jpgbucket: unassigned
+
+
+boobjob/259.jpg +
011 boobjob/259.jpgbucket: front_view / normal_boobjob_front_close_view
+
+
+boobjob/297.jpg +
012 boobjob/297.jpgbucket: unassigned
+
+
+boobjob/327.jpg +
013 boobjob/327.jpgbucket: front_view / normal_boobjob_front_close_view
+
+
+boobjob/588.jpg +
014 boobjob/588.jpgbucket: front_view / normal_boobjob_front_close_view
+
+
+boobjob/592.jpg +
015 boobjob/592.jpgbucket: front_view / normal_boobjob_front_close_view
+
+
+boobjob/598.jpg +
016 boobjob/598.jpgbucket: front_view / normal_boobjob_front_close_view
+
+
+boobjob/601.jpg +
017 boobjob/601.jpgbucket: unassigned
+
+
+boobjob/615.jpg +
018 boobjob/615.jpgbucket: front_view / normal_boobjob_front_close_view
+
+
+boobjob/618.jpg +
019 boobjob/618.jpgbucket: front_view / normal_boobjob_front_close_view
+
+
+ + diff --git a/ab_batches/normal_camera/review/boobjob_review_manifest.json b/ab_batches/normal_camera/review/boobjob_review_manifest.json new file mode 100644 index 0000000..ace19f7 --- /dev/null +++ b/ab_batches/normal_camera/review/boobjob_review_manifest.json @@ -0,0 +1,410 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "boobjob", + "folder_alias": { + "exact_source_folder": "boobjob", + "canonical_folder": "boobjob", + "canonical_key": "boobjob", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 19, + "action_family": "boobjob", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_boobjob_front_close_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "boobjob/0017.jpg", + "boobjob/259.jpg", + "boobjob/91.jpg" + ], + "evidence_notes": "Residual-pool review preserved the existing mixed source-pool anchor. The full folder includes useful front-close material, but side, standing, foreground-heavy, and downward/crop-drifting examples keep it from being one locked prompt-ready camera route." + }, + { + "variant_key": "normal_boobjob_front_close_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "boobjob/0017.jpg", + "boobjob/0018_2.jpg", + "boobjob/141.jpg", + "boobjob/186.jpg", + "boobjob/218.jpg", + "boobjob/259.jpg", + "boobjob/327.jpg", + "boobjob/588.jpg", + "boobjob/592.jpg", + "boobjob/598.jpg", + "boobjob/615.jpg", + "boobjob/618.jpg" + ], + "evidence_notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset." + } + ], + "review_items": [ + { + "reference_image": "boobjob/0017.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_boobjob_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset.", + "index": 1 + }, + { + "index": 2, + "reference_image": "boobjob/0018.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "boobjob/0018_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_boobjob_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset.", + "index": 3 + }, + { + "reference_image": "boobjob/91.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_boobjob_front_close_mixed_camera_folder_pool", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review preserved the existing mixed source-pool anchor. The full folder includes useful front-close material, but side, standing, foreground-heavy, and downward/crop-drifting examples keep it from being one locked prompt-ready camera route.", + "index": 4 + }, + { + "reference_image": "boobjob/141.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_boobjob_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset.", + "index": 5 + }, + { + "index": 6, + "reference_image": "boobjob/182.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "boobjob/186.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_boobjob_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset.", + "index": 7 + }, + { + "index": 8, + "reference_image": "boobjob/186_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "boobjob/218.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_boobjob_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset.", + "index": 9 + }, + { + "index": 10, + "reference_image": "boobjob/225.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "boobjob/259.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_boobjob_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset.", + "index": 11 + }, + { + "index": 12, + "reference_image": "boobjob/297.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "boobjob/327.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_boobjob_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset.", + "index": 13 + }, + { + "reference_image": "boobjob/588.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_boobjob_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset.", + "index": 14 + }, + { + "reference_image": "boobjob/592.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_boobjob_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset.", + "index": 15 + }, + { + "reference_image": "boobjob/598.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_boobjob_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset.", + "index": 16 + }, + { + "index": 17, + "reference_image": "boobjob/601.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "boobjob/615.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_boobjob_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset.", + "index": 18 + }, + { + "reference_image": "boobjob/618.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_boobjob_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset.", + "index": 19 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 19, + "image_count": 19, + "images": [ + { + "index": 1, + "reference_image": "boobjob/0017.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_boobjob_front_close_view", + "notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset." + }, + { + "index": 2, + "reference_image": "boobjob/0018.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 3, + "reference_image": "boobjob/0018_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_boobjob_front_close_view", + "notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset." + }, + { + "index": 4, + "reference_image": "boobjob/91.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_boobjob_front_close_mixed_camera_folder_pool", + "notes": "Residual-pool review preserved the existing mixed source-pool anchor. The full folder includes useful front-close material, but side, standing, foreground-heavy, and downward/crop-drifting examples keep it from being one locked prompt-ready camera route." + }, + { + "index": 5, + "reference_image": "boobjob/141.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_boobjob_front_close_view", + "notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset." + }, + { + "index": 6, + "reference_image": "boobjob/182.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 7, + "reference_image": "boobjob/186.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_boobjob_front_close_view", + "notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset." + }, + { + "index": 8, + "reference_image": "boobjob/186_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "boobjob/218.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_boobjob_front_close_view", + "notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset." + }, + { + "index": 10, + "reference_image": "boobjob/225.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "boobjob/259.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_boobjob_front_close_view", + "notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset." + }, + { + "index": 12, + "reference_image": "boobjob/297.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "boobjob/327.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_boobjob_front_close_view", + "notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset." + }, + { + "index": 14, + "reference_image": "boobjob/588.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_boobjob_front_close_view", + "notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset." + }, + { + "index": 15, + "reference_image": "boobjob/592.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_boobjob_front_close_view", + "notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset." + }, + { + "index": 16, + "reference_image": "boobjob/598.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_boobjob_front_close_view", + "notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset." + }, + { + "index": 17, + "reference_image": "boobjob/601.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 18, + "reference_image": "boobjob/615.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_boobjob_front_close_view", + "notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset." + }, + { + "index": 19, + "reference_image": "boobjob/618.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_boobjob_front_close_view", + "notes": "Residual-pool review found a repeated front-close third-person family where face or upper body remains readable and the contact action stays centered. Side, standing, foreground-heavy, and downward/crop-drifting outliers remain outside this selected subset." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/breast_sucking_side_view_contact_sheet.html b/ab_batches/normal_camera/review/breast_sucking_side_view_contact_sheet.html new file mode 100644 index 0000000..ea8e77c --- /dev/null +++ b/ab_batches/normal_camera/review/breast_sucking_side_view_contact_sheet.html @@ -0,0 +1,212 @@ + + + + +Normal Camera Review Contact Sheet: breast sucking - side view + + + +

Normal Camera Review Contact Sheet: breast sucking - side view

+

No-generation contact sheet. 43 JPGs from breast sucking - side view. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: breast sucking - side view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-40

+
+
+breast sucking - side view/0003.jpg +
001 breast sucking - side view/0003.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/0005.jpg +
002 breast sucking - side view/0005.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/0007.jpg +
003 breast sucking - side view/0007.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/0008.jpg +
004 breast sucking - side view/0008.jpgbucket: unassigned
+
+
+breast sucking - side view/0009.jpg +
005 breast sucking - side view/0009.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/0010.jpg +
006 breast sucking - side view/0010.jpgbucket: unassigned
+
+
+breast sucking - side view/0010_2.jpg +
007 breast sucking - side view/0010_2.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/0012.jpg +
008 breast sucking - side view/0012.jpgbucket: unassigned
+
+
+breast sucking - side view/0016.jpg +
009 breast sucking - side view/0016.jpgbucket: unassigned
+
+
+breast sucking - side view/0017.jpg +
010 breast sucking - side view/0017.jpgbucket: unassigned
+
+
+breast sucking - side view/56.jpg +
011 breast sucking - side view/56.jpgbucket: unassigned
+
+
+breast sucking - side view/65.jpg +
012 breast sucking - side view/65.jpgbucket: unassigned
+
+
+breast sucking - side view/79.jpg +
013 breast sucking - side view/79.jpgbucket: unassigned
+
+
+breast sucking - side view/91.jpg +
014 breast sucking - side view/91.jpgbucket: unassigned
+
+
+breast sucking - side view/91_2.jpg +
015 breast sucking - side view/91_2.jpgbucket: unassigned
+
+
+breast sucking - side view/99.jpg +
016 breast sucking - side view/99.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/182.jpg +
017 breast sucking - side view/182.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/186.jpg +
018 breast sucking - side view/186.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/188.jpg +
019 breast sucking - side view/188.jpgbucket: unassigned
+
+
+breast sucking - side view/191.jpg +
020 breast sucking - side view/191.jpgbucket: unassigned
+
+
+breast sucking - side view/218.jpg +
021 breast sucking - side view/218.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/234.jpg +
022 breast sucking - side view/234.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/237.jpg +
023 breast sucking - side view/237.jpgbucket: unassigned
+
+
+breast sucking - side view/239.jpg +
024 breast sucking - side view/239.jpgbucket: unassigned
+
+
+breast sucking - side view/244.jpg +
025 breast sucking - side view/244.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/248.jpg +
026 breast sucking - side view/248.jpgbucket: unassigned
+
+
+breast sucking - side view/251.jpg +
027 breast sucking - side view/251.jpgbucket: unassigned
+
+
+breast sucking - side view/257.jpg +
028 breast sucking - side view/257.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/267.jpg +
029 breast sucking - side view/267.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/269.jpg +
030 breast sucking - side view/269.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/278.jpg +
031 breast sucking - side view/278.jpgbucket: unassigned
+
+
+breast sucking - side view/307.jpg +
032 breast sucking - side view/307.jpgbucket: unassigned
+
+
+breast sucking - side view/353.jpg +
033 breast sucking - side view/353.jpgbucket: unassigned
+
+
+breast sucking - side view/356.jpg +
034 breast sucking - side view/356.jpgbucket: side_view / normal_breast_sucking_side_view
+
+
+breast sucking - side view/357.jpg +
035 breast sucking - side view/357.jpgbucket: unassigned
+
+
+breast sucking - side view/370.jpg +
036 breast sucking - side view/370.jpgbucket: unassigned
+
+
+breast sucking - side view/501.jpg +
037 breast sucking - side view/501.jpgbucket: unassigned
+
+
+breast sucking - side view/503.jpg +
038 breast sucking - side view/503.jpgbucket: unassigned
+
+
+breast sucking - side view/511.jpg +
039 breast sucking - side view/511.jpgbucket: unassigned
+
+
+breast sucking - side view/539.jpg +
040 breast sucking - side view/539.jpgbucket: unassigned
+
+
+

Page 2: 41-43

+
+
+breast sucking - side view/567.jpg +
041 breast sucking - side view/567.jpgbucket: unassigned
+
+
+breast sucking - side view/568.jpg +
042 breast sucking - side view/568.jpgbucket: unassigned
+
+
+breast sucking - side view/610.jpg +
043 breast sucking - side view/610.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/breast_sucking_side_view_review_manifest.json b/ab_batches/normal_camera/review/breast_sucking_side_view_review_manifest.json new file mode 100644 index 0000000..fae2ab5 --- /dev/null +++ b/ab_batches/normal_camera/review/breast_sucking_side_view_review_manifest.json @@ -0,0 +1,840 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "breast sucking - side view", + "folder_alias": { + "exact_source_folder": "breast sucking - side view", + "canonical_folder": "breast sucking - side view", + "canonical_key": "breast_sucking_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 43, + "action_family": "breast_contact", + "source_camera_view": "side_view", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_breast_sucking_side_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "breast sucking - side view/0003.jpg", + "breast sucking - side view/0005.jpg", + "breast sucking - side view/0007.jpg", + "breast sucking - side view/0009.jpg", + "breast sucking - side view/0010_2.jpg", + "breast sucking - side view/182.jpg", + "breast sucking - side view/186.jpg", + "breast sucking - side view/218.jpg", + "breast sucking - side view/234.jpg", + "breast sucking - side view/244.jpg", + "breast sucking - side view/257.jpg", + "breast sucking - side view/267.jpg", + "breast sucking - side view/269.jpg", + "breast sucking - side view/356.jpg", + "breast sucking - side view/99.jpg" + ], + "evidence_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + } + ], + "review_items": [ + { + "reference_image": "breast sucking - side view/0003.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 1 + }, + { + "reference_image": "breast sucking - side view/0005.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 2 + }, + { + "reference_image": "breast sucking - side view/0007.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 3 + }, + { + "index": 4, + "reference_image": "breast sucking - side view/0008.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breast sucking - side view/0009.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 5 + }, + { + "index": 6, + "reference_image": "breast sucking - side view/0010.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breast sucking - side view/0010_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 7 + }, + { + "index": 8, + "reference_image": "breast sucking - side view/0012.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 9, + "reference_image": "breast sucking - side view/0016.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 10, + "reference_image": "breast sucking - side view/0017.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 11, + "reference_image": "breast sucking - side view/56.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 12, + "reference_image": "breast sucking - side view/65.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 13, + "reference_image": "breast sucking - side view/79.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 14, + "reference_image": "breast sucking - side view/91.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 15, + "reference_image": "breast sucking - side view/91_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breast sucking - side view/99.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 16 + }, + { + "reference_image": "breast sucking - side view/182.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 17 + }, + { + "reference_image": "breast sucking - side view/186.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 18 + }, + { + "index": 19, + "reference_image": "breast sucking - side view/188.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 20, + "reference_image": "breast sucking - side view/191.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breast sucking - side view/218.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 21 + }, + { + "reference_image": "breast sucking - side view/234.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 22 + }, + { + "index": 23, + "reference_image": "breast sucking - side view/237.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 24, + "reference_image": "breast sucking - side view/239.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breast sucking - side view/244.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 25 + }, + { + "index": 26, + "reference_image": "breast sucking - side view/248.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 27, + "reference_image": "breast sucking - side view/251.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breast sucking - side view/257.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 28 + }, + { + "reference_image": "breast sucking - side view/267.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 29 + }, + { + "reference_image": "breast sucking - side view/269.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 30 + }, + { + "index": 31, + "reference_image": "breast sucking - side view/278.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 32, + "reference_image": "breast sucking - side view/307.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 33, + "reference_image": "breast sucking - side view/353.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breast sucking - side view/356.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_breast_sucking_side_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset.", + "index": 34 + }, + { + "index": 35, + "reference_image": "breast sucking - side view/357.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 36, + "reference_image": "breast sucking - side view/370.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 37, + "reference_image": "breast sucking - side view/501.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 38, + "reference_image": "breast sucking - side view/503.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 39, + "reference_image": "breast sucking - side view/511.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 40, + "reference_image": "breast sucking - side view/539.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 41, + "reference_image": "breast sucking - side view/567.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 42, + "reference_image": "breast sucking - side view/568.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 43, + "reference_image": "breast sucking - side view/610.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 40, + "image_count": 40, + "images": [ + { + "index": 1, + "reference_image": "breast sucking - side view/0003.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 2, + "reference_image": "breast sucking - side view/0005.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 3, + "reference_image": "breast sucking - side view/0007.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 4, + "reference_image": "breast sucking - side view/0008.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "breast sucking - side view/0009.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 6, + "reference_image": "breast sucking - side view/0010.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 7, + "reference_image": "breast sucking - side view/0010_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 8, + "reference_image": "breast sucking - side view/0012.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "breast sucking - side view/0016.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "breast sucking - side view/0017.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "breast sucking - side view/56.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "breast sucking - side view/65.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "breast sucking - side view/79.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 14, + "reference_image": "breast sucking - side view/91.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "breast sucking - side view/91_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "breast sucking - side view/99.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 17, + "reference_image": "breast sucking - side view/182.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 18, + "reference_image": "breast sucking - side view/186.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 19, + "reference_image": "breast sucking - side view/188.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "breast sucking - side view/191.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 21, + "reference_image": "breast sucking - side view/218.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 22, + "reference_image": "breast sucking - side view/234.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 23, + "reference_image": "breast sucking - side view/237.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "breast sucking - side view/239.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "breast sucking - side view/244.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 26, + "reference_image": "breast sucking - side view/248.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 27, + "reference_image": "breast sucking - side view/251.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "breast sucking - side view/257.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 29, + "reference_image": "breast sucking - side view/267.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 30, + "reference_image": "breast sucking - side view/269.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 31, + "reference_image": "breast sucking - side view/278.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 32, + "reference_image": "breast sucking - side view/307.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "breast sucking - side view/353.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 34, + "reference_image": "breast sucking - side view/356.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_sucking_side_view", + "notes": "Residual-pool review confirmed a repeated side/near-side mouth-contact family across standing and seated contexts. References were expanded while front-only, hand-touch-only, and weak-contact examples remain outside the selected subset." + }, + { + "index": 35, + "reference_image": "breast sucking - side view/357.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 36, + "reference_image": "breast sucking - side view/370.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 37, + "reference_image": "breast sucking - side view/501.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 38, + "reference_image": "breast sucking - side view/503.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 39, + "reference_image": "breast sucking - side view/511.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 40, + "reference_image": "breast sucking - side view/539.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 2, + "html_anchor": "page-02", + "start_index": 41, + "end_index": 43, + "image_count": 3, + "images": [ + { + "index": 41, + "reference_image": "breast sucking - side view/567.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 42, + "reference_image": "breast sucking - side view/568.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 43, + "reference_image": "breast sucking - side view/610.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/breast_touching_front_view_contact_sheet.html b/ab_batches/normal_camera/review/breast_touching_front_view_contact_sheet.html new file mode 100644 index 0000000..6f96638 --- /dev/null +++ b/ab_batches/normal_camera/review/breast_touching_front_view_contact_sheet.html @@ -0,0 +1,137 @@ + + + + +Normal Camera Review Contact Sheet: breast - touching - front view + + + +

Normal Camera Review Contact Sheet: breast - touching - front view

+

No-generation contact sheet. 25 JPGs from breast - touching - front view. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: breast - touching - front view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-25

+
+
+breast - touching - front view/0006.jpg +
001 breast - touching - front view/0006.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/0006_2.jpg +
002 breast - touching - front view/0006_2.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/12.jpg +
003 breast - touching - front view/12.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/0014.jpg +
004 breast - touching - front view/0014.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/0015.jpg +
005 breast - touching - front view/0015.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/16.jpg +
006 breast - touching - front view/16.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/0017.jpg +
007 breast - touching - front view/0017.jpgbucket: unassigned
+
+
+breast - touching - front view/29.jpg +
008 breast - touching - front view/29.jpgbucket: unassigned
+
+
+breast - touching - front view/56.jpg +
009 breast - touching - front view/56.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/72.jpg +
010 breast - touching - front view/72.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/179.jpg +
011 breast - touching - front view/179.jpgbucket: unassigned
+
+
+breast - touching - front view/183.jpg +
012 breast - touching - front view/183.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/220.jpg +
013 breast - touching - front view/220.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/244.jpg +
014 breast - touching - front view/244.jpgbucket: unassigned
+
+
+breast - touching - front view/246.jpg +
015 breast - touching - front view/246.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/248.jpg +
016 breast - touching - front view/248.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/281.jpg +
017 breast - touching - front view/281.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/290.jpg +
018 breast - touching - front view/290.jpgbucket: unassigned
+
+
+breast - touching - front view/294.jpg +
019 breast - touching - front view/294.jpgbucket: unassigned
+
+
+breast - touching - front view/318.jpg +
020 breast - touching - front view/318.jpgbucket: unassigned
+
+
+breast - touching - front view/348.jpg +
021 breast - touching - front view/348.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/361.jpg +
022 breast - touching - front view/361.jpgbucket: front_view / normal_breast_contact_front_view
+
+
+breast - touching - front view/497.jpg +
023 breast - touching - front view/497.jpgbucket: unassigned
+
+
+breast - touching - front view/539.jpg +
024 breast - touching - front view/539.jpgbucket: unassigned
+
+
+breast - touching - front view/598.jpg +
025 breast - touching - front view/598.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/breast_touching_front_view_review_manifest.json b/ab_batches/normal_camera/review/breast_touching_front_view_review_manifest.json new file mode 100644 index 0000000..d795dcd --- /dev/null +++ b/ab_batches/normal_camera/review/breast_touching_front_view_review_manifest.json @@ -0,0 +1,507 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "breast - touching - front view", + "folder_alias": { + "exact_source_folder": "breast - touching - front view", + "canonical_folder": "breast - touching - front view", + "canonical_key": "breast_touching_front_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 25, + "action_family": "breast_contact", + "source_camera_view": "front_view", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_breast_contact_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "breast - touching - front view/0006.jpg", + "breast - touching - front view/0006_2.jpg", + "breast - touching - front view/12.jpg", + "breast - touching - front view/0014.jpg", + "breast - touching - front view/0015.jpg", + "breast - touching - front view/16.jpg", + "breast - touching - front view/56.jpg", + "breast - touching - front view/72.jpg", + "breast - touching - front view/183.jpg", + "breast - touching - front view/220.jpg", + "breast - touching - front view/246.jpg", + "breast - touching - front view/248.jpg", + "breast - touching - front view/281.jpg", + "breast - touching - front view/348.jpg", + "breast - touching - front view/361.jpg" + ], + "evidence_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + } + ], + "review_items": [ + { + "reference_image": "breast - touching - front view/0006.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 1 + }, + { + "reference_image": "breast - touching - front view/0006_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 2 + }, + { + "reference_image": "breast - touching - front view/12.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 3 + }, + { + "reference_image": "breast - touching - front view/0014.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 4 + }, + { + "reference_image": "breast - touching - front view/0015.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 5 + }, + { + "reference_image": "breast - touching - front view/16.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 6 + }, + { + "index": 7, + "reference_image": "breast - touching - front view/0017.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 8, + "reference_image": "breast - touching - front view/29.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breast - touching - front view/56.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 9 + }, + { + "reference_image": "breast - touching - front view/72.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 10 + }, + { + "index": 11, + "reference_image": "breast - touching - front view/179.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breast - touching - front view/183.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 12 + }, + { + "reference_image": "breast - touching - front view/220.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 13 + }, + { + "index": 14, + "reference_image": "breast - touching - front view/244.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breast - touching - front view/246.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 15 + }, + { + "reference_image": "breast - touching - front view/248.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 16 + }, + { + "reference_image": "breast - touching - front view/281.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 17 + }, + { + "index": 18, + "reference_image": "breast - touching - front view/290.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 19, + "reference_image": "breast - touching - front view/294.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 20, + "reference_image": "breast - touching - front view/318.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breast - touching - front view/348.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 21 + }, + { + "reference_image": "breast - touching - front view/361.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_breast_contact_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset.", + "index": 22 + }, + { + "index": 23, + "reference_image": "breast - touching - front view/497.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 24, + "reference_image": "breast - touching - front view/539.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 25, + "reference_image": "breast - touching - front view/598.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 25, + "image_count": 25, + "images": [ + { + "index": 1, + "reference_image": "breast - touching - front view/0006.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 2, + "reference_image": "breast - touching - front view/0006_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 3, + "reference_image": "breast - touching - front view/12.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 4, + "reference_image": "breast - touching - front view/0014.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 5, + "reference_image": "breast - touching - front view/0015.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 6, + "reference_image": "breast - touching - front view/16.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 7, + "reference_image": "breast - touching - front view/0017.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 8, + "reference_image": "breast - touching - front view/29.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "breast - touching - front view/56.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 10, + "reference_image": "breast - touching - front view/72.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 11, + "reference_image": "breast - touching - front view/179.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "breast - touching - front view/183.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 13, + "reference_image": "breast - touching - front view/220.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 14, + "reference_image": "breast - touching - front view/244.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "breast - touching - front view/246.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 16, + "reference_image": "breast - touching - front view/248.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 17, + "reference_image": "breast - touching - front view/281.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 18, + "reference_image": "breast - touching - front view/290.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 19, + "reference_image": "breast - touching - front view/294.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "breast - touching - front view/318.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 21, + "reference_image": "breast - touching - front view/348.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 22, + "reference_image": "breast - touching - front view/361.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_breast_contact_front_view", + "notes": "Residual-pool review confirmed the existing front breast-contact route as a coherent third-person camera family across standing, seated, and kneeling contexts. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." + }, + { + "index": 23, + "reference_image": "breast - touching - front view/497.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "breast - touching - front view/539.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "breast - touching - front view/598.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/breasts_exposed_contact_sheet.html b/ab_batches/normal_camera/review/breasts_exposed_contact_sheet.html new file mode 100644 index 0000000..510e3c8 --- /dev/null +++ b/ab_batches/normal_camera/review/breasts_exposed_contact_sheet.html @@ -0,0 +1,721 @@ + + + + +Normal Camera Review Contact Sheet: breasts exposed + + + +

Normal Camera Review Contact Sheet: breasts exposed

+

No-generation contact sheet. 168 JPGs from breasts exposed. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: breasts exposed.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-40

+
+
+breasts exposed/0001.jpg +
001 breasts exposed/0001.jpgbucket: unassigned
+
+
+breasts exposed/0001_2.jpg +
002 breasts exposed/0001_2.jpgbucket: front_view / normal_display_breasts_exposed_seated_kneeling_front_view
+
+
+breasts exposed/0001_3.jpg +
003 breasts exposed/0001_3.jpgbucket: front_view / normal_display_breasts_exposed_front_view
+
+
+breasts exposed/0002.jpg +
004 breasts exposed/0002.jpgbucket: unassigned
+
+
+breasts exposed/0002_2.jpg +
005 breasts exposed/0002_2.jpgbucket: front_view / normal_display_breasts_exposed_standing_front_view
+
+
+breasts exposed/0002_3.jpg +
006 breasts exposed/0002_3.jpgbucket: unassigned
+
+
+breasts exposed/0003.jpg +
007 breasts exposed/0003.jpgbucket: front_view / normal_display_breasts_exposed_standing_front_view
+
+
+breasts exposed/0005.jpg +
008 breasts exposed/0005.jpgbucket: unassigned
+
+
+breasts exposed/0006.jpg +
009 breasts exposed/0006.jpgbucket: front_view / normal_display_breasts_exposed_front_view
+
+
+breasts exposed/0007.jpg +
010 breasts exposed/0007.jpgbucket: unassigned
+
+
+breasts exposed/0007_2.jpg +
011 breasts exposed/0007_2.jpgbucket: front_view / normal_display_breasts_exposed_seated_kneeling_front_view
+
+
+breasts exposed/0007_3.jpg +
012 breasts exposed/0007_3.jpgbucket: unassigned
+
+
+breasts exposed/0008.jpg +
013 breasts exposed/0008.jpgbucket: unassigned
+
+
+breasts exposed/0008_2.jpg +
014 breasts exposed/0008_2.jpgbucket: front_view / normal_display_breasts_exposed_front_view
+
+
+breasts exposed/0010.jpg +
015 breasts exposed/0010.jpgbucket: unassigned
+
+
+breasts exposed/0011.jpg +
016 breasts exposed/0011.jpgbucket: unassigned
+
+
+breasts exposed/0011_2.jpg +
017 breasts exposed/0011_2.jpgbucket: front_view / normal_display_breasts_exposed_front_view
+
+
+breasts exposed/0012.jpg +
018 breasts exposed/0012.jpgbucket: unassigned
+
+
+breasts exposed/0012_2.jpg +
019 breasts exposed/0012_2.jpgbucket: unassigned
+
+
+breasts exposed/0013.jpg +
020 breasts exposed/0013.jpgbucket: unassigned
+
+
+breasts exposed/0013_2.jpg +
021 breasts exposed/0013_2.jpgbucket: unassigned
+
+
+breasts exposed/0013_3.jpg +
022 breasts exposed/0013_3.jpgbucket: unassigned
+
+
+breasts exposed/0013_4.jpg +
023 breasts exposed/0013_4.jpgbucket: unassigned
+
+
+breasts exposed/0014.jpg +
024 breasts exposed/0014.jpgbucket: unassigned
+
+
+breasts exposed/0019.jpg +
025 breasts exposed/0019.jpgbucket: unassigned
+
+
+breasts exposed/0019_2.jpg +
026 breasts exposed/0019_2.jpgbucket: unassigned
+
+
+breasts exposed/40.jpg +
027 breasts exposed/40.jpgbucket: unassigned
+
+
+breasts exposed/40_2.jpg +
028 breasts exposed/40_2.jpgbucket: unassigned
+
+
+breasts exposed/44.jpg +
029 breasts exposed/44.jpgbucket: unassigned
+
+
+breasts exposed/46.jpg +
030 breasts exposed/46.jpgbucket: unassigned
+
+
+breasts exposed/49.jpg +
031 breasts exposed/49.jpgbucket: front_view / normal_display_breasts_exposed_standing_front_view
+
+
+breasts exposed/52.jpg +
032 breasts exposed/52.jpgbucket: unassigned
+
+
+breasts exposed/56.jpg +
033 breasts exposed/56.jpgbucket: unassigned
+
+
+breasts exposed/76.jpg +
034 breasts exposed/76.jpgbucket: unassigned
+
+
+breasts exposed/80.jpg +
035 breasts exposed/80.jpgbucket: unassigned
+
+
+breasts exposed/83.jpg +
036 breasts exposed/83.jpgbucket: side_view / normal_display_breasts_exposed_side_offset_view
+
+
+breasts exposed/91.jpg +
037 breasts exposed/91.jpgbucket: unassigned
+
+
+breasts exposed/95.jpg +
038 breasts exposed/95.jpgbucket: unassigned
+
+
+breasts exposed/97.jpg +
039 breasts exposed/97.jpgbucket: unassigned
+
+
+breasts exposed/101.jpg +
040 breasts exposed/101.jpgbucket: unassigned
+
+
+

Page 2: 41-80

+
+
+breasts exposed/101_2.jpg +
041 breasts exposed/101_2.jpgbucket: front_view / normal_display_breasts_exposed_seated_kneeling_front_view
+
+
+breasts exposed/112.jpg +
042 breasts exposed/112.jpgbucket: unassigned
+
+
+breasts exposed/114.jpg +
043 breasts exposed/114.jpgbucket: unassigned
+
+
+breasts exposed/119.jpg +
044 breasts exposed/119.jpgbucket: unassigned
+
+
+breasts exposed/119_2.jpg +
045 breasts exposed/119_2.jpgbucket: unassigned
+
+
+breasts exposed/121.jpg +
046 breasts exposed/121.jpgbucket: unassigned
+
+
+breasts exposed/134.jpg +
047 breasts exposed/134.jpgbucket: unassigned
+
+
+breasts exposed/134_2.jpg +
048 breasts exposed/134_2.jpgbucket: unassigned
+
+
+breasts exposed/138.jpg +
049 breasts exposed/138.jpgbucket: front_view / normal_display_breasts_exposed_standing_front_view
+
+
+breasts exposed/138_2.jpg +
050 breasts exposed/138_2.jpgbucket: unassigned
+
+
+breasts exposed/141.jpg +
051 breasts exposed/141.jpgbucket: front_view / normal_display_breasts_exposed_front_view
+
+
+breasts exposed/154.jpg +
052 breasts exposed/154.jpgbucket: front_view / normal_display_breasts_exposed_seated_kneeling_front_view
+
+
+breasts exposed/155.jpg +
053 breasts exposed/155.jpgbucket: front_view / normal_display_breasts_exposed_standing_front_view
+
+
+breasts exposed/156.jpg +
054 breasts exposed/156.jpgbucket: unassigned
+
+
+breasts exposed/158.jpg +
055 breasts exposed/158.jpgbucket: unassigned
+
+
+breasts exposed/165.jpg +
056 breasts exposed/165.jpgbucket: front_view / normal_display_breasts_exposed_seated_kneeling_front_view
+
+
+breasts exposed/168.jpg +
057 breasts exposed/168.jpgbucket: unassigned
+
+
+breasts exposed/169.jpg +
058 breasts exposed/169.jpgbucket: front_view / normal_display_breasts_exposed_standing_front_view
+
+
+breasts exposed/173.jpg +
059 breasts exposed/173.jpgbucket: front_view / normal_display_breasts_exposed_seated_kneeling_front_view
+
+
+breasts exposed/174.jpg +
060 breasts exposed/174.jpgbucket: unassigned
+
+
+breasts exposed/175.jpg +
061 breasts exposed/175.jpgbucket: unassigned
+
+
+breasts exposed/181.jpg +
062 breasts exposed/181.jpgbucket: front_view / normal_display_breasts_exposed_front_view
+
+
+breasts exposed/182.jpg +
063 breasts exposed/182.jpgbucket: unassigned
+
+
+breasts exposed/182_2.jpg +
064 breasts exposed/182_2.jpgbucket: unassigned
+
+
+breasts exposed/190.jpg +
065 breasts exposed/190.jpgbucket: front_view / normal_display_breasts_exposed_standing_front_view
+
+
+breasts exposed/196.jpg +
066 breasts exposed/196.jpgbucket: side_view / normal_display_breasts_exposed_side_offset_view
+
+
+breasts exposed/199.jpg +
067 breasts exposed/199.jpgbucket: unassigned
+
+
+breasts exposed/204.jpg +
068 breasts exposed/204.jpgbucket: unassigned
+
+
+breasts exposed/206.jpg +
069 breasts exposed/206.jpgbucket: unassigned
+
+
+breasts exposed/207.jpg +
070 breasts exposed/207.jpgbucket: unassigned
+
+
+breasts exposed/208.jpg +
071 breasts exposed/208.jpgbucket: unassigned
+
+
+breasts exposed/213.jpg +
072 breasts exposed/213.jpgbucket: unassigned
+
+
+breasts exposed/215.jpg +
073 breasts exposed/215.jpgbucket: unassigned
+
+
+breasts exposed/218.jpg +
074 breasts exposed/218.jpgbucket: unassigned
+
+
+breasts exposed/227.jpg +
075 breasts exposed/227.jpgbucket: unassigned
+
+
+breasts exposed/230.jpg +
076 breasts exposed/230.jpgbucket: front_view / normal_display_breasts_exposed_standing_front_view
+
+
+breasts exposed/232.jpg +
077 breasts exposed/232.jpgbucket: unassigned
+
+
+breasts exposed/234.jpg +
078 breasts exposed/234.jpgbucket: unassigned
+
+
+breasts exposed/234_2.jpg +
079 breasts exposed/234_2.jpgbucket: unassigned
+
+
+breasts exposed/234_3.jpg +
080 breasts exposed/234_3.jpgbucket: unassigned
+
+
+

Page 3: 81-120

+
+
+breasts exposed/235.jpg +
081 breasts exposed/235.jpgbucket: side_view / normal_display_breasts_exposed_side_offset_view
+
+
+breasts exposed/237.jpg +
082 breasts exposed/237.jpgbucket: unassigned
+
+
+breasts exposed/242.jpg +
083 breasts exposed/242.jpgbucket: front_view / normal_display_breasts_exposed_standing_front_view
+
+
+breasts exposed/244.jpg +
084 breasts exposed/244.jpgbucket: unassigned
+
+
+breasts exposed/248.jpg +
085 breasts exposed/248.jpgbucket: unassigned
+
+
+breasts exposed/249.jpg +
086 breasts exposed/249.jpgbucket: unassigned
+
+
+breasts exposed/250.jpg +
087 breasts exposed/250.jpgbucket: unassigned
+
+
+breasts exposed/255.jpg +
088 breasts exposed/255.jpgbucket: unassigned
+
+
+breasts exposed/259.jpg +
089 breasts exposed/259.jpgbucket: front_view / normal_display_breasts_exposed_seated_kneeling_front_view
+
+
+breasts exposed/263.jpg +
090 breasts exposed/263.jpgbucket: front_view / normal_display_breasts_exposed_front_view
+
+
+breasts exposed/263_2.jpg +
091 breasts exposed/263_2.jpgbucket: unassigned
+
+
+breasts exposed/267.jpg +
092 breasts exposed/267.jpgbucket: side_view / normal_display_breasts_exposed_side_offset_view
+
+
+breasts exposed/270.jpg +
093 breasts exposed/270.jpgbucket: unassigned
+
+
+breasts exposed/271.jpg +
094 breasts exposed/271.jpgbucket: side_view / normal_display_breasts_exposed_side_offset_view
+
+
+breasts exposed/273.jpg +
095 breasts exposed/273.jpgbucket: unassigned
+
+
+breasts exposed/275.jpg +
096 breasts exposed/275.jpgbucket: unassigned
+
+
+breasts exposed/275_2.jpg +
097 breasts exposed/275_2.jpgbucket: unassigned
+
+
+breasts exposed/280.jpg +
098 breasts exposed/280.jpgbucket: unassigned
+
+
+breasts exposed/280_2.jpg +
099 breasts exposed/280_2.jpgbucket: unassigned
+
+
+breasts exposed/284.jpg +
100 breasts exposed/284.jpgbucket: unassigned
+
+
+breasts exposed/285.jpg +
101 breasts exposed/285.jpgbucket: front_view / normal_display_breasts_exposed_seated_kneeling_front_view
+
+
+breasts exposed/292.jpg +
102 breasts exposed/292.jpgbucket: unassigned
+
+
+breasts exposed/293.jpg +
103 breasts exposed/293.jpgbucket: front_view / normal_display_breasts_exposed_seated_kneeling_front_view
+
+
+breasts exposed/296.jpg +
104 breasts exposed/296.jpgbucket: unassigned
+
+
+breasts exposed/296_2.jpg +
105 breasts exposed/296_2.jpgbucket: unassigned
+
+
+breasts exposed/297.jpg +
106 breasts exposed/297.jpgbucket: unassigned
+
+
+breasts exposed/297_2.jpg +
107 breasts exposed/297_2.jpgbucket: unassigned
+
+
+breasts exposed/299.jpg +
108 breasts exposed/299.jpgbucket: unassigned
+
+
+breasts exposed/300.jpg +
109 breasts exposed/300.jpgbucket: unassigned
+
+
+breasts exposed/302.jpg +
110 breasts exposed/302.jpgbucket: front_view / normal_display_breasts_exposed_front_view
+
+
+breasts exposed/302_2.jpg +
111 breasts exposed/302_2.jpgbucket: front_view / normal_display_breasts_exposed_standing_front_view
+
+
+breasts exposed/302_3.jpg +
112 breasts exposed/302_3.jpgbucket: unassigned
+
+
+breasts exposed/304.jpg +
113 breasts exposed/304.jpgbucket: unassigned
+
+
+breasts exposed/305.jpg +
114 breasts exposed/305.jpgbucket: side_view / normal_display_breasts_exposed_side_offset_view
+
+
+breasts exposed/311.jpg +
115 breasts exposed/311.jpgbucket: unassigned
+
+
+breasts exposed/311_2.jpg +
116 breasts exposed/311_2.jpgbucket: unassigned
+
+
+breasts exposed/313.jpg +
117 breasts exposed/313.jpgbucket: unassigned
+
+
+breasts exposed/320.jpg +
118 breasts exposed/320.jpgbucket: unassigned
+
+
+breasts exposed/321.jpg +
119 breasts exposed/321.jpgbucket: unassigned
+
+
+breasts exposed/322.jpg +
120 breasts exposed/322.jpgbucket: front_view / normal_display_breasts_exposed_seated_kneeling_front_view
+
+
+

Page 4: 121-160

+
+
+breasts exposed/327.jpg +
121 breasts exposed/327.jpgbucket: front_view / normal_display_breasts_exposed_front_view
+
+
+breasts exposed/328.jpg +
122 breasts exposed/328.jpgbucket: front_view / normal_display_breasts_exposed_seated_kneeling_front_view
+
+
+breasts exposed/331.jpg +
123 breasts exposed/331.jpgbucket: unassigned
+
+
+breasts exposed/331_2.jpg +
124 breasts exposed/331_2.jpgbucket: unassigned
+
+
+breasts exposed/332.jpg +
125 breasts exposed/332.jpgbucket: front_view / normal_display_breasts_exposed_standing_front_view
+
+
+breasts exposed/346.jpg +
126 breasts exposed/346.jpgbucket: front_view / normal_display_breasts_exposed_front_view
+
+
+breasts exposed/348.jpg +
127 breasts exposed/348.jpgbucket: unassigned
+
+
+breasts exposed/353.jpg +
128 breasts exposed/353.jpgbucket: side_view / normal_display_breasts_exposed_side_offset_view
+
+
+breasts exposed/353_2.jpg +
129 breasts exposed/353_2.jpgbucket: unassigned
+
+
+breasts exposed/359.jpg +
130 breasts exposed/359.jpgbucket: unassigned
+
+
+breasts exposed/368.jpg +
131 breasts exposed/368.jpgbucket: front_view / normal_display_breasts_exposed_standing_front_view
+
+
+breasts exposed/369.jpg +
132 breasts exposed/369.jpgbucket: unassigned
+
+
+breasts exposed/369_2.jpg +
133 breasts exposed/369_2.jpgbucket: unassigned
+
+
+breasts exposed/373.jpg +
134 breasts exposed/373.jpgbucket: side_view / normal_display_breasts_exposed_side_offset_view
+
+
+breasts exposed/380.jpg +
135 breasts exposed/380.jpgbucket: unassigned
+
+
+breasts exposed/493.jpg +
136 breasts exposed/493.jpgbucket: unassigned
+
+
+breasts exposed/493_2.jpg +
137 breasts exposed/493_2.jpgbucket: unassigned
+
+
+breasts exposed/498.jpg +
138 breasts exposed/498.jpgbucket: unassigned
+
+
+breasts exposed/498_2.jpg +
139 breasts exposed/498_2.jpgbucket: unassigned
+
+
+breasts exposed/500.jpg +
140 breasts exposed/500.jpgbucket: unassigned
+
+
+breasts exposed/505.jpg +
141 breasts exposed/505.jpgbucket: unassigned
+
+
+breasts exposed/508.jpg +
142 breasts exposed/508.jpgbucket: unassigned
+
+
+breasts exposed/513.jpg +
143 breasts exposed/513.jpgbucket: unassigned
+
+
+breasts exposed/518.jpg +
144 breasts exposed/518.jpgbucket: unassigned
+
+
+breasts exposed/523.jpg +
145 breasts exposed/523.jpgbucket: front_view / normal_display_breasts_exposed_seated_kneeling_front_view
+
+
+breasts exposed/524.jpg +
146 breasts exposed/524.jpgbucket: unassigned
+
+
+breasts exposed/526.jpg +
147 breasts exposed/526.jpgbucket: unassigned
+
+
+breasts exposed/526_2.jpg +
148 breasts exposed/526_2.jpgbucket: unassigned
+
+
+breasts exposed/529.jpg +
149 breasts exposed/529.jpgbucket: unassigned
+
+
+breasts exposed/534.jpg +
150 breasts exposed/534.jpgbucket: unassigned
+
+
+breasts exposed/545.jpg +
151 breasts exposed/545.jpgbucket: unassigned
+
+
+breasts exposed/556.jpg +
152 breasts exposed/556.jpgbucket: unassigned
+
+
+breasts exposed/569.jpg +
153 breasts exposed/569.jpgbucket: unassigned
+
+
+breasts exposed/590.jpg +
154 breasts exposed/590.jpgbucket: side_view / normal_display_breasts_exposed_side_offset_view
+
+
+breasts exposed/590_2.jpg +
155 breasts exposed/590_2.jpgbucket: side_view / normal_display_breasts_exposed_side_offset_view
+
+
+breasts exposed/594.jpg +
156 breasts exposed/594.jpgbucket: unassigned
+
+
+breasts exposed/594_2.jpg +
157 breasts exposed/594_2.jpgbucket: front_view / normal_display_breasts_exposed_front_view
+
+
+breasts exposed/594_3.jpg +
158 breasts exposed/594_3.jpgbucket: unassigned
+
+
+breasts exposed/607.jpg +
159 breasts exposed/607.jpgbucket: unassigned
+
+
+breasts exposed/607_2.jpg +
160 breasts exposed/607_2.jpgbucket: unassigned
+
+
+

Page 5: 161-168

+
+
+breasts exposed/608.jpg +
161 breasts exposed/608.jpgbucket: unassigned
+
+
+breasts exposed/608_2.jpg +
162 breasts exposed/608_2.jpgbucket: unassigned
+
+
+breasts exposed/608_3.jpg +
163 breasts exposed/608_3.jpgbucket: unassigned
+
+
+breasts exposed/610.jpg +
164 breasts exposed/610.jpgbucket: unassigned
+
+
+breasts exposed/610_2.jpg +
165 breasts exposed/610_2.jpgbucket: unassigned
+
+
+breasts exposed/612.jpg +
166 breasts exposed/612.jpgbucket: unassigned
+
+
+breasts exposed/612_2.jpg +
167 breasts exposed/612_2.jpgbucket: unassigned
+
+
+breasts exposed/624.jpg +
168 breasts exposed/624.jpgbucket: front_view / normal_display_breasts_exposed_front_view
+
+
+ + diff --git a/ab_batches/normal_camera/review/breasts_exposed_review_manifest.json b/ab_batches/normal_camera/review/breasts_exposed_review_manifest.json new file mode 100644 index 0000000..23bbaa1 --- /dev/null +++ b/ab_batches/normal_camera/review/breasts_exposed_review_manifest.json @@ -0,0 +1,3144 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "breasts exposed", + "folder_alias": { + "exact_source_folder": "breasts exposed", + "canonical_folder": "breasts exposed", + "canonical_key": "breasts_exposed", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 168, + "action_family": "display", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_display_breasts_exposed_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "breasts exposed/0001_3.jpg", + "breasts exposed/0006.jpg", + "breasts exposed/0008_2.jpg", + "breasts exposed/0011_2.jpg", + "breasts exposed/141.jpg", + "breasts exposed/181.jpg", + "breasts exposed/263.jpg", + "breasts exposed/302.jpg", + "breasts exposed/327.jpg", + "breasts exposed/346.jpg", + "breasts exposed/594_2.jpg", + "breasts exposed/624.jpg" + ], + "evidence_notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset." + }, + { + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "breasts exposed/83.jpg", + "breasts exposed/196.jpg", + "breasts exposed/235.jpg", + "breasts exposed/267.jpg", + "breasts exposed/271.jpg", + "breasts exposed/305.jpg", + "breasts exposed/353.jpg", + "breasts exposed/373.jpg", + "breasts exposed/590.jpg", + "breasts exposed/590_2.jpg" + ], + "evidence_notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing." + }, + { + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "breasts exposed/0002_2.jpg", + "breasts exposed/0003.jpg", + "breasts exposed/49.jpg", + "breasts exposed/138.jpg", + "breasts exposed/155.jpg", + "breasts exposed/169.jpg", + "breasts exposed/190.jpg", + "breasts exposed/230.jpg", + "breasts exposed/242.jpg", + "breasts exposed/302_2.jpg", + "breasts exposed/332.jpg", + "breasts exposed/368.jpg" + ], + "evidence_notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool." + }, + { + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "breasts exposed/0001_2.jpg", + "breasts exposed/0007_2.jpg", + "breasts exposed/101_2.jpg", + "breasts exposed/154.jpg", + "breasts exposed/165.jpg", + "breasts exposed/173.jpg", + "breasts exposed/259.jpg", + "breasts exposed/285.jpg", + "breasts exposed/293.jpg", + "breasts exposed/322.jpg", + "breasts exposed/328.jpg", + "breasts exposed/523.jpg" + ], + "evidence_notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset." + } + ], + "review_items": [ + { + "index": 1, + "reference_image": "breasts exposed/0001.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/0001_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset.", + "index": 2 + }, + { + "reference_image": "breasts exposed/0001_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset.", + "index": 3 + }, + { + "index": 4, + "reference_image": "breasts exposed/0002.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/0002_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool.", + "index": 5 + }, + { + "index": 6, + "reference_image": "breasts exposed/0002_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/0003.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool.", + "index": 7 + }, + { + "index": 8, + "reference_image": "breasts exposed/0005.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/0006.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset.", + "index": 9 + }, + { + "index": 10, + "reference_image": "breasts exposed/0007.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/0007_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset.", + "index": 11 + }, + { + "index": 12, + "reference_image": "breasts exposed/0007_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 13, + "reference_image": "breasts exposed/0008.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/0008_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset.", + "index": 14 + }, + { + "index": 15, + "reference_image": "breasts exposed/0010.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 16, + "reference_image": "breasts exposed/0011.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/0011_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset.", + "index": 17 + }, + { + "index": 18, + "reference_image": "breasts exposed/0012.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 19, + "reference_image": "breasts exposed/0012_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 20, + "reference_image": "breasts exposed/0013.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 21, + "reference_image": "breasts exposed/0013_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 22, + "reference_image": "breasts exposed/0013_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "breasts exposed/0013_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 24, + "reference_image": "breasts exposed/0014.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 25, + "reference_image": "breasts exposed/0019.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 26, + "reference_image": "breasts exposed/0019_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 27, + "reference_image": "breasts exposed/40.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 28, + "reference_image": "breasts exposed/40_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 29, + "reference_image": "breasts exposed/44.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 30, + "reference_image": "breasts exposed/46.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/49.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool.", + "index": 31 + }, + { + "index": 32, + "reference_image": "breasts exposed/52.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 33, + "reference_image": "breasts exposed/56.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 34, + "reference_image": "breasts exposed/76.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 35, + "reference_image": "breasts exposed/80.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/83.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing.", + "index": 36 + }, + { + "index": 37, + "reference_image": "breasts exposed/91.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 38, + "reference_image": "breasts exposed/95.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 39, + "reference_image": "breasts exposed/97.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 40, + "reference_image": "breasts exposed/101.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/101_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset.", + "index": 41 + }, + { + "index": 42, + "reference_image": "breasts exposed/112.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 43, + "reference_image": "breasts exposed/114.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 44, + "reference_image": "breasts exposed/119.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 45, + "reference_image": "breasts exposed/119_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 46, + "reference_image": "breasts exposed/121.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 47, + "reference_image": "breasts exposed/134.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 48, + "reference_image": "breasts exposed/134_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/138.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool.", + "index": 49 + }, + { + "index": 50, + "reference_image": "breasts exposed/138_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/141.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset.", + "index": 51 + }, + { + "reference_image": "breasts exposed/154.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset.", + "index": 52 + }, + { + "reference_image": "breasts exposed/155.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool.", + "index": 53 + }, + { + "index": 54, + "reference_image": "breasts exposed/156.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 55, + "reference_image": "breasts exposed/158.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/165.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset.", + "index": 56 + }, + { + "index": 57, + "reference_image": "breasts exposed/168.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/169.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool.", + "index": 58 + }, + { + "reference_image": "breasts exposed/173.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset.", + "index": 59 + }, + { + "index": 60, + "reference_image": "breasts exposed/174.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 61, + "reference_image": "breasts exposed/175.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/181.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset.", + "index": 62 + }, + { + "index": 63, + "reference_image": "breasts exposed/182.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 64, + "reference_image": "breasts exposed/182_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/190.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool.", + "index": 65 + }, + { + "reference_image": "breasts exposed/196.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing.", + "index": 66 + }, + { + "index": 67, + "reference_image": "breasts exposed/199.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 68, + "reference_image": "breasts exposed/204.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 69, + "reference_image": "breasts exposed/206.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 70, + "reference_image": "breasts exposed/207.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 71, + "reference_image": "breasts exposed/208.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 72, + "reference_image": "breasts exposed/213.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 73, + "reference_image": "breasts exposed/215.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 74, + "reference_image": "breasts exposed/218.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 75, + "reference_image": "breasts exposed/227.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/230.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool.", + "index": 76 + }, + { + "index": 77, + "reference_image": "breasts exposed/232.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 78, + "reference_image": "breasts exposed/234.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 79, + "reference_image": "breasts exposed/234_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 80, + "reference_image": "breasts exposed/234_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/235.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing.", + "index": 81 + }, + { + "index": 82, + "reference_image": "breasts exposed/237.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/242.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool.", + "index": 83 + }, + { + "index": 84, + "reference_image": "breasts exposed/244.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 85, + "reference_image": "breasts exposed/248.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 86, + "reference_image": "breasts exposed/249.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 87, + "reference_image": "breasts exposed/250.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 88, + "reference_image": "breasts exposed/255.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/259.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset.", + "index": 89 + }, + { + "reference_image": "breasts exposed/263.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset.", + "index": 90 + }, + { + "index": 91, + "reference_image": "breasts exposed/263_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/267.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing.", + "index": 92 + }, + { + "index": 93, + "reference_image": "breasts exposed/270.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/271.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing.", + "index": 94 + }, + { + "index": 95, + "reference_image": "breasts exposed/273.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 96, + "reference_image": "breasts exposed/275.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 97, + "reference_image": "breasts exposed/275_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 98, + "reference_image": "breasts exposed/280.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 99, + "reference_image": "breasts exposed/280_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 100, + "reference_image": "breasts exposed/284.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/285.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset.", + "index": 101 + }, + { + "index": 102, + "reference_image": "breasts exposed/292.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/293.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset.", + "index": 103 + }, + { + "index": 104, + "reference_image": "breasts exposed/296.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 105, + "reference_image": "breasts exposed/296_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 106, + "reference_image": "breasts exposed/297.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 107, + "reference_image": "breasts exposed/297_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 108, + "reference_image": "breasts exposed/299.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 109, + "reference_image": "breasts exposed/300.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/302.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset.", + "index": 110 + }, + { + "reference_image": "breasts exposed/302_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool.", + "index": 111 + }, + { + "index": 112, + "reference_image": "breasts exposed/302_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 113, + "reference_image": "breasts exposed/304.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/305.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing.", + "index": 114 + }, + { + "index": 115, + "reference_image": "breasts exposed/311.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 116, + "reference_image": "breasts exposed/311_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 117, + "reference_image": "breasts exposed/313.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 118, + "reference_image": "breasts exposed/320.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 119, + "reference_image": "breasts exposed/321.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/322.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset.", + "index": 120 + }, + { + "reference_image": "breasts exposed/327.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset.", + "index": 121 + }, + { + "reference_image": "breasts exposed/328.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset.", + "index": 122 + }, + { + "index": 123, + "reference_image": "breasts exposed/331.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 124, + "reference_image": "breasts exposed/331_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/332.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool.", + "index": 125 + }, + { + "reference_image": "breasts exposed/346.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset.", + "index": 126 + }, + { + "index": 127, + "reference_image": "breasts exposed/348.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/353.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing.", + "index": 128 + }, + { + "index": 129, + "reference_image": "breasts exposed/353_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 130, + "reference_image": "breasts exposed/359.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/368.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool.", + "index": 131 + }, + { + "index": 132, + "reference_image": "breasts exposed/369.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 133, + "reference_image": "breasts exposed/369_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/373.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing.", + "index": 134 + }, + { + "index": 135, + "reference_image": "breasts exposed/380.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 136, + "reference_image": "breasts exposed/493.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 137, + "reference_image": "breasts exposed/493_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 138, + "reference_image": "breasts exposed/498.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 139, + "reference_image": "breasts exposed/498_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 140, + "reference_image": "breasts exposed/500.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 141, + "reference_image": "breasts exposed/505.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 142, + "reference_image": "breasts exposed/508.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 143, + "reference_image": "breasts exposed/513.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 144, + "reference_image": "breasts exposed/518.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/523.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset.", + "index": 145 + }, + { + "index": 146, + "reference_image": "breasts exposed/524.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 147, + "reference_image": "breasts exposed/526.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 148, + "reference_image": "breasts exposed/526_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 149, + "reference_image": "breasts exposed/529.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 150, + "reference_image": "breasts exposed/534.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 151, + "reference_image": "breasts exposed/545.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 152, + "reference_image": "breasts exposed/556.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 153, + "reference_image": "breasts exposed/569.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/590.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing.", + "index": 154 + }, + { + "reference_image": "breasts exposed/590_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing.", + "index": 155 + }, + { + "index": 156, + "reference_image": "breasts exposed/594.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/594_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset.", + "index": 157 + }, + { + "index": 158, + "reference_image": "breasts exposed/594_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 159, + "reference_image": "breasts exposed/607.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 160, + "reference_image": "breasts exposed/607_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 161, + "reference_image": "breasts exposed/608.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 162, + "reference_image": "breasts exposed/608_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 163, + "reference_image": "breasts exposed/608_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 164, + "reference_image": "breasts exposed/610.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 165, + "reference_image": "breasts exposed/610_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 166, + "reference_image": "breasts exposed/612.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 167, + "reference_image": "breasts exposed/612_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "breasts exposed/624.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_breasts_exposed_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset.", + "index": 168 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 40, + "image_count": 40, + "images": [ + { + "index": 1, + "reference_image": "breasts exposed/0001.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 2, + "reference_image": "breasts exposed/0001_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset." + }, + { + "index": 3, + "reference_image": "breasts exposed/0001_3.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_front_view", + "notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset." + }, + { + "index": 4, + "reference_image": "breasts exposed/0002.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "breasts exposed/0002_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool." + }, + { + "index": 6, + "reference_image": "breasts exposed/0002_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 7, + "reference_image": "breasts exposed/0003.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool." + }, + { + "index": 8, + "reference_image": "breasts exposed/0005.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "breasts exposed/0006.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_front_view", + "notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset." + }, + { + "index": 10, + "reference_image": "breasts exposed/0007.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "breasts exposed/0007_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset." + }, + { + "index": 12, + "reference_image": "breasts exposed/0007_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "breasts exposed/0008.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 14, + "reference_image": "breasts exposed/0008_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_front_view", + "notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset." + }, + { + "index": 15, + "reference_image": "breasts exposed/0010.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "breasts exposed/0011.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "breasts exposed/0011_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_front_view", + "notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset." + }, + { + "index": 18, + "reference_image": "breasts exposed/0012.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 19, + "reference_image": "breasts exposed/0012_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "breasts exposed/0013.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 21, + "reference_image": "breasts exposed/0013_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "breasts exposed/0013_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "breasts exposed/0013_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "breasts exposed/0014.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "breasts exposed/0019.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "breasts exposed/0019_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 27, + "reference_image": "breasts exposed/40.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "breasts exposed/40_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 29, + "reference_image": "breasts exposed/44.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 30, + "reference_image": "breasts exposed/46.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 31, + "reference_image": "breasts exposed/49.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool." + }, + { + "index": 32, + "reference_image": "breasts exposed/52.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "breasts exposed/56.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 34, + "reference_image": "breasts exposed/76.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 35, + "reference_image": "breasts exposed/80.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 36, + "reference_image": "breasts exposed/83.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing." + }, + { + "index": 37, + "reference_image": "breasts exposed/91.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 38, + "reference_image": "breasts exposed/95.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 39, + "reference_image": "breasts exposed/97.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 40, + "reference_image": "breasts exposed/101.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 2, + "html_anchor": "page-02", + "start_index": 41, + "end_index": 80, + "image_count": 40, + "images": [ + { + "index": 41, + "reference_image": "breasts exposed/101_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset." + }, + { + "index": 42, + "reference_image": "breasts exposed/112.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 43, + "reference_image": "breasts exposed/114.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 44, + "reference_image": "breasts exposed/119.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 45, + "reference_image": "breasts exposed/119_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 46, + "reference_image": "breasts exposed/121.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 47, + "reference_image": "breasts exposed/134.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 48, + "reference_image": "breasts exposed/134_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 49, + "reference_image": "breasts exposed/138.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool." + }, + { + "index": 50, + "reference_image": "breasts exposed/138_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 51, + "reference_image": "breasts exposed/141.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_front_view", + "notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset." + }, + { + "index": 52, + "reference_image": "breasts exposed/154.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset." + }, + { + "index": 53, + "reference_image": "breasts exposed/155.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool." + }, + { + "index": 54, + "reference_image": "breasts exposed/156.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 55, + "reference_image": "breasts exposed/158.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 56, + "reference_image": "breasts exposed/165.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset." + }, + { + "index": 57, + "reference_image": "breasts exposed/168.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 58, + "reference_image": "breasts exposed/169.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool." + }, + { + "index": 59, + "reference_image": "breasts exposed/173.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset." + }, + { + "index": 60, + "reference_image": "breasts exposed/174.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 61, + "reference_image": "breasts exposed/175.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 62, + "reference_image": "breasts exposed/181.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_front_view", + "notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset." + }, + { + "index": 63, + "reference_image": "breasts exposed/182.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 64, + "reference_image": "breasts exposed/182_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 65, + "reference_image": "breasts exposed/190.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool." + }, + { + "index": 66, + "reference_image": "breasts exposed/196.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing." + }, + { + "index": 67, + "reference_image": "breasts exposed/199.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 68, + "reference_image": "breasts exposed/204.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 69, + "reference_image": "breasts exposed/206.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 70, + "reference_image": "breasts exposed/207.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 71, + "reference_image": "breasts exposed/208.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 72, + "reference_image": "breasts exposed/213.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 73, + "reference_image": "breasts exposed/215.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 74, + "reference_image": "breasts exposed/218.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 75, + "reference_image": "breasts exposed/227.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 76, + "reference_image": "breasts exposed/230.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool." + }, + { + "index": 77, + "reference_image": "breasts exposed/232.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 78, + "reference_image": "breasts exposed/234.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 79, + "reference_image": "breasts exposed/234_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 80, + "reference_image": "breasts exposed/234_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 3, + "html_anchor": "page-03", + "start_index": 81, + "end_index": 120, + "image_count": 40, + "images": [ + { + "index": 81, + "reference_image": "breasts exposed/235.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing." + }, + { + "index": 82, + "reference_image": "breasts exposed/237.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 83, + "reference_image": "breasts exposed/242.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool." + }, + { + "index": 84, + "reference_image": "breasts exposed/244.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 85, + "reference_image": "breasts exposed/248.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 86, + "reference_image": "breasts exposed/249.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 87, + "reference_image": "breasts exposed/250.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 88, + "reference_image": "breasts exposed/255.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 89, + "reference_image": "breasts exposed/259.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset." + }, + { + "index": 90, + "reference_image": "breasts exposed/263.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_front_view", + "notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset." + }, + { + "index": 91, + "reference_image": "breasts exposed/263_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 92, + "reference_image": "breasts exposed/267.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing." + }, + { + "index": 93, + "reference_image": "breasts exposed/270.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 94, + "reference_image": "breasts exposed/271.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing." + }, + { + "index": 95, + "reference_image": "breasts exposed/273.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 96, + "reference_image": "breasts exposed/275.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 97, + "reference_image": "breasts exposed/275_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 98, + "reference_image": "breasts exposed/280.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 99, + "reference_image": "breasts exposed/280_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 100, + "reference_image": "breasts exposed/284.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 101, + "reference_image": "breasts exposed/285.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset." + }, + { + "index": 102, + "reference_image": "breasts exposed/292.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 103, + "reference_image": "breasts exposed/293.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset." + }, + { + "index": 104, + "reference_image": "breasts exposed/296.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 105, + "reference_image": "breasts exposed/296_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 106, + "reference_image": "breasts exposed/297.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 107, + "reference_image": "breasts exposed/297_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 108, + "reference_image": "breasts exposed/299.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 109, + "reference_image": "breasts exposed/300.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 110, + "reference_image": "breasts exposed/302.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_front_view", + "notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset." + }, + { + "index": 111, + "reference_image": "breasts exposed/302_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool." + }, + { + "index": 112, + "reference_image": "breasts exposed/302_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 113, + "reference_image": "breasts exposed/304.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 114, + "reference_image": "breasts exposed/305.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing." + }, + { + "index": 115, + "reference_image": "breasts exposed/311.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 116, + "reference_image": "breasts exposed/311_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 117, + "reference_image": "breasts exposed/313.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 118, + "reference_image": "breasts exposed/320.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 119, + "reference_image": "breasts exposed/321.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 120, + "reference_image": "breasts exposed/322.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset." + } + ] + }, + { + "page": 4, + "html_anchor": "page-04", + "start_index": 121, + "end_index": 160, + "image_count": 40, + "images": [ + { + "index": 121, + "reference_image": "breasts exposed/327.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_front_view", + "notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset." + }, + { + "index": 122, + "reference_image": "breasts exposed/328.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset." + }, + { + "index": 123, + "reference_image": "breasts exposed/331.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 124, + "reference_image": "breasts exposed/331_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 125, + "reference_image": "breasts exposed/332.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool." + }, + { + "index": 126, + "reference_image": "breasts exposed/346.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_front_view", + "notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset." + }, + { + "index": 127, + "reference_image": "breasts exposed/348.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 128, + "reference_image": "breasts exposed/353.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing." + }, + { + "index": 129, + "reference_image": "breasts exposed/353_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 130, + "reference_image": "breasts exposed/359.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 131, + "reference_image": "breasts exposed/368.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "notes": "Residual-pool review found a repeated upright standing front-view display family. Seated, kneeling, side-offset, and tight crop examples remain in the mixed source pool." + }, + { + "index": 132, + "reference_image": "breasts exposed/369.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 133, + "reference_image": "breasts exposed/369_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 134, + "reference_image": "breasts exposed/373.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing." + }, + { + "index": 135, + "reference_image": "breasts exposed/380.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 136, + "reference_image": "breasts exposed/493.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 137, + "reference_image": "breasts exposed/493_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 138, + "reference_image": "breasts exposed/498.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 139, + "reference_image": "breasts exposed/498_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 140, + "reference_image": "breasts exposed/500.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 141, + "reference_image": "breasts exposed/505.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 142, + "reference_image": "breasts exposed/508.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 143, + "reference_image": "breasts exposed/513.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 144, + "reference_image": "breasts exposed/518.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 145, + "reference_image": "breasts exposed/523.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "notes": "Residual-pool review found a repeated seated or kneeling front-view display family. Standing, side-offset, couple/action, and tight crop examples remain outside this selected subset." + }, + { + "index": 146, + "reference_image": "breasts exposed/524.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 147, + "reference_image": "breasts exposed/526.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 148, + "reference_image": "breasts exposed/526_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 149, + "reference_image": "breasts exposed/529.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 150, + "reference_image": "breasts exposed/534.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 151, + "reference_image": "breasts exposed/545.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 152, + "reference_image": "breasts exposed/556.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 153, + "reference_image": "breasts exposed/569.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 154, + "reference_image": "breasts exposed/590.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing." + }, + { + "index": 155, + "reference_image": "breasts exposed/590_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "notes": "Paged review found a repeated side-offset display family with lateral torso orientation and normal third-person framing." + }, + { + "index": 156, + "reference_image": "breasts exposed/594.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 157, + "reference_image": "breasts exposed/594_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_front_view", + "notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset." + }, + { + "index": 158, + "reference_image": "breasts exposed/594_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 159, + "reference_image": "breasts exposed/607.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 160, + "reference_image": "breasts exposed/607_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 5, + "html_anchor": "page-05", + "start_index": 161, + "end_index": 168, + "image_count": 8, + "images": [ + { + "index": 161, + "reference_image": "breasts exposed/608.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 162, + "reference_image": "breasts exposed/608_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 163, + "reference_image": "breasts exposed/608_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 164, + "reference_image": "breasts exposed/610.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 165, + "reference_image": "breasts exposed/610_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 166, + "reference_image": "breasts exposed/612.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 167, + "reference_image": "breasts exposed/612_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 168, + "reference_image": "breasts exposed/624.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_breasts_exposed_front_view", + "notes": "Paged review found a repeated camera-facing full-body display family inside the broad mixed source folder. Seated, side-offset, and tight upper-body crops stay separate from this selected subset." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/couple_kissing_contact_sheet.html b/ab_batches/normal_camera/review/couple_kissing_contact_sheet.html new file mode 100644 index 0000000..3593384 --- /dev/null +++ b/ab_batches/normal_camera/review/couple_kissing_contact_sheet.html @@ -0,0 +1,395 @@ + + + + +Normal Camera Review Contact Sheet: couple kissing + + + +

Normal Camera Review Contact Sheet: couple kissing

+

No-generation contact sheet. 88 JPGs from couple kissing. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: couple kissing.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-40

+
+
+couple kissing/0001.jpg +
001 couple kissing/0001.jpgbucket: unassigned
+
+
+couple kissing/0001_2.jpg +
002 couple kissing/0001_2.jpgbucket: side_view / normal_couple_kissing_upright_side_profile
+
+
+couple kissing/0002.jpg +
003 couple kissing/0002.jpgbucket: unassigned
+
+
+couple kissing/0003.jpg +
004 couple kissing/0003.jpgbucket: side_view / normal_couple_kissing_upright_side_profile
+
+
+couple kissing/0005.jpg +
005 couple kissing/0005.jpgbucket: unassigned
+
+
+couple kissing/0005_2.jpg +
006 couple kissing/0005_2.jpgbucket: side_view / normal_couple_kissing_upright_side_profile
+
+
+couple kissing/0006.jpg +
007 couple kissing/0006.jpgbucket: unassigned
+
+
+couple kissing/0009.jpg +
008 couple kissing/0009.jpgbucket: unassigned
+
+
+couple kissing/0010.jpg +
009 couple kissing/0010.jpgbucket: unassigned
+
+
+couple kissing/0012.jpg +
010 couple kissing/0012.jpgbucket: unassigned
+
+
+couple kissing/0012_2.jpg +
011 couple kissing/0012_2.jpgbucket: unassigned
+
+
+couple kissing/0012_3.jpg +
012 couple kissing/0012_3.jpgbucket: unassigned
+
+
+couple kissing/0013.jpg +
013 couple kissing/0013.jpgbucket: unassigned
+
+
+couple kissing/14.jpg +
014 couple kissing/14.jpgbucket: unassigned
+
+
+couple kissing/15.jpg +
015 couple kissing/15.jpgbucket: unassigned
+
+
+couple kissing/16.jpg +
016 couple kissing/16.jpgbucket: side_view / normal_couple_kissing_upright_side_profile
+
+
+couple kissing/0016.jpg +
017 couple kissing/0016.jpgbucket: unassigned
+
+
+couple kissing/17.jpg +
018 couple kissing/17.jpgbucket: unassigned
+
+
+couple kissing/0018.jpg +
019 couple kissing/0018.jpgbucket: unassigned
+
+
+couple kissing/22.jpg +
020 couple kissing/22.jpgbucket: unassigned
+
+
+couple kissing/23.jpg +
021 couple kissing/23.jpgbucket: unassigned
+
+
+couple kissing/26.jpg +
022 couple kissing/26.jpgbucket: unassigned
+
+
+couple kissing/29.jpg +
023 couple kissing/29.jpgbucket: unassigned
+
+
+couple kissing/37.jpg +
024 couple kissing/37.jpgbucket: unassigned
+
+
+couple kissing/44.jpg +
025 couple kissing/44.jpgbucket: unassigned
+
+
+couple kissing/50.jpg +
026 couple kissing/50.jpgbucket: unassigned
+
+
+couple kissing/56.jpg +
027 couple kissing/56.jpgbucket: unassigned
+
+
+couple kissing/56_2.jpg +
028 couple kissing/56_2.jpgbucket: unassigned
+
+
+couple kissing/63.jpg +
029 couple kissing/63.jpgbucket: unassigned
+
+
+couple kissing/70.jpg +
030 couple kissing/70.jpgbucket: unassigned
+
+
+couple kissing/81.jpg +
031 couple kissing/81.jpgbucket: unassigned
+
+
+couple kissing/91.jpg +
032 couple kissing/91.jpgbucket: unassigned
+
+
+couple kissing/91_2.jpg +
033 couple kissing/91_2.jpgbucket: unassigned
+
+
+couple kissing/96.jpg +
034 couple kissing/96.jpgbucket: unassigned
+
+
+couple kissing/122.jpg +
035 couple kissing/122.jpgbucket: unassigned
+
+
+couple kissing/137.jpg +
036 couple kissing/137.jpgbucket: unassigned
+
+
+couple kissing/159.jpg +
037 couple kissing/159.jpgbucket: side_view / normal_couple_kissing_upright_side_profile
+
+
+couple kissing/179.jpg +
038 couple kissing/179.jpgbucket: unassigned
+
+
+couple kissing/183.jpg +
039 couple kissing/183.jpgbucket: unassigned
+
+
+couple kissing/195.jpg +
040 couple kissing/195.jpgbucket: unassigned
+
+
+

Page 2: 41-80

+
+
+couple kissing/204.jpg +
041 couple kissing/204.jpgbucket: unassigned
+
+
+couple kissing/209.jpg +
042 couple kissing/209.jpgbucket: unassigned
+
+
+couple kissing/209_2.jpg +
043 couple kissing/209_2.jpgbucket: unassigned
+
+
+couple kissing/209_3.jpg +
044 couple kissing/209_3.jpgbucket: unassigned
+
+
+couple kissing/233.jpg +
045 couple kissing/233.jpgbucket: unassigned
+
+
+couple kissing/237.jpg +
046 couple kissing/237.jpgbucket: unassigned
+
+
+couple kissing/240.jpg +
047 couple kissing/240.jpgbucket: unassigned
+
+
+couple kissing/240_2.jpg +
048 couple kissing/240_2.jpgbucket: unassigned
+
+
+couple kissing/243.jpg +
049 couple kissing/243.jpgbucket: unassigned
+
+
+couple kissing/247.jpg +
050 couple kissing/247.jpgbucket: side_view / normal_couple_kissing_upright_side_profile
+
+
+couple kissing/247_2.jpg +
051 couple kissing/247_2.jpgbucket: side_view / normal_couple_kissing_upright_side_profile
+
+
+couple kissing/249.jpg +
052 couple kissing/249.jpgbucket: unassigned
+
+
+couple kissing/251.jpg +
053 couple kissing/251.jpgbucket: unassigned
+
+
+couple kissing/252.jpg +
054 couple kissing/252.jpgbucket: unassigned
+
+
+couple kissing/253.jpg +
055 couple kissing/253.jpgbucket: side_view / normal_couple_kissing_upright_side_profile
+
+
+couple kissing/253_2.jpg +
056 couple kissing/253_2.jpgbucket: side_view / normal_couple_kissing_upright_side_profile
+
+
+couple kissing/257.jpg +
057 couple kissing/257.jpgbucket: unassigned
+
+
+couple kissing/258.jpg +
058 couple kissing/258.jpgbucket: unassigned
+
+
+couple kissing/269.jpg +
059 couple kissing/269.jpgbucket: unassigned
+
+
+couple kissing/276.jpg +
060 couple kissing/276.jpgbucket: unassigned
+
+
+couple kissing/283.jpg +
061 couple kissing/283.jpgbucket: unassigned
+
+
+couple kissing/308.jpg +
062 couple kissing/308.jpgbucket: unassigned
+
+
+couple kissing/308_2.jpg +
063 couple kissing/308_2.jpgbucket: unassigned
+
+
+couple kissing/322.jpg +
064 couple kissing/322.jpgbucket: side_view / normal_couple_kissing_upright_side_profile
+
+
+couple kissing/323.jpg +
065 couple kissing/323.jpgbucket: unassigned
+
+
+couple kissing/340.jpg +
066 couple kissing/340.jpgbucket: unassigned
+
+
+couple kissing/350.jpg +
067 couple kissing/350.jpgbucket: unassigned
+
+
+couple kissing/352.jpg +
068 couple kissing/352.jpgbucket: unassigned
+
+
+couple kissing/353.jpg +
069 couple kissing/353.jpgbucket: unassigned
+
+
+couple kissing/354.jpg +
070 couple kissing/354.jpgbucket: side_view / normal_couple_kissing_upright_side_profile
+
+
+couple kissing/354_2.jpg +
071 couple kissing/354_2.jpgbucket: unassigned
+
+
+couple kissing/354_3.jpg +
072 couple kissing/354_3.jpgbucket: unassigned
+
+
+couple kissing/354_4.jpg +
073 couple kissing/354_4.jpgbucket: unassigned
+
+
+couple kissing/355.jpg +
074 couple kissing/355.jpgbucket: unassigned
+
+
+couple kissing/360.jpg +
075 couple kissing/360.jpgbucket: unassigned
+
+
+couple kissing/364.jpg +
076 couple kissing/364.jpgbucket: unassigned
+
+
+couple kissing/366.jpg +
077 couple kissing/366.jpgbucket: unassigned
+
+
+couple kissing/368.jpg +
078 couple kissing/368.jpgbucket: unassigned
+
+
+couple kissing/369.jpg +
079 couple kissing/369.jpgbucket: unassigned
+
+
+couple kissing/371.jpg +
080 couple kissing/371.jpgbucket: unassigned
+
+
+

Page 3: 81-88

+
+
+couple kissing/375.jpg +
081 couple kissing/375.jpgbucket: unassigned
+
+
+couple kissing/379.jpg +
082 couple kissing/379.jpgbucket: side_view / normal_couple_kissing_upright_side_profile
+
+
+couple kissing/379_2.jpg +
083 couple kissing/379_2.jpgbucket: unassigned
+
+
+couple kissing/379_3.jpg +
084 couple kissing/379_3.jpgbucket: unassigned
+
+
+couple kissing/503.jpg +
085 couple kissing/503.jpgbucket: unassigned
+
+
+couple kissing/511.jpg +
086 couple kissing/511.jpgbucket: unassigned
+
+
+couple kissing/511_2.jpg +
087 couple kissing/511_2.jpgbucket: unassigned
+
+
+couple kissing/591.jpg +
088 couple kissing/591.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/couple_kissing_review_manifest.json b/ab_batches/normal_camera/review/couple_kissing_review_manifest.json new file mode 100644 index 0000000..9bbd96f --- /dev/null +++ b/ab_batches/normal_camera/review/couple_kissing_review_manifest.json @@ -0,0 +1,1659 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "couple kissing", + "folder_alias": { + "exact_source_folder": "couple kissing", + "canonical_folder": "couple kissing", + "canonical_key": "couple_kissing", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 88, + "action_family": "couple", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_couple_kissing_upright_side_profile", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "couple kissing/0001_2.jpg", + "couple kissing/0003.jpg", + "couple kissing/0005_2.jpg", + "couple kissing/16.jpg", + "couple kissing/159.jpg", + "couple kissing/247.jpg", + "couple kissing/247_2.jpg", + "couple kissing/253.jpg", + "couple kissing/253_2.jpg", + "couple kissing/322.jpg", + "couple kissing/354.jpg", + "couple kissing/379.jpg" + ], + "evidence_notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + } + ], + "review_items": [ + { + "index": 1, + "reference_image": "couple kissing/0001.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "couple kissing/0001_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_couple_kissing_upright_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool.", + "index": 2 + }, + { + "index": 3, + "reference_image": "couple kissing/0002.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "couple kissing/0003.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_couple_kissing_upright_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool.", + "index": 4 + }, + { + "index": 5, + "reference_image": "couple kissing/0005.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "couple kissing/0005_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_couple_kissing_upright_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool.", + "index": 6 + }, + { + "index": 7, + "reference_image": "couple kissing/0006.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 8, + "reference_image": "couple kissing/0009.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 9, + "reference_image": "couple kissing/0010.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 10, + "reference_image": "couple kissing/0012.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 11, + "reference_image": "couple kissing/0012_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 12, + "reference_image": "couple kissing/0012_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 13, + "reference_image": "couple kissing/0013.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 14, + "reference_image": "couple kissing/14.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 15, + "reference_image": "couple kissing/15.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "couple kissing/16.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_couple_kissing_upright_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool.", + "index": 16 + }, + { + "index": 17, + "reference_image": "couple kissing/0016.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 18, + "reference_image": "couple kissing/17.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 19, + "reference_image": "couple kissing/0018.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 20, + "reference_image": "couple kissing/22.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 21, + "reference_image": "couple kissing/23.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 22, + "reference_image": "couple kissing/26.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "couple kissing/29.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 24, + "reference_image": "couple kissing/37.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 25, + "reference_image": "couple kissing/44.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 26, + "reference_image": "couple kissing/50.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 27, + "reference_image": "couple kissing/56.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 28, + "reference_image": "couple kissing/56_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 29, + "reference_image": "couple kissing/63.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 30, + "reference_image": "couple kissing/70.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 31, + "reference_image": "couple kissing/81.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 32, + "reference_image": "couple kissing/91.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 33, + "reference_image": "couple kissing/91_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 34, + "reference_image": "couple kissing/96.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 35, + "reference_image": "couple kissing/122.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 36, + "reference_image": "couple kissing/137.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "couple kissing/159.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_couple_kissing_upright_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool.", + "index": 37 + }, + { + "index": 38, + "reference_image": "couple kissing/179.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 39, + "reference_image": "couple kissing/183.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 40, + "reference_image": "couple kissing/195.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 41, + "reference_image": "couple kissing/204.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 42, + "reference_image": "couple kissing/209.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 43, + "reference_image": "couple kissing/209_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 44, + "reference_image": "couple kissing/209_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 45, + "reference_image": "couple kissing/233.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 46, + "reference_image": "couple kissing/237.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 47, + "reference_image": "couple kissing/240.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 48, + "reference_image": "couple kissing/240_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 49, + "reference_image": "couple kissing/243.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "couple kissing/247.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_couple_kissing_upright_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool.", + "index": 50 + }, + { + "reference_image": "couple kissing/247_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_couple_kissing_upright_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool.", + "index": 51 + }, + { + "index": 52, + "reference_image": "couple kissing/249.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 53, + "reference_image": "couple kissing/251.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 54, + "reference_image": "couple kissing/252.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "couple kissing/253.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_couple_kissing_upright_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool.", + "index": 55 + }, + { + "reference_image": "couple kissing/253_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_couple_kissing_upright_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool.", + "index": 56 + }, + { + "index": 57, + "reference_image": "couple kissing/257.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 58, + "reference_image": "couple kissing/258.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 59, + "reference_image": "couple kissing/269.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 60, + "reference_image": "couple kissing/276.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 61, + "reference_image": "couple kissing/283.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 62, + "reference_image": "couple kissing/308.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 63, + "reference_image": "couple kissing/308_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "couple kissing/322.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_couple_kissing_upright_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool.", + "index": 64 + }, + { + "index": 65, + "reference_image": "couple kissing/323.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 66, + "reference_image": "couple kissing/340.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 67, + "reference_image": "couple kissing/350.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 68, + "reference_image": "couple kissing/352.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 69, + "reference_image": "couple kissing/353.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "couple kissing/354.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_couple_kissing_upright_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool.", + "index": 70 + }, + { + "index": 71, + "reference_image": "couple kissing/354_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 72, + "reference_image": "couple kissing/354_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 73, + "reference_image": "couple kissing/354_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 74, + "reference_image": "couple kissing/355.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 75, + "reference_image": "couple kissing/360.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 76, + "reference_image": "couple kissing/364.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 77, + "reference_image": "couple kissing/366.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 78, + "reference_image": "couple kissing/368.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 79, + "reference_image": "couple kissing/369.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 80, + "reference_image": "couple kissing/371.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 81, + "reference_image": "couple kissing/375.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "couple kissing/379.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_couple_kissing_upright_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool.", + "index": 82 + }, + { + "index": 83, + "reference_image": "couple kissing/379_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 84, + "reference_image": "couple kissing/379_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 85, + "reference_image": "couple kissing/503.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 86, + "reference_image": "couple kissing/511.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 87, + "reference_image": "couple kissing/511_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 88, + "reference_image": "couple kissing/591.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 40, + "image_count": 40, + "images": [ + { + "index": 1, + "reference_image": "couple kissing/0001.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 2, + "reference_image": "couple kissing/0001_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_couple_kissing_upright_side_profile", + "notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + }, + { + "index": 3, + "reference_image": "couple kissing/0002.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 4, + "reference_image": "couple kissing/0003.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_couple_kissing_upright_side_profile", + "notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + }, + { + "index": 5, + "reference_image": "couple kissing/0005.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 6, + "reference_image": "couple kissing/0005_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_couple_kissing_upright_side_profile", + "notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + }, + { + "index": 7, + "reference_image": "couple kissing/0006.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 8, + "reference_image": "couple kissing/0009.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "couple kissing/0010.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "couple kissing/0012.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "couple kissing/0012_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "couple kissing/0012_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "couple kissing/0013.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 14, + "reference_image": "couple kissing/14.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "couple kissing/15.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "couple kissing/16.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_couple_kissing_upright_side_profile", + "notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + }, + { + "index": 17, + "reference_image": "couple kissing/0016.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 18, + "reference_image": "couple kissing/17.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 19, + "reference_image": "couple kissing/0018.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "couple kissing/22.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 21, + "reference_image": "couple kissing/23.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "couple kissing/26.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "couple kissing/29.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "couple kissing/37.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "couple kissing/44.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "couple kissing/50.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 27, + "reference_image": "couple kissing/56.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "couple kissing/56_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 29, + "reference_image": "couple kissing/63.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 30, + "reference_image": "couple kissing/70.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 31, + "reference_image": "couple kissing/81.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 32, + "reference_image": "couple kissing/91.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "couple kissing/91_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 34, + "reference_image": "couple kissing/96.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 35, + "reference_image": "couple kissing/122.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 36, + "reference_image": "couple kissing/137.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 37, + "reference_image": "couple kissing/159.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_couple_kissing_upright_side_profile", + "notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + }, + { + "index": 38, + "reference_image": "couple kissing/179.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 39, + "reference_image": "couple kissing/183.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 40, + "reference_image": "couple kissing/195.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 2, + "html_anchor": "page-02", + "start_index": 41, + "end_index": 80, + "image_count": 40, + "images": [ + { + "index": 41, + "reference_image": "couple kissing/204.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 42, + "reference_image": "couple kissing/209.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 43, + "reference_image": "couple kissing/209_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 44, + "reference_image": "couple kissing/209_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 45, + "reference_image": "couple kissing/233.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 46, + "reference_image": "couple kissing/237.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 47, + "reference_image": "couple kissing/240.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 48, + "reference_image": "couple kissing/240_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 49, + "reference_image": "couple kissing/243.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 50, + "reference_image": "couple kissing/247.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_couple_kissing_upright_side_profile", + "notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + }, + { + "index": 51, + "reference_image": "couple kissing/247_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_couple_kissing_upright_side_profile", + "notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + }, + { + "index": 52, + "reference_image": "couple kissing/249.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 53, + "reference_image": "couple kissing/251.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 54, + "reference_image": "couple kissing/252.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 55, + "reference_image": "couple kissing/253.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_couple_kissing_upright_side_profile", + "notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + }, + { + "index": 56, + "reference_image": "couple kissing/253_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_couple_kissing_upright_side_profile", + "notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + }, + { + "index": 57, + "reference_image": "couple kissing/257.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 58, + "reference_image": "couple kissing/258.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 59, + "reference_image": "couple kissing/269.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 60, + "reference_image": "couple kissing/276.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 61, + "reference_image": "couple kissing/283.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 62, + "reference_image": "couple kissing/308.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 63, + "reference_image": "couple kissing/308_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 64, + "reference_image": "couple kissing/322.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_couple_kissing_upright_side_profile", + "notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + }, + { + "index": 65, + "reference_image": "couple kissing/323.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 66, + "reference_image": "couple kissing/340.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 67, + "reference_image": "couple kissing/350.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 68, + "reference_image": "couple kissing/352.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 69, + "reference_image": "couple kissing/353.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 70, + "reference_image": "couple kissing/354.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_couple_kissing_upright_side_profile", + "notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + }, + { + "index": 71, + "reference_image": "couple kissing/354_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 72, + "reference_image": "couple kissing/354_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 73, + "reference_image": "couple kissing/354_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 74, + "reference_image": "couple kissing/355.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 75, + "reference_image": "couple kissing/360.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 76, + "reference_image": "couple kissing/364.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 77, + "reference_image": "couple kissing/366.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 78, + "reference_image": "couple kissing/368.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 79, + "reference_image": "couple kissing/369.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 80, + "reference_image": "couple kissing/371.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 3, + "html_anchor": "page-03", + "start_index": 81, + "end_index": 88, + "image_count": 8, + "images": [ + { + "index": 81, + "reference_image": "couple kissing/375.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 82, + "reference_image": "couple kissing/379.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_couple_kissing_upright_side_profile", + "notes": "Paged review found a repeated upright side-profile kissing family. Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + }, + { + "index": 83, + "reference_image": "couple kissing/379_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 84, + "reference_image": "couple kissing/379_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 85, + "reference_image": "couple kissing/503.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 86, + "reference_image": "couple kissing/511.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 87, + "reference_image": "couple kissing/511_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 88, + "reference_image": "couple kissing/591.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/cowgirl_back_view_3_4_angle_contact_sheet.html b/ab_batches/normal_camera/review/cowgirl_back_view_3_4_angle_contact_sheet.html new file mode 100644 index 0000000..6b4dc68 --- /dev/null +++ b/ab_batches/normal_camera/review/cowgirl_back_view_3_4_angle_contact_sheet.html @@ -0,0 +1,562 @@ + + + + +Normal Camera Review Contact Sheet: cowgirl - back view - 3-4 angle + + + +

Normal Camera Review Contact Sheet: cowgirl - back view - 3-4 angle

+

No-generation contact sheet. 129 JPGs from cowgirl - back view - 3-4 angle. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: cowgirl - back view - 3-4 angle.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-40

+
+
+cowgirl - back view - 3-4 angle/0002.jpg +
001 cowgirl - back view - 3-4 angle/0002.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/0003.jpg +
002 cowgirl - back view - 3-4 angle/0003.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0003_2.jpg +
003 cowgirl - back view - 3-4 angle/0003_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0003_3.jpg +
004 cowgirl - back view - 3-4 angle/0003_3.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0003_4.jpg +
005 cowgirl - back view - 3-4 angle/0003_4.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/0003_5.jpg +
006 cowgirl - back view - 3-4 angle/0003_5.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0004.jpg +
007 cowgirl - back view - 3-4 angle/0004.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0004_2.jpg +
008 cowgirl - back view - 3-4 angle/0004_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/5.jpg +
009 cowgirl - back view - 3-4 angle/5.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0005.jpg +
010 cowgirl - back view - 3-4 angle/0005.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0006.jpg +
011 cowgirl - back view - 3-4 angle/0006.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/0006_2.jpg +
012 cowgirl - back view - 3-4 angle/0006_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0007.jpg +
013 cowgirl - back view - 3-4 angle/0007.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0007_2.jpg +
014 cowgirl - back view - 3-4 angle/0007_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0007_3.jpg +
015 cowgirl - back view - 3-4 angle/0007_3.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0008.jpg +
016 cowgirl - back view - 3-4 angle/0008.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0008_2.jpg +
017 cowgirl - back view - 3-4 angle/0008_2.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/0010.jpg +
018 cowgirl - back view - 3-4 angle/0010.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0010_2.jpg +
019 cowgirl - back view - 3-4 angle/0010_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0010_3.jpg +
020 cowgirl - back view - 3-4 angle/0010_3.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0011.jpg +
021 cowgirl - back view - 3-4 angle/0011.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0011_2.jpg +
022 cowgirl - back view - 3-4 angle/0011_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0011_3.jpg +
023 cowgirl - back view - 3-4 angle/0011_3.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0011_4.jpg +
024 cowgirl - back view - 3-4 angle/0011_4.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0012.jpg +
025 cowgirl - back view - 3-4 angle/0012.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0014.jpg +
026 cowgirl - back view - 3-4 angle/0014.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0015.jpg +
027 cowgirl - back view - 3-4 angle/0015.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/16.jpg +
028 cowgirl - back view - 3-4 angle/16.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/0017.jpg +
029 cowgirl - back view - 3-4 angle/0017.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/18.jpg +
030 cowgirl - back view - 3-4 angle/18.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0019.jpg +
031 cowgirl - back view - 3-4 angle/0019.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0020.jpg +
032 cowgirl - back view - 3-4 angle/0020.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/0021.jpg +
033 cowgirl - back view - 3-4 angle/0021.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/22.jpg +
034 cowgirl - back view - 3-4 angle/22.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/22_2.jpg +
035 cowgirl - back view - 3-4 angle/22_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/28.jpg +
036 cowgirl - back view - 3-4 angle/28.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/29.jpg +
037 cowgirl - back view - 3-4 angle/29.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/40.jpg +
038 cowgirl - back view - 3-4 angle/40.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/41.jpg +
039 cowgirl - back view - 3-4 angle/41.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/41_2.jpg +
040 cowgirl - back view - 3-4 angle/41_2.jpgbucket: unassigned
+
+
+

Page 2: 41-80

+
+
+cowgirl - back view - 3-4 angle/61.jpg +
041 cowgirl - back view - 3-4 angle/61.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/62.jpg +
042 cowgirl - back view - 3-4 angle/62.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/64.jpg +
043 cowgirl - back view - 3-4 angle/64.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/74.jpg +
044 cowgirl - back view - 3-4 angle/74.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/74_2.jpg +
045 cowgirl - back view - 3-4 angle/74_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/81.jpg +
046 cowgirl - back view - 3-4 angle/81.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/82.jpg +
047 cowgirl - back view - 3-4 angle/82.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/85.jpg +
048 cowgirl - back view - 3-4 angle/85.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/90.jpg +
049 cowgirl - back view - 3-4 angle/90.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/109.jpg +
050 cowgirl - back view - 3-4 angle/109.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/119.jpg +
051 cowgirl - back view - 3-4 angle/119.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/122.jpg +
052 cowgirl - back view - 3-4 angle/122.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/133.jpg +
053 cowgirl - back view - 3-4 angle/133.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/137.jpg +
054 cowgirl - back view - 3-4 angle/137.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/145.jpg +
055 cowgirl - back view - 3-4 angle/145.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/153.jpg +
056 cowgirl - back view - 3-4 angle/153.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/159.jpg +
057 cowgirl - back view - 3-4 angle/159.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/159_2.jpg +
058 cowgirl - back view - 3-4 angle/159_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/160.jpg +
059 cowgirl - back view - 3-4 angle/160.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/161.jpg +
060 cowgirl - back view - 3-4 angle/161.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/168.jpg +
061 cowgirl - back view - 3-4 angle/168.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/171.jpg +
062 cowgirl - back view - 3-4 angle/171.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/172.jpg +
063 cowgirl - back view - 3-4 angle/172.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/172_2.jpg +
064 cowgirl - back view - 3-4 angle/172_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/184.jpg +
065 cowgirl - back view - 3-4 angle/184.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/185.jpg +
066 cowgirl - back view - 3-4 angle/185.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/188.jpg +
067 cowgirl - back view - 3-4 angle/188.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/206.jpg +
068 cowgirl - back view - 3-4 angle/206.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/218.jpg +
069 cowgirl - back view - 3-4 angle/218.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/221.jpg +
070 cowgirl - back view - 3-4 angle/221.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/225.jpg +
071 cowgirl - back view - 3-4 angle/225.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/226.jpg +
072 cowgirl - back view - 3-4 angle/226.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/227.jpg +
073 cowgirl - back view - 3-4 angle/227.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/232.jpg +
074 cowgirl - back view - 3-4 angle/232.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/233.jpg +
075 cowgirl - back view - 3-4 angle/233.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/237.jpg +
076 cowgirl - back view - 3-4 angle/237.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/241.jpg +
077 cowgirl - back view - 3-4 angle/241.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/241_2.jpg +
078 cowgirl - back view - 3-4 angle/241_2.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+cowgirl - back view - 3-4 angle/243.jpg +
079 cowgirl - back view - 3-4 angle/243.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/248.jpg +
080 cowgirl - back view - 3-4 angle/248.jpgbucket: back_three_quarter / normal_cowgirl_back_three_quarter
+
+
+

Page 3: 81-120

+
+
+cowgirl - back view - 3-4 angle/249.jpg +
081 cowgirl - back view - 3-4 angle/249.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/257.jpg +
082 cowgirl - back view - 3-4 angle/257.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/258.jpg +
083 cowgirl - back view - 3-4 angle/258.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/265.jpg +
084 cowgirl - back view - 3-4 angle/265.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/266.jpg +
085 cowgirl - back view - 3-4 angle/266.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/270.jpg +
086 cowgirl - back view - 3-4 angle/270.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/275.jpg +
087 cowgirl - back view - 3-4 angle/275.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/287.jpg +
088 cowgirl - back view - 3-4 angle/287.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/288.jpg +
089 cowgirl - back view - 3-4 angle/288.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/290.jpg +
090 cowgirl - back view - 3-4 angle/290.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/291.jpg +
091 cowgirl - back view - 3-4 angle/291.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/291_2.jpg +
092 cowgirl - back view - 3-4 angle/291_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/292.jpg +
093 cowgirl - back view - 3-4 angle/292.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/298.jpg +
094 cowgirl - back view - 3-4 angle/298.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/302.jpg +
095 cowgirl - back view - 3-4 angle/302.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/305.jpg +
096 cowgirl - back view - 3-4 angle/305.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/307.jpg +
097 cowgirl - back view - 3-4 angle/307.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/319.jpg +
098 cowgirl - back view - 3-4 angle/319.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/319_2.jpg +
099 cowgirl - back view - 3-4 angle/319_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/323.jpg +
100 cowgirl - back view - 3-4 angle/323.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/324.jpg +
101 cowgirl - back view - 3-4 angle/324.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/328.jpg +
102 cowgirl - back view - 3-4 angle/328.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/329.jpg +
103 cowgirl - back view - 3-4 angle/329.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/331.jpg +
104 cowgirl - back view - 3-4 angle/331.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/338.jpg +
105 cowgirl - back view - 3-4 angle/338.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/343.jpg +
106 cowgirl - back view - 3-4 angle/343.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/356.jpg +
107 cowgirl - back view - 3-4 angle/356.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/356_2.jpg +
108 cowgirl - back view - 3-4 angle/356_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/369.jpg +
109 cowgirl - back view - 3-4 angle/369.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/371.jpg +
110 cowgirl - back view - 3-4 angle/371.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/499.jpg +
111 cowgirl - back view - 3-4 angle/499.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/533.jpg +
112 cowgirl - back view - 3-4 angle/533.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/537.jpg +
113 cowgirl - back view - 3-4 angle/537.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/547.jpg +
114 cowgirl - back view - 3-4 angle/547.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/549.jpg +
115 cowgirl - back view - 3-4 angle/549.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/549_2.jpg +
116 cowgirl - back view - 3-4 angle/549_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/549_3.jpg +
117 cowgirl - back view - 3-4 angle/549_3.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/591.jpg +
118 cowgirl - back view - 3-4 angle/591.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/596.jpg +
119 cowgirl - back view - 3-4 angle/596.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/597.jpg +
120 cowgirl - back view - 3-4 angle/597.jpgbucket: unassigned
+
+
+

Page 4: 121-129

+
+
+cowgirl - back view - 3-4 angle/601.jpg +
121 cowgirl - back view - 3-4 angle/601.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/606.jpg +
122 cowgirl - back view - 3-4 angle/606.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/608.jpg +
123 cowgirl - back view - 3-4 angle/608.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/608_2.jpg +
124 cowgirl - back view - 3-4 angle/608_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/613.jpg +
125 cowgirl - back view - 3-4 angle/613.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/613_2.jpg +
126 cowgirl - back view - 3-4 angle/613_2.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/614.jpg +
127 cowgirl - back view - 3-4 angle/614.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/615.jpg +
128 cowgirl - back view - 3-4 angle/615.jpgbucket: unassigned
+
+
+cowgirl - back view - 3-4 angle/615_2.jpg +
129 cowgirl - back view - 3-4 angle/615_2.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/cowgirl_back_view_3_4_angle_review_manifest.json b/ab_batches/normal_camera/review/cowgirl_back_view_3_4_angle_review_manifest.json new file mode 100644 index 0000000..f5eba9e --- /dev/null +++ b/ab_batches/normal_camera/review/cowgirl_back_view_3_4_angle_review_manifest.json @@ -0,0 +1,2406 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "cowgirl - back view - 3-4 angle", + "folder_alias": { + "exact_source_folder": "cowgirl - back view - 3-4 angle", + "canonical_folder": "cowgirl - back view - 3-4 angle", + "canonical_key": "cowgirl_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 129, + "action_family": "cowgirl", + "source_camera_view": "back_three_quarter", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_cowgirl_back_three_quarter", + "review_bucket": "back_three_quarter", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "cowgirl - back view - 3-4 angle/0002.jpg", + "cowgirl - back view - 3-4 angle/0003_4.jpg", + "cowgirl - back view - 3-4 angle/0006.jpg", + "cowgirl - back view - 3-4 angle/0008_2.jpg", + "cowgirl - back view - 3-4 angle/16.jpg", + "cowgirl - back view - 3-4 angle/22.jpg", + "cowgirl - back view - 3-4 angle/41.jpg", + "cowgirl - back view - 3-4 angle/82.jpg", + "cowgirl - back view - 3-4 angle/90.jpg", + "cowgirl - back view - 3-4 angle/145.jpg", + "cowgirl - back view - 3-4 angle/160.jpg", + "cowgirl - back view - 3-4 angle/172.jpg", + "cowgirl - back view - 3-4 angle/225.jpg", + "cowgirl - back view - 3-4 angle/241_2.jpg", + "cowgirl - back view - 3-4 angle/248.jpg" + ], + "evidence_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + } + ], + "review_items": [ + { + "reference_image": "cowgirl - back view - 3-4 angle/0002.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 1 + }, + { + "index": 2, + "reference_image": "cowgirl - back view - 3-4 angle/0003.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 3, + "reference_image": "cowgirl - back view - 3-4 angle/0003_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 4, + "reference_image": "cowgirl - back view - 3-4 angle/0003_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/0003_4.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 5 + }, + { + "index": 6, + "reference_image": "cowgirl - back view - 3-4 angle/0003_5.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 7, + "reference_image": "cowgirl - back view - 3-4 angle/0004.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 8, + "reference_image": "cowgirl - back view - 3-4 angle/0004_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 9, + "reference_image": "cowgirl - back view - 3-4 angle/5.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 10, + "reference_image": "cowgirl - back view - 3-4 angle/0005.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/0006.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 11 + }, + { + "index": 12, + "reference_image": "cowgirl - back view - 3-4 angle/0006_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 13, + "reference_image": "cowgirl - back view - 3-4 angle/0007.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 14, + "reference_image": "cowgirl - back view - 3-4 angle/0007_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 15, + "reference_image": "cowgirl - back view - 3-4 angle/0007_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 16, + "reference_image": "cowgirl - back view - 3-4 angle/0008.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/0008_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 17 + }, + { + "index": 18, + "reference_image": "cowgirl - back view - 3-4 angle/0010.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 19, + "reference_image": "cowgirl - back view - 3-4 angle/0010_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 20, + "reference_image": "cowgirl - back view - 3-4 angle/0010_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 21, + "reference_image": "cowgirl - back view - 3-4 angle/0011.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 22, + "reference_image": "cowgirl - back view - 3-4 angle/0011_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "cowgirl - back view - 3-4 angle/0011_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 24, + "reference_image": "cowgirl - back view - 3-4 angle/0011_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 25, + "reference_image": "cowgirl - back view - 3-4 angle/0012.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 26, + "reference_image": "cowgirl - back view - 3-4 angle/0014.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 27, + "reference_image": "cowgirl - back view - 3-4 angle/0015.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/16.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 28 + }, + { + "index": 29, + "reference_image": "cowgirl - back view - 3-4 angle/0017.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 30, + "reference_image": "cowgirl - back view - 3-4 angle/18.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 31, + "reference_image": "cowgirl - back view - 3-4 angle/0019.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 32, + "reference_image": "cowgirl - back view - 3-4 angle/0020.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 33, + "reference_image": "cowgirl - back view - 3-4 angle/0021.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/22.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 34 + }, + { + "index": 35, + "reference_image": "cowgirl - back view - 3-4 angle/22_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 36, + "reference_image": "cowgirl - back view - 3-4 angle/28.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 37, + "reference_image": "cowgirl - back view - 3-4 angle/29.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 38, + "reference_image": "cowgirl - back view - 3-4 angle/40.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/41.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 39 + }, + { + "index": 40, + "reference_image": "cowgirl - back view - 3-4 angle/41_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 41, + "reference_image": "cowgirl - back view - 3-4 angle/61.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 42, + "reference_image": "cowgirl - back view - 3-4 angle/62.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 43, + "reference_image": "cowgirl - back view - 3-4 angle/64.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 44, + "reference_image": "cowgirl - back view - 3-4 angle/74.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 45, + "reference_image": "cowgirl - back view - 3-4 angle/74_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 46, + "reference_image": "cowgirl - back view - 3-4 angle/81.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/82.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 47 + }, + { + "index": 48, + "reference_image": "cowgirl - back view - 3-4 angle/85.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/90.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 49 + }, + { + "index": 50, + "reference_image": "cowgirl - back view - 3-4 angle/109.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 51, + "reference_image": "cowgirl - back view - 3-4 angle/119.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 52, + "reference_image": "cowgirl - back view - 3-4 angle/122.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 53, + "reference_image": "cowgirl - back view - 3-4 angle/133.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 54, + "reference_image": "cowgirl - back view - 3-4 angle/137.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/145.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 55 + }, + { + "index": 56, + "reference_image": "cowgirl - back view - 3-4 angle/153.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 57, + "reference_image": "cowgirl - back view - 3-4 angle/159.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 58, + "reference_image": "cowgirl - back view - 3-4 angle/159_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/160.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 59 + }, + { + "index": 60, + "reference_image": "cowgirl - back view - 3-4 angle/161.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 61, + "reference_image": "cowgirl - back view - 3-4 angle/168.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 62, + "reference_image": "cowgirl - back view - 3-4 angle/171.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/172.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 63 + }, + { + "index": 64, + "reference_image": "cowgirl - back view - 3-4 angle/172_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 65, + "reference_image": "cowgirl - back view - 3-4 angle/184.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 66, + "reference_image": "cowgirl - back view - 3-4 angle/185.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 67, + "reference_image": "cowgirl - back view - 3-4 angle/188.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 68, + "reference_image": "cowgirl - back view - 3-4 angle/206.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 69, + "reference_image": "cowgirl - back view - 3-4 angle/218.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 70, + "reference_image": "cowgirl - back view - 3-4 angle/221.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/225.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 71 + }, + { + "index": 72, + "reference_image": "cowgirl - back view - 3-4 angle/226.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 73, + "reference_image": "cowgirl - back view - 3-4 angle/227.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 74, + "reference_image": "cowgirl - back view - 3-4 angle/232.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 75, + "reference_image": "cowgirl - back view - 3-4 angle/233.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 76, + "reference_image": "cowgirl - back view - 3-4 angle/237.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 77, + "reference_image": "cowgirl - back view - 3-4 angle/241.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/241_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 78 + }, + { + "index": 79, + "reference_image": "cowgirl - back view - 3-4 angle/243.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - back view - 3-4 angle/248.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_cowgirl_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route.", + "index": 80 + }, + { + "index": 81, + "reference_image": "cowgirl - back view - 3-4 angle/249.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 82, + "reference_image": "cowgirl - back view - 3-4 angle/257.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 83, + "reference_image": "cowgirl - back view - 3-4 angle/258.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 84, + "reference_image": "cowgirl - back view - 3-4 angle/265.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 85, + "reference_image": "cowgirl - back view - 3-4 angle/266.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 86, + "reference_image": "cowgirl - back view - 3-4 angle/270.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 87, + "reference_image": "cowgirl - back view - 3-4 angle/275.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 88, + "reference_image": "cowgirl - back view - 3-4 angle/287.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 89, + "reference_image": "cowgirl - back view - 3-4 angle/288.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 90, + "reference_image": "cowgirl - back view - 3-4 angle/290.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 91, + "reference_image": "cowgirl - back view - 3-4 angle/291.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 92, + "reference_image": "cowgirl - back view - 3-4 angle/291_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 93, + "reference_image": "cowgirl - back view - 3-4 angle/292.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 94, + "reference_image": "cowgirl - back view - 3-4 angle/298.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 95, + "reference_image": "cowgirl - back view - 3-4 angle/302.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 96, + "reference_image": "cowgirl - back view - 3-4 angle/305.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 97, + "reference_image": "cowgirl - back view - 3-4 angle/307.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 98, + "reference_image": "cowgirl - back view - 3-4 angle/319.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 99, + "reference_image": "cowgirl - back view - 3-4 angle/319_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 100, + "reference_image": "cowgirl - back view - 3-4 angle/323.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 101, + "reference_image": "cowgirl - back view - 3-4 angle/324.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 102, + "reference_image": "cowgirl - back view - 3-4 angle/328.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 103, + "reference_image": "cowgirl - back view - 3-4 angle/329.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 104, + "reference_image": "cowgirl - back view - 3-4 angle/331.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 105, + "reference_image": "cowgirl - back view - 3-4 angle/338.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 106, + "reference_image": "cowgirl - back view - 3-4 angle/343.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 107, + "reference_image": "cowgirl - back view - 3-4 angle/356.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 108, + "reference_image": "cowgirl - back view - 3-4 angle/356_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 109, + "reference_image": "cowgirl - back view - 3-4 angle/369.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 110, + "reference_image": "cowgirl - back view - 3-4 angle/371.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 111, + "reference_image": "cowgirl - back view - 3-4 angle/499.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 112, + "reference_image": "cowgirl - back view - 3-4 angle/533.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 113, + "reference_image": "cowgirl - back view - 3-4 angle/537.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 114, + "reference_image": "cowgirl - back view - 3-4 angle/547.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 115, + "reference_image": "cowgirl - back view - 3-4 angle/549.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 116, + "reference_image": "cowgirl - back view - 3-4 angle/549_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 117, + "reference_image": "cowgirl - back view - 3-4 angle/549_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 118, + "reference_image": "cowgirl - back view - 3-4 angle/591.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 119, + "reference_image": "cowgirl - back view - 3-4 angle/596.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 120, + "reference_image": "cowgirl - back view - 3-4 angle/597.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 121, + "reference_image": "cowgirl - back view - 3-4 angle/601.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 122, + "reference_image": "cowgirl - back view - 3-4 angle/606.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 123, + "reference_image": "cowgirl - back view - 3-4 angle/608.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 124, + "reference_image": "cowgirl - back view - 3-4 angle/608_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 125, + "reference_image": "cowgirl - back view - 3-4 angle/613.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 126, + "reference_image": "cowgirl - back view - 3-4 angle/613_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 127, + "reference_image": "cowgirl - back view - 3-4 angle/614.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 128, + "reference_image": "cowgirl - back view - 3-4 angle/615.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 129, + "reference_image": "cowgirl - back view - 3-4 angle/615_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 40, + "image_count": 40, + "images": [ + { + "index": 1, + "reference_image": "cowgirl - back view - 3-4 angle/0002.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 2, + "reference_image": "cowgirl - back view - 3-4 angle/0003.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 3, + "reference_image": "cowgirl - back view - 3-4 angle/0003_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 4, + "reference_image": "cowgirl - back view - 3-4 angle/0003_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "cowgirl - back view - 3-4 angle/0003_4.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 6, + "reference_image": "cowgirl - back view - 3-4 angle/0003_5.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 7, + "reference_image": "cowgirl - back view - 3-4 angle/0004.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 8, + "reference_image": "cowgirl - back view - 3-4 angle/0004_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "cowgirl - back view - 3-4 angle/5.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "cowgirl - back view - 3-4 angle/0005.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "cowgirl - back view - 3-4 angle/0006.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 12, + "reference_image": "cowgirl - back view - 3-4 angle/0006_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "cowgirl - back view - 3-4 angle/0007.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 14, + "reference_image": "cowgirl - back view - 3-4 angle/0007_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "cowgirl - back view - 3-4 angle/0007_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "cowgirl - back view - 3-4 angle/0008.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "cowgirl - back view - 3-4 angle/0008_2.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 18, + "reference_image": "cowgirl - back view - 3-4 angle/0010.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 19, + "reference_image": "cowgirl - back view - 3-4 angle/0010_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "cowgirl - back view - 3-4 angle/0010_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 21, + "reference_image": "cowgirl - back view - 3-4 angle/0011.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "cowgirl - back view - 3-4 angle/0011_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "cowgirl - back view - 3-4 angle/0011_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "cowgirl - back view - 3-4 angle/0011_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "cowgirl - back view - 3-4 angle/0012.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "cowgirl - back view - 3-4 angle/0014.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 27, + "reference_image": "cowgirl - back view - 3-4 angle/0015.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "cowgirl - back view - 3-4 angle/16.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 29, + "reference_image": "cowgirl - back view - 3-4 angle/0017.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 30, + "reference_image": "cowgirl - back view - 3-4 angle/18.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 31, + "reference_image": "cowgirl - back view - 3-4 angle/0019.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 32, + "reference_image": "cowgirl - back view - 3-4 angle/0020.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "cowgirl - back view - 3-4 angle/0021.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 34, + "reference_image": "cowgirl - back view - 3-4 angle/22.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 35, + "reference_image": "cowgirl - back view - 3-4 angle/22_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 36, + "reference_image": "cowgirl - back view - 3-4 angle/28.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 37, + "reference_image": "cowgirl - back view - 3-4 angle/29.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 38, + "reference_image": "cowgirl - back view - 3-4 angle/40.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 39, + "reference_image": "cowgirl - back view - 3-4 angle/41.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 40, + "reference_image": "cowgirl - back view - 3-4 angle/41_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 2, + "html_anchor": "page-02", + "start_index": 41, + "end_index": 80, + "image_count": 40, + "images": [ + { + "index": 41, + "reference_image": "cowgirl - back view - 3-4 angle/61.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 42, + "reference_image": "cowgirl - back view - 3-4 angle/62.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 43, + "reference_image": "cowgirl - back view - 3-4 angle/64.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 44, + "reference_image": "cowgirl - back view - 3-4 angle/74.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 45, + "reference_image": "cowgirl - back view - 3-4 angle/74_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 46, + "reference_image": "cowgirl - back view - 3-4 angle/81.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 47, + "reference_image": "cowgirl - back view - 3-4 angle/82.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 48, + "reference_image": "cowgirl - back view - 3-4 angle/85.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 49, + "reference_image": "cowgirl - back view - 3-4 angle/90.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 50, + "reference_image": "cowgirl - back view - 3-4 angle/109.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 51, + "reference_image": "cowgirl - back view - 3-4 angle/119.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 52, + "reference_image": "cowgirl - back view - 3-4 angle/122.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 53, + "reference_image": "cowgirl - back view - 3-4 angle/133.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 54, + "reference_image": "cowgirl - back view - 3-4 angle/137.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 55, + "reference_image": "cowgirl - back view - 3-4 angle/145.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 56, + "reference_image": "cowgirl - back view - 3-4 angle/153.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 57, + "reference_image": "cowgirl - back view - 3-4 angle/159.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 58, + "reference_image": "cowgirl - back view - 3-4 angle/159_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 59, + "reference_image": "cowgirl - back view - 3-4 angle/160.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 60, + "reference_image": "cowgirl - back view - 3-4 angle/161.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 61, + "reference_image": "cowgirl - back view - 3-4 angle/168.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 62, + "reference_image": "cowgirl - back view - 3-4 angle/171.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 63, + "reference_image": "cowgirl - back view - 3-4 angle/172.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 64, + "reference_image": "cowgirl - back view - 3-4 angle/172_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 65, + "reference_image": "cowgirl - back view - 3-4 angle/184.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 66, + "reference_image": "cowgirl - back view - 3-4 angle/185.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 67, + "reference_image": "cowgirl - back view - 3-4 angle/188.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 68, + "reference_image": "cowgirl - back view - 3-4 angle/206.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 69, + "reference_image": "cowgirl - back view - 3-4 angle/218.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 70, + "reference_image": "cowgirl - back view - 3-4 angle/221.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 71, + "reference_image": "cowgirl - back view - 3-4 angle/225.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 72, + "reference_image": "cowgirl - back view - 3-4 angle/226.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 73, + "reference_image": "cowgirl - back view - 3-4 angle/227.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 74, + "reference_image": "cowgirl - back view - 3-4 angle/232.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 75, + "reference_image": "cowgirl - back view - 3-4 angle/233.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 76, + "reference_image": "cowgirl - back view - 3-4 angle/237.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 77, + "reference_image": "cowgirl - back view - 3-4 angle/241.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 78, + "reference_image": "cowgirl - back view - 3-4 angle/241_2.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + }, + { + "index": 79, + "reference_image": "cowgirl - back view - 3-4 angle/243.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 80, + "reference_image": "cowgirl - back view - 3-4 angle/248.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_back_three_quarter", + "notes": "Residual-pool review confirmed the existing route as a broad but coherent rear three-quarter cowgirl family. References were expanded rather than splitting a near-duplicate route." + } + ] + }, + { + "page": 3, + "html_anchor": "page-03", + "start_index": 81, + "end_index": 120, + "image_count": 40, + "images": [ + { + "index": 81, + "reference_image": "cowgirl - back view - 3-4 angle/249.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 82, + "reference_image": "cowgirl - back view - 3-4 angle/257.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 83, + "reference_image": "cowgirl - back view - 3-4 angle/258.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 84, + "reference_image": "cowgirl - back view - 3-4 angle/265.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 85, + "reference_image": "cowgirl - back view - 3-4 angle/266.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 86, + "reference_image": "cowgirl - back view - 3-4 angle/270.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 87, + "reference_image": "cowgirl - back view - 3-4 angle/275.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 88, + "reference_image": "cowgirl - back view - 3-4 angle/287.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 89, + "reference_image": "cowgirl - back view - 3-4 angle/288.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 90, + "reference_image": "cowgirl - back view - 3-4 angle/290.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 91, + "reference_image": "cowgirl - back view - 3-4 angle/291.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 92, + "reference_image": "cowgirl - back view - 3-4 angle/291_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 93, + "reference_image": "cowgirl - back view - 3-4 angle/292.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 94, + "reference_image": "cowgirl - back view - 3-4 angle/298.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 95, + "reference_image": "cowgirl - back view - 3-4 angle/302.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 96, + "reference_image": "cowgirl - back view - 3-4 angle/305.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 97, + "reference_image": "cowgirl - back view - 3-4 angle/307.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 98, + "reference_image": "cowgirl - back view - 3-4 angle/319.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 99, + "reference_image": "cowgirl - back view - 3-4 angle/319_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 100, + "reference_image": "cowgirl - back view - 3-4 angle/323.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 101, + "reference_image": "cowgirl - back view - 3-4 angle/324.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 102, + "reference_image": "cowgirl - back view - 3-4 angle/328.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 103, + "reference_image": "cowgirl - back view - 3-4 angle/329.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 104, + "reference_image": "cowgirl - back view - 3-4 angle/331.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 105, + "reference_image": "cowgirl - back view - 3-4 angle/338.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 106, + "reference_image": "cowgirl - back view - 3-4 angle/343.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 107, + "reference_image": "cowgirl - back view - 3-4 angle/356.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 108, + "reference_image": "cowgirl - back view - 3-4 angle/356_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 109, + "reference_image": "cowgirl - back view - 3-4 angle/369.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 110, + "reference_image": "cowgirl - back view - 3-4 angle/371.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 111, + "reference_image": "cowgirl - back view - 3-4 angle/499.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 112, + "reference_image": "cowgirl - back view - 3-4 angle/533.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 113, + "reference_image": "cowgirl - back view - 3-4 angle/537.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 114, + "reference_image": "cowgirl - back view - 3-4 angle/547.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 115, + "reference_image": "cowgirl - back view - 3-4 angle/549.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 116, + "reference_image": "cowgirl - back view - 3-4 angle/549_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 117, + "reference_image": "cowgirl - back view - 3-4 angle/549_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 118, + "reference_image": "cowgirl - back view - 3-4 angle/591.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 119, + "reference_image": "cowgirl - back view - 3-4 angle/596.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 120, + "reference_image": "cowgirl - back view - 3-4 angle/597.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 4, + "html_anchor": "page-04", + "start_index": 121, + "end_index": 129, + "image_count": 9, + "images": [ + { + "index": 121, + "reference_image": "cowgirl - back view - 3-4 angle/601.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 122, + "reference_image": "cowgirl - back view - 3-4 angle/606.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 123, + "reference_image": "cowgirl - back view - 3-4 angle/608.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 124, + "reference_image": "cowgirl - back view - 3-4 angle/608_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 125, + "reference_image": "cowgirl - back view - 3-4 angle/613.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 126, + "reference_image": "cowgirl - back view - 3-4 angle/613_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 127, + "reference_image": "cowgirl - back view - 3-4 angle/614.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 128, + "reference_image": "cowgirl - back view - 3-4 angle/615.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 129, + "reference_image": "cowgirl - back view - 3-4 angle/615_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/cowgirl_side_view_contact_sheet.html b/ab_batches/normal_camera/review/cowgirl_side_view_contact_sheet.html new file mode 100644 index 0000000..791fa4d --- /dev/null +++ b/ab_batches/normal_camera/review/cowgirl_side_view_contact_sheet.html @@ -0,0 +1,173 @@ + + + + +Normal Camera Review Contact Sheet: cowgirl - side view + + + +

Normal Camera Review Contact Sheet: cowgirl - side view

+

No-generation contact sheet. 34 JPGs from cowgirl - side view. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: cowgirl - side view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-34

+
+
+cowgirl - side view/2.jpg +
001 cowgirl - side view/2.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/2_2.jpg +
002 cowgirl - side view/2_2.jpgbucket: unassigned
+
+
+cowgirl - side view/0003.jpg +
003 cowgirl - side view/0003.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/0004.jpg +
004 cowgirl - side view/0004.jpgbucket: unassigned
+
+
+cowgirl - side view/0004_2.jpg +
005 cowgirl - side view/0004_2.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/0005.jpg +
006 cowgirl - side view/0005.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/0006.jpg +
007 cowgirl - side view/0006.jpgbucket: unassigned
+
+
+cowgirl - side view/0007.jpg +
008 cowgirl - side view/0007.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/0009.jpg +
009 cowgirl - side view/0009.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/0011.jpg +
010 cowgirl - side view/0011.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/0014.jpg +
011 cowgirl - side view/0014.jpgbucket: unassigned
+
+
+cowgirl - side view/0015.jpg +
012 cowgirl - side view/0015.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/29.jpg +
013 cowgirl - side view/29.jpgbucket: unassigned
+
+
+cowgirl - side view/40.jpg +
014 cowgirl - side view/40.jpgbucket: unassigned
+
+
+cowgirl - side view/55.jpg +
015 cowgirl - side view/55.jpgbucket: unassigned
+
+
+cowgirl - side view/86.jpg +
016 cowgirl - side view/86.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/86_2.jpg +
017 cowgirl - side view/86_2.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/118.jpg +
018 cowgirl - side view/118.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/195.jpg +
019 cowgirl - side view/195.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/200.jpg +
020 cowgirl - side view/200.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/255.jpg +
021 cowgirl - side view/255.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/265.jpg +
022 cowgirl - side view/265.jpgbucket: unassigned
+
+
+cowgirl - side view/271.jpg +
023 cowgirl - side view/271.jpgbucket: unassigned
+
+
+cowgirl - side view/280.jpg +
024 cowgirl - side view/280.jpgbucket: side_view / normal_cowgirl_side_profile
+
+
+cowgirl - side view/303.jpg +
025 cowgirl - side view/303.jpgbucket: unassigned
+
+
+cowgirl - side view/315.jpg +
026 cowgirl - side view/315.jpgbucket: unassigned
+
+
+cowgirl - side view/319.jpg +
027 cowgirl - side view/319.jpgbucket: unassigned
+
+
+cowgirl - side view/338.jpg +
028 cowgirl - side view/338.jpgbucket: unassigned
+
+
+cowgirl - side view/353.jpg +
029 cowgirl - side view/353.jpgbucket: unassigned
+
+
+cowgirl - side view/364.jpg +
030 cowgirl - side view/364.jpgbucket: unassigned
+
+
+cowgirl - side view/364_2.jpg +
031 cowgirl - side view/364_2.jpgbucket: unassigned
+
+
+cowgirl - side view/375.jpg +
032 cowgirl - side view/375.jpgbucket: unassigned
+
+
+cowgirl - side view/593.jpg +
033 cowgirl - side view/593.jpgbucket: unassigned
+
+
+cowgirl - side view/606.jpg +
034 cowgirl - side view/606.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/cowgirl_side_view_review_manifest.json b/ab_batches/normal_camera/review/cowgirl_side_view_review_manifest.json new file mode 100644 index 0000000..86dba03 --- /dev/null +++ b/ab_batches/normal_camera/review/cowgirl_side_view_review_manifest.json @@ -0,0 +1,669 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "cowgirl - side view", + "folder_alias": { + "exact_source_folder": "cowgirl - side view", + "canonical_folder": "cowgirl - side view", + "canonical_key": "cowgirl_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 34, + "action_family": "cowgirl", + "source_camera_view": "side_view", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_cowgirl_side_profile", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "cowgirl - side view/0003.jpg", + "cowgirl - side view/0004_2.jpg", + "cowgirl - side view/0005.jpg", + "cowgirl - side view/0007.jpg", + "cowgirl - side view/0009.jpg", + "cowgirl - side view/0011.jpg", + "cowgirl - side view/0015.jpg", + "cowgirl - side view/118.jpg", + "cowgirl - side view/195.jpg", + "cowgirl - side view/2.jpg", + "cowgirl - side view/200.jpg", + "cowgirl - side view/255.jpg", + "cowgirl - side view/280.jpg", + "cowgirl - side view/86.jpg", + "cowgirl - side view/86_2.jpg" + ], + "evidence_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + } + ], + "review_items": [ + { + "reference_image": "cowgirl - side view/2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 1 + }, + { + "index": 2, + "reference_image": "cowgirl - side view/2_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - side view/0003.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 3 + }, + { + "index": 4, + "reference_image": "cowgirl - side view/0004.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - side view/0004_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 5 + }, + { + "reference_image": "cowgirl - side view/0005.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 6 + }, + { + "index": 7, + "reference_image": "cowgirl - side view/0006.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - side view/0007.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 8 + }, + { + "reference_image": "cowgirl - side view/0009.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 9 + }, + { + "reference_image": "cowgirl - side view/0011.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 10 + }, + { + "index": 11, + "reference_image": "cowgirl - side view/0014.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - side view/0015.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 12 + }, + { + "index": 13, + "reference_image": "cowgirl - side view/29.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 14, + "reference_image": "cowgirl - side view/40.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 15, + "reference_image": "cowgirl - side view/55.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - side view/86.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 16 + }, + { + "reference_image": "cowgirl - side view/86_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 17 + }, + { + "reference_image": "cowgirl - side view/118.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 18 + }, + { + "reference_image": "cowgirl - side view/195.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 19 + }, + { + "reference_image": "cowgirl - side view/200.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 20 + }, + { + "reference_image": "cowgirl - side view/255.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 21 + }, + { + "index": 22, + "reference_image": "cowgirl - side view/265.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "cowgirl - side view/271.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "cowgirl - side view/280.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_cowgirl_side_profile", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset.", + "index": 24 + }, + { + "index": 25, + "reference_image": "cowgirl - side view/303.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 26, + "reference_image": "cowgirl - side view/315.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 27, + "reference_image": "cowgirl - side view/319.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 28, + "reference_image": "cowgirl - side view/338.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 29, + "reference_image": "cowgirl - side view/353.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 30, + "reference_image": "cowgirl - side view/364.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 31, + "reference_image": "cowgirl - side view/364_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 32, + "reference_image": "cowgirl - side view/375.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 33, + "reference_image": "cowgirl - side view/593.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 34, + "reference_image": "cowgirl - side view/606.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 34, + "image_count": 34, + "images": [ + { + "index": 1, + "reference_image": "cowgirl - side view/2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 2, + "reference_image": "cowgirl - side view/2_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 3, + "reference_image": "cowgirl - side view/0003.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 4, + "reference_image": "cowgirl - side view/0004.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "cowgirl - side view/0004_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 6, + "reference_image": "cowgirl - side view/0005.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 7, + "reference_image": "cowgirl - side view/0006.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 8, + "reference_image": "cowgirl - side view/0007.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 9, + "reference_image": "cowgirl - side view/0009.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 10, + "reference_image": "cowgirl - side view/0011.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 11, + "reference_image": "cowgirl - side view/0014.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "cowgirl - side view/0015.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 13, + "reference_image": "cowgirl - side view/29.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 14, + "reference_image": "cowgirl - side view/40.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "cowgirl - side view/55.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "cowgirl - side view/86.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 17, + "reference_image": "cowgirl - side view/86_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 18, + "reference_image": "cowgirl - side view/118.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 19, + "reference_image": "cowgirl - side view/195.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 20, + "reference_image": "cowgirl - side view/200.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 21, + "reference_image": "cowgirl - side view/255.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 22, + "reference_image": "cowgirl - side view/265.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "cowgirl - side view/271.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "cowgirl - side view/280.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_cowgirl_side_profile", + "notes": "Residual-pool review confirmed the existing side-profile cowgirl route as a coherent lateral camera family. References were expanded while front-drifting, rear-drifting, and tight-crop examples remain outside the selected subset." + }, + { + "index": 25, + "reference_image": "cowgirl - side view/303.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "cowgirl - side view/315.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 27, + "reference_image": "cowgirl - side view/319.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "cowgirl - side view/338.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 29, + "reference_image": "cowgirl - side view/353.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 30, + "reference_image": "cowgirl - side view/364.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 31, + "reference_image": "cowgirl - side view/364_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 32, + "reference_image": "cowgirl - side view/375.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "cowgirl - side view/593.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 34, + "reference_image": "cowgirl - side view/606.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/doggy_all_four_front_view_contact_sheet.html b/ab_batches/normal_camera/review/doggy_all_four_front_view_contact_sheet.html new file mode 100644 index 0000000..5bc33d2 --- /dev/null +++ b/ab_batches/normal_camera/review/doggy_all_four_front_view_contact_sheet.html @@ -0,0 +1,149 @@ + + + + +Normal Camera Review Contact Sheet: doggy all four - front view + + + +

Normal Camera Review Contact Sheet: doggy all four - front view

+

No-generation contact sheet. 28 JPGs from doggy all four - front view. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: doggy all four - front view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-28

+
+
+doggy all four - front view/0016.jpg +
001 doggy all four - front view/0016.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/48.jpg +
002 doggy all four - front view/48.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/58.jpg +
003 doggy all four - front view/58.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/64.jpg +
004 doggy all four - front view/64.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/69.jpg +
005 doggy all four - front view/69.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/77.jpg +
006 doggy all four - front view/77.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/83.jpg +
007 doggy all four - front view/83.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/85.jpg +
008 doggy all four - front view/85.jpgbucket: unassigned
+
+
+doggy all four - front view/91.jpg +
009 doggy all four - front view/91.jpgbucket: unassigned
+
+
+doggy all four - front view/96.jpg +
010 doggy all four - front view/96.jpgbucket: unassigned
+
+
+doggy all four - front view/97.jpg +
011 doggy all four - front view/97.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/164.jpg +
012 doggy all four - front view/164.jpgbucket: unassigned
+
+
+doggy all four - front view/171.jpg +
013 doggy all four - front view/171.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/175.jpg +
014 doggy all four - front view/175.jpgbucket: unassigned
+
+
+doggy all four - front view/184.jpg +
015 doggy all four - front view/184.jpgbucket: unassigned
+
+
+doggy all four - front view/194.jpg +
016 doggy all four - front view/194.jpgbucket: unassigned
+
+
+doggy all four - front view/197.jpg +
017 doggy all four - front view/197.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/200.jpg +
018 doggy all four - front view/200.jpgbucket: unassigned
+
+
+doggy all four - front view/204.jpg +
019 doggy all four - front view/204.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/213.jpg +
020 doggy all four - front view/213.jpgbucket: unassigned
+
+
+doggy all four - front view/221.jpg +
021 doggy all four - front view/221.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/243.jpg +
022 doggy all four - front view/243.jpgbucket: unassigned
+
+
+doggy all four - front view/269.jpg +
023 doggy all four - front view/269.jpgbucket: unassigned
+
+
+doggy all four - front view/273.jpg +
024 doggy all four - front view/273.jpgbucket: unassigned
+
+
+doggy all four - front view/290.jpg +
025 doggy all four - front view/290.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/305.jpg +
026 doggy all four - front view/305.jpgbucket: unassigned
+
+
+doggy all four - front view/596.jpg +
027 doggy all four - front view/596.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+doggy all four - front view/598.jpg +
028 doggy all four - front view/598.jpgbucket: front_view / normal_doggy_all_fours_front_view
+
+
+ + diff --git a/ab_batches/normal_camera/review/doggy_all_four_front_view_review_manifest.json b/ab_batches/normal_camera/review/doggy_all_four_front_view_review_manifest.json new file mode 100644 index 0000000..9e0302d --- /dev/null +++ b/ab_batches/normal_camera/review/doggy_all_four_front_view_review_manifest.json @@ -0,0 +1,561 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "doggy all four - front view", + "folder_alias": { + "exact_source_folder": "doggy all four - front view", + "canonical_folder": "doggy all four - front view", + "canonical_key": "doggy_all_four_front_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 28, + "action_family": "doggy", + "source_camera_view": "front_view", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_doggy_all_fours_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "doggy all four - front view/0016.jpg", + "doggy all four - front view/48.jpg", + "doggy all four - front view/58.jpg", + "doggy all four - front view/64.jpg", + "doggy all four - front view/69.jpg", + "doggy all four - front view/77.jpg", + "doggy all four - front view/83.jpg", + "doggy all four - front view/97.jpg", + "doggy all four - front view/171.jpg", + "doggy all four - front view/197.jpg", + "doggy all four - front view/204.jpg", + "doggy all four - front view/221.jpg", + "doggy all four - front view/290.jpg", + "doggy all four - front view/596.jpg", + "doggy all four - front view/598.jpg" + ], + "evidence_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + } + ], + "review_items": [ + { + "reference_image": "doggy all four - front view/0016.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 1 + }, + { + "reference_image": "doggy all four - front view/48.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 2 + }, + { + "reference_image": "doggy all four - front view/58.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 3 + }, + { + "reference_image": "doggy all four - front view/64.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 4 + }, + { + "reference_image": "doggy all four - front view/69.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 5 + }, + { + "reference_image": "doggy all four - front view/77.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 6 + }, + { + "reference_image": "doggy all four - front view/83.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 7 + }, + { + "index": 8, + "reference_image": "doggy all four - front view/85.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 9, + "reference_image": "doggy all four - front view/91.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 10, + "reference_image": "doggy all four - front view/96.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy all four - front view/97.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 11 + }, + { + "index": 12, + "reference_image": "doggy all four - front view/164.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy all four - front view/171.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 13 + }, + { + "index": 14, + "reference_image": "doggy all four - front view/175.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 15, + "reference_image": "doggy all four - front view/184.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 16, + "reference_image": "doggy all four - front view/194.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy all four - front view/197.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 17 + }, + { + "index": 18, + "reference_image": "doggy all four - front view/200.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy all four - front view/204.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 19 + }, + { + "index": 20, + "reference_image": "doggy all four - front view/213.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy all four - front view/221.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 21 + }, + { + "index": 22, + "reference_image": "doggy all four - front view/243.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "doggy all four - front view/269.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 24, + "reference_image": "doggy all four - front view/273.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy all four - front view/290.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 25 + }, + { + "index": 26, + "reference_image": "doggy all four - front view/305.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy all four - front view/596.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 27 + }, + { + "reference_image": "doggy all four - front view/598.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_all_fours_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset.", + "index": 28 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 28, + "image_count": 28, + "images": [ + { + "index": 1, + "reference_image": "doggy all four - front view/0016.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 2, + "reference_image": "doggy all four - front view/48.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 3, + "reference_image": "doggy all four - front view/58.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 4, + "reference_image": "doggy all four - front view/64.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 5, + "reference_image": "doggy all four - front view/69.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 6, + "reference_image": "doggy all four - front view/77.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 7, + "reference_image": "doggy all four - front view/83.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 8, + "reference_image": "doggy all four - front view/85.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "doggy all four - front view/91.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "doggy all four - front view/96.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "doggy all four - front view/97.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 12, + "reference_image": "doggy all four - front view/164.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "doggy all four - front view/171.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 14, + "reference_image": "doggy all four - front view/175.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "doggy all four - front view/184.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "doggy all four - front view/194.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "doggy all four - front view/197.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 18, + "reference_image": "doggy all four - front view/200.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 19, + "reference_image": "doggy all four - front view/204.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 20, + "reference_image": "doggy all four - front view/213.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 21, + "reference_image": "doggy all four - front view/221.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 22, + "reference_image": "doggy all four - front view/243.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "doggy all four - front view/269.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "doggy all four - front view/273.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "doggy all four - front view/290.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 26, + "reference_image": "doggy all four - front view/305.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 27, + "reference_image": "doggy all four - front view/596.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + }, + { + "index": 28, + "reference_image": "doggy all four - front view/598.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_front_view", + "notes": "Residual-pool review confirmed a repeated front all-fours normal-camera family with face and forearms readable in front while the partner remains behind. Side-drifting, seated, tight-close, and vertical-crop outliers remain outside the selected subset." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/doggy_back_view_3_4_angle_contact_sheet.html b/ab_batches/normal_camera/review/doggy_back_view_3_4_angle_contact_sheet.html new file mode 100644 index 0000000..e9bbb3a --- /dev/null +++ b/ab_batches/normal_camera/review/doggy_back_view_3_4_angle_contact_sheet.html @@ -0,0 +1,177 @@ + + + + +Normal Camera Review Contact Sheet: doggy - back view - 3-4 angle + + + +

Normal Camera Review Contact Sheet: doggy - back view - 3-4 angle

+

No-generation contact sheet. 35 JPGs from doggy - back view - 3-4 angle. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: doggy - back view - 3-4 angle.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-35

+
+
+doggy - back view - 3-4 angle/0002.jpg +
001 doggy - back view - 3-4 angle/0002.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/0002_2.jpg +
002 doggy - back view - 3-4 angle/0002_2.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/5.jpg +
003 doggy - back view - 3-4 angle/5.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/0005.jpg +
004 doggy - back view - 3-4 angle/0005.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/0008.jpg +
005 doggy - back view - 3-4 angle/0008.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/0008_2.jpg +
006 doggy - back view - 3-4 angle/0008_2.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/0012.jpg +
007 doggy - back view - 3-4 angle/0012.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/0013.jpg +
008 doggy - back view - 3-4 angle/0013.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/14.jpg +
009 doggy - back view - 3-4 angle/14.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/0014.jpg +
010 doggy - back view - 3-4 angle/0014.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/0015.jpg +
011 doggy - back view - 3-4 angle/0015.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/0017.jpg +
012 doggy - back view - 3-4 angle/0017.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/0021.jpg +
013 doggy - back view - 3-4 angle/0021.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/27.jpg +
014 doggy - back view - 3-4 angle/27.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/39.jpg +
015 doggy - back view - 3-4 angle/39.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/41.jpg +
016 doggy - back view - 3-4 angle/41.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/77.jpg +
017 doggy - back view - 3-4 angle/77.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/132.jpg +
018 doggy - back view - 3-4 angle/132.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/137.jpg +
019 doggy - back view - 3-4 angle/137.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/145.jpg +
020 doggy - back view - 3-4 angle/145.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/161.jpg +
021 doggy - back view - 3-4 angle/161.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/183.jpg +
022 doggy - back view - 3-4 angle/183.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/185.jpg +
023 doggy - back view - 3-4 angle/185.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/227.jpg +
024 doggy - back view - 3-4 angle/227.jpgbucket: back_three_quarter / normal_doggy_generic_back_three_quarter
+
+
+doggy - back view - 3-4 angle/324.jpg +
025 doggy - back view - 3-4 angle/324.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/499.jpg +
026 doggy - back view - 3-4 angle/499.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/503.jpg +
027 doggy - back view - 3-4 angle/503.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/516.jpg +
028 doggy - back view - 3-4 angle/516.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/532.jpg +
029 doggy - back view - 3-4 angle/532.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/547.jpg +
030 doggy - back view - 3-4 angle/547.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/552.jpg +
031 doggy - back view - 3-4 angle/552.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/566.jpg +
032 doggy - back view - 3-4 angle/566.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/566_2.jpg +
033 doggy - back view - 3-4 angle/566_2.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/597.jpg +
034 doggy - back view - 3-4 angle/597.jpgbucket: unassigned
+
+
+doggy - back view - 3-4 angle/617.jpg +
035 doggy - back view - 3-4 angle/617.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/doggy_back_view_3_4_angle_review_manifest.json b/ab_batches/normal_camera/review/doggy_back_view_3_4_angle_review_manifest.json new file mode 100644 index 0000000..6db8ef4 --- /dev/null +++ b/ab_batches/normal_camera/review/doggy_back_view_3_4_angle_review_manifest.json @@ -0,0 +1,687 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "doggy - back view - 3-4 angle", + "folder_alias": { + "exact_source_folder": "doggy - back view - 3-4 angle", + "canonical_folder": "doggy - back view - 3-4 angle", + "canonical_key": "doggy_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 35, + "action_family": "doggy", + "source_camera_view": "back_three_quarter", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_doggy_generic_back_three_quarter", + "review_bucket": "back_three_quarter", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "doggy - back view - 3-4 angle/0002.jpg", + "doggy - back view - 3-4 angle/0002_2.jpg", + "doggy - back view - 3-4 angle/0008_2.jpg", + "doggy - back view - 3-4 angle/0013.jpg", + "doggy - back view - 3-4 angle/0015.jpg", + "doggy - back view - 3-4 angle/0017.jpg", + "doggy - back view - 3-4 angle/0021.jpg", + "doggy - back view - 3-4 angle/132.jpg", + "doggy - back view - 3-4 angle/145.jpg", + "doggy - back view - 3-4 angle/183.jpg", + "doggy - back view - 3-4 angle/185.jpg", + "doggy - back view - 3-4 angle/227.jpg", + "doggy - back view - 3-4 angle/39.jpg", + "doggy - back view - 3-4 angle/41.jpg", + "doggy - back view - 3-4 angle/77.jpg" + ], + "evidence_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + } + ], + "review_items": [ + { + "reference_image": "doggy - back view - 3-4 angle/0002.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 1 + }, + { + "reference_image": "doggy - back view - 3-4 angle/0002_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 2 + }, + { + "index": 3, + "reference_image": "doggy - back view - 3-4 angle/5.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 4, + "reference_image": "doggy - back view - 3-4 angle/0005.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 5, + "reference_image": "doggy - back view - 3-4 angle/0008.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy - back view - 3-4 angle/0008_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 6 + }, + { + "index": 7, + "reference_image": "doggy - back view - 3-4 angle/0012.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy - back view - 3-4 angle/0013.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 8 + }, + { + "index": 9, + "reference_image": "doggy - back view - 3-4 angle/14.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 10, + "reference_image": "doggy - back view - 3-4 angle/0014.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy - back view - 3-4 angle/0015.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 11 + }, + { + "reference_image": "doggy - back view - 3-4 angle/0017.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 12 + }, + { + "reference_image": "doggy - back view - 3-4 angle/0021.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 13 + }, + { + "index": 14, + "reference_image": "doggy - back view - 3-4 angle/27.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy - back view - 3-4 angle/39.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 15 + }, + { + "reference_image": "doggy - back view - 3-4 angle/41.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 16 + }, + { + "reference_image": "doggy - back view - 3-4 angle/77.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 17 + }, + { + "reference_image": "doggy - back view - 3-4 angle/132.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 18 + }, + { + "index": 19, + "reference_image": "doggy - back view - 3-4 angle/137.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy - back view - 3-4 angle/145.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 20 + }, + { + "index": 21, + "reference_image": "doggy - back view - 3-4 angle/161.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy - back view - 3-4 angle/183.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 22 + }, + { + "reference_image": "doggy - back view - 3-4 angle/185.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 23 + }, + { + "reference_image": "doggy - back view - 3-4 angle/227.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_generic_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset.", + "index": 24 + }, + { + "index": 25, + "reference_image": "doggy - back view - 3-4 angle/324.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 26, + "reference_image": "doggy - back view - 3-4 angle/499.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 27, + "reference_image": "doggy - back view - 3-4 angle/503.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 28, + "reference_image": "doggy - back view - 3-4 angle/516.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 29, + "reference_image": "doggy - back view - 3-4 angle/532.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 30, + "reference_image": "doggy - back view - 3-4 angle/547.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 31, + "reference_image": "doggy - back view - 3-4 angle/552.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 32, + "reference_image": "doggy - back view - 3-4 angle/566.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 33, + "reference_image": "doggy - back view - 3-4 angle/566_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 34, + "reference_image": "doggy - back view - 3-4 angle/597.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 35, + "reference_image": "doggy - back view - 3-4 angle/617.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 35, + "image_count": 35, + "images": [ + { + "index": 1, + "reference_image": "doggy - back view - 3-4 angle/0002.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 2, + "reference_image": "doggy - back view - 3-4 angle/0002_2.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 3, + "reference_image": "doggy - back view - 3-4 angle/5.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 4, + "reference_image": "doggy - back view - 3-4 angle/0005.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "doggy - back view - 3-4 angle/0008.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 6, + "reference_image": "doggy - back view - 3-4 angle/0008_2.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 7, + "reference_image": "doggy - back view - 3-4 angle/0012.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 8, + "reference_image": "doggy - back view - 3-4 angle/0013.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 9, + "reference_image": "doggy - back view - 3-4 angle/14.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "doggy - back view - 3-4 angle/0014.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "doggy - back view - 3-4 angle/0015.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 12, + "reference_image": "doggy - back view - 3-4 angle/0017.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 13, + "reference_image": "doggy - back view - 3-4 angle/0021.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 14, + "reference_image": "doggy - back view - 3-4 angle/27.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "doggy - back view - 3-4 angle/39.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 16, + "reference_image": "doggy - back view - 3-4 angle/41.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 17, + "reference_image": "doggy - back view - 3-4 angle/77.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 18, + "reference_image": "doggy - back view - 3-4 angle/132.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 19, + "reference_image": "doggy - back view - 3-4 angle/137.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "doggy - back view - 3-4 angle/145.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 21, + "reference_image": "doggy - back view - 3-4 angle/161.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "doggy - back view - 3-4 angle/183.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 23, + "reference_image": "doggy - back view - 3-4 angle/185.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 24, + "reference_image": "doggy - back view - 3-4 angle/227.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_back_three_quarter", + "notes": "Residual-pool review confirmed the existing generic rear three-quarter route as a coherent back-offset camera family. References were expanded while low/close and laying-drift examples remain outside the selected subset." + }, + { + "index": 25, + "reference_image": "doggy - back view - 3-4 angle/324.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "doggy - back view - 3-4 angle/499.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 27, + "reference_image": "doggy - back view - 3-4 angle/503.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "doggy - back view - 3-4 angle/516.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 29, + "reference_image": "doggy - back view - 3-4 angle/532.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 30, + "reference_image": "doggy - back view - 3-4 angle/547.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 31, + "reference_image": "doggy - back view - 3-4 angle/552.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 32, + "reference_image": "doggy - back view - 3-4 angle/566.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "doggy - back view - 3-4 angle/566_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 34, + "reference_image": "doggy - back view - 3-4 angle/597.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 35, + "reference_image": "doggy - back view - 3-4 angle/617.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/doggy_front_view_contact_sheet.html b/ab_batches/normal_camera/review/doggy_front_view_contact_sheet.html new file mode 100644 index 0000000..442be29 --- /dev/null +++ b/ab_batches/normal_camera/review/doggy_front_view_contact_sheet.html @@ -0,0 +1,89 @@ + + + + +Normal Camera Review Contact Sheet: doggy - front view + + + +

Normal Camera Review Contact Sheet: doggy - front view

+

No-generation contact sheet. 13 JPGs from doggy - front view . Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: doggy - front view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-13

+
+
+doggy - front view /0003.jpg +
001 doggy - front view /0003.jpgbucket: front_view / normal_doggy_generic_front_view
+
+
+doggy - front view /41.jpg +
002 doggy - front view /41.jpgbucket: front_view / normal_doggy_generic_front_view
+
+
+doggy - front view /49.jpg +
003 doggy - front view /49.jpgbucket: front_view / normal_doggy_generic_front_view
+
+
+doggy - front view /188.jpg +
004 doggy - front view /188.jpgbucket: unassigned
+
+
+doggy - front view /253.jpg +
005 doggy - front view /253.jpgbucket: front_view / normal_doggy_generic_front_view
+
+
+doggy - front view /262.jpg +
006 doggy - front view /262.jpgbucket: front_view / normal_doggy_generic_front_view
+
+
+doggy - front view /349.jpg +
007 doggy - front view /349.jpgbucket: front_view / normal_doggy_generic_front_view
+
+
+doggy - front view /354.jpg +
008 doggy - front view /354.jpgbucket: front_view / normal_doggy_generic_front_view
+
+
+doggy - front view /505.jpg +
009 doggy - front view /505.jpgbucket: front_view / normal_doggy_generic_front_view
+
+
+doggy - front view /537.jpg +
010 doggy - front view /537.jpgbucket: front_view / normal_doggy_generic_front_view
+
+
+doggy - front view /541.jpg +
011 doggy - front view /541.jpgbucket: front_view / normal_doggy_generic_front_view
+
+
+doggy - front view /567.jpg +
012 doggy - front view /567.jpgbucket: front_view / normal_doggy_generic_front_view
+
+
+doggy - front view /627.jpg +
013 doggy - front view /627.jpgbucket: front_view / normal_doggy_generic_front_view
+
+
+ + diff --git a/ab_batches/normal_camera/review/doggy_front_view_review_manifest.json b/ab_batches/normal_camera/review/doggy_front_view_review_manifest.json new file mode 100644 index 0000000..21e1a40 --- /dev/null +++ b/ab_batches/normal_camera/review/doggy_front_view_review_manifest.json @@ -0,0 +1,294 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "doggy - front view ", + "folder_alias": { + "exact_source_folder": "doggy - front view ", + "canonical_folder": "doggy - front view", + "canonical_key": "doggy_front_view", + "alias_applied": true, + "alias_reason": "Trailing-space source folder preserved exactly for path stability." + }, + "image_count": 13, + "action_family": "doggy", + "source_camera_view": "front_view", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_doggy_generic_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "doggy - front view/11.jpg", + "doggy - front view/5.jpg", + "doggy - front view/6.jpg", + "doggy - front view /0003.jpg", + "doggy - front view /253.jpg", + "doggy - front view /262.jpg", + "doggy - front view /349.jpg", + "doggy - front view /354.jpg", + "doggy - front view /41.jpg", + "doggy - front view /49.jpg", + "doggy - front view /505.jpg", + "doggy - front view /537.jpg", + "doggy - front view /541.jpg", + "doggy - front view /567.jpg", + "doggy - front view /627.jpg" + ], + "evidence_notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route." + } + ], + "review_items": [ + { + "reference_image": "doggy - front view /0003.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_generic_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route.", + "index": 1 + }, + { + "reference_image": "doggy - front view /41.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_generic_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route.", + "index": 2 + }, + { + "reference_image": "doggy - front view /49.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_generic_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route.", + "index": 3 + }, + { + "index": 4, + "reference_image": "doggy - front view /188.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy - front view /253.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_generic_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route.", + "index": 5 + }, + { + "reference_image": "doggy - front view /262.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_generic_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route.", + "index": 6 + }, + { + "reference_image": "doggy - front view /349.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_generic_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route.", + "index": 7 + }, + { + "reference_image": "doggy - front view /354.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_generic_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route.", + "index": 8 + }, + { + "reference_image": "doggy - front view /505.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_generic_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route.", + "index": 9 + }, + { + "reference_image": "doggy - front view /537.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_generic_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route.", + "index": 10 + }, + { + "reference_image": "doggy - front view /541.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_generic_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route.", + "index": 11 + }, + { + "reference_image": "doggy - front view /567.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_generic_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route.", + "index": 12 + }, + { + "reference_image": "doggy - front view /627.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_doggy_generic_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route.", + "index": 13 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 13, + "image_count": 13, + "images": [ + { + "index": 1, + "reference_image": "doggy - front view /0003.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_front_view", + "notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route." + }, + { + "index": 2, + "reference_image": "doggy - front view /41.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_front_view", + "notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route." + }, + { + "index": 3, + "reference_image": "doggy - front view /49.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_front_view", + "notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route." + }, + { + "index": 4, + "reference_image": "doggy - front view /188.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "doggy - front view /253.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_front_view", + "notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route." + }, + { + "index": 6, + "reference_image": "doggy - front view /262.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_front_view", + "notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route." + }, + { + "index": 7, + "reference_image": "doggy - front view /349.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_front_view", + "notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route." + }, + { + "index": 8, + "reference_image": "doggy - front view /354.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_front_view", + "notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route." + }, + { + "index": 9, + "reference_image": "doggy - front view /505.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_front_view", + "notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route." + }, + { + "index": 10, + "reference_image": "doggy - front view /537.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_front_view", + "notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route." + }, + { + "index": 11, + "reference_image": "doggy - front view /541.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_front_view", + "notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route." + }, + { + "index": 12, + "reference_image": "doggy - front view /567.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_front_view", + "notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route." + }, + { + "index": 13, + "reference_image": "doggy - front view /627.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_generic_front_view", + "notes": "Residual-pool review expanded the existing grouped generic front-view route for the duplicate trailing-space source folder. The selected references repeat a front-facing third-person doggy camera while one weak top/down close crop remains outside the route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/doggy_on_all_four_back_view_3_4_angle_contact_sheet.html b/ab_batches/normal_camera/review/doggy_on_all_four_back_view_3_4_angle_contact_sheet.html new file mode 100644 index 0000000..02df0ef --- /dev/null +++ b/ab_batches/normal_camera/review/doggy_on_all_four_back_view_3_4_angle_contact_sheet.html @@ -0,0 +1,316 @@ + + + + +Normal Camera Review Contact Sheet: doggy on all four - back view - 3-4 angle + + + +

Normal Camera Review Contact Sheet: doggy on all four - back view - 3-4 angle

+

No-generation contact sheet. 69 JPGs from doggy on all four - back view - 3-4 angle. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: doggy on all four - back view - 3-4 angle.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-40

+
+
+doggy on all four - back view - 3-4 angle/0002.jpg +
001 doggy on all four - back view - 3-4 angle/0002.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/0003.jpg +
002 doggy on all four - back view - 3-4 angle/0003.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/0004.jpg +
003 doggy on all four - back view - 3-4 angle/0004.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/0004_2.jpg +
004 doggy on all four - back view - 3-4 angle/0004_2.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/0008.jpg +
005 doggy on all four - back view - 3-4 angle/0008.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/0008_2.jpg +
006 doggy on all four - back view - 3-4 angle/0008_2.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/0008_3.jpg +
007 doggy on all four - back view - 3-4 angle/0008_3.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/0008_4.jpg +
008 doggy on all four - back view - 3-4 angle/0008_4.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/11.jpg +
009 doggy on all four - back view - 3-4 angle/11.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/0011.jpg +
010 doggy on all four - back view - 3-4 angle/0011.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/0012.jpg +
011 doggy on all four - back view - 3-4 angle/0012.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/0013.jpg +
012 doggy on all four - back view - 3-4 angle/0013.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/0013_2.jpg +
013 doggy on all four - back view - 3-4 angle/0013_2.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/0014.jpg +
014 doggy on all four - back view - 3-4 angle/0014.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/0016.jpg +
015 doggy on all four - back view - 3-4 angle/0016.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/0018.jpg +
016 doggy on all four - back view - 3-4 angle/0018.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/0019.jpg +
017 doggy on all four - back view - 3-4 angle/0019.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/0020.jpg +
018 doggy on all four - back view - 3-4 angle/0020.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/0021.jpg +
019 doggy on all four - back view - 3-4 angle/0021.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/22.jpg +
020 doggy on all four - back view - 3-4 angle/22.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/26.jpg +
021 doggy on all four - back view - 3-4 angle/26.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/42.jpg +
022 doggy on all four - back view - 3-4 angle/42.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/64.jpg +
023 doggy on all four - back view - 3-4 angle/64.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/64_2.jpg +
024 doggy on all four - back view - 3-4 angle/64_2.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/69.jpg +
025 doggy on all four - back view - 3-4 angle/69.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/70.jpg +
026 doggy on all four - back view - 3-4 angle/70.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/77.jpg +
027 doggy on all four - back view - 3-4 angle/77.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/97.jpg +
028 doggy on all four - back view - 3-4 angle/97.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/119.jpg +
029 doggy on all four - back view - 3-4 angle/119.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/119_2.jpg +
030 doggy on all four - back view - 3-4 angle/119_2.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/122.jpg +
031 doggy on all four - back view - 3-4 angle/122.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/137.jpg +
032 doggy on all four - back view - 3-4 angle/137.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/138.jpg +
033 doggy on all four - back view - 3-4 angle/138.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/153.jpg +
034 doggy on all four - back view - 3-4 angle/153.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/175.jpg +
035 doggy on all four - back view - 3-4 angle/175.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/206.jpg +
036 doggy on all four - back view - 3-4 angle/206.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/206_2.jpg +
037 doggy on all four - back view - 3-4 angle/206_2.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/218.jpg +
038 doggy on all four - back view - 3-4 angle/218.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/226.jpg +
039 doggy on all four - back view - 3-4 angle/226.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/230.jpg +
040 doggy on all four - back view - 3-4 angle/230.jpgbucket: unassigned
+
+
+

Page 2: 41-69

+
+
+doggy on all four - back view - 3-4 angle/248.jpg +
041 doggy on all four - back view - 3-4 angle/248.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/267.jpg +
042 doggy on all four - back view - 3-4 angle/267.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/268.jpg +
043 doggy on all four - back view - 3-4 angle/268.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/273.jpg +
044 doggy on all four - back view - 3-4 angle/273.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/280.jpg +
045 doggy on all four - back view - 3-4 angle/280.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/285.jpg +
046 doggy on all four - back view - 3-4 angle/285.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/302.jpg +
047 doggy on all four - back view - 3-4 angle/302.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/302_2.jpg +
048 doggy on all four - back view - 3-4 angle/302_2.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/311.jpg +
049 doggy on all four - back view - 3-4 angle/311.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/315.jpg +
050 doggy on all four - back view - 3-4 angle/315.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/315_2.jpg +
051 doggy on all four - back view - 3-4 angle/315_2.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/323.jpg +
052 doggy on all four - back view - 3-4 angle/323.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/327.jpg +
053 doggy on all four - back view - 3-4 angle/327.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/353.jpg +
054 doggy on all four - back view - 3-4 angle/353.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/499.jpg +
055 doggy on all four - back view - 3-4 angle/499.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/536.jpg +
056 doggy on all four - back view - 3-4 angle/536.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/536_2.jpg +
057 doggy on all four - back view - 3-4 angle/536_2.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/550.jpg +
058 doggy on all four - back view - 3-4 angle/550.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/550_2.jpg +
059 doggy on all four - back view - 3-4 angle/550_2.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/568.jpg +
060 doggy on all four - back view - 3-4 angle/568.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/569.jpg +
061 doggy on all four - back view - 3-4 angle/569.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/588.jpg +
062 doggy on all four - back view - 3-4 angle/588.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/600.jpg +
063 doggy on all four - back view - 3-4 angle/600.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/606.jpg +
064 doggy on all four - back view - 3-4 angle/606.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/606_2.jpg +
065 doggy on all four - back view - 3-4 angle/606_2.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/608.jpg +
066 doggy on all four - back view - 3-4 angle/608.jpgbucket: unassigned
+
+
+doggy on all four - back view - 3-4 angle/608_2.jpg +
067 doggy on all four - back view - 3-4 angle/608_2.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/611.jpg +
068 doggy on all four - back view - 3-4 angle/611.jpgbucket: back_three_quarter / normal_doggy_all_fours_back_three_quarter
+
+
+doggy on all four - back view - 3-4 angle/615.jpg +
069 doggy on all four - back view - 3-4 angle/615.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/doggy_on_all_four_back_view_3_4_angle_review_manifest.json b/ab_batches/normal_camera/review/doggy_on_all_four_back_view_3_4_angle_review_manifest.json new file mode 100644 index 0000000..a5acf6a --- /dev/null +++ b/ab_batches/normal_camera/review/doggy_on_all_four_back_view_3_4_angle_review_manifest.json @@ -0,0 +1,1308 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "doggy on all four - back view - 3-4 angle", + "folder_alias": { + "exact_source_folder": "doggy on all four - back view - 3-4 angle", + "canonical_folder": "doggy on all four - back view - 3-4 angle", + "canonical_key": "doggy_on_all_four_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 69, + "action_family": "doggy", + "source_camera_view": "back_three_quarter", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "review_bucket": "back_three_quarter", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "doggy on all four - back view - 3-4 angle/0002.jpg", + "doggy on all four - back view - 3-4 angle/0003.jpg", + "doggy on all four - back view - 3-4 angle/0013.jpg", + "doggy on all four - back view - 3-4 angle/0014.jpg", + "doggy on all four - back view - 3-4 angle/0019.jpg", + "doggy on all four - back view - 3-4 angle/0020.jpg", + "doggy on all four - back view - 3-4 angle/206.jpg", + "doggy on all four - back view - 3-4 angle/267.jpg", + "doggy on all four - back view - 3-4 angle/302.jpg", + "doggy on all four - back view - 3-4 angle/327.jpg", + "doggy on all four - back view - 3-4 angle/550_2.jpg", + "doggy on all four - back view - 3-4 angle/608_2.jpg", + "doggy on all four - back view - 3-4 angle/611.jpg", + "doggy on all four - back view - 3-4 angle/70.jpg", + "doggy on all four - back view - 3-4 angle/97.jpg" + ], + "evidence_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + } + ], + "review_items": [ + { + "reference_image": "doggy on all four - back view - 3-4 angle/0002.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 1 + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/0003.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 2 + }, + { + "index": 3, + "reference_image": "doggy on all four - back view - 3-4 angle/0004.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 4, + "reference_image": "doggy on all four - back view - 3-4 angle/0004_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 5, + "reference_image": "doggy on all four - back view - 3-4 angle/0008.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 6, + "reference_image": "doggy on all four - back view - 3-4 angle/0008_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 7, + "reference_image": "doggy on all four - back view - 3-4 angle/0008_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 8, + "reference_image": "doggy on all four - back view - 3-4 angle/0008_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 9, + "reference_image": "doggy on all four - back view - 3-4 angle/11.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 10, + "reference_image": "doggy on all four - back view - 3-4 angle/0011.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 11, + "reference_image": "doggy on all four - back view - 3-4 angle/0012.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/0013.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 12 + }, + { + "index": 13, + "reference_image": "doggy on all four - back view - 3-4 angle/0013_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/0014.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 14 + }, + { + "index": 15, + "reference_image": "doggy on all four - back view - 3-4 angle/0016.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 16, + "reference_image": "doggy on all four - back view - 3-4 angle/0018.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/0019.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 17 + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/0020.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 18 + }, + { + "index": 19, + "reference_image": "doggy on all four - back view - 3-4 angle/0021.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 20, + "reference_image": "doggy on all four - back view - 3-4 angle/22.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 21, + "reference_image": "doggy on all four - back view - 3-4 angle/26.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 22, + "reference_image": "doggy on all four - back view - 3-4 angle/42.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "doggy on all four - back view - 3-4 angle/64.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 24, + "reference_image": "doggy on all four - back view - 3-4 angle/64_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 25, + "reference_image": "doggy on all four - back view - 3-4 angle/69.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/70.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 26 + }, + { + "index": 27, + "reference_image": "doggy on all four - back view - 3-4 angle/77.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/97.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 28 + }, + { + "index": 29, + "reference_image": "doggy on all four - back view - 3-4 angle/119.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 30, + "reference_image": "doggy on all four - back view - 3-4 angle/119_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 31, + "reference_image": "doggy on all four - back view - 3-4 angle/122.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 32, + "reference_image": "doggy on all four - back view - 3-4 angle/137.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 33, + "reference_image": "doggy on all four - back view - 3-4 angle/138.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 34, + "reference_image": "doggy on all four - back view - 3-4 angle/153.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 35, + "reference_image": "doggy on all four - back view - 3-4 angle/175.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/206.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 36 + }, + { + "index": 37, + "reference_image": "doggy on all four - back view - 3-4 angle/206_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 38, + "reference_image": "doggy on all four - back view - 3-4 angle/218.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 39, + "reference_image": "doggy on all four - back view - 3-4 angle/226.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 40, + "reference_image": "doggy on all four - back view - 3-4 angle/230.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 41, + "reference_image": "doggy on all four - back view - 3-4 angle/248.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/267.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 42 + }, + { + "index": 43, + "reference_image": "doggy on all four - back view - 3-4 angle/268.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 44, + "reference_image": "doggy on all four - back view - 3-4 angle/273.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 45, + "reference_image": "doggy on all four - back view - 3-4 angle/280.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 46, + "reference_image": "doggy on all four - back view - 3-4 angle/285.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/302.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 47 + }, + { + "index": 48, + "reference_image": "doggy on all four - back view - 3-4 angle/302_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 49, + "reference_image": "doggy on all four - back view - 3-4 angle/311.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 50, + "reference_image": "doggy on all four - back view - 3-4 angle/315.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 51, + "reference_image": "doggy on all four - back view - 3-4 angle/315_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 52, + "reference_image": "doggy on all four - back view - 3-4 angle/323.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/327.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 53 + }, + { + "index": 54, + "reference_image": "doggy on all four - back view - 3-4 angle/353.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 55, + "reference_image": "doggy on all four - back view - 3-4 angle/499.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 56, + "reference_image": "doggy on all four - back view - 3-4 angle/536.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 57, + "reference_image": "doggy on all four - back view - 3-4 angle/536_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 58, + "reference_image": "doggy on all four - back view - 3-4 angle/550.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/550_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 59 + }, + { + "index": 60, + "reference_image": "doggy on all four - back view - 3-4 angle/568.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 61, + "reference_image": "doggy on all four - back view - 3-4 angle/569.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 62, + "reference_image": "doggy on all four - back view - 3-4 angle/588.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 63, + "reference_image": "doggy on all four - back view - 3-4 angle/600.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 64, + "reference_image": "doggy on all four - back view - 3-4 angle/606.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 65, + "reference_image": "doggy on all four - back view - 3-4 angle/606_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 66, + "reference_image": "doggy on all four - back view - 3-4 angle/608.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/608_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 67 + }, + { + "reference_image": "doggy on all four - back view - 3-4 angle/611.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_three_quarter", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset.", + "index": 68 + }, + { + "index": 69, + "reference_image": "doggy on all four - back view - 3-4 angle/615.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 40, + "image_count": 40, + "images": [ + { + "index": 1, + "reference_image": "doggy on all four - back view - 3-4 angle/0002.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 2, + "reference_image": "doggy on all four - back view - 3-4 angle/0003.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 3, + "reference_image": "doggy on all four - back view - 3-4 angle/0004.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 4, + "reference_image": "doggy on all four - back view - 3-4 angle/0004_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "doggy on all four - back view - 3-4 angle/0008.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 6, + "reference_image": "doggy on all four - back view - 3-4 angle/0008_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 7, + "reference_image": "doggy on all four - back view - 3-4 angle/0008_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 8, + "reference_image": "doggy on all four - back view - 3-4 angle/0008_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "doggy on all four - back view - 3-4 angle/11.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "doggy on all four - back view - 3-4 angle/0011.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "doggy on all four - back view - 3-4 angle/0012.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "doggy on all four - back view - 3-4 angle/0013.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 13, + "reference_image": "doggy on all four - back view - 3-4 angle/0013_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 14, + "reference_image": "doggy on all four - back view - 3-4 angle/0014.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 15, + "reference_image": "doggy on all four - back view - 3-4 angle/0016.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "doggy on all four - back view - 3-4 angle/0018.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "doggy on all four - back view - 3-4 angle/0019.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 18, + "reference_image": "doggy on all four - back view - 3-4 angle/0020.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 19, + "reference_image": "doggy on all four - back view - 3-4 angle/0021.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "doggy on all four - back view - 3-4 angle/22.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 21, + "reference_image": "doggy on all four - back view - 3-4 angle/26.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "doggy on all four - back view - 3-4 angle/42.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "doggy on all four - back view - 3-4 angle/64.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "doggy on all four - back view - 3-4 angle/64_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "doggy on all four - back view - 3-4 angle/69.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "doggy on all four - back view - 3-4 angle/70.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 27, + "reference_image": "doggy on all four - back view - 3-4 angle/77.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "doggy on all four - back view - 3-4 angle/97.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 29, + "reference_image": "doggy on all four - back view - 3-4 angle/119.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 30, + "reference_image": "doggy on all four - back view - 3-4 angle/119_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 31, + "reference_image": "doggy on all four - back view - 3-4 angle/122.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 32, + "reference_image": "doggy on all four - back view - 3-4 angle/137.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "doggy on all four - back view - 3-4 angle/138.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 34, + "reference_image": "doggy on all four - back view - 3-4 angle/153.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 35, + "reference_image": "doggy on all four - back view - 3-4 angle/175.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 36, + "reference_image": "doggy on all four - back view - 3-4 angle/206.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 37, + "reference_image": "doggy on all four - back view - 3-4 angle/206_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 38, + "reference_image": "doggy on all four - back view - 3-4 angle/218.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 39, + "reference_image": "doggy on all four - back view - 3-4 angle/226.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 40, + "reference_image": "doggy on all four - back view - 3-4 angle/230.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 2, + "html_anchor": "page-02", + "start_index": 41, + "end_index": 69, + "image_count": 29, + "images": [ + { + "index": 41, + "reference_image": "doggy on all four - back view - 3-4 angle/248.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 42, + "reference_image": "doggy on all four - back view - 3-4 angle/267.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 43, + "reference_image": "doggy on all four - back view - 3-4 angle/268.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 44, + "reference_image": "doggy on all four - back view - 3-4 angle/273.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 45, + "reference_image": "doggy on all four - back view - 3-4 angle/280.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 46, + "reference_image": "doggy on all four - back view - 3-4 angle/285.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 47, + "reference_image": "doggy on all four - back view - 3-4 angle/302.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 48, + "reference_image": "doggy on all four - back view - 3-4 angle/302_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 49, + "reference_image": "doggy on all four - back view - 3-4 angle/311.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 50, + "reference_image": "doggy on all four - back view - 3-4 angle/315.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 51, + "reference_image": "doggy on all four - back view - 3-4 angle/315_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 52, + "reference_image": "doggy on all four - back view - 3-4 angle/323.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 53, + "reference_image": "doggy on all four - back view - 3-4 angle/327.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 54, + "reference_image": "doggy on all four - back view - 3-4 angle/353.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 55, + "reference_image": "doggy on all four - back view - 3-4 angle/499.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 56, + "reference_image": "doggy on all four - back view - 3-4 angle/536.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 57, + "reference_image": "doggy on all four - back view - 3-4 angle/536_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 58, + "reference_image": "doggy on all four - back view - 3-4 angle/550.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 59, + "reference_image": "doggy on all four - back view - 3-4 angle/550_2.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 60, + "reference_image": "doggy on all four - back view - 3-4 angle/568.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 61, + "reference_image": "doggy on all four - back view - 3-4 angle/569.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 62, + "reference_image": "doggy on all four - back view - 3-4 angle/588.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 63, + "reference_image": "doggy on all four - back view - 3-4 angle/600.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 64, + "reference_image": "doggy on all four - back view - 3-4 angle/606.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 65, + "reference_image": "doggy on all four - back view - 3-4 angle/606_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 66, + "reference_image": "doggy on all four - back view - 3-4 angle/608.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 67, + "reference_image": "doggy on all four - back view - 3-4 angle/608_2.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 68, + "reference_image": "doggy on all four - back view - 3-4 angle/611.jpg", + "review_bucket": "back_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "notes": "Residual-pool review confirmed the existing all-fours rear three-quarter route as a coherent camera family. References were expanded while low, front-drifting, and tight-crop outliers remain outside the selected subset." + }, + { + "index": 69, + "reference_image": "doggy on all four - back view - 3-4 angle/615.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/doggy_on_all_four_side_view_contact_sheet.html b/ab_batches/normal_camera/review/doggy_on_all_four_side_view_contact_sheet.html new file mode 100644 index 0000000..d4a024f --- /dev/null +++ b/ab_batches/normal_camera/review/doggy_on_all_four_side_view_contact_sheet.html @@ -0,0 +1,320 @@ + + + + +Normal Camera Review Contact Sheet: doggy on all four - side view + + + +

Normal Camera Review Contact Sheet: doggy on all four - side view

+

No-generation contact sheet. 70 JPGs from doggy on all four - side view. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: doggy on all four - side view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-40

+
+
+doggy on all four - side view/2.jpg +
001 doggy on all four - side view/2.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/0004.jpg +
002 doggy on all four - side view/0004.jpgbucket: unassigned
+
+
+doggy on all four - side view/0004_2.jpg +
003 doggy on all four - side view/0004_2.jpgbucket: unassigned
+
+
+doggy on all four - side view/0006.jpg +
004 doggy on all four - side view/0006.jpgbucket: unassigned
+
+
+doggy on all four - side view/0008.jpg +
005 doggy on all four - side view/0008.jpgbucket: unassigned
+
+
+doggy on all four - side view/0011.jpg +
006 doggy on all four - side view/0011.jpgbucket: unassigned
+
+
+doggy on all four - side view/12.jpg +
007 doggy on all four - side view/12.jpgbucket: unassigned
+
+
+doggy on all four - side view/12_2.jpg +
008 doggy on all four - side view/12_2.jpgbucket: unassigned
+
+
+doggy on all four - side view/0015.jpg +
009 doggy on all four - side view/0015.jpgbucket: unassigned
+
+
+doggy on all four - side view/17.jpg +
010 doggy on all four - side view/17.jpgbucket: unassigned
+
+
+doggy on all four - side view/0017.jpg +
011 doggy on all four - side view/0017.jpgbucket: unassigned
+
+
+doggy on all four - side view/0020.jpg +
012 doggy on all four - side view/0020.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/26.jpg +
013 doggy on all four - side view/26.jpgbucket: unassigned
+
+
+doggy on all four - side view/35.jpg +
014 doggy on all four - side view/35.jpgbucket: unassigned
+
+
+doggy on all four - side view/48.jpg +
015 doggy on all four - side view/48.jpgbucket: unassigned
+
+
+doggy on all four - side view/50.jpg +
016 doggy on all four - side view/50.jpgbucket: unassigned
+
+
+doggy on all four - side view/55.jpg +
017 doggy on all four - side view/55.jpgbucket: unassigned
+
+
+doggy on all four - side view/56.jpg +
018 doggy on all four - side view/56.jpgbucket: unassigned
+
+
+doggy on all four - side view/61.jpg +
019 doggy on all four - side view/61.jpgbucket: unassigned
+
+
+doggy on all four - side view/65.jpg +
020 doggy on all four - side view/65.jpgbucket: unassigned
+
+
+doggy on all four - side view/85.jpg +
021 doggy on all four - side view/85.jpgbucket: unassigned
+
+
+doggy on all four - side view/85_2.jpg +
022 doggy on all four - side view/85_2.jpgbucket: unassigned
+
+
+doggy on all four - side view/86.jpg +
023 doggy on all four - side view/86.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/90.jpg +
024 doggy on all four - side view/90.jpgbucket: unassigned
+
+
+doggy on all four - side view/91.jpg +
025 doggy on all four - side view/91.jpgbucket: unassigned
+
+
+doggy on all four - side view/99.jpg +
026 doggy on all four - side view/99.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/122.jpg +
027 doggy on all four - side view/122.jpgbucket: unassigned
+
+
+doggy on all four - side view/161.jpg +
028 doggy on all four - side view/161.jpgbucket: unassigned
+
+
+doggy on all four - side view/162.jpg +
029 doggy on all four - side view/162.jpgbucket: unassigned
+
+
+doggy on all four - side view/165.jpg +
030 doggy on all four - side view/165.jpgbucket: unassigned
+
+
+doggy on all four - side view/189.jpg +
031 doggy on all four - side view/189.jpgbucket: unassigned
+
+
+doggy on all four - side view/189_2.jpg +
032 doggy on all four - side view/189_2.jpgbucket: unassigned
+
+
+doggy on all four - side view/192.jpg +
033 doggy on all four - side view/192.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/204.jpg +
034 doggy on all four - side view/204.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/232.jpg +
035 doggy on all four - side view/232.jpgbucket: unassigned
+
+
+doggy on all four - side view/233.jpg +
036 doggy on all four - side view/233.jpgbucket: unassigned
+
+
+doggy on all four - side view/234.jpg +
037 doggy on all four - side view/234.jpgbucket: unassigned
+
+
+doggy on all four - side view/235.jpg +
038 doggy on all four - side view/235.jpgbucket: unassigned
+
+
+doggy on all four - side view/243.jpg +
039 doggy on all four - side view/243.jpgbucket: unassigned
+
+
+doggy on all four - side view/245.jpg +
040 doggy on all four - side view/245.jpgbucket: unassigned
+
+
+

Page 2: 41-70

+
+
+doggy on all four - side view/251.jpg +
041 doggy on all four - side view/251.jpgbucket: unassigned
+
+
+doggy on all four - side view/254.jpg +
042 doggy on all four - side view/254.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/254_2.jpg +
043 doggy on all four - side view/254_2.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/254_3.jpg +
044 doggy on all four - side view/254_3.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/255.jpg +
045 doggy on all four - side view/255.jpgbucket: unassigned
+
+
+doggy on all four - side view/261.jpg +
046 doggy on all four - side view/261.jpgbucket: unassigned
+
+
+doggy on all four - side view/261_2.jpg +
047 doggy on all four - side view/261_2.jpgbucket: unassigned
+
+
+doggy on all four - side view/269.jpg +
048 doggy on all four - side view/269.jpgbucket: unassigned
+
+
+doggy on all four - side view/270.jpg +
049 doggy on all four - side view/270.jpgbucket: unassigned
+
+
+doggy on all four - side view/271.jpg +
050 doggy on all four - side view/271.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/271_2.jpg +
051 doggy on all four - side view/271_2.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/285.jpg +
052 doggy on all four - side view/285.jpgbucket: unassigned
+
+
+doggy on all four - side view/290.jpg +
053 doggy on all four - side view/290.jpgbucket: unassigned
+
+
+doggy on all four - side view/333.jpg +
054 doggy on all four - side view/333.jpgbucket: unassigned
+
+
+doggy on all four - side view/341.jpg +
055 doggy on all four - side view/341.jpgbucket: unassigned
+
+
+doggy on all four - side view/354.jpg +
056 doggy on all four - side view/354.jpgbucket: unassigned
+
+
+doggy on all four - side view/362.jpg +
057 doggy on all four - side view/362.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/377.jpg +
058 doggy on all four - side view/377.jpgbucket: unassigned
+
+
+doggy on all four - side view/480.jpg +
059 doggy on all four - side view/480.jpgbucket: unassigned
+
+
+doggy on all four - side view/495.jpg +
060 doggy on all four - side view/495.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/505.jpg +
061 doggy on all four - side view/505.jpgbucket: unassigned
+
+
+doggy on all four - side view/537.jpg +
062 doggy on all four - side view/537.jpgbucket: unassigned
+
+
+doggy on all four - side view/537_2.jpg +
063 doggy on all four - side view/537_2.jpgbucket: unassigned
+
+
+doggy on all four - side view/547.jpg +
064 doggy on all four - side view/547.jpgbucket: unassigned
+
+
+doggy on all four - side view/547_2.jpg +
065 doggy on all four - side view/547_2.jpgbucket: unassigned
+
+
+doggy on all four - side view/556.jpg +
066 doggy on all four - side view/556.jpgbucket: side_view / normal_doggy_all_fours_side_view
+
+
+doggy on all four - side view/604.jpg +
067 doggy on all four - side view/604.jpgbucket: unassigned
+
+
+doggy on all four - side view/613.jpg +
068 doggy on all four - side view/613.jpgbucket: unassigned
+
+
+doggy on all four - side view/613_2.jpg +
069 doggy on all four - side view/613_2.jpgbucket: unassigned
+
+
+doggy on all four - side view/615.jpg +
070 doggy on all four - side view/615.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/doggy_on_all_four_side_view_review_manifest.json b/ab_batches/normal_camera/review/doggy_on_all_four_side_view_review_manifest.json new file mode 100644 index 0000000..2b3bd28 --- /dev/null +++ b/ab_batches/normal_camera/review/doggy_on_all_four_side_view_review_manifest.json @@ -0,0 +1,1326 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "doggy on all four - side view", + "folder_alias": { + "exact_source_folder": "doggy on all four - side view", + "canonical_folder": "doggy on all four - side view", + "canonical_key": "doggy_on_all_four_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 70, + "action_family": "doggy", + "source_camera_view": "side_view", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_doggy_all_fours_side_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-06-29", + "reference_images": [ + "doggy on all four - side view/0020.jpg", + "doggy on all four - side view/192.jpg", + "doggy on all four - side view/2.jpg", + "doggy on all four - side view/204.jpg", + "doggy on all four - side view/254.jpg", + "doggy on all four - side view/254_2.jpg", + "doggy on all four - side view/254_3.jpg", + "doggy on all four - side view/271.jpg", + "doggy on all four - side view/271_2.jpg", + "doggy on all four - side view/362.jpg", + "doggy on all four - side view/495.jpg", + "doggy on all four - side view/556.jpg", + "doggy on all four - side view/86.jpg", + "doggy on all four - side view/99.jpg" + ], + "evidence_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + } + ], + "review_items": [ + { + "reference_image": "doggy on all four - side view/2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 1 + }, + { + "index": 2, + "reference_image": "doggy on all four - side view/0004.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 3, + "reference_image": "doggy on all four - side view/0004_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 4, + "reference_image": "doggy on all four - side view/0006.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 5, + "reference_image": "doggy on all four - side view/0008.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 6, + "reference_image": "doggy on all four - side view/0011.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 7, + "reference_image": "doggy on all four - side view/12.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 8, + "reference_image": "doggy on all four - side view/12_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 9, + "reference_image": "doggy on all four - side view/0015.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 10, + "reference_image": "doggy on all four - side view/17.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 11, + "reference_image": "doggy on all four - side view/0017.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - side view/0020.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 12 + }, + { + "index": 13, + "reference_image": "doggy on all four - side view/26.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 14, + "reference_image": "doggy on all four - side view/35.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 15, + "reference_image": "doggy on all four - side view/48.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 16, + "reference_image": "doggy on all four - side view/50.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 17, + "reference_image": "doggy on all four - side view/55.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 18, + "reference_image": "doggy on all four - side view/56.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 19, + "reference_image": "doggy on all four - side view/61.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 20, + "reference_image": "doggy on all four - side view/65.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 21, + "reference_image": "doggy on all four - side view/85.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 22, + "reference_image": "doggy on all four - side view/85_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - side view/86.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 23 + }, + { + "index": 24, + "reference_image": "doggy on all four - side view/90.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 25, + "reference_image": "doggy on all four - side view/91.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - side view/99.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 26 + }, + { + "index": 27, + "reference_image": "doggy on all four - side view/122.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 28, + "reference_image": "doggy on all four - side view/161.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 29, + "reference_image": "doggy on all four - side view/162.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 30, + "reference_image": "doggy on all four - side view/165.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 31, + "reference_image": "doggy on all four - side view/189.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 32, + "reference_image": "doggy on all four - side view/189_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - side view/192.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 33 + }, + { + "reference_image": "doggy on all four - side view/204.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 34 + }, + { + "index": 35, + "reference_image": "doggy on all four - side view/232.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 36, + "reference_image": "doggy on all four - side view/233.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 37, + "reference_image": "doggy on all four - side view/234.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 38, + "reference_image": "doggy on all four - side view/235.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 39, + "reference_image": "doggy on all four - side view/243.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 40, + "reference_image": "doggy on all four - side view/245.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 41, + "reference_image": "doggy on all four - side view/251.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - side view/254.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 42 + }, + { + "reference_image": "doggy on all four - side view/254_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 43 + }, + { + "reference_image": "doggy on all four - side view/254_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 44 + }, + { + "index": 45, + "reference_image": "doggy on all four - side view/255.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 46, + "reference_image": "doggy on all four - side view/261.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 47, + "reference_image": "doggy on all four - side view/261_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 48, + "reference_image": "doggy on all four - side view/269.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 49, + "reference_image": "doggy on all four - side view/270.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - side view/271.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 50 + }, + { + "reference_image": "doggy on all four - side view/271_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 51 + }, + { + "index": 52, + "reference_image": "doggy on all four - side view/285.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 53, + "reference_image": "doggy on all four - side view/290.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 54, + "reference_image": "doggy on all four - side view/333.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 55, + "reference_image": "doggy on all four - side view/341.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 56, + "reference_image": "doggy on all four - side view/354.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - side view/362.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 57 + }, + { + "index": 58, + "reference_image": "doggy on all four - side view/377.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 59, + "reference_image": "doggy on all four - side view/480.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - side view/495.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 60 + }, + { + "index": 61, + "reference_image": "doggy on all four - side view/505.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 62, + "reference_image": "doggy on all four - side view/537.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 63, + "reference_image": "doggy on all four - side view/537_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 64, + "reference_image": "doggy on all four - side view/547.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 65, + "reference_image": "doggy on all four - side view/547_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "doggy on all four - side view/556.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_all_fours_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass.", + "index": 66 + }, + { + "index": 67, + "reference_image": "doggy on all four - side view/604.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 68, + "reference_image": "doggy on all four - side view/613.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 69, + "reference_image": "doggy on all four - side view/613_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 70, + "reference_image": "doggy on all four - side view/615.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 40, + "image_count": 40, + "images": [ + { + "index": 1, + "reference_image": "doggy on all four - side view/2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 2, + "reference_image": "doggy on all four - side view/0004.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 3, + "reference_image": "doggy on all four - side view/0004_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 4, + "reference_image": "doggy on all four - side view/0006.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "doggy on all four - side view/0008.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 6, + "reference_image": "doggy on all four - side view/0011.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 7, + "reference_image": "doggy on all four - side view/12.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 8, + "reference_image": "doggy on all four - side view/12_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "doggy on all four - side view/0015.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "doggy on all four - side view/17.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "doggy on all four - side view/0017.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "doggy on all four - side view/0020.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 13, + "reference_image": "doggy on all four - side view/26.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 14, + "reference_image": "doggy on all four - side view/35.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "doggy on all four - side view/48.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "doggy on all four - side view/50.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "doggy on all four - side view/55.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 18, + "reference_image": "doggy on all four - side view/56.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 19, + "reference_image": "doggy on all four - side view/61.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "doggy on all four - side view/65.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 21, + "reference_image": "doggy on all four - side view/85.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "doggy on all four - side view/85_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "doggy on all four - side view/86.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 24, + "reference_image": "doggy on all four - side view/90.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "doggy on all four - side view/91.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "doggy on all four - side view/99.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 27, + "reference_image": "doggy on all four - side view/122.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "doggy on all four - side view/161.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 29, + "reference_image": "doggy on all four - side view/162.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 30, + "reference_image": "doggy on all four - side view/165.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 31, + "reference_image": "doggy on all four - side view/189.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 32, + "reference_image": "doggy on all four - side view/189_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "doggy on all four - side view/192.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 34, + "reference_image": "doggy on all four - side view/204.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 35, + "reference_image": "doggy on all four - side view/232.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 36, + "reference_image": "doggy on all four - side view/233.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 37, + "reference_image": "doggy on all four - side view/234.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 38, + "reference_image": "doggy on all four - side view/235.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 39, + "reference_image": "doggy on all four - side view/243.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 40, + "reference_image": "doggy on all four - side view/245.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 2, + "html_anchor": "page-02", + "start_index": 41, + "end_index": 70, + "image_count": 30, + "images": [ + { + "index": 41, + "reference_image": "doggy on all four - side view/251.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 42, + "reference_image": "doggy on all four - side view/254.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 43, + "reference_image": "doggy on all four - side view/254_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 44, + "reference_image": "doggy on all four - side view/254_3.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 45, + "reference_image": "doggy on all four - side view/255.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 46, + "reference_image": "doggy on all four - side view/261.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 47, + "reference_image": "doggy on all four - side view/261_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 48, + "reference_image": "doggy on all four - side view/269.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 49, + "reference_image": "doggy on all four - side view/270.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 50, + "reference_image": "doggy on all four - side view/271.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 51, + "reference_image": "doggy on all four - side view/271_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 52, + "reference_image": "doggy on all four - side view/285.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 53, + "reference_image": "doggy on all four - side view/290.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 54, + "reference_image": "doggy on all four - side view/333.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 55, + "reference_image": "doggy on all four - side view/341.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 56, + "reference_image": "doggy on all four - side view/354.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 57, + "reference_image": "doggy on all four - side view/362.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 58, + "reference_image": "doggy on all four - side view/377.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 59, + "reference_image": "doggy on all four - side view/480.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 60, + "reference_image": "doggy on all four - side view/495.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 61, + "reference_image": "doggy on all four - side view/505.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 62, + "reference_image": "doggy on all four - side view/537.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 63, + "reference_image": "doggy on all four - side view/537_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 64, + "reference_image": "doggy on all four - side view/547.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 65, + "reference_image": "doggy on all four - side view/547_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 66, + "reference_image": "doggy on all four - side view/556.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_all_fours_side_view", + "notes": "Residual-pool review kept the existing selected side-view subset unchanged. The remaining source images mix standing, bed, chair, close, and front-drifting frames, so no additional references were promoted in this pass." + }, + { + "index": 67, + "reference_image": "doggy on all four - side view/604.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 68, + "reference_image": "doggy on all four - side view/613.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 69, + "reference_image": "doggy on all four - side view/613_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 70, + "reference_image": "doggy on all four - side view/615.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/doggy_press_back_side_contact_sheet.html b/ab_batches/normal_camera/review/doggy_press_back_side_contact_sheet.html new file mode 100644 index 0000000..abb4713 --- /dev/null +++ b/ab_batches/normal_camera/review/doggy_press_back_side_contact_sheet.html @@ -0,0 +1,41 @@ + + + + +Normal Camera Review Contact Sheet: doggy press - back side + + + +

Normal Camera Review Contact Sheet: doggy press - back side

+

No-generation contact sheet. 1 JPGs from doggy press - back side. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: doggy press - back side.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-1

+
+
+doggy press - back side/0011.jpg +
001 doggy press - back side/0011.jpgbucket: reject_or_unclear / normal_doggy_press_back_side_single_reference_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/doggy_press_back_side_review_manifest.json b/ab_batches/normal_camera/review/doggy_press_back_side_review_manifest.json new file mode 100644 index 0000000..c56be50 --- /dev/null +++ b/ab_batches/normal_camera/review/doggy_press_back_side_review_manifest.json @@ -0,0 +1,75 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "doggy press - back side", + "folder_alias": { + "exact_source_folder": "doggy press - back side", + "canonical_folder": "doggy press - back side", + "canonical_key": "doggy_press_back_side", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 1, + "action_family": "doggy", + "source_camera_view": "back_view", + "source_catalog_status": "thin_sample", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_doggy_press_back_side_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "doggy press - back side/0011.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the one back-side doggy-press sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ], + "review_items": [ + { + "reference_image": "doggy press - back side/0011.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_doggy_press_back_side_single_reference_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the one back-side doggy-press sample as coverage evidence only. A single image cannot define a stable normal-camera route.", + "index": 1 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 1, + "image_count": 1, + "images": [ + { + "index": 1, + "reference_image": "doggy press - back side/0011.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_press_back_side_single_reference_pool", + "notes": "Contact-sheet review preserved the one back-side doggy-press sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/face_sitting_contact_sheet.html b/ab_batches/normal_camera/review/face_sitting_contact_sheet.html new file mode 100644 index 0000000..7350e4a --- /dev/null +++ b/ab_batches/normal_camera/review/face_sitting_contact_sheet.html @@ -0,0 +1,53 @@ + + + + +Normal Camera Review Contact Sheet: face sitting + + + +

Normal Camera Review Contact Sheet: face sitting

+

No-generation contact sheet. 4 JPGs from face sitting. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: face sitting.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-4

+
+
+face sitting/0005.jpg +
001 face sitting/0005.jpgbucket: reject_or_unclear / normal_face_sitting_mixed_camera_folder_pool
+
+
+face sitting/0021.jpg +
002 face sitting/0021.jpgbucket: reject_or_unclear / normal_face_sitting_mixed_camera_folder_pool
+
+
+face sitting/354.jpg +
003 face sitting/354.jpgbucket: reject_or_unclear / normal_face_sitting_mixed_camera_folder_pool
+
+
+face sitting/533.jpg +
004 face sitting/533.jpgbucket: reject_or_unclear / normal_face_sitting_mixed_camera_folder_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/face_sitting_front_view_contact_sheet.html b/ab_batches/normal_camera/review/face_sitting_front_view_contact_sheet.html new file mode 100644 index 0000000..c5a3ff7 --- /dev/null +++ b/ab_batches/normal_camera/review/face_sitting_front_view_contact_sheet.html @@ -0,0 +1,41 @@ + + + + +Normal Camera Review Contact Sheet: face sitting - front view + + + +

Normal Camera Review Contact Sheet: face sitting - front view

+

No-generation contact sheet. 1 JPGs from face sitting - front view. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: face sitting - front view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-1

+
+
+face sitting - front view/56.jpg +
001 face sitting - front view/56.jpgbucket: reject_or_unclear / normal_face_sitting_front_view_single_reference_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/face_sitting_front_view_review_manifest.json b/ab_batches/normal_camera/review/face_sitting_front_view_review_manifest.json new file mode 100644 index 0000000..b7bf27a --- /dev/null +++ b/ab_batches/normal_camera/review/face_sitting_front_view_review_manifest.json @@ -0,0 +1,75 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "face sitting - front view", + "folder_alias": { + "exact_source_folder": "face sitting - front view", + "canonical_folder": "face sitting - front view", + "canonical_key": "face_sitting_front_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 1, + "action_family": "face_sitting", + "source_camera_view": "front_view", + "source_catalog_status": "thin_sample", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_face_sitting_front_view_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "face sitting - front view/56.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the one front-view face-sitting sample as coverage evidence only. A single image is too thin for a selected pre-A/B route." + } + ], + "review_items": [ + { + "reference_image": "face sitting - front view/56.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_face_sitting_front_view_single_reference_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the one front-view face-sitting sample as coverage evidence only. A single image is too thin for a selected pre-A/B route.", + "index": 1 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 1, + "image_count": 1, + "images": [ + { + "index": 1, + "reference_image": "face sitting - front view/56.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_face_sitting_front_view_single_reference_pool", + "notes": "Contact-sheet review preserved the one front-view face-sitting sample as coverage evidence only. A single image is too thin for a selected pre-A/B route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/face_sitting_review_manifest.json b/ab_batches/normal_camera/review/face_sitting_review_manifest.json new file mode 100644 index 0000000..95e2308 --- /dev/null +++ b/ab_batches/normal_camera/review/face_sitting_review_manifest.json @@ -0,0 +1,129 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "face sitting", + "folder_alias": { + "exact_source_folder": "face sitting", + "canonical_folder": "face sitting", + "canonical_key": "face_sitting", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 4, + "action_family": "face_sitting", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_face_sitting_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "face sitting/0005.jpg", + "face sitting/0021.jpg", + "face sitting/354.jpg", + "face sitting/533.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. Three samples are front or near-front face-sitting references, while one rear/back-view outlier makes the folder too mixed and thin for a selected pre-A/B route." + } + ], + "review_items": [ + { + "reference_image": "face sitting/0005.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_face_sitting_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. Three samples are front or near-front face-sitting references, while one rear/back-view outlier makes the folder too mixed and thin for a selected pre-A/B route.", + "index": 1 + }, + { + "reference_image": "face sitting/0021.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_face_sitting_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. Three samples are front or near-front face-sitting references, while one rear/back-view outlier makes the folder too mixed and thin for a selected pre-A/B route.", + "index": 2 + }, + { + "reference_image": "face sitting/354.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_face_sitting_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. Three samples are front or near-front face-sitting references, while one rear/back-view outlier makes the folder too mixed and thin for a selected pre-A/B route.", + "index": 3 + }, + { + "reference_image": "face sitting/533.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_face_sitting_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. Three samples are front or near-front face-sitting references, while one rear/back-view outlier makes the folder too mixed and thin for a selected pre-A/B route.", + "index": 4 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 4, + "image_count": 4, + "images": [ + { + "index": 1, + "reference_image": "face sitting/0005.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_face_sitting_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. Three samples are front or near-front face-sitting references, while one rear/back-view outlier makes the folder too mixed and thin for a selected pre-A/B route." + }, + { + "index": 2, + "reference_image": "face sitting/0021.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_face_sitting_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. Three samples are front or near-front face-sitting references, while one rear/back-view outlier makes the folder too mixed and thin for a selected pre-A/B route." + }, + { + "index": 3, + "reference_image": "face sitting/354.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_face_sitting_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. Three samples are front or near-front face-sitting references, while one rear/back-view outlier makes the folder too mixed and thin for a selected pre-A/B route." + }, + { + "index": 4, + "reference_image": "face sitting/533.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_face_sitting_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. Three samples are front or near-front face-sitting references, while one rear/back-view outlier makes the folder too mixed and thin for a selected pre-A/B route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/fingering_contact_sheet.html b/ab_batches/normal_camera/review/fingering_contact_sheet.html new file mode 100644 index 0000000..2ec1204 --- /dev/null +++ b/ab_batches/normal_camera/review/fingering_contact_sheet.html @@ -0,0 +1,97 @@ + + + + +Normal Camera Review Contact Sheet: fingering + + + +

Normal Camera Review Contact Sheet: fingering

+

No-generation contact sheet. 15 JPGs from fingering. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: fingering.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-15

+
+
+fingering/0001.jpg +
001 fingering/0001.jpgbucket: reject_or_unclear / normal_fingering_mixed_camera_folder_pool
+
+
+fingering/0004.jpg +
002 fingering/0004.jpgbucket: front_view / normal_fingering_reclined_front_view
+
+
+fingering/0006.jpg +
003 fingering/0006.jpgbucket: front_view / normal_fingering_reclined_front_view
+
+
+fingering/0013.jpg +
004 fingering/0013.jpgbucket: front_view / normal_fingering_reclined_front_view
+
+
+fingering/0015.jpg +
005 fingering/0015.jpgbucket: front_view / normal_fingering_reclined_front_view
+
+
+fingering/39.jpg +
006 fingering/39.jpgbucket: front_view / normal_fingering_reclined_front_view
+
+
+fingering/50.jpg +
007 fingering/50.jpgbucket: front_view / normal_fingering_reclined_front_view
+
+
+fingering/132.jpg +
008 fingering/132.jpgbucket: front_view / normal_fingering_reclined_front_view
+
+
+fingering/133.jpg +
009 fingering/133.jpgbucket: front_view / normal_fingering_reclined_front_view
+
+
+fingering/195.jpg +
010 fingering/195.jpgbucket: reject_or_unclear / normal_fingering_mixed_camera_folder_pool
+
+
+fingering/227.jpg +
011 fingering/227.jpgbucket: unassigned
+
+
+fingering/241.jpg +
012 fingering/241.jpgbucket: unassigned
+
+
+fingering/279.jpg +
013 fingering/279.jpgbucket: front_view / normal_fingering_reclined_front_view
+
+
+fingering/352.jpg +
014 fingering/352.jpgbucket: unassigned
+
+
+fingering/603.jpg +
015 fingering/603.jpgbucket: front_view / normal_fingering_reclined_front_view
+
+
+ + diff --git a/ab_batches/normal_camera/review/fingering_review_manifest.json b/ab_batches/normal_camera/review/fingering_review_manifest.json new file mode 100644 index 0000000..b89cc22 --- /dev/null +++ b/ab_batches/normal_camera/review/fingering_review_manifest.json @@ -0,0 +1,337 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "fingering", + "folder_alias": { + "exact_source_folder": "fingering", + "canonical_folder": "fingering", + "canonical_key": "fingering", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 15, + "action_family": "manual_or_toy", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_fingering_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "fingering/0001.jpg", + "fingering/195.jpg", + "fingering/603.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the folder as a mixed source-pool anchor. The images include useful manual-contact examples, but upright, standing, side, and oral-adjacent frames keep the full folder from being one locked prompt-ready route." + }, + { + "variant_key": "normal_fingering_reclined_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "fingering/0004.jpg", + "fingering/0006.jpg", + "fingering/0013.jpg", + "fingering/0015.jpg", + "fingering/39.jpg", + "fingering/50.jpg", + "fingering/132.jpg", + "fingering/133.jpg", + "fingering/279.jpg", + "fingering/603.jpg" + ], + "evidence_notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset." + } + ], + "review_items": [ + { + "reference_image": "fingering/0001.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_fingering_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the folder as a mixed source-pool anchor. The images include useful manual-contact examples, but upright, standing, side, and oral-adjacent frames keep the full folder from being one locked prompt-ready route.", + "index": 1 + }, + { + "reference_image": "fingering/0004.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_fingering_reclined_front_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset.", + "index": 2 + }, + { + "reference_image": "fingering/0006.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_fingering_reclined_front_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset.", + "index": 3 + }, + { + "reference_image": "fingering/0013.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_fingering_reclined_front_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset.", + "index": 4 + }, + { + "reference_image": "fingering/0015.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_fingering_reclined_front_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset.", + "index": 5 + }, + { + "reference_image": "fingering/39.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_fingering_reclined_front_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset.", + "index": 6 + }, + { + "reference_image": "fingering/50.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_fingering_reclined_front_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset.", + "index": 7 + }, + { + "reference_image": "fingering/132.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_fingering_reclined_front_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset.", + "index": 8 + }, + { + "reference_image": "fingering/133.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_fingering_reclined_front_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset.", + "index": 9 + }, + { + "reference_image": "fingering/195.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_fingering_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the folder as a mixed source-pool anchor. The images include useful manual-contact examples, but upright, standing, side, and oral-adjacent frames keep the full folder from being one locked prompt-ready route.", + "index": 10 + }, + { + "index": 11, + "reference_image": "fingering/227.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 12, + "reference_image": "fingering/241.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "fingering/279.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_fingering_reclined_front_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset.", + "index": 13 + }, + { + "index": 14, + "reference_image": "fingering/352.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "fingering/603.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_fingering_reclined_front_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset.", + "index": 15 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 15, + "image_count": 15, + "images": [ + { + "index": 1, + "reference_image": "fingering/0001.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_fingering_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the folder as a mixed source-pool anchor. The images include useful manual-contact examples, but upright, standing, side, and oral-adjacent frames keep the full folder from being one locked prompt-ready route." + }, + { + "index": 2, + "reference_image": "fingering/0004.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_fingering_reclined_front_view", + "notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset." + }, + { + "index": 3, + "reference_image": "fingering/0006.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_fingering_reclined_front_view", + "notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset." + }, + { + "index": 4, + "reference_image": "fingering/0013.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_fingering_reclined_front_view", + "notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset." + }, + { + "index": 5, + "reference_image": "fingering/0015.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_fingering_reclined_front_view", + "notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset." + }, + { + "index": 6, + "reference_image": "fingering/39.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_fingering_reclined_front_view", + "notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset." + }, + { + "index": 7, + "reference_image": "fingering/50.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_fingering_reclined_front_view", + "notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset." + }, + { + "index": 8, + "reference_image": "fingering/132.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_fingering_reclined_front_view", + "notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset." + }, + { + "index": 9, + "reference_image": "fingering/133.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_fingering_reclined_front_view", + "notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset." + }, + { + "index": 10, + "reference_image": "fingering/195.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_fingering_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the folder as a mixed source-pool anchor. The images include useful manual-contact examples, but upright, standing, side, and oral-adjacent frames keep the full folder from being one locked prompt-ready route." + }, + { + "index": 11, + "reference_image": "fingering/227.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "fingering/241.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "fingering/279.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_fingering_reclined_front_view", + "notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset." + }, + { + "index": 14, + "reference_image": "fingering/352.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "fingering/603.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_fingering_reclined_front_view", + "notes": "Contact-sheet review found a repeated reclined front-view manual-contact family where the camera faces the open-thigh contact plane and face or upper body remains readable. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected subset." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/fist_contact_sheet.html b/ab_batches/normal_camera/review/fist_contact_sheet.html new file mode 100644 index 0000000..734145d --- /dev/null +++ b/ab_batches/normal_camera/review/fist_contact_sheet.html @@ -0,0 +1,41 @@ + + + + +Normal Camera Review Contact Sheet: fist + + + +

Normal Camera Review Contact Sheet: fist

+

No-generation contact sheet. 1 JPGs from fist. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: fist.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-1

+
+
+fist/337.jpg +
001 fist/337.jpgbucket: reject_or_unclear / normal_fist_mixed_camera_folder_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/fist_review_manifest.json b/ab_batches/normal_camera/review/fist_review_manifest.json new file mode 100644 index 0000000..ca86d6c --- /dev/null +++ b/ab_batches/normal_camera/review/fist_review_manifest.json @@ -0,0 +1,75 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "fist", + "folder_alias": { + "exact_source_folder": "fist", + "canonical_folder": "fist", + "canonical_key": "fist", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 1, + "action_family": "manual_or_toy", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_fist_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "fist/337.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the one available manual-contact reference as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ], + "review_items": [ + { + "reference_image": "fist/337.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_fist_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the one available manual-contact reference as coverage evidence only. A single image cannot define a stable normal-camera route.", + "index": 1 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 1, + "image_count": 1, + "images": [ + { + "index": 1, + "reference_image": "fist/337.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_fist_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the one available manual-contact reference as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/footjob_contact_sheet.html b/ab_batches/normal_camera/review/footjob_contact_sheet.html new file mode 100644 index 0000000..71511c4 --- /dev/null +++ b/ab_batches/normal_camera/review/footjob_contact_sheet.html @@ -0,0 +1,45 @@ + + + + +Normal Camera Review Contact Sheet: footjob + + + +

Normal Camera Review Contact Sheet: footjob

+

No-generation contact sheet. 2 JPGs from footjob. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: footjob.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-2

+
+
+footjob/265.jpg +
001 footjob/265.jpgbucket: reject_or_unclear / normal_footjob_mixed_camera_folder_pool
+
+
+footjob/265_2.jpg +
002 footjob/265_2.jpgbucket: reject_or_unclear / normal_footjob_mixed_camera_folder_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/footjob_review_manifest.json b/ab_batches/normal_camera/review/footjob_review_manifest.json new file mode 100644 index 0000000..fae4e3f --- /dev/null +++ b/ab_batches/normal_camera/review/footjob_review_manifest.json @@ -0,0 +1,93 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "footjob", + "folder_alias": { + "exact_source_folder": "footjob", + "canonical_folder": "footjob", + "canonical_key": "footjob", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 2, + "action_family": "manual_or_toy", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_footjob_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "footjob/265.jpg", + "footjob/265_2.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The two samples share the foot-contact action but vary between seated front context and tighter crop, so more matched samples are needed." + } + ], + "review_items": [ + { + "reference_image": "footjob/265.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_footjob_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The two samples share the foot-contact action but vary between seated front context and tighter crop, so more matched samples are needed.", + "index": 1 + }, + { + "reference_image": "footjob/265_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_footjob_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The two samples share the foot-contact action but vary between seated front context and tighter crop, so more matched samples are needed.", + "index": 2 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 2, + "image_count": 2, + "images": [ + { + "index": 1, + "reference_image": "footjob/265.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_footjob_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The two samples share the foot-contact action but vary between seated front context and tighter crop, so more matched samples are needed." + }, + { + "index": 2, + "reference_image": "footjob/265_2.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_footjob_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The two samples share the foot-contact action but vary between seated front context and tighter crop, so more matched samples are needed." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/fuck_from_behind_standing_woman_backside_side_view_contact_sheet.html b/ab_batches/normal_camera/review/fuck_from_behind_standing_woman_backside_side_view_contact_sheet.html new file mode 100644 index 0000000..d1f315e --- /dev/null +++ b/ab_batches/normal_camera/review/fuck_from_behind_standing_woman_backside_side_view_contact_sheet.html @@ -0,0 +1,228 @@ + + + + +Normal Camera Review Contact Sheet: fuck from behind standing - woman backside - side view + + + +

Normal Camera Review Contact Sheet: fuck from behind standing - woman backside - side view

+

No-generation contact sheet. 47 JPGs from fuck from behind standing - woman backside - side view. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: fuck from behind standing - woman backside - side view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-40

+
+
+fuck from behind standing - woman backside - side view/0008.jpg +
001 fuck from behind standing - woman backside - side view/0008.jpgbucket: side_view / normal_doggy_standing_backside_side_view_folder_pool
+
+
+fuck from behind standing - woman backside - side view/0010.jpg +
002 fuck from behind standing - woman backside - side view/0010.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/0012.jpg +
003 fuck from behind standing - woman backside - side view/0012.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/0020.jpg +
004 fuck from behind standing - woman backside - side view/0020.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/44.jpg +
005 fuck from behind standing - woman backside - side view/44.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/68.jpg +
006 fuck from behind standing - woman backside - side view/68.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/68_2.jpg +
007 fuck from behind standing - woman backside - side view/68_2.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/112.jpg +
008 fuck from behind standing - woman backside - side view/112.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/159.jpg +
009 fuck from behind standing - woman backside - side view/159.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/170.jpg +
010 fuck from behind standing - woman backside - side view/170.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/172.jpg +
011 fuck from behind standing - woman backside - side view/172.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/172_2.jpg +
012 fuck from behind standing - woman backside - side view/172_2.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/182.jpg +
013 fuck from behind standing - woman backside - side view/182.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/186.jpg +
014 fuck from behind standing - woman backside - side view/186.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/186_2.jpg +
015 fuck from behind standing - woman backside - side view/186_2.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/196.jpg +
016 fuck from behind standing - woman backside - side view/196.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/218.jpg +
017 fuck from behind standing - woman backside - side view/218.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/222.jpg +
018 fuck from behind standing - woman backside - side view/222.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/235.jpg +
019 fuck from behind standing - woman backside - side view/235.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/257.jpg +
020 fuck from behind standing - woman backside - side view/257.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/258.jpg +
021 fuck from behind standing - woman backside - side view/258.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/258_2.jpg +
022 fuck from behind standing - woman backside - side view/258_2.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/268.jpg +
023 fuck from behind standing - woman backside - side view/268.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/268_2.jpg +
024 fuck from behind standing - woman backside - side view/268_2.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/278.jpg +
025 fuck from behind standing - woman backside - side view/278.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/286.jpg +
026 fuck from behind standing - woman backside - side view/286.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/288.jpg +
027 fuck from behind standing - woman backside - side view/288.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/289.jpg +
028 fuck from behind standing - woman backside - side view/289.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/289_2.jpg +
029 fuck from behind standing - woman backside - side view/289_2.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/298.jpg +
030 fuck from behind standing - woman backside - side view/298.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/299.jpg +
031 fuck from behind standing - woman backside - side view/299.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/305.jpg +
032 fuck from behind standing - woman backside - side view/305.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/307.jpg +
033 fuck from behind standing - woman backside - side view/307.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/331.jpg +
034 fuck from behind standing - woman backside - side view/331.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/340.jpg +
035 fuck from behind standing - woman backside - side view/340.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/341.jpg +
036 fuck from behind standing - woman backside - side view/341.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/343.jpg +
037 fuck from behind standing - woman backside - side view/343.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/343_2.jpg +
038 fuck from behind standing - woman backside - side view/343_2.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/343_3.jpg +
039 fuck from behind standing - woman backside - side view/343_3.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/343_4.jpg +
040 fuck from behind standing - woman backside - side view/343_4.jpgbucket: unassigned
+
+
+

Page 2: 41-47

+
+
+fuck from behind standing - woman backside - side view/343_5.jpg +
041 fuck from behind standing - woman backside - side view/343_5.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/343_6.jpg +
042 fuck from behind standing - woman backside - side view/343_6.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/345.jpg +
043 fuck from behind standing - woman backside - side view/345.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/345_2.jpg +
044 fuck from behind standing - woman backside - side view/345_2.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+fuck from behind standing - woman backside - side view/370.jpg +
045 fuck from behind standing - woman backside - side view/370.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/370_2.jpg +
046 fuck from behind standing - woman backside - side view/370_2.jpgbucket: unassigned
+
+
+fuck from behind standing - woman backside - side view/542.jpg +
047 fuck from behind standing - woman backside - side view/542.jpgbucket: side_view / normal_doggy_standing_backside_side_view
+
+
+ + diff --git a/ab_batches/normal_camera/review/fuck_from_behind_standing_woman_backside_side_view_review_manifest.json b/ab_batches/normal_camera/review/fuck_from_behind_standing_woman_backside_side_view_review_manifest.json new file mode 100644 index 0000000..7cbc194 --- /dev/null +++ b/ab_batches/normal_camera/review/fuck_from_behind_standing_woman_backside_side_view_review_manifest.json @@ -0,0 +1,923 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "fuck from behind standing - woman backside - side view", + "folder_alias": { + "exact_source_folder": "fuck from behind standing - woman backside - side view", + "canonical_folder": "fuck from behind standing - woman backside - side view", + "canonical_key": "fuck_from_behind_standing_woman_backside_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 47, + "action_family": "doggy", + "source_camera_view": "side_view", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_doggy_standing_backside_side_view_folder_pool", + "review_bucket": "side_view", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "fuck from behind standing - woman backside - side view/0008.jpg", + "fuck from behind standing - woman backside - side view/288.jpg", + "fuck from behind standing - woman backside - side view/68_2.jpg" + ], + "evidence_notes": "Residual-pool review kept the existing folder-pool anchor unchanged. The folder has standing side/rear-lateral material, but the unselected images mix lifted, seated, bed/couch, front-drifting, and portrait-like frames rather than a cleaner prompt-ready split." + }, + { + "variant_key": "normal_doggy_standing_backside_side_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-06-29", + "reference_images": [ + "fuck from behind standing - woman backside - side view/0010.jpg", + "fuck from behind standing - woman backside - side view/0012.jpg", + "fuck from behind standing - woman backside - side view/186.jpg", + "fuck from behind standing - woman backside - side view/186_2.jpg", + "fuck from behind standing - woman backside - side view/196.jpg", + "fuck from behind standing - woman backside - side view/257.jpg", + "fuck from behind standing - woman backside - side view/286.jpg", + "fuck from behind standing - woman backside - side view/288.jpg", + "fuck from behind standing - woman backside - side view/343.jpg", + "fuck from behind standing - woman backside - side view/343_2.jpg", + "fuck from behind standing - woman backside - side view/343_3.jpg", + "fuck from behind standing - woman backside - side view/345.jpg", + "fuck from behind standing - woman backside - side view/345_2.jpg", + "fuck from behind standing - woman backside - side view/542.jpg", + "fuck from behind standing - woman backside - side view/68.jpg", + "fuck from behind standing - woman backside - side view/68_2.jpg" + ], + "evidence_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + } + ], + "review_items": [ + { + "reference_image": "fuck from behind standing - woman backside - side view/0008.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view_folder_pool", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing folder-pool anchor unchanged. The folder has standing side/rear-lateral material, but the unselected images mix lifted, seated, bed/couch, front-drifting, and portrait-like frames rather than a cleaner prompt-ready split.", + "index": 1 + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/0010.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 2 + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/0012.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 3 + }, + { + "index": 4, + "reference_image": "fuck from behind standing - woman backside - side view/0020.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 5, + "reference_image": "fuck from behind standing - woman backside - side view/44.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/68.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 6 + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/68_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 7 + }, + { + "index": 8, + "reference_image": "fuck from behind standing - woman backside - side view/112.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 9, + "reference_image": "fuck from behind standing - woman backside - side view/159.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 10, + "reference_image": "fuck from behind standing - woman backside - side view/170.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 11, + "reference_image": "fuck from behind standing - woman backside - side view/172.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 12, + "reference_image": "fuck from behind standing - woman backside - side view/172_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 13, + "reference_image": "fuck from behind standing - woman backside - side view/182.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/186.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 14 + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/186_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 15 + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/196.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 16 + }, + { + "index": 17, + "reference_image": "fuck from behind standing - woman backside - side view/218.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 18, + "reference_image": "fuck from behind standing - woman backside - side view/222.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 19, + "reference_image": "fuck from behind standing - woman backside - side view/235.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/257.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 20 + }, + { + "index": 21, + "reference_image": "fuck from behind standing - woman backside - side view/258.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 22, + "reference_image": "fuck from behind standing - woman backside - side view/258_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "fuck from behind standing - woman backside - side view/268.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 24, + "reference_image": "fuck from behind standing - woman backside - side view/268_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 25, + "reference_image": "fuck from behind standing - woman backside - side view/278.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/286.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 26 + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/288.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 27 + }, + { + "index": 28, + "reference_image": "fuck from behind standing - woman backside - side view/289.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 29, + "reference_image": "fuck from behind standing - woman backside - side view/289_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 30, + "reference_image": "fuck from behind standing - woman backside - side view/298.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 31, + "reference_image": "fuck from behind standing - woman backside - side view/299.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 32, + "reference_image": "fuck from behind standing - woman backside - side view/305.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 33, + "reference_image": "fuck from behind standing - woman backside - side view/307.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 34, + "reference_image": "fuck from behind standing - woman backside - side view/331.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 35, + "reference_image": "fuck from behind standing - woman backside - side view/340.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 36, + "reference_image": "fuck from behind standing - woman backside - side view/341.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/343.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 37 + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/343_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 38 + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/343_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 39 + }, + { + "index": 40, + "reference_image": "fuck from behind standing - woman backside - side view/343_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 41, + "reference_image": "fuck from behind standing - woman backside - side view/343_5.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 42, + "reference_image": "fuck from behind standing - woman backside - side view/343_6.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/345.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 43 + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/345_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 44 + }, + { + "index": 45, + "reference_image": "fuck from behind standing - woman backside - side view/370.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 46, + "reference_image": "fuck from behind standing - woman backside - side view/370_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "fuck from behind standing - woman backside - side view/542.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_doggy_standing_backside_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass.", + "index": 47 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 40, + "image_count": 40, + "images": [ + { + "index": 1, + "reference_image": "fuck from behind standing - woman backside - side view/0008.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view_folder_pool", + "notes": "Residual-pool review kept the existing folder-pool anchor unchanged. The folder has standing side/rear-lateral material, but the unselected images mix lifted, seated, bed/couch, front-drifting, and portrait-like frames rather than a cleaner prompt-ready split." + }, + { + "index": 2, + "reference_image": "fuck from behind standing - woman backside - side view/0010.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 3, + "reference_image": "fuck from behind standing - woman backside - side view/0012.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 4, + "reference_image": "fuck from behind standing - woman backside - side view/0020.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "fuck from behind standing - woman backside - side view/44.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 6, + "reference_image": "fuck from behind standing - woman backside - side view/68.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 7, + "reference_image": "fuck from behind standing - woman backside - side view/68_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 8, + "reference_image": "fuck from behind standing - woman backside - side view/112.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "fuck from behind standing - woman backside - side view/159.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "fuck from behind standing - woman backside - side view/170.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "fuck from behind standing - woman backside - side view/172.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "fuck from behind standing - woman backside - side view/172_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "fuck from behind standing - woman backside - side view/182.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 14, + "reference_image": "fuck from behind standing - woman backside - side view/186.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 15, + "reference_image": "fuck from behind standing - woman backside - side view/186_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 16, + "reference_image": "fuck from behind standing - woman backside - side view/196.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 17, + "reference_image": "fuck from behind standing - woman backside - side view/218.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 18, + "reference_image": "fuck from behind standing - woman backside - side view/222.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 19, + "reference_image": "fuck from behind standing - woman backside - side view/235.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "fuck from behind standing - woman backside - side view/257.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 21, + "reference_image": "fuck from behind standing - woman backside - side view/258.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "fuck from behind standing - woman backside - side view/258_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "fuck from behind standing - woman backside - side view/268.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "fuck from behind standing - woman backside - side view/268_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "fuck from behind standing - woman backside - side view/278.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "fuck from behind standing - woman backside - side view/286.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 27, + "reference_image": "fuck from behind standing - woman backside - side view/288.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 28, + "reference_image": "fuck from behind standing - woman backside - side view/289.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 29, + "reference_image": "fuck from behind standing - woman backside - side view/289_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 30, + "reference_image": "fuck from behind standing - woman backside - side view/298.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 31, + "reference_image": "fuck from behind standing - woman backside - side view/299.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 32, + "reference_image": "fuck from behind standing - woman backside - side view/305.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "fuck from behind standing - woman backside - side view/307.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 34, + "reference_image": "fuck from behind standing - woman backside - side view/331.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 35, + "reference_image": "fuck from behind standing - woman backside - side view/340.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 36, + "reference_image": "fuck from behind standing - woman backside - side view/341.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 37, + "reference_image": "fuck from behind standing - woman backside - side view/343.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 38, + "reference_image": "fuck from behind standing - woman backside - side view/343_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 39, + "reference_image": "fuck from behind standing - woman backside - side view/343_3.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 40, + "reference_image": "fuck from behind standing - woman backside - side view/343_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 2, + "html_anchor": "page-02", + "start_index": 41, + "end_index": 47, + "image_count": 7, + "images": [ + { + "index": 41, + "reference_image": "fuck from behind standing - woman backside - side view/343_5.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 42, + "reference_image": "fuck from behind standing - woman backside - side view/343_6.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 43, + "reference_image": "fuck from behind standing - woman backside - side view/345.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 44, + "reference_image": "fuck from behind standing - woman backside - side view/345_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + }, + { + "index": 45, + "reference_image": "fuck from behind standing - woman backside - side view/370.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 46, + "reference_image": "fuck from behind standing - woman backside - side view/370_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 47, + "reference_image": "fuck from behind standing - woman backside - side view/542.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_doggy_standing_backside_side_view", + "notes": "Residual-pool review kept the existing standing backside side-view route unchanged. It already has a coherent reviewed subset; remaining images do not add a distinct repeated camera family in this pass." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/fuck_from_front_standing_side_view_contact_sheet.html b/ab_batches/normal_camera/review/fuck_from_front_standing_side_view_contact_sheet.html new file mode 100644 index 0000000..4b96c14 --- /dev/null +++ b/ab_batches/normal_camera/review/fuck_from_front_standing_side_view_contact_sheet.html @@ -0,0 +1,181 @@ + + + + +Normal Camera Review Contact Sheet: fuck from front standing - side view + + + +

Normal Camera Review Contact Sheet: fuck from front standing - side view

+

No-generation contact sheet. 36 JPGs from fuck from front standing - side view. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: fuck from front standing - side view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-36

+
+
+fuck from front standing - side view/0001.jpg +
001 fuck from front standing - side view/0001.jpgbucket: side_view / normal_standing_from_front_side_view
+
+
+fuck from front standing - side view/0008.jpg +
002 fuck from front standing - side view/0008.jpgbucket: unassigned
+
+
+fuck from front standing - side view/0009.jpg +
003 fuck from front standing - side view/0009.jpgbucket: unassigned
+
+
+fuck from front standing - side view/16.jpg +
004 fuck from front standing - side view/16.jpgbucket: unassigned
+
+
+fuck from front standing - side view/19.jpg +
005 fuck from front standing - side view/19.jpgbucket: unassigned
+
+
+fuck from front standing - side view/23.jpg +
006 fuck from front standing - side view/23.jpgbucket: unassigned
+
+
+fuck from front standing - side view/23_2.jpg +
007 fuck from front standing - side view/23_2.jpgbucket: unassigned
+
+
+fuck from front standing - side view/73.jpg +
008 fuck from front standing - side view/73.jpgbucket: side_view / normal_standing_from_front_side_view
+
+
+fuck from front standing - side view/163.jpg +
009 fuck from front standing - side view/163.jpgbucket: unassigned
+
+
+fuck from front standing - side view/163_2.jpg +
010 fuck from front standing - side view/163_2.jpgbucket: unassigned
+
+
+fuck from front standing - side view/170.jpg +
011 fuck from front standing - side view/170.jpgbucket: unassigned
+
+
+fuck from front standing - side view/172.jpg +
012 fuck from front standing - side view/172.jpgbucket: unassigned
+
+
+fuck from front standing - side view/174.jpg +
013 fuck from front standing - side view/174.jpgbucket: unassigned
+
+
+fuck from front standing - side view/180.jpg +
014 fuck from front standing - side view/180.jpgbucket: unassigned
+
+
+fuck from front standing - side view/183.jpg +
015 fuck from front standing - side view/183.jpgbucket: unassigned
+
+
+fuck from front standing - side view/186.jpg +
016 fuck from front standing - side view/186.jpgbucket: unassigned
+
+
+fuck from front standing - side view/192.jpg +
017 fuck from front standing - side view/192.jpgbucket: unassigned
+
+
+fuck from front standing - side view/207.jpg +
018 fuck from front standing - side view/207.jpgbucket: unassigned
+
+
+fuck from front standing - side view/230.jpg +
019 fuck from front standing - side view/230.jpgbucket: unassigned
+
+
+fuck from front standing - side view/252.jpg +
020 fuck from front standing - side view/252.jpgbucket: side_view / normal_standing_from_front_side_view
+
+
+fuck from front standing - side view/267.jpg +
021 fuck from front standing - side view/267.jpgbucket: unassigned
+
+
+fuck from front standing - side view/295.jpg +
022 fuck from front standing - side view/295.jpgbucket: unassigned
+
+
+fuck from front standing - side view/295_2.jpg +
023 fuck from front standing - side view/295_2.jpgbucket: unassigned
+
+
+fuck from front standing - side view/296.jpg +
024 fuck from front standing - side view/296.jpgbucket: unassigned
+
+
+fuck from front standing - side view/296_2.jpg +
025 fuck from front standing - side view/296_2.jpgbucket: unassigned
+
+
+fuck from front standing - side view/298.jpg +
026 fuck from front standing - side view/298.jpgbucket: unassigned
+
+
+fuck from front standing - side view/307.jpg +
027 fuck from front standing - side view/307.jpgbucket: unassigned
+
+
+fuck from front standing - side view/320.jpg +
028 fuck from front standing - side view/320.jpgbucket: unassigned
+
+
+fuck from front standing - side view/340.jpg +
029 fuck from front standing - side view/340.jpgbucket: unassigned
+
+
+fuck from front standing - side view/343.jpg +
030 fuck from front standing - side view/343.jpgbucket: unassigned
+
+
+fuck from front standing - side view/343_2.jpg +
031 fuck from front standing - side view/343_2.jpgbucket: unassigned
+
+
+fuck from front standing - side view/345.jpg +
032 fuck from front standing - side view/345.jpgbucket: unassigned
+
+
+fuck from front standing - side view/345_2.jpg +
033 fuck from front standing - side view/345_2.jpgbucket: unassigned
+
+
+fuck from front standing - side view/549.jpg +
034 fuck from front standing - side view/549.jpgbucket: unassigned
+
+
+fuck from front standing - side view/549_2.jpg +
035 fuck from front standing - side view/549_2.jpgbucket: unassigned
+
+
+fuck from front standing - side view/561.jpg +
036 fuck from front standing - side view/561.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/fuck_from_front_standing_side_view_review_manifest.json b/ab_batches/normal_camera/review/fuck_from_front_standing_side_view_review_manifest.json new file mode 100644 index 0000000..52f8803 --- /dev/null +++ b/ab_batches/normal_camera/review/fuck_from_front_standing_side_view_review_manifest.json @@ -0,0 +1,705 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "fuck from front standing - side view", + "folder_alias": { + "exact_source_folder": "fuck from front standing - side view", + "canonical_folder": "fuck from front standing - side view", + "canonical_key": "fuck_from_front_standing_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 36, + "action_family": "standing_penetration", + "source_camera_view": "side_view", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_standing_from_front_side_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-06-29", + "reference_images": [ + "fuck from front standing - side view/0001.jpg", + "fuck from front standing - side view/252.jpg", + "fuck from front standing - side view/73.jpg" + ], + "evidence_notes": "Residual-pool review kept the existing selected standing from-front side-view subset unchanged. The remaining source images include usable side/near-side frames, but too many drift into suspended/lifted, close-crop, couch, or front-heavy framing for a safe reference expansion." + } + ], + "review_items": [ + { + "reference_image": "fuck from front standing - side view/0001.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_standing_from_front_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected standing from-front side-view subset unchanged. The remaining source images include usable side/near-side frames, but too many drift into suspended/lifted, close-crop, couch, or front-heavy framing for a safe reference expansion.", + "index": 1 + }, + { + "index": 2, + "reference_image": "fuck from front standing - side view/0008.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 3, + "reference_image": "fuck from front standing - side view/0009.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 4, + "reference_image": "fuck from front standing - side view/16.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 5, + "reference_image": "fuck from front standing - side view/19.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 6, + "reference_image": "fuck from front standing - side view/23.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 7, + "reference_image": "fuck from front standing - side view/23_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "fuck from front standing - side view/73.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_standing_from_front_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected standing from-front side-view subset unchanged. The remaining source images include usable side/near-side frames, but too many drift into suspended/lifted, close-crop, couch, or front-heavy framing for a safe reference expansion.", + "index": 8 + }, + { + "index": 9, + "reference_image": "fuck from front standing - side view/163.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 10, + "reference_image": "fuck from front standing - side view/163_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 11, + "reference_image": "fuck from front standing - side view/170.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 12, + "reference_image": "fuck from front standing - side view/172.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 13, + "reference_image": "fuck from front standing - side view/174.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 14, + "reference_image": "fuck from front standing - side view/180.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 15, + "reference_image": "fuck from front standing - side view/183.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 16, + "reference_image": "fuck from front standing - side view/186.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 17, + "reference_image": "fuck from front standing - side view/192.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 18, + "reference_image": "fuck from front standing - side view/207.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 19, + "reference_image": "fuck from front standing - side view/230.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "fuck from front standing - side view/252.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_standing_from_front_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing selected standing from-front side-view subset unchanged. The remaining source images include usable side/near-side frames, but too many drift into suspended/lifted, close-crop, couch, or front-heavy framing for a safe reference expansion.", + "index": 20 + }, + { + "index": 21, + "reference_image": "fuck from front standing - side view/267.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 22, + "reference_image": "fuck from front standing - side view/295.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "fuck from front standing - side view/295_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 24, + "reference_image": "fuck from front standing - side view/296.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 25, + "reference_image": "fuck from front standing - side view/296_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 26, + "reference_image": "fuck from front standing - side view/298.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 27, + "reference_image": "fuck from front standing - side view/307.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 28, + "reference_image": "fuck from front standing - side view/320.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 29, + "reference_image": "fuck from front standing - side view/340.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 30, + "reference_image": "fuck from front standing - side view/343.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 31, + "reference_image": "fuck from front standing - side view/343_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 32, + "reference_image": "fuck from front standing - side view/345.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 33, + "reference_image": "fuck from front standing - side view/345_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 34, + "reference_image": "fuck from front standing - side view/549.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 35, + "reference_image": "fuck from front standing - side view/549_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 36, + "reference_image": "fuck from front standing - side view/561.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 36, + "image_count": 36, + "images": [ + { + "index": 1, + "reference_image": "fuck from front standing - side view/0001.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_standing_from_front_side_view", + "notes": "Residual-pool review kept the existing selected standing from-front side-view subset unchanged. The remaining source images include usable side/near-side frames, but too many drift into suspended/lifted, close-crop, couch, or front-heavy framing for a safe reference expansion." + }, + { + "index": 2, + "reference_image": "fuck from front standing - side view/0008.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 3, + "reference_image": "fuck from front standing - side view/0009.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 4, + "reference_image": "fuck from front standing - side view/16.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "fuck from front standing - side view/19.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 6, + "reference_image": "fuck from front standing - side view/23.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 7, + "reference_image": "fuck from front standing - side view/23_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 8, + "reference_image": "fuck from front standing - side view/73.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_standing_from_front_side_view", + "notes": "Residual-pool review kept the existing selected standing from-front side-view subset unchanged. The remaining source images include usable side/near-side frames, but too many drift into suspended/lifted, close-crop, couch, or front-heavy framing for a safe reference expansion." + }, + { + "index": 9, + "reference_image": "fuck from front standing - side view/163.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "fuck from front standing - side view/163_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "fuck from front standing - side view/170.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "fuck from front standing - side view/172.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "fuck from front standing - side view/174.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 14, + "reference_image": "fuck from front standing - side view/180.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "fuck from front standing - side view/183.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "fuck from front standing - side view/186.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "fuck from front standing - side view/192.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 18, + "reference_image": "fuck from front standing - side view/207.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 19, + "reference_image": "fuck from front standing - side view/230.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "fuck from front standing - side view/252.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_standing_from_front_side_view", + "notes": "Residual-pool review kept the existing selected standing from-front side-view subset unchanged. The remaining source images include usable side/near-side frames, but too many drift into suspended/lifted, close-crop, couch, or front-heavy framing for a safe reference expansion." + }, + { + "index": 21, + "reference_image": "fuck from front standing - side view/267.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "fuck from front standing - side view/295.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "fuck from front standing - side view/295_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "fuck from front standing - side view/296.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "fuck from front standing - side view/296_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "fuck from front standing - side view/298.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 27, + "reference_image": "fuck from front standing - side view/307.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "fuck from front standing - side view/320.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 29, + "reference_image": "fuck from front standing - side view/340.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 30, + "reference_image": "fuck from front standing - side view/343.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 31, + "reference_image": "fuck from front standing - side view/343_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 32, + "reference_image": "fuck from front standing - side view/345.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "fuck from front standing - side view/345_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 34, + "reference_image": "fuck from front standing - side view/549.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 35, + "reference_image": "fuck from front standing - side view/549_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 36, + "reference_image": "fuck from front standing - side view/561.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/handjob_standing_low_angle_contact_sheet.html b/ab_batches/normal_camera/review/handjob_standing_low_angle_contact_sheet.html new file mode 100644 index 0000000..4b66f5a --- /dev/null +++ b/ab_batches/normal_camera/review/handjob_standing_low_angle_contact_sheet.html @@ -0,0 +1,41 @@ + + + + +Normal Camera Review Contact Sheet: handjob - standing -low angle + + + +

Normal Camera Review Contact Sheet: handjob - standing -low angle

+

No-generation contact sheet. 1 JPGs from handjob - standing -low angle. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: handjob - standing - low angle.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-1

+
+
+handjob - standing -low angle/552.jpg +
001 handjob - standing -low angle/552.jpgbucket: reject_or_unclear / normal_handjob_standing_low_angle_single_reference_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/handjob_standing_low_angle_review_manifest.json b/ab_batches/normal_camera/review/handjob_standing_low_angle_review_manifest.json new file mode 100644 index 0000000..4730f84 --- /dev/null +++ b/ab_batches/normal_camera/review/handjob_standing_low_angle_review_manifest.json @@ -0,0 +1,75 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "handjob - standing -low angle", + "folder_alias": { + "exact_source_folder": "handjob - standing -low angle", + "canonical_folder": "handjob - standing - low angle", + "canonical_key": "handjob_standing_low_angle", + "alias_applied": true, + "alias_reason": "Spacing typo normalized for review metadata while preserving exact source path." + }, + "image_count": 1, + "action_family": "manual_or_toy", + "source_camera_view": "low_angle", + "source_catalog_status": "thin_sample", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_handjob_standing_low_angle_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "handjob - standing -low angle/552.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the one standing low-angle manual-contact sample as coverage evidence only. A single image is too thin for a selected pre-A/B route." + } + ], + "review_items": [ + { + "reference_image": "handjob - standing -low angle/552.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_handjob_standing_low_angle_single_reference_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the one standing low-angle manual-contact sample as coverage evidence only. A single image is too thin for a selected pre-A/B route.", + "index": 1 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 1, + "image_count": 1, + "images": [ + { + "index": 1, + "reference_image": "handjob - standing -low angle/552.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_handjob_standing_low_angle_single_reference_pool", + "notes": "Contact-sheet review preserved the one standing low-angle manual-contact sample as coverage evidence only. A single image is too thin for a selected pre-A/B route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/handjob_standing_side_view_contact_sheet.html b/ab_batches/normal_camera/review/handjob_standing_side_view_contact_sheet.html new file mode 100644 index 0000000..1d7eb03 --- /dev/null +++ b/ab_batches/normal_camera/review/handjob_standing_side_view_contact_sheet.html @@ -0,0 +1,292 @@ + + + + +Normal Camera Review Contact Sheet: handjob standing - side view + + + +

Normal Camera Review Contact Sheet: handjob standing - side view

+

No-generation contact sheet. 63 JPGs from handjob standing - side view. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: handjob standing - side view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-40

+
+
+handjob standing - side view/0001.jpg +
001 handjob standing - side view/0001.jpgbucket: unassigned
+
+
+handjob standing - side view/0001_2.jpg +
002 handjob standing - side view/0001_2.jpgbucket: unassigned
+
+
+handjob standing - side view/0002.jpg +
003 handjob standing - side view/0002.jpgbucket: unassigned
+
+
+handjob standing - side view/0003.jpg +
004 handjob standing - side view/0003.jpgbucket: unassigned
+
+
+handjob standing - side view/0003_2.jpg +
005 handjob standing - side view/0003_2.jpgbucket: unassigned
+
+
+handjob standing - side view/0003_3.jpg +
006 handjob standing - side view/0003_3.jpgbucket: unassigned
+
+
+handjob standing - side view/0005.jpg +
007 handjob standing - side view/0005.jpgbucket: unassigned
+
+
+handjob standing - side view/0005_2.jpg +
008 handjob standing - side view/0005_2.jpgbucket: unassigned
+
+
+handjob standing - side view/0008.jpg +
009 handjob standing - side view/0008.jpgbucket: unassigned
+
+
+handjob standing - side view/0010.jpg +
010 handjob standing - side view/0010.jpgbucket: unassigned
+
+
+handjob standing - side view/0010_2.jpg +
011 handjob standing - side view/0010_2.jpgbucket: unassigned
+
+
+handjob standing - side view/0010_3.jpg +
012 handjob standing - side view/0010_3.jpgbucket: unassigned
+
+
+handjob standing - side view/0011.jpg +
013 handjob standing - side view/0011.jpgbucket: unassigned
+
+
+handjob standing - side view/0013.jpg +
014 handjob standing - side view/0013.jpgbucket: unassigned
+
+
+handjob standing - side view/0015.jpg +
015 handjob standing - side view/0015.jpgbucket: unassigned
+
+
+handjob standing - side view/0015_2.jpg +
016 handjob standing - side view/0015_2.jpgbucket: unassigned
+
+
+handjob standing - side view/16.jpg +
017 handjob standing - side view/16.jpgbucket: side_view / normal_handjob_standing_side_profile
+
+
+handjob standing - side view/17.jpg +
018 handjob standing - side view/17.jpgbucket: unassigned
+
+
+handjob standing - side view/0017.jpg +
019 handjob standing - side view/0017.jpgbucket: unassigned
+
+
+handjob standing - side view/0020.jpg +
020 handjob standing - side view/0020.jpgbucket: unassigned
+
+
+handjob standing - side view/46.jpg +
021 handjob standing - side view/46.jpgbucket: unassigned
+
+
+handjob standing - side view/48.jpg +
022 handjob standing - side view/48.jpgbucket: unassigned
+
+
+handjob standing - side view/54.jpg +
023 handjob standing - side view/54.jpgbucket: unassigned
+
+
+handjob standing - side view/105.jpg +
024 handjob standing - side view/105.jpgbucket: side_view / normal_handjob_standing_side_profile
+
+
+handjob standing - side view/109.jpg +
025 handjob standing - side view/109.jpgbucket: unassigned
+
+
+handjob standing - side view/113.jpg +
026 handjob standing - side view/113.jpgbucket: unassigned
+
+
+handjob standing - side view/114.jpg +
027 handjob standing - side view/114.jpgbucket: unassigned
+
+
+handjob standing - side view/137.jpg +
028 handjob standing - side view/137.jpgbucket: unassigned
+
+
+handjob standing - side view/145.jpg +
029 handjob standing - side view/145.jpgbucket: unassigned
+
+
+handjob standing - side view/171.jpg +
030 handjob standing - side view/171.jpgbucket: side_view / normal_handjob_standing_side_profile
+
+
+handjob standing - side view/174.jpg +
031 handjob standing - side view/174.jpgbucket: side_view / normal_handjob_standing_side_profile
+
+
+handjob standing - side view/175.jpg +
032 handjob standing - side view/175.jpgbucket: side_view / normal_handjob_standing_side_profile
+
+
+handjob standing - side view/188.jpg +
033 handjob standing - side view/188.jpgbucket: unassigned
+
+
+handjob standing - side view/251.jpg +
034 handjob standing - side view/251.jpgbucket: unassigned
+
+
+handjob standing - side view/260.jpg +
035 handjob standing - side view/260.jpgbucket: unassigned
+
+
+handjob standing - side view/263.jpg +
036 handjob standing - side view/263.jpgbucket: unassigned
+
+
+handjob standing - side view/273.jpg +
037 handjob standing - side view/273.jpgbucket: unassigned
+
+
+handjob standing - side view/274.jpg +
038 handjob standing - side view/274.jpgbucket: unassigned
+
+
+handjob standing - side view/278.jpg +
039 handjob standing - side view/278.jpgbucket: unassigned
+
+
+handjob standing - side view/279.jpg +
040 handjob standing - side view/279.jpgbucket: unassigned
+
+
+

Page 2: 41-63

+
+
+handjob standing - side view/288.jpg +
041 handjob standing - side view/288.jpgbucket: unassigned
+
+
+handjob standing - side view/295.jpg +
042 handjob standing - side view/295.jpgbucket: unassigned
+
+
+handjob standing - side view/296.jpg +
043 handjob standing - side view/296.jpgbucket: unassigned
+
+
+handjob standing - side view/305.jpg +
044 handjob standing - side view/305.jpgbucket: side_view / normal_handjob_standing_side_profile
+
+
+handjob standing - side view/325.jpg +
045 handjob standing - side view/325.jpgbucket: unassigned
+
+
+handjob standing - side view/327.jpg +
046 handjob standing - side view/327.jpgbucket: unassigned
+
+
+handjob standing - side view/336.jpg +
047 handjob standing - side view/336.jpgbucket: unassigned
+
+
+handjob standing - side view/348.jpg +
048 handjob standing - side view/348.jpgbucket: unassigned
+
+
+handjob standing - side view/359.jpg +
049 handjob standing - side view/359.jpgbucket: unassigned
+
+
+handjob standing - side view/369.jpg +
050 handjob standing - side view/369.jpgbucket: unassigned
+
+
+handjob standing - side view/372.jpg +
051 handjob standing - side view/372.jpgbucket: unassigned
+
+
+handjob standing - side view/372_2.jpg +
052 handjob standing - side view/372_2.jpgbucket: unassigned
+
+
+handjob standing - side view/499.jpg +
053 handjob standing - side view/499.jpgbucket: unassigned
+
+
+handjob standing - side view/505.jpg +
054 handjob standing - side view/505.jpgbucket: unassigned
+
+
+handjob standing - side view/509.jpg +
055 handjob standing - side view/509.jpgbucket: unassigned
+
+
+handjob standing - side view/529.jpg +
056 handjob standing - side view/529.jpgbucket: unassigned
+
+
+handjob standing - side view/536.jpg +
057 handjob standing - side view/536.jpgbucket: unassigned
+
+
+handjob standing - side view/549.jpg +
058 handjob standing - side view/549.jpgbucket: side_view / normal_handjob_standing_side_profile
+
+
+handjob standing - side view/601.jpg +
059 handjob standing - side view/601.jpgbucket: unassigned
+
+
+handjob standing - side view/601_2.jpg +
060 handjob standing - side view/601_2.jpgbucket: unassigned
+
+
+handjob standing - side view/602.jpg +
061 handjob standing - side view/602.jpgbucket: unassigned
+
+
+handjob standing - side view/608.jpg +
062 handjob standing - side view/608.jpgbucket: unassigned
+
+
+handjob standing - side view/614.jpg +
063 handjob standing - side view/614.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/handjob_standing_side_view_review_manifest.json b/ab_batches/normal_camera/review/handjob_standing_side_view_review_manifest.json new file mode 100644 index 0000000..1f0973b --- /dev/null +++ b/ab_batches/normal_camera/review/handjob_standing_side_view_review_manifest.json @@ -0,0 +1,1200 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "handjob standing - side view", + "folder_alias": { + "exact_source_folder": "handjob standing - side view", + "canonical_folder": "handjob standing - side view", + "canonical_key": "handjob_standing_side_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 63, + "action_family": "manual_or_toy", + "source_camera_view": "side_view", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_handjob_standing_side_profile", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-06-29", + "reference_images": [ + "handjob standing - side view/16.jpg", + "handjob standing - side view/105.jpg", + "handjob standing - side view/171.jpg", + "handjob standing - side view/174.jpg", + "handjob standing - side view/175.jpg", + "handjob standing - side view/305.jpg", + "handjob standing - side view/549.jpg" + ], + "evidence_notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass." + } + ], + "review_items": [ + { + "index": 1, + "reference_image": "handjob standing - side view/0001.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 2, + "reference_image": "handjob standing - side view/0001_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 3, + "reference_image": "handjob standing - side view/0002.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 4, + "reference_image": "handjob standing - side view/0003.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 5, + "reference_image": "handjob standing - side view/0003_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 6, + "reference_image": "handjob standing - side view/0003_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 7, + "reference_image": "handjob standing - side view/0005.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 8, + "reference_image": "handjob standing - side view/0005_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 9, + "reference_image": "handjob standing - side view/0008.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 10, + "reference_image": "handjob standing - side view/0010.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 11, + "reference_image": "handjob standing - side view/0010_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 12, + "reference_image": "handjob standing - side view/0010_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 13, + "reference_image": "handjob standing - side view/0011.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 14, + "reference_image": "handjob standing - side view/0013.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 15, + "reference_image": "handjob standing - side view/0015.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 16, + "reference_image": "handjob standing - side view/0015_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "handjob standing - side view/16.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_handjob_standing_side_profile", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass.", + "index": 17 + }, + { + "index": 18, + "reference_image": "handjob standing - side view/17.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 19, + "reference_image": "handjob standing - side view/0017.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 20, + "reference_image": "handjob standing - side view/0020.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 21, + "reference_image": "handjob standing - side view/46.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 22, + "reference_image": "handjob standing - side view/48.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "handjob standing - side view/54.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "handjob standing - side view/105.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_handjob_standing_side_profile", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass.", + "index": 24 + }, + { + "index": 25, + "reference_image": "handjob standing - side view/109.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 26, + "reference_image": "handjob standing - side view/113.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 27, + "reference_image": "handjob standing - side view/114.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 28, + "reference_image": "handjob standing - side view/137.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 29, + "reference_image": "handjob standing - side view/145.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "handjob standing - side view/171.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_handjob_standing_side_profile", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass.", + "index": 30 + }, + { + "reference_image": "handjob standing - side view/174.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_handjob_standing_side_profile", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass.", + "index": 31 + }, + { + "reference_image": "handjob standing - side view/175.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_handjob_standing_side_profile", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass.", + "index": 32 + }, + { + "index": 33, + "reference_image": "handjob standing - side view/188.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 34, + "reference_image": "handjob standing - side view/251.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 35, + "reference_image": "handjob standing - side view/260.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 36, + "reference_image": "handjob standing - side view/263.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 37, + "reference_image": "handjob standing - side view/273.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 38, + "reference_image": "handjob standing - side view/274.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 39, + "reference_image": "handjob standing - side view/278.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 40, + "reference_image": "handjob standing - side view/279.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 41, + "reference_image": "handjob standing - side view/288.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 42, + "reference_image": "handjob standing - side view/295.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 43, + "reference_image": "handjob standing - side view/296.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "handjob standing - side view/305.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_handjob_standing_side_profile", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass.", + "index": 44 + }, + { + "index": 45, + "reference_image": "handjob standing - side view/325.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 46, + "reference_image": "handjob standing - side view/327.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 47, + "reference_image": "handjob standing - side view/336.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 48, + "reference_image": "handjob standing - side view/348.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 49, + "reference_image": "handjob standing - side view/359.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 50, + "reference_image": "handjob standing - side view/369.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 51, + "reference_image": "handjob standing - side view/372.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 52, + "reference_image": "handjob standing - side view/372_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 53, + "reference_image": "handjob standing - side view/499.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 54, + "reference_image": "handjob standing - side view/505.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 55, + "reference_image": "handjob standing - side view/509.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 56, + "reference_image": "handjob standing - side view/529.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 57, + "reference_image": "handjob standing - side view/536.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "handjob standing - side view/549.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_handjob_standing_side_profile", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass.", + "index": 58 + }, + { + "index": 59, + "reference_image": "handjob standing - side view/601.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 60, + "reference_image": "handjob standing - side view/601_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 61, + "reference_image": "handjob standing - side view/602.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 62, + "reference_image": "handjob standing - side view/608.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 63, + "reference_image": "handjob standing - side view/614.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 40, + "image_count": 40, + "images": [ + { + "index": 1, + "reference_image": "handjob standing - side view/0001.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 2, + "reference_image": "handjob standing - side view/0001_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 3, + "reference_image": "handjob standing - side view/0002.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 4, + "reference_image": "handjob standing - side view/0003.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "handjob standing - side view/0003_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 6, + "reference_image": "handjob standing - side view/0003_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 7, + "reference_image": "handjob standing - side view/0005.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 8, + "reference_image": "handjob standing - side view/0005_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "handjob standing - side view/0008.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "handjob standing - side view/0010.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "handjob standing - side view/0010_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "handjob standing - side view/0010_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "handjob standing - side view/0011.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 14, + "reference_image": "handjob standing - side view/0013.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "handjob standing - side view/0015.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "handjob standing - side view/0015_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "handjob standing - side view/16.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_handjob_standing_side_profile", + "notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass." + }, + { + "index": 18, + "reference_image": "handjob standing - side view/17.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 19, + "reference_image": "handjob standing - side view/0017.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "handjob standing - side view/0020.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 21, + "reference_image": "handjob standing - side view/46.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "handjob standing - side view/48.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "handjob standing - side view/54.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "handjob standing - side view/105.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_handjob_standing_side_profile", + "notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass." + }, + { + "index": 25, + "reference_image": "handjob standing - side view/109.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "handjob standing - side view/113.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 27, + "reference_image": "handjob standing - side view/114.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "handjob standing - side view/137.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 29, + "reference_image": "handjob standing - side view/145.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 30, + "reference_image": "handjob standing - side view/171.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_handjob_standing_side_profile", + "notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass." + }, + { + "index": 31, + "reference_image": "handjob standing - side view/174.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_handjob_standing_side_profile", + "notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass." + }, + { + "index": 32, + "reference_image": "handjob standing - side view/175.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_handjob_standing_side_profile", + "notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass." + }, + { + "index": 33, + "reference_image": "handjob standing - side view/188.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 34, + "reference_image": "handjob standing - side view/251.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 35, + "reference_image": "handjob standing - side view/260.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 36, + "reference_image": "handjob standing - side view/263.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 37, + "reference_image": "handjob standing - side view/273.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 38, + "reference_image": "handjob standing - side view/274.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 39, + "reference_image": "handjob standing - side view/278.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 40, + "reference_image": "handjob standing - side view/279.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 2, + "html_anchor": "page-02", + "start_index": 41, + "end_index": 63, + "image_count": 23, + "images": [ + { + "index": 41, + "reference_image": "handjob standing - side view/288.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 42, + "reference_image": "handjob standing - side view/295.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 43, + "reference_image": "handjob standing - side view/296.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 44, + "reference_image": "handjob standing - side view/305.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_handjob_standing_side_profile", + "notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass." + }, + { + "index": 45, + "reference_image": "handjob standing - side view/325.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 46, + "reference_image": "handjob standing - side view/327.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 47, + "reference_image": "handjob standing - side view/336.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 48, + "reference_image": "handjob standing - side view/348.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 49, + "reference_image": "handjob standing - side view/359.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 50, + "reference_image": "handjob standing - side view/369.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 51, + "reference_image": "handjob standing - side view/372.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 52, + "reference_image": "handjob standing - side view/372_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 53, + "reference_image": "handjob standing - side view/499.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 54, + "reference_image": "handjob standing - side view/505.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 55, + "reference_image": "handjob standing - side view/509.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 56, + "reference_image": "handjob standing - side view/529.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 57, + "reference_image": "handjob standing - side view/536.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 58, + "reference_image": "handjob standing - side view/549.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_handjob_standing_side_profile", + "notes": "Residual-pool review kept the existing standing side-profile subset unchanged. The remaining source images mix kneeling, seated, close portrait, near-front, and oral-adjacent frames, so no additional references were promoted in this pass." + }, + { + "index": 59, + "reference_image": "handjob standing - side view/601.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 60, + "reference_image": "handjob standing - side view/601_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 61, + "reference_image": "handjob standing - side view/602.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 62, + "reference_image": "handjob standing - side view/608.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 63, + "reference_image": "handjob standing - side view/614.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/index.html b/ab_batches/normal_camera/review/index.html new file mode 100644 index 0000000..c7e3046 --- /dev/null +++ b/ab_batches/normal_camera/review/index.html @@ -0,0 +1,76 @@ + + + + +Normal Camera Review Index + + + +

Normal Camera Review Index

+

No-generation index for local review manifests and contact sheets.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Source folderCanonical labelImagesSelected refsResidualManifestContact sheet
reverse cowgirlreverse cowgirl24036204manifestcontact sheet
breasts exposedbreasts exposed16846122manifestcontact sheet
pussy spreadpussy spread1003664manifestcontact sheet
anal randomanal random992376manifestcontact sheet
couple kissingcouple kissing881276manifestcontact sheet
cowgirl - back view - 3-4 anglecowgirl - back view - 3-4 angle12915114manifestcontact sheet
cowgirl - side viewcowgirl - side view341519manifestcontact sheet
woman solo showing her hass - back viewwoman solo showing her ass - back view991188manifestcontact sheet
doggy on all four - back view - 3-4 angledoggy on all four - back view - 3-4 angle691554manifestcontact sheet
doggy on all four - side viewdoggy on all four - side view701456manifestcontact sheet
doggy all four - front viewdoggy all four - front view281513manifestcontact sheet
doggy - front view doggy - front view13121manifestcontact sheet
handjob standing - side viewhandjob standing - side view63756manifestcontact sheet
wandwand981manifestcontact sheet
breast sucking - side viewbreast sucking - side view431528manifestcontact sheet
fuck from front standing - side viewfuck from front standing - side view36333manifestcontact sheet
doggy - back view - 3-4 angledoggy - back view - 3-4 angle351520manifestcontact sheet
penis worshippenis worship492029manifestcontact sheet
fuck from behind standing - woman backside - side viewfuck from behind standing - woman backside - side view471730manifestcontact sheet
piledriverpiledriver27189manifestcontact sheet
blowjob - laying - front viewblowjob - laying - front view261511manifestcontact sheet
breast - touching - front viewbreast - touching - front view251510manifestcontact sheet
ballsucking - layingballsucking - laying220manifestcontact sheet
ballsucking - standingballsucking - standing12120manifestcontact sheet
face sittingface sitting440manifestcontact sheet
pussy licking - backv iewpussy licking - back view330manifestcontact sheet
removing pantsremoving pants330manifestcontact sheet
rimjobrimjob330manifestcontact sheet
footjobfootjob220manifestcontact sheet
reverse cowgirl - leg upreverse cowgirl - leg up220manifestcontact sheet
reverse cowgirl -pretzelreverse cowgirl - pretzel220manifestcontact sheet
fistfist110manifestcontact sheet
anal cowgirlanal cowgirl110manifestcontact sheet
anal doggy - side viewanal doggy - side view110manifestcontact sheet
anal fuck from behind laying - back view - 3-4 angleanal fuck from behind laying - back view - 3-4 angle110manifestcontact sheet
anal reverse congressanal reverse congress110manifestcontact sheet
anus lickiinganus licking110manifestcontact sheet
blowjob laying - back view - 3-4 angleblowjob laying - back view - 3-4 angle110manifestcontact sheet
doggy press - back sidedoggy press - back side110manifestcontact sheet
face sitting - front viewface sitting - front view110manifestcontact sheet
handjob - standing -low anglehandjob - standing - low angle110manifestcontact sheet
pussy licking leg up - back view - 3-4 anglepussy licking leg up - back view - 3-4 angle110manifestcontact sheet
pussy licking standing womanpussy licking standing woman110manifestcontact sheet
under deskunder desk110manifestcontact sheet
pretzelpretzel220manifestcontact sheet
woman ass exposedwoman ass exposed440manifestcontact sheet
reverse congress - front viewreverse congress - front view21156manifestcontact sheet
boobjobboobjob19136manifestcontact sheet
fingeringfingering15123manifestcontact sheet
69691082manifestcontact sheet
+ + diff --git a/ab_batches/normal_camera/review/index.md b/ab_batches/normal_camera/review/index.md new file mode 100644 index 0000000..09cbfad --- /dev/null +++ b/ab_batches/normal_camera/review/index.md @@ -0,0 +1,56 @@ +# Normal Camera Review Index + +No-generation index for local review manifests and contact sheets. + +| Source folder | Canonical label | Images | Selected refs | Residual | Manifest | Contact sheet | +| --- | --- | ---: | ---: | ---: | --- | --- | +| reverse cowgirl | reverse cowgirl | 240 | 36 | 204 | [manifest](reverse_cowgirl_review_manifest.json) | [contact sheet](reverse_cowgirl_contact_sheet.html) | +| breasts exposed | breasts exposed | 168 | 46 | 122 | [manifest](breasts_exposed_review_manifest.json) | [contact sheet](breasts_exposed_contact_sheet.html) | +| pussy spread | pussy spread | 100 | 36 | 64 | [manifest](pussy_spread_review_manifest.json) | [contact sheet](pussy_spread_contact_sheet.html) | +| anal random | anal random | 99 | 23 | 76 | [manifest](anal_random_review_manifest.json) | [contact sheet](anal_random_contact_sheet.html) | +| couple kissing | couple kissing | 88 | 12 | 76 | [manifest](couple_kissing_review_manifest.json) | [contact sheet](couple_kissing_contact_sheet.html) | +| cowgirl - back view - 3-4 angle | cowgirl - back view - 3-4 angle | 129 | 15 | 114 | [manifest](cowgirl_back_view_3_4_angle_review_manifest.json) | [contact sheet](cowgirl_back_view_3_4_angle_contact_sheet.html) | +| cowgirl - side view | cowgirl - side view | 34 | 15 | 19 | [manifest](cowgirl_side_view_review_manifest.json) | [contact sheet](cowgirl_side_view_contact_sheet.html) | +| woman solo showing her hass - back view | woman solo showing her ass - back view | 99 | 11 | 88 | [manifest](woman_solo_showing_her_hass_back_view_review_manifest.json) | [contact sheet](woman_solo_showing_her_hass_back_view_contact_sheet.html) | +| doggy on all four - back view - 3-4 angle | doggy on all four - back view - 3-4 angle | 69 | 15 | 54 | [manifest](doggy_on_all_four_back_view_3_4_angle_review_manifest.json) | [contact sheet](doggy_on_all_four_back_view_3_4_angle_contact_sheet.html) | +| doggy on all four - side view | doggy on all four - side view | 70 | 14 | 56 | [manifest](doggy_on_all_four_side_view_review_manifest.json) | [contact sheet](doggy_on_all_four_side_view_contact_sheet.html) | +| doggy all four - front view | doggy all four - front view | 28 | 15 | 13 | [manifest](doggy_all_four_front_view_review_manifest.json) | [contact sheet](doggy_all_four_front_view_contact_sheet.html) | +| doggy - front view | doggy - front view | 13 | 12 | 1 | [manifest](doggy_front_view_review_manifest.json) | [contact sheet](doggy_front_view_contact_sheet.html) | +| handjob standing - side view | handjob standing - side view | 63 | 7 | 56 | [manifest](handjob_standing_side_view_review_manifest.json) | [contact sheet](handjob_standing_side_view_contact_sheet.html) | +| wand | wand | 9 | 8 | 1 | [manifest](wand_review_manifest.json) | [contact sheet](wand_contact_sheet.html) | +| breast sucking - side view | breast sucking - side view | 43 | 15 | 28 | [manifest](breast_sucking_side_view_review_manifest.json) | [contact sheet](breast_sucking_side_view_contact_sheet.html) | +| fuck from front standing - side view | fuck from front standing - side view | 36 | 3 | 33 | [manifest](fuck_from_front_standing_side_view_review_manifest.json) | [contact sheet](fuck_from_front_standing_side_view_contact_sheet.html) | +| doggy - back view - 3-4 angle | doggy - back view - 3-4 angle | 35 | 15 | 20 | [manifest](doggy_back_view_3_4_angle_review_manifest.json) | [contact sheet](doggy_back_view_3_4_angle_contact_sheet.html) | +| penis worship | penis worship | 49 | 20 | 29 | [manifest](penis_worship_review_manifest.json) | [contact sheet](penis_worship_contact_sheet.html) | +| fuck from behind standing - woman backside - side view | fuck from behind standing - woman backside - side view | 47 | 17 | 30 | [manifest](fuck_from_behind_standing_woman_backside_side_view_review_manifest.json) | [contact sheet](fuck_from_behind_standing_woman_backside_side_view_contact_sheet.html) | +| piledriver | piledriver | 27 | 18 | 9 | [manifest](piledriver_review_manifest.json) | [contact sheet](piledriver_contact_sheet.html) | +| blowjob - laying - front view | blowjob - laying - front view | 26 | 15 | 11 | [manifest](blowjob_laying_front_view_review_manifest.json) | [contact sheet](blowjob_laying_front_view_contact_sheet.html) | +| breast - touching - front view | breast - touching - front view | 25 | 15 | 10 | [manifest](breast_touching_front_view_review_manifest.json) | [contact sheet](breast_touching_front_view_contact_sheet.html) | +| ballsucking - laying | ballsucking - laying | 2 | 2 | 0 | [manifest](ballsucking_laying_review_manifest.json) | [contact sheet](ballsucking_laying_contact_sheet.html) | +| ballsucking - standing | ballsucking - standing | 12 | 12 | 0 | [manifest](ballsucking_standing_review_manifest.json) | [contact sheet](ballsucking_standing_contact_sheet.html) | +| face sitting | face sitting | 4 | 4 | 0 | [manifest](face_sitting_review_manifest.json) | [contact sheet](face_sitting_contact_sheet.html) | +| pussy licking - backv iew | pussy licking - back view | 3 | 3 | 0 | [manifest](pussy_licking_backv_iew_review_manifest.json) | [contact sheet](pussy_licking_backv_iew_contact_sheet.html) | +| removing pants | removing pants | 3 | 3 | 0 | [manifest](removing_pants_review_manifest.json) | [contact sheet](removing_pants_contact_sheet.html) | +| rimjob | rimjob | 3 | 3 | 0 | [manifest](rimjob_review_manifest.json) | [contact sheet](rimjob_contact_sheet.html) | +| footjob | footjob | 2 | 2 | 0 | [manifest](footjob_review_manifest.json) | [contact sheet](footjob_contact_sheet.html) | +| reverse cowgirl - leg up | reverse cowgirl - leg up | 2 | 2 | 0 | [manifest](reverse_cowgirl_leg_up_review_manifest.json) | [contact sheet](reverse_cowgirl_leg_up_contact_sheet.html) | +| reverse cowgirl -pretzel | reverse cowgirl - pretzel | 2 | 2 | 0 | [manifest](reverse_cowgirl_pretzel_review_manifest.json) | [contact sheet](reverse_cowgirl_pretzel_contact_sheet.html) | +| fist | fist | 1 | 1 | 0 | [manifest](fist_review_manifest.json) | [contact sheet](fist_contact_sheet.html) | +| anal cowgirl | anal cowgirl | 1 | 1 | 0 | [manifest](anal_cowgirl_review_manifest.json) | [contact sheet](anal_cowgirl_contact_sheet.html) | +| anal doggy - side view | anal doggy - side view | 1 | 1 | 0 | [manifest](anal_doggy_side_view_review_manifest.json) | [contact sheet](anal_doggy_side_view_contact_sheet.html) | +| anal fuck from behind laying - back view - 3-4 angle | anal fuck from behind laying - back view - 3-4 angle | 1 | 1 | 0 | [manifest](anal_fuck_from_behind_laying_back_view_3_4_angle_review_manifest.json) | [contact sheet](anal_fuck_from_behind_laying_back_view_3_4_angle_contact_sheet.html) | +| anal reverse congress | anal reverse congress | 1 | 1 | 0 | [manifest](anal_reverse_congress_review_manifest.json) | [contact sheet](anal_reverse_congress_contact_sheet.html) | +| anus lickiing | anus licking | 1 | 1 | 0 | [manifest](anus_lickiing_review_manifest.json) | [contact sheet](anus_lickiing_contact_sheet.html) | +| blowjob laying - back view - 3-4 angle | blowjob laying - back view - 3-4 angle | 1 | 1 | 0 | [manifest](blowjob_laying_back_view_3_4_angle_review_manifest.json) | [contact sheet](blowjob_laying_back_view_3_4_angle_contact_sheet.html) | +| doggy press - back side | doggy press - back side | 1 | 1 | 0 | [manifest](doggy_press_back_side_review_manifest.json) | [contact sheet](doggy_press_back_side_contact_sheet.html) | +| face sitting - front view | face sitting - front view | 1 | 1 | 0 | [manifest](face_sitting_front_view_review_manifest.json) | [contact sheet](face_sitting_front_view_contact_sheet.html) | +| handjob - standing -low angle | handjob - standing - low angle | 1 | 1 | 0 | [manifest](handjob_standing_low_angle_review_manifest.json) | [contact sheet](handjob_standing_low_angle_contact_sheet.html) | +| pussy licking leg up - back view - 3-4 angle | pussy licking leg up - back view - 3-4 angle | 1 | 1 | 0 | [manifest](pussy_licking_leg_up_back_view_3_4_angle_review_manifest.json) | [contact sheet](pussy_licking_leg_up_back_view_3_4_angle_contact_sheet.html) | +| pussy licking standing woman | pussy licking standing woman | 1 | 1 | 0 | [manifest](pussy_licking_standing_woman_review_manifest.json) | [contact sheet](pussy_licking_standing_woman_contact_sheet.html) | +| under desk | under desk | 1 | 1 | 0 | [manifest](under_desk_review_manifest.json) | [contact sheet](under_desk_contact_sheet.html) | +| pretzel | pretzel | 2 | 2 | 0 | [manifest](pretzel_review_manifest.json) | [contact sheet](pretzel_contact_sheet.html) | +| woman ass exposed | woman ass exposed | 4 | 4 | 0 | [manifest](woman_ass_exposed_review_manifest.json) | [contact sheet](woman_ass_exposed_contact_sheet.html) | +| reverse congress - front view | reverse congress - front view | 21 | 15 | 6 | [manifest](reverse_congress_front_view_review_manifest.json) | [contact sheet](reverse_congress_front_view_contact_sheet.html) | +| boobjob | boobjob | 19 | 13 | 6 | [manifest](boobjob_review_manifest.json) | [contact sheet](boobjob_contact_sheet.html) | +| fingering | fingering | 15 | 12 | 3 | [manifest](fingering_review_manifest.json) | [contact sheet](fingering_contact_sheet.html) | +| 69 | 69 | 10 | 8 | 2 | [manifest](69_review_manifest.json) | [contact sheet](69_contact_sheet.html) | diff --git a/ab_batches/normal_camera/review/penis_worship_contact_sheet.html b/ab_batches/normal_camera/review/penis_worship_contact_sheet.html new file mode 100644 index 0000000..02bd274 --- /dev/null +++ b/ab_batches/normal_camera/review/penis_worship_contact_sheet.html @@ -0,0 +1,236 @@ + + + + +Normal Camera Review Contact Sheet: penis worship + + + +

Normal Camera Review Contact Sheet: penis worship

+

No-generation contact sheet. 49 JPGs from penis worship. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: penis worship.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-40

+
+
+penis worship/0001.jpg +
001 penis worship/0001.jpgbucket: reject_or_unclear / normal_penis_worship_foreground_close_reference_folder_pool
+
+
+penis worship/0001_2.jpg +
002 penis worship/0001_2.jpgbucket: unassigned
+
+
+penis worship/0002.jpg +
003 penis worship/0002.jpgbucket: unassigned
+
+
+penis worship/0002_2.jpg +
004 penis worship/0002_2.jpgbucket: side_view / normal_penis_worship_laying_partner_vertical_side_view
+
+
+penis worship/0003.jpg +
005 penis worship/0003.jpgbucket: side_view / normal_penis_worship_side_view
+
+
+penis worship/0003_2.jpg +
006 penis worship/0003_2.jpgbucket: unassigned
+
+
+penis worship/0004.jpg +
007 penis worship/0004.jpgbucket: side_view / normal_penis_worship_side_view
+
+
+penis worship/0004_2.jpg +
008 penis worship/0004_2.jpgbucket: unassigned
+
+
+penis worship/0004_3.jpg +
009 penis worship/0004_3.jpgbucket: unassigned
+
+
+penis worship/0006.jpg +
010 penis worship/0006.jpgbucket: side_view / normal_penis_worship_laying_partner_vertical_side_view
+
+
+penis worship/0007.jpg +
011 penis worship/0007.jpgbucket: unassigned
+
+
+penis worship/0008.jpg +
012 penis worship/0008.jpgbucket: unassigned
+
+
+penis worship/0008_2.jpg +
013 penis worship/0008_2.jpgbucket: side_view / normal_penis_worship_side_view
+
+
+penis worship/0010.jpg +
014 penis worship/0010.jpgbucket: unassigned
+
+
+penis worship/0011.jpg +
015 penis worship/0011.jpgbucket: side_view / normal_penis_worship_laying_partner_vertical_side_view
+
+
+penis worship/0012.jpg +
016 penis worship/0012.jpgbucket: unassigned
+
+
+penis worship/0015.jpg +
017 penis worship/0015.jpgbucket: unassigned
+
+
+penis worship/0016.jpg +
018 penis worship/0016.jpgbucket: side_view / normal_penis_worship_side_view
+
+
+penis worship/0017.jpg +
019 penis worship/0017.jpgbucket: unassigned
+
+
+penis worship/0018.jpg +
020 penis worship/0018.jpgbucket: unassigned
+
+
+penis worship/0018_2.jpg +
021 penis worship/0018_2.jpgbucket: unassigned
+
+
+penis worship/0020.jpg +
022 penis worship/0020.jpgbucket: unassigned
+
+
+penis worship/499.jpg +
023 penis worship/499.jpgbucket: unassigned
+
+
+penis worship/505.jpg +
024 penis worship/505.jpgbucket: side_view / normal_penis_worship_side_view
+
+
+penis worship/510.jpg +
025 penis worship/510.jpgbucket: top_or_low_special / normal_penis_worship_top_view
+
+
+penis worship/517.jpg +
026 penis worship/517.jpgbucket: top_or_low_special / normal_penis_worship_top_view
+
+
+penis worship/517_2.jpg +
027 penis worship/517_2.jpgbucket: unassigned
+
+
+penis worship/519.jpg +
028 penis worship/519.jpgbucket: top_or_low_special / normal_penis_worship_top_view
+
+
+penis worship/519_2.jpg +
029 penis worship/519_2.jpgbucket: unassigned
+
+
+penis worship/520.jpg +
030 penis worship/520.jpgbucket: top_or_low_special / normal_penis_worship_top_view
+
+
+penis worship/522.jpg +
031 penis worship/522.jpgbucket: unassigned
+
+
+penis worship/565.jpg +
032 penis worship/565.jpgbucket: unassigned
+
+
+penis worship/566.jpg +
033 penis worship/566.jpgbucket: side_view / normal_penis_worship_side_view
+
+
+penis worship/566_2.jpg +
034 penis worship/566_2.jpgbucket: side_view / normal_penis_worship_side_view
+
+
+penis worship/590.jpg +
035 penis worship/590.jpgbucket: unassigned
+
+
+penis worship/590_2.jpg +
036 penis worship/590_2.jpgbucket: unassigned
+
+
+penis worship/592.jpg +
037 penis worship/592.jpgbucket: unassigned
+
+
+penis worship/592_2.jpg +
038 penis worship/592_2.jpgbucket: unassigned
+
+
+penis worship/598.jpg +
039 penis worship/598.jpgbucket: unassigned
+
+
+penis worship/603.jpg +
040 penis worship/603.jpgbucket: unassigned
+
+
+

Page 2: 41-49

+
+
+penis worship/603_2.jpg +
041 penis worship/603_2.jpgbucket: unassigned
+
+
+penis worship/603_3.jpg +
042 penis worship/603_3.jpgbucket: unassigned
+
+
+penis worship/603_4.jpg +
043 penis worship/603_4.jpgbucket: top_or_low_special / normal_penis_worship_top_view
+
+
+penis worship/604.jpg +
044 penis worship/604.jpgbucket: unassigned
+
+
+penis worship/607.jpg +
045 penis worship/607.jpgbucket: unassigned
+
+
+penis worship/607_2.jpg +
046 penis worship/607_2.jpgbucket: top_or_low_special / normal_penis_worship_top_view
+
+
+penis worship/608.jpg +
047 penis worship/608.jpgbucket: side_view / normal_penis_worship_laying_partner_vertical_side_view
+
+
+penis worship/609.jpg +
048 penis worship/609.jpgbucket: side_view / normal_penis_worship_laying_partner_vertical_side_view
+
+
+penis worship/618.jpg +
049 penis worship/618.jpgbucket: side_view / normal_penis_worship_side_view
+
+
+ + diff --git a/ab_batches/normal_camera/review/penis_worship_review_manifest.json b/ab_batches/normal_camera/review/penis_worship_review_manifest.json new file mode 100644 index 0000000..595da99 --- /dev/null +++ b/ab_batches/normal_camera/review/penis_worship_review_manifest.json @@ -0,0 +1,975 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "penis worship", + "folder_alias": { + "exact_source_folder": "penis worship", + "canonical_folder": "penis worship", + "canonical_key": "penis_worship", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 49, + "action_family": "oral_other", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_penis_worship_foreground_close_reference_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "penis worship/0001.jpg" + ], + "evidence_notes": "Residual-pool review kept the existing foreground-close source-pool anchor unchanged. The remaining images are foreground-heavy and drift through front or near-POV framing, so no prompt-ready expansion was promoted in this pass." + }, + { + "variant_key": "normal_penis_worship_top_view", + "review_bucket": "top_or_low_special", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "penis worship/510.jpg", + "penis worship/517.jpg", + "penis worship/519.jpg", + "penis worship/520.jpg", + "penis worship/603_4.jpg", + "penis worship/607_2.jpg" + ], + "evidence_notes": "Residual-pool review kept the existing user-selected top-view anchors unchanged. The folder still needs cleaner repeated samples before this orientation can become a pre-A/B route." + }, + { + "variant_key": "normal_penis_worship_side_view", + "review_bucket": "side_view", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "penis worship/0003.jpg", + "penis worship/0004.jpg", + "penis worship/0008_2.jpg", + "penis worship/0016.jpg", + "penis worship/505.jpg", + "penis worship/566.jpg", + "penis worship/566_2.jpg", + "penis worship/618.jpg" + ], + "evidence_notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass." + }, + { + "variant_key": "normal_penis_worship_laying_partner_vertical_side_view", + "review_bucket": "side_view", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "penis worship/0002_2.jpg", + "penis worship/0006.jpg", + "penis worship/0011.jpg", + "penis worship/608.jpg", + "penis worship/609.jpg" + ], + "evidence_notes": "Residual-pool review kept the existing laying-partner vertical side-view anchors unchanged. The remaining frames stay too mixed for promotion." + } + ], + "review_items": [ + { + "reference_image": "penis worship/0001.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_penis_worship_foreground_close_reference_folder_pool", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing foreground-close source-pool anchor unchanged. The remaining images are foreground-heavy and drift through front or near-POV framing, so no prompt-ready expansion was promoted in this pass.", + "index": 1 + }, + { + "index": 2, + "reference_image": "penis worship/0001_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 3, + "reference_image": "penis worship/0002.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "penis worship/0002_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_penis_worship_laying_partner_vertical_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing laying-partner vertical side-view anchors unchanged. The remaining frames stay too mixed for promotion.", + "index": 4 + }, + { + "reference_image": "penis worship/0003.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_penis_worship_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass.", + "index": 5 + }, + { + "index": 6, + "reference_image": "penis worship/0003_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "penis worship/0004.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_penis_worship_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass.", + "index": 7 + }, + { + "index": 8, + "reference_image": "penis worship/0004_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 9, + "reference_image": "penis worship/0004_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "penis worship/0006.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_penis_worship_laying_partner_vertical_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing laying-partner vertical side-view anchors unchanged. The remaining frames stay too mixed for promotion.", + "index": 10 + }, + { + "index": 11, + "reference_image": "penis worship/0007.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 12, + "reference_image": "penis worship/0008.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "penis worship/0008_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_penis_worship_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass.", + "index": 13 + }, + { + "index": 14, + "reference_image": "penis worship/0010.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "penis worship/0011.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_penis_worship_laying_partner_vertical_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing laying-partner vertical side-view anchors unchanged. The remaining frames stay too mixed for promotion.", + "index": 15 + }, + { + "index": 16, + "reference_image": "penis worship/0012.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 17, + "reference_image": "penis worship/0015.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "penis worship/0016.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_penis_worship_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass.", + "index": 18 + }, + { + "index": 19, + "reference_image": "penis worship/0017.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 20, + "reference_image": "penis worship/0018.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 21, + "reference_image": "penis worship/0018_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 22, + "reference_image": "penis worship/0020.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "penis worship/499.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "penis worship/505.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_penis_worship_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass.", + "index": 24 + }, + { + "reference_image": "penis worship/510.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_penis_worship_top_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected top-view anchors unchanged. The folder still needs cleaner repeated samples before this orientation can become a pre-A/B route.", + "index": 25 + }, + { + "reference_image": "penis worship/517.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_penis_worship_top_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected top-view anchors unchanged. The folder still needs cleaner repeated samples before this orientation can become a pre-A/B route.", + "index": 26 + }, + { + "index": 27, + "reference_image": "penis worship/517_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "penis worship/519.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_penis_worship_top_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected top-view anchors unchanged. The folder still needs cleaner repeated samples before this orientation can become a pre-A/B route.", + "index": 28 + }, + { + "index": 29, + "reference_image": "penis worship/519_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "penis worship/520.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_penis_worship_top_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected top-view anchors unchanged. The folder still needs cleaner repeated samples before this orientation can become a pre-A/B route.", + "index": 30 + }, + { + "index": 31, + "reference_image": "penis worship/522.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 32, + "reference_image": "penis worship/565.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "penis worship/566.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_penis_worship_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass.", + "index": 33 + }, + { + "reference_image": "penis worship/566_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_penis_worship_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass.", + "index": 34 + }, + { + "index": 35, + "reference_image": "penis worship/590.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 36, + "reference_image": "penis worship/590_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 37, + "reference_image": "penis worship/592.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 38, + "reference_image": "penis worship/592_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 39, + "reference_image": "penis worship/598.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 40, + "reference_image": "penis worship/603.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 41, + "reference_image": "penis worship/603_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 42, + "reference_image": "penis worship/603_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "penis worship/603_4.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_penis_worship_top_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected top-view anchors unchanged. The folder still needs cleaner repeated samples before this orientation can become a pre-A/B route.", + "index": 43 + }, + { + "index": 44, + "reference_image": "penis worship/604.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 45, + "reference_image": "penis worship/607.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "penis worship/607_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_penis_worship_top_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected top-view anchors unchanged. The folder still needs cleaner repeated samples before this orientation can become a pre-A/B route.", + "index": 46 + }, + { + "reference_image": "penis worship/608.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_penis_worship_laying_partner_vertical_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing laying-partner vertical side-view anchors unchanged. The remaining frames stay too mixed for promotion.", + "index": 47 + }, + { + "reference_image": "penis worship/609.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_penis_worship_laying_partner_vertical_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing laying-partner vertical side-view anchors unchanged. The remaining frames stay too mixed for promotion.", + "index": 48 + }, + { + "reference_image": "penis worship/618.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_penis_worship_side_view", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass.", + "index": 49 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 40, + "image_count": 40, + "images": [ + { + "index": 1, + "reference_image": "penis worship/0001.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_foreground_close_reference_folder_pool", + "notes": "Residual-pool review kept the existing foreground-close source-pool anchor unchanged. The remaining images are foreground-heavy and drift through front or near-POV framing, so no prompt-ready expansion was promoted in this pass." + }, + { + "index": 2, + "reference_image": "penis worship/0001_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 3, + "reference_image": "penis worship/0002.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 4, + "reference_image": "penis worship/0002_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_laying_partner_vertical_side_view", + "notes": "Residual-pool review kept the existing laying-partner vertical side-view anchors unchanged. The remaining frames stay too mixed for promotion." + }, + { + "index": 5, + "reference_image": "penis worship/0003.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_side_view", + "notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass." + }, + { + "index": 6, + "reference_image": "penis worship/0003_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 7, + "reference_image": "penis worship/0004.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_side_view", + "notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass." + }, + { + "index": 8, + "reference_image": "penis worship/0004_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "penis worship/0004_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "penis worship/0006.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_laying_partner_vertical_side_view", + "notes": "Residual-pool review kept the existing laying-partner vertical side-view anchors unchanged. The remaining frames stay too mixed for promotion." + }, + { + "index": 11, + "reference_image": "penis worship/0007.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "penis worship/0008.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "penis worship/0008_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_side_view", + "notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass." + }, + { + "index": 14, + "reference_image": "penis worship/0010.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "penis worship/0011.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_laying_partner_vertical_side_view", + "notes": "Residual-pool review kept the existing laying-partner vertical side-view anchors unchanged. The remaining frames stay too mixed for promotion." + }, + { + "index": 16, + "reference_image": "penis worship/0012.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "penis worship/0015.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 18, + "reference_image": "penis worship/0016.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_side_view", + "notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass." + }, + { + "index": 19, + "reference_image": "penis worship/0017.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "penis worship/0018.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 21, + "reference_image": "penis worship/0018_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "penis worship/0020.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "penis worship/499.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "penis worship/505.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_side_view", + "notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass." + }, + { + "index": 25, + "reference_image": "penis worship/510.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_top_view", + "notes": "Residual-pool review kept the existing user-selected top-view anchors unchanged. The folder still needs cleaner repeated samples before this orientation can become a pre-A/B route." + }, + { + "index": 26, + "reference_image": "penis worship/517.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_top_view", + "notes": "Residual-pool review kept the existing user-selected top-view anchors unchanged. The folder still needs cleaner repeated samples before this orientation can become a pre-A/B route." + }, + { + "index": 27, + "reference_image": "penis worship/517_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "penis worship/519.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_top_view", + "notes": "Residual-pool review kept the existing user-selected top-view anchors unchanged. The folder still needs cleaner repeated samples before this orientation can become a pre-A/B route." + }, + { + "index": 29, + "reference_image": "penis worship/519_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 30, + "reference_image": "penis worship/520.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_top_view", + "notes": "Residual-pool review kept the existing user-selected top-view anchors unchanged. The folder still needs cleaner repeated samples before this orientation can become a pre-A/B route." + }, + { + "index": 31, + "reference_image": "penis worship/522.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 32, + "reference_image": "penis worship/565.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "penis worship/566.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_side_view", + "notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass." + }, + { + "index": 34, + "reference_image": "penis worship/566_2.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_side_view", + "notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass." + }, + { + "index": 35, + "reference_image": "penis worship/590.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 36, + "reference_image": "penis worship/590_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 37, + "reference_image": "penis worship/592.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 38, + "reference_image": "penis worship/592_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 39, + "reference_image": "penis worship/598.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 40, + "reference_image": "penis worship/603.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 2, + "html_anchor": "page-02", + "start_index": 41, + "end_index": 49, + "image_count": 9, + "images": [ + { + "index": 41, + "reference_image": "penis worship/603_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 42, + "reference_image": "penis worship/603_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 43, + "reference_image": "penis worship/603_4.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_top_view", + "notes": "Residual-pool review kept the existing user-selected top-view anchors unchanged. The folder still needs cleaner repeated samples before this orientation can become a pre-A/B route." + }, + { + "index": 44, + "reference_image": "penis worship/604.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 45, + "reference_image": "penis worship/607.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 46, + "reference_image": "penis worship/607_2.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_top_view", + "notes": "Residual-pool review kept the existing user-selected top-view anchors unchanged. The folder still needs cleaner repeated samples before this orientation can become a pre-A/B route." + }, + { + "index": 47, + "reference_image": "penis worship/608.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_laying_partner_vertical_side_view", + "notes": "Residual-pool review kept the existing laying-partner vertical side-view anchors unchanged. The remaining frames stay too mixed for promotion." + }, + { + "index": 48, + "reference_image": "penis worship/609.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_laying_partner_vertical_side_view", + "notes": "Residual-pool review kept the existing laying-partner vertical side-view anchors unchanged. The remaining frames stay too mixed for promotion." + }, + { + "index": 49, + "reference_image": "penis worship/618.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_penis_worship_side_view", + "notes": "Residual-pool review kept the existing user-selected side-view anchors unchanged. The residual folder does not add a cleaner repeated lateral camera subset in this pass." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/piledriver_contact_sheet.html b/ab_batches/normal_camera/review/piledriver_contact_sheet.html new file mode 100644 index 0000000..75a1385 --- /dev/null +++ b/ab_batches/normal_camera/review/piledriver_contact_sheet.html @@ -0,0 +1,145 @@ + + + + +Normal Camera Review Contact Sheet: piledriver + + + +

Normal Camera Review Contact Sheet: piledriver

+

No-generation contact sheet. 27 JPGs from piledriver. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: piledriver.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-27

+
+
+piledriver/0001.jpg +
001 piledriver/0001.jpgbucket: reject_or_unclear / normal_piledriver_mixed_camera_folder_pool
+
+
+piledriver/0002.jpg +
002 piledriver/0002.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/0004.jpg +
003 piledriver/0004.jpgbucket: unassigned
+
+
+piledriver/0004_2.jpg +
004 piledriver/0004_2.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/0005.jpg +
005 piledriver/0005.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/0006.jpg +
006 piledriver/0006.jpgbucket: unassigned
+
+
+piledriver/0006_2.jpg +
007 piledriver/0006_2.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/0007.jpg +
008 piledriver/0007.jpgbucket: unassigned
+
+
+piledriver/0007_2.jpg +
009 piledriver/0007_2.jpgbucket: unassigned
+
+
+piledriver/0009.jpg +
010 piledriver/0009.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/0009_2.jpg +
011 piledriver/0009_2.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/0011.jpg +
012 piledriver/0011.jpgbucket: unassigned
+
+
+piledriver/0012.jpg +
013 piledriver/0012.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/0012_2.jpg +
014 piledriver/0012_2.jpgbucket: reject_or_unclear / normal_piledriver_mixed_camera_folder_pool
+
+
+piledriver/0013.jpg +
015 piledriver/0013.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/0021.jpg +
016 piledriver/0021.jpgbucket: unassigned
+
+
+piledriver/267.jpg +
017 piledriver/267.jpgbucket: unassigned
+
+
+piledriver/282.jpg +
018 piledriver/282.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/317.jpg +
019 piledriver/317.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/317_2.jpg +
020 piledriver/317_2.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/317_3.jpg +
021 piledriver/317_3.jpgbucket: unassigned
+
+
+piledriver/318.jpg +
022 piledriver/318.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/319.jpg +
023 piledriver/319.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/494.jpg +
024 piledriver/494.jpgbucket: unassigned
+
+
+piledriver/494_2.jpg +
025 piledriver/494_2.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/538.jpg +
026 piledriver/538.jpgbucket: top_or_low_special / normal_piledriver_high_front_down_view
+
+
+piledriver/617.jpg +
027 piledriver/617.jpgbucket: reject_or_unclear / normal_piledriver_mixed_camera_folder_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/piledriver_review_manifest.json b/ab_batches/normal_camera/review/piledriver_review_manifest.json new file mode 100644 index 0000000..448d26f --- /dev/null +++ b/ab_batches/normal_camera/review/piledriver_review_manifest.json @@ -0,0 +1,552 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "piledriver", + "folder_alias": { + "exact_source_folder": "piledriver", + "canonical_folder": "piledriver", + "canonical_key": "piledriver", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 27, + "action_family": "piledriver_or_pretzel", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_piledriver_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "piledriver/0001.jpg", + "piledriver/0012_2.jpg", + "piledriver/617.jpg" + ], + "evidence_notes": "Residual-pool review preserved the existing mixed source-pool anchor. The full folder remains too broad for one camera route because it mixes tight top crops, side drifts, and selected high/front-down examples." + }, + { + "variant_key": "normal_piledriver_high_front_down_view", + "review_bucket": "top_or_low_special", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "piledriver/0002.jpg", + "piledriver/0004_2.jpg", + "piledriver/0005.jpg", + "piledriver/0006_2.jpg", + "piledriver/0009.jpg", + "piledriver/0009_2.jpg", + "piledriver/0012.jpg", + "piledriver/0013.jpg", + "piledriver/282.jpg", + "piledriver/317.jpg", + "piledriver/317_2.jpg", + "piledriver/318.jpg", + "piledriver/319.jpg", + "piledriver/494_2.jpg", + "piledriver/538.jpg" + ], + "evidence_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + } + ], + "review_items": [ + { + "reference_image": "piledriver/0001.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_piledriver_mixed_camera_folder_pool", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review preserved the existing mixed source-pool anchor. The full folder remains too broad for one camera route because it mixes tight top crops, side drifts, and selected high/front-down examples.", + "index": 1 + }, + { + "reference_image": "piledriver/0002.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 2 + }, + { + "index": 3, + "reference_image": "piledriver/0004.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "piledriver/0004_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 4 + }, + { + "reference_image": "piledriver/0005.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 5 + }, + { + "index": 6, + "reference_image": "piledriver/0006.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "piledriver/0006_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 7 + }, + { + "index": 8, + "reference_image": "piledriver/0007.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 9, + "reference_image": "piledriver/0007_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "piledriver/0009.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 10 + }, + { + "reference_image": "piledriver/0009_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 11 + }, + { + "index": 12, + "reference_image": "piledriver/0011.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "piledriver/0012.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 13 + }, + { + "reference_image": "piledriver/0012_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_piledriver_mixed_camera_folder_pool", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review preserved the existing mixed source-pool anchor. The full folder remains too broad for one camera route because it mixes tight top crops, side drifts, and selected high/front-down examples.", + "index": 14 + }, + { + "reference_image": "piledriver/0013.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 15 + }, + { + "index": 16, + "reference_image": "piledriver/0021.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 17, + "reference_image": "piledriver/267.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "piledriver/282.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 18 + }, + { + "reference_image": "piledriver/317.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 19 + }, + { + "reference_image": "piledriver/317_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 20 + }, + { + "index": 21, + "reference_image": "piledriver/317_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "piledriver/318.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 22 + }, + { + "reference_image": "piledriver/319.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 23 + }, + { + "index": 24, + "reference_image": "piledriver/494.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "piledriver/494_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 25 + }, + { + "reference_image": "piledriver/538.jpg", + "review_decision": "selected_reference", + "review_bucket": "top_or_low_special", + "variant_key": "normal_piledriver_high_front_down_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route.", + "index": 26 + }, + { + "reference_image": "piledriver/617.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_piledriver_mixed_camera_folder_pool", + "selection_date": "2026-06-29", + "review_notes": "Residual-pool review preserved the existing mixed source-pool anchor. The full folder remains too broad for one camera route because it mixes tight top crops, side drifts, and selected high/front-down examples.", + "index": 27 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 27, + "image_count": 27, + "images": [ + { + "index": 1, + "reference_image": "piledriver/0001.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_mixed_camera_folder_pool", + "notes": "Residual-pool review preserved the existing mixed source-pool anchor. The full folder remains too broad for one camera route because it mixes tight top crops, side drifts, and selected high/front-down examples." + }, + { + "index": 2, + "reference_image": "piledriver/0002.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 3, + "reference_image": "piledriver/0004.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 4, + "reference_image": "piledriver/0004_2.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 5, + "reference_image": "piledriver/0005.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 6, + "reference_image": "piledriver/0006.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 7, + "reference_image": "piledriver/0006_2.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 8, + "reference_image": "piledriver/0007.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "piledriver/0007_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "piledriver/0009.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 11, + "reference_image": "piledriver/0009_2.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 12, + "reference_image": "piledriver/0011.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "piledriver/0012.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 14, + "reference_image": "piledriver/0012_2.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_mixed_camera_folder_pool", + "notes": "Residual-pool review preserved the existing mixed source-pool anchor. The full folder remains too broad for one camera route because it mixes tight top crops, side drifts, and selected high/front-down examples." + }, + { + "index": 15, + "reference_image": "piledriver/0013.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 16, + "reference_image": "piledriver/0021.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "piledriver/267.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 18, + "reference_image": "piledriver/282.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 19, + "reference_image": "piledriver/317.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 20, + "reference_image": "piledriver/317_2.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 21, + "reference_image": "piledriver/317_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "piledriver/318.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 23, + "reference_image": "piledriver/319.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 24, + "reference_image": "piledriver/494.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "piledriver/494_2.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 26, + "reference_image": "piledriver/538.jpg", + "review_bucket": "top_or_low_special", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_high_front_down_view", + "notes": "Residual-pool review found a repeated high/front-down piledriver camera family where the folded body remains readable below the partner. Tight top crops, side drifts, and mixed examples remain outside this route." + }, + { + "index": 27, + "reference_image": "piledriver/617.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_piledriver_mixed_camera_folder_pool", + "notes": "Residual-pool review preserved the existing mixed source-pool anchor. The full folder remains too broad for one camera route because it mixes tight top crops, side drifts, and selected high/front-down examples." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/pretzel_contact_sheet.html b/ab_batches/normal_camera/review/pretzel_contact_sheet.html new file mode 100644 index 0000000..1cc3fbc --- /dev/null +++ b/ab_batches/normal_camera/review/pretzel_contact_sheet.html @@ -0,0 +1,45 @@ + + + + +Normal Camera Review Contact Sheet: pretzel + + + +

Normal Camera Review Contact Sheet: pretzel

+

No-generation contact sheet. 2 JPGs from pretzel. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: pretzel.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-2

+
+
+pretzel/0001.jpg +
001 pretzel/0001.jpgbucket: reject_or_unclear / normal_pretzel_mixed_camera_folder_pool
+
+
+pretzel/0006.jpg +
002 pretzel/0006.jpgbucket: reject_or_unclear / normal_pretzel_mixed_camera_folder_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/pretzel_review_manifest.json b/ab_batches/normal_camera/review/pretzel_review_manifest.json new file mode 100644 index 0000000..99833ec --- /dev/null +++ b/ab_batches/normal_camera/review/pretzel_review_manifest.json @@ -0,0 +1,93 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "pretzel", + "folder_alias": { + "exact_source_folder": "pretzel", + "canonical_folder": "pretzel", + "canonical_key": "pretzel", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 2, + "action_family": "piledriver_or_pretzel", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_pretzel_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "pretzel/0001.jpg", + "pretzel/0006.jpg" + ], + "evidence_notes": "Contact-sheet review records the existing two-sample pretzel mixed-camera source pool as needs_samples. The folder is fully represented but too thin for a selected pre-A/B route." + } + ], + "review_items": [ + { + "reference_image": "pretzel/0001.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_pretzel_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review records the existing two-sample pretzel mixed-camera source pool as needs_samples. The folder is fully represented but too thin for a selected pre-A/B route.", + "index": 1 + }, + { + "reference_image": "pretzel/0006.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_pretzel_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review records the existing two-sample pretzel mixed-camera source pool as needs_samples. The folder is fully represented but too thin for a selected pre-A/B route.", + "index": 2 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 2, + "image_count": 2, + "images": [ + { + "index": 1, + "reference_image": "pretzel/0001.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_pretzel_mixed_camera_folder_pool", + "notes": "Contact-sheet review records the existing two-sample pretzel mixed-camera source pool as needs_samples. The folder is fully represented but too thin for a selected pre-A/B route." + }, + { + "index": 2, + "reference_image": "pretzel/0006.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_pretzel_mixed_camera_folder_pool", + "notes": "Contact-sheet review records the existing two-sample pretzel mixed-camera source pool as needs_samples. The folder is fully represented but too thin for a selected pre-A/B route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/pussy_licking_backv_iew_contact_sheet.html b/ab_batches/normal_camera/review/pussy_licking_backv_iew_contact_sheet.html new file mode 100644 index 0000000..be22225 --- /dev/null +++ b/ab_batches/normal_camera/review/pussy_licking_backv_iew_contact_sheet.html @@ -0,0 +1,49 @@ + + + + +Normal Camera Review Contact Sheet: pussy licking - backv iew + + + +

Normal Camera Review Contact Sheet: pussy licking - backv iew

+

No-generation contact sheet. 3 JPGs from pussy licking - backv iew. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: pussy licking - back view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-3

+
+
+pussy licking - backv iew/220.jpg +
001 pussy licking - backv iew/220.jpgbucket: reject_or_unclear / normal_pussy_licking_backview_mixed_camera_folder_pool
+
+
+pussy licking - backv iew/567.jpg +
002 pussy licking - backv iew/567.jpgbucket: reject_or_unclear / normal_pussy_licking_backview_mixed_camera_folder_pool
+
+
+pussy licking - backv iew/614.jpg +
003 pussy licking - backv iew/614.jpgbucket: reject_or_unclear / normal_pussy_licking_backview_mixed_camera_folder_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/pussy_licking_backv_iew_review_manifest.json b/ab_batches/normal_camera/review/pussy_licking_backv_iew_review_manifest.json new file mode 100644 index 0000000..dbe1e50 --- /dev/null +++ b/ab_batches/normal_camera/review/pussy_licking_backv_iew_review_manifest.json @@ -0,0 +1,111 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "pussy licking - backv iew", + "folder_alias": { + "exact_source_folder": "pussy licking - backv iew", + "canonical_folder": "pussy licking - back view", + "canonical_key": "pussy_licking_back_view", + "alias_applied": true, + "alias_reason": "Folder-name typo normalized for review metadata while preserving exact source path." + }, + "image_count": 3, + "action_family": "oral_other", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_pussy_licking_backview_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "pussy licking - backv iew/220.jpg", + "pussy licking - backv iew/567.jpg", + "pussy licking - backv iew/614.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The folder label says back view, but the reviewed images read as elevated front or high-oblique third-person oral-contact references; the three-image set is too thin for a selected pre-A/B route." + } + ], + "review_items": [ + { + "reference_image": "pussy licking - backv iew/220.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_pussy_licking_backview_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The folder label says back view, but the reviewed images read as elevated front or high-oblique third-person oral-contact references; the three-image set is too thin for a selected pre-A/B route.", + "index": 1 + }, + { + "reference_image": "pussy licking - backv iew/567.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_pussy_licking_backview_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The folder label says back view, but the reviewed images read as elevated front or high-oblique third-person oral-contact references; the three-image set is too thin for a selected pre-A/B route.", + "index": 2 + }, + { + "reference_image": "pussy licking - backv iew/614.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_pussy_licking_backview_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The folder label says back view, but the reviewed images read as elevated front or high-oblique third-person oral-contact references; the three-image set is too thin for a selected pre-A/B route.", + "index": 3 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 3, + "image_count": 3, + "images": [ + { + "index": 1, + "reference_image": "pussy licking - backv iew/220.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_pussy_licking_backview_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The folder label says back view, but the reviewed images read as elevated front or high-oblique third-person oral-contact references; the three-image set is too thin for a selected pre-A/B route." + }, + { + "index": 2, + "reference_image": "pussy licking - backv iew/567.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_pussy_licking_backview_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The folder label says back view, but the reviewed images read as elevated front or high-oblique third-person oral-contact references; the three-image set is too thin for a selected pre-A/B route." + }, + { + "index": 3, + "reference_image": "pussy licking - backv iew/614.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_pussy_licking_backview_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The folder label says back view, but the reviewed images read as elevated front or high-oblique third-person oral-contact references; the three-image set is too thin for a selected pre-A/B route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/pussy_licking_leg_up_back_view_3_4_angle_contact_sheet.html b/ab_batches/normal_camera/review/pussy_licking_leg_up_back_view_3_4_angle_contact_sheet.html new file mode 100644 index 0000000..adac796 --- /dev/null +++ b/ab_batches/normal_camera/review/pussy_licking_leg_up_back_view_3_4_angle_contact_sheet.html @@ -0,0 +1,41 @@ + + + + +Normal Camera Review Contact Sheet: pussy licking leg up - back view - 3-4 angle + + + +

Normal Camera Review Contact Sheet: pussy licking leg up - back view - 3-4 angle

+

No-generation contact sheet. 1 JPGs from pussy licking leg up - back view - 3-4 angle. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: pussy licking leg up - back view - 3-4 angle.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-1

+
+
+pussy licking leg up - back view - 3-4 angle/0009.jpg +
001 pussy licking leg up - back view - 3-4 angle/0009.jpgbucket: reject_or_unclear / normal_pussy_licking_leg_up_back_three_quarter_single_reference_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/pussy_licking_leg_up_back_view_3_4_angle_review_manifest.json b/ab_batches/normal_camera/review/pussy_licking_leg_up_back_view_3_4_angle_review_manifest.json new file mode 100644 index 0000000..35f0801 --- /dev/null +++ b/ab_batches/normal_camera/review/pussy_licking_leg_up_back_view_3_4_angle_review_manifest.json @@ -0,0 +1,75 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "pussy licking leg up - back view - 3-4 angle", + "folder_alias": { + "exact_source_folder": "pussy licking leg up - back view - 3-4 angle", + "canonical_folder": "pussy licking leg up - back view - 3-4 angle", + "canonical_key": "pussy_licking_leg_up_back_view_3_4_angle", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 1, + "action_family": "oral_other", + "source_camera_view": "back_three_quarter", + "source_catalog_status": "thin_sample", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_pussy_licking_leg_up_back_three_quarter_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "pussy licking leg up - back view - 3-4 angle/0009.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the one leg-up rear-offset oral-contact sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ], + "review_items": [ + { + "reference_image": "pussy licking leg up - back view - 3-4 angle/0009.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_pussy_licking_leg_up_back_three_quarter_single_reference_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the one leg-up rear-offset oral-contact sample as coverage evidence only. A single image cannot define a stable normal-camera route.", + "index": 1 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 1, + "image_count": 1, + "images": [ + { + "index": 1, + "reference_image": "pussy licking leg up - back view - 3-4 angle/0009.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_pussy_licking_leg_up_back_three_quarter_single_reference_pool", + "notes": "Contact-sheet review preserved the one leg-up rear-offset oral-contact sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/pussy_licking_standing_woman_contact_sheet.html b/ab_batches/normal_camera/review/pussy_licking_standing_woman_contact_sheet.html new file mode 100644 index 0000000..77d32a4 --- /dev/null +++ b/ab_batches/normal_camera/review/pussy_licking_standing_woman_contact_sheet.html @@ -0,0 +1,41 @@ + + + + +Normal Camera Review Contact Sheet: pussy licking standing woman + + + +

Normal Camera Review Contact Sheet: pussy licking standing woman

+

No-generation contact sheet. 1 JPGs from pussy licking standing woman. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: pussy licking standing woman.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-1

+
+
+pussy licking standing woman/13.jpg +
001 pussy licking standing woman/13.jpgbucket: reject_or_unclear / normal_pussy_licking_standing_woman_single_reference_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/pussy_licking_standing_woman_review_manifest.json b/ab_batches/normal_camera/review/pussy_licking_standing_woman_review_manifest.json new file mode 100644 index 0000000..59f1f05 --- /dev/null +++ b/ab_batches/normal_camera/review/pussy_licking_standing_woman_review_manifest.json @@ -0,0 +1,75 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "pussy licking standing woman", + "folder_alias": { + "exact_source_folder": "pussy licking standing woman", + "canonical_folder": "pussy licking standing woman", + "canonical_key": "pussy_licking_standing_woman", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 1, + "action_family": "oral_other", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_pussy_licking_standing_woman_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "pussy licking standing woman/13.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the one standing-woman oral-contact sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ], + "review_items": [ + { + "reference_image": "pussy licking standing woman/13.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_pussy_licking_standing_woman_single_reference_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the one standing-woman oral-contact sample as coverage evidence only. A single image cannot define a stable normal-camera route.", + "index": 1 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 1, + "image_count": 1, + "images": [ + { + "index": 1, + "reference_image": "pussy licking standing woman/13.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_pussy_licking_standing_woman_single_reference_pool", + "notes": "Contact-sheet review preserved the one standing-woman oral-contact sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/pussy_spread_contact_sheet.html b/ab_batches/normal_camera/review/pussy_spread_contact_sheet.html new file mode 100644 index 0000000..a3f3580 --- /dev/null +++ b/ab_batches/normal_camera/review/pussy_spread_contact_sheet.html @@ -0,0 +1,443 @@ + + + + +Normal Camera Review Contact Sheet: pussy spread + + + +

Normal Camera Review Contact Sheet: pussy spread

+

No-generation contact sheet. 100 JPGs from pussy spread. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: pussy spread.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-40

+
+
+pussy spread/1.jpg +
001 pussy spread/1.jpgbucket: front_view / normal_display_front_open_leg_low_close
+
+
+pussy spread/0001.jpg +
002 pussy spread/0001.jpgbucket: unassigned
+
+
+pussy spread/1_2.jpg +
003 pussy spread/1_2.jpgbucket: front_view / normal_display_front_open_leg_low_close
+
+
+pussy spread/0002.jpg +
004 pussy spread/0002.jpgbucket: unassigned
+
+
+pussy spread/0002_2.jpg +
005 pussy spread/0002_2.jpgbucket: unassigned
+
+
+pussy spread/0002_3.jpg +
006 pussy spread/0002_3.jpgbucket: front_view / normal_display_front_open_leg_front_view
+
+
+pussy spread/0003.jpg +
007 pussy spread/0003.jpgbucket: front_view / normal_display_front_open_leg_low_close
+
+
+pussy spread/0003_2.jpg +
008 pussy spread/0003_2.jpgbucket: front_view / normal_display_front_open_leg_low_close
+
+
+pussy spread/0003_3.jpg +
009 pussy spread/0003_3.jpgbucket: front_view / normal_display_front_open_leg_low_close
+
+
+pussy spread/0003_4.jpg +
010 pussy spread/0003_4.jpgbucket: front_view / normal_display_front_open_leg_front_view
+
+
+pussy spread/0003_5.jpg +
011 pussy spread/0003_5.jpgbucket: unassigned
+
+
+pussy spread/0004.jpg +
012 pussy spread/0004.jpgbucket: unassigned
+
+
+pussy spread/0005.jpg +
013 pussy spread/0005.jpgbucket: unassigned
+
+
+pussy spread/7.jpg +
014 pussy spread/7.jpgbucket: unassigned
+
+
+pussy spread/0007.jpg +
015 pussy spread/0007.jpgbucket: side_view / normal_display_front_open_leg_side_offset_view
+
+
+pussy spread/0008.jpg +
016 pussy spread/0008.jpgbucket: side_view / normal_display_front_open_leg_side_offset_view
+
+
+pussy spread/0009.jpg +
017 pussy spread/0009.jpgbucket: unassigned
+
+
+pussy spread/0010.jpg +
018 pussy spread/0010.jpgbucket: unassigned
+
+
+pussy spread/0010_2.jpg +
019 pussy spread/0010_2.jpgbucket: front_view / normal_display_front_open_leg_low_close
+
+
+pussy spread/0012.jpg +
020 pussy spread/0012.jpgbucket: front_view / normal_display_front_open_leg_front_view
+
+
+pussy spread/0015.jpg +
021 pussy spread/0015.jpgbucket: front_view / normal_display_front_open_leg_front_view
+
+
+pussy spread/0015_2.jpg +
022 pussy spread/0015_2.jpgbucket: unassigned
+
+
+pussy spread/0016.jpg +
023 pussy spread/0016.jpgbucket: front_view / normal_display_front_open_leg_low_close
+
+
+pussy spread/0016_2.jpg +
024 pussy spread/0016_2.jpgbucket: front_view / normal_display_front_open_leg_low_close
+
+
+pussy spread/0016_3.jpg +
025 pussy spread/0016_3.jpgbucket: unassigned
+
+
+pussy spread/0016_4.jpg +
026 pussy spread/0016_4.jpgbucket: unassigned
+
+
+pussy spread/0017.jpg +
027 pussy spread/0017.jpgbucket: front_view / normal_display_front_open_leg_front_view
+
+
+pussy spread/0020.jpg +
028 pussy spread/0020.jpgbucket: unassigned
+
+
+pussy spread/0020_2.jpg +
029 pussy spread/0020_2.jpgbucket: unassigned
+
+
+pussy spread/39.jpg +
030 pussy spread/39.jpgbucket: unassigned
+
+
+pussy spread/41.jpg +
031 pussy spread/41.jpgbucket: front_view / normal_display_front_open_leg_low_close
+
+
+pussy spread/41_2.jpg +
032 pussy spread/41_2.jpgbucket: unassigned
+
+
+pussy spread/46.jpg +
033 pussy spread/46.jpgbucket: unassigned
+
+
+pussy spread/61.jpg +
034 pussy spread/61.jpgbucket: unassigned
+
+
+pussy spread/73.jpg +
035 pussy spread/73.jpgbucket: side_view / normal_display_front_open_leg_side_offset_view
+
+
+pussy spread/75.jpg +
036 pussy spread/75.jpgbucket: unassigned
+
+
+pussy spread/80.jpg +
037 pussy spread/80.jpgbucket: front_view / normal_display_front_open_leg_front_view
+
+
+pussy spread/82.jpg +
038 pussy spread/82.jpgbucket: unassigned
+
+
+pussy spread/95.jpg +
039 pussy spread/95.jpgbucket: unassigned
+
+
+pussy spread/97.jpg +
040 pussy spread/97.jpgbucket: unassigned
+
+
+

Page 2: 41-80

+
+
+pussy spread/105.jpg +
041 pussy spread/105.jpgbucket: unassigned
+
+
+pussy spread/121.jpg +
042 pussy spread/121.jpgbucket: side_view / normal_display_front_open_leg_side_offset_view
+
+
+pussy spread/130.jpg +
043 pussy spread/130.jpgbucket: front_view / normal_display_front_open_leg_front_view
+
+
+pussy spread/134.jpg +
044 pussy spread/134.jpgbucket: side_view / normal_display_front_open_leg_side_offset_view
+
+
+pussy spread/145.jpg +
045 pussy spread/145.jpgbucket: unassigned
+
+
+pussy spread/153.jpg +
046 pussy spread/153.jpgbucket: front_view / normal_display_front_open_leg_front_view
+
+
+pussy spread/154.jpg +
047 pussy spread/154.jpgbucket: unassigned
+
+
+pussy spread/154_2.jpg +
048 pussy spread/154_2.jpgbucket: unassigned
+
+
+pussy spread/154_3.jpg +
049 pussy spread/154_3.jpgbucket: side_view / normal_display_front_open_leg_side_offset_view
+
+
+pussy spread/163.jpg +
050 pussy spread/163.jpgbucket: side_view / normal_display_front_open_leg_side_offset_view
+
+
+pussy spread/165.jpg +
051 pussy spread/165.jpgbucket: unassigned
+
+
+pussy spread/175.jpg +
052 pussy spread/175.jpgbucket: side_view / normal_display_front_open_leg_side_offset_view
+
+
+pussy spread/199.jpg +
053 pussy spread/199.jpgbucket: unassigned
+
+
+pussy spread/201.jpg +
054 pussy spread/201.jpgbucket: front_view / normal_display_front_open_leg_low_close
+
+
+pussy spread/217.jpg +
055 pussy spread/217.jpgbucket: unassigned
+
+
+pussy spread/217_2.jpg +
056 pussy spread/217_2.jpgbucket: front_view / normal_display_front_open_leg_low_close
+
+
+pussy spread/223.jpg +
057 pussy spread/223.jpgbucket: front_view / normal_display_front_open_leg_low_close
+
+
+pussy spread/226.jpg +
058 pussy spread/226.jpgbucket: unassigned
+
+
+pussy spread/250.jpg +
059 pussy spread/250.jpgbucket: unassigned
+
+
+pussy spread/250_2.jpg +
060 pussy spread/250_2.jpgbucket: unassigned
+
+
+pussy spread/251.jpg +
061 pussy spread/251.jpgbucket: unassigned
+
+
+pussy spread/256.jpg +
062 pussy spread/256.jpgbucket: side_view / normal_display_front_open_leg_side_offset_view
+
+
+pussy spread/270.jpg +
063 pussy spread/270.jpgbucket: unassigned
+
+
+pussy spread/293.jpg +
064 pussy spread/293.jpgbucket: unassigned
+
+
+pussy spread/293_2.jpg +
065 pussy spread/293_2.jpgbucket: unassigned
+
+
+pussy spread/296.jpg +
066 pussy spread/296.jpgbucket: front_view / normal_display_front_open_leg_front_view
+
+
+pussy spread/297.jpg +
067 pussy spread/297.jpgbucket: front_view / normal_display_front_open_leg_front_view
+
+
+pussy spread/302.jpg +
068 pussy spread/302.jpgbucket: unassigned
+
+
+pussy spread/308.jpg +
069 pussy spread/308.jpgbucket: side_view / normal_display_front_open_leg_side_offset_view
+
+
+pussy spread/311.jpg +
070 pussy spread/311.jpgbucket: side_view / normal_display_front_open_leg_side_offset_view
+
+
+pussy spread/312.jpg +
071 pussy spread/312.jpgbucket: unassigned
+
+
+pussy spread/312_2.jpg +
072 pussy spread/312_2.jpgbucket: unassigned
+
+
+pussy spread/312_3.jpg +
073 pussy spread/312_3.jpgbucket: unassigned
+
+
+pussy spread/313.jpg +
074 pussy spread/313.jpgbucket: unassigned
+
+
+pussy spread/313_2.jpg +
075 pussy spread/313_2.jpgbucket: unassigned
+
+
+pussy spread/316.jpg +
076 pussy spread/316.jpgbucket: unassigned
+
+
+pussy spread/328.jpg +
077 pussy spread/328.jpgbucket: front_view / normal_display_front_open_leg_front_view
+
+
+pussy spread/332.jpg +
078 pussy spread/332.jpgbucket: unassigned
+
+
+pussy spread/349.jpg +
079 pussy spread/349.jpgbucket: unassigned
+
+
+pussy spread/367.jpg +
080 pussy spread/367.jpgbucket: front_view / normal_display_front_open_leg_front_view
+
+
+

Page 3: 81-100

+
+
+pussy spread/368.jpg +
081 pussy spread/368.jpgbucket: side_view / normal_display_front_open_leg_side_offset_view
+
+
+pussy spread/493.jpg +
082 pussy spread/493.jpgbucket: unassigned
+
+
+pussy spread/497.jpg +
083 pussy spread/497.jpgbucket: unassigned
+
+
+pussy spread/500.jpg +
084 pussy spread/500.jpgbucket: unassigned
+
+
+pussy spread/500_2.jpg +
085 pussy spread/500_2.jpgbucket: unassigned
+
+
+pussy spread/502.jpg +
086 pussy spread/502.jpgbucket: unassigned
+
+
+pussy spread/504.jpg +
087 pussy spread/504.jpgbucket: unassigned
+
+
+pussy spread/523.jpg +
088 pussy spread/523.jpgbucket: unassigned
+
+
+pussy spread/524.jpg +
089 pussy spread/524.jpgbucket: unassigned
+
+
+pussy spread/529.jpg +
090 pussy spread/529.jpgbucket: unassigned
+
+
+pussy spread/531.jpg +
091 pussy spread/531.jpgbucket: unassigned
+
+
+pussy spread/538.jpg +
092 pussy spread/538.jpgbucket: unassigned
+
+
+pussy spread/551.jpg +
093 pussy spread/551.jpgbucket: unassigned
+
+
+pussy spread/552.jpg +
094 pussy spread/552.jpgbucket: unassigned
+
+
+pussy spread/608.jpg +
095 pussy spread/608.jpgbucket: unassigned
+
+
+pussy spread/611.jpg +
096 pussy spread/611.jpgbucket: unassigned
+
+
+pussy spread/612.jpg +
097 pussy spread/612.jpgbucket: unassigned
+
+
+pussy spread/612_2.jpg +
098 pussy spread/612_2.jpgbucket: unassigned
+
+
+pussy spread/612_3.jpg +
099 pussy spread/612_3.jpgbucket: unassigned
+
+
+pussy spread/612_4.jpg +
100 pussy spread/612_4.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/pussy_spread_review_manifest.json b/ab_batches/normal_camera/review/pussy_spread_review_manifest.json new file mode 100644 index 0000000..f5f9856 --- /dev/null +++ b/ab_batches/normal_camera/review/pussy_spread_review_manifest.json @@ -0,0 +1,1893 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "pussy spread", + "folder_alias": { + "exact_source_folder": "pussy spread", + "canonical_folder": "pussy spread", + "canonical_key": "pussy_spread", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 100, + "action_family": "display", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_display_front_open_leg_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "pussy spread/0002_3.jpg", + "pussy spread/0003_4.jpg", + "pussy spread/0012.jpg", + "pussy spread/0015.jpg", + "pussy spread/0017.jpg", + "pussy spread/80.jpg", + "pussy spread/130.jpg", + "pussy spread/153.jpg", + "pussy spread/296.jpg", + "pussy spread/297.jpg", + "pussy spread/328.jpg", + "pussy spread/367.jpg" + ], + "evidence_notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops." + }, + { + "variant_key": "normal_display_front_open_leg_low_close", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "pussy spread/1.jpg", + "pussy spread/1_2.jpg", + "pussy spread/0003.jpg", + "pussy spread/0003_2.jpg", + "pussy spread/0003_3.jpg", + "pussy spread/0010_2.jpg", + "pussy spread/0016.jpg", + "pussy spread/0016_2.jpg", + "pussy spread/41.jpg", + "pussy spread/201.jpg", + "pussy spread/217_2.jpg", + "pussy spread/223.jpg" + ], + "evidence_notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition." + }, + { + "variant_key": "normal_display_front_open_leg_side_offset_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "pussy spread/0007.jpg", + "pussy spread/0008.jpg", + "pussy spread/73.jpg", + "pussy spread/121.jpg", + "pussy spread/134.jpg", + "pussy spread/154_3.jpg", + "pussy spread/163.jpg", + "pussy spread/175.jpg", + "pussy spread/256.jpg", + "pussy spread/308.jpg", + "pussy spread/311.jpg", + "pussy spread/368.jpg" + ], + "evidence_notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool." + } + ], + "review_items": [ + { + "reference_image": "pussy spread/1.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_low_close", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition.", + "index": 1 + }, + { + "index": 2, + "reference_image": "pussy spread/0001.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/1_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_low_close", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition.", + "index": 3 + }, + { + "index": 4, + "reference_image": "pussy spread/0002.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 5, + "reference_image": "pussy spread/0002_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/0002_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops.", + "index": 6 + }, + { + "reference_image": "pussy spread/0003.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_low_close", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition.", + "index": 7 + }, + { + "reference_image": "pussy spread/0003_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_low_close", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition.", + "index": 8 + }, + { + "reference_image": "pussy spread/0003_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_low_close", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition.", + "index": 9 + }, + { + "reference_image": "pussy spread/0003_4.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops.", + "index": 10 + }, + { + "index": 11, + "reference_image": "pussy spread/0003_5.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 12, + "reference_image": "pussy spread/0004.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 13, + "reference_image": "pussy spread/0005.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 14, + "reference_image": "pussy spread/7.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/0007.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool.", + "index": 15 + }, + { + "reference_image": "pussy spread/0008.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool.", + "index": 16 + }, + { + "index": 17, + "reference_image": "pussy spread/0009.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 18, + "reference_image": "pussy spread/0010.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/0010_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_low_close", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition.", + "index": 19 + }, + { + "reference_image": "pussy spread/0012.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops.", + "index": 20 + }, + { + "reference_image": "pussy spread/0015.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops.", + "index": 21 + }, + { + "index": 22, + "reference_image": "pussy spread/0015_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/0016.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_low_close", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition.", + "index": 23 + }, + { + "reference_image": "pussy spread/0016_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_low_close", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition.", + "index": 24 + }, + { + "index": 25, + "reference_image": "pussy spread/0016_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 26, + "reference_image": "pussy spread/0016_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/0017.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops.", + "index": 27 + }, + { + "index": 28, + "reference_image": "pussy spread/0020.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 29, + "reference_image": "pussy spread/0020_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 30, + "reference_image": "pussy spread/39.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/41.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_low_close", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition.", + "index": 31 + }, + { + "index": 32, + "reference_image": "pussy spread/41_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 33, + "reference_image": "pussy spread/46.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 34, + "reference_image": "pussy spread/61.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/73.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool.", + "index": 35 + }, + { + "index": 36, + "reference_image": "pussy spread/75.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/80.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops.", + "index": 37 + }, + { + "index": 38, + "reference_image": "pussy spread/82.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 39, + "reference_image": "pussy spread/95.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 40, + "reference_image": "pussy spread/97.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 41, + "reference_image": "pussy spread/105.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/121.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool.", + "index": 42 + }, + { + "reference_image": "pussy spread/130.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops.", + "index": 43 + }, + { + "reference_image": "pussy spread/134.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool.", + "index": 44 + }, + { + "index": 45, + "reference_image": "pussy spread/145.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/153.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops.", + "index": 46 + }, + { + "index": 47, + "reference_image": "pussy spread/154.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 48, + "reference_image": "pussy spread/154_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/154_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool.", + "index": 49 + }, + { + "reference_image": "pussy spread/163.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool.", + "index": 50 + }, + { + "index": 51, + "reference_image": "pussy spread/165.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/175.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool.", + "index": 52 + }, + { + "index": 53, + "reference_image": "pussy spread/199.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/201.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_low_close", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition.", + "index": 54 + }, + { + "index": 55, + "reference_image": "pussy spread/217.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/217_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_low_close", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition.", + "index": 56 + }, + { + "reference_image": "pussy spread/223.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_low_close", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition.", + "index": 57 + }, + { + "index": 58, + "reference_image": "pussy spread/226.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 59, + "reference_image": "pussy spread/250.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 60, + "reference_image": "pussy spread/250_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 61, + "reference_image": "pussy spread/251.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/256.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool.", + "index": 62 + }, + { + "index": 63, + "reference_image": "pussy spread/270.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 64, + "reference_image": "pussy spread/293.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 65, + "reference_image": "pussy spread/293_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/296.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops.", + "index": 66 + }, + { + "reference_image": "pussy spread/297.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops.", + "index": 67 + }, + { + "index": 68, + "reference_image": "pussy spread/302.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/308.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool.", + "index": 69 + }, + { + "reference_image": "pussy spread/311.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool.", + "index": 70 + }, + { + "index": 71, + "reference_image": "pussy spread/312.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 72, + "reference_image": "pussy spread/312_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 73, + "reference_image": "pussy spread/312_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 74, + "reference_image": "pussy spread/313.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 75, + "reference_image": "pussy spread/313_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 76, + "reference_image": "pussy spread/316.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/328.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops.", + "index": 77 + }, + { + "index": 78, + "reference_image": "pussy spread/332.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 79, + "reference_image": "pussy spread/349.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "pussy spread/367.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_display_front_open_leg_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops.", + "index": 80 + }, + { + "reference_image": "pussy spread/368.jpg", + "review_decision": "selected_reference", + "review_bucket": "side_view", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool.", + "index": 81 + }, + { + "index": 82, + "reference_image": "pussy spread/493.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 83, + "reference_image": "pussy spread/497.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 84, + "reference_image": "pussy spread/500.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 85, + "reference_image": "pussy spread/500_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 86, + "reference_image": "pussy spread/502.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 87, + "reference_image": "pussy spread/504.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 88, + "reference_image": "pussy spread/523.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 89, + "reference_image": "pussy spread/524.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 90, + "reference_image": "pussy spread/529.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 91, + "reference_image": "pussy spread/531.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 92, + "reference_image": "pussy spread/538.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 93, + "reference_image": "pussy spread/551.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 94, + "reference_image": "pussy spread/552.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 95, + "reference_image": "pussy spread/608.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 96, + "reference_image": "pussy spread/611.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 97, + "reference_image": "pussy spread/612.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 98, + "reference_image": "pussy spread/612_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 99, + "reference_image": "pussy spread/612_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 100, + "reference_image": "pussy spread/612_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 40, + "image_count": 40, + "images": [ + { + "index": 1, + "reference_image": "pussy spread/1.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_low_close", + "notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition." + }, + { + "index": 2, + "reference_image": "pussy spread/0001.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 3, + "reference_image": "pussy spread/1_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_low_close", + "notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition." + }, + { + "index": 4, + "reference_image": "pussy spread/0002.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "pussy spread/0002_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 6, + "reference_image": "pussy spread/0002_3.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_front_view", + "notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops." + }, + { + "index": 7, + "reference_image": "pussy spread/0003.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_low_close", + "notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition." + }, + { + "index": 8, + "reference_image": "pussy spread/0003_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_low_close", + "notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition." + }, + { + "index": 9, + "reference_image": "pussy spread/0003_3.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_low_close", + "notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition." + }, + { + "index": 10, + "reference_image": "pussy spread/0003_4.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_front_view", + "notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops." + }, + { + "index": 11, + "reference_image": "pussy spread/0003_5.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "pussy spread/0004.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "pussy spread/0005.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 14, + "reference_image": "pussy spread/7.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "pussy spread/0007.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool." + }, + { + "index": 16, + "reference_image": "pussy spread/0008.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool." + }, + { + "index": 17, + "reference_image": "pussy spread/0009.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 18, + "reference_image": "pussy spread/0010.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 19, + "reference_image": "pussy spread/0010_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_low_close", + "notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition." + }, + { + "index": 20, + "reference_image": "pussy spread/0012.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_front_view", + "notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops." + }, + { + "index": 21, + "reference_image": "pussy spread/0015.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_front_view", + "notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops." + }, + { + "index": 22, + "reference_image": "pussy spread/0015_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "pussy spread/0016.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_low_close", + "notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition." + }, + { + "index": 24, + "reference_image": "pussy spread/0016_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_low_close", + "notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition." + }, + { + "index": 25, + "reference_image": "pussy spread/0016_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "pussy spread/0016_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 27, + "reference_image": "pussy spread/0017.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_front_view", + "notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops." + }, + { + "index": 28, + "reference_image": "pussy spread/0020.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 29, + "reference_image": "pussy spread/0020_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 30, + "reference_image": "pussy spread/39.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 31, + "reference_image": "pussy spread/41.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_low_close", + "notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition." + }, + { + "index": 32, + "reference_image": "pussy spread/41_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "pussy spread/46.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 34, + "reference_image": "pussy spread/61.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 35, + "reference_image": "pussy spread/73.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool." + }, + { + "index": 36, + "reference_image": "pussy spread/75.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 37, + "reference_image": "pussy spread/80.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_front_view", + "notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops." + }, + { + "index": 38, + "reference_image": "pussy spread/82.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 39, + "reference_image": "pussy spread/95.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 40, + "reference_image": "pussy spread/97.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 2, + "html_anchor": "page-02", + "start_index": 41, + "end_index": 80, + "image_count": 40, + "images": [ + { + "index": 41, + "reference_image": "pussy spread/105.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 42, + "reference_image": "pussy spread/121.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool." + }, + { + "index": 43, + "reference_image": "pussy spread/130.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_front_view", + "notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops." + }, + { + "index": 44, + "reference_image": "pussy spread/134.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool." + }, + { + "index": 45, + "reference_image": "pussy spread/145.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 46, + "reference_image": "pussy spread/153.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_front_view", + "notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops." + }, + { + "index": 47, + "reference_image": "pussy spread/154.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 48, + "reference_image": "pussy spread/154_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 49, + "reference_image": "pussy spread/154_3.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool." + }, + { + "index": 50, + "reference_image": "pussy spread/163.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool." + }, + { + "index": 51, + "reference_image": "pussy spread/165.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 52, + "reference_image": "pussy spread/175.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool." + }, + { + "index": 53, + "reference_image": "pussy spread/199.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 54, + "reference_image": "pussy spread/201.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_low_close", + "notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition." + }, + { + "index": 55, + "reference_image": "pussy spread/217.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 56, + "reference_image": "pussy spread/217_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_low_close", + "notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition." + }, + { + "index": 57, + "reference_image": "pussy spread/223.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_low_close", + "notes": "Paged review found a repeated low-close front-view display family where the foreground body plane dominates the composition." + }, + { + "index": 58, + "reference_image": "pussy spread/226.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 59, + "reference_image": "pussy spread/250.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 60, + "reference_image": "pussy spread/250_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 61, + "reference_image": "pussy spread/251.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 62, + "reference_image": "pussy spread/256.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool." + }, + { + "index": 63, + "reference_image": "pussy spread/270.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 64, + "reference_image": "pussy spread/293.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 65, + "reference_image": "pussy spread/293_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 66, + "reference_image": "pussy spread/296.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_front_view", + "notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops." + }, + { + "index": 67, + "reference_image": "pussy spread/297.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_front_view", + "notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops." + }, + { + "index": 68, + "reference_image": "pussy spread/302.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 69, + "reference_image": "pussy spread/308.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool." + }, + { + "index": 70, + "reference_image": "pussy spread/311.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool." + }, + { + "index": 71, + "reference_image": "pussy spread/312.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 72, + "reference_image": "pussy spread/312_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 73, + "reference_image": "pussy spread/312_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 74, + "reference_image": "pussy spread/313.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 75, + "reference_image": "pussy spread/313_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 76, + "reference_image": "pussy spread/316.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 77, + "reference_image": "pussy spread/328.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_front_view", + "notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops." + }, + { + "index": 78, + "reference_image": "pussy spread/332.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 79, + "reference_image": "pussy spread/349.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 80, + "reference_image": "pussy spread/367.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_front_view", + "notes": "Paged review found a repeated camera-facing front-view display family with enough body and room context to stay separate from tight low-close crops." + } + ] + }, + { + "page": 3, + "html_anchor": "page-03", + "start_index": 81, + "end_index": 100, + "image_count": 20, + "images": [ + { + "index": 81, + "reference_image": "pussy spread/368.jpg", + "review_bucket": "side_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_front_open_leg_side_offset_view", + "notes": "Residual-pool review found a repeated side-offset seated or reclined open-leg display family. Straight front, low-close, and one-off crop variants remain in the mixed source pool." + }, + { + "index": 82, + "reference_image": "pussy spread/493.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 83, + "reference_image": "pussy spread/497.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 84, + "reference_image": "pussy spread/500.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 85, + "reference_image": "pussy spread/500_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 86, + "reference_image": "pussy spread/502.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 87, + "reference_image": "pussy spread/504.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 88, + "reference_image": "pussy spread/523.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 89, + "reference_image": "pussy spread/524.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 90, + "reference_image": "pussy spread/529.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 91, + "reference_image": "pussy spread/531.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 92, + "reference_image": "pussy spread/538.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 93, + "reference_image": "pussy spread/551.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 94, + "reference_image": "pussy spread/552.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 95, + "reference_image": "pussy spread/608.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 96, + "reference_image": "pussy spread/611.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 97, + "reference_image": "pussy spread/612.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 98, + "reference_image": "pussy spread/612_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 99, + "reference_image": "pussy spread/612_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 100, + "reference_image": "pussy spread/612_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/removing_pants_contact_sheet.html b/ab_batches/normal_camera/review/removing_pants_contact_sheet.html new file mode 100644 index 0000000..40a2b3d --- /dev/null +++ b/ab_batches/normal_camera/review/removing_pants_contact_sheet.html @@ -0,0 +1,49 @@ + + + + +Normal Camera Review Contact Sheet: removing pants + + + +

Normal Camera Review Contact Sheet: removing pants

+

No-generation contact sheet. 3 JPGs from removing pants. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: removing pants.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-3

+
+
+removing pants/0005.jpg +
001 removing pants/0005.jpgbucket: reject_or_unclear / normal_removing_pants_mixed_camera_folder_pool
+
+
+removing pants/0006.jpg +
002 removing pants/0006.jpgbucket: reject_or_unclear / normal_removing_pants_mixed_camera_folder_pool
+
+
+removing pants/0016.jpg +
003 removing pants/0016.jpgbucket: reject_or_unclear / normal_removing_pants_mixed_camera_folder_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/removing_pants_review_manifest.json b/ab_batches/normal_camera/review/removing_pants_review_manifest.json new file mode 100644 index 0000000..12a506e --- /dev/null +++ b/ab_batches/normal_camera/review/removing_pants_review_manifest.json @@ -0,0 +1,111 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "removing pants", + "folder_alias": { + "exact_source_folder": "removing pants", + "canonical_folder": "removing pants", + "canonical_key": "removing_pants", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 3, + "action_family": "display", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_removing_pants_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "removing pants/0005.jpg", + "removing pants/0006.jpg", + "removing pants/0016.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples are near-duplicate close action references with strong foreground crop, so they should not become a locked normal-camera route without more matched, wider non-POV samples." + } + ], + "review_items": [ + { + "reference_image": "removing pants/0005.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_removing_pants_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples are near-duplicate close action references with strong foreground crop, so they should not become a locked normal-camera route without more matched, wider non-POV samples.", + "index": 1 + }, + { + "reference_image": "removing pants/0006.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_removing_pants_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples are near-duplicate close action references with strong foreground crop, so they should not become a locked normal-camera route without more matched, wider non-POV samples.", + "index": 2 + }, + { + "reference_image": "removing pants/0016.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_removing_pants_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples are near-duplicate close action references with strong foreground crop, so they should not become a locked normal-camera route without more matched, wider non-POV samples.", + "index": 3 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 3, + "image_count": 3, + "images": [ + { + "index": 1, + "reference_image": "removing pants/0005.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_removing_pants_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples are near-duplicate close action references with strong foreground crop, so they should not become a locked normal-camera route without more matched, wider non-POV samples." + }, + { + "index": 2, + "reference_image": "removing pants/0006.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_removing_pants_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples are near-duplicate close action references with strong foreground crop, so they should not become a locked normal-camera route without more matched, wider non-POV samples." + }, + { + "index": 3, + "reference_image": "removing pants/0016.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_removing_pants_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples are near-duplicate close action references with strong foreground crop, so they should not become a locked normal-camera route without more matched, wider non-POV samples." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/reverse_congress_front_view_contact_sheet.html b/ab_batches/normal_camera/review/reverse_congress_front_view_contact_sheet.html new file mode 100644 index 0000000..7aac132 --- /dev/null +++ b/ab_batches/normal_camera/review/reverse_congress_front_view_contact_sheet.html @@ -0,0 +1,121 @@ + + + + +Normal Camera Review Contact Sheet: reverse congress - front view + + + +

Normal Camera Review Contact Sheet: reverse congress - front view

+

No-generation contact sheet. 21 JPGs from reverse congress - front view. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: reverse congress - front view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-21

+
+
+reverse congress - front view/0012.jpg +
001 reverse congress - front view/0012.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/0012_2.jpg +
002 reverse congress - front view/0012_2.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/0013.jpg +
003 reverse congress - front view/0013.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/61.jpg +
004 reverse congress - front view/61.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/105.jpg +
005 reverse congress - front view/105.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/105_2.jpg +
006 reverse congress - front view/105_2.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/122.jpg +
007 reverse congress - front view/122.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/183.jpg +
008 reverse congress - front view/183.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/183_2.jpg +
009 reverse congress - front view/183_2.jpgbucket: unassigned
+
+
+reverse congress - front view/185.jpg +
010 reverse congress - front view/185.jpgbucket: unassigned
+
+
+reverse congress - front view/189.jpg +
011 reverse congress - front view/189.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/289.jpg +
012 reverse congress - front view/289.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/289_2.jpg +
013 reverse congress - front view/289_2.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/291.jpg +
014 reverse congress - front view/291.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/291_2.jpg +
015 reverse congress - front view/291_2.jpgbucket: unassigned
+
+
+reverse congress - front view/294.jpg +
016 reverse congress - front view/294.jpgbucket: unassigned
+
+
+reverse congress - front view/294_2.jpg +
017 reverse congress - front view/294_2.jpgbucket: unassigned
+
+
+reverse congress - front view/542.jpg +
018 reverse congress - front view/542.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/542_2.jpg +
019 reverse congress - front view/542_2.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+reverse congress - front view/563.jpg +
020 reverse congress - front view/563.jpgbucket: unassigned
+
+
+reverse congress - front view/563_2.jpg +
021 reverse congress - front view/563_2.jpgbucket: front_view / normal_reverse_congress_front_view
+
+
+ + diff --git a/ab_batches/normal_camera/review/reverse_congress_front_view_review_manifest.json b/ab_batches/normal_camera/review/reverse_congress_front_view_review_manifest.json new file mode 100644 index 0000000..f5d13da --- /dev/null +++ b/ab_batches/normal_camera/review/reverse_congress_front_view_review_manifest.json @@ -0,0 +1,435 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "reverse congress - front view", + "folder_alias": { + "exact_source_folder": "reverse congress - front view", + "canonical_folder": "reverse congress - front view", + "canonical_key": "reverse_congress_front_view", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 21, + "action_family": "reverse_congress", + "source_camera_view": "front_view", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_reverse_congress_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "reverse congress - front view/0012.jpg", + "reverse congress - front view/0012_2.jpg", + "reverse congress - front view/0013.jpg", + "reverse congress - front view/61.jpg", + "reverse congress - front view/105.jpg", + "reverse congress - front view/105_2.jpg", + "reverse congress - front view/122.jpg", + "reverse congress - front view/183.jpg", + "reverse congress - front view/189.jpg", + "reverse congress - front view/289.jpg", + "reverse congress - front view/289_2.jpg", + "reverse congress - front view/291.jpg", + "reverse congress - front view/542.jpg", + "reverse congress - front view/542_2.jpg", + "reverse congress - front view/563_2.jpg" + ], + "evidence_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + } + ], + "review_items": [ + { + "reference_image": "reverse congress - front view/0012.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 1 + }, + { + "reference_image": "reverse congress - front view/0012_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 2 + }, + { + "reference_image": "reverse congress - front view/0013.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 3 + }, + { + "reference_image": "reverse congress - front view/61.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 4 + }, + { + "reference_image": "reverse congress - front view/105.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 5 + }, + { + "reference_image": "reverse congress - front view/105_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 6 + }, + { + "reference_image": "reverse congress - front view/122.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 7 + }, + { + "reference_image": "reverse congress - front view/183.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 8 + }, + { + "index": 9, + "reference_image": "reverse congress - front view/183_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 10, + "reference_image": "reverse congress - front view/185.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse congress - front view/189.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 11 + }, + { + "reference_image": "reverse congress - front view/289.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 12 + }, + { + "reference_image": "reverse congress - front view/289_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 13 + }, + { + "reference_image": "reverse congress - front view/291.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 14 + }, + { + "index": 15, + "reference_image": "reverse congress - front view/291_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 16, + "reference_image": "reverse congress - front view/294.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 17, + "reference_image": "reverse congress - front view/294_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse congress - front view/542.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 18 + }, + { + "reference_image": "reverse congress - front view/542_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 19 + }, + { + "index": 20, + "reference_image": "reverse congress - front view/563.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse congress - front view/563_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_congress_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset.", + "index": 21 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 21, + "image_count": 21, + "images": [ + { + "index": 1, + "reference_image": "reverse congress - front view/0012.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 2, + "reference_image": "reverse congress - front view/0012_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 3, + "reference_image": "reverse congress - front view/0013.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 4, + "reference_image": "reverse congress - front view/61.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 5, + "reference_image": "reverse congress - front view/105.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 6, + "reference_image": "reverse congress - front view/105_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 7, + "reference_image": "reverse congress - front view/122.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 8, + "reference_image": "reverse congress - front view/183.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 9, + "reference_image": "reverse congress - front view/183_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 10, + "reference_image": "reverse congress - front view/185.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "reverse congress - front view/189.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 12, + "reference_image": "reverse congress - front view/289.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 13, + "reference_image": "reverse congress - front view/289_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 14, + "reference_image": "reverse congress - front view/291.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 15, + "reference_image": "reverse congress - front view/291_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "reverse congress - front view/294.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "reverse congress - front view/294_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 18, + "reference_image": "reverse congress - front view/542.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 19, + "reference_image": "reverse congress - front view/542_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + }, + { + "index": 20, + "reference_image": "reverse congress - front view/563.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 21, + "reference_image": "reverse congress - front view/563_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_congress_front_view", + "notes": "Residual-pool review confirmed the existing front-facing reverse-congress route as a coherent lifted/front camera family. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/reverse_cowgirl_contact_sheet.html b/ab_batches/normal_camera/review/reverse_cowgirl_contact_sheet.html new file mode 100644 index 0000000..f1c3ea1 --- /dev/null +++ b/ab_batches/normal_camera/review/reverse_cowgirl_contact_sheet.html @@ -0,0 +1,1012 @@ + + + + +Normal Camera Review Contact Sheet: reverse cowgirl + + + +

Normal Camera Review Contact Sheet: reverse cowgirl

+

No-generation contact sheet. 240 JPGs from reverse cowgirl. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: reverse cowgirl.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-40

+
+
+reverse cowgirl/1.jpg +
001 reverse cowgirl/1.jpgbucket: unassigned
+
+
+reverse cowgirl/0001.jpg +
002 reverse cowgirl/0001.jpgbucket: front_view / normal_reverse_cowgirl_front_view
+
+
+reverse cowgirl/0002.jpg +
003 reverse cowgirl/0002.jpgbucket: unassigned
+
+
+reverse cowgirl/0002_2.jpg +
004 reverse cowgirl/0002_2.jpgbucket: unassigned
+
+
+reverse cowgirl/0002_3.jpg +
005 reverse cowgirl/0002_3.jpgbucket: unassigned
+
+
+reverse cowgirl/0003.jpg +
006 reverse cowgirl/0003.jpgbucket: unassigned
+
+
+reverse cowgirl/0003_2.jpg +
007 reverse cowgirl/0003_2.jpgbucket: unassigned
+
+
+reverse cowgirl/4.jpg +
008 reverse cowgirl/4.jpgbucket: unassigned
+
+
+reverse cowgirl/0004.jpg +
009 reverse cowgirl/0004.jpgbucket: front_view / normal_reverse_cowgirl_front_view
+
+
+reverse cowgirl/0005.jpg +
010 reverse cowgirl/0005.jpgbucket: unassigned
+
+
+reverse cowgirl/0005_2.jpg +
011 reverse cowgirl/0005_2.jpgbucket: unassigned
+
+
+reverse cowgirl/0005_3.jpg +
012 reverse cowgirl/0005_3.jpgbucket: unassigned
+
+
+reverse cowgirl/0005_4.jpg +
013 reverse cowgirl/0005_4.jpgbucket: front_view / normal_reverse_cowgirl_front_view
+
+
+reverse cowgirl/0005_5.jpg +
014 reverse cowgirl/0005_5.jpgbucket: unassigned
+
+
+reverse cowgirl/6.jpg +
015 reverse cowgirl/6.jpgbucket: unassigned
+
+
+reverse cowgirl/0006.jpg +
016 reverse cowgirl/0006.jpgbucket: unassigned
+
+
+reverse cowgirl/0006_2.jpg +
017 reverse cowgirl/0006_2.jpgbucket: unassigned
+
+
+reverse cowgirl/0006_3.jpg +
018 reverse cowgirl/0006_3.jpgbucket: unassigned
+
+
+reverse cowgirl/7.jpg +
019 reverse cowgirl/7.jpgbucket: unassigned
+
+
+reverse cowgirl/0007.jpg +
020 reverse cowgirl/0007.jpgbucket: unassigned
+
+
+reverse cowgirl/7_2.jpg +
021 reverse cowgirl/7_2.jpgbucket: unassigned
+
+
+reverse cowgirl/0007_2.jpg +
022 reverse cowgirl/0007_2.jpgbucket: unassigned
+
+
+reverse cowgirl/0007_3.jpg +
023 reverse cowgirl/0007_3.jpgbucket: unassigned
+
+
+reverse cowgirl/0007_4.jpg +
024 reverse cowgirl/0007_4.jpgbucket: unassigned
+
+
+reverse cowgirl/0008.jpg +
025 reverse cowgirl/0008.jpgbucket: unassigned
+
+
+reverse cowgirl/0008_2.jpg +
026 reverse cowgirl/0008_2.jpgbucket: unassigned
+
+
+reverse cowgirl/0008_3.jpg +
027 reverse cowgirl/0008_3.jpgbucket: unassigned
+
+
+reverse cowgirl/0008_4.jpg +
028 reverse cowgirl/0008_4.jpgbucket: unassigned
+
+
+reverse cowgirl/0009.jpg +
029 reverse cowgirl/0009.jpgbucket: front_view / normal_reverse_cowgirl_low_close_front_view
+
+
+reverse cowgirl/0009_2.jpg +
030 reverse cowgirl/0009_2.jpgbucket: front_view / normal_reverse_cowgirl_low_close_front_view
+
+
+reverse cowgirl/0009_3.jpg +
031 reverse cowgirl/0009_3.jpgbucket: front_view / normal_reverse_cowgirl_low_close_front_view
+
+
+reverse cowgirl/0011.jpg +
032 reverse cowgirl/0011.jpgbucket: unassigned
+
+
+reverse cowgirl/0012.jpg +
033 reverse cowgirl/0012.jpgbucket: unassigned
+
+
+reverse cowgirl/0012_2.jpg +
034 reverse cowgirl/0012_2.jpgbucket: unassigned
+
+
+reverse cowgirl/0012_3.jpg +
035 reverse cowgirl/0012_3.jpgbucket: unassigned
+
+
+reverse cowgirl/13.jpg +
036 reverse cowgirl/13.jpgbucket: unassigned
+
+
+reverse cowgirl/0013.jpg +
037 reverse cowgirl/0013.jpgbucket: unassigned
+
+
+reverse cowgirl/14.jpg +
038 reverse cowgirl/14.jpgbucket: unassigned
+
+
+reverse cowgirl/0014.jpg +
039 reverse cowgirl/0014.jpgbucket: front_view / normal_reverse_cowgirl_front_view
+
+
+reverse cowgirl/0014_2.jpg +
040 reverse cowgirl/0014_2.jpgbucket: unassigned
+
+
+

Page 2: 41-80

+
+
+reverse cowgirl/0014_3.jpg +
041 reverse cowgirl/0014_3.jpgbucket: unassigned
+
+
+reverse cowgirl/0014_4.jpg +
042 reverse cowgirl/0014_4.jpgbucket: unassigned
+
+
+reverse cowgirl/0015.jpg +
043 reverse cowgirl/0015.jpgbucket: front_view / normal_reverse_cowgirl_low_close_front_view
+
+
+reverse cowgirl/0015_2.jpg +
044 reverse cowgirl/0015_2.jpgbucket: front_view / normal_reverse_cowgirl_low_close_front_view
+
+
+reverse cowgirl/0015_3.jpg +
045 reverse cowgirl/0015_3.jpgbucket: unassigned
+
+
+reverse cowgirl/0016.jpg +
046 reverse cowgirl/0016.jpgbucket: unassigned
+
+
+reverse cowgirl/0016_2.jpg +
047 reverse cowgirl/0016_2.jpgbucket: front_view / normal_reverse_cowgirl_low_close_front_view
+
+
+reverse cowgirl/0016_3.jpg +
048 reverse cowgirl/0016_3.jpgbucket: unassigned
+
+
+reverse cowgirl/0016_4.jpg +
049 reverse cowgirl/0016_4.jpgbucket: unassigned
+
+
+reverse cowgirl/0018.jpg +
050 reverse cowgirl/0018.jpgbucket: unassigned
+
+
+reverse cowgirl/0018_2.jpg +
051 reverse cowgirl/0018_2.jpgbucket: unassigned
+
+
+reverse cowgirl/0018_3.jpg +
052 reverse cowgirl/0018_3.jpgbucket: unassigned
+
+
+reverse cowgirl/0018_4.jpg +
053 reverse cowgirl/0018_4.jpgbucket: unassigned
+
+
+reverse cowgirl/19.jpg +
054 reverse cowgirl/19.jpgbucket: unassigned
+
+
+reverse cowgirl/0019.jpg +
055 reverse cowgirl/0019.jpgbucket: unassigned
+
+
+reverse cowgirl/19_2.jpg +
056 reverse cowgirl/19_2.jpgbucket: unassigned
+
+
+reverse cowgirl/0019_2.jpg +
057 reverse cowgirl/0019_2.jpgbucket: unassigned
+
+
+reverse cowgirl/0021.jpg +
058 reverse cowgirl/0021.jpgbucket: unassigned
+
+
+reverse cowgirl/22.jpg +
059 reverse cowgirl/22.jpgbucket: unassigned
+
+
+reverse cowgirl/27.jpg +
060 reverse cowgirl/27.jpgbucket: unassigned
+
+
+reverse cowgirl/29.jpg +
061 reverse cowgirl/29.jpgbucket: unassigned
+
+
+reverse cowgirl/29_2.jpg +
062 reverse cowgirl/29_2.jpgbucket: unassigned
+
+
+reverse cowgirl/35.jpg +
063 reverse cowgirl/35.jpgbucket: unassigned
+
+
+reverse cowgirl/36.jpg +
064 reverse cowgirl/36.jpgbucket: unassigned
+
+
+reverse cowgirl/42.jpg +
065 reverse cowgirl/42.jpgbucket: unassigned
+
+
+reverse cowgirl/48.jpg +
066 reverse cowgirl/48.jpgbucket: unassigned
+
+
+reverse cowgirl/48_2.jpg +
067 reverse cowgirl/48_2.jpgbucket: unassigned
+
+
+reverse cowgirl/52.jpg +
068 reverse cowgirl/52.jpgbucket: unassigned
+
+
+reverse cowgirl/52_2.jpg +
069 reverse cowgirl/52_2.jpgbucket: unassigned
+
+
+reverse cowgirl/58.jpg +
070 reverse cowgirl/58.jpgbucket: unassigned
+
+
+reverse cowgirl/58_2.jpg +
071 reverse cowgirl/58_2.jpgbucket: unassigned
+
+
+reverse cowgirl/61.jpg +
072 reverse cowgirl/61.jpgbucket: unassigned
+
+
+reverse cowgirl/62.jpg +
073 reverse cowgirl/62.jpgbucket: unassigned
+
+
+reverse cowgirl/63.jpg +
074 reverse cowgirl/63.jpgbucket: unassigned
+
+
+reverse cowgirl/64.jpg +
075 reverse cowgirl/64.jpgbucket: unassigned
+
+
+reverse cowgirl/64_2.jpg +
076 reverse cowgirl/64_2.jpgbucket: unassigned
+
+
+reverse cowgirl/65.jpg +
077 reverse cowgirl/65.jpgbucket: unassigned
+
+
+reverse cowgirl/72.jpg +
078 reverse cowgirl/72.jpgbucket: unassigned
+
+
+reverse cowgirl/73.jpg +
079 reverse cowgirl/73.jpgbucket: unassigned
+
+
+reverse cowgirl/73_2.jpg +
080 reverse cowgirl/73_2.jpgbucket: unassigned
+
+
+

Page 3: 81-120

+
+
+reverse cowgirl/77.jpg +
081 reverse cowgirl/77.jpgbucket: unassigned
+
+
+reverse cowgirl/77_2.jpg +
082 reverse cowgirl/77_2.jpgbucket: unassigned
+
+
+reverse cowgirl/79.jpg +
083 reverse cowgirl/79.jpgbucket: front_view / normal_reverse_cowgirl_front_view
+
+
+reverse cowgirl/79_2.jpg +
084 reverse cowgirl/79_2.jpgbucket: unassigned
+
+
+reverse cowgirl/80.jpg +
085 reverse cowgirl/80.jpgbucket: unassigned
+
+
+reverse cowgirl/80_2.jpg +
086 reverse cowgirl/80_2.jpgbucket: unassigned
+
+
+reverse cowgirl/81.jpg +
087 reverse cowgirl/81.jpgbucket: unassigned
+
+
+reverse cowgirl/82.jpg +
088 reverse cowgirl/82.jpgbucket: front_view / normal_reverse_cowgirl_front_view
+
+
+reverse cowgirl/109.jpg +
089 reverse cowgirl/109.jpgbucket: unassigned
+
+
+reverse cowgirl/112.jpg +
090 reverse cowgirl/112.jpgbucket: unassigned
+
+
+reverse cowgirl/113.jpg +
091 reverse cowgirl/113.jpgbucket: unassigned
+
+
+reverse cowgirl/122.jpg +
092 reverse cowgirl/122.jpgbucket: unassigned
+
+
+reverse cowgirl/122_2.jpg +
093 reverse cowgirl/122_2.jpgbucket: unassigned
+
+
+reverse cowgirl/137.jpg +
094 reverse cowgirl/137.jpgbucket: unassigned
+
+
+reverse cowgirl/145.jpg +
095 reverse cowgirl/145.jpgbucket: front_view / normal_reverse_cowgirl_front_view
+
+
+reverse cowgirl/145_2.jpg +
096 reverse cowgirl/145_2.jpgbucket: unassigned
+
+
+reverse cowgirl/153.jpg +
097 reverse cowgirl/153.jpgbucket: front_three_quarter / normal_reverse_cowgirl_front_three_quarter
+
+
+reverse cowgirl/153_2.jpg +
098 reverse cowgirl/153_2.jpgbucket: front_three_quarter / normal_reverse_cowgirl_front_three_quarter
+
+
+reverse cowgirl/159.jpg +
099 reverse cowgirl/159.jpgbucket: unassigned
+
+
+reverse cowgirl/159_2.jpg +
100 reverse cowgirl/159_2.jpgbucket: unassigned
+
+
+reverse cowgirl/170.jpg +
101 reverse cowgirl/170.jpgbucket: front_view / normal_reverse_cowgirl_low_close_front_view
+
+
+reverse cowgirl/171.jpg +
102 reverse cowgirl/171.jpgbucket: unassigned
+
+
+reverse cowgirl/172.jpg +
103 reverse cowgirl/172.jpgbucket: unassigned
+
+
+reverse cowgirl/174.jpg +
104 reverse cowgirl/174.jpgbucket: unassigned
+
+
+reverse cowgirl/179.jpg +
105 reverse cowgirl/179.jpgbucket: unassigned
+
+
+reverse cowgirl/182.jpg +
106 reverse cowgirl/182.jpgbucket: unassigned
+
+
+reverse cowgirl/183.jpg +
107 reverse cowgirl/183.jpgbucket: unassigned
+
+
+reverse cowgirl/184.jpg +
108 reverse cowgirl/184.jpgbucket: unassigned
+
+
+reverse cowgirl/206.jpg +
109 reverse cowgirl/206.jpgbucket: unassigned
+
+
+reverse cowgirl/210.jpg +
110 reverse cowgirl/210.jpgbucket: unassigned
+
+
+reverse cowgirl/217.jpg +
111 reverse cowgirl/217.jpgbucket: unassigned
+
+
+reverse cowgirl/218.jpg +
112 reverse cowgirl/218.jpgbucket: unassigned
+
+
+reverse cowgirl/221.jpg +
113 reverse cowgirl/221.jpgbucket: unassigned
+
+
+reverse cowgirl/226.jpg +
114 reverse cowgirl/226.jpgbucket: unassigned
+
+
+reverse cowgirl/226_2.jpg +
115 reverse cowgirl/226_2.jpgbucket: unassigned
+
+
+reverse cowgirl/227.jpg +
116 reverse cowgirl/227.jpgbucket: unassigned
+
+
+reverse cowgirl/232.jpg +
117 reverse cowgirl/232.jpgbucket: unassigned
+
+
+reverse cowgirl/233.jpg +
118 reverse cowgirl/233.jpgbucket: unassigned
+
+
+reverse cowgirl/234.jpg +
119 reverse cowgirl/234.jpgbucket: unassigned
+
+
+reverse cowgirl/239.jpg +
120 reverse cowgirl/239.jpgbucket: unassigned
+
+
+

Page 4: 121-160

+
+
+reverse cowgirl/239_2.jpg +
121 reverse cowgirl/239_2.jpgbucket: front_three_quarter / normal_reverse_cowgirl_front_three_quarter
+
+
+reverse cowgirl/239_3.jpg +
122 reverse cowgirl/239_3.jpgbucket: front_three_quarter / normal_reverse_cowgirl_front_three_quarter
+
+
+reverse cowgirl/241.jpg +
123 reverse cowgirl/241.jpgbucket: front_three_quarter / normal_reverse_cowgirl_front_three_quarter
+
+
+reverse cowgirl/241_2.jpg +
124 reverse cowgirl/241_2.jpgbucket: front_three_quarter / normal_reverse_cowgirl_front_three_quarter
+
+
+reverse cowgirl/241_3.jpg +
125 reverse cowgirl/241_3.jpgbucket: front_three_quarter / normal_reverse_cowgirl_front_three_quarter
+
+
+reverse cowgirl/245.jpg +
126 reverse cowgirl/245.jpgbucket: unassigned
+
+
+reverse cowgirl/249.jpg +
127 reverse cowgirl/249.jpgbucket: unassigned
+
+
+reverse cowgirl/251.jpg +
128 reverse cowgirl/251.jpgbucket: unassigned
+
+
+reverse cowgirl/256.jpg +
129 reverse cowgirl/256.jpgbucket: unassigned
+
+
+reverse cowgirl/257.jpg +
130 reverse cowgirl/257.jpgbucket: front_three_quarter / normal_reverse_cowgirl_front_three_quarter
+
+
+reverse cowgirl/258.jpg +
131 reverse cowgirl/258.jpgbucket: unassigned
+
+
+reverse cowgirl/258_2.jpg +
132 reverse cowgirl/258_2.jpgbucket: unassigned
+
+
+reverse cowgirl/259.jpg +
133 reverse cowgirl/259.jpgbucket: unassigned
+
+
+reverse cowgirl/259_2.jpg +
134 reverse cowgirl/259_2.jpgbucket: unassigned
+
+
+reverse cowgirl/260.jpg +
135 reverse cowgirl/260.jpgbucket: front_view / normal_reverse_cowgirl_front_view
+
+
+reverse cowgirl/260_2.jpg +
136 reverse cowgirl/260_2.jpgbucket: unassigned
+
+
+reverse cowgirl/261.jpg +
137 reverse cowgirl/261.jpgbucket: front_view / normal_reverse_cowgirl_low_close_front_view
+
+
+reverse cowgirl/262.jpg +
138 reverse cowgirl/262.jpgbucket: unassigned
+
+
+reverse cowgirl/263.jpg +
139 reverse cowgirl/263.jpgbucket: unassigned
+
+
+reverse cowgirl/266.jpg +
140 reverse cowgirl/266.jpgbucket: unassigned
+
+
+reverse cowgirl/267.jpg +
141 reverse cowgirl/267.jpgbucket: unassigned
+
+
+reverse cowgirl/268.jpg +
142 reverse cowgirl/268.jpgbucket: unassigned
+
+
+reverse cowgirl/268_2.jpg +
143 reverse cowgirl/268_2.jpgbucket: unassigned
+
+
+reverse cowgirl/270.jpg +
144 reverse cowgirl/270.jpgbucket: unassigned
+
+
+reverse cowgirl/273.jpg +
145 reverse cowgirl/273.jpgbucket: unassigned
+
+
+reverse cowgirl/276.jpg +
146 reverse cowgirl/276.jpgbucket: unassigned
+
+
+reverse cowgirl/276_2.jpg +
147 reverse cowgirl/276_2.jpgbucket: unassigned
+
+
+reverse cowgirl/278.jpg +
148 reverse cowgirl/278.jpgbucket: unassigned
+
+
+reverse cowgirl/280.jpg +
149 reverse cowgirl/280.jpgbucket: unassigned
+
+
+reverse cowgirl/281.jpg +
150 reverse cowgirl/281.jpgbucket: unassigned
+
+
+reverse cowgirl/285.jpg +
151 reverse cowgirl/285.jpgbucket: unassigned
+
+
+reverse cowgirl/287.jpg +
152 reverse cowgirl/287.jpgbucket: front_three_quarter / normal_reverse_cowgirl_front_three_quarter
+
+
+reverse cowgirl/288.jpg +
153 reverse cowgirl/288.jpgbucket: front_view / normal_reverse_cowgirl_front_view
+
+
+reverse cowgirl/288_2.jpg +
154 reverse cowgirl/288_2.jpgbucket: unassigned
+
+
+reverse cowgirl/290.jpg +
155 reverse cowgirl/290.jpgbucket: unassigned
+
+
+reverse cowgirl/290_2.jpg +
156 reverse cowgirl/290_2.jpgbucket: unassigned
+
+
+reverse cowgirl/292.jpg +
157 reverse cowgirl/292.jpgbucket: unassigned
+
+
+reverse cowgirl/294.jpg +
158 reverse cowgirl/294.jpgbucket: unassigned
+
+
+reverse cowgirl/296.jpg +
159 reverse cowgirl/296.jpgbucket: unassigned
+
+
+reverse cowgirl/296_2.jpg +
160 reverse cowgirl/296_2.jpgbucket: unassigned
+
+
+

Page 5: 161-200

+
+
+reverse cowgirl/296_3.jpg +
161 reverse cowgirl/296_3.jpgbucket: unassigned
+
+
+reverse cowgirl/297.jpg +
162 reverse cowgirl/297.jpgbucket: unassigned
+
+
+reverse cowgirl/298.jpg +
163 reverse cowgirl/298.jpgbucket: unassigned
+
+
+reverse cowgirl/298_2.jpg +
164 reverse cowgirl/298_2.jpgbucket: unassigned
+
+
+reverse cowgirl/298_3.jpg +
165 reverse cowgirl/298_3.jpgbucket: unassigned
+
+
+reverse cowgirl/302.jpg +
166 reverse cowgirl/302.jpgbucket: unassigned
+
+
+reverse cowgirl/304.jpg +
167 reverse cowgirl/304.jpgbucket: unassigned
+
+
+reverse cowgirl/305.jpg +
168 reverse cowgirl/305.jpgbucket: unassigned
+
+
+reverse cowgirl/305_2.jpg +
169 reverse cowgirl/305_2.jpgbucket: unassigned
+
+
+reverse cowgirl/309.jpg +
170 reverse cowgirl/309.jpgbucket: unassigned
+
+
+reverse cowgirl/311.jpg +
171 reverse cowgirl/311.jpgbucket: unassigned
+
+
+reverse cowgirl/314.jpg +
172 reverse cowgirl/314.jpgbucket: unassigned
+
+
+reverse cowgirl/317.jpg +
173 reverse cowgirl/317.jpgbucket: unassigned
+
+
+reverse cowgirl/319.jpg +
174 reverse cowgirl/319.jpgbucket: front_view / normal_reverse_cowgirl_front_view
+
+
+reverse cowgirl/319_2.jpg +
175 reverse cowgirl/319_2.jpgbucket: unassigned
+
+
+reverse cowgirl/320.jpg +
176 reverse cowgirl/320.jpgbucket: unassigned
+
+
+reverse cowgirl/322.jpg +
177 reverse cowgirl/322.jpgbucket: unassigned
+
+
+reverse cowgirl/323.jpg +
178 reverse cowgirl/323.jpgbucket: unassigned
+
+
+reverse cowgirl/323_2.jpg +
179 reverse cowgirl/323_2.jpgbucket: front_three_quarter / normal_reverse_cowgirl_front_three_quarter
+
+
+reverse cowgirl/327.jpg +
180 reverse cowgirl/327.jpgbucket: unassigned
+
+
+reverse cowgirl/331.jpg +
181 reverse cowgirl/331.jpgbucket: unassigned
+
+
+reverse cowgirl/332.jpg +
182 reverse cowgirl/332.jpgbucket: front_view / normal_reverse_cowgirl_low_close_front_view
+
+
+reverse cowgirl/332_2.jpg +
183 reverse cowgirl/332_2.jpgbucket: front_view / normal_reverse_cowgirl_low_close_front_view
+
+
+reverse cowgirl/333.jpg +
184 reverse cowgirl/333.jpgbucket: unassigned
+
+
+reverse cowgirl/338.jpg +
185 reverse cowgirl/338.jpgbucket: unassigned
+
+
+reverse cowgirl/338_2.jpg +
186 reverse cowgirl/338_2.jpgbucket: unassigned
+
+
+reverse cowgirl/342.jpg +
187 reverse cowgirl/342.jpgbucket: unassigned
+
+
+reverse cowgirl/345.jpg +
188 reverse cowgirl/345.jpgbucket: unassigned
+
+
+reverse cowgirl/345_2.jpg +
189 reverse cowgirl/345_2.jpgbucket: unassigned
+
+
+reverse cowgirl/346.jpg +
190 reverse cowgirl/346.jpgbucket: unassigned
+
+
+reverse cowgirl/349.jpg +
191 reverse cowgirl/349.jpgbucket: unassigned
+
+
+reverse cowgirl/362.jpg +
192 reverse cowgirl/362.jpgbucket: unassigned
+
+
+reverse cowgirl/370.jpg +
193 reverse cowgirl/370.jpgbucket: unassigned
+
+
+reverse cowgirl/371.jpg +
194 reverse cowgirl/371.jpgbucket: unassigned
+
+
+reverse cowgirl/372.jpg +
195 reverse cowgirl/372.jpgbucket: unassigned
+
+
+reverse cowgirl/373.jpg +
196 reverse cowgirl/373.jpgbucket: unassigned
+
+
+reverse cowgirl/377.jpg +
197 reverse cowgirl/377.jpgbucket: unassigned
+
+
+reverse cowgirl/377_2.jpg +
198 reverse cowgirl/377_2.jpgbucket: unassigned
+
+
+reverse cowgirl/377_3.jpg +
199 reverse cowgirl/377_3.jpgbucket: unassigned
+
+
+reverse cowgirl/378.jpg +
200 reverse cowgirl/378.jpgbucket: unassigned
+
+
+

Page 6: 201-240

+
+
+reverse cowgirl/379.jpg +
201 reverse cowgirl/379.jpgbucket: unassigned
+
+
+reverse cowgirl/497.jpg +
202 reverse cowgirl/497.jpgbucket: unassigned
+
+
+reverse cowgirl/497_2.jpg +
203 reverse cowgirl/497_2.jpgbucket: unassigned
+
+
+reverse cowgirl/499.jpg +
204 reverse cowgirl/499.jpgbucket: unassigned
+
+
+reverse cowgirl/509.jpg +
205 reverse cowgirl/509.jpgbucket: unassigned
+
+
+reverse cowgirl/521.jpg +
206 reverse cowgirl/521.jpgbucket: unassigned
+
+
+reverse cowgirl/521_2.jpg +
207 reverse cowgirl/521_2.jpgbucket: unassigned
+
+
+reverse cowgirl/527.jpg +
208 reverse cowgirl/527.jpgbucket: front_view / normal_reverse_cowgirl_front_view
+
+
+reverse cowgirl/527_2.jpg +
209 reverse cowgirl/527_2.jpgbucket: unassigned
+
+
+reverse cowgirl/532.jpg +
210 reverse cowgirl/532.jpgbucket: unassigned
+
+
+reverse cowgirl/535.jpg +
211 reverse cowgirl/535.jpgbucket: unassigned
+
+
+reverse cowgirl/536.jpg +
212 reverse cowgirl/536.jpgbucket: unassigned
+
+
+reverse cowgirl/538.jpg +
213 reverse cowgirl/538.jpgbucket: unassigned
+
+
+reverse cowgirl/542.jpg +
214 reverse cowgirl/542.jpgbucket: unassigned
+
+
+reverse cowgirl/547.jpg +
215 reverse cowgirl/547.jpgbucket: unassigned
+
+
+reverse cowgirl/548.jpg +
216 reverse cowgirl/548.jpgbucket: unassigned
+
+
+reverse cowgirl/549.jpg +
217 reverse cowgirl/549.jpgbucket: unassigned
+
+
+reverse cowgirl/549_2.jpg +
218 reverse cowgirl/549_2.jpgbucket: unassigned
+
+
+reverse cowgirl/551.jpg +
219 reverse cowgirl/551.jpgbucket: front_view / normal_reverse_cowgirl_low_close_front_view
+
+
+reverse cowgirl/552.jpg +
220 reverse cowgirl/552.jpgbucket: unassigned
+
+
+reverse cowgirl/568.jpg +
221 reverse cowgirl/568.jpgbucket: unassigned
+
+
+reverse cowgirl/588.jpg +
222 reverse cowgirl/588.jpgbucket: unassigned
+
+
+reverse cowgirl/590.jpg +
223 reverse cowgirl/590.jpgbucket: unassigned
+
+
+reverse cowgirl/595.jpg +
224 reverse cowgirl/595.jpgbucket: unassigned
+
+
+reverse cowgirl/597.jpg +
225 reverse cowgirl/597.jpgbucket: unassigned
+
+
+reverse cowgirl/597_2.jpg +
226 reverse cowgirl/597_2.jpgbucket: unassigned
+
+
+reverse cowgirl/598.jpg +
227 reverse cowgirl/598.jpgbucket: unassigned
+
+
+reverse cowgirl/601.jpg +
228 reverse cowgirl/601.jpgbucket: unassigned
+
+
+reverse cowgirl/607.jpg +
229 reverse cowgirl/607.jpgbucket: unassigned
+
+
+reverse cowgirl/608.jpg +
230 reverse cowgirl/608.jpgbucket: front_view / normal_reverse_cowgirl_front_view
+
+
+reverse cowgirl/608_2.jpg +
231 reverse cowgirl/608_2.jpgbucket: unassigned
+
+
+reverse cowgirl/609.jpg +
232 reverse cowgirl/609.jpgbucket: front_three_quarter / normal_reverse_cowgirl_front_three_quarter
+
+
+reverse cowgirl/609_2.jpg +
233 reverse cowgirl/609_2.jpgbucket: front_three_quarter / normal_reverse_cowgirl_front_three_quarter
+
+
+reverse cowgirl/611.jpg +
234 reverse cowgirl/611.jpgbucket: unassigned
+
+
+reverse cowgirl/613.jpg +
235 reverse cowgirl/613.jpgbucket: unassigned
+
+
+reverse cowgirl/614.jpg +
236 reverse cowgirl/614.jpgbucket: unassigned
+
+
+reverse cowgirl/614_2.jpg +
237 reverse cowgirl/614_2.jpgbucket: unassigned
+
+
+reverse cowgirl/615.jpg +
238 reverse cowgirl/615.jpgbucket: unassigned
+
+
+reverse cowgirl/617.jpg +
239 reverse cowgirl/617.jpgbucket: unassigned
+
+
+reverse cowgirl/618.jpg +
240 reverse cowgirl/618.jpgbucket: front_view / normal_reverse_cowgirl_low_close_front_view
+
+
+ + diff --git a/ab_batches/normal_camera/review/reverse_cowgirl_leg_up_contact_sheet.html b/ab_batches/normal_camera/review/reverse_cowgirl_leg_up_contact_sheet.html new file mode 100644 index 0000000..278dc5c --- /dev/null +++ b/ab_batches/normal_camera/review/reverse_cowgirl_leg_up_contact_sheet.html @@ -0,0 +1,45 @@ + + + + +Normal Camera Review Contact Sheet: reverse cowgirl - leg up + + + +

Normal Camera Review Contact Sheet: reverse cowgirl - leg up

+

No-generation contact sheet. 2 JPGs from reverse cowgirl - leg up. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: reverse cowgirl - leg up.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-2

+
+
+reverse cowgirl - leg up/266.jpg +
001 reverse cowgirl - leg up/266.jpgbucket: reject_or_unclear / normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool
+
+
+reverse cowgirl - leg up/267.jpg +
002 reverse cowgirl - leg up/267.jpgbucket: reject_or_unclear / normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/reverse_cowgirl_leg_up_review_manifest.json b/ab_batches/normal_camera/review/reverse_cowgirl_leg_up_review_manifest.json new file mode 100644 index 0000000..af023d0 --- /dev/null +++ b/ab_batches/normal_camera/review/reverse_cowgirl_leg_up_review_manifest.json @@ -0,0 +1,93 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "reverse cowgirl - leg up", + "folder_alias": { + "exact_source_folder": "reverse cowgirl - leg up", + "canonical_folder": "reverse cowgirl - leg up", + "canonical_key": "reverse_cowgirl_leg_up", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 2, + "action_family": "reverse_cowgirl", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "reverse cowgirl - leg up/266.jpg", + "reverse cowgirl - leg up/267.jpg" + ], + "evidence_notes": "Contact-sheet review preserved this as a two-sample leg-up posture source pool. The folder is useful cue evidence but too thin for a selected normal-camera route." + } + ], + "review_items": [ + { + "reference_image": "reverse cowgirl - leg up/266.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved this as a two-sample leg-up posture source pool. The folder is useful cue evidence but too thin for a selected normal-camera route.", + "index": 1 + }, + { + "reference_image": "reverse cowgirl - leg up/267.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved this as a two-sample leg-up posture source pool. The folder is useful cue evidence but too thin for a selected normal-camera route.", + "index": 2 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 2, + "image_count": 2, + "images": [ + { + "index": 1, + "reference_image": "reverse cowgirl - leg up/266.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved this as a two-sample leg-up posture source pool. The folder is useful cue evidence but too thin for a selected normal-camera route." + }, + { + "index": 2, + "reference_image": "reverse cowgirl - leg up/267.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved this as a two-sample leg-up posture source pool. The folder is useful cue evidence but too thin for a selected normal-camera route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/reverse_cowgirl_pretzel_contact_sheet.html b/ab_batches/normal_camera/review/reverse_cowgirl_pretzel_contact_sheet.html new file mode 100644 index 0000000..efae1c3 --- /dev/null +++ b/ab_batches/normal_camera/review/reverse_cowgirl_pretzel_contact_sheet.html @@ -0,0 +1,45 @@ + + + + +Normal Camera Review Contact Sheet: reverse cowgirl -pretzel + + + +

Normal Camera Review Contact Sheet: reverse cowgirl -pretzel

+

No-generation contact sheet. 2 JPGs from reverse cowgirl -pretzel. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: reverse cowgirl - pretzel.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-2

+
+
+reverse cowgirl -pretzel/0007.jpg +
001 reverse cowgirl -pretzel/0007.jpgbucket: reject_or_unclear / normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool
+
+
+reverse cowgirl -pretzel/617.jpg +
002 reverse cowgirl -pretzel/617.jpgbucket: reject_or_unclear / normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/reverse_cowgirl_pretzel_review_manifest.json b/ab_batches/normal_camera/review/reverse_cowgirl_pretzel_review_manifest.json new file mode 100644 index 0000000..21fedb1 --- /dev/null +++ b/ab_batches/normal_camera/review/reverse_cowgirl_pretzel_review_manifest.json @@ -0,0 +1,93 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "reverse cowgirl -pretzel", + "folder_alias": { + "exact_source_folder": "reverse cowgirl -pretzel", + "canonical_folder": "reverse cowgirl - pretzel", + "canonical_key": "reverse_cowgirl_pretzel", + "alias_applied": true, + "alias_reason": "Missing-space folder label normalized for review metadata while preserving exact source path." + }, + "image_count": 2, + "action_family": "reverse_cowgirl", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "reverse cowgirl -pretzel/0007.jpg", + "reverse cowgirl -pretzel/617.jpg" + ], + "evidence_notes": "Contact-sheet review preserved this as a two-sample pretzel-posture source pool. The folder is useful cue evidence but too thin for a selected normal-camera route." + } + ], + "review_items": [ + { + "reference_image": "reverse cowgirl -pretzel/0007.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved this as a two-sample pretzel-posture source pool. The folder is useful cue evidence but too thin for a selected normal-camera route.", + "index": 1 + }, + { + "reference_image": "reverse cowgirl -pretzel/617.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved this as a two-sample pretzel-posture source pool. The folder is useful cue evidence but too thin for a selected normal-camera route.", + "index": 2 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 2, + "image_count": 2, + "images": [ + { + "index": 1, + "reference_image": "reverse cowgirl -pretzel/0007.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved this as a two-sample pretzel-posture source pool. The folder is useful cue evidence but too thin for a selected normal-camera route." + }, + { + "index": 2, + "reference_image": "reverse cowgirl -pretzel/617.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved this as a two-sample pretzel-posture source pool. The folder is useful cue evidence but too thin for a selected normal-camera route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/reverse_cowgirl_review_manifest.json b/ab_batches/normal_camera/review/reverse_cowgirl_review_manifest.json new file mode 100644 index 0000000..f41dee7 --- /dev/null +++ b/ab_batches/normal_camera/review/reverse_cowgirl_review_manifest.json @@ -0,0 +1,4440 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "reverse cowgirl", + "folder_alias": { + "exact_source_folder": "reverse cowgirl", + "canonical_folder": "reverse cowgirl", + "canonical_key": "reverse_cowgirl", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 240, + "action_family": "reverse_cowgirl", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_reverse_cowgirl_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "reverse cowgirl/0001.jpg", + "reverse cowgirl/0004.jpg", + "reverse cowgirl/0005_4.jpg", + "reverse cowgirl/0014.jpg", + "reverse cowgirl/79.jpg", + "reverse cowgirl/82.jpg", + "reverse cowgirl/145.jpg", + "reverse cowgirl/260.jpg", + "reverse cowgirl/288.jpg", + "reverse cowgirl/319.jpg", + "reverse cowgirl/527.jpg", + "reverse cowgirl/608.jpg" + ], + "evidence_notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen." + }, + { + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "review_bucket": "front_three_quarter", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "reverse cowgirl/153.jpg", + "reverse cowgirl/153_2.jpg", + "reverse cowgirl/239_2.jpg", + "reverse cowgirl/239_3.jpg", + "reverse cowgirl/241.jpg", + "reverse cowgirl/241_2.jpg", + "reverse cowgirl/241_3.jpg", + "reverse cowgirl/257.jpg", + "reverse cowgirl/287.jpg", + "reverse cowgirl/323_2.jpg", + "reverse cowgirl/609.jpg", + "reverse cowgirl/609_2.jpg" + ], + "evidence_notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person." + }, + { + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "reverse cowgirl/0009.jpg", + "reverse cowgirl/0009_2.jpg", + "reverse cowgirl/0009_3.jpg", + "reverse cowgirl/0015.jpg", + "reverse cowgirl/0015_2.jpg", + "reverse cowgirl/0016_2.jpg", + "reverse cowgirl/170.jpg", + "reverse cowgirl/261.jpg", + "reverse cowgirl/332.jpg", + "reverse cowgirl/332_2.jpg", + "reverse cowgirl/551.jpg", + "reverse cowgirl/618.jpg" + ], + "evidence_notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset." + } + ], + "review_items": [ + { + "index": 1, + "reference_image": "reverse cowgirl/1.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/0001.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen.", + "index": 2 + }, + { + "index": 3, + "reference_image": "reverse cowgirl/0002.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 4, + "reference_image": "reverse cowgirl/0002_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 5, + "reference_image": "reverse cowgirl/0002_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 6, + "reference_image": "reverse cowgirl/0003.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 7, + "reference_image": "reverse cowgirl/0003_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 8, + "reference_image": "reverse cowgirl/4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/0004.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen.", + "index": 9 + }, + { + "index": 10, + "reference_image": "reverse cowgirl/0005.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 11, + "reference_image": "reverse cowgirl/0005_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 12, + "reference_image": "reverse cowgirl/0005_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/0005_4.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen.", + "index": 13 + }, + { + "index": 14, + "reference_image": "reverse cowgirl/0005_5.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 15, + "reference_image": "reverse cowgirl/6.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 16, + "reference_image": "reverse cowgirl/0006.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 17, + "reference_image": "reverse cowgirl/0006_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 18, + "reference_image": "reverse cowgirl/0006_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 19, + "reference_image": "reverse cowgirl/7.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 20, + "reference_image": "reverse cowgirl/0007.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 21, + "reference_image": "reverse cowgirl/7_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 22, + "reference_image": "reverse cowgirl/0007_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "reverse cowgirl/0007_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 24, + "reference_image": "reverse cowgirl/0007_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 25, + "reference_image": "reverse cowgirl/0008.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 26, + "reference_image": "reverse cowgirl/0008_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 27, + "reference_image": "reverse cowgirl/0008_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 28, + "reference_image": "reverse cowgirl/0008_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/0009.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset.", + "index": 29 + }, + { + "reference_image": "reverse cowgirl/0009_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset.", + "index": 30 + }, + { + "reference_image": "reverse cowgirl/0009_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset.", + "index": 31 + }, + { + "index": 32, + "reference_image": "reverse cowgirl/0011.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 33, + "reference_image": "reverse cowgirl/0012.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 34, + "reference_image": "reverse cowgirl/0012_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 35, + "reference_image": "reverse cowgirl/0012_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 36, + "reference_image": "reverse cowgirl/13.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 37, + "reference_image": "reverse cowgirl/0013.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 38, + "reference_image": "reverse cowgirl/14.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/0014.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen.", + "index": 39 + }, + { + "index": 40, + "reference_image": "reverse cowgirl/0014_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 41, + "reference_image": "reverse cowgirl/0014_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 42, + "reference_image": "reverse cowgirl/0014_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/0015.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset.", + "index": 43 + }, + { + "reference_image": "reverse cowgirl/0015_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset.", + "index": 44 + }, + { + "index": 45, + "reference_image": "reverse cowgirl/0015_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 46, + "reference_image": "reverse cowgirl/0016.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/0016_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset.", + "index": 47 + }, + { + "index": 48, + "reference_image": "reverse cowgirl/0016_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 49, + "reference_image": "reverse cowgirl/0016_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 50, + "reference_image": "reverse cowgirl/0018.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 51, + "reference_image": "reverse cowgirl/0018_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 52, + "reference_image": "reverse cowgirl/0018_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 53, + "reference_image": "reverse cowgirl/0018_4.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 54, + "reference_image": "reverse cowgirl/19.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 55, + "reference_image": "reverse cowgirl/0019.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 56, + "reference_image": "reverse cowgirl/19_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 57, + "reference_image": "reverse cowgirl/0019_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 58, + "reference_image": "reverse cowgirl/0021.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 59, + "reference_image": "reverse cowgirl/22.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 60, + "reference_image": "reverse cowgirl/27.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 61, + "reference_image": "reverse cowgirl/29.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 62, + "reference_image": "reverse cowgirl/29_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 63, + "reference_image": "reverse cowgirl/35.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 64, + "reference_image": "reverse cowgirl/36.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 65, + "reference_image": "reverse cowgirl/42.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 66, + "reference_image": "reverse cowgirl/48.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 67, + "reference_image": "reverse cowgirl/48_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 68, + "reference_image": "reverse cowgirl/52.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 69, + "reference_image": "reverse cowgirl/52_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 70, + "reference_image": "reverse cowgirl/58.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 71, + "reference_image": "reverse cowgirl/58_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 72, + "reference_image": "reverse cowgirl/61.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 73, + "reference_image": "reverse cowgirl/62.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 74, + "reference_image": "reverse cowgirl/63.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 75, + "reference_image": "reverse cowgirl/64.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 76, + "reference_image": "reverse cowgirl/64_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 77, + "reference_image": "reverse cowgirl/65.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 78, + "reference_image": "reverse cowgirl/72.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 79, + "reference_image": "reverse cowgirl/73.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 80, + "reference_image": "reverse cowgirl/73_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 81, + "reference_image": "reverse cowgirl/77.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 82, + "reference_image": "reverse cowgirl/77_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/79.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen.", + "index": 83 + }, + { + "index": 84, + "reference_image": "reverse cowgirl/79_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 85, + "reference_image": "reverse cowgirl/80.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 86, + "reference_image": "reverse cowgirl/80_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 87, + "reference_image": "reverse cowgirl/81.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/82.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen.", + "index": 88 + }, + { + "index": 89, + "reference_image": "reverse cowgirl/109.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 90, + "reference_image": "reverse cowgirl/112.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 91, + "reference_image": "reverse cowgirl/113.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 92, + "reference_image": "reverse cowgirl/122.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 93, + "reference_image": "reverse cowgirl/122_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 94, + "reference_image": "reverse cowgirl/137.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/145.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen.", + "index": 95 + }, + { + "index": 96, + "reference_image": "reverse cowgirl/145_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/153.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_three_quarter", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person.", + "index": 97 + }, + { + "reference_image": "reverse cowgirl/153_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_three_quarter", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person.", + "index": 98 + }, + { + "index": 99, + "reference_image": "reverse cowgirl/159.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 100, + "reference_image": "reverse cowgirl/159_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/170.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset.", + "index": 101 + }, + { + "index": 102, + "reference_image": "reverse cowgirl/171.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 103, + "reference_image": "reverse cowgirl/172.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 104, + "reference_image": "reverse cowgirl/174.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 105, + "reference_image": "reverse cowgirl/179.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 106, + "reference_image": "reverse cowgirl/182.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 107, + "reference_image": "reverse cowgirl/183.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 108, + "reference_image": "reverse cowgirl/184.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 109, + "reference_image": "reverse cowgirl/206.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 110, + "reference_image": "reverse cowgirl/210.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 111, + "reference_image": "reverse cowgirl/217.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 112, + "reference_image": "reverse cowgirl/218.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 113, + "reference_image": "reverse cowgirl/221.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 114, + "reference_image": "reverse cowgirl/226.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 115, + "reference_image": "reverse cowgirl/226_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 116, + "reference_image": "reverse cowgirl/227.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 117, + "reference_image": "reverse cowgirl/232.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 118, + "reference_image": "reverse cowgirl/233.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 119, + "reference_image": "reverse cowgirl/234.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 120, + "reference_image": "reverse cowgirl/239.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/239_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_three_quarter", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person.", + "index": 121 + }, + { + "reference_image": "reverse cowgirl/239_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_three_quarter", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person.", + "index": 122 + }, + { + "reference_image": "reverse cowgirl/241.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_three_quarter", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person.", + "index": 123 + }, + { + "reference_image": "reverse cowgirl/241_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_three_quarter", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person.", + "index": 124 + }, + { + "reference_image": "reverse cowgirl/241_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_three_quarter", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person.", + "index": 125 + }, + { + "index": 126, + "reference_image": "reverse cowgirl/245.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 127, + "reference_image": "reverse cowgirl/249.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 128, + "reference_image": "reverse cowgirl/251.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 129, + "reference_image": "reverse cowgirl/256.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/257.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_three_quarter", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person.", + "index": 130 + }, + { + "index": 131, + "reference_image": "reverse cowgirl/258.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 132, + "reference_image": "reverse cowgirl/258_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 133, + "reference_image": "reverse cowgirl/259.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 134, + "reference_image": "reverse cowgirl/259_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/260.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen.", + "index": 135 + }, + { + "index": 136, + "reference_image": "reverse cowgirl/260_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/261.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset.", + "index": 137 + }, + { + "index": 138, + "reference_image": "reverse cowgirl/262.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 139, + "reference_image": "reverse cowgirl/263.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 140, + "reference_image": "reverse cowgirl/266.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 141, + "reference_image": "reverse cowgirl/267.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 142, + "reference_image": "reverse cowgirl/268.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 143, + "reference_image": "reverse cowgirl/268_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 144, + "reference_image": "reverse cowgirl/270.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 145, + "reference_image": "reverse cowgirl/273.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 146, + "reference_image": "reverse cowgirl/276.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 147, + "reference_image": "reverse cowgirl/276_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 148, + "reference_image": "reverse cowgirl/278.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 149, + "reference_image": "reverse cowgirl/280.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 150, + "reference_image": "reverse cowgirl/281.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 151, + "reference_image": "reverse cowgirl/285.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/287.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_three_quarter", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person.", + "index": 152 + }, + { + "reference_image": "reverse cowgirl/288.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen.", + "index": 153 + }, + { + "index": 154, + "reference_image": "reverse cowgirl/288_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 155, + "reference_image": "reverse cowgirl/290.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 156, + "reference_image": "reverse cowgirl/290_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 157, + "reference_image": "reverse cowgirl/292.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 158, + "reference_image": "reverse cowgirl/294.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 159, + "reference_image": "reverse cowgirl/296.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 160, + "reference_image": "reverse cowgirl/296_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 161, + "reference_image": "reverse cowgirl/296_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 162, + "reference_image": "reverse cowgirl/297.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 163, + "reference_image": "reverse cowgirl/298.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 164, + "reference_image": "reverse cowgirl/298_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 165, + "reference_image": "reverse cowgirl/298_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 166, + "reference_image": "reverse cowgirl/302.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 167, + "reference_image": "reverse cowgirl/304.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 168, + "reference_image": "reverse cowgirl/305.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 169, + "reference_image": "reverse cowgirl/305_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 170, + "reference_image": "reverse cowgirl/309.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 171, + "reference_image": "reverse cowgirl/311.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 172, + "reference_image": "reverse cowgirl/314.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 173, + "reference_image": "reverse cowgirl/317.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/319.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen.", + "index": 174 + }, + { + "index": 175, + "reference_image": "reverse cowgirl/319_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 176, + "reference_image": "reverse cowgirl/320.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 177, + "reference_image": "reverse cowgirl/322.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 178, + "reference_image": "reverse cowgirl/323.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/323_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_three_quarter", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person.", + "index": 179 + }, + { + "index": 180, + "reference_image": "reverse cowgirl/327.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 181, + "reference_image": "reverse cowgirl/331.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/332.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset.", + "index": 182 + }, + { + "reference_image": "reverse cowgirl/332_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset.", + "index": 183 + }, + { + "index": 184, + "reference_image": "reverse cowgirl/333.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 185, + "reference_image": "reverse cowgirl/338.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 186, + "reference_image": "reverse cowgirl/338_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 187, + "reference_image": "reverse cowgirl/342.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 188, + "reference_image": "reverse cowgirl/345.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 189, + "reference_image": "reverse cowgirl/345_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 190, + "reference_image": "reverse cowgirl/346.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 191, + "reference_image": "reverse cowgirl/349.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 192, + "reference_image": "reverse cowgirl/362.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 193, + "reference_image": "reverse cowgirl/370.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 194, + "reference_image": "reverse cowgirl/371.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 195, + "reference_image": "reverse cowgirl/372.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 196, + "reference_image": "reverse cowgirl/373.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 197, + "reference_image": "reverse cowgirl/377.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 198, + "reference_image": "reverse cowgirl/377_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 199, + "reference_image": "reverse cowgirl/377_3.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 200, + "reference_image": "reverse cowgirl/378.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 201, + "reference_image": "reverse cowgirl/379.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 202, + "reference_image": "reverse cowgirl/497.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 203, + "reference_image": "reverse cowgirl/497_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 204, + "reference_image": "reverse cowgirl/499.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 205, + "reference_image": "reverse cowgirl/509.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 206, + "reference_image": "reverse cowgirl/521.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 207, + "reference_image": "reverse cowgirl/521_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/527.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen.", + "index": 208 + }, + { + "index": 209, + "reference_image": "reverse cowgirl/527_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 210, + "reference_image": "reverse cowgirl/532.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 211, + "reference_image": "reverse cowgirl/535.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 212, + "reference_image": "reverse cowgirl/536.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 213, + "reference_image": "reverse cowgirl/538.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 214, + "reference_image": "reverse cowgirl/542.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 215, + "reference_image": "reverse cowgirl/547.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 216, + "reference_image": "reverse cowgirl/548.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 217, + "reference_image": "reverse cowgirl/549.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 218, + "reference_image": "reverse cowgirl/549_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/551.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset.", + "index": 219 + }, + { + "index": 220, + "reference_image": "reverse cowgirl/552.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 221, + "reference_image": "reverse cowgirl/568.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 222, + "reference_image": "reverse cowgirl/588.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 223, + "reference_image": "reverse cowgirl/590.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 224, + "reference_image": "reverse cowgirl/595.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 225, + "reference_image": "reverse cowgirl/597.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 226, + "reference_image": "reverse cowgirl/597_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 227, + "reference_image": "reverse cowgirl/598.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 228, + "reference_image": "reverse cowgirl/601.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 229, + "reference_image": "reverse cowgirl/607.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/608.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_front_view", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen.", + "index": 230 + }, + { + "index": 231, + "reference_image": "reverse cowgirl/608_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/609.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_three_quarter", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person.", + "index": 232 + }, + { + "reference_image": "reverse cowgirl/609_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_three_quarter", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "selection_date": "2026-07-02", + "review_notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person.", + "index": 233 + }, + { + "index": 234, + "reference_image": "reverse cowgirl/611.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 235, + "reference_image": "reverse cowgirl/613.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 236, + "reference_image": "reverse cowgirl/614.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 237, + "reference_image": "reverse cowgirl/614_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 238, + "reference_image": "reverse cowgirl/615.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 239, + "reference_image": "reverse cowgirl/617.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "reverse cowgirl/618.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset.", + "index": 240 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 40, + "image_count": 40, + "images": [ + { + "index": 1, + "reference_image": "reverse cowgirl/1.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 2, + "reference_image": "reverse cowgirl/0001.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_view", + "notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen." + }, + { + "index": 3, + "reference_image": "reverse cowgirl/0002.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 4, + "reference_image": "reverse cowgirl/0002_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "reverse cowgirl/0002_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 6, + "reference_image": "reverse cowgirl/0003.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 7, + "reference_image": "reverse cowgirl/0003_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 8, + "reference_image": "reverse cowgirl/4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "reverse cowgirl/0004.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_view", + "notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen." + }, + { + "index": 10, + "reference_image": "reverse cowgirl/0005.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "reverse cowgirl/0005_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "reverse cowgirl/0005_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "reverse cowgirl/0005_4.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_view", + "notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen." + }, + { + "index": 14, + "reference_image": "reverse cowgirl/0005_5.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "reverse cowgirl/6.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "reverse cowgirl/0006.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "reverse cowgirl/0006_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 18, + "reference_image": "reverse cowgirl/0006_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 19, + "reference_image": "reverse cowgirl/7.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "reverse cowgirl/0007.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 21, + "reference_image": "reverse cowgirl/7_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "reverse cowgirl/0007_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "reverse cowgirl/0007_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "reverse cowgirl/0007_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "reverse cowgirl/0008.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "reverse cowgirl/0008_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 27, + "reference_image": "reverse cowgirl/0008_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "reverse cowgirl/0008_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 29, + "reference_image": "reverse cowgirl/0009.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset." + }, + { + "index": 30, + "reference_image": "reverse cowgirl/0009_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset." + }, + { + "index": 31, + "reference_image": "reverse cowgirl/0009_3.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset." + }, + { + "index": 32, + "reference_image": "reverse cowgirl/0011.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "reverse cowgirl/0012.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 34, + "reference_image": "reverse cowgirl/0012_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 35, + "reference_image": "reverse cowgirl/0012_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 36, + "reference_image": "reverse cowgirl/13.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 37, + "reference_image": "reverse cowgirl/0013.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 38, + "reference_image": "reverse cowgirl/14.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 39, + "reference_image": "reverse cowgirl/0014.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_view", + "notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen." + }, + { + "index": 40, + "reference_image": "reverse cowgirl/0014_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 2, + "html_anchor": "page-02", + "start_index": 41, + "end_index": 80, + "image_count": 40, + "images": [ + { + "index": 41, + "reference_image": "reverse cowgirl/0014_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 42, + "reference_image": "reverse cowgirl/0014_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 43, + "reference_image": "reverse cowgirl/0015.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset." + }, + { + "index": 44, + "reference_image": "reverse cowgirl/0015_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset." + }, + { + "index": 45, + "reference_image": "reverse cowgirl/0015_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 46, + "reference_image": "reverse cowgirl/0016.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 47, + "reference_image": "reverse cowgirl/0016_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset." + }, + { + "index": 48, + "reference_image": "reverse cowgirl/0016_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 49, + "reference_image": "reverse cowgirl/0016_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 50, + "reference_image": "reverse cowgirl/0018.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 51, + "reference_image": "reverse cowgirl/0018_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 52, + "reference_image": "reverse cowgirl/0018_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 53, + "reference_image": "reverse cowgirl/0018_4.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 54, + "reference_image": "reverse cowgirl/19.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 55, + "reference_image": "reverse cowgirl/0019.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 56, + "reference_image": "reverse cowgirl/19_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 57, + "reference_image": "reverse cowgirl/0019_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 58, + "reference_image": "reverse cowgirl/0021.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 59, + "reference_image": "reverse cowgirl/22.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 60, + "reference_image": "reverse cowgirl/27.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 61, + "reference_image": "reverse cowgirl/29.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 62, + "reference_image": "reverse cowgirl/29_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 63, + "reference_image": "reverse cowgirl/35.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 64, + "reference_image": "reverse cowgirl/36.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 65, + "reference_image": "reverse cowgirl/42.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 66, + "reference_image": "reverse cowgirl/48.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 67, + "reference_image": "reverse cowgirl/48_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 68, + "reference_image": "reverse cowgirl/52.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 69, + "reference_image": "reverse cowgirl/52_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 70, + "reference_image": "reverse cowgirl/58.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 71, + "reference_image": "reverse cowgirl/58_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 72, + "reference_image": "reverse cowgirl/61.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 73, + "reference_image": "reverse cowgirl/62.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 74, + "reference_image": "reverse cowgirl/63.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 75, + "reference_image": "reverse cowgirl/64.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 76, + "reference_image": "reverse cowgirl/64_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 77, + "reference_image": "reverse cowgirl/65.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 78, + "reference_image": "reverse cowgirl/72.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 79, + "reference_image": "reverse cowgirl/73.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 80, + "reference_image": "reverse cowgirl/73_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 3, + "html_anchor": "page-03", + "start_index": 81, + "end_index": 120, + "image_count": 40, + "images": [ + { + "index": 81, + "reference_image": "reverse cowgirl/77.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 82, + "reference_image": "reverse cowgirl/77_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 83, + "reference_image": "reverse cowgirl/79.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_view", + "notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen." + }, + { + "index": 84, + "reference_image": "reverse cowgirl/79_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 85, + "reference_image": "reverse cowgirl/80.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 86, + "reference_image": "reverse cowgirl/80_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 87, + "reference_image": "reverse cowgirl/81.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 88, + "reference_image": "reverse cowgirl/82.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_view", + "notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen." + }, + { + "index": 89, + "reference_image": "reverse cowgirl/109.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 90, + "reference_image": "reverse cowgirl/112.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 91, + "reference_image": "reverse cowgirl/113.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 92, + "reference_image": "reverse cowgirl/122.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 93, + "reference_image": "reverse cowgirl/122_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 94, + "reference_image": "reverse cowgirl/137.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 95, + "reference_image": "reverse cowgirl/145.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_view", + "notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen." + }, + { + "index": 96, + "reference_image": "reverse cowgirl/145_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 97, + "reference_image": "reverse cowgirl/153.jpg", + "review_bucket": "front_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person." + }, + { + "index": 98, + "reference_image": "reverse cowgirl/153_2.jpg", + "review_bucket": "front_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person." + }, + { + "index": 99, + "reference_image": "reverse cowgirl/159.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 100, + "reference_image": "reverse cowgirl/159_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 101, + "reference_image": "reverse cowgirl/170.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset." + }, + { + "index": 102, + "reference_image": "reverse cowgirl/171.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 103, + "reference_image": "reverse cowgirl/172.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 104, + "reference_image": "reverse cowgirl/174.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 105, + "reference_image": "reverse cowgirl/179.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 106, + "reference_image": "reverse cowgirl/182.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 107, + "reference_image": "reverse cowgirl/183.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 108, + "reference_image": "reverse cowgirl/184.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 109, + "reference_image": "reverse cowgirl/206.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 110, + "reference_image": "reverse cowgirl/210.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 111, + "reference_image": "reverse cowgirl/217.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 112, + "reference_image": "reverse cowgirl/218.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 113, + "reference_image": "reverse cowgirl/221.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 114, + "reference_image": "reverse cowgirl/226.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 115, + "reference_image": "reverse cowgirl/226_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 116, + "reference_image": "reverse cowgirl/227.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 117, + "reference_image": "reverse cowgirl/232.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 118, + "reference_image": "reverse cowgirl/233.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 119, + "reference_image": "reverse cowgirl/234.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 120, + "reference_image": "reverse cowgirl/239.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 4, + "html_anchor": "page-04", + "start_index": 121, + "end_index": 160, + "image_count": 40, + "images": [ + { + "index": 121, + "reference_image": "reverse cowgirl/239_2.jpg", + "review_bucket": "front_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person." + }, + { + "index": 122, + "reference_image": "reverse cowgirl/239_3.jpg", + "review_bucket": "front_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person." + }, + { + "index": 123, + "reference_image": "reverse cowgirl/241.jpg", + "review_bucket": "front_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person." + }, + { + "index": 124, + "reference_image": "reverse cowgirl/241_2.jpg", + "review_bucket": "front_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person." + }, + { + "index": 125, + "reference_image": "reverse cowgirl/241_3.jpg", + "review_bucket": "front_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person." + }, + { + "index": 126, + "reference_image": "reverse cowgirl/245.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 127, + "reference_image": "reverse cowgirl/249.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 128, + "reference_image": "reverse cowgirl/251.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 129, + "reference_image": "reverse cowgirl/256.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 130, + "reference_image": "reverse cowgirl/257.jpg", + "review_bucket": "front_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person." + }, + { + "index": 131, + "reference_image": "reverse cowgirl/258.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 132, + "reference_image": "reverse cowgirl/258_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 133, + "reference_image": "reverse cowgirl/259.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 134, + "reference_image": "reverse cowgirl/259_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 135, + "reference_image": "reverse cowgirl/260.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_view", + "notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen." + }, + { + "index": 136, + "reference_image": "reverse cowgirl/260_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 137, + "reference_image": "reverse cowgirl/261.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset." + }, + { + "index": 138, + "reference_image": "reverse cowgirl/262.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 139, + "reference_image": "reverse cowgirl/263.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 140, + "reference_image": "reverse cowgirl/266.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 141, + "reference_image": "reverse cowgirl/267.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 142, + "reference_image": "reverse cowgirl/268.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 143, + "reference_image": "reverse cowgirl/268_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 144, + "reference_image": "reverse cowgirl/270.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 145, + "reference_image": "reverse cowgirl/273.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 146, + "reference_image": "reverse cowgirl/276.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 147, + "reference_image": "reverse cowgirl/276_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 148, + "reference_image": "reverse cowgirl/278.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 149, + "reference_image": "reverse cowgirl/280.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 150, + "reference_image": "reverse cowgirl/281.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 151, + "reference_image": "reverse cowgirl/285.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 152, + "reference_image": "reverse cowgirl/287.jpg", + "review_bucket": "front_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person." + }, + { + "index": 153, + "reference_image": "reverse cowgirl/288.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_view", + "notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen." + }, + { + "index": 154, + "reference_image": "reverse cowgirl/288_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 155, + "reference_image": "reverse cowgirl/290.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 156, + "reference_image": "reverse cowgirl/290_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 157, + "reference_image": "reverse cowgirl/292.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 158, + "reference_image": "reverse cowgirl/294.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 159, + "reference_image": "reverse cowgirl/296.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 160, + "reference_image": "reverse cowgirl/296_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 5, + "html_anchor": "page-05", + "start_index": 161, + "end_index": 200, + "image_count": 40, + "images": [ + { + "index": 161, + "reference_image": "reverse cowgirl/296_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 162, + "reference_image": "reverse cowgirl/297.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 163, + "reference_image": "reverse cowgirl/298.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 164, + "reference_image": "reverse cowgirl/298_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 165, + "reference_image": "reverse cowgirl/298_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 166, + "reference_image": "reverse cowgirl/302.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 167, + "reference_image": "reverse cowgirl/304.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 168, + "reference_image": "reverse cowgirl/305.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 169, + "reference_image": "reverse cowgirl/305_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 170, + "reference_image": "reverse cowgirl/309.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 171, + "reference_image": "reverse cowgirl/311.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 172, + "reference_image": "reverse cowgirl/314.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 173, + "reference_image": "reverse cowgirl/317.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 174, + "reference_image": "reverse cowgirl/319.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_view", + "notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen." + }, + { + "index": 175, + "reference_image": "reverse cowgirl/319_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 176, + "reference_image": "reverse cowgirl/320.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 177, + "reference_image": "reverse cowgirl/322.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 178, + "reference_image": "reverse cowgirl/323.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 179, + "reference_image": "reverse cowgirl/323_2.jpg", + "review_bucket": "front_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person." + }, + { + "index": 180, + "reference_image": "reverse cowgirl/327.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 181, + "reference_image": "reverse cowgirl/331.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 182, + "reference_image": "reverse cowgirl/332.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset." + }, + { + "index": 183, + "reference_image": "reverse cowgirl/332_2.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset." + }, + { + "index": 184, + "reference_image": "reverse cowgirl/333.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 185, + "reference_image": "reverse cowgirl/338.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 186, + "reference_image": "reverse cowgirl/338_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 187, + "reference_image": "reverse cowgirl/342.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 188, + "reference_image": "reverse cowgirl/345.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 189, + "reference_image": "reverse cowgirl/345_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 190, + "reference_image": "reverse cowgirl/346.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 191, + "reference_image": "reverse cowgirl/349.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 192, + "reference_image": "reverse cowgirl/362.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 193, + "reference_image": "reverse cowgirl/370.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 194, + "reference_image": "reverse cowgirl/371.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 195, + "reference_image": "reverse cowgirl/372.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 196, + "reference_image": "reverse cowgirl/373.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 197, + "reference_image": "reverse cowgirl/377.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 198, + "reference_image": "reverse cowgirl/377_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 199, + "reference_image": "reverse cowgirl/377_3.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 200, + "reference_image": "reverse cowgirl/378.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 6, + "html_anchor": "page-06", + "start_index": 201, + "end_index": 240, + "image_count": 40, + "images": [ + { + "index": 201, + "reference_image": "reverse cowgirl/379.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 202, + "reference_image": "reverse cowgirl/497.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 203, + "reference_image": "reverse cowgirl/497_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 204, + "reference_image": "reverse cowgirl/499.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 205, + "reference_image": "reverse cowgirl/509.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 206, + "reference_image": "reverse cowgirl/521.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 207, + "reference_image": "reverse cowgirl/521_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 208, + "reference_image": "reverse cowgirl/527.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_view", + "notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen." + }, + { + "index": 209, + "reference_image": "reverse cowgirl/527_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 210, + "reference_image": "reverse cowgirl/532.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 211, + "reference_image": "reverse cowgirl/535.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 212, + "reference_image": "reverse cowgirl/536.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 213, + "reference_image": "reverse cowgirl/538.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 214, + "reference_image": "reverse cowgirl/542.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 215, + "reference_image": "reverse cowgirl/547.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 216, + "reference_image": "reverse cowgirl/548.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 217, + "reference_image": "reverse cowgirl/549.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 218, + "reference_image": "reverse cowgirl/549_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 219, + "reference_image": "reverse cowgirl/551.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset." + }, + { + "index": 220, + "reference_image": "reverse cowgirl/552.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 221, + "reference_image": "reverse cowgirl/568.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 222, + "reference_image": "reverse cowgirl/588.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 223, + "reference_image": "reverse cowgirl/590.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 224, + "reference_image": "reverse cowgirl/595.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 225, + "reference_image": "reverse cowgirl/597.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 226, + "reference_image": "reverse cowgirl/597_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 227, + "reference_image": "reverse cowgirl/598.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 228, + "reference_image": "reverse cowgirl/601.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 229, + "reference_image": "reverse cowgirl/607.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 230, + "reference_image": "reverse cowgirl/608.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_view", + "notes": "Paged review found a repeated front-facing reverse-cowgirl camera family across the large mixed source folder. Rear and side labels remain covered by the existing dedicated source folders until cleaner selected subsets are chosen." + }, + { + "index": 231, + "reference_image": "reverse cowgirl/608_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 232, + "reference_image": "reverse cowgirl/609.jpg", + "review_bucket": "front_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person." + }, + { + "index": 233, + "reference_image": "reverse cowgirl/609_2.jpg", + "review_bucket": "front_three_quarter", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "notes": "Paged review found a repeated front-offset reverse-cowgirl camera family where the woman's body turns partly toward camera while the partner remains visible below or behind her in third person." + }, + { + "index": 234, + "reference_image": "reverse cowgirl/611.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 235, + "reference_image": "reverse cowgirl/613.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 236, + "reference_image": "reverse cowgirl/614.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 237, + "reference_image": "reverse cowgirl/614_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 238, + "reference_image": "reverse cowgirl/615.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 239, + "reference_image": "reverse cowgirl/617.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 240, + "reference_image": "reverse cowgirl/618.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "notes": "Residual-pool review found a repeated low-close front-view reverse-cowgirl family where the foreground contact plane dominates while the subject remains visible in third-person framing. Wider room-context front views stay in the existing front-view subset." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/rimjob_contact_sheet.html b/ab_batches/normal_camera/review/rimjob_contact_sheet.html new file mode 100644 index 0000000..1494d78 --- /dev/null +++ b/ab_batches/normal_camera/review/rimjob_contact_sheet.html @@ -0,0 +1,49 @@ + + + + +Normal Camera Review Contact Sheet: rimjob + + + +

Normal Camera Review Contact Sheet: rimjob

+

No-generation contact sheet. 3 JPGs from rimjob. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: rimjob.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-3

+
+
+rimjob/0003.jpg +
001 rimjob/0003.jpgbucket: reject_or_unclear / normal_rimjob_mixed_camera_folder_pool
+
+
+rimjob/0010.jpg +
002 rimjob/0010.jpgbucket: reject_or_unclear / normal_rimjob_mixed_camera_folder_pool
+
+
+rimjob/0018.jpg +
003 rimjob/0018.jpgbucket: reject_or_unclear / normal_rimjob_mixed_camera_folder_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/rimjob_review_manifest.json b/ab_batches/normal_camera/review/rimjob_review_manifest.json new file mode 100644 index 0000000..1cd75b4 --- /dev/null +++ b/ab_batches/normal_camera/review/rimjob_review_manifest.json @@ -0,0 +1,111 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "rimjob", + "folder_alias": { + "exact_source_folder": "rimjob", + "canonical_folder": "rimjob", + "canonical_key": "rimjob", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 3, + "action_family": "oral_other", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_rimjob_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "rimjob/0003.jpg", + "rimjob/0010.jpg", + "rimjob/0018.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples mix close side/back oral-contact framing with wider kneeling context and are too thin for a selected pre-A/B route." + } + ], + "review_items": [ + { + "reference_image": "rimjob/0003.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_rimjob_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples mix close side/back oral-contact framing with wider kneeling context and are too thin for a selected pre-A/B route.", + "index": 1 + }, + { + "reference_image": "rimjob/0010.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_rimjob_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples mix close side/back oral-contact framing with wider kneeling context and are too thin for a selected pre-A/B route.", + "index": 2 + }, + { + "reference_image": "rimjob/0018.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_rimjob_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples mix close side/back oral-contact framing with wider kneeling context and are too thin for a selected pre-A/B route.", + "index": 3 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 3, + "image_count": 3, + "images": [ + { + "index": 1, + "reference_image": "rimjob/0003.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_rimjob_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples mix close side/back oral-contact framing with wider kneeling context and are too thin for a selected pre-A/B route." + }, + { + "index": 2, + "reference_image": "rimjob/0010.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_rimjob_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples mix close side/back oral-contact framing with wider kneeling context and are too thin for a selected pre-A/B route." + }, + { + "index": 3, + "reference_image": "rimjob/0018.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_rimjob_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the full folder as a mixed source-pool anchor. The three samples mix close side/back oral-contact framing with wider kneeling context and are too thin for a selected pre-A/B route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/under_desk_contact_sheet.html b/ab_batches/normal_camera/review/under_desk_contact_sheet.html new file mode 100644 index 0000000..878e359 --- /dev/null +++ b/ab_batches/normal_camera/review/under_desk_contact_sheet.html @@ -0,0 +1,41 @@ + + + + +Normal Camera Review Contact Sheet: under desk + + + +

Normal Camera Review Contact Sheet: under desk

+

No-generation contact sheet. 1 JPGs from under desk. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: under desk.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-1

+
+
+under desk/347.jpg +
001 under desk/347.jpgbucket: reject_or_unclear / normal_under_desk_single_reference_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/under_desk_review_manifest.json b/ab_batches/normal_camera/review/under_desk_review_manifest.json new file mode 100644 index 0000000..28a8892 --- /dev/null +++ b/ab_batches/normal_camera/review/under_desk_review_manifest.json @@ -0,0 +1,75 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "under desk", + "folder_alias": { + "exact_source_folder": "under desk", + "canonical_folder": "under desk", + "canonical_key": "under_desk", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 1, + "action_family": "oral_other", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_under_desk_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "under desk/347.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the one under-desk context sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ], + "review_items": [ + { + "reference_image": "under desk/347.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_under_desk_single_reference_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the one under-desk context sample as coverage evidence only. A single image cannot define a stable normal-camera route.", + "index": 1 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 1, + "image_count": 1, + "images": [ + { + "index": 1, + "reference_image": "under desk/347.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_under_desk_single_reference_pool", + "notes": "Contact-sheet review preserved the one under-desk context sample as coverage evidence only. A single image cannot define a stable normal-camera route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/wand_contact_sheet.html b/ab_batches/normal_camera/review/wand_contact_sheet.html new file mode 100644 index 0000000..dfa32eb --- /dev/null +++ b/ab_batches/normal_camera/review/wand_contact_sheet.html @@ -0,0 +1,73 @@ + + + + +Normal Camera Review Contact Sheet: wand + + + +

Normal Camera Review Contact Sheet: wand

+

No-generation contact sheet. 9 JPGs from wand. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: wand.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-9

+
+
+wand/0005.jpg +
001 wand/0005.jpgbucket: front_view / normal_wand_front_close_view
+
+
+wand/0015.jpg +
002 wand/0015.jpgbucket: front_view / normal_wand_front_close_view
+
+
+wand/0021.jpg +
003 wand/0021.jpgbucket: unassigned
+
+
+wand/75.jpg +
004 wand/75.jpgbucket: front_view / normal_wand_front_close_view
+
+
+wand/217.jpg +
005 wand/217.jpgbucket: front_view / normal_wand_front_close_view
+
+
+wand/508.jpg +
006 wand/508.jpgbucket: reject_or_unclear / normal_wand_mixed_camera_folder_pool
+
+
+wand/532.jpg +
007 wand/532.jpgbucket: front_view / normal_wand_front_close_view
+
+
+wand/561.jpg +
008 wand/561.jpgbucket: front_view / normal_wand_front_close_view
+
+
+wand/611.jpg +
009 wand/611.jpgbucket: front_view / normal_wand_front_close_view
+
+
+ + diff --git a/ab_batches/normal_camera/review/wand_review_manifest.json b/ab_batches/normal_camera/review/wand_review_manifest.json new file mode 100644 index 0000000..0ae8107 --- /dev/null +++ b/ab_batches/normal_camera/review/wand_review_manifest.json @@ -0,0 +1,230 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "wand", + "folder_alias": { + "exact_source_folder": "wand", + "canonical_folder": "wand", + "canonical_key": "wand", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 9, + "action_family": "manual_or_toy", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_wand_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "wand/0005.jpg", + "wand/508.jpg", + "wand/75.jpg" + ], + "evidence_notes": "Contact-sheet review preserved the folder as a mixed source-pool anchor. The source images include useful front-close tool-contact material, but side, portrait-close, and wider posture variation keep the full folder from being one locked prompt-ready route." + }, + { + "variant_key": "normal_wand_front_close_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "wand/0005.jpg", + "wand/0015.jpg", + "wand/217.jpg", + "wand/532.jpg", + "wand/561.jpg", + "wand/611.jpg", + "wand/75.jpg" + ], + "evidence_notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset." + } + ], + "review_items": [ + { + "reference_image": "wand/0005.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_wand_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset.", + "index": 1 + }, + { + "reference_image": "wand/0015.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_wand_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset.", + "index": 2 + }, + { + "index": 3, + "reference_image": "wand/0021.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "wand/75.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_wand_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset.", + "index": 4 + }, + { + "reference_image": "wand/217.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_wand_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset.", + "index": 5 + }, + { + "reference_image": "wand/508.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_wand_mixed_camera_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review preserved the folder as a mixed source-pool anchor. The source images include useful front-close tool-contact material, but side, portrait-close, and wider posture variation keep the full folder from being one locked prompt-ready route.", + "index": 6 + }, + { + "reference_image": "wand/532.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_wand_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset.", + "index": 7 + }, + { + "reference_image": "wand/561.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_wand_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset.", + "index": 8 + }, + { + "reference_image": "wand/611.jpg", + "review_decision": "selected_reference", + "review_bucket": "front_view", + "variant_key": "normal_wand_front_close_view", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset.", + "index": 9 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 9, + "image_count": 9, + "images": [ + { + "index": 1, + "reference_image": "wand/0005.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_wand_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset." + }, + { + "index": 2, + "reference_image": "wand/0015.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_wand_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset." + }, + { + "index": 3, + "reference_image": "wand/0021.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 4, + "reference_image": "wand/75.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_wand_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset." + }, + { + "index": 5, + "reference_image": "wand/217.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_wand_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset." + }, + { + "index": 6, + "reference_image": "wand/508.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_wand_mixed_camera_folder_pool", + "notes": "Contact-sheet review preserved the folder as a mixed source-pool anchor. The source images include useful front-close tool-contact material, but side, portrait-close, and wider posture variation keep the full folder from being one locked prompt-ready route." + }, + { + "index": 7, + "reference_image": "wand/532.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_wand_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset." + }, + { + "index": 8, + "reference_image": "wand/561.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_wand_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset." + }, + { + "index": 9, + "reference_image": "wand/611.jpg", + "review_bucket": "front_view", + "review_decision": "selected_reference", + "variant_key": "normal_wand_front_close_view", + "notes": "Contact-sheet review found a repeated front-close third-person family where the contact plane is centered and the wand remains readable as one continuous object. Side, portrait-close, and wider posture outliers remain outside this selected subset." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/woman_ass_exposed_contact_sheet.html b/ab_batches/normal_camera/review/woman_ass_exposed_contact_sheet.html new file mode 100644 index 0000000..2aa044d --- /dev/null +++ b/ab_batches/normal_camera/review/woman_ass_exposed_contact_sheet.html @@ -0,0 +1,53 @@ + + + + +Normal Camera Review Contact Sheet: woman ass exposed + + + +

Normal Camera Review Contact Sheet: woman ass exposed

+

No-generation contact sheet. 4 JPGs from woman ass exposed. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: woman ass exposed.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-4

+
+
+woman ass exposed/40.jpg +
001 woman ass exposed/40.jpgbucket: reject_or_unclear / normal_display_rear_exposed_body_folder_pool
+
+
+woman ass exposed/49.jpg +
002 woman ass exposed/49.jpgbucket: reject_or_unclear / normal_display_rear_exposed_body_folder_pool
+
+
+woman ass exposed/52.jpg +
003 woman ass exposed/52.jpgbucket: reject_or_unclear / normal_display_rear_exposed_body_folder_pool
+
+
+woman ass exposed/58.jpg +
004 woman ass exposed/58.jpgbucket: reject_or_unclear / normal_display_rear_exposed_body_folder_pool
+
+
+ + diff --git a/ab_batches/normal_camera/review/woman_ass_exposed_review_manifest.json b/ab_batches/normal_camera/review/woman_ass_exposed_review_manifest.json new file mode 100644 index 0000000..003f456 --- /dev/null +++ b/ab_batches/normal_camera/review/woman_ass_exposed_review_manifest.json @@ -0,0 +1,129 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "woman ass exposed", + "folder_alias": { + "exact_source_folder": "woman ass exposed", + "canonical_folder": "woman ass exposed", + "canonical_key": "woman_ass_exposed", + "alias_applied": false, + "alias_reason": "" + }, + "image_count": 4, + "action_family": "display", + "source_camera_view": "mixed_or_unspecified", + "source_catalog_status": "action_reference_only", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_display_rear_exposed_body_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "woman ass exposed/40.jpg", + "woman ass exposed/49.jpg", + "woman ass exposed/52.jpg", + "woman ass exposed/58.jpg" + ], + "evidence_notes": "Contact-sheet review records the existing rear exposed-body source pool with all four folder images. The folder is fully represented but remains too thin and camera-variable for a selected pre-A/B route." + } + ], + "review_items": [ + { + "reference_image": "woman ass exposed/40.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_display_rear_exposed_body_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review records the existing rear exposed-body source pool with all four folder images. The folder is fully represented but remains too thin and camera-variable for a selected pre-A/B route.", + "index": 1 + }, + { + "reference_image": "woman ass exposed/49.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_display_rear_exposed_body_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review records the existing rear exposed-body source pool with all four folder images. The folder is fully represented but remains too thin and camera-variable for a selected pre-A/B route.", + "index": 2 + }, + { + "reference_image": "woman ass exposed/52.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_display_rear_exposed_body_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review records the existing rear exposed-body source pool with all four folder images. The folder is fully represented but remains too thin and camera-variable for a selected pre-A/B route.", + "index": 3 + }, + { + "reference_image": "woman ass exposed/58.jpg", + "review_decision": "selected_reference", + "review_bucket": "reject_or_unclear", + "variant_key": "normal_display_rear_exposed_body_folder_pool", + "selection_date": "2026-07-02", + "review_notes": "Contact-sheet review records the existing rear exposed-body source pool with all four folder images. The folder is fully represented but remains too thin and camera-variable for a selected pre-A/B route.", + "index": 4 + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 4, + "image_count": 4, + "images": [ + { + "index": 1, + "reference_image": "woman ass exposed/40.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_exposed_body_folder_pool", + "notes": "Contact-sheet review records the existing rear exposed-body source pool with all four folder images. The folder is fully represented but remains too thin and camera-variable for a selected pre-A/B route." + }, + { + "index": 2, + "reference_image": "woman ass exposed/49.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_exposed_body_folder_pool", + "notes": "Contact-sheet review records the existing rear exposed-body source pool with all four folder images. The folder is fully represented but remains too thin and camera-variable for a selected pre-A/B route." + }, + { + "index": 3, + "reference_image": "woman ass exposed/52.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_exposed_body_folder_pool", + "notes": "Contact-sheet review records the existing rear exposed-body source pool with all four folder images. The folder is fully represented but remains too thin and camera-variable for a selected pre-A/B route." + }, + { + "index": 4, + "reference_image": "woman ass exposed/58.jpg", + "review_bucket": "reject_or_unclear", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_exposed_body_folder_pool", + "notes": "Contact-sheet review records the existing rear exposed-body source pool with all four folder images. The folder is fully represented but remains too thin and camera-variable for a selected pre-A/B route." + } + ] + } + ] +} diff --git a/ab_batches/normal_camera/review/woman_solo_showing_her_hass_back_view_contact_sheet.html b/ab_batches/normal_camera/review/woman_solo_showing_her_hass_back_view_contact_sheet.html new file mode 100644 index 0000000..ab03925 --- /dev/null +++ b/ab_batches/normal_camera/review/woman_solo_showing_her_hass_back_view_contact_sheet.html @@ -0,0 +1,439 @@ + + + + +Normal Camera Review Contact Sheet: woman solo showing her hass - back view + + + +

Normal Camera Review Contact Sheet: woman solo showing her hass - back view

+

No-generation contact sheet. 99 JPGs from woman solo showing her hass - back view. Review buckets are placeholders until visual review assigns them.

+

Canonical folder label: woman solo showing her ass - back view.

+
+
back_view
Rear-facing normal-camera view where back/hips face camera.
+
back_three_quarter
Rear-offset normal-camera view with enough side/torso context.
+
side_view
Profile or near-profile lateral view with the body/action axis across frame.
+
front_view
Front-facing normal-camera view where the contact plane faces camera.
+
front_three_quarter
Front-offset normal-camera view.
+
top_or_low_special
Overhead, high-downward, low-angle, or under-view special camera.
+
reject_or_unclear
POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.
+
+

Page 1: 1-40

+
+
+woman solo showing her hass - back view/0001.jpg +
001 woman solo showing her hass - back view/0001.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/0001_2.jpg +
002 woman solo showing her hass - back view/0001_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/0002.jpg +
003 woman solo showing her hass - back view/0002.jpgbucket: back_view / normal_display_rear_body_standing_back_view
+
+
+woman solo showing her hass - back view/0003.jpg +
004 woman solo showing her hass - back view/0003.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/0006.jpg +
005 woman solo showing her hass - back view/0006.jpgbucket: back_view / normal_display_rear_body_standing_back_view
+
+
+woman solo showing her hass - back view/0006_2.jpg +
006 woman solo showing her hass - back view/0006_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/0006_3.jpg +
007 woman solo showing her hass - back view/0006_3.jpgbucket: back_view / normal_display_rear_body_standing_back_view
+
+
+woman solo showing her hass - back view/0007.jpg +
008 woman solo showing her hass - back view/0007.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/0007_2.jpg +
009 woman solo showing her hass - back view/0007_2.jpgbucket: back_view / normal_display_rear_body_standing_back_view
+
+
+woman solo showing her hass - back view/0009.jpg +
010 woman solo showing her hass - back view/0009.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/0013.jpg +
011 woman solo showing her hass - back view/0013.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/0015.jpg +
012 woman solo showing her hass - back view/0015.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/0016.jpg +
013 woman solo showing her hass - back view/0016.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/0016_2.jpg +
014 woman solo showing her hass - back view/0016_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/17.jpg +
015 woman solo showing her hass - back view/17.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/0019.jpg +
016 woman solo showing her hass - back view/0019.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/0021.jpg +
017 woman solo showing her hass - back view/0021.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/73.jpg +
018 woman solo showing her hass - back view/73.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/76.jpg +
019 woman solo showing her hass - back view/76.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/80.jpg +
020 woman solo showing her hass - back view/80.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/112.jpg +
021 woman solo showing her hass - back view/112.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/114.jpg +
022 woman solo showing her hass - back view/114.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/118.jpg +
023 woman solo showing her hass - back view/118.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/121.jpg +
024 woman solo showing her hass - back view/121.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/124.jpg +
025 woman solo showing her hass - back view/124.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/138.jpg +
026 woman solo showing her hass - back view/138.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/153.jpg +
027 woman solo showing her hass - back view/153.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/153_2.jpg +
028 woman solo showing her hass - back view/153_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/155.jpg +
029 woman solo showing her hass - back view/155.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/155_2.jpg +
030 woman solo showing her hass - back view/155_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/157.jpg +
031 woman solo showing her hass - back view/157.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/160.jpg +
032 woman solo showing her hass - back view/160.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/161.jpg +
033 woman solo showing her hass - back view/161.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/162.jpg +
034 woman solo showing her hass - back view/162.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/162_2.jpg +
035 woman solo showing her hass - back view/162_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/169.jpg +
036 woman solo showing her hass - back view/169.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/169_2.jpg +
037 woman solo showing her hass - back view/169_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/171.jpg +
038 woman solo showing her hass - back view/171.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/174.jpg +
039 woman solo showing her hass - back view/174.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/175.jpg +
040 woman solo showing her hass - back view/175.jpgbucket: unassigned
+
+
+

Page 2: 41-80

+
+
+woman solo showing her hass - back view/181.jpg +
041 woman solo showing her hass - back view/181.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/182.jpg +
042 woman solo showing her hass - back view/182.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/182_2.jpg +
043 woman solo showing her hass - back view/182_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/189.jpg +
044 woman solo showing her hass - back view/189.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/197.jpg +
045 woman solo showing her hass - back view/197.jpgbucket: back_view / normal_display_rear_body_standing_back_view
+
+
+woman solo showing her hass - back view/207.jpg +
046 woman solo showing her hass - back view/207.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/215.jpg +
047 woman solo showing her hass - back view/215.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/230.jpg +
048 woman solo showing her hass - back view/230.jpgbucket: back_view / normal_display_rear_body_standing_back_view
+
+
+woman solo showing her hass - back view/232.jpg +
049 woman solo showing her hass - back view/232.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/235.jpg +
050 woman solo showing her hass - back view/235.jpgbucket: back_view / normal_display_rear_body_standing_back_view
+
+
+woman solo showing her hass - back view/241.jpg +
051 woman solo showing her hass - back view/241.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/242.jpg +
052 woman solo showing her hass - back view/242.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/248.jpg +
053 woman solo showing her hass - back view/248.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/256.jpg +
054 woman solo showing her hass - back view/256.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/269.jpg +
055 woman solo showing her hass - back view/269.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/270.jpg +
056 woman solo showing her hass - back view/270.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/280.jpg +
057 woman solo showing her hass - back view/280.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/287.jpg +
058 woman solo showing her hass - back view/287.jpgbucket: back_view / normal_display_rear_body_standing_back_view
+
+
+woman solo showing her hass - back view/293.jpg +
059 woman solo showing her hass - back view/293.jpgbucket: back_view / normal_display_rear_body_standing_back_view
+
+
+woman solo showing her hass - back view/300.jpg +
060 woman solo showing her hass - back view/300.jpgbucket: back_view / normal_display_rear_body_standing_back_view
+
+
+woman solo showing her hass - back view/301.jpg +
061 woman solo showing her hass - back view/301.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/304.jpg +
062 woman solo showing her hass - back view/304.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/305.jpg +
063 woman solo showing her hass - back view/305.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/313.jpg +
064 woman solo showing her hass - back view/313.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/313_2.jpg +
065 woman solo showing her hass - back view/313_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/314.jpg +
066 woman solo showing her hass - back view/314.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/315.jpg +
067 woman solo showing her hass - back view/315.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/321.jpg +
068 woman solo showing her hass - back view/321.jpgbucket: back_view / normal_display_rear_body_standing_back_view
+
+
+woman solo showing her hass - back view/322.jpg +
069 woman solo showing her hass - back view/322.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/331.jpg +
070 woman solo showing her hass - back view/331.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/331_2.jpg +
071 woman solo showing her hass - back view/331_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/344.jpg +
072 woman solo showing her hass - back view/344.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/346.jpg +
073 woman solo showing her hass - back view/346.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/346_2.jpg +
074 woman solo showing her hass - back view/346_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/348.jpg +
075 woman solo showing her hass - back view/348.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/348_2.jpg +
076 woman solo showing her hass - back view/348_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/349.jpg +
077 woman solo showing her hass - back view/349.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/368.jpg +
078 woman solo showing her hass - back view/368.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/497.jpg +
079 woman solo showing her hass - back view/497.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/498.jpg +
080 woman solo showing her hass - back view/498.jpgbucket: unassigned
+
+
+

Page 3: 81-99

+
+
+woman solo showing her hass - back view/499.jpg +
081 woman solo showing her hass - back view/499.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/505.jpg +
082 woman solo showing her hass - back view/505.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/505_2.jpg +
083 woman solo showing her hass - back view/505_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/521.jpg +
084 woman solo showing her hass - back view/521.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/521_2.jpg +
085 woman solo showing her hass - back view/521_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/529.jpg +
086 woman solo showing her hass - back view/529.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/534.jpg +
087 woman solo showing her hass - back view/534.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/534_2.jpg +
088 woman solo showing her hass - back view/534_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/540.jpg +
089 woman solo showing her hass - back view/540.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/545.jpg +
090 woman solo showing her hass - back view/545.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/556.jpg +
091 woman solo showing her hass - back view/556.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/556_2.jpg +
092 woman solo showing her hass - back view/556_2.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/594.jpg +
093 woman solo showing her hass - back view/594.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/604.jpg +
094 woman solo showing her hass - back view/604.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/608.jpg +
095 woman solo showing her hass - back view/608.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/610.jpg +
096 woman solo showing her hass - back view/610.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/612.jpg +
097 woman solo showing her hass - back view/612.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/617.jpg +
098 woman solo showing her hass - back view/617.jpgbucket: unassigned
+
+
+woman solo showing her hass - back view/624.jpg +
099 woman solo showing her hass - back view/624.jpgbucket: unassigned
+
+
+ + diff --git a/ab_batches/normal_camera/review/woman_solo_showing_her_hass_back_view_review_manifest.json b/ab_batches/normal_camera/review/woman_solo_showing_her_hass_back_view_review_manifest.json new file mode 100644 index 0000000..2f5280d --- /dev/null +++ b/ab_batches/normal_camera/review/woman_solo_showing_her_hass_back_view_review_manifest.json @@ -0,0 +1,1858 @@ +{ + "schema": "sxcp_normal_camera_review_manifest_v1", + "no_generation": true, + "atlas_root": "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", + "folder": "woman solo showing her hass - back view", + "folder_alias": { + "exact_source_folder": "woman solo showing her hass - back view", + "canonical_folder": "woman solo showing her ass - back view", + "canonical_key": "woman_solo_showing_her_ass_back_view", + "alias_applied": true, + "alias_reason": "Folder-name typo normalized for review metadata while preserving exact source path." + }, + "image_count": 99, + "action_family": "display", + "source_camera_view": "back_view", + "source_catalog_status": "camera_reference", + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples." + ], + "review_bucket_values": { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting." + }, + "selected_subvariants": [ + { + "variant_key": "normal_display_rear_body_standing_back_view", + "review_bucket": "back_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "woman solo showing her hass - back view/0002.jpg", + "woman solo showing her hass - back view/0006.jpg", + "woman solo showing her hass - back view/0006_3.jpg", + "woman solo showing her hass - back view/0007_2.jpg", + "woman solo showing her hass - back view/173.jpg", + "woman solo showing her hass - back view/197.jpg", + "woman solo showing her hass - back view/230.jpg", + "woman solo showing her hass - back view/235.jpg", + "woman solo showing her hass - back view/287.jpg", + "woman solo showing her hass - back view/293.jpg", + "woman solo showing her hass - back view/300.jpg", + "woman solo showing her hass - back view/321.jpg" + ], + "evidence_notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route." + } + ], + "review_items": [ + { + "index": 1, + "reference_image": "woman solo showing her hass - back view/0001.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 2, + "reference_image": "woman solo showing her hass - back view/0001_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "woman solo showing her hass - back view/0002.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_view", + "variant_key": "normal_display_rear_body_standing_back_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route.", + "index": 3 + }, + { + "index": 4, + "reference_image": "woman solo showing her hass - back view/0003.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "woman solo showing her hass - back view/0006.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_view", + "variant_key": "normal_display_rear_body_standing_back_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route.", + "index": 5 + }, + { + "index": 6, + "reference_image": "woman solo showing her hass - back view/0006_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "woman solo showing her hass - back view/0006_3.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_view", + "variant_key": "normal_display_rear_body_standing_back_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route.", + "index": 7 + }, + { + "index": 8, + "reference_image": "woman solo showing her hass - back view/0007.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "woman solo showing her hass - back view/0007_2.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_view", + "variant_key": "normal_display_rear_body_standing_back_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route.", + "index": 9 + }, + { + "index": 10, + "reference_image": "woman solo showing her hass - back view/0009.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 11, + "reference_image": "woman solo showing her hass - back view/0013.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 12, + "reference_image": "woman solo showing her hass - back view/0015.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 13, + "reference_image": "woman solo showing her hass - back view/0016.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 14, + "reference_image": "woman solo showing her hass - back view/0016_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 15, + "reference_image": "woman solo showing her hass - back view/17.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 16, + "reference_image": "woman solo showing her hass - back view/0019.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 17, + "reference_image": "woman solo showing her hass - back view/0021.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 18, + "reference_image": "woman solo showing her hass - back view/73.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 19, + "reference_image": "woman solo showing her hass - back view/76.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 20, + "reference_image": "woman solo showing her hass - back view/80.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 21, + "reference_image": "woman solo showing her hass - back view/112.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 22, + "reference_image": "woman solo showing her hass - back view/114.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 23, + "reference_image": "woman solo showing her hass - back view/118.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 24, + "reference_image": "woman solo showing her hass - back view/121.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 25, + "reference_image": "woman solo showing her hass - back view/124.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 26, + "reference_image": "woman solo showing her hass - back view/138.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 27, + "reference_image": "woman solo showing her hass - back view/153.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 28, + "reference_image": "woman solo showing her hass - back view/153_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 29, + "reference_image": "woman solo showing her hass - back view/155.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 30, + "reference_image": "woman solo showing her hass - back view/155_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 31, + "reference_image": "woman solo showing her hass - back view/157.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 32, + "reference_image": "woman solo showing her hass - back view/160.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 33, + "reference_image": "woman solo showing her hass - back view/161.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 34, + "reference_image": "woman solo showing her hass - back view/162.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 35, + "reference_image": "woman solo showing her hass - back view/162_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 36, + "reference_image": "woman solo showing her hass - back view/169.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 37, + "reference_image": "woman solo showing her hass - back view/169_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 38, + "reference_image": "woman solo showing her hass - back view/171.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 39, + "reference_image": "woman solo showing her hass - back view/174.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 40, + "reference_image": "woman solo showing her hass - back view/175.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 41, + "reference_image": "woman solo showing her hass - back view/181.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 42, + "reference_image": "woman solo showing her hass - back view/182.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 43, + "reference_image": "woman solo showing her hass - back view/182_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 44, + "reference_image": "woman solo showing her hass - back view/189.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "woman solo showing her hass - back view/197.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_view", + "variant_key": "normal_display_rear_body_standing_back_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route.", + "index": 45 + }, + { + "index": 46, + "reference_image": "woman solo showing her hass - back view/207.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 47, + "reference_image": "woman solo showing her hass - back view/215.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "woman solo showing her hass - back view/230.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_view", + "variant_key": "normal_display_rear_body_standing_back_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route.", + "index": 48 + }, + { + "index": 49, + "reference_image": "woman solo showing her hass - back view/232.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "woman solo showing her hass - back view/235.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_view", + "variant_key": "normal_display_rear_body_standing_back_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route.", + "index": 50 + }, + { + "index": 51, + "reference_image": "woman solo showing her hass - back view/241.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 52, + "reference_image": "woman solo showing her hass - back view/242.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 53, + "reference_image": "woman solo showing her hass - back view/248.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 54, + "reference_image": "woman solo showing her hass - back view/256.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 55, + "reference_image": "woman solo showing her hass - back view/269.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 56, + "reference_image": "woman solo showing her hass - back view/270.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 57, + "reference_image": "woman solo showing her hass - back view/280.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "woman solo showing her hass - back view/287.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_view", + "variant_key": "normal_display_rear_body_standing_back_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route.", + "index": 58 + }, + { + "reference_image": "woman solo showing her hass - back view/293.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_view", + "variant_key": "normal_display_rear_body_standing_back_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route.", + "index": 59 + }, + { + "reference_image": "woman solo showing her hass - back view/300.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_view", + "variant_key": "normal_display_rear_body_standing_back_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route.", + "index": 60 + }, + { + "index": 61, + "reference_image": "woman solo showing her hass - back view/301.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 62, + "reference_image": "woman solo showing her hass - back view/304.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 63, + "reference_image": "woman solo showing her hass - back view/305.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 64, + "reference_image": "woman solo showing her hass - back view/313.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 65, + "reference_image": "woman solo showing her hass - back view/313_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 66, + "reference_image": "woman solo showing her hass - back view/314.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 67, + "reference_image": "woman solo showing her hass - back view/315.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "reference_image": "woman solo showing her hass - back view/321.jpg", + "review_decision": "selected_reference", + "review_bucket": "back_view", + "variant_key": "normal_display_rear_body_standing_back_view", + "selection_date": "2026-07-02", + "review_notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route.", + "index": 68 + }, + { + "index": 69, + "reference_image": "woman solo showing her hass - back view/322.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 70, + "reference_image": "woman solo showing her hass - back view/331.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 71, + "reference_image": "woman solo showing her hass - back view/331_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 72, + "reference_image": "woman solo showing her hass - back view/344.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 73, + "reference_image": "woman solo showing her hass - back view/346.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 74, + "reference_image": "woman solo showing her hass - back view/346_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 75, + "reference_image": "woman solo showing her hass - back view/348.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 76, + "reference_image": "woman solo showing her hass - back view/348_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 77, + "reference_image": "woman solo showing her hass - back view/349.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 78, + "reference_image": "woman solo showing her hass - back view/368.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 79, + "reference_image": "woman solo showing her hass - back view/497.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 80, + "reference_image": "woman solo showing her hass - back view/498.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 81, + "reference_image": "woman solo showing her hass - back view/499.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 82, + "reference_image": "woman solo showing her hass - back view/505.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 83, + "reference_image": "woman solo showing her hass - back view/505_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 84, + "reference_image": "woman solo showing her hass - back view/521.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 85, + "reference_image": "woman solo showing her hass - back view/521_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 86, + "reference_image": "woman solo showing her hass - back view/529.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 87, + "reference_image": "woman solo showing her hass - back view/534.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 88, + "reference_image": "woman solo showing her hass - back view/534_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 89, + "reference_image": "woman solo showing her hass - back view/540.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 90, + "reference_image": "woman solo showing her hass - back view/545.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 91, + "reference_image": "woman solo showing her hass - back view/556.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 92, + "reference_image": "woman solo showing her hass - back view/556_2.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 93, + "reference_image": "woman solo showing her hass - back view/594.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 94, + "reference_image": "woman solo showing her hass - back view/604.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 95, + "reference_image": "woman solo showing her hass - back view/608.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 96, + "reference_image": "woman solo showing her hass - back view/610.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 97, + "reference_image": "woman solo showing her hass - back view/612.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 98, + "reference_image": "woman solo showing her hass - back view/617.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + }, + { + "index": 99, + "reference_image": "woman solo showing her hass - back view/624.jpg", + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": null, + "selection_date": null, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket" + } + ], + "contact_sheet_pages": [ + { + "page": 1, + "html_anchor": "page-01", + "start_index": 1, + "end_index": 40, + "image_count": 40, + "images": [ + { + "index": 1, + "reference_image": "woman solo showing her hass - back view/0001.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 2, + "reference_image": "woman solo showing her hass - back view/0001_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 3, + "reference_image": "woman solo showing her hass - back view/0002.jpg", + "review_bucket": "back_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_body_standing_back_view", + "notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route." + }, + { + "index": 4, + "reference_image": "woman solo showing her hass - back view/0003.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 5, + "reference_image": "woman solo showing her hass - back view/0006.jpg", + "review_bucket": "back_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_body_standing_back_view", + "notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route." + }, + { + "index": 6, + "reference_image": "woman solo showing her hass - back view/0006_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 7, + "reference_image": "woman solo showing her hass - back view/0006_3.jpg", + "review_bucket": "back_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_body_standing_back_view", + "notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route." + }, + { + "index": 8, + "reference_image": "woman solo showing her hass - back view/0007.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 9, + "reference_image": "woman solo showing her hass - back view/0007_2.jpg", + "review_bucket": "back_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_body_standing_back_view", + "notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route." + }, + { + "index": 10, + "reference_image": "woman solo showing her hass - back view/0009.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 11, + "reference_image": "woman solo showing her hass - back view/0013.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 12, + "reference_image": "woman solo showing her hass - back view/0015.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 13, + "reference_image": "woman solo showing her hass - back view/0016.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 14, + "reference_image": "woman solo showing her hass - back view/0016_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 15, + "reference_image": "woman solo showing her hass - back view/17.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 16, + "reference_image": "woman solo showing her hass - back view/0019.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 17, + "reference_image": "woman solo showing her hass - back view/0021.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 18, + "reference_image": "woman solo showing her hass - back view/73.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 19, + "reference_image": "woman solo showing her hass - back view/76.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 20, + "reference_image": "woman solo showing her hass - back view/80.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 21, + "reference_image": "woman solo showing her hass - back view/112.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 22, + "reference_image": "woman solo showing her hass - back view/114.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 23, + "reference_image": "woman solo showing her hass - back view/118.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 24, + "reference_image": "woman solo showing her hass - back view/121.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 25, + "reference_image": "woman solo showing her hass - back view/124.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 26, + "reference_image": "woman solo showing her hass - back view/138.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 27, + "reference_image": "woman solo showing her hass - back view/153.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 28, + "reference_image": "woman solo showing her hass - back view/153_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 29, + "reference_image": "woman solo showing her hass - back view/155.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 30, + "reference_image": "woman solo showing her hass - back view/155_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 31, + "reference_image": "woman solo showing her hass - back view/157.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 32, + "reference_image": "woman solo showing her hass - back view/160.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 33, + "reference_image": "woman solo showing her hass - back view/161.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 34, + "reference_image": "woman solo showing her hass - back view/162.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 35, + "reference_image": "woman solo showing her hass - back view/162_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 36, + "reference_image": "woman solo showing her hass - back view/169.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 37, + "reference_image": "woman solo showing her hass - back view/169_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 38, + "reference_image": "woman solo showing her hass - back view/171.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 39, + "reference_image": "woman solo showing her hass - back view/174.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 40, + "reference_image": "woman solo showing her hass - back view/175.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 2, + "html_anchor": "page-02", + "start_index": 41, + "end_index": 80, + "image_count": 40, + "images": [ + { + "index": 41, + "reference_image": "woman solo showing her hass - back view/181.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 42, + "reference_image": "woman solo showing her hass - back view/182.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 43, + "reference_image": "woman solo showing her hass - back view/182_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 44, + "reference_image": "woman solo showing her hass - back view/189.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 45, + "reference_image": "woman solo showing her hass - back view/197.jpg", + "review_bucket": "back_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_body_standing_back_view", + "notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route." + }, + { + "index": 46, + "reference_image": "woman solo showing her hass - back view/207.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 47, + "reference_image": "woman solo showing her hass - back view/215.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 48, + "reference_image": "woman solo showing her hass - back view/230.jpg", + "review_bucket": "back_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_body_standing_back_view", + "notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route." + }, + { + "index": 49, + "reference_image": "woman solo showing her hass - back view/232.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 50, + "reference_image": "woman solo showing her hass - back view/235.jpg", + "review_bucket": "back_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_body_standing_back_view", + "notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route." + }, + { + "index": 51, + "reference_image": "woman solo showing her hass - back view/241.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 52, + "reference_image": "woman solo showing her hass - back view/242.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 53, + "reference_image": "woman solo showing her hass - back view/248.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 54, + "reference_image": "woman solo showing her hass - back view/256.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 55, + "reference_image": "woman solo showing her hass - back view/269.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 56, + "reference_image": "woman solo showing her hass - back view/270.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 57, + "reference_image": "woman solo showing her hass - back view/280.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 58, + "reference_image": "woman solo showing her hass - back view/287.jpg", + "review_bucket": "back_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_body_standing_back_view", + "notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route." + }, + { + "index": 59, + "reference_image": "woman solo showing her hass - back view/293.jpg", + "review_bucket": "back_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_body_standing_back_view", + "notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route." + }, + { + "index": 60, + "reference_image": "woman solo showing her hass - back view/300.jpg", + "review_bucket": "back_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_body_standing_back_view", + "notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route." + }, + { + "index": 61, + "reference_image": "woman solo showing her hass - back view/301.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 62, + "reference_image": "woman solo showing her hass - back view/304.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 63, + "reference_image": "woman solo showing her hass - back view/305.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 64, + "reference_image": "woman solo showing her hass - back view/313.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 65, + "reference_image": "woman solo showing her hass - back view/313_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 66, + "reference_image": "woman solo showing her hass - back view/314.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 67, + "reference_image": "woman solo showing her hass - back view/315.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 68, + "reference_image": "woman solo showing her hass - back view/321.jpg", + "review_bucket": "back_view", + "review_decision": "selected_reference", + "variant_key": "normal_display_rear_body_standing_back_view", + "notes": "Residual-pool review found a repeated upright standing rear-body display family. Seated, kneeling, side-leaning, and close-crop rear examples remain in the broad source pool or existing rear-body route." + }, + { + "index": 69, + "reference_image": "woman solo showing her hass - back view/322.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 70, + "reference_image": "woman solo showing her hass - back view/331.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 71, + "reference_image": "woman solo showing her hass - back view/331_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 72, + "reference_image": "woman solo showing her hass - back view/344.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 73, + "reference_image": "woman solo showing her hass - back view/346.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 74, + "reference_image": "woman solo showing her hass - back view/346_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 75, + "reference_image": "woman solo showing her hass - back view/348.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 76, + "reference_image": "woman solo showing her hass - back view/348_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 77, + "reference_image": "woman solo showing her hass - back view/349.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 78, + "reference_image": "woman solo showing her hass - back view/368.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 79, + "reference_image": "woman solo showing her hass - back view/497.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 80, + "reference_image": "woman solo showing her hass - back view/498.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + }, + { + "page": 3, + "html_anchor": "page-03", + "start_index": 81, + "end_index": 99, + "image_count": 19, + "images": [ + { + "index": 81, + "reference_image": "woman solo showing her hass - back view/499.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 82, + "reference_image": "woman solo showing her hass - back view/505.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 83, + "reference_image": "woman solo showing her hass - back view/505_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 84, + "reference_image": "woman solo showing her hass - back view/521.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 85, + "reference_image": "woman solo showing her hass - back view/521_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 86, + "reference_image": "woman solo showing her hass - back view/529.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 87, + "reference_image": "woman solo showing her hass - back view/534.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 88, + "reference_image": "woman solo showing her hass - back view/534_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 89, + "reference_image": "woman solo showing her hass - back view/540.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 90, + "reference_image": "woman solo showing her hass - back view/545.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 91, + "reference_image": "woman solo showing her hass - back view/556.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 92, + "reference_image": "woman solo showing her hass - back view/556_2.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 93, + "reference_image": "woman solo showing her hass - back view/594.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 94, + "reference_image": "woman solo showing her hass - back view/604.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 95, + "reference_image": "woman solo showing her hass - back view/608.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 96, + "reference_image": "woman solo showing her hass - back view/610.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 97, + "reference_image": "woman solo showing her hass - back view/612.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 98, + "reference_image": "woman solo showing her hass - back view/617.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + }, + { + "index": 99, + "reference_image": "woman solo showing her hass - back view/624.jpg", + "review_bucket": "unassigned", + "review_decision": "residual_unassigned", + "variant_key": null, + "notes": "" + } + ] + } + ] +} diff --git a/categories/normal_camera_variants.json b/categories/normal_camera_variants.json index df20bc1..bd04c77 100644 --- a/categories/normal_camera_variants.json +++ b/categories/normal_camera_variants.json @@ -14,41 +14,15 @@ "hold": "Cataloged for coverage only; do not queue as a normal prompt-only A/B candidate until split or expanded." }, "inventory": { - "variant_count": 86, + "variant_count": 131, "status_counts": { "hold": 0, - "needs_samples": 51, - "pre_ab_candidate": 35 + "needs_samples": 76, + "pre_ab_candidate": 55 }, - "covered_non_empty_folder_count": 76, - "uncovered_non_empty_folder_count": 25, - "uncovered_non_empty_folders": [ - "69", - "anal cowgirl", - "anal doggy - side view", - "anal fuck from behind laying - back view - 3-4 angle", - "anal random", - "anal reverse congress", - "anus lickiing", - "blowjob laying - back view - 3-4 angle", - "doggy press - back side", - "face sitting", - "face sitting - front view", - "fingering", - "fist", - "footjob", - "handjob - standing -low angle", - "pussy licking - backv iew", - "pussy licking leg up - back view - 3-4 angle", - "pussy licking standing woman", - "removing pants", - "reverse cowgirl", - "reverse cowgirl - leg up", - "reverse cowgirl -pretzel", - "rimjob", - "under desk", - "wand" - ] + "covered_non_empty_folder_count": 101, + "uncovered_non_empty_folder_count": 0, + "uncovered_non_empty_folders": [] }, "variants": [ { @@ -486,7 +460,19 @@ ], "reference_images": [ "doggy on all four - back view - 3-4 angle/0002.jpg", + "doggy on all four - back view - 3-4 angle/0003.jpg", + "doggy on all four - back view - 3-4 angle/0013.jpg", + "doggy on all four - back view - 3-4 angle/0014.jpg", + "doggy on all four - back view - 3-4 angle/0019.jpg", + "doggy on all four - back view - 3-4 angle/0020.jpg", + "doggy on all four - back view - 3-4 angle/206.jpg", "doggy on all four - back view - 3-4 angle/267.jpg", + "doggy on all four - back view - 3-4 angle/302.jpg", + "doggy on all four - back view - 3-4 angle/327.jpg", + "doggy on all four - back view - 3-4 angle/550_2.jpg", + "doggy on all four - back view - 3-4 angle/608_2.jpg", + "doggy on all four - back view - 3-4 angle/611.jpg", + "doggy on all four - back view - 3-4 angle/70.jpg", "doggy on all four - back view - 3-4 angle/97.jpg" ], "generator_hook": { @@ -498,12 +484,12 @@ ], "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." }, - "pre_ab_notes": "Split from the prior doggy rear three-quarter grouping to keep all-fours wording separate. Visual review confirmed this status from a full-folder doggy contact sheet.", + "pre_ab_notes": "Split from the prior doggy rear three-quarter grouping to keep all-fours wording separate. Residual-pool review expanded the selected references to 15 images while keeping low, front-drifting, and tight-crop outliers outside the selected subset.", "visual_review": { - "reviewed_at": "2026-06-29", - "scope": "Full-folder contact sheet covering 69 JPGs across atlas_folders plus representative references.", - "decision": "confirmed_pre_ab_candidate", - "notes": "Rear/offset all-fours framing dominates the folder. Some close crops and low/front-leaning examples exist, but the source is coherent enough for first wording tests." + "reviewed_at": "2026-07-02", + "scope": "Residual contact-sheet review of the 69-JPG source folder with 15 reviewed references selected.", + "decision": "expanded_reviewed_reference_set", + "notes": "Rear/offset all-fours framing repeats across the folder. The selected references keep normal-camera rear three-quarter composition while excluding low, front-drifting, and tight-crop outliers." } }, { @@ -531,7 +517,19 @@ ], "reference_images": [ "doggy - back view - 3-4 angle/0002.jpg", + "doggy - back view - 3-4 angle/0002_2.jpg", + "doggy - back view - 3-4 angle/0008_2.jpg", + "doggy - back view - 3-4 angle/0013.jpg", + "doggy - back view - 3-4 angle/0015.jpg", + "doggy - back view - 3-4 angle/0017.jpg", + "doggy - back view - 3-4 angle/0021.jpg", + "doggy - back view - 3-4 angle/132.jpg", + "doggy - back view - 3-4 angle/145.jpg", + "doggy - back view - 3-4 angle/183.jpg", "doggy - back view - 3-4 angle/185.jpg", + "doggy - back view - 3-4 angle/227.jpg", + "doggy - back view - 3-4 angle/39.jpg", + "doggy - back view - 3-4 angle/41.jpg", "doggy - back view - 3-4 angle/77.jpg" ], "generator_hook": { @@ -542,12 +540,12 @@ ], "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." }, - "pre_ab_notes": "Split from the prior doggy rear three-quarter grouping to keep the generic folder independent. Visual review confirmed this status from a full-folder doggy contact sheet.", + "pre_ab_notes": "Split from the prior doggy rear three-quarter grouping to keep the generic folder independent. Residual-pool review expanded the selected references to 15 images while keeping low/close and laying-drift examples outside the selected subset.", "visual_review": { - "reviewed_at": "2026-06-29", - "scope": "Full-folder contact sheet covering 35 JPGs across atlas_folders plus representative references.", - "decision": "confirmed_pre_ab_candidate", - "notes": "Rear three-quarter normal-camera framing is visually consistent enough for a generic doggy back-offset route." + "reviewed_at": "2026-07-02", + "scope": "Residual contact-sheet review of the 35-JPG source folder with 15 reviewed references selected.", + "decision": "expanded_reviewed_reference_set", + "notes": "Generic rear three-quarter framing repeats across the folder. The selected references keep back-offset normal-camera composition while excluding low/close and laying-drift examples." } }, { @@ -694,8 +692,20 @@ ], "reference_images": [ "doggy all four - front view/0016.jpg", + "doggy all four - front view/48.jpg", + "doggy all four - front view/58.jpg", + "doggy all four - front view/64.jpg", + "doggy all four - front view/69.jpg", + "doggy all four - front view/77.jpg", + "doggy all four - front view/83.jpg", + "doggy all four - front view/97.jpg", + "doggy all four - front view/171.jpg", + "doggy all four - front view/197.jpg", + "doggy all four - front view/204.jpg", + "doggy all four - front view/221.jpg", "doggy all four - front view/290.jpg", - "doggy all four - front view/97.jpg" + "doggy all four - front view/596.jpg", + "doggy all four - front view/598.jpg" ], "generator_hook": { "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", @@ -708,10 +718,10 @@ }, "pre_ab_notes": "Split from the prior doggy front grouping so all-fours front wording stays separate. Visual review confirmed this status from a full-folder doggy contact sheet.", "visual_review": { - "reviewed_at": "2026-06-29", - "scope": "Full-folder contact sheet covering 28 JPGs across atlas_folders plus representative references.", - "decision": "confirmed_pre_ab_candidate", - "notes": "Front normal-camera all-fours framing is clean enough: face/forearms are readable and POV body foreground cues are not dominant." + "reviewed_at": "2026-07-02", + "scope": "Residual-pool contact sheet covering 25 unselected JPGs after the original 3 reviewed references.", + "decision": "expanded_pre_ab_candidate", + "notes": "Expanded from 3 to 15 reviewed front all-fours references. Side-drifting, seated, tight close, and vertical-crop outliers remain outside the selected subset." } }, { @@ -744,7 +754,16 @@ "doggy - front view/5.jpg", "doggy - front view/6.jpg", "doggy - front view /0003.jpg", + "doggy - front view /253.jpg", + "doggy - front view /262.jpg", + "doggy - front view /349.jpg", + "doggy - front view /354.jpg", "doggy - front view /41.jpg", + "doggy - front view /49.jpg", + "doggy - front view /505.jpg", + "doggy - front view /537.jpg", + "doggy - front view /541.jpg", + "doggy - front view /567.jpg", "doggy - front view /627.jpg" ], "generator_hook": { @@ -755,12 +774,12 @@ ], "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." }, - "pre_ab_notes": "Kept grouped because the two source folders are the same front-view label except for trailing whitespace. Visual review confirmed this status from a full-folder doggy contact sheet.", + "pre_ab_notes": "Kept grouped because the two source folders are the same front-view label except for trailing whitespace. Residual contact-sheet review expanded the duplicate trailing-space folder references while leaving the weak top/down close crop outside the selected subset.", "visual_review": { - "reviewed_at": "2026-06-29", - "scope": "Full-folder contact sheet covering 16 JPGs across atlas_folders plus representative references.", - "decision": "confirmed_pre_ab_candidate", - "notes": "Duplicate front-view source folders are visually coherent as a generic doggy front normal-camera route." + "reviewed_at": "2026-07-02", + "scope": "Residual contact-sheet review of the 13-JPG trailing-space duplicate folder plus the original three references from the non-trailing duplicate.", + "decision": "expanded_pre_ab_candidate", + "notes": "Expanded the grouped generic front-view route from 6 to 15 reviewed references. The selected trailing-space references repeat a front-facing third-person doggy camera; the weak top/down close crop remains outside the route." } }, { @@ -829,7 +848,19 @@ ], "reference_images": [ "cowgirl - side view/0003.jpg", + "cowgirl - side view/0004_2.jpg", + "cowgirl - side view/0005.jpg", + "cowgirl - side view/0007.jpg", + "cowgirl - side view/0009.jpg", + "cowgirl - side view/0011.jpg", + "cowgirl - side view/0015.jpg", + "cowgirl - side view/118.jpg", + "cowgirl - side view/195.jpg", + "cowgirl - side view/2.jpg", + "cowgirl - side view/200.jpg", + "cowgirl - side view/255.jpg", "cowgirl - side view/280.jpg", + "cowgirl - side view/86.jpg", "cowgirl - side view/86_2.jpg" ], "generator_hook": { @@ -841,12 +872,12 @@ ], "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." }, - "pre_ab_notes": "Clean source folder with enough images for first A/B tests. Visual review confirmed this status from a full-folder cowgirl/reverse-cowgirl contact sheet.", + "pre_ab_notes": "Residual-pool review expanded this side-profile cowgirl route to 15 reviewed references while keeping front-drifting, rear-drifting, and tight-crop examples outside the selected subset.", "visual_review": { - "reviewed_at": "2026-06-29", - "scope": "Full-folder contact sheet covering 34 JPGs across atlas_folders plus representative references.", - "decision": "confirmed_pre_ab_candidate", - "notes": "Side-profile cowgirl framing is visually consistent enough for a normal-camera route; front/back offsets are natural variation inside the side-view folder." + "reviewed_at": "2026-07-02", + "scope": "Residual contact-sheet review of the 34-JPG source folder with 15 reviewed references selected.", + "decision": "expanded_reviewed_reference_set", + "notes": "Side-profile straddle geometry repeats across the folder. The selected references keep lateral normal-camera composition while excluding front-drifting, rear-drifting, and tight-crop examples." } }, { @@ -1003,8 +1034,20 @@ ], "reference_images": [ "cowgirl - back view - 3-4 angle/0002.jpg", - "cowgirl - back view - 3-4 angle/248.jpg", - "cowgirl - back view - 3-4 angle/90.jpg" + "cowgirl - back view - 3-4 angle/0003_4.jpg", + "cowgirl - back view - 3-4 angle/0006.jpg", + "cowgirl - back view - 3-4 angle/0008_2.jpg", + "cowgirl - back view - 3-4 angle/16.jpg", + "cowgirl - back view - 3-4 angle/22.jpg", + "cowgirl - back view - 3-4 angle/41.jpg", + "cowgirl - back view - 3-4 angle/82.jpg", + "cowgirl - back view - 3-4 angle/90.jpg", + "cowgirl - back view - 3-4 angle/145.jpg", + "cowgirl - back view - 3-4 angle/160.jpg", + "cowgirl - back view - 3-4 angle/172.jpg", + "cowgirl - back view - 3-4 angle/225.jpg", + "cowgirl - back view - 3-4 angle/241_2.jpg", + "cowgirl - back view - 3-4 angle/248.jpg" ], "generator_hook": { "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", @@ -1015,12 +1058,13 @@ ], "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." }, - "pre_ab_notes": "Large source folder; good candidate for direct comparison against front cowgirl wording. Visual review confirmed this status from a full-folder cowgirl/reverse-cowgirl contact sheet.", + "pre_ab_notes": "Large source folder; good candidate for direct comparison against front cowgirl wording. Residual-pool review expanded the route to 15 selected references rather than splitting a near-duplicate route.", "visual_review": { "reviewed_at": "2026-06-29", - "scope": "Full-folder contact sheet covering 129 JPGs across atlas_folders plus representative references.", - "decision": "confirmed_pre_ab_candidate", - "notes": "Large folder is broad but mostly rear/back-offset cowgirl normal-camera material, with natural side and close-crop variation; no new clean subcategory was isolated in this pass." + "updated_at": "2026-07-02", + "scope": "Full-folder and residual contact-sheet review covering 129 JPGs across atlas_folders plus 15 selected references.", + "decision": "confirmed_pre_ab_candidate_with_expanded_references", + "notes": "Large folder is broad but mostly rear/back-offset cowgirl normal-camera material, with natural side and close-crop variation. Residual review kept one route and expanded selected references." } }, { @@ -1153,6 +1197,226 @@ "notes": "Side-profile reverse-cowgirl framing is visually coherent and keeps the back-facing orientation readable from the side." } }, + { + "key": "normal_reverse_cowgirl_mixed_camera_folder_pool", + "family": "reverse_cowgirl", + "status": "needs_samples", + "atlas_folders": [ + "reverse cowgirl" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "reverse_cowgirl", + "canonical_geometry": "Large reverse-cowgirl source pool with normal-camera examples but no single locked camera view until contact-sheet review selects stable subsets.", + "prompt_cues": [ + "reverse cowgirl normal-camera source pool", + "select a repeated camera family before cue drafting", + "use contact-sheet evidence before fixed-seed testing" + ], + "avoid_cues": [ + "using the full mixed folder as one locked camera preset", + "POV reverse-cowgirl wording", + "inventing camera cues from the folder label alone" + ], + "reference_images": [ + "reverse cowgirl/0001.jpg", + "reverse cowgirl/288.jpg", + "reverse cowgirl/82.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "reverse cowgirl", + "mixed camera source pool" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Added as the first large unused-pool review tranche. The full 240-image folder is a cue-expansion pool, not a prompt-ready route; split selected-reference subvariants only after contact-sheet evidence shows repeated non-POV camera geometry.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Paged contact-sheet review scaffold covering 240 JPGs across atlas_folders plus representative references.", + "decision": "added_as_large_unused_pool_review_tranche", + "notes": "Folder is now tracked for review; selected-reference subvariants should be added only from repeated camera/pose families identified in the contact sheet." + } + }, + { + "key": "normal_reverse_cowgirl_front_view", + "family": "reverse_cowgirl", + "status": "pre_ab_candidate", + "source_variant": "normal_reverse_cowgirl_mixed_camera_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains mixed; this variant is defined by repeated front-view references selected from the paged contact sheet." + }, + "atlas_folders": [ + "reverse cowgirl" + ], + "camera_view": "front_view", + "action_family": "reverse_cowgirl", + "canonical_geometry": "Reviewed reverse-cowgirl front-view normal-camera subset from the large mixed source pool: the woman is on top facing the camera, the contact plane reads frontally, and the reclined partner remains visible below her in third person.", + "prompt_cues": [ + "reviewed reverse cowgirl front-view normal camera", + "woman on top faces the camera", + "front contact plane centered between her legs", + "reclined partner visible below her in third person" + ], + "avoid_cues": [ + "POV reverse-cowgirl wording", + "rear or back-view reverse-cowgirl wording", + "side-profile reverse-cowgirl wording", + "overhead camera wording", + "using the full mixed folder as one route" + ], + "reference_images": [ + "reverse cowgirl/0001.jpg", + "reverse cowgirl/0004.jpg", + "reverse cowgirl/0005_4.jpg", + "reverse cowgirl/0014.jpg", + "reverse cowgirl/79.jpg", + "reverse cowgirl/82.jpg", + "reverse cowgirl/145.jpg", + "reverse cowgirl/260.jpg", + "reverse cowgirl/288.jpg", + "reverse cowgirl/319.jpg", + "reverse cowgirl/527.jpg", + "reverse cowgirl/608.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "reverse cowgirl", + "front view" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated front-facing camera family found during paged contact-sheet review of the 240-image mixed reverse-cowgirl source folder. The source pool remains needs_samples for other camera families.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected front-view subset from paged contact sheets covering 240 JPGs in the mixed reverse-cowgirl source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Front-facing reverse-cowgirl framing repeats across the folder with stable woman-on-top orientation and visible reclined partner context." + } + }, + { + "key": "normal_reverse_cowgirl_front_three_quarter", + "family": "reverse_cowgirl", + "status": "pre_ab_candidate", + "source_variant": "normal_reverse_cowgirl_mixed_camera_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains mixed; this variant is defined by repeated front-offset references selected from the paged contact sheet." + }, + "atlas_folders": [ + "reverse cowgirl" + ], + "camera_view": "front_three_quarter", + "action_family": "reverse_cowgirl", + "canonical_geometry": "Reviewed reverse-cowgirl front three-quarter normal-camera subset from the large mixed source pool: the woman is on top turned partly toward the camera, the contact plane reads from a front-offset angle, and the reclined partner remains visible below or behind her in third person.", + "prompt_cues": [ + "reviewed reverse cowgirl front three-quarter normal camera", + "woman on top turns partly toward the camera", + "front-offset contact plane remains readable", + "reclined partner visible below her from a three-quarter angle" + ], + "avoid_cues": [ + "POV reverse-cowgirl wording", + "pure front-view reverse-cowgirl wording", + "rear or side-profile reverse-cowgirl wording", + "overhead camera wording", + "using the full mixed folder as one route" + ], + "reference_images": [ + "reverse cowgirl/153.jpg", + "reverse cowgirl/153_2.jpg", + "reverse cowgirl/239_2.jpg", + "reverse cowgirl/239_3.jpg", + "reverse cowgirl/241.jpg", + "reverse cowgirl/241_2.jpg", + "reverse cowgirl/241_3.jpg", + "reverse cowgirl/257.jpg", + "reverse cowgirl/287.jpg", + "reverse cowgirl/323_2.jpg", + "reverse cowgirl/609.jpg", + "reverse cowgirl/609_2.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "reverse cowgirl", + "front three-quarter" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated front-offset camera family found during paged contact-sheet review of the 240-image mixed reverse-cowgirl source folder. It stays separate from the straight front-view subset and from the thin anal front-three-quarter source folders.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected front-three-quarter subset from paged contact sheets covering 240 JPGs in the mixed reverse-cowgirl source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Front-offset reverse-cowgirl framing repeats across the folder with stable woman-on-top orientation and visible reclined partner context." + } + }, + { + "key": "normal_reverse_cowgirl_low_close_front_view", + "family": "reverse_cowgirl", + "status": "pre_ab_candidate", + "source_variant": "normal_reverse_cowgirl_mixed_camera_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains mixed; this variant is defined by repeated low-close front-view references selected from the residual contact-sheet review." + }, + "atlas_folders": [ + "reverse cowgirl" + ], + "camera_view": "front_view", + "action_family": "reverse_cowgirl", + "canonical_geometry": "Reviewed reverse-cowgirl low-close front-view normal-camera subset from the large mixed source pool: the woman is on top facing the camera, the foreground contact plane dominates the lower frame, and the subject remains visible above it in third-person framing.", + "prompt_cues": [ + "reviewed reverse cowgirl low-close front-view normal camera", + "woman on top faces the camera", + "foreground contact plane dominates the lower frame", + "subject remains visible above the foreground plane" + ], + "avoid_cues": [ + "POV reverse-cowgirl wording", + "wider room-context front-view wording", + "front three-quarter reverse-cowgirl wording", + "rear or side-profile reverse-cowgirl wording", + "using the full mixed folder as one route" + ], + "reference_images": [ + "reverse cowgirl/0009.jpg", + "reverse cowgirl/0009_2.jpg", + "reverse cowgirl/0009_3.jpg", + "reverse cowgirl/0015.jpg", + "reverse cowgirl/0015_2.jpg", + "reverse cowgirl/0016_2.jpg", + "reverse cowgirl/170.jpg", + "reverse cowgirl/261.jpg", + "reverse cowgirl/332.jpg", + "reverse cowgirl/332_2.jpg", + "reverse cowgirl/551.jpg", + "reverse cowgirl/618.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "reverse cowgirl", + "front view", + "low close" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated low-close front-view camera family found during residual-pool contact-sheet review of the 240-image mixed reverse-cowgirl source folder. It stays separate from the wider front-view subset and from front-offset three-quarter framing.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected low-close front-view subset from residual contact sheets covering the unselected reverse-cowgirl images.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Low-close front reverse-cowgirl framing repeats across the residual folder with stable foreground body-plane dominance and non-POV third-person framing." + } + }, { "key": "normal_reverse_cowgirl_anal_front_view", "family": "reverse_cowgirl", @@ -1270,8 +1534,20 @@ ], "reference_images": [ "reverse congress - front view/0012.jpg", + "reverse congress - front view/0012_2.jpg", + "reverse congress - front view/0013.jpg", + "reverse congress - front view/61.jpg", + "reverse congress - front view/105.jpg", + "reverse congress - front view/105_2.jpg", + "reverse congress - front view/122.jpg", + "reverse congress - front view/183.jpg", + "reverse congress - front view/189.jpg", "reverse congress - front view/289.jpg", - "reverse congress - front view/61.jpg" + "reverse congress - front view/289_2.jpg", + "reverse congress - front view/291.jpg", + "reverse congress - front view/542.jpg", + "reverse congress - front view/542_2.jpg", + "reverse congress - front view/563_2.jpg" ], "generator_hook": { "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", @@ -1283,10 +1559,10 @@ }, "pre_ab_notes": "Visual review confirmed this as a front-facing position-specific pre-A/B candidate; keep wording front-facing rather than generic sitting.", "visual_review": { - "reviewed_at": "2026-06-29", - "scope": "Full-folder contact sheet covering 21 JPGs across atlas_folders plus representative references.", - "decision": "confirmed_pre_ab_candidate", - "notes": "The folder is visually consistent enough for a front-facing reverse-congress route; crop and distance vary but the front geometry remains readable." + "reviewed_at": "2026-07-02", + "scope": "Residual-pool contact sheet covering 18 unselected JPGs after the original 3 reviewed references.", + "decision": "expanded_pre_ab_candidate", + "notes": "Expanded from 3 to 15 reviewed front-facing reverse-congress references. Tight low crops, side/bed drift, and seated-only outliers remain outside the selected subset." } }, { @@ -1674,6 +1950,166 @@ "notes": "Front three-quarter anal missionary label is visually accurate, but the source remains thin." } }, + { + "key": "normal_anal_random_mixed_camera_folder_pool", + "family": "anal", + "status": "needs_samples", + "atlas_folders": [ + "anal random" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "anal", + "canonical_geometry": "Large anal source pool with mixed normal-camera examples and no single locked camera view until contact-sheet review selects stable subsets.", + "prompt_cues": [ + "anal normal-camera source pool", + "select a repeated camera family before cue drafting", + "use contact-sheet evidence before fixed-seed testing" + ], + "avoid_cues": [ + "using the full mixed folder as one locked camera preset", + "POV anal wording", + "inventing camera cues from the folder label alone" + ], + "reference_images": [ + "anal random/0001.jpg", + "anal random/266_2.jpg", + "anal random/94_5.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "anal", + "mixed camera source pool" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Added as a large unused-pool review tranche after reverse cowgirl. The full 99-image folder is a cue-expansion pool, not a prompt-ready route; split selected-reference subvariants only after contact-sheet evidence shows repeated non-POV camera geometry.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Paged contact-sheet review scaffold covering 99 JPGs across atlas_folders plus representative references.", + "decision": "added_as_large_unused_pool_review_tranche", + "notes": "Folder is now tracked for review; selected-reference subvariants should be added only from repeated camera/pose families identified in the contact sheet." + } + }, + { + "key": "normal_anal_random_front_view", + "family": "anal", + "status": "pre_ab_candidate", + "source_variant": "normal_anal_random_mixed_camera_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains mixed; this variant is defined by repeated front-view references selected from the paged contact sheet." + }, + "atlas_folders": [ + "anal random" + ], + "camera_view": "front_view", + "action_family": "anal", + "canonical_geometry": "Reviewed anal front-view normal-camera subset from the large mixed source pool: the main subject faces the camera, the contact plane reads frontally, and partner context remains visible in third person.", + "prompt_cues": [ + "reviewed anal front-view normal camera", + "main subject faces the camera", + "front contact plane centered", + "partner context visible in third person" + ], + "avoid_cues": [ + "POV anal wording", + "side-profile anal wording", + "rear-view anal wording", + "overhead camera wording", + "using the full mixed folder as one route" + ], + "reference_images": [ + "anal random/0005.jpg", + "anal random/0006.jpg", + "anal random/0015.jpg", + "anal random/160_3.jpg", + "anal random/188.jpg", + "anal random/347_3.jpg", + "anal random/347_10.jpg", + "anal random/347_11.jpg", + "anal random/366.jpg", + "anal random/366_3.jpg", + "anal random/366_4.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "anal", + "front view" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated front-view camera family found during paged contact-sheet review of the 99-image mixed anal-random source folder. Side, rear, standing, and overhead-like frames remain in the source pool.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected front-view subset from paged contact sheets covering 99 JPGs in the mixed anal-random source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Front-view anal framing repeats across the folder with stable third-person camera placement and readable contact plane." + } + }, + { + "key": "normal_anal_random_back_side_offset_view", + "family": "anal", + "status": "pre_ab_candidate", + "source_variant": "normal_anal_random_mixed_camera_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains mixed; this variant is defined by repeated rear/side-offset references selected from the residual contact-sheet review." + }, + "atlas_folders": [ + "anal random" + ], + "camera_view": "back_three_quarter", + "action_family": "anal", + "canonical_geometry": "Reviewed anal rear/side-offset normal-camera subset from the large mixed source pool: the main body turns partly away from the camera, the rear-side contact plane remains readable, and partner context stays visible in third person.", + "prompt_cues": [ + "reviewed anal rear side-offset normal camera", + "main body turns partly away from the camera", + "rear-side contact plane remains readable", + "partner context visible in third person" + ], + "avoid_cues": [ + "POV anal wording", + "straight front-view anal wording", + "standing anal wording", + "overhead camera wording", + "using the full mixed folder as one route" + ], + "reference_images": [ + "anal random/0003.jpg", + "anal random/0003_3.jpg", + "anal random/0010.jpg", + "anal random/0013.jpg", + "anal random/119.jpg", + "anal random/119_2.jpg", + "anal random/119_3.jpg", + "anal random/124_2.jpg", + "anal random/124_8.jpg", + "anal random/347_4.jpg", + "anal random/347_5.jpg", + "anal random/347_8.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "anal", + "back three-quarter", + "side offset" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated rear/side-offset camera family found during residual contact-sheet review of the 99-image mixed anal-random source folder. Front-view, standing, overhead-like, and tight close-crop frames remain in the source pool.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected rear/side-offset subset from residual contact sheets covering the unselected anal-random images.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Rear/side-offset anal framing repeats across the residual folder with stable third-person camera placement and readable contact plane." + } + }, { "key": "normal_missionary_front_three_quarter", "family": "missionary", @@ -1868,8 +2304,20 @@ ], "reference_images": [ "blowjob - laying - front view/0001.jpg", + "blowjob - laying - front view/0003.jpg", + "blowjob - laying - front view/0004.jpg", + "blowjob - laying - front view/0010.jpg", + "blowjob - laying - front view/0010_2.jpg", + "blowjob - laying - front view/0018.jpg", + "blowjob - laying - front view/48.jpg", + "blowjob - laying - front view/69.jpg", + "blowjob - laying - front view/91.jpg", + "blowjob - laying - front view/94.jpg", + "blowjob - laying - front view/122.jpg", + "blowjob - laying - front view/171.jpg", + "blowjob - laying - front view/184.jpg", "blowjob - laying - front view/274.jpg", - "blowjob - laying - front view/94.jpg" + "blowjob - laying - front view/512.jpg" ], "generator_hook": { "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", @@ -1882,10 +2330,10 @@ }, "pre_ab_notes": "Visual review confirmed this as a pre-A/B candidate: crop distance varies, but the frontal laying oral-contact geometry is stable enough for testing.", "visual_review": { - "reviewed_at": "2026-06-29", - "scope": "Full-folder contact sheet covering 26 JPGs across atlas_folders plus representative references.", - "decision": "confirmed_pre_ab_candidate", - "notes": "The folder is visually broad in crop distance, but it consistently supports a frontal laying oral-contact route without needing a split." + "reviewed_at": "2026-07-02", + "scope": "Residual-pool contact sheet covering 23 unselected JPGs after the original 3 reviewed references.", + "decision": "expanded_pre_ab_candidate", + "notes": "Expanded from 3 to 15 reviewed front-facing laying oral-contact references. Side-drifting, wide couch/bed, and weak close-crop examples remain outside the selected subset." } }, { @@ -2239,7 +2687,7 @@ "mixing standing and laying cues in one A/B prompt" ], "reference_images": [ - "ballsucking - standing/0014.jpg", + "ballsucking - standing/0017.jpg", "ballsucking - standing/252.jpg", "ballsucking - standing/624.jpg" ], @@ -2261,6 +2709,105 @@ "notes": "The standing-partner context is consistent, but camera angle and crop vary too much for a preset route." } }, + { + "key": "normal_ballsucking_standing_low_side_view", + "family": "ballsucking", + "status": "pre_ab_candidate", + "source_variant": "normal_ballsucking_standing_partner_mixed_camera_folder_pool", + "atlas_folders": [ + "ballsucking - standing" + ], + "camera_view": "side_view", + "action_family": "ballsucking", + "canonical_geometry": "Selected standing-partner low side or near-side normal-camera view where the receiving partner stands, the performer stays low beside or in front of the standing body, and the contact plane remains readable in third-person framing.", + "prompt_cues": [ + "standing-partner low side normal camera view", + "performer stays low beside the standing partner", + "standing partner remains visible above the contact plane", + "third-person side or near-side framing keeps the bodies readable" + ], + "avoid_cues": [ + "POV oral wording", + "laying posture wording", + "water-close crop", + "using the full mixed folder as one preset" + ], + "reference_images": [ + "ballsucking - standing/0014.jpg", + "ballsucking - standing/130.jpg", + "ballsucking - standing/137.jpg", + "ballsucking - standing/207.jpg", + "ballsucking - standing/222.jpg", + "ballsucking - standing/252.jpg", + "ballsucking - standing/333.jpg", + "ballsucking - standing/34.jpg", + "ballsucking - standing/540.jpg", + "ballsucking - standing/589.jpg", + "ballsucking - standing/624.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "ballsucking", + "standing partner", + "low side" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Promoted from contact-sheet review of the 12-image standing source pool. The water-close outlier remains outside this selected route.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected 11-image low side/near-side subset from contact-sheet review of the mixed ballsucking standing source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "The selected subset repeats a standing-partner, low-performer third-person composition with side or near-side camera geometry; the water-close crop remains outside the route." + } + }, + { + "key": "normal_face_sitting_mixed_camera_folder_pool", + "family": "face_sitting", + "status": "needs_samples", + "atlas_folders": [ + "face sitting" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "face_sitting", + "canonical_geometry": "Face-sitting mixed-camera source pool: the folder has three front or near-front samples plus one rear/back-view outlier, so it preserves review evidence without defining one locked normal-camera route.", + "prompt_cues": [ + "face-sitting mixed-camera source pool", + "front and rear examples stay separate during review", + "select a narrower camera subset before testing", + "keep both bodies readable in third-person framing" + ], + "avoid_cues": [ + "using the full folder as a locked camera preset", + "POV face-sitting wording", + "mixing front and rear examples in one prompt", + "testing before adding more matched samples" + ], + "reference_images": [ + "face sitting/0005.jpg", + "face sitting/0021.jpg", + "face sitting/354.jpg", + "face sitting/533.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "face sitting", + "mixed camera", + "source pool" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found a thin, mixed 4-image source pool. Keep as needs_samples; do not queue the full folder as a pre-A/B route until a narrower camera subset has enough matched samples.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 4 JPGs across atlas_folders plus representative references.", + "decision": "added_mixed_folder_pool", + "notes": "Three samples are front or near-front face-sitting references, while one is a rear/back-view outlier. The folder is too thin and camera-variable for a selected pre-A/B route." + } + }, { "key": "normal_ballsucking_laying_close_reference_folder_pool", "family": "ballsucking", @@ -2350,6 +2897,60 @@ "notes": "Mostly useful front-close material, but the folder includes enough side/standing/foreground-heavy crops that it should remain needs_samples." } }, + { + "key": "normal_boobjob_front_close_view", + "family": "boobjob", + "status": "pre_ab_candidate", + "source_variant": "normal_boobjob_front_close_mixed_camera_folder_pool", + "atlas_folders": [ + "boobjob" + ], + "camera_view": "front_view", + "action_family": "boobjob", + "canonical_geometry": "Selected front-close boobjob normal-camera view where the performer faces camera or near-camera, upper body and face remain readable, and the contact action stays centered without becoming POV.", + "prompt_cues": [ + "boobjob front-close normal camera view", + "front-facing upper body and face remain readable", + "breast-contact action stays centered in the frame", + "third-person close camera without POV wording" + ], + "avoid_cues": [ + "POV foreground body cues", + "side-profile boobjob wording", + "standing-only framing", + "using the full mixed folder as one locked camera preset" + ], + "reference_images": [ + "boobjob/0017.jpg", + "boobjob/0018_2.jpg", + "boobjob/141.jpg", + "boobjob/186.jpg", + "boobjob/218.jpg", + "boobjob/259.jpg", + "boobjob/327.jpg", + "boobjob/588.jpg", + "boobjob/592.jpg", + "boobjob/598.jpg", + "boobjob/615.jpg", + "boobjob/618.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "boobjob", + "front close", + "selected reference subset" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Promoted from residual contact-sheet review of the 19-image boobjob source pool. Side, standing, foreground-heavy, and downward/crop-drifting examples remain outside this selected route.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected 12-image front-close subset from residual contact-sheet review of the mixed boobjob source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "The selected subset repeats a front-close third-person camera where face or upper body remains readable and the contact action stays centered." + } + }, { "key": "normal_breast_contact_front_view", "family": "breast_contact", @@ -2373,8 +2974,20 @@ ], "reference_images": [ "breast - touching - front view/0006.jpg", + "breast - touching - front view/0006_2.jpg", + "breast - touching - front view/12.jpg", + "breast - touching - front view/0014.jpg", + "breast - touching - front view/0015.jpg", + "breast - touching - front view/16.jpg", + "breast - touching - front view/56.jpg", + "breast - touching - front view/72.jpg", + "breast - touching - front view/183.jpg", + "breast - touching - front view/220.jpg", + "breast - touching - front view/246.jpg", "breast - touching - front view/248.jpg", - "breast - touching - front view/72.jpg" + "breast - touching - front view/281.jpg", + "breast - touching - front view/348.jpg", + "breast - touching - front view/361.jpg" ], "generator_hook": { "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", @@ -2386,10 +2999,10 @@ }, "pre_ab_notes": "Visual review confirmed this as a front-view pre-A/B candidate; pose and crop vary but the front body-contact plane is stable.", "visual_review": { - "reviewed_at": "2026-06-29", - "scope": "Full-folder contact sheet covering 25 JPGs across atlas_folders plus representative references.", - "decision": "confirmed_pre_ab_candidate", - "notes": "The folder is mostly frontal upper-body/contact composition with posture variation but stable front camera intent." + "reviewed_at": "2026-07-02", + "scope": "Residual-pool contact sheet covering 22 unselected JPGs after the original 3 reviewed references.", + "decision": "expanded_pre_ab_candidate", + "notes": "Expanded from 3 to 15 reviewed front breast-contact references. Side-drifting, costume/standing outliers, and weak-contact crops remain outside the selected subset." } }, { @@ -2462,7 +3075,19 @@ ], "reference_images": [ "breast sucking - side view/0003.jpg", + "breast sucking - side view/0005.jpg", + "breast sucking - side view/0007.jpg", + "breast sucking - side view/0009.jpg", + "breast sucking - side view/0010_2.jpg", + "breast sucking - side view/182.jpg", + "breast sucking - side view/186.jpg", + "breast sucking - side view/218.jpg", + "breast sucking - side view/234.jpg", + "breast sucking - side view/244.jpg", "breast sucking - side view/257.jpg", + "breast sucking - side view/267.jpg", + "breast sucking - side view/269.jpg", + "breast sucking - side view/356.jpg", "breast sucking - side view/99.jpg" ], "generator_hook": { @@ -2474,12 +3099,300 @@ ], "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." }, - "pre_ab_notes": "Visual review confirmed this as a side/near-side pre-A/B candidate; keep wording about lateral contact rather than strict profile-only framing.", + "pre_ab_notes": "Residual-pool review expanded this side/near-side route to 15 reviewed references; keep wording about lateral contact rather than strict profile-only framing.", "visual_review": { - "reviewed_at": "2026-06-29", - "scope": "Full-folder contact sheet covering 43 JPGs across atlas_folders plus representative references.", - "decision": "confirmed_pre_ab_candidate", - "notes": "The source folder is broad in pose and distance, but most samples preserve a side or near-side contact line and remain useful for the route." + "reviewed_at": "2026-07-02", + "scope": "Residual contact-sheet review of the 43-JPG source folder with 15 reviewed references selected.", + "decision": "expanded_reviewed_reference_set", + "notes": "Side/near-side mouth-contact framing repeats across standing and seated contexts. The selected references keep lateral contact readable while excluding front-only, hand-touch-only, and weak-contact examples." + } + }, + { + "key": "normal_sixty_nine_mixed_camera_folder_pool", + "family": "oral_other", + "status": "needs_samples", + "atlas_folders": [ + "69" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "oral_other", + "canonical_geometry": "Sixty-nine mixed-camera source pool: the folder contains useful mutual oral-contact examples, but mixes close/front, side/downward, upright seated, and wider room-context views, so it is not one locked normal-camera route.", + "prompt_cues": [ + "sixty-nine mixed-camera source pool", + "mutual oral-contact examples with third-person framing", + "select reviewed camera subset before testing", + "do not infer a single azimuth" + ], + "avoid_cues": [ + "using the full folder as a locked camera preset", + "POV viewer-mouth framing", + "assuming all samples are close front views", + "using without crop review" + ], + "reference_images": [ + "69/0002.jpg", + "69/196.jpg", + "69/624.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "sixty-nine", + "mutual oral", + "mixed camera" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Visual review confirmed useful mutual oral-contact material, but the full 10-image source folder mixes close/front, side/downward, upright seated, and wider room-context framing. Keep as a folder_pool and use the selected front-close split for prompt testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 10 JPGs across atlas_folders plus representative references.", + "decision": "added_mixed_folder_pool", + "notes": "The action is coherent, but the camera and posture drift enough that the whole folder should stay needs_samples." + } + }, + { + "key": "normal_sixty_nine_front_close_view", + "family": "oral_other", + "status": "pre_ab_candidate", + "source_variant": "normal_sixty_nine_mixed_camera_folder_pool", + "atlas_folders": [ + "69" + ], + "camera_view": "front_view", + "action_family": "oral_other", + "canonical_geometry": "Selected sixty-nine front-close normal-camera view where the upper subject faces camera, opposed oral-contact pose stays centered, and both bodies remain readable in close third-person framing.", + "prompt_cues": [ + "sixty-nine front-close normal camera view", + "upper subject faces the camera", + "opposed oral-contact pose stays centered", + "third-person close framing keeps both bodies readable" + ], + "avoid_cues": [ + "POV viewer-mouth framing", + "wide room-context layout", + "upright seated straddle framing", + "side-downward camera wording", + "using the full mixed folder as one preset" + ], + "reference_images": [ + "69/0002.jpg", + "69/0008.jpg", + "69/0016.jpg", + "69/19.jpg", + "69/166.jpg", + "69/292.jpg", + "69/624.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "sixty-nine", + "front close", + "selected reference subset" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Promoted from contact-sheet review of the 10-image 69 source pool. Side/downward, upright seated, and wider room-context outliers remain outside this selected route.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected 7-image front-close subset from contact-sheet review of the mixed 69 source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "The selected subset repeats a close third-person camera where the upper subject faces camera and the opposed oral-contact pose remains centered." + } + }, + { + "key": "normal_fingering_mixed_camera_folder_pool", + "family": "manual_or_toy", + "status": "needs_samples", + "atlas_folders": [ + "fingering" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "manual_or_toy", + "canonical_geometry": "Fingering mixed-camera source pool: the folder contains useful manual-contact examples, but mixes reclined front views with upright, standing, side, and oral-adjacent frames, so it is not one locked normal-camera route.", + "prompt_cues": [ + "fingering mixed-camera source pool", + "manual contact examples with third-person framing", + "select reviewed camera subset before testing", + "do not infer a single azimuth" + ], + "avoid_cues": [ + "using the full folder as a locked camera preset", + "POV manual-contact wording", + "assuming all samples are reclined front views", + "using without crop review" + ], + "reference_images": [ + "fingering/0001.jpg", + "fingering/195.jpg", + "fingering/603.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "fingering", + "manual contact", + "mixed camera" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Visual review confirmed useful manual-contact material, but the full 15-image source folder mixes reclined front, upright, standing, side, and oral-adjacent frames. Keep as a folder_pool and use the selected reclined front-view split for prompt testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 15 JPGs across atlas_folders plus representative references.", + "decision": "added_mixed_folder_pool", + "notes": "The action is useful, but the camera and posture are mixed enough that the whole folder should stay needs_samples." + } + }, + { + "key": "normal_fingering_reclined_front_view", + "family": "manual_or_toy", + "status": "pre_ab_candidate", + "source_variant": "normal_fingering_mixed_camera_folder_pool", + "atlas_folders": [ + "fingering" + ], + "camera_view": "front_view", + "action_family": "manual_or_toy", + "canonical_geometry": "Selected reclined manual-contact front normal-camera view where the subject is reclined, faces the camera, the open-thigh contact plane stays centered, and face or upper body remains readable in third-person framing.", + "prompt_cues": [ + "manual-contact reclined front normal camera view", + "reclined subject faces the camera", + "open-thigh contact plane centered in frame", + "face and upper body remain readable behind the contact plane" + ], + "avoid_cues": [ + "POV foreground-hand framing", + "upright chair-only framing", + "side-profile manual-contact wording", + "oral-contact primary-action wording", + "using the full mixed folder as one preset" + ], + "reference_images": [ + "fingering/0004.jpg", + "fingering/0006.jpg", + "fingering/0013.jpg", + "fingering/0015.jpg", + "fingering/39.jpg", + "fingering/50.jpg", + "fingering/132.jpg", + "fingering/133.jpg", + "fingering/279.jpg", + "fingering/603.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "fingering", + "reclined front", + "selected reference subset" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Promoted from contact-sheet review of the 15-image fingering source pool. Upright chair, standing, side, and stronger oral-adjacent outliers remain outside this selected route.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected 10-image reclined front-view subset from contact-sheet review of the mixed fingering source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "The selected subset repeats a camera-facing reclined/open-thigh manual-contact composition with enough face or upper-body context for prompt cue drafting." + } + }, + { + "key": "normal_wand_mixed_camera_folder_pool", + "family": "manual_or_toy", + "status": "needs_samples", + "atlas_folders": [ + "wand" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "manual_or_toy", + "canonical_geometry": "Wand toy-contact mixed-camera source pool: the folder contains useful front-close tool-contact examples, but includes side, portrait-close, and wider posture variation, so it is not one locked normal-camera route.", + "prompt_cues": [ + "wand toy-contact mixed-camera source pool", + "tool-contact examples with third-person framing", + "select reviewed camera subset before testing", + "do not infer a single azimuth" + ], + "avoid_cues": [ + "using the full folder as a locked camera preset", + "POV foreground-tool wording", + "assuming all samples are front-close views", + "using without crop review" + ], + "reference_images": [ + "wand/0005.jpg", + "wand/508.jpg", + "wand/75.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "wand", + "toy contact", + "mixed camera" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Visual review confirmed useful wand/contact material, but the full 9-image source folder mixes front-close, side, portrait-close, and wider posture framing. Keep as a folder_pool and use the selected front-close split for prompt testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 9 JPGs across atlas_folders plus representative references.", + "decision": "added_mixed_folder_pool", + "notes": "The action reference is useful, but the camera and crop vary enough that the full folder should stay needs_samples." + } + }, + { + "key": "normal_wand_front_close_view", + "family": "manual_or_toy", + "status": "pre_ab_candidate", + "source_variant": "normal_wand_mixed_camera_folder_pool", + "atlas_folders": [ + "wand" + ], + "camera_view": "front_view", + "action_family": "manual_or_toy", + "canonical_geometry": "Selected wand front-close normal-camera view where the subject faces camera or near-camera, the open-thigh tool-contact plane is centered, and the wand remains readable as one continuous object in third-person framing.", + "prompt_cues": [ + "wand front-close normal camera view", + "subject faces camera or near camera", + "open-thigh tool-contact plane centered in frame", + "single continuous wand remains readable" + ], + "avoid_cues": [ + "POV foreground-tool wording", + "side portrait-only crop", + "wide posture-variable framing", + "split-device wording", + "using the full mixed folder as one preset" + ], + "reference_images": [ + "wand/0005.jpg", + "wand/0015.jpg", + "wand/217.jpg", + "wand/532.jpg", + "wand/561.jpg", + "wand/611.jpg", + "wand/75.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "wand", + "front close", + "selected reference subset" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Promoted from contact-sheet review of the 9-image wand source pool. Side, portrait-close, and wider posture outliers remain outside this selected route.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected 7-image front-close subset from contact-sheet review of the mixed wand source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "The selected subset repeats a front-close third-person camera where the contact plane is centered and the wand remains readable as one object." } }, { @@ -3006,6 +3919,832 @@ "notes": "The front three-quarter label is plausible, but the folder has only two samples and remains too thin for A/B." } }, + { + "key": "normal_pussy_licking_backview_mixed_camera_folder_pool", + "family": "oral_other", + "status": "needs_samples", + "atlas_folders": [ + "pussy licking - backv iew" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "oral_other", + "canonical_geometry": "Thin oral-contact source pool from the mislabeled back-view folder: the reviewed samples show high/front and high-oblique third-person framing rather than one stable back-view normal-camera route.", + "prompt_cues": [ + "high-front oral-contact source pool", + "reviewed samples use elevated third-person framing", + "select a narrower camera subset before testing", + "keep receiving partner and performer both readable" + ], + "avoid_cues": [ + "using the folder label as a locked back-view preset", + "POV oral wording", + "mixing high-front and high-oblique samples in one prompt", + "testing before adding more matched samples" + ], + "reference_images": [ + "pussy licking - backv iew/220.jpg", + "pussy licking - backv iew/567.jpg", + "pussy licking - backv iew/614.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "oral contact", + "high front", + "mixed camera" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found only three samples, all closer to high-front or high-oblique oral-contact framing than a stable back-view route. Keep as needs_samples and do not queue the folder as a pre-A/B preset.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 3 JPGs across atlas_folders plus representative references.", + "decision": "added_mixed_folder_pool", + "notes": "The folder label says back view, but the reviewed images read as elevated front or high-oblique third-person references. The set is too thin and label-variable for a selected pre-A/B route." + } + }, + { + "key": "normal_removing_pants_mixed_camera_folder_pool", + "family": "display", + "status": "needs_samples", + "atlas_folders": [ + "removing pants" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "display", + "canonical_geometry": "Removing-pants action source pool: three near-duplicate close references show a standing clothing-removal setup with strong foreground crop, so the folder is review evidence rather than a stable normal-camera route.", + "prompt_cues": [ + "removing-pants action source pool", + "standing clothing-removal setup", + "select a wider non-POV crop before testing", + "keep face and body context readable" + ], + "avoid_cues": [ + "using the close foreground crop as a locked camera preset", + "POV clothing-pull wording", + "cropping away body context", + "testing before adding more matched samples" + ], + "reference_images": [ + "removing pants/0005.jpg", + "removing pants/0006.jpg", + "removing pants/0016.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "removing pants", + "display", + "mixed camera" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found three near-duplicate close action references with strong foreground crop. Keep as needs_samples and do not queue the folder as a pre-A/B camera preset until more matched, wider non-POV samples exist.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 3 JPGs across atlas_folders plus representative references.", + "decision": "added_mixed_folder_pool", + "notes": "The folder has a coherent action setup, but the three samples are too close, near-duplicate, and foreground-heavy for a selected normal-camera route." + } + }, + { + "key": "normal_rimjob_mixed_camera_folder_pool", + "family": "oral_other", + "status": "needs_samples", + "atlas_folders": [ + "rimjob" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "oral_other", + "canonical_geometry": "Rimjob mixed-camera source pool: three reviewed references include close side/back oral-contact framing plus a wider kneeling context, so the folder is useful evidence but not a locked camera route.", + "prompt_cues": [ + "rimjob mixed-camera source pool", + "select side or back sample before testing", + "performer and receiving partner both readable", + "third-person framing only" + ], + "avoid_cues": [ + "using the full folder as a locked camera preset", + "POV oral wording", + "assuming one side or back geometry", + "testing before adding more matched samples" + ], + "reference_images": [ + "rimjob/0003.jpg", + "rimjob/0010.jpg", + "rimjob/0018.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "rimjob", + "mixed camera", + "source pool" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found only three mixed close/wide references. Keep as needs_samples and do not queue the folder as a pre-A/B camera preset.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 3 JPGs across atlas_folders plus representative references.", + "decision": "added_mixed_folder_pool", + "notes": "The folder has useful third-person contact evidence, but the samples mix close side/back and wider kneeling context and remain too thin for a selected route." + } + }, + { + "key": "normal_footjob_mixed_camera_folder_pool", + "family": "manual_or_toy", + "status": "needs_samples", + "atlas_folders": [ + "footjob" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "manual_or_toy", + "canonical_geometry": "Foot-contact mixed-camera source pool: two reviewed references share the action family but vary between seated front context and tighter lower-body crop, so the folder is too thin for a camera route.", + "prompt_cues": [ + "foot-contact mixed-camera source pool", + "select seated front or close crop before testing", + "keep body context readable", + "third-person framing only" + ], + "avoid_cues": [ + "using the full folder as a locked camera preset", + "POV foot-contact wording", + "mixing seated context and close crop in one prompt", + "testing before adding more matched samples" + ], + "reference_images": [ + "footjob/265.jpg", + "footjob/265_2.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "footjob", + "mixed camera", + "source pool" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found two related but camera-variable references. Keep as needs_samples until more matched samples define a route.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 2 JPGs across atlas_folders plus representative references.", + "decision": "added_mixed_folder_pool", + "notes": "The two samples are useful action evidence but too thin and crop-variable for a selected pre-A/B route." + } + }, + { + "key": "normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool", + "family": "reverse_cowgirl", + "status": "needs_samples", + "atlas_folders": [ + "reverse cowgirl - leg up" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "reverse_cowgirl", + "canonical_geometry": "Reverse-cowgirl leg-up source pool: two references preserve the posture cue, but the sample count and camera/crop variation are too thin for a locked normal-camera route.", + "prompt_cues": [ + "reverse-cowgirl leg-up source pool", + "leg-up posture evidence", + "select exact camera sample before testing", + "keep full pose context readable" + ], + "avoid_cues": [ + "using the folder as a locked camera preset", + "POV reverse-cowgirl wording", + "mixing with generic reverse-cowgirl prompt routes", + "testing before adding more matched samples" + ], + "reference_images": [ + "reverse cowgirl - leg up/266.jpg", + "reverse cowgirl - leg up/267.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "reverse cowgirl", + "leg up", + "source pool" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review preserved this as a two-sample posture source pool. Do not promote until a larger matched camera subset exists.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 2 JPGs across atlas_folders plus representative references.", + "decision": "added_mixed_folder_pool", + "notes": "The leg-up posture cue is useful, but two samples are too thin for a selected normal-camera route." + } + }, + { + "key": "normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool", + "family": "reverse_cowgirl", + "status": "needs_samples", + "atlas_folders": [ + "reverse cowgirl -pretzel" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "reverse_cowgirl", + "canonical_geometry": "Reverse-cowgirl pretzel source pool: two references preserve a compact pretzel-like posture cue, but the folder is too thin and posture-specific for a pre-A/B camera route.", + "prompt_cues": [ + "reverse-cowgirl pretzel source pool", + "compact folded-leg posture evidence", + "select exact camera sample before testing", + "keep pose ownership readable" + ], + "avoid_cues": [ + "using the folder as a locked camera preset", + "POV reverse-cowgirl wording", + "mixing pretzel posture with generic reverse-cowgirl cues", + "testing before adding more matched samples" + ], + "reference_images": [ + "reverse cowgirl -pretzel/0007.jpg", + "reverse cowgirl -pretzel/617.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "reverse cowgirl", + "pretzel", + "source pool" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review preserved this as a two-sample posture source pool. Do not promote until a larger matched camera subset exists.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 2 JPGs across atlas_folders plus representative references.", + "decision": "added_mixed_folder_pool", + "notes": "The pretzel-like posture cue is useful, but two samples are too thin for a selected normal-camera route." + } + }, + { + "key": "normal_fist_mixed_camera_folder_pool", + "family": "manual_or_toy", + "status": "needs_samples", + "atlas_folders": [ + "fist" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "manual_or_toy", + "canonical_geometry": "Single-reference manual-contact source pool: the folder has one reviewed sample, so it is coverage evidence only and not a normal-camera route.", + "prompt_cues": [ + "single-reference manual-contact source pool", + "preserve as review evidence", + "add matched samples before testing", + "keep third-person framing requirement" + ], + "avoid_cues": [ + "using a single image as a locked camera preset", + "POV manual-contact wording", + "testing before adding more matched samples", + "assuming a stable camera family" + ], + "reference_images": [ + "fist/337.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "fist", + "manual contact", + "single reference" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found only one reference. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 1 JPG across atlas_folders plus representative references.", + "decision": "added_single_reference_pool", + "notes": "A single image cannot define a stable normal-camera route; keep only as review evidence." + } + }, + { + "key": "normal_anal_cowgirl_single_reference_pool", + "family": "cowgirl", + "status": "needs_samples", + "atlas_folders": [ + "anal cowgirl" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "cowgirl", + "canonical_geometry": "Single-reference anal cowgirl source pool: one reviewed third-person sample preserves the action cue but cannot define a stable normal-camera route.", + "prompt_cues": [ + "single-reference anal cowgirl source pool", + "preserve as review evidence", + "add matched samples before testing", + "keep third-person framing requirement" + ], + "avoid_cues": [ + "using one image as a locked camera preset", + "POV cowgirl wording", + "assuming a stable camera family", + "testing before adding more matched samples" + ], + "reference_images": [ + "anal cowgirl/49.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "anal cowgirl", + "single reference", + "source pool" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found one sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 1 JPG across atlas_folders plus representative references.", + "decision": "added_single_reference_pool", + "notes": "A single image cannot define a stable normal-camera route." + } + }, + { + "key": "normal_anal_doggy_side_view_single_reference_pool", + "family": "doggy", + "status": "needs_samples", + "atlas_folders": [ + "anal doggy - side view" + ], + "camera_view": "side_view", + "action_family": "doggy", + "canonical_geometry": "Single-reference anal doggy side-view source pool: one reviewed side-view sample preserves the label but remains too thin for a prompt-ready route.", + "prompt_cues": [ + "single-reference anal doggy side-view source pool", + "preserve side-view evidence", + "add matched samples before testing", + "keep third-person framing requirement" + ], + "avoid_cues": [ + "using one image as a locked side-view preset", + "POV doggy wording", + "assuming route stability from the folder label", + "testing before adding more matched samples" + ], + "reference_images": [ + "anal doggy - side view/16.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "anal doggy", + "side view", + "single reference" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review confirmed one side-view sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 1 JPG across atlas_folders plus representative references.", + "decision": "added_single_reference_pool", + "notes": "The label is plausible, but one image is not enough for a stable route." + } + }, + { + "key": "normal_anal_laying_back_three_quarter_single_reference_pool", + "family": "doggy", + "status": "needs_samples", + "atlas_folders": [ + "anal fuck from behind laying - back view - 3-4 angle" + ], + "camera_view": "back_three_quarter", + "action_family": "doggy", + "canonical_geometry": "Single-reference laying rear three-quarter anal source pool: one reviewed sample preserves the back three-quarter cue but remains coverage only.", + "prompt_cues": [ + "single-reference laying rear three-quarter source pool", + "preserve back three-quarter evidence", + "add matched samples before testing", + "keep third-person framing requirement" + ], + "avoid_cues": [ + "using one image as a locked back three-quarter preset", + "POV wording", + "mixing with generic doggy routes without review", + "testing before adding more matched samples" + ], + "reference_images": [ + "anal fuck from behind laying - back view - 3-4 angle/14.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "anal laying", + "back three-quarter", + "single reference" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found one rear three-quarter sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 1 JPG across atlas_folders plus representative references.", + "decision": "added_single_reference_pool", + "notes": "A single back three-quarter sample cannot define a stable normal-camera route." + } + }, + { + "key": "normal_anal_reverse_congress_single_reference_pool", + "family": "reverse_congress", + "status": "needs_samples", + "atlas_folders": [ + "anal reverse congress" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "reverse_congress", + "canonical_geometry": "Single-reference anal reverse-congress source pool: one reviewed sample preserves the posture/action cue but cannot define a selected normal-camera route.", + "prompt_cues": [ + "single-reference anal reverse-congress source pool", + "preserve posture evidence", + "add matched samples before testing", + "keep third-person framing requirement" + ], + "avoid_cues": [ + "using one image as a locked camera preset", + "POV reverse-congress wording", + "assuming route stability", + "testing before adding more matched samples" + ], + "reference_images": [ + "anal reverse congress/160.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "anal reverse congress", + "single reference", + "source pool" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found one sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 1 JPG across atlas_folders plus representative references.", + "decision": "added_single_reference_pool", + "notes": "A single image cannot define a stable normal-camera route." + } + }, + { + "key": "normal_anus_licking_single_reference_pool", + "family": "oral_other", + "status": "needs_samples", + "atlas_folders": [ + "anus lickiing" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "oral_other", + "canonical_geometry": "Single-reference anal oral-contact source pool: one reviewed sample preserves the action cue but remains coverage only.", + "prompt_cues": [ + "single-reference anal oral-contact source pool", + "preserve oral-contact evidence", + "add matched samples before testing", + "keep third-person framing requirement" + ], + "avoid_cues": [ + "using one image as a locked camera preset", + "POV oral wording", + "assuming stable camera geometry", + "testing before adding more matched samples" + ], + "reference_images": [ + "anus lickiing/0004.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "anus licking", + "single reference", + "source pool" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found one sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 1 JPG across atlas_folders plus representative references.", + "decision": "added_single_reference_pool", + "notes": "A single image cannot define a stable normal-camera route." + } + }, + { + "key": "normal_blowjob_laying_back_three_quarter_single_reference_pool", + "family": "blowjob", + "status": "needs_samples", + "atlas_folders": [ + "blowjob laying - back view - 3-4 angle" + ], + "camera_view": "back_three_quarter", + "action_family": "blowjob", + "canonical_geometry": "Single-reference laying oral-contact back three-quarter source pool: one reviewed sample preserves the rear-offset cue but remains too thin for a prompt-ready route.", + "prompt_cues": [ + "single-reference laying back three-quarter oral source pool", + "preserve rear-offset evidence", + "add matched samples before testing", + "keep third-person framing requirement" + ], + "avoid_cues": [ + "using one image as a locked back three-quarter preset", + "POV oral wording", + "mixing with front oral routes without review", + "testing before adding more matched samples" + ], + "reference_images": [ + "blowjob laying - back view - 3-4 angle/14.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "blowjob laying", + "back three-quarter", + "single reference" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found one rear-offset sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 1 JPG across atlas_folders plus representative references.", + "decision": "added_single_reference_pool", + "notes": "A single image cannot define a stable normal-camera route." + } + }, + { + "key": "normal_doggy_press_back_side_single_reference_pool", + "family": "doggy", + "status": "needs_samples", + "atlas_folders": [ + "doggy press - back side" + ], + "camera_view": "back_view", + "action_family": "doggy", + "canonical_geometry": "Single-reference doggy-press back-side source pool: one reviewed rear/back sample preserves the posture cue but remains coverage only.", + "prompt_cues": [ + "single-reference doggy-press back-side source pool", + "preserve rear posture evidence", + "add matched samples before testing", + "keep third-person framing requirement" + ], + "avoid_cues": [ + "using one image as a locked back-view preset", + "POV doggy wording", + "assuming stable posture family", + "testing before adding more matched samples" + ], + "reference_images": [ + "doggy press - back side/0011.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "doggy press", + "back side", + "single reference" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found one rear/back sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 1 JPG across atlas_folders plus representative references.", + "decision": "added_single_reference_pool", + "notes": "A single image cannot define a stable normal-camera route." + } + }, + { + "key": "normal_face_sitting_front_view_single_reference_pool", + "family": "face_sitting", + "status": "needs_samples", + "atlas_folders": [ + "face sitting - front view" + ], + "camera_view": "front_view", + "action_family": "face_sitting", + "canonical_geometry": "Single-reference face-sitting front-view source pool: one reviewed front sample preserves the label but remains too thin for a selected route.", + "prompt_cues": [ + "single-reference face-sitting front-view source pool", + "preserve front-view evidence", + "add matched samples before testing", + "keep third-person framing requirement" + ], + "avoid_cues": [ + "using one image as a locked front-view preset", + "POV face-sitting wording", + "mixing with broader face-sitting pool without review", + "testing before adding more matched samples" + ], + "reference_images": [ + "face sitting - front view/56.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "face sitting", + "front view", + "single reference" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found one front-view sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 1 JPG across atlas_folders plus representative references.", + "decision": "added_single_reference_pool", + "notes": "The label is plausible, but one image is not enough for a stable route." + } + }, + { + "key": "normal_handjob_standing_low_angle_single_reference_pool", + "family": "manual_or_toy", + "status": "needs_samples", + "atlas_folders": [ + "handjob - standing -low angle" + ], + "camera_view": "low_angle", + "action_family": "manual_or_toy", + "canonical_geometry": "Single-reference standing manual-contact low-angle source pool: one reviewed low-angle sample preserves the label but remains coverage only.", + "prompt_cues": [ + "single-reference standing low-angle manual-contact source pool", + "preserve low-angle evidence", + "add matched samples before testing", + "keep third-person framing requirement" + ], + "avoid_cues": [ + "using one image as a locked low-angle preset", + "POV manual-contact wording", + "assuming stable camera geometry", + "testing before adding more matched samples" + ], + "reference_images": [ + "handjob - standing -low angle/552.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "handjob", + "standing low angle", + "single reference" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found one low-angle sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 1 JPG across atlas_folders plus representative references.", + "decision": "added_single_reference_pool", + "notes": "The low-angle label is plausible, but one image is not enough for a stable route." + } + }, + { + "key": "normal_pussy_licking_leg_up_back_three_quarter_single_reference_pool", + "family": "oral_other", + "status": "needs_samples", + "atlas_folders": [ + "pussy licking leg up - back view - 3-4 angle" + ], + "camera_view": "back_three_quarter", + "action_family": "oral_other", + "canonical_geometry": "Single-reference leg-up oral-contact back three-quarter source pool: one reviewed sample preserves the label but remains coverage only.", + "prompt_cues": [ + "single-reference leg-up back three-quarter oral source pool", + "preserve rear-offset posture evidence", + "add matched samples before testing", + "keep third-person framing requirement" + ], + "avoid_cues": [ + "using one image as a locked back three-quarter preset", + "POV oral wording", + "assuming stable route geometry", + "testing before adding more matched samples" + ], + "reference_images": [ + "pussy licking leg up - back view - 3-4 angle/0009.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "pussy licking", + "leg up back three-quarter", + "single reference" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found one rear-offset leg-up sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 1 JPG across atlas_folders plus representative references.", + "decision": "added_single_reference_pool", + "notes": "The label is plausible, but one image is not enough for a stable route." + } + }, + { + "key": "normal_pussy_licking_standing_woman_single_reference_pool", + "family": "oral_other", + "status": "needs_samples", + "atlas_folders": [ + "pussy licking standing woman" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "oral_other", + "canonical_geometry": "Single-reference standing-woman oral-contact source pool: one reviewed sample preserves the posture cue but remains coverage only.", + "prompt_cues": [ + "single-reference standing-woman oral-contact source pool", + "preserve posture evidence", + "add matched samples before testing", + "keep third-person framing requirement" + ], + "avoid_cues": [ + "using one image as a locked camera preset", + "POV oral wording", + "assuming stable standing route", + "testing before adding more matched samples" + ], + "reference_images": [ + "pussy licking standing woman/13.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "pussy licking", + "standing woman", + "single reference" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found one sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 1 JPG across atlas_folders plus representative references.", + "decision": "added_single_reference_pool", + "notes": "A single image cannot define a stable normal-camera route." + } + }, + { + "key": "normal_under_desk_single_reference_pool", + "family": "oral_other", + "status": "needs_samples", + "atlas_folders": [ + "under desk" + ], + "camera_view": "mixed_or_unspecified", + "action_family": "oral_other", + "canonical_geometry": "Single-reference under-desk oral-contact source pool: one reviewed sample preserves the under-desk context cue but remains coverage only.", + "prompt_cues": [ + "single-reference under-desk source pool", + "preserve under-desk context evidence", + "add matched samples before testing", + "keep third-person framing requirement" + ], + "avoid_cues": [ + "using one image as a locked camera preset", + "POV under-desk wording", + "assuming stable camera geometry", + "testing before adding more matched samples" + ], + "reference_images": [ + "under desk/347.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "under desk", + "single reference", + "source pool" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Contact-sheet review found one contextual sample. Keep as needs_samples coverage and do not queue for pre-A/B testing.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Full-folder contact sheet covering 1 JPG across atlas_folders plus representative references.", + "decision": "added_single_reference_pool", + "notes": "A single image cannot define a stable normal-camera route." + } + }, { "key": "normal_display_rear_body_view_folder_pool", "family": "display", @@ -3115,6 +4854,66 @@ }, "pre_ab_notes": "Created from reviewed rear/back-facing references inside a broad rear-display source folder; use as the precise rear body-display route." }, + { + "key": "normal_display_rear_body_standing_back_view", + "family": "display", + "status": "pre_ab_candidate", + "source_variant": "normal_display_rear_body_view_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains broad; this variant is defined by repeated upright standing back-view references selected from the residual contact-sheet review." + }, + "atlas_folders": [ + "woman solo showing her hass - back view" + ], + "camera_view": "back_view", + "action_family": "display", + "canonical_geometry": "Reviewed standing solo rear body-display normal-camera subset: the subject stands upright with back or rear three-quarter side toward camera, rear body remains the primary composition, and the full standing posture stays readable in third-person framing.", + "prompt_cues": [ + "reviewed standing rear body-display normal camera view", + "subject stands upright with back toward camera", + "rear body closest to camera", + "full standing solo display posture" + ], + "avoid_cues": [ + "POV body inspection wording", + "seated rear-display wording", + "kneeling rear-display wording", + "front-facing portrait wording", + "partner-contact wording" + ], + "reference_images": [ + "woman solo showing her hass - back view/0002.jpg", + "woman solo showing her hass - back view/0006.jpg", + "woman solo showing her hass - back view/0006_3.jpg", + "woman solo showing her hass - back view/0007_2.jpg", + "woman solo showing her hass - back view/173.jpg", + "woman solo showing her hass - back view/197.jpg", + "woman solo showing her hass - back view/230.jpg", + "woman solo showing her hass - back view/235.jpg", + "woman solo showing her hass - back view/287.jpg", + "woman solo showing her hass - back view/293.jpg", + "woman solo showing her hass - back view/300.jpg", + "woman solo showing her hass - back view/321.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "display", + "rear body", + "standing back view" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated upright standing rear-body display family found during residual contact-sheet review of the broad 99-image source folder. It stays separate from the broader rear-body route and from seated, kneeling, side-leaning, and close-crop examples.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected standing back-view subset from residual contact sheets covering the unselected rear-body display images.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Standing rear-body display repeats across the residual folder with stable upright posture and non-POV third-person framing." + } + }, { "key": "normal_display_rear_exposed_body_folder_pool", "family": "display", @@ -3140,6 +4939,7 @@ ], "reference_images": [ "woman ass exposed/40.jpg", + "woman ass exposed/49.jpg", "woman ass exposed/52.jpg", "woman ass exposed/58.jpg" ], @@ -3151,7 +4951,7 @@ ], "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." }, - "pre_ab_notes": "Visual review confirmed this as a thin mixed rear-display pool; keep needs_samples.", + "pre_ab_notes": "Visual review confirmed this as a thin mixed rear-display pool; keep needs_samples. The reviewed source-pool references now include all four folder images.", "folder_pool": true, "visual_review": { "reviewed_at": "2026-06-29", @@ -3249,6 +5049,182 @@ "notes": "The folder is mostly front/open display material but too mixed in crop and camera height for a locked route." } }, + { + "key": "normal_display_front_open_leg_front_view", + "family": "display", + "status": "pre_ab_candidate", + "source_variant": "normal_display_front_open_leg_mixed_camera_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains mixed; this variant is defined by repeated wider front-view references selected from the paged contact sheet." + }, + "atlas_folders": [ + "pussy spread" + ], + "camera_view": "front_view", + "action_family": "display", + "canonical_geometry": "Reviewed front open-leg display normal-camera subset from the mixed source pool: the subject faces the camera, the open-leg display reads frontally, and enough body or room context remains visible to separate it from tight low-close crops.", + "prompt_cues": [ + "reviewed open-leg display front-view normal camera", + "subject faces the camera", + "front display pose readable", + "body and room context remain visible" + ], + "avoid_cues": [ + "POV spread wording", + "tight low-close crop wording", + "side-offset display wording", + "using the full mixed folder as one route" + ], + "reference_images": [ + "pussy spread/0002_3.jpg", + "pussy spread/0003_4.jpg", + "pussy spread/0012.jpg", + "pussy spread/0015.jpg", + "pussy spread/0017.jpg", + "pussy spread/80.jpg", + "pussy spread/130.jpg", + "pussy spread/153.jpg", + "pussy spread/296.jpg", + "pussy spread/297.jpg", + "pussy spread/328.jpg", + "pussy spread/367.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "open-leg display", + "front view" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated wider front-view display family found during paged contact-sheet review of the 100-image mixed source folder. Tight low-close crops and side-offset frames remain separate.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected front-view subset from paged contact sheets covering 100 JPGs in the mixed source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Camera-facing front display repeats across the folder with enough body and room context to support a first wording test." + } + }, + { + "key": "normal_display_front_open_leg_low_close", + "family": "display", + "status": "pre_ab_candidate", + "source_variant": "normal_display_front_open_leg_mixed_camera_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains mixed; this variant is defined by repeated low-close front-view references selected from the paged contact sheet." + }, + "atlas_folders": [ + "pussy spread" + ], + "camera_view": "front_view", + "action_family": "display", + "canonical_geometry": "Reviewed low-close front open-leg display normal-camera subset from the mixed source pool: the camera is front-facing and close enough that the foreground body plane dominates while the subject remains visible in normal third-person framing.", + "prompt_cues": [ + "reviewed low-close open-leg display front-view normal camera", + "front-facing close composition", + "foreground body plane dominates the frame", + "subject remains visible above the foreground plane" + ], + "avoid_cues": [ + "POV spread wording", + "wider room-context front-view wording", + "side-offset display wording", + "using the full mixed folder as one route" + ], + "reference_images": [ + "pussy spread/1.jpg", + "pussy spread/1_2.jpg", + "pussy spread/0003.jpg", + "pussy spread/0003_2.jpg", + "pussy spread/0003_3.jpg", + "pussy spread/0010_2.jpg", + "pussy spread/0016.jpg", + "pussy spread/0016_2.jpg", + "pussy spread/41.jpg", + "pussy spread/201.jpg", + "pussy spread/217_2.jpg", + "pussy spread/223.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "open-leg display", + "front view", + "low close" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated low-close front-view display family found during paged contact-sheet review of the 100-image mixed source folder. It stays separate from wider room-context display frames.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected low-close front-view subset from paged contact sheets covering 100 JPGs in the mixed source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Low-close front display repeats across the folder with stable foreground body-plane dominance and non-POV framing." + } + }, + { + "key": "normal_display_front_open_leg_side_offset_view", + "family": "display", + "status": "pre_ab_candidate", + "source_variant": "normal_display_front_open_leg_mixed_camera_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains mixed; this variant is defined by repeated side-offset seated or reclined references selected from the residual contact-sheet review." + }, + "atlas_folders": [ + "pussy spread" + ], + "camera_view": "side_view", + "action_family": "display", + "canonical_geometry": "Reviewed side-offset front open-leg display normal-camera subset from the mixed source pool: the subject sits or reclines at an oblique angle, the open-leg display reads from a lateral offset, and torso plus leg line angle across the frame in third-person composition.", + "prompt_cues": [ + "reviewed side-offset open-leg display normal camera", + "subject sits or reclines at an oblique angle", + "open-leg display reads from a lateral offset", + "torso and leg line angle across the frame" + ], + "avoid_cues": [ + "POV spread wording", + "straight front-view display wording", + "low-close foreground-dominant crop wording", + "using the full mixed folder as one route" + ], + "reference_images": [ + "pussy spread/0007.jpg", + "pussy spread/0008.jpg", + "pussy spread/73.jpg", + "pussy spread/121.jpg", + "pussy spread/134.jpg", + "pussy spread/154_3.jpg", + "pussy spread/163.jpg", + "pussy spread/175.jpg", + "pussy spread/256.jpg", + "pussy spread/308.jpg", + "pussy spread/311.jpg", + "pussy spread/368.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "open-leg display", + "side view", + "side offset" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated side-offset seated or reclined display family found during residual contact-sheet review of the 100-image mixed source folder. It stays separate from straight front-view and low-close display frames.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected side-offset subset from residual contact sheets covering the unselected pussy-spread images.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Side-offset open-leg display repeats across the residual folder with stable oblique body orientation and non-POV third-person framing." + } + }, { "key": "normal_display_breasts_exposed_mixed_camera_folder_pool", "family": "display", @@ -3293,6 +5269,242 @@ "notes": "The folder is broad display coverage, not a precise camera variant." } }, + { + "key": "normal_display_breasts_exposed_front_view", + "family": "display", + "status": "pre_ab_candidate", + "source_variant": "normal_display_breasts_exposed_mixed_camera_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains mixed; this variant is defined by repeated camera-facing references selected from the paged contact sheet." + }, + "atlas_folders": [ + "breasts exposed" + ], + "camera_view": "front_view", + "action_family": "display", + "canonical_geometry": "Reviewed display front-view normal-camera subset from the broad breasts-exposed source pool: the subject faces the camera, the upper torso and full body remain readable, and the frame uses normal third-person display composition.", + "prompt_cues": [ + "reviewed torso-display front-view normal camera", + "subject faces the camera", + "upper torso and full body remain readable", + "camera-facing display posture" + ], + "avoid_cues": [ + "POV touch wording", + "side-offset display wording", + "tight upper-body crop wording", + "using the full mixed folder as one route" + ], + "reference_images": [ + "breasts exposed/0001_3.jpg", + "breasts exposed/0006.jpg", + "breasts exposed/0008_2.jpg", + "breasts exposed/0011_2.jpg", + "breasts exposed/141.jpg", + "breasts exposed/181.jpg", + "breasts exposed/263.jpg", + "breasts exposed/302.jpg", + "breasts exposed/327.jpg", + "breasts exposed/346.jpg", + "breasts exposed/594_2.jpg", + "breasts exposed/624.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "display", + "breasts exposed", + "front view" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated camera-facing full-body display family found during paged contact-sheet review of the 168-image mixed breasts-exposed source folder. The source pool remains needs_samples for seated, side-offset, close-crop, and other mixed display families.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected front-view subset from paged contact sheets covering 168 JPGs in the mixed breasts-exposed source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Camera-facing torso-display framing repeats across the folder with stable full-body or near-full-body normal-camera composition." + } + }, + { + "key": "normal_display_breasts_exposed_side_offset_view", + "family": "display", + "status": "pre_ab_candidate", + "source_variant": "normal_display_breasts_exposed_mixed_camera_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains mixed; this variant is defined by repeated side-offset references selected from the paged contact sheet." + }, + "atlas_folders": [ + "breasts exposed" + ], + "camera_view": "side_view", + "action_family": "display", + "canonical_geometry": "Reviewed display side-offset normal-camera subset from the broad breasts-exposed source pool: the subject turns laterally, the side torso outline is readable, and the frame remains normal third-person display composition.", + "prompt_cues": [ + "reviewed torso-display side-offset normal camera", + "body turned laterally", + "side torso outline readable", + "profile display pose" + ], + "avoid_cues": [ + "POV touch wording", + "pure camera-facing display wording", + "tight upper-body crop wording", + "using the full mixed folder as one route" + ], + "reference_images": [ + "breasts exposed/83.jpg", + "breasts exposed/196.jpg", + "breasts exposed/235.jpg", + "breasts exposed/267.jpg", + "breasts exposed/271.jpg", + "breasts exposed/305.jpg", + "breasts exposed/353.jpg", + "breasts exposed/373.jpg", + "breasts exposed/590.jpg", + "breasts exposed/590_2.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "display", + "breasts exposed", + "side view" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated side-offset display family found during paged contact-sheet review of the 168-image mixed breasts-exposed source folder. It stays separate from the camera-facing front-view subset and from tight crop display examples.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected side-offset subset from paged contact sheets covering 168 JPGs in the mixed breasts-exposed source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Side-offset torso-display framing repeats across the folder with stable lateral body orientation and normal-camera composition." + } + }, + { + "key": "normal_display_breasts_exposed_standing_front_view", + "family": "display", + "status": "pre_ab_candidate", + "source_variant": "normal_display_breasts_exposed_mixed_camera_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains mixed; this variant is defined by repeated upright standing front-view references selected from the residual contact-sheet review." + }, + "atlas_folders": [ + "breasts exposed" + ], + "camera_view": "front_view", + "action_family": "display", + "canonical_geometry": "Reviewed standing display front-view normal-camera subset from the broad breasts-exposed source pool: the subject stands upright facing the camera, the torso and legs remain readable, and the frame preserves normal third-person display composition.", + "prompt_cues": [ + "reviewed standing torso-display front-view normal camera", + "subject stands upright facing the camera", + "torso and legs remain readable", + "front-facing standing display posture" + ], + "avoid_cues": [ + "POV touch wording", + "seated or kneeling display wording", + "side-offset display wording", + "tight upper-body crop wording", + "using the full mixed folder as one route" + ], + "reference_images": [ + "breasts exposed/0002_2.jpg", + "breasts exposed/0003.jpg", + "breasts exposed/49.jpg", + "breasts exposed/138.jpg", + "breasts exposed/155.jpg", + "breasts exposed/169.jpg", + "breasts exposed/190.jpg", + "breasts exposed/230.jpg", + "breasts exposed/242.jpg", + "breasts exposed/302_2.jpg", + "breasts exposed/332.jpg", + "breasts exposed/368.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "display", + "breasts exposed", + "standing front view" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated upright standing front-view display family found during residual contact-sheet review of the 168-image mixed breasts-exposed source folder. It stays separate from the broader front-view subset, side-offset frames, seated examples, and tight upper-body crops.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected standing front-view subset from residual contact sheets covering the unselected breasts-exposed images.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Standing front display repeats across the residual folder with stable upright posture, readable lower-body context, and normal-camera composition." + } + }, + { + "key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "family": "display", + "status": "pre_ab_candidate", + "source_variant": "normal_display_breasts_exposed_mixed_camera_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains mixed; this variant is defined by repeated seated and kneeling front-view references selected from the residual contact-sheet review." + }, + "atlas_folders": [ + "breasts exposed" + ], + "camera_view": "front_view", + "action_family": "display", + "canonical_geometry": "Reviewed seated/kneeling display front-view normal-camera subset from the broad breasts-exposed source pool: the subject faces the camera from a seated or kneeling posture, the torso and lower-body placement remain readable, and the frame preserves normal third-person display composition.", + "prompt_cues": [ + "reviewed seated-kneeling torso-display front-view normal camera", + "subject faces the camera from a seated posture", + "kneeling posture remains readable", + "front-facing seated display posture" + ], + "avoid_cues": [ + "POV touch wording", + "standing display wording", + "side-offset display wording", + "tight upper-body crop wording", + "using the full mixed folder as one route" + ], + "reference_images": [ + "breasts exposed/0001_2.jpg", + "breasts exposed/0007_2.jpg", + "breasts exposed/101_2.jpg", + "breasts exposed/154.jpg", + "breasts exposed/165.jpg", + "breasts exposed/173.jpg", + "breasts exposed/259.jpg", + "breasts exposed/285.jpg", + "breasts exposed/293.jpg", + "breasts exposed/322.jpg", + "breasts exposed/328.jpg", + "breasts exposed/523.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "display", + "breasts exposed", + "seated kneeling front view" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated seated/kneeling front-view display family found during residual contact-sheet review of the 168-image mixed breasts-exposed source folder. It stays separate from standing front-view, side-offset, couple/action, and tight upper-body crop examples.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected seated/kneeling front-view subset from residual contact sheets covering the unselected breasts-exposed images.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Seated and kneeling front display repeats across the residual folder with stable front-facing posture, readable lower-body context, and normal-camera composition." + } + }, { "key": "normal_standing_from_front_side_view", "family": "standing_penetration", @@ -3768,6 +5980,66 @@ "notes": "The action family is coherent, but camera and posture vary too much for a locked route." } }, + { + "key": "normal_couple_kissing_upright_side_profile", + "family": "couple", + "status": "pre_ab_candidate", + "source_variant": "normal_couple_kissing_mixed_camera_folder_pool", + "subset_selection": { + "type": "review_selected_reference_images", + "selection_date": "2026-07-02", + "source_folder_note": "Source folder remains mixed; this variant is defined by repeated upright side-profile references selected from the paged contact sheet." + }, + "atlas_folders": [ + "couple kissing" + ], + "camera_view": "side_view", + "action_family": "couple", + "canonical_geometry": "Reviewed couple-kissing upright side-profile normal-camera subset from the mixed source pool: two subjects face each other laterally, the kissing contact is centered between their faces, and both bodies remain visible enough to preserve third-person camera geometry.", + "prompt_cues": [ + "reviewed couple kissing upright side-profile normal camera", + "two subjects face each other in lateral profile", + "kissing contact centered between their faces", + "both bodies visible in third-person framing" + ], + "avoid_cues": [ + "POV kissing wording", + "front-facing couple portrait wording", + "bed or seated crop wording", + "tight face close-up wording", + "using the full mixed folder as one route" + ], + "reference_images": [ + "couple kissing/0001_2.jpg", + "couple kissing/0003.jpg", + "couple kissing/0005_2.jpg", + "couple kissing/16.jpg", + "couple kissing/159.jpg", + "couple kissing/247.jpg", + "couple kissing/247_2.jpg", + "couple kissing/253.jpg", + "couple kissing/253_2.jpg", + "couple kissing/322.jpg", + "couple kissing/354.jpg", + "couple kissing/379.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "couple kissing", + "side profile", + "upright" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Created from a repeated upright side-profile kissing family found during paged contact-sheet review of the 88-image mixed couple-kissing source folder. Seated, bed, close-crop, and front-facing examples stay in the mixed source pool.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected upright side-profile subset from paged contact sheets covering 88 JPGs in the mixed couple-kissing source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "Upright lateral couple-kissing framing repeats across the folder with clear third-person camera geometry and both subjects visible." + } + }, { "key": "normal_piledriver_mixed_camera_folder_pool", "family": "piledriver_or_pretzel", @@ -3812,6 +6084,63 @@ "notes": "The pose/action is coherent, but the camera is mixed and should be narrowed before A/B." } }, + { + "key": "normal_piledriver_high_front_down_view", + "family": "piledriver_or_pretzel", + "status": "pre_ab_candidate", + "source_variant": "normal_piledriver_mixed_camera_folder_pool", + "atlas_folders": [ + "piledriver" + ], + "camera_view": "top_down_or_high_angle", + "action_family": "piledriver_or_pretzel", + "canonical_geometry": "Selected piledriver high front-down normal-camera view where the folded body stays readable below the partner from a high third-person camera.", + "prompt_cues": [ + "piledriver high front-down normal camera view", + "folded body visible below the partner", + "legs folded high around the torso", + "third-person camera looking down at the compact stacked pose" + ], + "avoid_cues": [ + "POV folded-leg wording", + "tight genital-only crop", + "using the entire mixed piledriver folder as one camera angle", + "pretzel pose wording" + ], + "reference_images": [ + "piledriver/0002.jpg", + "piledriver/0004_2.jpg", + "piledriver/0005.jpg", + "piledriver/0006_2.jpg", + "piledriver/0009.jpg", + "piledriver/0009_2.jpg", + "piledriver/0012.jpg", + "piledriver/0013.jpg", + "piledriver/282.jpg", + "piledriver/317.jpg", + "piledriver/317_2.jpg", + "piledriver/318.jpg", + "piledriver/319.jpg", + "piledriver/494_2.jpg", + "piledriver/538.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": [ + "piledriver", + "high front down", + "selected reference subset" + ], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Promoted from residual contact-sheet review of the 27-image piledriver source pool. Tight top crops, side drifts, and mixed/near-POV examples remain in the folder pool.", + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Selected 15-image high/front-down subset from residual contact-sheet review of the mixed piledriver source folder.", + "decision": "promoted_selected_reference_subvariant", + "notes": "The selected subset repeats a high third-person camera over the compact folded pose with body context preserved." + } + }, { "key": "normal_pretzel_mixed_camera_folder_pool", "family": "piledriver_or_pretzel", diff --git a/docs/normal-camera-atlas.md b/docs/normal-camera-atlas.md index 9b22f8a..52f9c70 100644 --- a/docs/normal-camera-atlas.md +++ b/docs/normal-camera-atlas.md @@ -104,12 +104,12 @@ Current variant inventory: | Metric | Count | | --- | ---: | -| Curated variants | 86 | -| Pre-A/B candidates | 35 | -| Needs samples | 51 | +| Curated variants | 131 | +| Pre-A/B candidates | 55 | +| Needs samples | 76 | | Hold | 0 | -| Covered non-empty source folders | 76 | -| Uncovered non-empty source folders | 25 | +| Covered non-empty source folders | 101 | +| Uncovered non-empty source folders | 0 | Catalog review notes: @@ -155,11 +155,291 @@ Catalog review notes: 609, 608, 0011, 0006, and 0002_2 were split out as `normal_penis_worship_laying_partner_vertical_side_view`. These remain `needs_samples` until the folder is more fully sorted by camera orientation. +- 2026-07-02 penis-worship residual review: generated review artifacts now + preserve the foreground-close source-pool anchor plus the existing top, + side, and laying-partner side-view anchors. The 29 unselected images remain + mixed across foreground-heavy, front, and near-POV framing, so no additional + references or prompt-ready subvariant were promoted. +- 2026-07-02 reverse-cowgirl unused-pool tranche: the uncovered + `reverse cowgirl` folder with 240 JPGs was added as + `normal_reverse_cowgirl_mixed_camera_folder_pool`. It is a no-generation + cue-expansion pool, not a prompt-ready route; selected-reference subvariants + should be added only after paged contact-sheet evidence shows repeated + non-POV camera geometry. The first promoted selected-reference splits are + `normal_reverse_cowgirl_front_view`, a 12-image front-view subset, + `normal_reverse_cowgirl_front_three_quarter`, a 12-image front-offset subset, + and `normal_reverse_cowgirl_low_close_front_view`, a 12-image low-close + front-view subset from the paged and residual contact-sheet review. +- 2026-07-02 doggy all-fours rear three-quarter expansion: residual + contact-sheet review of `doggy on all four - back view - 3-4 angle` expanded + `normal_doggy_all_fours_back_three_quarter` from 3 to 15 reviewed references. + The route key and prompt cues remain stable; low, front-drifting, and + tight-crop outliers remain outside the selected subset. +- 2026-07-02 doggy all-fours side-view residual review: residual contact-sheet + review of `doggy on all four - side view` kept + `normal_doggy_all_fours_side_view` at its existing 14 reviewed references. + Remaining images mix standing, bed, chair, close, and front-drifting frames, + so no additional references were promoted in this pass. +- 2026-07-02 doggy all-fours front-view expansion: residual contact-sheet + review of `doggy all four - front view` expanded + `normal_doggy_all_fours_front_view` from 3 to 15 reviewed references. The + selected subset keeps front-facing all-fours framing with face and forearms + readable; side-drifting, seated, tight-close, and vertical-crop outliers + remain outside the route. +- 2026-07-02 doggy generic front-view expansion: residual contact-sheet review + of the duplicate trailing-space `doggy - front view ` folder expanded + `normal_doggy_generic_front_view` from 6 to 15 reviewed references. The route + remains grouped with the non-trailing duplicate folder, and one weak top/down + close crop remains outside the selected subset. +- 2026-07-02 piledriver selected split: residual contact-sheet review of + `piledriver` preserved `normal_piledriver_mixed_camera_folder_pool` as a + `needs_samples` source pool and promoted + `normal_piledriver_high_front_down_view` as a 15-image high/front-down + selected-reference subvariant. Tight top crops, side drifts, and mixed + examples remain outside the selected route. +- 2026-07-02 blowjob laying front-view expansion: residual contact-sheet review + of `blowjob - laying - front view` expanded + `normal_blowjob_laying_front_view` from 3 to 15 reviewed references. The + selected subset keeps front-facing laying oral-contact geometry; side-drifting, + wide couch/bed, and weak close-crop examples remain outside the route. +- 2026-07-02 breast-contact front-view expansion: residual contact-sheet review + of `breast - touching - front view` expanded + `normal_breast_contact_front_view` from 3 to 15 reviewed references. The + selected subset keeps front-facing body-contact geometry while side-drifting, + costume/standing outliers, and weak-contact crops remain outside the route. +- 2026-07-02 reverse-congress front-view expansion: residual contact-sheet + review of `reverse congress - front view` expanded + `normal_reverse_congress_front_view` from 3 to 15 reviewed references. The + selected subset keeps lifted/front-facing stacked-body geometry while tight + low crops, side/bed drift, and seated-only outliers remain outside the route. +- 2026-07-02 boobjob selected split: residual contact-sheet review of `boobjob` + preserved `normal_boobjob_front_close_mixed_camera_folder_pool` as a + `needs_samples` source pool and promoted + `normal_boobjob_front_close_view` as a 12-image front-close + selected-reference subvariant. Side, standing, foreground-heavy, and + downward/crop-drifting outliers remain outside the route. +- 2026-07-02 fingering selected split: contact-sheet review of `fingering` + added `normal_fingering_mixed_camera_folder_pool` as a `needs_samples` source + pool and promoted `normal_fingering_reclined_front_view` as a 10-image + reclined front-view selected-reference subvariant. Upright chair, standing, + side, and stronger oral-adjacent outliers remain outside the route. +- 2026-07-02 wand selected split: contact-sheet review of `wand` added + `normal_wand_mixed_camera_folder_pool` as a `needs_samples` source pool and + promoted `normal_wand_front_close_view` as a 7-image front-close + selected-reference subvariant. Side, portrait-close, and wider posture + outliers remain outside the route. +- 2026-07-02 ballsucking standing selected split: contact-sheet review of + `ballsucking - standing` preserved + `normal_ballsucking_standing_partner_mixed_camera_folder_pool` as a + `needs_samples` source pool and promoted + `normal_ballsucking_standing_low_side_view` as an 11-image low side/near-side + selected-reference subvariant. The water-close outlier remains outside the + route. +- 2026-07-02 face-sitting source-pool review: contact-sheet review of + `face sitting` added `normal_face_sitting_mixed_camera_folder_pool` as a + 4-image `needs_samples` source pool. Three front/near-front samples and one + rear/back-view outlier are preserved as review evidence; no pre-A/B route was + promoted. +- 2026-07-02 pussy-licking back-view source-pool review: contact-sheet review + of `pussy licking - backv iew` added + `normal_pussy_licking_backview_mixed_camera_folder_pool` as a 3-image + `needs_samples` source pool. The folder label is not promoted as prompt truth: + samples read as elevated front or high-oblique third-person references, so no + pre-A/B route was promoted. +- 2026-07-02 removing-pants source-pool review: contact-sheet review of + `removing pants` added `normal_removing_pants_mixed_camera_folder_pool` as a + 3-image `needs_samples` source pool. The samples are close, near-duplicate, + and foreground-heavy, so they remain action evidence rather than a promoted + camera route. +- 2026-07-02 thin-folder source-pool batch: contact-sheet review added + `normal_rimjob_mixed_camera_folder_pool`, + `normal_footjob_mixed_camera_folder_pool`, + `normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool`, + `normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool`, and + `normal_fist_mixed_camera_folder_pool` as `needs_samples` coverage pools. + Each folder has only one to three samples, so no pre-A/B camera route was + promoted. +- 2026-07-02 final single-reference coverage batch: contact-sheet review added + coverage-only `needs_samples` pools for the remaining 12 one-image folders, + including thin anal, oral, doggy, face-sitting, handjob, and under-desk + references. This brings all non-empty source folders into the reviewed + variant catalog without promoting any single-image folder to pre-A/B. +- 2026-07-02 covered mixed-pool artifact pass: review manifests/contact sheets + were added for the already-cataloged `ballsucking - laying`, `pretzel`, and + `woman ass exposed` source pools. `woman ass exposed` now carries all four + folder images as `needs_samples` evidence; no pre-A/B route was promoted. +- 2026-07-02 sixty-nine selected split: contact-sheet review of `69` added + `normal_sixty_nine_mixed_camera_folder_pool` as a `needs_samples` source pool + and promoted `normal_sixty_nine_front_close_view` as a 7-image front-close + selected-reference subvariant. Side/downward, upright seated, and wider + room-context outliers remain outside the route. +- 2026-07-02 handjob standing side-view residual review: residual contact-sheet + review of `handjob standing - side view` kept + `normal_handjob_standing_side_profile` at its existing 7 reviewed references. + Remaining images mix kneeling, seated, close portrait, near-front, and + oral-adjacent frames, so no additional references were promoted in this pass. +- 2026-07-02 breast-sucking side-view expansion: residual contact-sheet review + of `breast sucking - side view` expanded + `normal_breast_sucking_side_view` from 3 to 15 reviewed references. The + route remains side/near-side rather than strict profile-only; front-only, + hand-touch-only, and weak-contact examples remain outside the selected subset. +- 2026-07-02 standing from-front side-view residual review: residual + contact-sheet review of `fuck from front standing - side view` kept + `normal_standing_from_front_side_view` at its existing 3 reviewed references. + Remaining images include some usable side/near-side frames, but too many drift + into suspended/lifted, close-crop, couch, or front-heavy framing for a safe + reference expansion. +- 2026-07-02 standing backside side-view residual review: residual contact-sheet + review of `fuck from behind standing - woman backside - side view` kept + `normal_doggy_standing_backside_side_view` at its existing 16 reviewed + references and preserved the 3-image folder-pool anchor. Remaining images mix + lifted, seated, bed/couch, front-drifting, and portrait-like frames, so no + additional references or distinct subvariant were promoted. +- 2026-07-02 generic doggy rear three-quarter expansion: residual contact-sheet + review of `doggy - back view - 3-4 angle` expanded + `normal_doggy_generic_back_three_quarter` from 3 to 15 reviewed references. + The selected subset keeps back-offset normal-camera composition while + low/close and laying-drift examples remain outside the route. +- 2026-07-02 cowgirl side-view expansion: residual contact-sheet review of + `cowgirl - side view` expanded `normal_cowgirl_side_profile` from 3 to 15 + reviewed references. The selected subset keeps lateral straddle composition + while front-drifting, rear-drifting, and tight-crop examples remain outside + the route. +- 2026-07-02 anal-random unused-pool tranche: the uncovered `anal random` + folder with 99 JPGs was added as + `normal_anal_random_mixed_camera_folder_pool`. Paged contact-sheet review + promoted `normal_anal_random_front_view` as an 11-image front-view + selected-reference split; residual-pool review then promoted + `normal_anal_random_back_side_offset_view` as a 12-image rear/side-offset + split. It remains `needs_samples` for standing, overhead-like, tight-crop, and + other mixed material. +- 2026-07-02 breasts-exposed selected splits: paged contact-sheet review of the + 168-image `breasts exposed` source pool promoted + `normal_display_breasts_exposed_front_view` and + `normal_display_breasts_exposed_side_offset_view`; residual-pool review then + promoted `normal_display_breasts_exposed_standing_front_view` as a 12-image + upright standing front-view subset and + `normal_display_breasts_exposed_seated_kneeling_front_view` as a 12-image + seated/kneeling front-view subset. The mixed source pool remains + `needs_samples` for close-crop, couple/action, side-drifting, and other + display families. +- 2026-07-02 front open-leg display selected splits: paged contact-sheet review + of the 100-image `pussy spread` source pool promoted + `normal_display_front_open_leg_front_view` and + `normal_display_front_open_leg_low_close`; residual-pool review then promoted + `normal_display_front_open_leg_side_offset_view` as a 12-image side-offset + seated or reclined subset. The mixed source pool remains `needs_samples` for + remaining front, low-close, and one-off crop/camera variants. +- 2026-07-02 couple-kissing selected split: paged contact-sheet review of the + 88-image `couple kissing` source pool promoted + `normal_couple_kissing_upright_side_profile` as a 12-image upright + side-profile subset. Seated, bed, close-crop, and front-facing examples stay + in the mixed source pool. +- 2026-07-02 cowgirl back-three-quarter reference expansion: residual-pool + review of the 129-image `cowgirl - back view - 3-4 angle` source folder kept + the existing `normal_cowgirl_back_three_quarter` route and expanded it to 15 + selected references instead of creating a near-duplicate route. +- 2026-07-02 rear-body display selected split: residual-pool review of the + 99-image `woman solo showing her hass - back view` source folder promoted + `normal_display_rear_body_standing_back_view` as a 12-image upright standing + back-view subset. The broad folder pool remains `needs_samples` for seated, + kneeling, side-leaning, and close-crop rear examples. +- 2026-07-02 maintenance phase: prep artifacts now include a dedicated + validator, review indexes, per-image manifest annotations, explicit + typo/spacing alias metadata, and a separate `needs_samples` acquisition list. + These additions do not promote any new route and do not add generated + evidence. Do not add fixed-seed evidence, eval-log IDs, or generator-default decisions to this catalog until the normal-camera A/B workflow starts. Keep POV A/B notes in the existing POV files. +## No-Generation Prep Artifacts + +Prepared dry-run artifacts live under `ab_batches/normal_camera/`: + +- `normal_camera_priority_plan.json`: all 55 `pre_ab_candidate` variants in + stable catalog order, with representative references and deferred counts for + `needs_samples` and `hold`. +- `normal_camera_prompt_cue_batch.json`: source prompt cues split into + prompt-ready positive cues and blocked review-only cues. Option words, + negative wording, contrast wording, and instruction-like cleanup text stay out + of prompt-ready text. +- `normal_camera_score_sheet.json`: blank later-generation scoring rows for the + selected variants. Rows keep generator seed, sampling seed, image path, score, + note, and decision slots empty until fixed-seed generation exists. +- `normal_camera_acceptance_gates.md`: human-readable scoring gates for later + A/B review. +- `normal_camera_unused_pool_backlog.json`: larger remaining source folders + ranked by unselected image count so future tranches can proceed beyond the + first reverse-cowgirl unused-pool tranche. Rows include `folder_alias` + metadata so typo and spacing fixes remain separate from exact source paths. +- `normal_camera_needs_samples_acquisition.json` and + `normal_camera_needs_samples_acquisition.md`: all 76 `needs_samples` variants + sorted by missing reference count against a 12-reference target. This list is + for reference acquisition and remains separate from the 55-item pre-A/B + priority plan. +- `review/index.html` and `review/index.md`: no-generation indexes linking all + generated review manifests and contact sheets by source folder, canonical + alias label, image count, selected-reference count, and residual count. +- `review/reverse_cowgirl_review_manifest.json`: no-generation review manifest + for all 240 JPGs in the uncovered `reverse cowgirl` folder, paged for contact + sheet review. Review manifests now include `review_items` for every image: + selected references are marked `selected_reference`; remaining images are + marked `residual_unassigned` with a conservative exclusion reason until a + human assigns a tighter bucket. +- `review/reverse_cowgirl_contact_sheet.html`: local-image contact sheet for + assigning review buckets before any selected-reference subvariant is promoted. +- `review/breasts_exposed_review_manifest.json` and + `review/breasts_exposed_contact_sheet.html`: no-generation review scaffold for + the large mixed display source pool. +- `review/pussy_spread_review_manifest.json` and + `review/pussy_spread_contact_sheet.html`: no-generation review scaffold for + the large mixed front-display source pool. +- `review/anal_random_review_manifest.json` and + `review/anal_random_contact_sheet.html`: no-generation review scaffold for + the uncovered `anal random` source pool. +- `review/couple_kissing_review_manifest.json` and + `review/couple_kissing_contact_sheet.html`: no-generation review scaffold for + the large mixed couple-contact source pool. +- `review/cowgirl_back_view_3_4_angle_review_manifest.json` and + `review/cowgirl_back_view_3_4_angle_contact_sheet.html`: no-generation review + scaffold for the large rear three-quarter cowgirl source folder. +- `review/woman_solo_showing_her_hass_back_view_review_manifest.json` and + `review/woman_solo_showing_her_hass_back_view_contact_sheet.html`: + no-generation review scaffold for the large rear-body display source folder. + +Acceptance gates for later fixed-seed review: + +- `camera_geometry`: camera angle, elevation, side/front/back orientation, and + framing match the atlas family. +- `pose_ownership`: the visible actors own the pose correctly, with no POV body + cues leaking into normal-camera framing. +- `workspace_continuity`: workspace or lounge details support the camera angle + instead of fighting the pose. +- `clothing_visibility`: clothing cues stay attached to the intended visible + subject and only describe garments visible in the pose. +- `subject_identity`: the same woman identity, face, hair, eyes, and body type + remain stable across fixed-seed variants. +- `body_proportion_control`: penis/body proportions and limb lengths stay + plausible for the selected atlas framing. +- `prompt_noise`: prompt text uses direct visual cues, with option, negative, + and instruction-like wording removed from positive text. +- `atlas_reference_match`: the generated frame can be matched back to the + selected atlas references for the variant. + +Regenerate these files without sending prompts or images: + +```bash +python -m normal_camera_atlas_prep --write-artifacts --output-dir ab_batches/normal_camera +``` + +Validate the catalog and generated artifacts: + +```bash +python tools/normal_camera_atlas_validate.py --artifacts-dir ab_batches/normal_camera +``` + ## Camera Geometry Notes ### Side View diff --git a/docs/superpowers/plans/2026-07-02-normal-camera-atlas-maintenance-phases.md b/docs/superpowers/plans/2026-07-02-normal-camera-atlas-maintenance-phases.md new file mode 100644 index 0000000..a718d60 --- /dev/null +++ b/docs/superpowers/plans/2026-07-02-normal-camera-atlas-maintenance-phases.md @@ -0,0 +1,76 @@ +# Normal Camera Atlas Maintenance Phases Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Add phased maintenance tooling around the no-generation normal-camera atlas: a dedicated validator, review index, richer per-image annotations, folder alias metadata, needs-samples acquisition output, schema checks, and docs/smoke handoff. + +**Architecture:** Keep `normal_camera_atlas_prep.py` as the artifact builder and add `tools/normal_camera_atlas_validate.py` as the strict validation CLI. `tools/prompt_smoke.py` should delegate normal-camera artifact invariants to the validator instead of carrying every detail inline. Generated artifacts remain under `ab_batches/normal_camera/`. + +**Tech Stack:** Python standard library, JSON catalogs, generated Markdown/HTML review artifacts, existing `tools/prompt_smoke.py` smoke runner. + +--- + +### Task 1: Dedicated Validator + +**Files:** +- Create: `tools/normal_camera_atlas_validate.py` +- Modify: `tools/prompt_smoke.py` + +- [x] Add a validator module that imports `normal_camera_atlas_prep`, reads `categories/normal_camera_variants.json`, verifies catalog schema/counts, folder coverage, no-generation invariants, artifact existence, review manifests/contact sheets, selected-reference consistency, folder alias metadata, and optional JSON schema-style structural checks. +- [x] Expose `validate_normal_camera_atlas(...) -> list[str]` and a CLI that exits `1` with one error per line when validation fails. +- [x] Add a narrow prompt-smoke check that calls the validator instead of duplicating all normal-camera artifact details. +- [x] Verify with `python tools/normal_camera_atlas_validate.py --artifacts-dir ab_batches/normal_camera`. + +### Task 2: Review Index + +**Files:** +- Modify: `normal_camera_atlas_prep.py` +- Generated: `ab_batches/normal_camera/review/index.html` +- Generated: `ab_batches/normal_camera/review/index.md` + +- [x] Add `build_review_index(...)` helpers that list every default review folder with source folder, canonical alias, image count, selected subvariant count, status summary, manifest path, and contact-sheet path. +- [x] Write both HTML and Markdown indexes from `write_artifacts(...)`. +- [x] Include no-generation language and local artifact links only. + +### Task 3: Per-Image Review Annotations + +**Files:** +- Modify: `normal_camera_atlas_prep.py` + +- [x] Add `review_items` to every review manifest. +- [x] For selected references, mark `review_decision: selected_reference`, preserve `review_bucket`, `variant_key`, and include selection notes. +- [x] For residual images, mark `review_decision: residual_unassigned`, `review_bucket: unassigned`, and include a conservative reason such as `outside_selected_subvariants_or_pending_manual_bucket`. +- [x] Reflect these decisions in contact-sheet figure attributes/captions. + +### Task 4: Folder Alias Metadata + +**Files:** +- Modify: `normal_camera_atlas_prep.py` +- Modify: `tools/normal_camera_atlas_validate.py` + +- [x] Add explicit alias metadata for typo/spacing variants while preserving exact source folder names. +- [x] Include alias metadata in review manifests, unused-pool backlog rows, and review indexes. +- [x] Validate that every known typo/spacing source folder keeps an alias record. + +### Task 5: Needs-Samples Acquisition List + +**Files:** +- Modify: `normal_camera_atlas_prep.py` +- Generated: `ab_batches/normal_camera/normal_camera_needs_samples_acquisition.json` +- Generated: `ab_batches/normal_camera/normal_camera_needs_samples_acquisition.md` + +- [x] Build a needs-samples acquisition list from `categories/normal_camera_variants.json`. +- [x] Sort by missing sample count, then action family, then variant key. +- [x] Keep it separate from the pre-A/B priority plan. + +### Task 6: Docs And Verification + +**Files:** +- Modify: `docs/normal-camera-atlas.md` +- Modify: `tools/prompt_smoke.py` + +- [x] Document the validator, review index, alias metadata, per-image annotations, and acquisition list. +- [x] Run `python normal_camera_atlas_prep.py --write-artifacts --output-dir ab_batches/normal_camera`. +- [x] Run `python tools/normal_camera_atlas_validate.py --artifacts-dir ab_batches/normal_camera`. +- [x] Run `python tools/prompt_smoke.py --case normal_camera_atlas_catalog --case normal_camera_atlas_prep_artifacts --case normal_camera_unused_pool_review_artifacts --quiet`. +- [x] Run `python -m py_compile normal_camera_atlas_prep.py tools/normal_camera_atlas_validate.py tools/prompt_smoke.py`. diff --git a/docs/superpowers/plans/2026-07-02-normal-camera-unused-pool-extension.md b/docs/superpowers/plans/2026-07-02-normal-camera-unused-pool-extension.md new file mode 100644 index 0000000..a77794d --- /dev/null +++ b/docs/superpowers/plans/2026-07-02-normal-camera-unused-pool-extension.md @@ -0,0 +1,279 @@ +# Normal Camera Unused Pool Extension Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Extend the no-generation normal-camera atlas prep system across larger unused image pools, starting with the uncovered `reverse cowgirl` folder. + +**Architecture:** Keep the folder inventory and curated variant catalog as the source of truth. Add read-only review/backlog builders to `normal_camera_atlas_prep.py`, write review artifacts under `ab_batches/normal_camera/`, then add selected catalog variants only when review evidence supports stable non-POV camera/pose families. + +**Tech Stack:** Python standard library, Pillow for optional contact-sheet image output, existing JSON catalogs, existing `tools/prompt_smoke.py` smoke harness. + +--- + +### Task 1: Add Unused-Pool Review Artifact Tests + +**Files:** +- Modify: `tools/prompt_smoke.py` +- Test: `python tools/prompt_smoke.py --case normal_camera_unused_pool_review_artifacts --quiet` + +- [ ] **Step 1: Add failing smoke coverage** + +Add a smoke case that imports `normal_camera_atlas_prep`, calls `build_unused_pool_backlog(limit=5)`, `build_review_manifest("reverse cowgirl", page_size=40)`, and `build_contact_sheet_html("reverse cowgirl", page_size=40)`, then asserts: + +```python +backlog = prep_module.build_unused_pool_backlog(limit=5) +_expect(backlog.get("schema") == "sxcp_normal_camera_unused_pool_backlog_v1", "Normal camera unused-pool backlog schema changed") +_expect(backlog.get("no_generation") is True, "Normal camera unused-pool backlog must stay no-generation") +_expect((backlog.get("folders") or [])[0].get("folder") == "reverse cowgirl", "Reverse cowgirl should be the first unused-pool tranche") + +manifest = prep_module.build_review_manifest("reverse cowgirl", page_size=40) +_expect(manifest.get("schema") == "sxcp_normal_camera_review_manifest_v1", "Normal camera review manifest schema changed") +_expect(manifest.get("folder") == "reverse cowgirl", "Review manifest should target reverse cowgirl") +_expect(manifest.get("image_count") == 240, "Reverse cowgirl review should cover all 240 JPGs") +_expect(len(manifest.get("contact_sheet_pages") or []) == 6, "Reverse cowgirl review should be paged at 40 images per sheet") +_expect("back_view" in manifest.get("review_bucket_values", {}), "Review buckets lost back-view routing") + +html = prep_module.build_contact_sheet_html("reverse cowgirl", page_size=40) +_expect("reverse cowgirl/0001.jpg" in html, "Contact sheet lost first reverse-cowgirl image") +_expect("data-review-bucket" in html, "Contact sheet should expose review buckets") +``` + +- [ ] **Step 2: Register the new smoke case** + +Add `("normal_camera_unused_pool_review_artifacts", smoke_normal_camera_unused_pool_review_artifacts)` after the existing normal-camera prep smoke case. + +- [ ] **Step 3: Verify the test fails** + +Run: + +```bash +python tools/prompt_smoke.py --case normal_camera_unused_pool_review_artifacts --quiet +``` + +Expected: failure because `build_unused_pool_backlog`, `build_review_manifest`, and `build_contact_sheet_html` do not exist yet. + +### Task 2: Implement Backlog and Review Manifest Builders + +**Files:** +- Modify: `normal_camera_atlas_prep.py` +- Test: `python tools/prompt_smoke.py --case normal_camera_unused_pool_review_artifacts --quiet` + +- [ ] **Step 1: Add schemas and review buckets** + +Add constants: + +```python +UNUSED_POOL_BACKLOG_SCHEMA = "sxcp_normal_camera_unused_pool_backlog_v1" +REVIEW_MANIFEST_SCHEMA = "sxcp_normal_camera_review_manifest_v1" +DEFAULT_REVIEW_DIR = DEFAULT_OUTPUT_DIR / "review" +REVIEW_BUCKET_VALUES = { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.", +} +``` + +- [ ] **Step 2: Add helper functions** + +Add helpers to compute selected-reference coverage and page full-folder images: + +```python +def _natural_sort_key(text: str) -> list[int | str]: + return [int(part) if part.isdigit() else part.lower() for part in re.split(r"(\\d+)", text)] + +def _atlas_folder_rows() -> list[dict[str, Any]]: + return list(load_atlas().get("folders") or []) + +def _variant_reference_map() -> dict[str, set[str]]: + refs_by_folder: dict[str, set[str]] = {} + for variant in load_variants().get("variants") or []: + for ref in _reference_images(variant): + folder = ref.rsplit("/", 1)[0] + refs_by_folder.setdefault(folder, set()).add(ref) + return refs_by_folder +``` + +- [ ] **Step 3: Implement backlog builder** + +Implement `build_unused_pool_backlog(limit: int | None = None)` so it ranks non-empty folders by unselected image count, with fields `folder`, `image_count`, `selected_reference_count`, `remaining_image_count`, `covered_by_variants`, `camera_view`, `action_family`, `catalog_status`, and `suggested_action`. + +- [ ] **Step 4: Implement review manifest and HTML builders** + +Implement `build_review_manifest(folder_name: str, page_size: int = 40)` and `build_contact_sheet_html(folder_name: str, page_size: int = 40)` so `reverse cowgirl` produces six pages and exposes review buckets without classifying any image as truth. + +- [ ] **Step 5: Verify green** + +Run: + +```bash +python tools/prompt_smoke.py --case normal_camera_unused_pool_review_artifacts --quiet +``` + +Expected: `OK: smoke passed (1 cases).` + +### Task 3: Write Review Artifacts + +**Files:** +- Modify: `normal_camera_atlas_prep.py` +- Create: `ab_batches/normal_camera/normal_camera_unused_pool_backlog.json` +- Create: `ab_batches/normal_camera/review/reverse_cowgirl_review_manifest.json` +- Create: `ab_batches/normal_camera/review/reverse_cowgirl_contact_sheet.html` +- Test: `python -m normal_camera_atlas_prep --write-artifacts --output-dir ab_batches/normal_camera` + +- [ ] **Step 1: Extend artifact writing** + +Update `write_artifacts()` to include the unused-pool backlog and reverse-cowgirl review artifacts. Keep existing artifact names stable. + +- [ ] **Step 2: Regenerate artifacts** + +Run: + +```bash +python -m normal_camera_atlas_prep --write-artifacts --output-dir ab_batches/normal_camera +``` + +Expected: output includes the four existing artifacts plus `unused_pool_backlog`, `reverse_cowgirl_review_manifest`, and `reverse_cowgirl_contact_sheet`. + +- [ ] **Step 3: Verify prep smoke** + +Run: + +```bash +python tools/prompt_smoke.py --case normal_camera_atlas_prep_artifacts --case normal_camera_unused_pool_review_artifacts --quiet +``` + +Expected: `OK: smoke passed (2 cases).` + +### Task 4: Add Reverse-Cowgirl Catalog Source Pool + +**Files:** +- Modify: `categories/normal_camera_variants.json` +- Modify: `tools/prompt_smoke.py` +- Test: `python tools/prompt_smoke.py --case normal_camera_atlas_catalog --quiet` + +- [ ] **Step 1: Add failing catalog expectation** + +Extend `required_variants` in `smoke_normal_camera_atlas_catalog()` with `normal_reverse_cowgirl_mixed_camera_folder_pool`. + +- [ ] **Step 2: Verify red** + +Run: + +```bash +python tools/prompt_smoke.py --case normal_camera_atlas_catalog --quiet +``` + +Expected: failure because the mixed source-pool variant does not exist. + +- [ ] **Step 3: Add the source-pool variant** + +Add a `needs_samples` variant after the existing labeled reverse-cowgirl variants: + +```json +{ + "key": "normal_reverse_cowgirl_mixed_camera_folder_pool", + "family": "reverse_cowgirl", + "status": "needs_samples", + "atlas_folders": ["reverse cowgirl"], + "camera_view": "mixed_or_unspecified", + "action_family": "reverse_cowgirl", + "canonical_geometry": "Large reverse-cowgirl source pool with normal-camera examples but no single locked camera view until contact-sheet review selects stable subsets.", + "prompt_cues": [ + "reverse cowgirl normal-camera source pool", + "select a repeated camera family before cue drafting", + "use contact-sheet evidence before fixed-seed testing" + ], + "avoid_cues": [ + "using the full mixed folder as one locked camera preset", + "POV reverse-cowgirl wording", + "inventing camera cues from the folder label alone" + ], + "reference_images": [ + "reverse cowgirl/0001.jpg", + "reverse cowgirl/288.jpg", + "reverse cowgirl/82.jpg" + ], + "generator_hook": { + "module": "future normal-camera routing; likely camera_config.py / row_camera.py / krea_format_route.py", + "route_terms": ["reverse cowgirl", "mixed camera source pool"], + "notes": "Future hook only. This catalog does not change generator defaults, prompt routes, formatters, eval logs, or POV workflow files." + }, + "pre_ab_notes": "Added as the first large unused-pool review tranche. The full 240-image folder is a cue-expansion pool, not a prompt-ready route; split selected-reference subvariants only after contact-sheet evidence shows repeated non-POV camera geometry.", + "folder_pool": true, + "visual_review": { + "reviewed_at": "2026-07-02", + "scope": "Paged contact-sheet review scaffold covering 240 JPGs across atlas_folders plus representative references.", + "decision": "added_as_large_unused_pool_review_tranche", + "notes": "Folder is now tracked for review; selected-reference subvariants should be added only from repeated camera/pose families identified in the contact sheet." + } +} +``` + +- [ ] **Step 4: Update inventory counts** + +Increment `variant_count` and `needs_samples`, increment `covered_non_empty_folder_count`, decrement `uncovered_non_empty_folder_count`, and remove `reverse cowgirl` from `uncovered_non_empty_folders`. + +- [ ] **Step 5: Verify green** + +Run: + +```bash +python tools/prompt_smoke.py --case normal_camera_atlas_catalog --quiet +``` + +Expected: `OK: smoke passed (1 cases).` + +### Task 5: Document and Regenerate Prep Outputs + +**Files:** +- Modify: `docs/normal-camera-atlas.md` +- Modify: `ab_batches/normal_camera/normal_camera_priority_plan.json` +- Modify: `ab_batches/normal_camera/normal_camera_prompt_cue_batch.json` +- Modify: `ab_batches/normal_camera/normal_camera_score_sheet.json` +- Test: `python tools/prompt_smoke.py --case normal_camera_atlas_catalog --case normal_camera_atlas_prep_artifacts --case normal_camera_unused_pool_review_artifacts --quiet` + +- [ ] **Step 1: Update docs** + +Document that the unused-pool extension starts with `reverse cowgirl`, adds `normal_camera_unused_pool_backlog.json`, and keeps full mixed folders out of `pre_ab_candidate` until selected-reference subvariants exist. + +- [ ] **Step 2: Regenerate artifacts** + +Run: + +```bash +python -m normal_camera_atlas_prep --write-artifacts --output-dir ab_batches/normal_camera +``` + +- [ ] **Step 3: Verify focused smoke** + +Run: + +```bash +python tools/prompt_smoke.py --case normal_camera_atlas_catalog --case normal_camera_atlas_prep_artifacts --case normal_camera_unused_pool_review_artifacts --quiet +``` + +Expected: `OK: smoke passed (3 cases).` + +### Task 6: Visual Split Follow-Up + +**Files:** +- Modify later: `categories/normal_camera_variants.json` +- Modify later: `docs/normal-camera-atlas.md` +- Test later: focused smoke cases above + +- [ ] **Step 1: Review the contact sheet** + +Open `ab_batches/normal_camera/review/reverse_cowgirl_contact_sheet.html` or generated page images, classify repeated non-POV camera/pose families, and record selected image paths. + +- [ ] **Step 2: Add selected-reference subvariants only when evidence is stable** + +For each repeated family, add a subvariant with `source_variant: "normal_reverse_cowgirl_mixed_camera_folder_pool"`, `subset_selection.type: "review_selected_reference_images"`, positive-only cue sentences, and selected `reference_images`. + +- [ ] **Step 3: Leave weak groups as `needs_samples`** + +Do not promote one-off frames, POV-like frames, or visually mixed groups. Keep them in source-pool notes or review buckets until more evidence exists. + diff --git a/normal_camera_atlas_prep.py b/normal_camera_atlas_prep.py new file mode 100644 index 0000000..20a7270 --- /dev/null +++ b/normal_camera_atlas_prep.py @@ -0,0 +1,2400 @@ +"""No-generation prep artifacts for the normal-camera atlas.""" + +from __future__ import annotations + +import argparse +import html +import json +import re +from pathlib import Path +from typing import Any + + +ROOT = Path(__file__).resolve().parent +CATALOG_DIR = ROOT / "categories" +DEFAULT_OUTPUT_DIR = ROOT / "ab_batches" / "normal_camera" + +PRIORITY_PLAN_SCHEMA = "sxcp_normal_camera_priority_plan_v1" +PROMPT_CUE_BATCH_SCHEMA = "sxcp_normal_camera_prompt_cue_batch_v1" +SCORE_SHEET_SCHEMA = "sxcp_normal_camera_score_sheet_v1" +UNUSED_POOL_BACKLOG_SCHEMA = "sxcp_normal_camera_unused_pool_backlog_v1" +REVIEW_MANIFEST_SCHEMA = "sxcp_normal_camera_review_manifest_v1" +NEEDS_SAMPLES_ACQUISITION_SCHEMA = "sxcp_normal_camera_needs_samples_acquisition_v1" + +DEFAULT_REVIEW_DIR = DEFAULT_OUTPUT_DIR / "review" +NEEDS_SAMPLES_TARGET_REFERENCE_COUNT = 12 + +DEFAULT_REVIEW_FOLDERS: tuple[str, ...] = ( + "reverse cowgirl", + "breasts exposed", + "pussy spread", + "anal random", + "couple kissing", + "cowgirl - back view - 3-4 angle", + "cowgirl - side view", + "woman solo showing her hass - back view", + "doggy on all four - back view - 3-4 angle", + "doggy on all four - side view", + "doggy all four - front view", + "doggy - front view ", + "handjob standing - side view", + "wand", + "breast sucking - side view", + "fuck from front standing - side view", + "doggy - back view - 3-4 angle", + "penis worship", + "fuck from behind standing - woman backside - side view", + "piledriver", + "blowjob - laying - front view", + "breast - touching - front view", + "ballsucking - laying", + "ballsucking - standing", + "face sitting", + "pussy licking - backv iew", + "removing pants", + "rimjob", + "footjob", + "reverse cowgirl - leg up", + "reverse cowgirl -pretzel", + "fist", + "anal cowgirl", + "anal doggy - side view", + "anal fuck from behind laying - back view - 3-4 angle", + "anal reverse congress", + "anus lickiing", + "blowjob laying - back view - 3-4 angle", + "doggy press - back side", + "face sitting - front view", + "handjob - standing -low angle", + "pussy licking leg up - back view - 3-4 angle", + "pussy licking standing woman", + "under desk", + "pretzel", + "woman ass exposed", + "reverse congress - front view", + "boobjob", + "fingering", + "69", +) + +REVIEW_BUCKET_VALUES: dict[str, str] = { + "back_view": "Rear-facing normal-camera view where back/hips face camera.", + "back_three_quarter": "Rear-offset normal-camera view with enough side/torso context.", + "side_view": "Profile or near-profile lateral view with the body/action axis across frame.", + "front_view": "Front-facing normal-camera view where the contact plane faces camera.", + "front_three_quarter": "Front-offset normal-camera view.", + "top_or_low_special": "Overhead, high-downward, low-angle, or under-view special camera.", + "reject_or_unclear": "POV-like, mismatched, unclear, duplicate-only, or too mixed for cue drafting.", +} + +SOURCE_FOLDER_ALIASES: dict[str, dict[str, str]] = { + "doggy - front view": { + "canonical_folder": "doggy - front view", + "alias_reason": "Duplicate source-folder display name; preserved separately from trailing-space source folder.", + }, + "doggy - front view ": { + "canonical_folder": "doggy - front view", + "alias_reason": "Trailing-space source folder preserved exactly for path stability.", + }, + "handjob - standing -low angle": { + "canonical_folder": "handjob - standing - low angle", + "alias_reason": "Spacing typo normalized for review metadata while preserving exact source path.", + }, + "pussy licking - backv iew": { + "canonical_folder": "pussy licking - back view", + "alias_reason": "Folder-name typo normalized for review metadata while preserving exact source path.", + }, + "reverse cowgirl -pretzel": { + "canonical_folder": "reverse cowgirl - pretzel", + "alias_reason": "Missing-space folder label normalized for review metadata while preserving exact source path.", + }, + "anus lickiing": { + "canonical_folder": "anus licking", + "alias_reason": "Folder-name typo normalized for review metadata while preserving exact source path.", + }, + "woman solo showing her hass - back view": { + "canonical_folder": "woman solo showing her ass - back view", + "alias_reason": "Folder-name typo normalized for review metadata while preserving exact source path.", + }, +} + +REVIEW_SELECTED_SUBVARIANTS: dict[str, list[dict[str, Any]]] = { + "cowgirl - back view - 3-4 angle": [ + { + "variant_key": "normal_cowgirl_back_three_quarter", + "review_bucket": "back_three_quarter", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "cowgirl - back view - 3-4 angle/0002.jpg", + "cowgirl - back view - 3-4 angle/0003_4.jpg", + "cowgirl - back view - 3-4 angle/0006.jpg", + "cowgirl - back view - 3-4 angle/0008_2.jpg", + "cowgirl - back view - 3-4 angle/16.jpg", + "cowgirl - back view - 3-4 angle/22.jpg", + "cowgirl - back view - 3-4 angle/41.jpg", + "cowgirl - back view - 3-4 angle/82.jpg", + "cowgirl - back view - 3-4 angle/90.jpg", + "cowgirl - back view - 3-4 angle/145.jpg", + "cowgirl - back view - 3-4 angle/160.jpg", + "cowgirl - back view - 3-4 angle/172.jpg", + "cowgirl - back view - 3-4 angle/225.jpg", + "cowgirl - back view - 3-4 angle/241_2.jpg", + "cowgirl - back view - 3-4 angle/248.jpg", + ], + "evidence_notes": ( + "Residual-pool review confirmed the existing route as a broad but coherent " + "rear three-quarter cowgirl family. References were expanded rather than " + "splitting a near-duplicate route." + ), + } + ], + "cowgirl - side view": [ + { + "variant_key": "normal_cowgirl_side_profile", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "cowgirl - side view/0003.jpg", + "cowgirl - side view/0004_2.jpg", + "cowgirl - side view/0005.jpg", + "cowgirl - side view/0007.jpg", + "cowgirl - side view/0009.jpg", + "cowgirl - side view/0011.jpg", + "cowgirl - side view/0015.jpg", + "cowgirl - side view/118.jpg", + "cowgirl - side view/195.jpg", + "cowgirl - side view/2.jpg", + "cowgirl - side view/200.jpg", + "cowgirl - side view/255.jpg", + "cowgirl - side view/280.jpg", + "cowgirl - side view/86.jpg", + "cowgirl - side view/86_2.jpg", + ], + "evidence_notes": ( + "Residual-pool review confirmed the existing side-profile cowgirl route " + "as a coherent lateral camera family. References were expanded while " + "front-drifting, rear-drifting, and tight-crop examples remain outside " + "the selected subset." + ), + } + ], + "doggy on all four - back view - 3-4 angle": [ + { + "variant_key": "normal_doggy_all_fours_back_three_quarter", + "review_bucket": "back_three_quarter", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "doggy on all four - back view - 3-4 angle/0002.jpg", + "doggy on all four - back view - 3-4 angle/0003.jpg", + "doggy on all four - back view - 3-4 angle/0013.jpg", + "doggy on all four - back view - 3-4 angle/0014.jpg", + "doggy on all four - back view - 3-4 angle/0019.jpg", + "doggy on all four - back view - 3-4 angle/0020.jpg", + "doggy on all four - back view - 3-4 angle/206.jpg", + "doggy on all four - back view - 3-4 angle/267.jpg", + "doggy on all four - back view - 3-4 angle/302.jpg", + "doggy on all four - back view - 3-4 angle/327.jpg", + "doggy on all four - back view - 3-4 angle/550_2.jpg", + "doggy on all four - back view - 3-4 angle/608_2.jpg", + "doggy on all four - back view - 3-4 angle/611.jpg", + "doggy on all four - back view - 3-4 angle/70.jpg", + "doggy on all four - back view - 3-4 angle/97.jpg", + ], + "evidence_notes": ( + "Residual-pool review confirmed the existing all-fours rear three-quarter " + "route as a coherent camera family. References were expanded while low, " + "front-drifting, and tight-crop outliers remain outside the selected subset." + ), + } + ], + "doggy on all four - side view": [ + { + "variant_key": "normal_doggy_all_fours_side_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-06-29", + "reference_images": [ + "doggy on all four - side view/0020.jpg", + "doggy on all four - side view/192.jpg", + "doggy on all four - side view/2.jpg", + "doggy on all four - side view/204.jpg", + "doggy on all four - side view/254.jpg", + "doggy on all four - side view/254_2.jpg", + "doggy on all four - side view/254_3.jpg", + "doggy on all four - side view/271.jpg", + "doggy on all four - side view/271_2.jpg", + "doggy on all four - side view/362.jpg", + "doggy on all four - side view/495.jpg", + "doggy on all four - side view/556.jpg", + "doggy on all four - side view/86.jpg", + "doggy on all four - side view/99.jpg", + ], + "evidence_notes": ( + "Residual-pool review kept the existing selected side-view subset unchanged. " + "The remaining source images mix standing, bed, chair, close, and front-drifting " + "frames, so no additional references were promoted in this pass." + ), + } + ], + "doggy all four - front view": [ + { + "variant_key": "normal_doggy_all_fours_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "doggy all four - front view/0016.jpg", + "doggy all four - front view/48.jpg", + "doggy all four - front view/58.jpg", + "doggy all four - front view/64.jpg", + "doggy all four - front view/69.jpg", + "doggy all four - front view/77.jpg", + "doggy all four - front view/83.jpg", + "doggy all four - front view/97.jpg", + "doggy all four - front view/171.jpg", + "doggy all four - front view/197.jpg", + "doggy all four - front view/204.jpg", + "doggy all four - front view/221.jpg", + "doggy all four - front view/290.jpg", + "doggy all four - front view/596.jpg", + "doggy all four - front view/598.jpg", + ], + "evidence_notes": ( + "Residual-pool review confirmed a repeated front all-fours normal-camera " + "family with face and forearms readable in front while the partner remains " + "behind. Side-drifting, seated, tight-close, and vertical-crop outliers " + "remain outside the selected subset." + ), + } + ], + "doggy - front view ": [ + { + "variant_key": "normal_doggy_generic_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "doggy - front view/11.jpg", + "doggy - front view/5.jpg", + "doggy - front view/6.jpg", + "doggy - front view /0003.jpg", + "doggy - front view /253.jpg", + "doggy - front view /262.jpg", + "doggy - front view /349.jpg", + "doggy - front view /354.jpg", + "doggy - front view /41.jpg", + "doggy - front view /49.jpg", + "doggy - front view /505.jpg", + "doggy - front view /537.jpg", + "doggy - front view /541.jpg", + "doggy - front view /567.jpg", + "doggy - front view /627.jpg", + ], + "evidence_notes": ( + "Residual-pool review expanded the existing grouped generic front-view route " + "for the duplicate trailing-space source folder. The selected references " + "repeat a front-facing third-person doggy camera while one weak top/down " + "close crop remains outside the route." + ), + } + ], + "wand": [ + { + "variant_key": "normal_wand_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "wand/0005.jpg", + "wand/508.jpg", + "wand/75.jpg", + ], + "evidence_notes": ( + "Contact-sheet review preserved the folder as a mixed source-pool anchor. " + "The source images include useful front-close tool-contact material, but " + "side, portrait-close, and wider posture variation keep the full folder " + "from being one locked prompt-ready route." + ), + }, + { + "variant_key": "normal_wand_front_close_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "wand/0005.jpg", + "wand/0015.jpg", + "wand/217.jpg", + "wand/532.jpg", + "wand/561.jpg", + "wand/611.jpg", + "wand/75.jpg", + ], + "evidence_notes": ( + "Contact-sheet review found a repeated front-close third-person family " + "where the contact plane is centered and the wand remains readable as one " + "continuous object. Side, portrait-close, and wider posture outliers remain " + "outside this selected subset." + ), + }, + ], + "handjob standing - side view": [ + { + "variant_key": "normal_handjob_standing_side_profile", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-06-29", + "reference_images": [ + "handjob standing - side view/16.jpg", + "handjob standing - side view/105.jpg", + "handjob standing - side view/171.jpg", + "handjob standing - side view/174.jpg", + "handjob standing - side view/175.jpg", + "handjob standing - side view/305.jpg", + "handjob standing - side view/549.jpg", + ], + "evidence_notes": ( + "Residual-pool review kept the existing standing side-profile subset unchanged. " + "The remaining source images mix kneeling, seated, close portrait, near-front, " + "and oral-adjacent frames, so no additional references were promoted in this pass." + ), + } + ], + "penis worship": [ + { + "variant_key": "normal_penis_worship_foreground_close_reference_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "penis worship/0001.jpg", + ], + "evidence_notes": ( + "Residual-pool review kept the existing foreground-close source-pool anchor " + "unchanged. The remaining images are foreground-heavy and drift through front " + "or near-POV framing, so no prompt-ready expansion was promoted in this pass." + ), + }, + { + "variant_key": "normal_penis_worship_top_view", + "review_bucket": "top_or_low_special", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "penis worship/510.jpg", + "penis worship/517.jpg", + "penis worship/519.jpg", + "penis worship/520.jpg", + "penis worship/603_4.jpg", + "penis worship/607_2.jpg", + ], + "evidence_notes": ( + "Residual-pool review kept the existing user-selected top-view anchors " + "unchanged. The folder still needs cleaner repeated samples before this " + "orientation can become a pre-A/B route." + ), + }, + { + "variant_key": "normal_penis_worship_side_view", + "review_bucket": "side_view", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "penis worship/0003.jpg", + "penis worship/0004.jpg", + "penis worship/0008_2.jpg", + "penis worship/0016.jpg", + "penis worship/505.jpg", + "penis worship/566.jpg", + "penis worship/566_2.jpg", + "penis worship/618.jpg", + ], + "evidence_notes": ( + "Residual-pool review kept the existing user-selected side-view anchors " + "unchanged. The residual folder does not add a cleaner repeated lateral " + "camera subset in this pass." + ), + }, + { + "variant_key": "normal_penis_worship_laying_partner_vertical_side_view", + "review_bucket": "side_view", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "penis worship/0002_2.jpg", + "penis worship/0006.jpg", + "penis worship/0011.jpg", + "penis worship/608.jpg", + "penis worship/609.jpg", + ], + "evidence_notes": ( + "Residual-pool review kept the existing laying-partner vertical side-view " + "anchors unchanged. The remaining frames stay too mixed for promotion." + ), + }, + ], + "piledriver": [ + { + "variant_key": "normal_piledriver_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "piledriver/0001.jpg", + "piledriver/0012_2.jpg", + "piledriver/617.jpg", + ], + "evidence_notes": ( + "Residual-pool review preserved the existing mixed source-pool anchor. " + "The full folder remains too broad for one camera route because it mixes " + "tight top crops, side drifts, and selected high/front-down examples." + ), + }, + { + "variant_key": "normal_piledriver_high_front_down_view", + "review_bucket": "top_or_low_special", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "piledriver/0002.jpg", + "piledriver/0004_2.jpg", + "piledriver/0005.jpg", + "piledriver/0006_2.jpg", + "piledriver/0009.jpg", + "piledriver/0009_2.jpg", + "piledriver/0012.jpg", + "piledriver/0013.jpg", + "piledriver/282.jpg", + "piledriver/317.jpg", + "piledriver/317_2.jpg", + "piledriver/318.jpg", + "piledriver/319.jpg", + "piledriver/494_2.jpg", + "piledriver/538.jpg", + ], + "evidence_notes": ( + "Residual-pool review found a repeated high/front-down piledriver " + "camera family where the folded body remains readable below the partner. " + "Tight top crops, side drifts, and mixed examples remain outside this route." + ), + }, + ], + "blowjob - laying - front view": [ + { + "variant_key": "normal_blowjob_laying_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "blowjob - laying - front view/0001.jpg", + "blowjob - laying - front view/0003.jpg", + "blowjob - laying - front view/0004.jpg", + "blowjob - laying - front view/0010.jpg", + "blowjob - laying - front view/0010_2.jpg", + "blowjob - laying - front view/0018.jpg", + "blowjob - laying - front view/48.jpg", + "blowjob - laying - front view/69.jpg", + "blowjob - laying - front view/91.jpg", + "blowjob - laying - front view/94.jpg", + "blowjob - laying - front view/122.jpg", + "blowjob - laying - front view/171.jpg", + "blowjob - laying - front view/184.jpg", + "blowjob - laying - front view/274.jpg", + "blowjob - laying - front view/512.jpg", + ], + "evidence_notes": ( + "Residual-pool review confirmed the existing front-facing laying " + "oral-contact route as a broad but coherent third-person camera family. " + "Side-drifting, wide couch/bed, and weak close-crop examples remain outside " + "the selected subset." + ), + } + ], + "breast - touching - front view": [ + { + "variant_key": "normal_breast_contact_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "breast - touching - front view/0006.jpg", + "breast - touching - front view/0006_2.jpg", + "breast - touching - front view/12.jpg", + "breast - touching - front view/0014.jpg", + "breast - touching - front view/0015.jpg", + "breast - touching - front view/16.jpg", + "breast - touching - front view/56.jpg", + "breast - touching - front view/72.jpg", + "breast - touching - front view/183.jpg", + "breast - touching - front view/220.jpg", + "breast - touching - front view/246.jpg", + "breast - touching - front view/248.jpg", + "breast - touching - front view/281.jpg", + "breast - touching - front view/348.jpg", + "breast - touching - front view/361.jpg", + ], + "evidence_notes": ( + "Residual-pool review confirmed the existing front breast-contact " + "route as a coherent third-person camera family across standing, " + "seated, and kneeling contexts. Side-drifting, costume/standing " + "outliers, and weak-contact crops remain outside the selected subset." + ), + } + ], + "ballsucking - standing": [ + { + "variant_key": "normal_ballsucking_standing_partner_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "ballsucking - standing/0017.jpg", + "ballsucking - standing/252.jpg", + "ballsucking - standing/624.jpg", + ], + "evidence_notes": ( + "Contact-sheet review preserved the existing mixed source-pool anchor. " + "The standing-partner context is useful, but the full folder still mixes " + "close, side, front, and one water-close outlier; the outlier is anchored " + "here rather than in the pre-A/B split." + ), + }, + { + "variant_key": "normal_ballsucking_standing_low_side_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "ballsucking - standing/0014.jpg", + "ballsucking - standing/130.jpg", + "ballsucking - standing/137.jpg", + "ballsucking - standing/207.jpg", + "ballsucking - standing/222.jpg", + "ballsucking - standing/252.jpg", + "ballsucking - standing/333.jpg", + "ballsucking - standing/34.jpg", + "ballsucking - standing/540.jpg", + "ballsucking - standing/589.jpg", + "ballsucking - standing/624.jpg", + ], + "evidence_notes": ( + "Contact-sheet review found a repeated standing-partner, low-performer " + "side or near-side camera family. The water-close crop remains outside " + "this selected subset." + ), + }, + ], + "face sitting": [ + { + "variant_key": "normal_face_sitting_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "face sitting/0005.jpg", + "face sitting/0021.jpg", + "face sitting/354.jpg", + "face sitting/533.jpg", + ], + "evidence_notes": ( + "Contact-sheet review preserved the full folder as a mixed source-pool " + "anchor. Three samples are front or near-front face-sitting references, " + "while one rear/back-view outlier makes the folder too mixed and thin " + "for a selected pre-A/B route." + ), + }, + ], + "pussy licking - backv iew": [ + { + "variant_key": "normal_pussy_licking_backview_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "pussy licking - backv iew/220.jpg", + "pussy licking - backv iew/567.jpg", + "pussy licking - backv iew/614.jpg", + ], + "evidence_notes": ( + "Contact-sheet review preserved the full folder as a mixed source-pool " + "anchor. The folder label says back view, but the reviewed images read " + "as elevated front or high-oblique third-person oral-contact references; " + "the three-image set is too thin for a selected pre-A/B route." + ), + }, + ], + "removing pants": [ + { + "variant_key": "normal_removing_pants_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "removing pants/0005.jpg", + "removing pants/0006.jpg", + "removing pants/0016.jpg", + ], + "evidence_notes": ( + "Contact-sheet review preserved the full folder as a mixed source-pool " + "anchor. The three samples are near-duplicate close action references " + "with strong foreground crop, so they should not become a locked " + "normal-camera route without more matched, wider non-POV samples." + ), + }, + ], + "ballsucking - laying": [ + { + "variant_key": "normal_ballsucking_laying_close_reference_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "ballsucking - laying/271.jpg", + "ballsucking - laying/591.jpg", + ], + "evidence_notes": ( + "Contact-sheet review records the existing two-sample laying close-reference " + "source pool as needs_samples. The folder is fully represented but too thin " + "and crop-variable for a selected pre-A/B route." + ), + }, + ], + "rimjob": [ + { + "variant_key": "normal_rimjob_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "rimjob/0003.jpg", + "rimjob/0010.jpg", + "rimjob/0018.jpg", + ], + "evidence_notes": ( + "Contact-sheet review preserved the full folder as a mixed source-pool " + "anchor. The three samples mix close side/back oral-contact framing " + "with wider kneeling context and are too thin for a selected pre-A/B route." + ), + }, + ], + "footjob": [ + { + "variant_key": "normal_footjob_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "footjob/265.jpg", + "footjob/265_2.jpg", + ], + "evidence_notes": ( + "Contact-sheet review preserved the full folder as a mixed source-pool " + "anchor. The two samples share the foot-contact action but vary between " + "seated front context and tighter crop, so more matched samples are needed." + ), + }, + ], + "reverse cowgirl - leg up": [ + { + "variant_key": "normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "reverse cowgirl - leg up/266.jpg", + "reverse cowgirl - leg up/267.jpg", + ], + "evidence_notes": ( + "Contact-sheet review preserved this as a two-sample leg-up posture " + "source pool. The folder is useful cue evidence but too thin for a " + "selected normal-camera route." + ), + }, + ], + "reverse cowgirl -pretzel": [ + { + "variant_key": "normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "reverse cowgirl -pretzel/0007.jpg", + "reverse cowgirl -pretzel/617.jpg", + ], + "evidence_notes": ( + "Contact-sheet review preserved this as a two-sample pretzel-posture " + "source pool. The folder is useful cue evidence but too thin for a " + "selected normal-camera route." + ), + }, + ], + "fist": [ + { + "variant_key": "normal_fist_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "fist/337.jpg", + ], + "evidence_notes": ( + "Contact-sheet review preserved the one available manual-contact " + "reference as coverage evidence only. A single image cannot define " + "a stable normal-camera route." + ), + }, + ], + "anal cowgirl": [ + { + "variant_key": "normal_anal_cowgirl_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": ["anal cowgirl/49.jpg"], + "evidence_notes": ( + "Contact-sheet review preserved the one available sample as coverage " + "evidence only. A single image cannot define a stable normal-camera route." + ), + }, + ], + "anal doggy - side view": [ + { + "variant_key": "normal_anal_doggy_side_view_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": ["anal doggy - side view/16.jpg"], + "evidence_notes": ( + "Contact-sheet review preserved the one side-view sample as coverage " + "evidence only. The label is plausible, but a single image is too thin " + "for a selected pre-A/B route." + ), + }, + ], + "anal fuck from behind laying - back view - 3-4 angle": [ + { + "variant_key": "normal_anal_laying_back_three_quarter_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": ["anal fuck from behind laying - back view - 3-4 angle/14.jpg"], + "evidence_notes": ( + "Contact-sheet review preserved the one rear three-quarter sample as " + "coverage evidence only. A single image cannot define a stable " + "normal-camera route." + ), + }, + ], + "anal reverse congress": [ + { + "variant_key": "normal_anal_reverse_congress_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": ["anal reverse congress/160.jpg"], + "evidence_notes": ( + "Contact-sheet review preserved the one available sample as coverage " + "evidence only. A single image cannot define a stable normal-camera route." + ), + }, + ], + "anus lickiing": [ + { + "variant_key": "normal_anus_licking_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": ["anus lickiing/0004.jpg"], + "evidence_notes": ( + "Contact-sheet review preserved the one available sample as coverage " + "evidence only. A single image cannot define a stable normal-camera route." + ), + }, + ], + "blowjob laying - back view - 3-4 angle": [ + { + "variant_key": "normal_blowjob_laying_back_three_quarter_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": ["blowjob laying - back view - 3-4 angle/14.jpg"], + "evidence_notes": ( + "Contact-sheet review preserved the one rear-offset laying oral-contact " + "sample as coverage evidence only. A single image cannot define a stable " + "normal-camera route." + ), + }, + ], + "doggy press - back side": [ + { + "variant_key": "normal_doggy_press_back_side_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": ["doggy press - back side/0011.jpg"], + "evidence_notes": ( + "Contact-sheet review preserved the one back-side doggy-press sample as " + "coverage evidence only. A single image cannot define a stable " + "normal-camera route." + ), + }, + ], + "face sitting - front view": [ + { + "variant_key": "normal_face_sitting_front_view_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": ["face sitting - front view/56.jpg"], + "evidence_notes": ( + "Contact-sheet review preserved the one front-view face-sitting sample " + "as coverage evidence only. A single image is too thin for a selected " + "pre-A/B route." + ), + }, + ], + "handjob - standing -low angle": [ + { + "variant_key": "normal_handjob_standing_low_angle_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": ["handjob - standing -low angle/552.jpg"], + "evidence_notes": ( + "Contact-sheet review preserved the one standing low-angle manual-contact " + "sample as coverage evidence only. A single image is too thin for a " + "selected pre-A/B route." + ), + }, + ], + "pussy licking leg up - back view - 3-4 angle": [ + { + "variant_key": "normal_pussy_licking_leg_up_back_three_quarter_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": ["pussy licking leg up - back view - 3-4 angle/0009.jpg"], + "evidence_notes": ( + "Contact-sheet review preserved the one leg-up rear-offset oral-contact " + "sample as coverage evidence only. A single image cannot define a stable " + "normal-camera route." + ), + }, + ], + "pussy licking standing woman": [ + { + "variant_key": "normal_pussy_licking_standing_woman_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": ["pussy licking standing woman/13.jpg"], + "evidence_notes": ( + "Contact-sheet review preserved the one standing-woman oral-contact " + "sample as coverage evidence only. A single image cannot define a stable " + "normal-camera route." + ), + }, + ], + "under desk": [ + { + "variant_key": "normal_under_desk_single_reference_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": ["under desk/347.jpg"], + "evidence_notes": ( + "Contact-sheet review preserved the one under-desk context sample as " + "coverage evidence only. A single image cannot define a stable " + "normal-camera route." + ), + }, + ], + "pretzel": [ + { + "variant_key": "normal_pretzel_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "pretzel/0001.jpg", + "pretzel/0006.jpg", + ], + "evidence_notes": ( + "Contact-sheet review records the existing two-sample pretzel mixed-camera " + "source pool as needs_samples. The folder is fully represented but too thin " + "for a selected pre-A/B route." + ), + }, + ], + "woman ass exposed": [ + { + "variant_key": "normal_display_rear_exposed_body_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "woman ass exposed/40.jpg", + "woman ass exposed/49.jpg", + "woman ass exposed/52.jpg", + "woman ass exposed/58.jpg", + ], + "evidence_notes": ( + "Contact-sheet review records the existing rear exposed-body source pool " + "with all four folder images. The folder is fully represented but remains " + "too thin and camera-variable for a selected pre-A/B route." + ), + }, + ], + "reverse congress - front view": [ + { + "variant_key": "normal_reverse_congress_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "reverse congress - front view/0012.jpg", + "reverse congress - front view/0012_2.jpg", + "reverse congress - front view/0013.jpg", + "reverse congress - front view/61.jpg", + "reverse congress - front view/105.jpg", + "reverse congress - front view/105_2.jpg", + "reverse congress - front view/122.jpg", + "reverse congress - front view/183.jpg", + "reverse congress - front view/189.jpg", + "reverse congress - front view/289.jpg", + "reverse congress - front view/289_2.jpg", + "reverse congress - front view/291.jpg", + "reverse congress - front view/542.jpg", + "reverse congress - front view/542_2.jpg", + "reverse congress - front view/563_2.jpg", + ], + "evidence_notes": ( + "Residual-pool review confirmed the existing front-facing reverse-congress " + "route as a coherent lifted/front camera family. Tight low crops, " + "side/bed drift, and seated-only outliers remain outside the selected subset." + ), + } + ], + "boobjob": [ + { + "variant_key": "normal_boobjob_front_close_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "boobjob/0017.jpg", + "boobjob/259.jpg", + "boobjob/91.jpg", + ], + "evidence_notes": ( + "Residual-pool review preserved the existing mixed source-pool anchor. " + "The full folder includes useful front-close material, but side, standing, " + "foreground-heavy, and downward/crop-drifting examples keep it from being " + "one locked prompt-ready camera route." + ), + }, + { + "variant_key": "normal_boobjob_front_close_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "boobjob/0017.jpg", + "boobjob/0018_2.jpg", + "boobjob/141.jpg", + "boobjob/186.jpg", + "boobjob/218.jpg", + "boobjob/259.jpg", + "boobjob/327.jpg", + "boobjob/588.jpg", + "boobjob/592.jpg", + "boobjob/598.jpg", + "boobjob/615.jpg", + "boobjob/618.jpg", + ], + "evidence_notes": ( + "Residual-pool review found a repeated front-close third-person family " + "where face or upper body remains readable and the contact action stays " + "centered. Side, standing, foreground-heavy, and downward/crop-drifting " + "outliers remain outside this selected subset." + ), + }, + ], + "fingering": [ + { + "variant_key": "normal_fingering_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "fingering/0001.jpg", + "fingering/195.jpg", + "fingering/603.jpg", + ], + "evidence_notes": ( + "Contact-sheet review preserved the folder as a mixed source-pool anchor. " + "The images include useful manual-contact examples, but upright, standing, " + "side, and oral-adjacent frames keep the full folder from being one locked " + "prompt-ready route." + ), + }, + { + "variant_key": "normal_fingering_reclined_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "fingering/0004.jpg", + "fingering/0006.jpg", + "fingering/0013.jpg", + "fingering/0015.jpg", + "fingering/39.jpg", + "fingering/50.jpg", + "fingering/132.jpg", + "fingering/133.jpg", + "fingering/279.jpg", + "fingering/603.jpg", + ], + "evidence_notes": ( + "Contact-sheet review found a repeated reclined front-view manual-contact " + "family where the camera faces the open-thigh contact plane and face or " + "upper body remains readable. Upright chair, standing, side, and stronger " + "oral-adjacent outliers remain outside this selected subset." + ), + }, + ], + "69": [ + { + "variant_key": "normal_sixty_nine_mixed_camera_folder_pool", + "review_bucket": "reject_or_unclear", + "status": "needs_samples", + "selection_date": "2026-07-02", + "reference_images": [ + "69/0002.jpg", + "69/196.jpg", + "69/624.jpg", + ], + "evidence_notes": ( + "Contact-sheet review preserved the folder as a mixed source-pool anchor. " + "The source images include useful mutual oral-contact examples, but " + "side/downward, upright seated, and wider room-context frames keep the " + "full folder from being one locked prompt-ready route." + ), + }, + { + "variant_key": "normal_sixty_nine_front_close_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "69/0002.jpg", + "69/0008.jpg", + "69/0016.jpg", + "69/19.jpg", + "69/166.jpg", + "69/292.jpg", + "69/624.jpg", + ], + "evidence_notes": ( + "Contact-sheet review found a repeated front-close third-person family " + "where the upper subject faces camera and the opposed oral-contact pose " + "stays centered. Side/downward, upright seated, and wider room-context " + "outliers remain outside this selected subset." + ), + }, + ], + "breast sucking - side view": [ + { + "variant_key": "normal_breast_sucking_side_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "breast sucking - side view/0003.jpg", + "breast sucking - side view/0005.jpg", + "breast sucking - side view/0007.jpg", + "breast sucking - side view/0009.jpg", + "breast sucking - side view/0010_2.jpg", + "breast sucking - side view/182.jpg", + "breast sucking - side view/186.jpg", + "breast sucking - side view/218.jpg", + "breast sucking - side view/234.jpg", + "breast sucking - side view/244.jpg", + "breast sucking - side view/257.jpg", + "breast sucking - side view/267.jpg", + "breast sucking - side view/269.jpg", + "breast sucking - side view/356.jpg", + "breast sucking - side view/99.jpg", + ], + "evidence_notes": ( + "Residual-pool review confirmed a repeated side/near-side mouth-contact " + "family across standing and seated contexts. References were expanded " + "while front-only, hand-touch-only, and weak-contact examples remain outside " + "the selected subset." + ), + } + ], + "fuck from front standing - side view": [ + { + "variant_key": "normal_standing_from_front_side_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-06-29", + "reference_images": [ + "fuck from front standing - side view/0001.jpg", + "fuck from front standing - side view/252.jpg", + "fuck from front standing - side view/73.jpg", + ], + "evidence_notes": ( + "Residual-pool review kept the existing selected standing from-front side-view " + "subset unchanged. The remaining source images include usable side/near-side " + "frames, but too many drift into suspended/lifted, close-crop, couch, or " + "front-heavy framing for a safe reference expansion." + ), + } + ], + "fuck from behind standing - woman backside - side view": [ + { + "variant_key": "normal_doggy_standing_backside_side_view_folder_pool", + "review_bucket": "side_view", + "status": "needs_samples", + "selection_date": "2026-06-29", + "reference_images": [ + "fuck from behind standing - woman backside - side view/0008.jpg", + "fuck from behind standing - woman backside - side view/288.jpg", + "fuck from behind standing - woman backside - side view/68_2.jpg", + ], + "evidence_notes": ( + "Residual-pool review kept the existing folder-pool anchor unchanged. " + "The folder has standing side/rear-lateral material, but the unselected " + "images mix lifted, seated, bed/couch, front-drifting, and portrait-like " + "frames rather than a cleaner prompt-ready split." + ), + }, + { + "variant_key": "normal_doggy_standing_backside_side_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-06-29", + "reference_images": [ + "fuck from behind standing - woman backside - side view/0010.jpg", + "fuck from behind standing - woman backside - side view/0012.jpg", + "fuck from behind standing - woman backside - side view/186.jpg", + "fuck from behind standing - woman backside - side view/186_2.jpg", + "fuck from behind standing - woman backside - side view/196.jpg", + "fuck from behind standing - woman backside - side view/257.jpg", + "fuck from behind standing - woman backside - side view/286.jpg", + "fuck from behind standing - woman backside - side view/288.jpg", + "fuck from behind standing - woman backside - side view/343.jpg", + "fuck from behind standing - woman backside - side view/343_2.jpg", + "fuck from behind standing - woman backside - side view/343_3.jpg", + "fuck from behind standing - woman backside - side view/345.jpg", + "fuck from behind standing - woman backside - side view/345_2.jpg", + "fuck from behind standing - woman backside - side view/542.jpg", + "fuck from behind standing - woman backside - side view/68.jpg", + "fuck from behind standing - woman backside - side view/68_2.jpg", + ], + "evidence_notes": ( + "Residual-pool review kept the existing standing backside side-view route " + "unchanged. It already has a coherent reviewed subset; remaining images " + "do not add a distinct repeated camera family in this pass." + ), + }, + ], + "doggy - back view - 3-4 angle": [ + { + "variant_key": "normal_doggy_generic_back_three_quarter", + "review_bucket": "back_three_quarter", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "doggy - back view - 3-4 angle/0002.jpg", + "doggy - back view - 3-4 angle/0002_2.jpg", + "doggy - back view - 3-4 angle/0008_2.jpg", + "doggy - back view - 3-4 angle/0013.jpg", + "doggy - back view - 3-4 angle/0015.jpg", + "doggy - back view - 3-4 angle/0017.jpg", + "doggy - back view - 3-4 angle/0021.jpg", + "doggy - back view - 3-4 angle/132.jpg", + "doggy - back view - 3-4 angle/145.jpg", + "doggy - back view - 3-4 angle/183.jpg", + "doggy - back view - 3-4 angle/185.jpg", + "doggy - back view - 3-4 angle/227.jpg", + "doggy - back view - 3-4 angle/39.jpg", + "doggy - back view - 3-4 angle/41.jpg", + "doggy - back view - 3-4 angle/77.jpg", + ], + "evidence_notes": ( + "Residual-pool review confirmed the existing generic rear three-quarter " + "route as a coherent back-offset camera family. References were expanded " + "while low/close and laying-drift examples remain outside the selected subset." + ), + } + ], + "woman solo showing her hass - back view": [ + { + "variant_key": "normal_display_rear_body_standing_back_view", + "review_bucket": "back_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "woman solo showing her hass - back view/0002.jpg", + "woman solo showing her hass - back view/0006.jpg", + "woman solo showing her hass - back view/0006_3.jpg", + "woman solo showing her hass - back view/0007_2.jpg", + "woman solo showing her hass - back view/173.jpg", + "woman solo showing her hass - back view/197.jpg", + "woman solo showing her hass - back view/230.jpg", + "woman solo showing her hass - back view/235.jpg", + "woman solo showing her hass - back view/287.jpg", + "woman solo showing her hass - back view/293.jpg", + "woman solo showing her hass - back view/300.jpg", + "woman solo showing her hass - back view/321.jpg", + ], + "evidence_notes": ( + "Residual-pool review found a repeated upright standing rear-body display " + "family. Seated, kneeling, side-leaning, and close-crop rear examples remain " + "in the broad source pool or existing rear-body route." + ), + } + ], + "couple kissing": [ + { + "variant_key": "normal_couple_kissing_upright_side_profile", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "couple kissing/0001_2.jpg", + "couple kissing/0003.jpg", + "couple kissing/0005_2.jpg", + "couple kissing/16.jpg", + "couple kissing/159.jpg", + "couple kissing/247.jpg", + "couple kissing/247_2.jpg", + "couple kissing/253.jpg", + "couple kissing/253_2.jpg", + "couple kissing/322.jpg", + "couple kissing/354.jpg", + "couple kissing/379.jpg", + ], + "evidence_notes": ( + "Paged review found a repeated upright side-profile kissing family. " + "Seated, bed, close-crop, and front-facing examples remain in the mixed source pool." + ), + } + ], + "anal random": [ + { + "variant_key": "normal_anal_random_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "anal random/0005.jpg", + "anal random/0006.jpg", + "anal random/0015.jpg", + "anal random/160_3.jpg", + "anal random/188.jpg", + "anal random/347_3.jpg", + "anal random/347_10.jpg", + "anal random/347_11.jpg", + "anal random/366.jpg", + "anal random/366_3.jpg", + "anal random/366_4.jpg", + ], + "evidence_notes": ( + "Paged review found a repeated front-view anal camera family. " + "Side, rear, standing, and overhead-like frames remain in the mixed source pool." + ), + }, + { + "variant_key": "normal_anal_random_back_side_offset_view", + "review_bucket": "back_three_quarter", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "anal random/0003.jpg", + "anal random/0003_3.jpg", + "anal random/0010.jpg", + "anal random/0013.jpg", + "anal random/119.jpg", + "anal random/119_2.jpg", + "anal random/119_3.jpg", + "anal random/124_2.jpg", + "anal random/124_8.jpg", + "anal random/347_4.jpg", + "anal random/347_5.jpg", + "anal random/347_8.jpg", + ], + "evidence_notes": ( + "Residual-pool review found a repeated rear/side-offset anal camera family " + "with third-person framing. Front-view, standing, overhead-like, and tight " + "close-crop frames remain in the mixed source pool." + ), + } + ], + "breasts exposed": [ + { + "variant_key": "normal_display_breasts_exposed_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "breasts exposed/0001_3.jpg", + "breasts exposed/0006.jpg", + "breasts exposed/0008_2.jpg", + "breasts exposed/0011_2.jpg", + "breasts exposed/141.jpg", + "breasts exposed/181.jpg", + "breasts exposed/263.jpg", + "breasts exposed/302.jpg", + "breasts exposed/327.jpg", + "breasts exposed/346.jpg", + "breasts exposed/594_2.jpg", + "breasts exposed/624.jpg", + ], + "evidence_notes": ( + "Paged review found a repeated camera-facing full-body display family " + "inside the broad mixed source folder. Seated, side-offset, and tight " + "upper-body crops stay separate from this selected subset." + ), + }, + { + "variant_key": "normal_display_breasts_exposed_side_offset_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "breasts exposed/83.jpg", + "breasts exposed/196.jpg", + "breasts exposed/235.jpg", + "breasts exposed/267.jpg", + "breasts exposed/271.jpg", + "breasts exposed/305.jpg", + "breasts exposed/353.jpg", + "breasts exposed/373.jpg", + "breasts exposed/590.jpg", + "breasts exposed/590_2.jpg", + ], + "evidence_notes": ( + "Paged review found a repeated side-offset display family with lateral " + "torso orientation and normal third-person framing." + ), + }, + { + "variant_key": "normal_display_breasts_exposed_standing_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "breasts exposed/0002_2.jpg", + "breasts exposed/0003.jpg", + "breasts exposed/49.jpg", + "breasts exposed/138.jpg", + "breasts exposed/155.jpg", + "breasts exposed/169.jpg", + "breasts exposed/190.jpg", + "breasts exposed/230.jpg", + "breasts exposed/242.jpg", + "breasts exposed/302_2.jpg", + "breasts exposed/332.jpg", + "breasts exposed/368.jpg", + ], + "evidence_notes": ( + "Residual-pool review found a repeated upright standing front-view display " + "family. Seated, kneeling, side-offset, and tight crop examples remain in the " + "mixed source pool." + ), + }, + { + "variant_key": "normal_display_breasts_exposed_seated_kneeling_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "breasts exposed/0001_2.jpg", + "breasts exposed/0007_2.jpg", + "breasts exposed/101_2.jpg", + "breasts exposed/154.jpg", + "breasts exposed/165.jpg", + "breasts exposed/173.jpg", + "breasts exposed/259.jpg", + "breasts exposed/285.jpg", + "breasts exposed/293.jpg", + "breasts exposed/322.jpg", + "breasts exposed/328.jpg", + "breasts exposed/523.jpg", + ], + "evidence_notes": ( + "Residual-pool review found a repeated seated or kneeling front-view display " + "family. Standing, side-offset, couple/action, and tight crop examples remain " + "outside this selected subset." + ), + }, + ], + "pussy spread": [ + { + "variant_key": "normal_display_front_open_leg_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "pussy spread/0002_3.jpg", + "pussy spread/0003_4.jpg", + "pussy spread/0012.jpg", + "pussy spread/0015.jpg", + "pussy spread/0017.jpg", + "pussy spread/80.jpg", + "pussy spread/130.jpg", + "pussy spread/153.jpg", + "pussy spread/296.jpg", + "pussy spread/297.jpg", + "pussy spread/328.jpg", + "pussy spread/367.jpg", + ], + "evidence_notes": ( + "Paged review found a repeated camera-facing front-view display family " + "with enough body and room context to stay separate from tight low-close crops." + ), + }, + { + "variant_key": "normal_display_front_open_leg_low_close", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "pussy spread/1.jpg", + "pussy spread/1_2.jpg", + "pussy spread/0003.jpg", + "pussy spread/0003_2.jpg", + "pussy spread/0003_3.jpg", + "pussy spread/0010_2.jpg", + "pussy spread/0016.jpg", + "pussy spread/0016_2.jpg", + "pussy spread/41.jpg", + "pussy spread/201.jpg", + "pussy spread/217_2.jpg", + "pussy spread/223.jpg", + ], + "evidence_notes": ( + "Paged review found a repeated low-close front-view display family " + "where the foreground body plane dominates the composition." + ), + }, + { + "variant_key": "normal_display_front_open_leg_side_offset_view", + "review_bucket": "side_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "pussy spread/0007.jpg", + "pussy spread/0008.jpg", + "pussy spread/73.jpg", + "pussy spread/121.jpg", + "pussy spread/134.jpg", + "pussy spread/154_3.jpg", + "pussy spread/163.jpg", + "pussy spread/175.jpg", + "pussy spread/256.jpg", + "pussy spread/308.jpg", + "pussy spread/311.jpg", + "pussy spread/368.jpg", + ], + "evidence_notes": ( + "Residual-pool review found a repeated side-offset seated or reclined " + "open-leg display family. Straight front, low-close, and one-off crop " + "variants remain in the mixed source pool." + ), + }, + ], + "reverse cowgirl": [ + { + "variant_key": "normal_reverse_cowgirl_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "reverse cowgirl/0001.jpg", + "reverse cowgirl/0004.jpg", + "reverse cowgirl/0005_4.jpg", + "reverse cowgirl/0014.jpg", + "reverse cowgirl/79.jpg", + "reverse cowgirl/82.jpg", + "reverse cowgirl/145.jpg", + "reverse cowgirl/260.jpg", + "reverse cowgirl/288.jpg", + "reverse cowgirl/319.jpg", + "reverse cowgirl/527.jpg", + "reverse cowgirl/608.jpg", + ], + "evidence_notes": ( + "Paged review found a repeated front-facing reverse-cowgirl camera family " + "across the large mixed source folder. Rear and side labels remain covered " + "by the existing dedicated source folders until cleaner selected subsets are chosen." + ), + }, + { + "variant_key": "normal_reverse_cowgirl_front_three_quarter", + "review_bucket": "front_three_quarter", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "reverse cowgirl/153.jpg", + "reverse cowgirl/153_2.jpg", + "reverse cowgirl/239_2.jpg", + "reverse cowgirl/239_3.jpg", + "reverse cowgirl/241.jpg", + "reverse cowgirl/241_2.jpg", + "reverse cowgirl/241_3.jpg", + "reverse cowgirl/257.jpg", + "reverse cowgirl/287.jpg", + "reverse cowgirl/323_2.jpg", + "reverse cowgirl/609.jpg", + "reverse cowgirl/609_2.jpg", + ], + "evidence_notes": ( + "Paged review found a repeated front-offset reverse-cowgirl camera family " + "where the woman's body turns partly toward camera while the partner remains " + "visible below or behind her in third person." + ), + }, + { + "variant_key": "normal_reverse_cowgirl_low_close_front_view", + "review_bucket": "front_view", + "status": "pre_ab_candidate", + "selection_date": "2026-07-02", + "reference_images": [ + "reverse cowgirl/0009.jpg", + "reverse cowgirl/0009_2.jpg", + "reverse cowgirl/0009_3.jpg", + "reverse cowgirl/0015.jpg", + "reverse cowgirl/0015_2.jpg", + "reverse cowgirl/0016_2.jpg", + "reverse cowgirl/170.jpg", + "reverse cowgirl/261.jpg", + "reverse cowgirl/332.jpg", + "reverse cowgirl/332_2.jpg", + "reverse cowgirl/551.jpg", + "reverse cowgirl/618.jpg", + ], + "evidence_notes": ( + "Residual-pool review found a repeated low-close front-view reverse-cowgirl " + "family where the foreground contact plane dominates while the subject remains " + "visible in third-person framing. Wider room-context front views stay in the " + "existing front-view subset." + ), + } + ] +} + +ACCEPTANCE_GATES: tuple[str, ...] = ( + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match", +) + +GATE_DESCRIPTIONS: dict[str, str] = { + "camera_geometry": "Camera angle, elevation, side/front/back orientation, and framing match the atlas family.", + "pose_ownership": "The visible actors own the pose correctly, with no POV body cues leaking into normal-camera framing.", + "workspace_continuity": "Workspace/lounge details support the camera angle instead of fighting the pose.", + "clothing_visibility": "Clothing cues stay attached to the intended visible subject and only describe garments visible in this pose.", + "subject_identity": "The same woman identity, face, hair, eyes, and body type remain stable across fixed-seed variants.", + "body_proportion_control": "Penis/body proportions and limb lengths stay plausible for the selected atlas framing.", + "prompt_noise": "Prompt text uses direct visual cues, with option, negative, and instruction-like wording removed from positive text.", + "atlas_reference_match": "The generated frame can be matched back to the selected atlas references for this variant.", +} + +PROMPT_NOISE_PATTERNS: tuple[tuple[str, re.Pattern[str]], ...] = ( + ("option_word", re.compile(r"\b(?:may|optionally|either|or)\b", flags=re.IGNORECASE)), + ("negative_word", re.compile(r"\b(?:without|never|no|not)\b", flags=re.IGNORECASE)), + ("contrast_wording", re.compile(r"\brather than\b", flags=re.IGNORECASE)), + ("instruction_wording", re.compile(r"\b(?:avoid|exclude|prevent|forbid|should|must)\b", flags=re.IGNORECASE)), +) + + +def _load_json(path: Path) -> dict[str, Any]: + return json.loads(path.read_text(encoding="utf-8")) + + +def load_atlas() -> dict[str, Any]: + return _load_json(CATALOG_DIR / "normal_camera_atlas.json") + + +def load_variants() -> dict[str, Any]: + return _load_json(CATALOG_DIR / "normal_camera_variants.json") + + +def _limited(items: list[dict[str, Any]], limit: int | None) -> list[dict[str, Any]]: + if limit is None: + return items + if limit < 0: + raise ValueError("limit must be non-negative") + return items[:limit] + + +def _natural_sort_key(text: str) -> list[int | str]: + return [int(part) if part.isdigit() else part.lower() for part in re.split(r"(\d+)", text)] + + +def _safe_artifact_stem(text: str) -> str: + stem = re.sub(r"[^a-z0-9]+", "_", text.lower()).strip("_") + return stem or "folder" + + +def _folder_alias(folder_name: str) -> dict[str, Any]: + alias = SOURCE_FOLDER_ALIASES.get(folder_name) or {} + canonical_folder = str(alias.get("canonical_folder") or folder_name) + return { + "exact_source_folder": folder_name, + "canonical_folder": canonical_folder, + "canonical_key": _safe_artifact_stem(canonical_folder), + "alias_applied": bool(alias), + "alias_reason": str(alias.get("alias_reason") or ""), + } + + +def _atlas_folder_rows() -> list[dict[str, Any]]: + return list(load_atlas().get("folders") or []) + + +def _atlas_folder_row(folder_name: str) -> dict[str, Any]: + for folder in _atlas_folder_rows(): + if folder.get("folder") == folder_name: + return folder + raise KeyError(f"unknown normal-camera atlas folder: {folder_name}") + + +def _variant_reference_map() -> dict[str, set[str]]: + refs_by_folder: dict[str, set[str]] = {} + for variant in load_variants().get("variants") or []: + for ref in _reference_images(variant): + folder = ref.rsplit("/", 1)[0] + refs_by_folder.setdefault(folder, set()).add(ref) + return refs_by_folder + + +def _covered_variant_folders() -> set[str]: + covered: set[str] = set() + for variant in load_variants().get("variants") or []: + for folder in variant.get("atlas_folders") or []: + folder_text = str(folder) + if folder_text.strip(): + covered.add(folder_text) + return covered + + +def _folder_image_refs(folder_name: str) -> list[str]: + atlas_root = Path(str(load_atlas().get("atlas_root") or "")) + source_dir = atlas_root / folder_name + if source_dir.is_dir(): + image_names = sorted( + (path.name for path in source_dir.iterdir() if path.is_file() and path.suffix.lower() == ".jpg"), + key=_natural_sort_key, + ) + return [f"{folder_name}/{name}" for name in image_names] + return [str(ref) for ref in _atlas_folder_row(folder_name).get("reference_images") or [] if str(ref).strip()] + + +def _variant_rows(status: str | None = None, limit: int | None = None) -> list[dict[str, Any]]: + variants = load_variants().get("variants") or [] + rows = [variant for variant in variants if not status or variant.get("status") == status] + return _limited(rows, limit) + + +def _reference_images(variant: dict[str, Any]) -> list[str]: + return [str(ref) for ref in variant.get("reference_images") or [] if str(ref).strip()] + + +def _source_prompt_cues(variant: dict[str, Any]) -> list[str]: + return [str(cue).strip() for cue in variant.get("prompt_cues") or [] if str(cue).strip()] + + +def _avoid_cues(variant: dict[str, Any]) -> list[str]: + return [str(cue).strip() for cue in variant.get("avoid_cues") or [] if str(cue).strip()] + + +def _prompt_noise(cue: str) -> list[str]: + return [name for name, pattern in PROMPT_NOISE_PATTERNS if pattern.search(cue)] + + +def _prompt_cue_review(variant: dict[str, Any]) -> dict[str, Any]: + positive_cues: list[str] = [] + blocked_cues: list[dict[str, Any]] = [] + for cue in _source_prompt_cues(variant): + issues = _prompt_noise(cue) + if issues: + blocked_cues.append({"cue": cue, "issues": issues}) + else: + positive_cues.append(cue) + state = "prompt_ready" if positive_cues and not blocked_cues else "needs_prompt_cleanup" + return { + "state": state, + "positive_prompt_cues": positive_cues, + "blocked_prompt_cues": blocked_cues, + "prompt_text": ". ".join(positive_cues) + ("." if positive_cues else ""), + } + + +def _unused_pool_suggested_action(folder: dict[str, Any], covered_by_variants: bool) -> str: + if not covered_by_variants: + return "review_contact_sheet" + if folder.get("camera_view") == "mixed_or_unspecified" or folder.get("catalog_status") == "action_reference_only": + return "split_or_expand_selected_reference_subvariants" + return "mine_remaining_reference_images" + + +def build_unused_pool_backlog(limit: int | None = None) -> dict[str, Any]: + refs_by_folder = _variant_reference_map() + covered_folders = _covered_variant_folders() + rows: list[dict[str, Any]] = [] + for folder in _atlas_folder_rows(): + image_count = int(folder.get("image_count") or 0) + if image_count <= 0: + continue + folder_name = str(folder.get("folder") or "") + selected_reference_count = len(refs_by_folder.get(folder_name, set())) + remaining_image_count = max(image_count - selected_reference_count, 0) + if remaining_image_count <= 0: + continue + covered_by_variants = folder_name in covered_folders + rows.append( + { + "folder": folder_name, + "folder_alias": _folder_alias(folder_name), + "image_count": image_count, + "selected_reference_count": selected_reference_count, + "remaining_image_count": remaining_image_count, + "covered_by_variants": covered_by_variants, + "camera_view": folder.get("camera_view"), + "action_family": folder.get("action_family"), + "catalog_status": folder.get("catalog_status"), + "suggested_action": _unused_pool_suggested_action(folder, covered_by_variants), + } + ) + rows.sort(key=lambda row: (-int(row["remaining_image_count"]), str(row["folder"]))) + selected = _limited(rows, limit) + return { + "schema": UNUSED_POOL_BACKLOG_SCHEMA, + "no_generation": True, + "atlas_root": load_atlas().get("atlas_root"), + "source_inventory": "categories/normal_camera_atlas.json", + "source_variant_catalog": "categories/normal_camera_variants.json", + "selection": "non-empty folders with unselected images, sorted by remaining image count", + "available_folder_count": len(rows), + "selected_count": len(selected), + "folders": selected, + } + + +def _selected_review_items(folder_name: str) -> dict[str, dict[str, Any]]: + items: dict[str, dict[str, Any]] = {} + for selected in REVIEW_SELECTED_SUBVARIANTS.get(folder_name, []): + for ref in selected.get("reference_images") or []: + ref_text = str(ref) + if not ref_text.strip(): + continue + items[ref_text] = { + "reference_image": ref_text, + "review_decision": "selected_reference", + "review_bucket": selected.get("review_bucket"), + "variant_key": selected.get("variant_key"), + "selection_date": selected.get("selection_date"), + "review_notes": selected.get("evidence_notes") or "", + } + return items + + +def _review_items(folder_name: str, image_refs: list[str]) -> list[dict[str, Any]]: + selected_by_ref = _selected_review_items(folder_name) + items: list[dict[str, Any]] = [] + for index, ref in enumerate(image_refs, start=1): + selected = selected_by_ref.get(ref) + if selected: + item = dict(selected) + item["index"] = index + else: + item = { + "index": index, + "reference_image": ref, + "review_decision": "residual_unassigned", + "review_bucket": "unassigned", + "variant_key": None, + "selection_date": None, + "review_notes": "", + "exclusion_reason": "outside_selected_subvariants_or_pending_manual_bucket", + } + items.append(item) + return items + + +def _contact_sheet_pages( + image_refs: list[str], + page_size: int, + review_items_by_ref: dict[str, dict[str, Any]] | None = None, +) -> list[dict[str, Any]]: + pages: list[dict[str, Any]] = [] + for page_index, start in enumerate(range(0, len(image_refs), page_size), start=1): + page_refs = image_refs[start : start + page_size] + pages.append( + { + "page": page_index, + "html_anchor": f"page-{page_index:02d}", + "start_index": start + 1, + "end_index": start + len(page_refs), + "image_count": len(page_refs), + "images": [ + { + "index": start + offset + 1, + "reference_image": ref, + "review_bucket": (review_items_by_ref or {}).get(ref, {}).get("review_bucket") or "unassigned", + "review_decision": (review_items_by_ref or {}).get(ref, {}).get("review_decision") + or "residual_unassigned", + "variant_key": (review_items_by_ref or {}).get(ref, {}).get("variant_key"), + "notes": (review_items_by_ref or {}).get(ref, {}).get("review_notes") or "", + } + for offset, ref in enumerate(page_refs) + ], + } + ) + return pages + + +def build_review_manifest(folder_name: str, page_size: int = 40) -> dict[str, Any]: + if page_size <= 0: + raise ValueError("page_size must be positive") + folder = _atlas_folder_row(folder_name) + image_refs = _folder_image_refs(folder_name) + review_items = _review_items(folder_name, image_refs) + review_items_by_ref = {str(item["reference_image"]): item for item in review_items} + return { + "schema": REVIEW_MANIFEST_SCHEMA, + "no_generation": True, + "atlas_root": load_atlas().get("atlas_root"), + "folder": folder_name, + "folder_alias": _folder_alias(folder_name), + "image_count": len(image_refs), + "action_family": folder.get("action_family"), + "source_camera_view": folder.get("camera_view"), + "source_catalog_status": folder.get("catalog_status"), + "review_state": "contact_sheet_ready", + "methodology": [ + "Treat this folder as a cue-expansion pool, not automatic prompt truth.", + "Cluster only repeated non-POV camera/pose families.", + "Draft positive-only visual prompt cues from selected atlas references.", + "Keep weak, mixed, or one-off groups as needs_samples.", + ], + "review_bucket_values": REVIEW_BUCKET_VALUES, + "selected_subvariants": REVIEW_SELECTED_SUBVARIANTS.get(folder_name, []), + "review_items": review_items, + "contact_sheet_pages": _contact_sheet_pages(image_refs, page_size, review_items_by_ref), + } + + +def build_contact_sheet_html(folder_name: str, page_size: int = 40) -> str: + manifest = build_review_manifest(folder_name, page_size) + atlas_root = Path(str(manifest.get("atlas_root") or "")) + title = f"Normal Camera Review Contact Sheet: {folder_name}" + review_items_by_ref = {str(item.get("reference_image")): item for item in manifest.get("review_items") or []} + alias = manifest.get("folder_alias") or {} + lines = [ + "", + '', + "", + '', + f"{html.escape(title)}", + "", + "", + "", + f"

{html.escape(title)}

", + ( + f'

No-generation contact sheet. {manifest["image_count"]} JPGs from ' + f'{html.escape(folder_name)}. Review buckets are placeholders until visual review assigns them.

' + ), + ( + f'

Canonical folder label: {html.escape(str(alias.get("canonical_folder") or folder_name))}.

' + ), + '
', + ] + for bucket, description in REVIEW_BUCKET_VALUES.items(): + lines.append(f'
{html.escape(bucket)}
{html.escape(description)}
') + lines.append("
") + for page in manifest["contact_sheet_pages"]: + lines.append(f'

Page {page["page"]}: {page["start_index"]}-{page["end_index"]}

') + lines.append('
') + for image in page["images"]: + ref = str(image["reference_image"]) + src = (atlas_root / ref).as_uri() if atlas_root.is_absolute() else ref + review_item = review_items_by_ref.get(ref) or {} + review_bucket = str(review_item.get("review_bucket") or "unassigned") + review_decision = str(review_item.get("review_decision") or "residual_unassigned") + selected_variant = str(review_item.get("variant_key") or "") + bucket_label = review_bucket + variant_label = f" / {selected_variant}" if selected_variant else "" + lines.extend( + [ + ( + f'
' + ), + f'{html.escape(ref)}', + ( + f'
{image["index"]:03d} ' + f'{html.escape(ref)}bucket: {html.escape(bucket_label)}' + f'{html.escape(variant_label)}
' + ), + "
", + ] + ) + lines.append("
") + lines.extend(["", "", ""]) + return "\n".join(lines) + + +def _review_index_rows() -> list[dict[str, Any]]: + rows: list[dict[str, Any]] = [] + for folder_name in DEFAULT_REVIEW_FOLDERS: + manifest = build_review_manifest(folder_name) + stem = _safe_artifact_stem(folder_name) + decision_counts: dict[str, int] = {} + for item in manifest.get("review_items") or []: + decision = str(item.get("review_decision") or "unknown") + decision_counts[decision] = decision_counts.get(decision, 0) + 1 + rows.append( + { + "folder": folder_name, + "folder_alias": manifest.get("folder_alias"), + "image_count": manifest.get("image_count"), + "action_family": manifest.get("action_family"), + "source_camera_view": manifest.get("source_camera_view"), + "source_catalog_status": manifest.get("source_catalog_status"), + "selected_subvariant_count": len(manifest.get("selected_subvariants") or []), + "selected_reference_count": int(decision_counts.get("selected_reference") or 0), + "residual_unassigned_count": int(decision_counts.get("residual_unassigned") or 0), + "review_decision_counts": decision_counts, + "manifest_path": f"{stem}_review_manifest.json", + "contact_sheet_path": f"{stem}_contact_sheet.html", + } + ) + return rows + + +def _markdown_cell(value: Any) -> str: + return str(value if value is not None else "").replace("|", "\\|") + + +def build_review_index_markdown() -> str: + lines = [ + "# Normal Camera Review Index", + "", + "No-generation index for local review manifests and contact sheets.", + "", + "| Source folder | Canonical label | Images | Selected refs | Residual | Manifest | Contact sheet |", + "| --- | --- | ---: | ---: | ---: | --- | --- |", + ] + for row in _review_index_rows(): + alias = row.get("folder_alias") or {} + lines.append( + "| " + + " | ".join( + [ + _markdown_cell(row.get("folder")), + _markdown_cell(alias.get("canonical_folder")), + _markdown_cell(row.get("image_count")), + _markdown_cell(row.get("selected_reference_count")), + _markdown_cell(row.get("residual_unassigned_count")), + f"[manifest]({_markdown_cell(row.get('manifest_path'))})", + f"[contact sheet]({_markdown_cell(row.get('contact_sheet_path'))})", + ] + ) + + " |" + ) + lines.append("") + return "\n".join(lines) + + +def build_review_index_html() -> str: + lines = [ + "", + '', + "", + '', + "Normal Camera Review Index", + "", + "", + "", + "

Normal Camera Review Index

", + '

No-generation index for local review manifests and contact sheets.

', + "", + "", + "", + ] + for row in _review_index_rows(): + alias = row.get("folder_alias") or {} + manifest_path = str(row.get("manifest_path") or "") + contact_sheet_path = str(row.get("contact_sheet_path") or "") + lines.append( + "" + f"" + f"" + f"" + f"" + f"" + f'' + f'' + "" + ) + lines.extend(["", "
Source folderCanonical labelImagesSelected refsResidualManifestContact sheet
{html.escape(str(row.get('folder') or ''))}{html.escape(str(alias.get('canonical_folder') or ''))}{html.escape(str(row.get('image_count') or 0))}{html.escape(str(row.get('selected_reference_count') or 0))}{html.escape(str(row.get('residual_unassigned_count') or 0))}manifestcontact sheet
", "", "", ""]) + return "\n".join(lines) + + +def build_needs_samples_acquisition(limit: int | None = None) -> dict[str, Any]: + rows: list[dict[str, Any]] = [] + for variant in _variant_rows("needs_samples"): + reference_count = len(_reference_images(variant)) + missing_reference_count = max(NEEDS_SAMPLES_TARGET_REFERENCE_COUNT - reference_count, 0) + rows.append( + { + "variant_key": variant.get("key"), + "family": variant.get("family"), + "action_family": variant.get("action_family"), + "camera_view": variant.get("camera_view"), + "atlas_folders": list(variant.get("atlas_folders") or []), + "folder_aliases": [_folder_alias(str(folder)) for folder in variant.get("atlas_folders") or []], + "reference_count": reference_count, + "target_reference_count": NEEDS_SAMPLES_TARGET_REFERENCE_COUNT, + "missing_reference_count": missing_reference_count, + "canonical_geometry": variant.get("canonical_geometry"), + "suggested_action": "collect_or_mine_repeatable_non_pov_references", + "review_notes": variant.get("pre_ab_notes") or (variant.get("visual_review") or {}).get("notes") or "", + } + ) + rows.sort( + key=lambda row: ( + -int(row["missing_reference_count"]), + str(row.get("action_family") or ""), + str(row.get("variant_key") or ""), + ) + ) + for index, row in enumerate(rows, start=1): + row["acquisition_rank"] = index + selected = _limited(rows, limit) + return { + "schema": NEEDS_SAMPLES_ACQUISITION_SCHEMA, + "no_generation": True, + "atlas_root": load_variants().get("atlas_root"), + "source_variant_catalog": "categories/normal_camera_variants.json", + "selection": "needs_samples variants sorted by missing reference count, action family, and variant key", + "target_reference_count": NEEDS_SAMPLES_TARGET_REFERENCE_COUNT, + "available_variant_count": len(rows), + "selected_count": len(selected), + "variants": selected, + } + + +def build_needs_samples_acquisition_markdown(limit: int | None = None) -> str: + acquisition = build_needs_samples_acquisition(limit) + lines = [ + "# Normal Camera Needs-Samples Acquisition", + "", + "No-generation acquisition list for variants that are not ready for fixed-seed pre-A/B testing.", + "", + f"Target reference count per promoted selected-reference family: {NEEDS_SAMPLES_TARGET_REFERENCE_COUNT}.", + "", + "| Rank | Variant | Action | Camera | Refs | Missing | Source folders |", + "| ---: | --- | --- | --- | ---: | ---: | --- |", + ] + for row in acquisition.get("variants") or []: + folders = ", ".join(str(folder) for folder in row.get("atlas_folders") or []) + lines.append( + "| " + + " | ".join( + [ + _markdown_cell(row.get("acquisition_rank")), + _markdown_cell(row.get("variant_key")), + _markdown_cell(row.get("action_family")), + _markdown_cell(row.get("camera_view")), + _markdown_cell(row.get("reference_count")), + _markdown_cell(row.get("missing_reference_count")), + _markdown_cell(folders), + ] + ) + + " |" + ) + lines.append("") + return "\n".join(lines) + + +def _candidate_base(variant: dict[str, Any], rank: int) -> dict[str, Any]: + hook = variant.get("generator_hook") or {} + return { + "priority_rank": rank, + "key": variant.get("key"), + "family": variant.get("family"), + "action_family": variant.get("action_family"), + "camera_view": variant.get("camera_view"), + "status": variant.get("status"), + "atlas_folders": list(variant.get("atlas_folders") or []), + "reference_images": _reference_images(variant), + "canonical_geometry": variant.get("canonical_geometry"), + "acceptance_gates": list(ACCEPTANCE_GATES), + "priority_reason": ( + "Catalog status is pre_ab_candidate with representative references; " + "catalog order is preserved until fixed-seed evidence exists." + ), + "generator_hook_notes": hook.get("notes"), + } + + +def build_priority_plan(limit: int | None = None) -> dict[str, Any]: + variants_catalog = load_variants() + selected = _variant_rows("pre_ab_candidate", limit) + all_pre_ab = _variant_rows("pre_ab_candidate") + status_counts = (variants_catalog.get("inventory") or {}).get("status_counts") or {} + return { + "schema": PRIORITY_PLAN_SCHEMA, + "no_generation": True, + "atlas_root": variants_catalog.get("atlas_root"), + "source_variant_catalog": "categories/normal_camera_variants.json", + "available_pre_ab_count": len(all_pre_ab), + "selected_count": len(selected), + "deferred_counts": { + "needs_samples": int(status_counts.get("needs_samples") or 0), + "hold": int(status_counts.get("hold") or 0), + }, + "acceptance_gate_descriptions": GATE_DESCRIPTIONS, + "candidates": [_candidate_base(variant, index) for index, variant in enumerate(selected, start=1)], + } + + +def build_prompt_cue_batch(limit: int | None = None) -> dict[str, Any]: + selected = _variant_rows("pre_ab_candidate", limit) + items: list[dict[str, Any]] = [] + for index, variant in enumerate(selected, start=1): + cue_review = _prompt_cue_review(variant) + items.append( + { + "batch_rank": index, + "variant_key": variant.get("key"), + "family": variant.get("family"), + "camera_view": variant.get("camera_view"), + "atlas_folders": list(variant.get("atlas_folders") or []), + "reference_images": _reference_images(variant), + "canonical_geometry": variant.get("canonical_geometry"), + "source_prompt_cues": _source_prompt_cues(variant), + "review_only_avoid_cues": _avoid_cues(variant), + "state": cue_review["state"], + "positive_prompt_cues": cue_review["positive_prompt_cues"], + "blocked_prompt_cues": cue_review["blocked_prompt_cues"], + "prompt_text": cue_review["prompt_text"], + "prompt_order": [ + "subject_identity", + "scene_anchor", + "camera_pose_cues", + "pose-visible_clothing_cues", + "expression_eye_cues", + ], + "later_test_seed_slots": { + "generator_seed": None, + "sampling_seed": None, + "fixed_subject_seed": None, + }, + } + ) + return { + "schema": PROMPT_CUE_BATCH_SCHEMA, + "no_generation": True, + "atlas_root": load_variants().get("atlas_root"), + "selection": "pre_ab_candidate variants in catalog order", + "items": items, + } + + +def build_score_sheet(limit: int | None = None) -> dict[str, Any]: + selected = _variant_rows("pre_ab_candidate", limit) + rows = [] + for index, variant in enumerate(selected, start=1): + rows.append( + { + "batch_rank": index, + "variant_key": variant.get("key"), + "family": variant.get("family"), + "camera_view": variant.get("camera_view"), + "atlas_folders": list(variant.get("atlas_folders") or []), + "reference_images": _reference_images(variant), + "test_prompt_id": None, + "image_path": None, + "generator_seed": None, + "sampling_seed": None, + "scores": {gate: None for gate in ACCEPTANCE_GATES}, + "notes": "", + "decision": None, + } + ) + return { + "schema": SCORE_SHEET_SCHEMA, + "no_generation": True, + "atlas_root": load_variants().get("atlas_root"), + "acceptance_gates": list(ACCEPTANCE_GATES), + "acceptance_gate_descriptions": GATE_DESCRIPTIONS, + "score_scale": { + "0": "fails the gate", + "1": "partial or unstable", + "2": "usable but needs wording refinement", + "3": "strong enough to preserve as candidate wording", + }, + "rows": rows, + } + + +def build_acceptance_gates_markdown() -> str: + lines = [ + "# Normal Camera Pre-A/B Acceptance Gates", + "", + "No-generation gate sheet for later fixed-seed generation review. This file does not record generated evidence.", + "", + ] + for gate in ACCEPTANCE_GATES: + lines.append(f"- `{gate}`: {GATE_DESCRIPTIONS[gate]}") + lines.extend( + [ + "", + "Prompt-ready cues must stay positive and direct. Cues with option words, negative wording, or instruction-like cleanup text remain review-only until manually rewritten from atlas evidence.", + "", + ] + ) + return "\n".join(lines) + + +def write_artifacts(output_dir: Path = DEFAULT_OUTPUT_DIR, limit: int | None = None, indent: int = 2) -> dict[str, Path]: + output_dir.mkdir(parents=True, exist_ok=True) + review_dir = output_dir / "review" + artifacts: dict[str, tuple[Path, Any]] = { + "priority_plan": (output_dir / "normal_camera_priority_plan.json", build_priority_plan(limit)), + "prompt_cue_batch": (output_dir / "normal_camera_prompt_cue_batch.json", build_prompt_cue_batch(limit)), + "score_sheet": (output_dir / "normal_camera_score_sheet.json", build_score_sheet(limit)), + "acceptance_gates": (output_dir / "normal_camera_acceptance_gates.md", build_acceptance_gates_markdown()), + "unused_pool_backlog": (output_dir / "normal_camera_unused_pool_backlog.json", build_unused_pool_backlog(limit)), + "needs_samples_acquisition": ( + output_dir / "normal_camera_needs_samples_acquisition.json", + build_needs_samples_acquisition(limit), + ), + "needs_samples_acquisition_md": ( + output_dir / "normal_camera_needs_samples_acquisition.md", + build_needs_samples_acquisition_markdown(limit), + ), + } + for folder_name in DEFAULT_REVIEW_FOLDERS: + stem = _safe_artifact_stem(folder_name) + artifacts[f"{stem}_review_manifest"] = ( + review_dir / f"{stem}_review_manifest.json", + build_review_manifest(folder_name), + ) + artifacts[f"{stem}_contact_sheet"] = ( + review_dir / f"{stem}_contact_sheet.html", + build_contact_sheet_html(folder_name), + ) + artifacts["review_index_md"] = (review_dir / "index.md", build_review_index_markdown()) + artifacts["review_index_html"] = (review_dir / "index.html", build_review_index_html()) + written: dict[str, Path] = {} + for name, (path, payload) in artifacts.items(): + path.parent.mkdir(parents=True, exist_ok=True) + if isinstance(payload, str): + path.write_text(payload, encoding="utf-8") + else: + path.write_text(json.dumps(payload, indent=indent) + "\n", encoding="utf-8") + written[name] = path + return written + + +def _parser() -> argparse.ArgumentParser: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--limit", type=int, default=None, help="Limit selected pre-A/B variants.") + parser.add_argument("--indent", type=int, default=2, help="JSON indentation for written/printed artifacts.") + parser.add_argument("--output-dir", type=Path, default=DEFAULT_OUTPUT_DIR, help="Artifact output directory.") + parser.add_argument( + "--artifact", + choices=( + "priority-plan", + "prompt-cue-batch", + "score-sheet", + "acceptance-gates", + "unused-pool-backlog", + "needs-samples-acquisition", + "needs-samples-acquisition-md", + "review-manifest", + "contact-sheet-html", + "review-index-md", + "review-index-html", + ), + default="priority-plan", + help="Artifact to print when --write-artifacts is not set.", + ) + parser.add_argument("--review-folder", default="reverse cowgirl", help="Folder to use for review-manifest/contact-sheet-html artifacts.") + parser.add_argument("--page-size", type=int, default=40, help="Review contact-sheet page size.") + parser.add_argument("--write-artifacts", action="store_true", help="Write all normal-camera prep artifacts.") + return parser + + +def main(argv: list[str] | None = None) -> int: + args = _parser().parse_args(argv) + if args.write_artifacts: + written = write_artifacts(args.output_dir, args.limit, args.indent) + for name, path in written.items(): + print(f"{name}: {path}") + return 0 + + payloads: dict[str, Any] = { + "priority-plan": build_priority_plan(args.limit), + "prompt-cue-batch": build_prompt_cue_batch(args.limit), + "score-sheet": build_score_sheet(args.limit), + "acceptance-gates": build_acceptance_gates_markdown(), + "unused-pool-backlog": build_unused_pool_backlog(args.limit), + "needs-samples-acquisition": build_needs_samples_acquisition(args.limit), + "needs-samples-acquisition-md": build_needs_samples_acquisition_markdown(args.limit), + "review-manifest": build_review_manifest(str(args.review_folder), args.page_size), + "contact-sheet-html": build_contact_sheet_html(str(args.review_folder), args.page_size), + "review-index-md": build_review_index_markdown(), + "review-index-html": build_review_index_html(), + } + payload = payloads[args.artifact] + if isinstance(payload, str): + print(payload) + else: + print(json.dumps(payload, indent=args.indent)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tools/normal_camera_atlas_validate.py b/tools/normal_camera_atlas_validate.py new file mode 100644 index 0000000..22dc64b --- /dev/null +++ b/tools/normal_camera_atlas_validate.py @@ -0,0 +1,339 @@ +#!/usr/bin/env python3 +"""Validate no-generation normal-camera atlas maintenance artifacts.""" + +from __future__ import annotations + +import argparse +import json +import sys +from pathlib import Path +from typing import Any + + +ROOT = Path(__file__).resolve().parents[1] +if str(ROOT) not in sys.path: + sys.path.insert(0, str(ROOT)) + +import normal_camera_atlas_prep as prep # noqa: E402 + + +EXPECTED_VARIANT_COUNT = 131 +EXPECTED_PRE_AB_COUNT = 55 +EXPECTED_NEEDS_SAMPLES_COUNT = 76 +EXPECTED_COVERED_NON_EMPTY_FOLDER_COUNT = 101 +EXPECTED_UNCOVERED_NON_EMPTY_FOLDER_COUNT = 0 + +JSON_ARTIFACT_SCHEMAS = { + "normal_camera_priority_plan.json": prep.PRIORITY_PLAN_SCHEMA, + "normal_camera_prompt_cue_batch.json": prep.PROMPT_CUE_BATCH_SCHEMA, + "normal_camera_score_sheet.json": prep.SCORE_SHEET_SCHEMA, + "normal_camera_unused_pool_backlog.json": prep.UNUSED_POOL_BACKLOG_SCHEMA, + "normal_camera_needs_samples_acquisition.json": prep.NEEDS_SAMPLES_ACQUISITION_SCHEMA, +} + +TEXT_ARTIFACTS = ( + "normal_camera_acceptance_gates.md", + "normal_camera_needs_samples_acquisition.md", + "review/index.md", + "review/index.html", +) + + +def _add_error(errors: list[str], message: str) -> None: + errors.append(message) + + +def _json_file(path: Path, errors: list[str]) -> dict[str, Any]: + if not path.is_file(): + _add_error(errors, f"missing artifact: {path}") + return {} + try: + payload = json.loads(path.read_text(encoding="utf-8")) + except json.JSONDecodeError as exc: + _add_error(errors, f"invalid JSON artifact {path}: {exc}") + return {} + if not isinstance(payload, dict): + _add_error(errors, f"JSON artifact is not an object: {path}") + return {} + return payload + + +def _expect_object(value: Any, name: str, errors: list[str]) -> dict[str, Any]: + if not isinstance(value, dict): + _add_error(errors, f"{name} must be an object") + return {} + return value + + +def _expect_list(value: Any, name: str, errors: list[str]) -> list[Any]: + if not isinstance(value, list): + _add_error(errors, f"{name} must be a list") + return [] + return value + + +def _expect_schema(payload: dict[str, Any], schema: str, name: str, errors: list[str]) -> None: + if payload.get("schema") != schema: + _add_error(errors, f"{name} schema changed: {payload.get('schema')!r}") + if payload.get("no_generation") is not True: + _add_error(errors, f"{name} must stay no_generation=true") + + +def _validate_variant_catalog(errors: list[str]) -> tuple[dict[str, dict[str, Any]], set[str]]: + atlas = prep.load_atlas() + variants_catalog = prep.load_variants() + folders = _expect_list(atlas.get("folders"), "normal_camera_atlas.folders", errors) + variants = _expect_list(variants_catalog.get("variants"), "normal_camera_variants.variants", errors) + inventory = _expect_object(variants_catalog.get("inventory"), "normal_camera_variants.inventory", errors) + status_counts = _expect_object(inventory.get("status_counts"), "normal_camera_variants.inventory.status_counts", errors) + + if len(variants) != EXPECTED_VARIANT_COUNT: + _add_error(errors, f"expected {EXPECTED_VARIANT_COUNT} variants, got {len(variants)}") + if int(status_counts.get("pre_ab_candidate") or 0) != EXPECTED_PRE_AB_COUNT: + _add_error(errors, "pre_ab_candidate count changed") + if int(status_counts.get("needs_samples") or 0) != EXPECTED_NEEDS_SAMPLES_COUNT: + _add_error(errors, "needs_samples count changed") + if int(inventory.get("covered_non_empty_folder_count") or 0) != EXPECTED_COVERED_NON_EMPTY_FOLDER_COUNT: + _add_error(errors, "covered non-empty folder count changed") + if int(inventory.get("uncovered_non_empty_folder_count") or 0) != EXPECTED_UNCOVERED_NON_EMPTY_FOLDER_COUNT: + _add_error(errors, "normal-camera atlas has uncovered non-empty folders") + + folder_names = {str(folder.get("folder")) for folder in folders if str(folder.get("folder") or "").strip()} + variants_by_key: dict[str, dict[str, Any]] = {} + seen_variant_keys: set[str] = set() + status_values = set((variants_catalog.get("status_values") or {}).keys()) + for index, variant in enumerate(variants, start=1): + variant_obj = _expect_object(variant, f"variant[{index}]", errors) + key = str(variant_obj.get("key") or "") + if not key: + _add_error(errors, f"variant[{index}] has no key") + continue + if key in seen_variant_keys: + _add_error(errors, f"duplicate variant key: {key}") + seen_variant_keys.add(key) + variants_by_key[key] = variant_obj + if variant_obj.get("status") not in status_values: + _add_error(errors, f"{key} has unknown status: {variant_obj.get('status')!r}") + for field in ("family", "action_family", "camera_view", "canonical_geometry"): + if not str(variant_obj.get(field) or "").strip(): + _add_error(errors, f"{key}.{field} is empty") + for field in ("atlas_folders", "reference_images", "prompt_cues", "avoid_cues"): + values = _expect_list(variant_obj.get(field), f"{key}.{field}", errors) + if not values: + _add_error(errors, f"{key}.{field} is empty") + for folder_name in variant_obj.get("atlas_folders") or []: + if str(folder_name) not in folder_names: + _add_error(errors, f"{key} references unknown atlas folder: {folder_name!r}") + for ref in variant_obj.get("reference_images") or []: + ref_text = str(ref or "") + if ".." in Path(ref_text).parts: + _add_error(errors, f"{key} reference escapes atlas root: {ref_text!r}") + hook = _expect_object(variant_obj.get("generator_hook"), f"{key}.generator_hook", errors) + if "Future hook only" not in str(hook.get("notes") or ""): + _add_error(errors, f"{key} generator hook should remain future-only") + return variants_by_key, folder_names + + +def _validate_built_artifacts(errors: list[str]) -> None: + priority_plan = prep.build_priority_plan() + prompt_batch = prep.build_prompt_cue_batch() + score_sheet = prep.build_score_sheet() + unused_pool_backlog = prep.build_unused_pool_backlog() + acquisition = prep.build_needs_samples_acquisition() + + _expect_schema(priority_plan, prep.PRIORITY_PLAN_SCHEMA, "built priority plan", errors) + _expect_schema(prompt_batch, prep.PROMPT_CUE_BATCH_SCHEMA, "built prompt cue batch", errors) + _expect_schema(score_sheet, prep.SCORE_SHEET_SCHEMA, "built score sheet", errors) + _expect_schema(unused_pool_backlog, prep.UNUSED_POOL_BACKLOG_SCHEMA, "built unused-pool backlog", errors) + _expect_schema(acquisition, prep.NEEDS_SAMPLES_ACQUISITION_SCHEMA, "built needs-samples acquisition", errors) + + if int(priority_plan.get("selected_count") or 0) != EXPECTED_PRE_AB_COUNT: + _add_error(errors, "priority plan should include all pre-A/B candidates") + if len(prompt_batch.get("items") or []) != EXPECTED_PRE_AB_COUNT: + _add_error(errors, "prompt cue batch should include all pre-A/B candidates") + if len(score_sheet.get("rows") or []) != EXPECTED_PRE_AB_COUNT: + _add_error(errors, "score sheet should include all pre-A/B candidates") + if int(acquisition.get("available_variant_count") or 0) != EXPECTED_NEEDS_SAMPLES_COUNT: + _add_error(errors, "needs-samples acquisition should include all needs_samples variants") + + acquisition_rows = acquisition.get("variants") or [] + missing_counts = [int(row.get("missing_reference_count") or 0) for row in acquisition_rows] + if missing_counts != sorted(missing_counts, reverse=True): + _add_error(errors, "needs-samples acquisition must be sorted by missing reference count") + for row in acquisition_rows: + if row.get("target_reference_count") != prep.NEEDS_SAMPLES_TARGET_REFERENCE_COUNT: + _add_error(errors, f"{row.get('variant_key')} has wrong acquisition target") + if row.get("missing_reference_count") is None: + _add_error(errors, f"{row.get('variant_key')} has no missing reference count") + + +def _validate_artifact_files(artifacts_dir: Path, errors: list[str]) -> None: + for relative_path, schema in JSON_ARTIFACT_SCHEMAS.items(): + payload = _json_file(artifacts_dir / relative_path, errors) + if payload: + _expect_schema(payload, schema, relative_path, errors) + + for relative_path in TEXT_ARTIFACTS: + path = artifacts_dir / relative_path + if not path.is_file(): + _add_error(errors, f"missing artifact: {path}") + continue + text = path.read_text(encoding="utf-8") + if relative_path.endswith(".html") and "No-generation" not in text: + _add_error(errors, f"{relative_path} lost no-generation language") + if relative_path.endswith(".md") and "No-generation" not in text: + _add_error(errors, f"{relative_path} lost no-generation language") + + gates_path = artifacts_dir / "normal_camera_acceptance_gates.md" + if gates_path.is_file() and "body_proportion_control" not in gates_path.read_text(encoding="utf-8"): + _add_error(errors, "acceptance gates lost body_proportion_control") + + +def _validate_alias_metadata(artifacts_dir: Path, errors: list[str]) -> None: + atlas_folders = {str(folder.get("folder")) for folder in prep.load_atlas().get("folders") or []} + variant_folders = { + str(folder) + for variant in prep.load_variants().get("variants") or [] + for folder in variant.get("atlas_folders") or [] + } + known_folder_names = atlas_folders | variant_folders + for folder_name, alias in prep.SOURCE_FOLDER_ALIASES.items(): + if folder_name not in known_folder_names: + _add_error(errors, f"alias folder is not present in atlas/variants: {folder_name!r}") + if not str(alias.get("canonical_folder") or "").strip(): + _add_error(errors, f"alias has no canonical folder: {folder_name!r}") + if not str(alias.get("alias_reason") or "").strip(): + _add_error(errors, f"alias has no reason: {folder_name!r}") + + backlog = _json_file(artifacts_dir / "normal_camera_unused_pool_backlog.json", errors) + for row in backlog.get("folders") or []: + folder_name = str(row.get("folder") or "") + alias = row.get("folder_alias") or {} + if not alias: + _add_error(errors, f"unused-pool row has no folder_alias: {folder_name!r}") + continue + if folder_name in prep.SOURCE_FOLDER_ALIASES and alias.get("alias_applied") is not True: + _add_error(errors, f"known alias folder is not marked alias_applied in backlog: {folder_name!r}") + + +def _validate_review_artifacts(artifacts_dir: Path, variants_by_key: dict[str, dict[str, Any]], errors: list[str]) -> None: + review_dir = artifacts_dir / "review" + for folder_name in prep.DEFAULT_REVIEW_FOLDERS: + stem = prep._safe_artifact_stem(folder_name) + manifest_path = review_dir / f"{stem}_review_manifest.json" + contact_sheet_path = review_dir / f"{stem}_contact_sheet.html" + manifest = _json_file(manifest_path, errors) + if not contact_sheet_path.is_file(): + _add_error(errors, f"missing contact sheet: {contact_sheet_path}") + continue + contact_sheet = contact_sheet_path.read_text(encoding="utf-8") + if "No-generation contact sheet" not in contact_sheet: + _add_error(errors, f"{folder_name} contact sheet lost no-generation scope") + if "data-review-decision=" not in contact_sheet: + _add_error(errors, f"{folder_name} contact sheet has no review-decision attributes") + if not manifest: + continue + + _expect_schema(manifest, prep.REVIEW_MANIFEST_SCHEMA, f"{folder_name} review manifest", errors) + if manifest.get("folder") != folder_name: + _add_error(errors, f"{folder_name} manifest folder changed: {manifest.get('folder')!r}") + alias = manifest.get("folder_alias") or {} + if alias.get("exact_source_folder") != folder_name: + _add_error(errors, f"{folder_name} manifest alias does not preserve exact source folder") + if folder_name in prep.SOURCE_FOLDER_ALIASES and alias.get("alias_applied") is not True: + _add_error(errors, f"{folder_name} manifest should mark alias_applied") + + review_items = _expect_list(manifest.get("review_items"), f"{folder_name}.review_items", errors) + if len(review_items) != int(manifest.get("image_count") or 0): + _add_error(errors, f"{folder_name} review_items count does not match image_count") + item_by_ref = {str(item.get("reference_image")): item for item in review_items} + selected_refs: set[str] = set() + for selected in manifest.get("selected_subvariants") or []: + variant_key = str(selected.get("variant_key") or "") + if variant_key not in variants_by_key: + _add_error(errors, f"{folder_name} selected subvariant is missing from catalog: {variant_key}") + continue + catalog_refs = set(str(ref) for ref in variants_by_key[variant_key].get("reference_images") or []) + for ref in selected.get("reference_images") or []: + ref_text = str(ref) + selected_refs.add(ref_text) + if ref_text not in catalog_refs: + _add_error(errors, f"{folder_name} selected ref is not in catalog variant {variant_key}: {ref_text}") + + for item in review_items: + ref = str(item.get("reference_image") or "") + decision = str(item.get("review_decision") or "") + bucket = str(item.get("review_bucket") or "") + if not ref: + _add_error(errors, f"{folder_name} review item has no reference_image") + if ".." in Path(ref).parts: + _add_error(errors, f"{folder_name} review item escapes atlas root: {ref!r}") + if decision not in {"selected_reference", "residual_unassigned"}: + _add_error(errors, f"{folder_name} review item has unknown decision: {decision!r}") + if decision == "selected_reference": + if ref not in selected_refs: + _add_error(errors, f"{folder_name} selected review item is not in selected_subvariants: {ref}") + if bucket == "unassigned" or not bucket: + _add_error(errors, f"{folder_name} selected review item has no selected bucket: {ref}") + if not item.get("variant_key"): + _add_error(errors, f"{folder_name} selected review item has no variant key: {ref}") + if decision == "residual_unassigned": + if bucket != "unassigned": + _add_error(errors, f"{folder_name} residual review item should use unassigned bucket: {ref}") + if not item.get("exclusion_reason"): + _add_error(errors, f"{folder_name} residual review item has no exclusion reason: {ref}") + + page_refs = [ + str(image.get("reference_image")) + for page in manifest.get("contact_sheet_pages") or [] + for image in page.get("images") or [] + ] + if set(page_refs) != set(item_by_ref): + _add_error(errors, f"{folder_name} contact-sheet pages and review_items disagree") + + +def validate_normal_camera_atlas( + artifacts_dir: Path | str | None = None, + *, + require_artifacts: bool = True, +) -> list[str]: + errors: list[str] = [] + artifacts_path = Path(artifacts_dir) if artifacts_dir is not None else prep.DEFAULT_OUTPUT_DIR + variants_by_key, _folder_names = _validate_variant_catalog(errors) + _validate_built_artifacts(errors) + if require_artifacts: + _validate_artifact_files(artifacts_path, errors) + _validate_alias_metadata(artifacts_path, errors) + _validate_review_artifacts(artifacts_path, variants_by_key, errors) + return errors + + +def _parser() -> argparse.ArgumentParser: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--artifacts-dir", + type=Path, + default=prep.DEFAULT_OUTPUT_DIR, + help="Normal-camera artifact directory to validate.", + ) + parser.add_argument( + "--skip-artifacts", + action="store_true", + help="Validate in-memory builders and catalogs without requiring generated files.", + ) + return parser + + +def main(argv: list[str] | None = None) -> int: + args = _parser().parse_args(argv) + errors = validate_normal_camera_atlas(args.artifacts_dir, require_artifacts=not args.skip_artifacts) + if errors: + for error in errors: + print(f"ERROR: {error}", file=sys.stderr) + return 1 + print("OK: normal camera atlas validation passed") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tools/prompt_smoke.py b/tools/prompt_smoke.py index ca34553..4582120 100644 --- a/tools/prompt_smoke.py +++ b/tools/prompt_smoke.py @@ -6890,13 +6890,13 @@ def smoke_normal_camera_atlas_catalog() -> None: folders = atlas.get("folders") variants = variants_catalog.get("variants") _expect(isinstance(folders, list) and len(folders) == 104, "Normal camera atlas should track 104 folders") - _expect(isinstance(variants, list) and len(variants) == 86, "Normal camera variant catalog should track 86 variants") + _expect(isinstance(variants, list) and len(variants) == 131, "Normal camera variant catalog should track 131 variants") inventory = atlas.get("inventory") or {} _expect(inventory.get("jpg_count") == 1979, "Normal camera atlas lost reference image count") _expect(inventory.get("catalog_status_counts", {}).get("camera_reference") == 49, "Normal camera atlas lost camera-reference count") variant_inventory = variants_catalog.get("inventory") or {} - _expect(variant_inventory.get("status_counts", {}).get("pre_ab_candidate") == 35, "Normal camera variants lost pre-A/B count") - _expect(variant_inventory.get("status_counts", {}).get("needs_samples") == 51, "Normal camera variants lost needs-samples count") + _expect(variant_inventory.get("status_counts", {}).get("pre_ab_candidate") == 55, "Normal camera variants lost pre-A/B count") + _expect(variant_inventory.get("status_counts", {}).get("needs_samples") == 76, "Normal camera variants lost needs-samples count") folder_keys: set[str] = set() folder_names: set[str] = set() @@ -6920,19 +6920,69 @@ def smoke_normal_camera_atlas_catalog() -> None: variant_statuses = set((variants_catalog.get("status_values") or {}).keys()) seen_variant_keys: set[str] = set() + variants_by_key: dict[str, dict[str, Any]] = {} required_variants = { "normal_doggy_all_fours_side_view", + "normal_doggy_all_fours_front_view", + "normal_doggy_generic_front_view", + "normal_cowgirl_back_three_quarter", "normal_cowgirl_side_profile", "normal_missionary_side_profile", "normal_blowjob_laying_front_view", + "normal_couple_kissing_upright_side_profile", "normal_penis_worship_top_view", "normal_penis_worship_side_view", "normal_penis_worship_laying_partner_vertical_side_view", + "normal_anal_random_mixed_camera_folder_pool", + "normal_anal_random_front_view", + "normal_anal_random_back_side_offset_view", + "normal_display_breasts_exposed_front_view", + "normal_display_breasts_exposed_side_offset_view", + "normal_display_breasts_exposed_standing_front_view", + "normal_display_breasts_exposed_seated_kneeling_front_view", + "normal_display_rear_body_standing_back_view", + "normal_display_front_open_leg_front_view", + "normal_display_front_open_leg_low_close", + "normal_display_front_open_leg_side_offset_view", + "normal_reverse_cowgirl_mixed_camera_folder_pool", + "normal_reverse_cowgirl_front_view", + "normal_reverse_cowgirl_front_three_quarter", + "normal_reverse_cowgirl_low_close_front_view", + "normal_boobjob_front_close_view", + "normal_fingering_mixed_camera_folder_pool", + "normal_fingering_reclined_front_view", + "normal_sixty_nine_mixed_camera_folder_pool", + "normal_sixty_nine_front_close_view", + "normal_wand_mixed_camera_folder_pool", + "normal_wand_front_close_view", + "normal_ballsucking_standing_low_side_view", + "normal_face_sitting_mixed_camera_folder_pool", + "normal_pussy_licking_backview_mixed_camera_folder_pool", + "normal_removing_pants_mixed_camera_folder_pool", + "normal_rimjob_mixed_camera_folder_pool", + "normal_footjob_mixed_camera_folder_pool", + "normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool", + "normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool", + "normal_fist_mixed_camera_folder_pool", + "normal_anal_cowgirl_single_reference_pool", + "normal_anal_doggy_side_view_single_reference_pool", + "normal_anal_laying_back_three_quarter_single_reference_pool", + "normal_anal_reverse_congress_single_reference_pool", + "normal_anus_licking_single_reference_pool", + "normal_blowjob_laying_back_three_quarter_single_reference_pool", + "normal_doggy_press_back_side_single_reference_pool", + "normal_face_sitting_front_view_single_reference_pool", + "normal_handjob_standing_low_angle_single_reference_pool", + "normal_pussy_licking_leg_up_back_three_quarter_single_reference_pool", + "normal_pussy_licking_standing_woman_single_reference_pool", + "normal_under_desk_single_reference_pool", + "normal_piledriver_high_front_down_view", } for variant in variants: key = _expect_text("normal_camera_variants.key", variant.get("key"), 8) _expect(key not in seen_variant_keys, f"Normal camera variants have duplicate key {key!r}") seen_variant_keys.add(key) + variants_by_key[key] = variant _expect(variant.get("status") in variant_statuses, f"{key} has unknown status {variant.get('status')!r}") _expect_text(f"{key}.canonical_geometry", variant.get("canonical_geometry"), 40) prompt_cues = variant.get("prompt_cues") @@ -6951,11 +7001,2424 @@ def smoke_normal_camera_atlas_catalog() -> None: _expect_text(f"{key}.generator_hook.notes", hook.get("notes"), 20) _expect("Future hook only" in hook.get("notes", ""), f"{key} should remain a future hook, not a live route") _expect(required_variants.issubset(seen_variant_keys), "Normal camera variants lost required reviewed camera splits") + cowgirl_back_refs = (variants_by_key.get("normal_cowgirl_back_three_quarter") or {}).get("reference_images") or [] + _expect(len(cowgirl_back_refs) == 15, "Normal cowgirl back-three-quarter route should carry 15 reviewed references") + cowgirl_side_refs = (variants_by_key.get("normal_cowgirl_side_profile") or {}).get("reference_images") or [] + _expect(len(cowgirl_side_refs) == 15, "Normal cowgirl side-profile route should carry 15 reviewed references") + doggy_back_refs = (variants_by_key.get("normal_doggy_all_fours_back_three_quarter") or {}).get("reference_images") or [] + _expect(len(doggy_back_refs) == 15, "Normal doggy all-fours back-three-quarter route should carry 15 reviewed references") + doggy_front_refs = (variants_by_key.get("normal_doggy_all_fours_front_view") or {}).get("reference_images") or [] + _expect(len(doggy_front_refs) == 15, "Normal doggy all-fours front-view route should carry 15 reviewed references") + doggy_generic_front_refs = (variants_by_key.get("normal_doggy_generic_front_view") or {}).get("reference_images") or [] + _expect(len(doggy_generic_front_refs) == 15, "Normal doggy generic front-view route should carry 15 reviewed references") + doggy_generic_back_refs = (variants_by_key.get("normal_doggy_generic_back_three_quarter") or {}).get("reference_images") or [] + _expect(len(doggy_generic_back_refs) == 15, "Normal doggy generic back-three-quarter route should carry 15 reviewed references") + breast_sucking_refs = (variants_by_key.get("normal_breast_sucking_side_view") or {}).get("reference_images") or [] + _expect(len(breast_sucking_refs) == 15, "Normal breast-sucking side-view route should carry 15 reviewed references") + breast_contact_front_refs = (variants_by_key.get("normal_breast_contact_front_view") or {}).get("reference_images") or [] + _expect(len(breast_contact_front_refs) == 15, "Normal breast-contact front-view route should carry 15 reviewed references") + reverse_congress_front_refs = (variants_by_key.get("normal_reverse_congress_front_view") or {}).get("reference_images") or [] + _expect(len(reverse_congress_front_refs) == 15, "Normal reverse-congress front-view route should carry 15 reviewed references") + boobjob_front_close_refs = (variants_by_key.get("normal_boobjob_front_close_view") or {}).get("reference_images") or [] + _expect(len(boobjob_front_close_refs) == 12, "Normal boobjob front-close route should carry 12 reviewed references") + fingering_reclined_front_refs = (variants_by_key.get("normal_fingering_reclined_front_view") or {}).get("reference_images") or [] + _expect(len(fingering_reclined_front_refs) == 10, "Normal fingering reclined front-view route should carry 10 reviewed references") + sixty_nine_front_close_refs = (variants_by_key.get("normal_sixty_nine_front_close_view") or {}).get("reference_images") or [] + _expect(len(sixty_nine_front_close_refs) == 7, "Normal sixty-nine front-close route should carry 7 reviewed references") + wand_front_close_refs = (variants_by_key.get("normal_wand_front_close_view") or {}).get("reference_images") or [] + _expect(len(wand_front_close_refs) == 7, "Normal wand front-close route should carry 7 reviewed references") + ballsucking_standing_refs = (variants_by_key.get("normal_ballsucking_standing_low_side_view") or {}).get("reference_images") or [] + _expect(len(ballsucking_standing_refs) == 11, "Normal ballsucking standing low-side route should carry 11 reviewed references") + face_sitting_pool_refs = (variants_by_key.get("normal_face_sitting_mixed_camera_folder_pool") or {}).get("reference_images") or [] + _expect(len(face_sitting_pool_refs) == 4, "Normal face-sitting source pool should carry all 4 reviewed references") + _expect( + (variants_by_key.get("normal_face_sitting_mixed_camera_folder_pool") or {}).get("status") == "needs_samples", + "Normal face-sitting source pool should stay needs_samples", + ) + pussy_licking_backview_pool_refs = ( + variants_by_key.get("normal_pussy_licking_backview_mixed_camera_folder_pool") or {} + ).get("reference_images") or [] + _expect( + len(pussy_licking_backview_pool_refs) == 3, + "Normal pussy-licking back-view source pool should carry all 3 reviewed references", + ) + _expect( + (variants_by_key.get("normal_pussy_licking_backview_mixed_camera_folder_pool") or {}).get("status") == "needs_samples", + "Normal pussy-licking back-view source pool should stay needs_samples", + ) + removing_pants_pool_refs = (variants_by_key.get("normal_removing_pants_mixed_camera_folder_pool") or {}).get("reference_images") or [] + _expect(len(removing_pants_pool_refs) == 3, "Normal removing-pants source pool should carry all 3 reviewed references") + _expect( + (variants_by_key.get("normal_removing_pants_mixed_camera_folder_pool") or {}).get("status") == "needs_samples", + "Normal removing-pants source pool should stay needs_samples", + ) + thin_batch_pool_counts = { + "normal_rimjob_mixed_camera_folder_pool": 3, + "normal_footjob_mixed_camera_folder_pool": 2, + "normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool": 2, + "normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool": 2, + "normal_fist_mixed_camera_folder_pool": 1, + "normal_anal_cowgirl_single_reference_pool": 1, + "normal_anal_doggy_side_view_single_reference_pool": 1, + "normal_anal_laying_back_three_quarter_single_reference_pool": 1, + "normal_anal_reverse_congress_single_reference_pool": 1, + "normal_anus_licking_single_reference_pool": 1, + "normal_blowjob_laying_back_three_quarter_single_reference_pool": 1, + "normal_doggy_press_back_side_single_reference_pool": 1, + "normal_face_sitting_front_view_single_reference_pool": 1, + "normal_handjob_standing_low_angle_single_reference_pool": 1, + "normal_pussy_licking_leg_up_back_three_quarter_single_reference_pool": 1, + "normal_pussy_licking_standing_woman_single_reference_pool": 1, + "normal_under_desk_single_reference_pool": 1, + "normal_ballsucking_laying_close_reference_folder_pool": 2, + "normal_pretzel_mixed_camera_folder_pool": 2, + "normal_display_rear_exposed_body_folder_pool": 4, + } + for variant_key, expected_count in thin_batch_pool_counts.items(): + pool_refs = (variants_by_key.get(variant_key) or {}).get("reference_images") or [] + _expect( + len(pool_refs) == expected_count, + f"{variant_key} should carry all {expected_count} reviewed references", + ) + _expect( + (variants_by_key.get(variant_key) or {}).get("status") == "needs_samples", + f"{variant_key} should stay needs_samples", + ) + blowjob_laying_front_refs = (variants_by_key.get("normal_blowjob_laying_front_view") or {}).get("reference_images") or [] + _expect(len(blowjob_laying_front_refs) == 15, "Normal blowjob laying front-view route should carry 15 reviewed references") + piledriver_refs = (variants_by_key.get("normal_piledriver_high_front_down_view") or {}).get("reference_images") or [] + _expect(len(piledriver_refs) == 15, "Normal piledriver high-front-down route should carry 15 reviewed references") doc = doc_path.read_text(encoding="utf-8") _expect("Normal Camera Atlas" in doc, "Normal camera docs lost title") - _expect("Curated variants | 86" in doc, "Normal camera docs lost variant count") + _expect("Curated variants | 131" in doc, "Normal camera docs lost variant count") + _expect("Pre-A/B candidates | 55" in doc, "Normal camera docs lost pre-A/B count") + _expect("Needs samples | 76" in doc, "Normal camera docs lost needs-samples count") _expect("penis-worship orientation corrections" in doc, "Normal camera docs lost user-corrected orientation note") + _expect("reverse-cowgirl unused-pool tranche" in doc, "Normal camera docs lost reverse-cowgirl unused-pool note") + _expect("No-Generation Prep Artifacts" in doc, "Normal camera docs lost no-generation prep artifact section") + _expect("normal_camera_score_sheet.json" in doc, "Normal camera docs lost score-sheet artifact reference") + + +def _expect_normal_camera_validator() -> None: + from tools import normal_camera_atlas_validate + + errors = normal_camera_atlas_validate.validate_normal_camera_atlas(ROOT / "ab_batches" / "normal_camera") + _expect(not errors, "Normal camera atlas validator failed: " + "; ".join(errors[:10])) + + +def smoke_normal_camera_atlas_prep_artifacts() -> None: + import importlib + + _expect_normal_camera_validator() + + prep_module = importlib.import_module("normal_camera_atlas_prep") + artifact_dir = ROOT / "ab_batches" / "normal_camera" + priority_artifact_path = artifact_dir / "normal_camera_priority_plan.json" + prompt_batch_artifact_path = artifact_dir / "normal_camera_prompt_cue_batch.json" + score_sheet_artifact_path = artifact_dir / "normal_camera_score_sheet.json" + gates_artifact_path = artifact_dir / "normal_camera_acceptance_gates.md" + unused_pool_backlog_path = artifact_dir / "normal_camera_unused_pool_backlog.json" + reverse_cowgirl_manifest_path = artifact_dir / "review" / "reverse_cowgirl_review_manifest.json" + reverse_cowgirl_contact_sheet_path = artifact_dir / "review" / "reverse_cowgirl_contact_sheet.html" + breasts_exposed_manifest_path = artifact_dir / "review" / "breasts_exposed_review_manifest.json" + breasts_exposed_contact_sheet_path = artifact_dir / "review" / "breasts_exposed_contact_sheet.html" + pussy_spread_manifest_path = artifact_dir / "review" / "pussy_spread_review_manifest.json" + pussy_spread_contact_sheet_path = artifact_dir / "review" / "pussy_spread_contact_sheet.html" + anal_random_manifest_path = artifact_dir / "review" / "anal_random_review_manifest.json" + anal_random_contact_sheet_path = artifact_dir / "review" / "anal_random_contact_sheet.html" + couple_kissing_manifest_path = artifact_dir / "review" / "couple_kissing_review_manifest.json" + couple_kissing_contact_sheet_path = artifact_dir / "review" / "couple_kissing_contact_sheet.html" + cowgirl_back_manifest_path = artifact_dir / "review" / "cowgirl_back_view_3_4_angle_review_manifest.json" + cowgirl_back_contact_sheet_path = artifact_dir / "review" / "cowgirl_back_view_3_4_angle_contact_sheet.html" + rear_body_manifest_path = artifact_dir / "review" / "woman_solo_showing_her_hass_back_view_review_manifest.json" + rear_body_contact_sheet_path = artifact_dir / "review" / "woman_solo_showing_her_hass_back_view_contact_sheet.html" + doggy_all_fours_back_manifest_path = artifact_dir / "review" / "doggy_on_all_four_back_view_3_4_angle_review_manifest.json" + doggy_all_fours_back_contact_sheet_path = artifact_dir / "review" / "doggy_on_all_four_back_view_3_4_angle_contact_sheet.html" + doggy_all_fours_side_manifest_path = artifact_dir / "review" / "doggy_on_all_four_side_view_review_manifest.json" + doggy_all_fours_side_contact_sheet_path = artifact_dir / "review" / "doggy_on_all_four_side_view_contact_sheet.html" + handjob_standing_side_manifest_path = artifact_dir / "review" / "handjob_standing_side_view_review_manifest.json" + handjob_standing_side_contact_sheet_path = artifact_dir / "review" / "handjob_standing_side_view_contact_sheet.html" + breast_sucking_side_manifest_path = artifact_dir / "review" / "breast_sucking_side_view_review_manifest.json" + breast_sucking_side_contact_sheet_path = artifact_dir / "review" / "breast_sucking_side_view_contact_sheet.html" + standing_from_front_side_manifest_path = artifact_dir / "review" / "fuck_from_front_standing_side_view_review_manifest.json" + standing_from_front_side_contact_sheet_path = artifact_dir / "review" / "fuck_from_front_standing_side_view_contact_sheet.html" + doggy_generic_back_manifest_path = artifact_dir / "review" / "doggy_back_view_3_4_angle_review_manifest.json" + doggy_generic_back_contact_sheet_path = artifact_dir / "review" / "doggy_back_view_3_4_angle_contact_sheet.html" + cowgirl_side_manifest_path = artifact_dir / "review" / "cowgirl_side_view_review_manifest.json" + cowgirl_side_contact_sheet_path = artifact_dir / "review" / "cowgirl_side_view_contact_sheet.html" + penis_worship_manifest_path = artifact_dir / "review" / "penis_worship_review_manifest.json" + penis_worship_contact_sheet_path = artifact_dir / "review" / "penis_worship_contact_sheet.html" + standing_backside_side_manifest_path = artifact_dir / "review" / "fuck_from_behind_standing_woman_backside_side_view_review_manifest.json" + standing_backside_side_contact_sheet_path = artifact_dir / "review" / "fuck_from_behind_standing_woman_backside_side_view_contact_sheet.html" + doggy_all_fours_front_manifest_path = artifact_dir / "review" / "doggy_all_four_front_view_review_manifest.json" + doggy_all_fours_front_contact_sheet_path = artifact_dir / "review" / "doggy_all_four_front_view_contact_sheet.html" + doggy_generic_front_manifest_path = artifact_dir / "review" / "doggy_front_view_review_manifest.json" + doggy_generic_front_contact_sheet_path = artifact_dir / "review" / "doggy_front_view_contact_sheet.html" + piledriver_manifest_path = artifact_dir / "review" / "piledriver_review_manifest.json" + piledriver_contact_sheet_path = artifact_dir / "review" / "piledriver_contact_sheet.html" + blowjob_laying_front_manifest_path = artifact_dir / "review" / "blowjob_laying_front_view_review_manifest.json" + blowjob_laying_front_contact_sheet_path = artifact_dir / "review" / "blowjob_laying_front_view_contact_sheet.html" + breast_contact_front_manifest_path = artifact_dir / "review" / "breast_touching_front_view_review_manifest.json" + breast_contact_front_contact_sheet_path = artifact_dir / "review" / "breast_touching_front_view_contact_sheet.html" + reverse_congress_front_manifest_path = artifact_dir / "review" / "reverse_congress_front_view_review_manifest.json" + reverse_congress_front_contact_sheet_path = artifact_dir / "review" / "reverse_congress_front_view_contact_sheet.html" + boobjob_manifest_path = artifact_dir / "review" / "boobjob_review_manifest.json" + boobjob_contact_sheet_path = artifact_dir / "review" / "boobjob_contact_sheet.html" + fingering_manifest_path = artifact_dir / "review" / "fingering_review_manifest.json" + fingering_contact_sheet_path = artifact_dir / "review" / "fingering_contact_sheet.html" + sixty_nine_manifest_path = artifact_dir / "review" / "69_review_manifest.json" + sixty_nine_contact_sheet_path = artifact_dir / "review" / "69_contact_sheet.html" + wand_manifest_path = artifact_dir / "review" / "wand_review_manifest.json" + wand_contact_sheet_path = artifact_dir / "review" / "wand_contact_sheet.html" + ballsucking_standing_manifest_path = artifact_dir / "review" / "ballsucking_standing_review_manifest.json" + ballsucking_standing_contact_sheet_path = artifact_dir / "review" / "ballsucking_standing_contact_sheet.html" + face_sitting_manifest_path = artifact_dir / "review" / "face_sitting_review_manifest.json" + face_sitting_contact_sheet_path = artifact_dir / "review" / "face_sitting_contact_sheet.html" + pussy_licking_backview_manifest_path = artifact_dir / "review" / "pussy_licking_backv_iew_review_manifest.json" + pussy_licking_backview_contact_sheet_path = artifact_dir / "review" / "pussy_licking_backv_iew_contact_sheet.html" + removing_pants_manifest_path = artifact_dir / "review" / "removing_pants_review_manifest.json" + removing_pants_contact_sheet_path = artifact_dir / "review" / "removing_pants_contact_sheet.html" + thin_batch_review_paths = { + "rimjob": ( + artifact_dir / "review" / "rimjob_review_manifest.json", + artifact_dir / "review" / "rimjob_contact_sheet.html", + ), + "footjob": ( + artifact_dir / "review" / "footjob_review_manifest.json", + artifact_dir / "review" / "footjob_contact_sheet.html", + ), + "reverse cowgirl - leg up": ( + artifact_dir / "review" / "reverse_cowgirl_leg_up_review_manifest.json", + artifact_dir / "review" / "reverse_cowgirl_leg_up_contact_sheet.html", + ), + "reverse cowgirl -pretzel": ( + artifact_dir / "review" / "reverse_cowgirl_pretzel_review_manifest.json", + artifact_dir / "review" / "reverse_cowgirl_pretzel_contact_sheet.html", + ), + "fist": ( + artifact_dir / "review" / "fist_review_manifest.json", + artifact_dir / "review" / "fist_contact_sheet.html", + ), + "anal cowgirl": ( + artifact_dir / "review" / "anal_cowgirl_review_manifest.json", + artifact_dir / "review" / "anal_cowgirl_contact_sheet.html", + ), + "anal doggy - side view": ( + artifact_dir / "review" / "anal_doggy_side_view_review_manifest.json", + artifact_dir / "review" / "anal_doggy_side_view_contact_sheet.html", + ), + "anal fuck from behind laying - back view - 3-4 angle": ( + artifact_dir / "review" / "anal_fuck_from_behind_laying_back_view_3_4_angle_review_manifest.json", + artifact_dir / "review" / "anal_fuck_from_behind_laying_back_view_3_4_angle_contact_sheet.html", + ), + "anal reverse congress": ( + artifact_dir / "review" / "anal_reverse_congress_review_manifest.json", + artifact_dir / "review" / "anal_reverse_congress_contact_sheet.html", + ), + "anus lickiing": ( + artifact_dir / "review" / "anus_lickiing_review_manifest.json", + artifact_dir / "review" / "anus_lickiing_contact_sheet.html", + ), + "blowjob laying - back view - 3-4 angle": ( + artifact_dir / "review" / "blowjob_laying_back_view_3_4_angle_review_manifest.json", + artifact_dir / "review" / "blowjob_laying_back_view_3_4_angle_contact_sheet.html", + ), + "doggy press - back side": ( + artifact_dir / "review" / "doggy_press_back_side_review_manifest.json", + artifact_dir / "review" / "doggy_press_back_side_contact_sheet.html", + ), + "face sitting - front view": ( + artifact_dir / "review" / "face_sitting_front_view_review_manifest.json", + artifact_dir / "review" / "face_sitting_front_view_contact_sheet.html", + ), + "handjob - standing -low angle": ( + artifact_dir / "review" / "handjob_standing_low_angle_review_manifest.json", + artifact_dir / "review" / "handjob_standing_low_angle_contact_sheet.html", + ), + "pussy licking leg up - back view - 3-4 angle": ( + artifact_dir / "review" / "pussy_licking_leg_up_back_view_3_4_angle_review_manifest.json", + artifact_dir / "review" / "pussy_licking_leg_up_back_view_3_4_angle_contact_sheet.html", + ), + "pussy licking standing woman": ( + artifact_dir / "review" / "pussy_licking_standing_woman_review_manifest.json", + artifact_dir / "review" / "pussy_licking_standing_woman_contact_sheet.html", + ), + "under desk": ( + artifact_dir / "review" / "under_desk_review_manifest.json", + artifact_dir / "review" / "under_desk_contact_sheet.html", + ), + "ballsucking - laying": ( + artifact_dir / "review" / "ballsucking_laying_review_manifest.json", + artifact_dir / "review" / "ballsucking_laying_contact_sheet.html", + ), + "pretzel": ( + artifact_dir / "review" / "pretzel_review_manifest.json", + artifact_dir / "review" / "pretzel_contact_sheet.html", + ), + "woman ass exposed": ( + artifact_dir / "review" / "woman_ass_exposed_review_manifest.json", + artifact_dir / "review" / "woman_ass_exposed_contact_sheet.html", + ), + } + thin_batch_pool_expectations = { + "rimjob": ("normal_rimjob_mixed_camera_folder_pool", 3), + "footjob": ("normal_footjob_mixed_camera_folder_pool", 2), + "reverse cowgirl - leg up": ("normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool", 2), + "reverse cowgirl -pretzel": ("normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool", 2), + "fist": ("normal_fist_mixed_camera_folder_pool", 1), + "anal cowgirl": ("normal_anal_cowgirl_single_reference_pool", 1), + "anal doggy - side view": ("normal_anal_doggy_side_view_single_reference_pool", 1), + "anal fuck from behind laying - back view - 3-4 angle": ( + "normal_anal_laying_back_three_quarter_single_reference_pool", + 1, + ), + "anal reverse congress": ("normal_anal_reverse_congress_single_reference_pool", 1), + "anus lickiing": ("normal_anus_licking_single_reference_pool", 1), + "blowjob laying - back view - 3-4 angle": ( + "normal_blowjob_laying_back_three_quarter_single_reference_pool", + 1, + ), + "doggy press - back side": ("normal_doggy_press_back_side_single_reference_pool", 1), + "face sitting - front view": ("normal_face_sitting_front_view_single_reference_pool", 1), + "handjob - standing -low angle": ("normal_handjob_standing_low_angle_single_reference_pool", 1), + "pussy licking leg up - back view - 3-4 angle": ( + "normal_pussy_licking_leg_up_back_three_quarter_single_reference_pool", + 1, + ), + "pussy licking standing woman": ("normal_pussy_licking_standing_woman_single_reference_pool", 1), + "under desk": ("normal_under_desk_single_reference_pool", 1), + "ballsucking - laying": ("normal_ballsucking_laying_close_reference_folder_pool", 2), + "pretzel": ("normal_pretzel_mixed_camera_folder_pool", 2), + "woman ass exposed": ("normal_display_rear_exposed_body_folder_pool", 4), + } + for artifact_path in ( + priority_artifact_path, + prompt_batch_artifact_path, + score_sheet_artifact_path, + gates_artifact_path, + unused_pool_backlog_path, + reverse_cowgirl_manifest_path, + reverse_cowgirl_contact_sheet_path, + breasts_exposed_manifest_path, + breasts_exposed_contact_sheet_path, + pussy_spread_manifest_path, + pussy_spread_contact_sheet_path, + anal_random_manifest_path, + anal_random_contact_sheet_path, + couple_kissing_manifest_path, + couple_kissing_contact_sheet_path, + cowgirl_back_manifest_path, + cowgirl_back_contact_sheet_path, + rear_body_manifest_path, + rear_body_contact_sheet_path, + doggy_all_fours_back_manifest_path, + doggy_all_fours_back_contact_sheet_path, + doggy_all_fours_side_manifest_path, + doggy_all_fours_side_contact_sheet_path, + handjob_standing_side_manifest_path, + handjob_standing_side_contact_sheet_path, + breast_sucking_side_manifest_path, + breast_sucking_side_contact_sheet_path, + standing_from_front_side_manifest_path, + standing_from_front_side_contact_sheet_path, + doggy_generic_back_manifest_path, + doggy_generic_back_contact_sheet_path, + cowgirl_side_manifest_path, + cowgirl_side_contact_sheet_path, + penis_worship_manifest_path, + penis_worship_contact_sheet_path, + standing_backside_side_manifest_path, + standing_backside_side_contact_sheet_path, + doggy_all_fours_front_manifest_path, + doggy_all_fours_front_contact_sheet_path, + doggy_generic_front_manifest_path, + doggy_generic_front_contact_sheet_path, + piledriver_manifest_path, + piledriver_contact_sheet_path, + blowjob_laying_front_manifest_path, + blowjob_laying_front_contact_sheet_path, + breast_contact_front_manifest_path, + breast_contact_front_contact_sheet_path, + reverse_congress_front_manifest_path, + reverse_congress_front_contact_sheet_path, + boobjob_manifest_path, + boobjob_contact_sheet_path, + fingering_manifest_path, + fingering_contact_sheet_path, + sixty_nine_manifest_path, + sixty_nine_contact_sheet_path, + wand_manifest_path, + wand_contact_sheet_path, + ballsucking_standing_manifest_path, + ballsucking_standing_contact_sheet_path, + face_sitting_manifest_path, + face_sitting_contact_sheet_path, + pussy_licking_backview_manifest_path, + pussy_licking_backview_contact_sheet_path, + removing_pants_manifest_path, + removing_pants_contact_sheet_path, + *(path for pair in thin_batch_review_paths.values() for path in pair), + ): + _expect(artifact_path.is_file(), f"Normal camera prep artifact is missing: {artifact_path}") + + priority_plan = prep_module.build_priority_plan(limit=5) + _expect(priority_plan.get("schema") == "sxcp_normal_camera_priority_plan_v1", "Normal camera priority plan schema changed") + _expect(priority_plan.get("no_generation") is True, "Normal camera priority plan must stay no-generation") + _expect(priority_plan.get("atlas_root") == "/media/unraid/davinci/Qwen_edit_lora/pornpic/sorted", "Normal camera priority plan atlas root changed") + candidates = priority_plan.get("candidates") + _expect(isinstance(candidates, list) and len(candidates) == 5, "Normal camera priority plan should honor the limit") + for index, candidate in enumerate(candidates, start=1): + _expect(candidate.get("priority_rank") == index, "Normal camera priority ranks should be stable and 1-based") + _expect(candidate.get("status") == "pre_ab_candidate", f"{candidate.get('key')} is not a pre-A/B candidate") + _expect(isinstance(candidate.get("reference_images"), list) and candidate["reference_images"], f"{candidate.get('key')} has no references") + _expect(isinstance(candidate.get("acceptance_gates"), list) and len(candidate["acceptance_gates"]) >= 6, f"{candidate.get('key')} lost acceptance gates") + + prompt_batch = prep_module.build_prompt_cue_batch(limit=5) + _expect(prompt_batch.get("schema") == "sxcp_normal_camera_prompt_cue_batch_v1", "Normal camera prompt batch schema changed") + _expect(prompt_batch.get("no_generation") is True, "Normal camera prompt batch must stay no-generation") + items = prompt_batch.get("items") + _expect(isinstance(items, list) and len(items) == 5, "Normal camera prompt batch should honor the limit") + _expect( + any(item.get("state") == "needs_prompt_cleanup" for item in items), + "Normal camera prompt batch should flag option/noise cues before they become prompt-ready", + ) + for item in items: + _expect(isinstance(item.get("source_prompt_cues"), list) and item["source_prompt_cues"], f"{item.get('variant_key')} lost source cues") + _expect(isinstance(item.get("positive_prompt_cues"), list), f"{item.get('variant_key')} positive cues should be a list") + _expect(isinstance(item.get("blocked_prompt_cues"), list), f"{item.get('variant_key')} blocked cues should be a list") + for cue in item.get("positive_prompt_cues") or []: + _expect( + not re.search(r"\b(?:may|optionally|either|or|without|never|no|not)\b", cue, flags=re.IGNORECASE), + f"{item.get('variant_key')} prompt-ready cue still has option/negative wording: {cue!r}", + ) + + score_sheet = prep_module.build_score_sheet(limit=5) + _expect(score_sheet.get("schema") == "sxcp_normal_camera_score_sheet_v1", "Normal camera score sheet schema changed") + _expect(score_sheet.get("no_generation") is True, "Normal camera score sheet must stay no-generation") + expected_gates = { + "camera_geometry", + "pose_ownership", + "workspace_continuity", + "clothing_visibility", + "subject_identity", + "body_proportion_control", + "prompt_noise", + "atlas_reference_match", + } + _expect(set(score_sheet.get("acceptance_gates") or []) == expected_gates, "Normal camera score sheet lost acceptance gates") + rows = score_sheet.get("rows") + _expect(isinstance(rows, list) and len(rows) == 5, "Normal camera score sheet should honor the limit") + for row in rows: + scores = row.get("scores") + _expect(isinstance(scores, dict), f"{row.get('variant_key')} score row has no scores") + _expect(set(scores.keys()) == expected_gates, f"{row.get('variant_key')} score row lost gate columns") + _expect(all(value is None for value in scores.values()), f"{row.get('variant_key')} score row should be blank before generation") + + priority_artifact = json.loads(priority_artifact_path.read_text(encoding="utf-8")) + prompt_batch_artifact = json.loads(prompt_batch_artifact_path.read_text(encoding="utf-8")) + score_sheet_artifact = json.loads(score_sheet_artifact_path.read_text(encoding="utf-8")) + unused_pool_backlog = json.loads(unused_pool_backlog_path.read_text(encoding="utf-8")) + reverse_cowgirl_manifest = json.loads(reverse_cowgirl_manifest_path.read_text(encoding="utf-8")) + breasts_exposed_manifest = json.loads(breasts_exposed_manifest_path.read_text(encoding="utf-8")) + pussy_spread_manifest = json.loads(pussy_spread_manifest_path.read_text(encoding="utf-8")) + anal_random_manifest = json.loads(anal_random_manifest_path.read_text(encoding="utf-8")) + couple_kissing_manifest = json.loads(couple_kissing_manifest_path.read_text(encoding="utf-8")) + cowgirl_back_manifest = json.loads(cowgirl_back_manifest_path.read_text(encoding="utf-8")) + rear_body_manifest = json.loads(rear_body_manifest_path.read_text(encoding="utf-8")) + doggy_all_fours_back_manifest = json.loads(doggy_all_fours_back_manifest_path.read_text(encoding="utf-8")) + doggy_all_fours_side_manifest = json.loads(doggy_all_fours_side_manifest_path.read_text(encoding="utf-8")) + handjob_standing_side_manifest = json.loads(handjob_standing_side_manifest_path.read_text(encoding="utf-8")) + breast_sucking_side_manifest = json.loads(breast_sucking_side_manifest_path.read_text(encoding="utf-8")) + standing_from_front_side_manifest = json.loads(standing_from_front_side_manifest_path.read_text(encoding="utf-8")) + doggy_generic_back_manifest = json.loads(doggy_generic_back_manifest_path.read_text(encoding="utf-8")) + cowgirl_side_manifest = json.loads(cowgirl_side_manifest_path.read_text(encoding="utf-8")) + penis_worship_manifest = json.loads(penis_worship_manifest_path.read_text(encoding="utf-8")) + standing_backside_side_manifest = json.loads(standing_backside_side_manifest_path.read_text(encoding="utf-8")) + doggy_all_fours_front_manifest = json.loads(doggy_all_fours_front_manifest_path.read_text(encoding="utf-8")) + doggy_generic_front_manifest = json.loads(doggy_generic_front_manifest_path.read_text(encoding="utf-8")) + piledriver_manifest = json.loads(piledriver_manifest_path.read_text(encoding="utf-8")) + blowjob_laying_front_manifest = json.loads(blowjob_laying_front_manifest_path.read_text(encoding="utf-8")) + breast_contact_front_manifest = json.loads(breast_contact_front_manifest_path.read_text(encoding="utf-8")) + reverse_congress_front_manifest = json.loads(reverse_congress_front_manifest_path.read_text(encoding="utf-8")) + boobjob_manifest = json.loads(boobjob_manifest_path.read_text(encoding="utf-8")) + fingering_manifest = json.loads(fingering_manifest_path.read_text(encoding="utf-8")) + sixty_nine_manifest = json.loads(sixty_nine_manifest_path.read_text(encoding="utf-8")) + wand_manifest = json.loads(wand_manifest_path.read_text(encoding="utf-8")) + ballsucking_standing_manifest = json.loads(ballsucking_standing_manifest_path.read_text(encoding="utf-8")) + face_sitting_manifest = json.loads(face_sitting_manifest_path.read_text(encoding="utf-8")) + pussy_licking_backview_manifest = json.loads(pussy_licking_backview_manifest_path.read_text(encoding="utf-8")) + removing_pants_manifest = json.loads(removing_pants_manifest_path.read_text(encoding="utf-8")) + thin_batch_manifests = { + folder: json.loads(manifest_path.read_text(encoding="utf-8")) + for folder, (manifest_path, _contact_sheet_path) in thin_batch_review_paths.items() + } + _expect(priority_artifact.get("selected_count") == 55, "Normal camera priority artifact should include all 55 pre-A/B variants") + _expect(len(prompt_batch_artifact.get("items") or []) == 55, "Normal camera prompt batch artifact should include all 55 pre-A/B variants") + _expect(len(score_sheet_artifact.get("rows") or []) == 55, "Normal camera score sheet artifact should include all 55 pre-A/B variants") + _expect("body_proportion_control" in gates_artifact_path.read_text(encoding="utf-8"), "Normal camera gate artifact lost body proportion gate") + _expect((unused_pool_backlog.get("folders") or [])[0].get("folder") == "reverse cowgirl", "Normal camera unused-pool backlog should start with reverse cowgirl") + artifact_backlog_by_folder = {str(row.get("folder")): row for row in unused_pool_backlog.get("folders") or []} + _expect("cowgirl - back view - 3-4 angle" in artifact_backlog_by_folder, "Cowgirl back-three-quarter backlog row should remain tracked") + _expect(artifact_backlog_by_folder["cowgirl - back view - 3-4 angle"].get("selected_reference_count") == 15, "Cowgirl back-three-quarter selected-reference count changed") + _expect(artifact_backlog_by_folder["cowgirl - back view - 3-4 angle"].get("remaining_image_count") == 114, "Cowgirl back-three-quarter unused-pool count changed") + _expect("pussy spread" in artifact_backlog_by_folder, "Pussy-spread backlog row should remain tracked") + _expect(artifact_backlog_by_folder["pussy spread"].get("selected_reference_count") == 39, "Pussy-spread selected-reference count changed") + _expect(artifact_backlog_by_folder["pussy spread"].get("remaining_image_count") == 61, "Pussy-spread unused-pool count changed") + _expect("breasts exposed" in artifact_backlog_by_folder, "Breasts-exposed backlog row should remain tracked") + _expect(artifact_backlog_by_folder["breasts exposed"].get("selected_reference_count") == 49, "Breasts-exposed selected-reference count changed") + _expect(artifact_backlog_by_folder["breasts exposed"].get("remaining_image_count") == 119, "Breasts-exposed unused-pool count changed") + _expect("woman solo showing her hass - back view" in artifact_backlog_by_folder, "Rear-body display backlog row should remain tracked") + _expect(artifact_backlog_by_folder["woman solo showing her hass - back view"].get("selected_reference_count") == 30, "Rear-body display selected-reference count changed") + _expect(artifact_backlog_by_folder["woman solo showing her hass - back view"].get("remaining_image_count") == 69, "Rear-body display unused-pool count changed") + _expect("doggy on all four - back view - 3-4 angle" in artifact_backlog_by_folder, "Doggy all-fours back-three-quarter backlog row should remain tracked") + _expect(artifact_backlog_by_folder["doggy on all four - back view - 3-4 angle"].get("selected_reference_count") == 15, "Doggy all-fours back-three-quarter selected-reference count changed") + _expect(artifact_backlog_by_folder["doggy on all four - back view - 3-4 angle"].get("remaining_image_count") == 54, "Doggy all-fours back-three-quarter unused-pool count changed") + _expect("breast sucking - side view" in artifact_backlog_by_folder, "Breast-sucking side-view backlog row should remain tracked") + _expect(artifact_backlog_by_folder["breast sucking - side view"].get("selected_reference_count") == 15, "Breast-sucking side-view selected-reference count changed") + _expect(artifact_backlog_by_folder["breast sucking - side view"].get("remaining_image_count") == 28, "Breast-sucking side-view unused-pool count changed") + _expect("penis worship" in artifact_backlog_by_folder, "Penis-worship backlog row should remain tracked") + _expect(artifact_backlog_by_folder["penis worship"].get("selected_reference_count") == 20, "Penis-worship selected-reference count changed") + _expect(artifact_backlog_by_folder["penis worship"].get("remaining_image_count") == 29, "Penis-worship unused-pool count changed") + _expect( + "fuck from behind standing - woman backside - side view" in artifact_backlog_by_folder, + "Standing backside side-view backlog row should remain tracked", + ) + _expect( + artifact_backlog_by_folder["fuck from behind standing - woman backside - side view"].get("selected_reference_count") == 17, + "Standing backside side-view selected-reference count changed", + ) + _expect( + artifact_backlog_by_folder["fuck from behind standing - woman backside - side view"].get("remaining_image_count") == 30, + "Standing backside side-view unused-pool count changed", + ) + _expect("doggy all four - front view" in artifact_backlog_by_folder, "Doggy all-fours front-view backlog row should remain tracked") + _expect( + artifact_backlog_by_folder["doggy all four - front view"].get("selected_reference_count") == 15, + "Doggy all-fours front-view selected-reference count changed", + ) + _expect( + artifact_backlog_by_folder["doggy all four - front view"].get("remaining_image_count") == 13, + "Doggy all-fours front-view unused-pool count changed", + ) + _expect( + "doggy - front view " in artifact_backlog_by_folder, + "Doggy generic front-view trailing-space backlog row should remain tracked", + ) + _expect( + artifact_backlog_by_folder["doggy - front view "].get("covered_by_variants") is True, + "Doggy generic front-view trailing-space folder should be covered by an exact variant folder name", + ) + _expect( + artifact_backlog_by_folder["doggy - front view "].get("selected_reference_count") == 12, + "Doggy generic front-view selected-reference count changed", + ) + _expect( + artifact_backlog_by_folder["doggy - front view "].get("remaining_image_count") == 1, + "Doggy generic front-view unused-pool count changed", + ) + _expect("piledriver" in artifact_backlog_by_folder, "Piledriver backlog row should remain tracked") + _expect( + artifact_backlog_by_folder["piledriver"].get("selected_reference_count") == 18, + "Piledriver selected-reference count changed", + ) + _expect( + artifact_backlog_by_folder["piledriver"].get("remaining_image_count") == 9, + "Piledriver unused-pool count changed", + ) + _expect( + "blowjob - laying - front view" in artifact_backlog_by_folder, + "Blowjob laying front-view backlog row should remain tracked", + ) + _expect( + artifact_backlog_by_folder["blowjob - laying - front view"].get("selected_reference_count") == 15, + "Blowjob laying front-view selected-reference count changed", + ) + _expect( + artifact_backlog_by_folder["blowjob - laying - front view"].get("remaining_image_count") == 11, + "Blowjob laying front-view unused-pool count changed", + ) + _expect( + "breast - touching - front view" in artifact_backlog_by_folder, + "Breast-contact front-view backlog row should remain tracked", + ) + _expect( + artifact_backlog_by_folder["breast - touching - front view"].get("selected_reference_count") == 15, + "Breast-contact front-view selected-reference count changed", + ) + _expect( + artifact_backlog_by_folder["breast - touching - front view"].get("remaining_image_count") == 10, + "Breast-contact front-view unused-pool count changed", + ) + _expect( + "reverse congress - front view" in artifact_backlog_by_folder, + "Reverse-congress front-view backlog row should remain tracked", + ) + _expect( + artifact_backlog_by_folder["reverse congress - front view"].get("selected_reference_count") == 15, + "Reverse-congress front-view selected-reference count changed", + ) + _expect( + artifact_backlog_by_folder["reverse congress - front view"].get("remaining_image_count") == 6, + "Reverse-congress front-view unused-pool count changed", + ) + _expect("boobjob" in artifact_backlog_by_folder, "Boobjob backlog row should remain tracked") + _expect( + artifact_backlog_by_folder["boobjob"].get("selected_reference_count") == 13, + "Boobjob selected-reference count changed", + ) + _expect( + artifact_backlog_by_folder["boobjob"].get("remaining_image_count") == 6, + "Boobjob unused-pool count changed", + ) + _expect("fingering" in artifact_backlog_by_folder, "Fingering backlog row should remain tracked") + _expect( + artifact_backlog_by_folder["fingering"].get("selected_reference_count") == 12, + "Fingering selected-reference count changed", + ) + _expect( + artifact_backlog_by_folder["fingering"].get("remaining_image_count") == 3, + "Fingering unused-pool count changed", + ) + _expect("69" in artifact_backlog_by_folder, "Sixty-nine backlog row should remain tracked") + _expect( + artifact_backlog_by_folder["69"].get("selected_reference_count") == 8, + "Sixty-nine selected-reference count changed", + ) + _expect( + artifact_backlog_by_folder["69"].get("remaining_image_count") == 2, + "Sixty-nine unused-pool count changed", + ) + _expect("wand" in artifact_backlog_by_folder, "Wand backlog row should remain tracked") + _expect( + artifact_backlog_by_folder["wand"].get("selected_reference_count") == 8, + "Wand selected-reference count changed", + ) + _expect( + artifact_backlog_by_folder["wand"].get("remaining_image_count") == 1, + "Wand unused-pool count changed", + ) + _expect( + "ballsucking - standing" not in artifact_backlog_by_folder, + "Fully represented ballsucking standing folder should leave the unused-pool backlog", + ) + _expect( + "face sitting" not in artifact_backlog_by_folder, + "Fully represented face-sitting folder should leave the unused-pool backlog", + ) + _expect( + "pussy licking - backv iew" not in artifact_backlog_by_folder, + "Fully represented pussy-licking back-view folder should leave the unused-pool backlog", + ) + _expect( + "removing pants" not in artifact_backlog_by_folder, + "Fully represented removing-pants folder should leave the unused-pool backlog", + ) + for folder in thin_batch_pool_expectations: + _expect( + folder not in artifact_backlog_by_folder, + f"Fully represented {folder} folder should leave the unused-pool backlog", + ) + _expect(reverse_cowgirl_manifest.get("folder") == "reverse cowgirl", "Reverse-cowgirl review manifest targets the wrong folder") + reverse_selected = { + str(item.get("variant_key")): item for item in reverse_cowgirl_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_reverse_cowgirl_low_close_front_view" in reverse_selected, + "Reverse-cowgirl artifact manifest should record the low-close selected subset", + ) + _expect( + len(reverse_selected["normal_reverse_cowgirl_low_close_front_view"].get("reference_images") or []) == 12, + "Reverse-cowgirl low-close artifact subset should have 12 references", + ) + _expect(breasts_exposed_manifest.get("folder") == "breasts exposed", "Breasts-exposed review manifest targets the wrong folder") + _expect(breasts_exposed_manifest.get("image_count") == 168, "Breasts-exposed review manifest should cover all 168 JPGs") + breasts_selected = { + str(item.get("variant_key")): item for item in breasts_exposed_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_display_breasts_exposed_front_view" in breasts_selected, + "Breasts-exposed review manifest should record the front-view selected subset", + ) + _expect( + len(breasts_selected["normal_display_breasts_exposed_front_view"].get("reference_images") or []) == 12, + "Breasts-exposed front-view subset should have 12 references", + ) + _expect( + "normal_display_breasts_exposed_side_offset_view" in breasts_selected, + "Breasts-exposed review manifest should record the side-offset selected subset", + ) + _expect( + len(breasts_selected["normal_display_breasts_exposed_side_offset_view"].get("reference_images") or []) == 10, + "Breasts-exposed side-offset subset should have 10 references", + ) + _expect( + "normal_display_breasts_exposed_standing_front_view" in breasts_selected, + "Breasts-exposed review manifest should record the standing front-view selected subset", + ) + _expect( + len(breasts_selected["normal_display_breasts_exposed_standing_front_view"].get("reference_images") or []) == 12, + "Breasts-exposed standing front-view subset should have 12 references", + ) + _expect( + "normal_display_breasts_exposed_seated_kneeling_front_view" in breasts_selected, + "Breasts-exposed review manifest should record the seated/kneeling front-view selected subset", + ) + _expect( + len(breasts_selected["normal_display_breasts_exposed_seated_kneeling_front_view"].get("reference_images") or []) == 12, + "Breasts-exposed seated/kneeling front-view subset should have 12 references", + ) + _expect(pussy_spread_manifest.get("folder") == "pussy spread", "Pussy-spread review manifest targets the wrong folder") + _expect(pussy_spread_manifest.get("image_count") == 100, "Pussy-spread review manifest should cover all 100 JPGs") + pussy_selected = { + str(item.get("variant_key")): item for item in pussy_spread_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_display_front_open_leg_front_view" in pussy_selected, + "Pussy-spread review manifest should record the front-view selected subset", + ) + _expect( + len(pussy_selected["normal_display_front_open_leg_front_view"].get("reference_images") or []) == 12, + "Pussy-spread front-view subset should have 12 references", + ) + _expect( + "normal_display_front_open_leg_low_close" in pussy_selected, + "Pussy-spread review manifest should record the low-close selected subset", + ) + _expect( + len(pussy_selected["normal_display_front_open_leg_low_close"].get("reference_images") or []) == 12, + "Pussy-spread low-close subset should have 12 references", + ) + _expect( + "normal_display_front_open_leg_side_offset_view" in pussy_selected, + "Pussy-spread review manifest should record the side-offset selected subset", + ) + _expect( + len(pussy_selected["normal_display_front_open_leg_side_offset_view"].get("reference_images") or []) == 12, + "Pussy-spread side-offset subset should have 12 references", + ) + _expect(anal_random_manifest.get("folder") == "anal random", "Anal-random review manifest targets the wrong folder") + _expect(anal_random_manifest.get("image_count") == 99, "Anal-random review manifest should cover all 99 JPGs") + anal_selected = { + str(item.get("variant_key")): item for item in anal_random_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_anal_random_front_view" in anal_selected, + "Anal-random review manifest should record the front-view selected subset", + ) + _expect( + len(anal_selected["normal_anal_random_front_view"].get("reference_images") or []) == 11, + "Anal-random front-view subset should have 11 references", + ) + _expect( + "normal_anal_random_back_side_offset_view" in anal_selected, + "Anal-random review manifest should record the back-side-offset selected subset", + ) + _expect( + len(anal_selected["normal_anal_random_back_side_offset_view"].get("reference_images") or []) == 12, + "Anal-random back-side-offset subset should have 12 references", + ) + _expect(couple_kissing_manifest.get("folder") == "couple kissing", "Couple-kissing review manifest targets the wrong folder") + _expect(couple_kissing_manifest.get("image_count") == 88, "Couple-kissing review manifest should cover all 88 JPGs") + couple_selected = { + str(item.get("variant_key")): item for item in couple_kissing_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_couple_kissing_upright_side_profile" in couple_selected, + "Couple-kissing review manifest should record the upright side-profile selected subset", + ) + _expect( + len(couple_selected["normal_couple_kissing_upright_side_profile"].get("reference_images") or []) == 12, + "Couple-kissing upright side-profile subset should have 12 references", + ) + _expect(cowgirl_back_manifest.get("folder") == "cowgirl - back view - 3-4 angle", "Cowgirl back-three-quarter review manifest targets the wrong folder") + _expect(cowgirl_back_manifest.get("image_count") == 129, "Cowgirl back-three-quarter review manifest should cover all 129 JPGs") + cowgirl_back_selected = { + str(item.get("variant_key")): item for item in cowgirl_back_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_cowgirl_back_three_quarter" in cowgirl_back_selected, + "Cowgirl back-three-quarter review manifest should record the reviewed route references", + ) + _expect( + len(cowgirl_back_selected["normal_cowgirl_back_three_quarter"].get("reference_images") or []) == 15, + "Cowgirl back-three-quarter reviewed subset should have 15 references", + ) + _expect(rear_body_manifest.get("folder") == "woman solo showing her hass - back view", "Rear-body display review manifest targets the wrong folder") + _expect(rear_body_manifest.get("image_count") == 99, "Rear-body display review manifest should cover all 99 JPGs") + rear_body_selected = { + str(item.get("variant_key")): item for item in rear_body_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_display_rear_body_standing_back_view" in rear_body_selected, + "Rear-body display review manifest should record the standing back-view selected subset", + ) + _expect( + len(rear_body_selected["normal_display_rear_body_standing_back_view"].get("reference_images") or []) == 12, + "Rear-body standing back-view subset should have 12 references", + ) + _expect(doggy_all_fours_back_manifest.get("folder") == "doggy on all four - back view - 3-4 angle", "Doggy all-fours back-three-quarter review manifest targets the wrong folder") + _expect(doggy_all_fours_back_manifest.get("image_count") == 69, "Doggy all-fours back-three-quarter review manifest should cover all 69 JPGs") + doggy_all_fours_back_selected = { + str(item.get("variant_key")): item for item in doggy_all_fours_back_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_doggy_all_fours_back_three_quarter" in doggy_all_fours_back_selected, + "Doggy all-fours back-three-quarter review manifest should record the reviewed route references", + ) + _expect( + len(doggy_all_fours_back_selected["normal_doggy_all_fours_back_three_quarter"].get("reference_images") or []) == 15, + "Doggy all-fours back-three-quarter reviewed subset should have 15 references", + ) + _expect(doggy_all_fours_side_manifest.get("folder") == "doggy on all four - side view", "Doggy all-fours side-view review manifest targets the wrong folder") + _expect(doggy_all_fours_side_manifest.get("image_count") == 70, "Doggy all-fours side-view review manifest should cover all 70 JPGs") + doggy_all_fours_side_selected = { + str(item.get("variant_key")): item for item in doggy_all_fours_side_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_doggy_all_fours_side_view" in doggy_all_fours_side_selected, + "Doggy all-fours side-view review manifest should record the reviewed route references", + ) + _expect( + len(doggy_all_fours_side_selected["normal_doggy_all_fours_side_view"].get("reference_images") or []) == 14, + "Doggy all-fours side-view reviewed subset should keep 14 references", + ) + _expect(handjob_standing_side_manifest.get("folder") == "handjob standing - side view", "Handjob standing side-view review manifest targets the wrong folder") + _expect(handjob_standing_side_manifest.get("image_count") == 63, "Handjob standing side-view review manifest should cover all 63 JPGs") + handjob_standing_side_selected = { + str(item.get("variant_key")): item for item in handjob_standing_side_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_handjob_standing_side_profile" in handjob_standing_side_selected, + "Handjob standing side-view review manifest should record the reviewed route references", + ) + _expect( + len(handjob_standing_side_selected["normal_handjob_standing_side_profile"].get("reference_images") or []) == 7, + "Handjob standing side-view reviewed subset should keep 7 references", + ) + _expect(breast_sucking_side_manifest.get("folder") == "breast sucking - side view", "Breast-sucking side-view review manifest targets the wrong folder") + _expect(breast_sucking_side_manifest.get("image_count") == 43, "Breast-sucking side-view review manifest should cover all 43 JPGs") + breast_sucking_side_selected = { + str(item.get("variant_key")): item for item in breast_sucking_side_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_breast_sucking_side_view" in breast_sucking_side_selected, + "Breast-sucking side-view review manifest should record the reviewed route references", + ) + _expect( + len(breast_sucking_side_selected["normal_breast_sucking_side_view"].get("reference_images") or []) == 15, + "Breast-sucking side-view reviewed subset should have 15 references", + ) + _expect(standing_from_front_side_manifest.get("folder") == "fuck from front standing - side view", "Standing from-front side-view review manifest targets the wrong folder") + _expect(standing_from_front_side_manifest.get("image_count") == 36, "Standing from-front side-view review manifest should cover all 36 JPGs") + standing_from_front_side_selected = { + str(item.get("variant_key")): item for item in standing_from_front_side_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_standing_from_front_side_view" in standing_from_front_side_selected, + "Standing from-front side-view review manifest should record the reviewed route references", + ) + _expect( + len(standing_from_front_side_selected["normal_standing_from_front_side_view"].get("reference_images") or []) == 3, + "Standing from-front side-view reviewed subset should keep 3 references", + ) + _expect(doggy_generic_back_manifest.get("folder") == "doggy - back view - 3-4 angle", "Doggy generic back-three-quarter review manifest targets the wrong folder") + _expect(doggy_generic_back_manifest.get("image_count") == 35, "Doggy generic back-three-quarter review manifest should cover all 35 JPGs") + doggy_generic_back_selected = { + str(item.get("variant_key")): item for item in doggy_generic_back_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_doggy_generic_back_three_quarter" in doggy_generic_back_selected, + "Doggy generic back-three-quarter review manifest should record the reviewed route references", + ) + _expect( + len(doggy_generic_back_selected["normal_doggy_generic_back_three_quarter"].get("reference_images") or []) == 15, + "Doggy generic back-three-quarter reviewed subset should have 15 references", + ) + _expect(cowgirl_side_manifest.get("folder") == "cowgirl - side view", "Cowgirl side-view review manifest targets the wrong folder") + _expect(cowgirl_side_manifest.get("image_count") == 34, "Cowgirl side-view review manifest should cover all 34 JPGs") + cowgirl_side_selected = { + str(item.get("variant_key")): item for item in cowgirl_side_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_cowgirl_side_profile" in cowgirl_side_selected, + "Cowgirl side-view review manifest should record the reviewed route references", + ) + _expect( + len(cowgirl_side_selected["normal_cowgirl_side_profile"].get("reference_images") or []) == 15, + "Cowgirl side-view reviewed subset should have 15 references", + ) + _expect(penis_worship_manifest.get("folder") == "penis worship", "Penis-worship review manifest targets the wrong folder") + _expect(penis_worship_manifest.get("image_count") == 49, "Penis-worship review manifest should cover all 49 JPGs") + penis_worship_selected = { + str(item.get("variant_key")): item for item in penis_worship_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_penis_worship_foreground_close_reference_folder_pool" in penis_worship_selected, + "Penis-worship review manifest should record the residual foreground-close source pool anchor", + ) + _expect( + len(penis_worship_selected["normal_penis_worship_foreground_close_reference_folder_pool"].get("reference_images") or []) == 1, + "Penis-worship foreground-close pool anchor should keep 1 reference", + ) + _expect( + "normal_penis_worship_top_view" in penis_worship_selected, + "Penis-worship review manifest should record the top-view anchors", + ) + _expect( + len(penis_worship_selected["normal_penis_worship_top_view"].get("reference_images") or []) == 6, + "Penis-worship top-view anchor subset should keep 6 references", + ) + _expect( + "normal_penis_worship_side_view" in penis_worship_selected, + "Penis-worship review manifest should record the side-view anchors", + ) + _expect( + len(penis_worship_selected["normal_penis_worship_side_view"].get("reference_images") or []) == 8, + "Penis-worship side-view anchor subset should keep 8 references", + ) + _expect( + "normal_penis_worship_laying_partner_vertical_side_view" in penis_worship_selected, + "Penis-worship review manifest should record the laying-partner vertical side-view anchors", + ) + _expect( + len(penis_worship_selected["normal_penis_worship_laying_partner_vertical_side_view"].get("reference_images") or []) == 5, + "Penis-worship laying-partner vertical side-view anchor subset should keep 5 references", + ) + _expect( + standing_backside_side_manifest.get("folder") == "fuck from behind standing - woman backside - side view", + "Standing backside side-view review manifest targets the wrong folder", + ) + _expect( + standing_backside_side_manifest.get("image_count") == 47, + "Standing backside side-view review manifest should cover all 47 JPGs", + ) + standing_backside_side_selected = { + str(item.get("variant_key")): item for item in standing_backside_side_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_doggy_standing_backside_side_view_folder_pool" in standing_backside_side_selected, + "Standing backside side-view review manifest should record the source-pool anchor", + ) + _expect( + len(standing_backside_side_selected["normal_doggy_standing_backside_side_view_folder_pool"].get("reference_images") or []) == 3, + "Standing backside side-view source-pool anchor should keep 3 references", + ) + _expect( + "normal_doggy_standing_backside_side_view" in standing_backside_side_selected, + "Standing backside side-view review manifest should record the reviewed route anchors", + ) + _expect( + len(standing_backside_side_selected["normal_doggy_standing_backside_side_view"].get("reference_images") or []) == 16, + "Standing backside side-view reviewed subset should keep 16 references", + ) + _expect( + doggy_all_fours_front_manifest.get("folder") == "doggy all four - front view", + "Doggy all-fours front-view review manifest targets the wrong folder", + ) + _expect( + doggy_all_fours_front_manifest.get("image_count") == 28, + "Doggy all-fours front-view review manifest should cover all 28 JPGs", + ) + doggy_all_fours_front_selected = { + str(item.get("variant_key")): item for item in doggy_all_fours_front_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_doggy_all_fours_front_view" in doggy_all_fours_front_selected, + "Doggy all-fours front-view review manifest should record the reviewed route references", + ) + _expect( + len(doggy_all_fours_front_selected["normal_doggy_all_fours_front_view"].get("reference_images") or []) == 15, + "Doggy all-fours front-view reviewed subset should have 15 references", + ) + _expect( + doggy_generic_front_manifest.get("folder") == "doggy - front view ", + "Doggy generic front-view review manifest targets the wrong folder", + ) + _expect( + doggy_generic_front_manifest.get("image_count") == 13, + "Doggy generic front-view review manifest should cover all 13 JPGs", + ) + doggy_generic_front_selected = { + str(item.get("variant_key")): item for item in doggy_generic_front_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_doggy_generic_front_view" in doggy_generic_front_selected, + "Doggy generic front-view review manifest should record the reviewed route references", + ) + _expect( + len(doggy_generic_front_selected["normal_doggy_generic_front_view"].get("reference_images") or []) == 15, + "Doggy generic front-view reviewed subset should have 15 references", + ) + _expect(piledriver_manifest.get("folder") == "piledriver", "Piledriver review manifest targets the wrong folder") + _expect(piledriver_manifest.get("image_count") == 27, "Piledriver review manifest should cover all 27 JPGs") + piledriver_selected = { + str(item.get("variant_key")): item for item in piledriver_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_piledriver_mixed_camera_folder_pool" in piledriver_selected, + "Piledriver review manifest should record the mixed source-pool anchor", + ) + _expect( + len(piledriver_selected["normal_piledriver_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Piledriver mixed source-pool anchor should keep 3 references", + ) + _expect( + "normal_piledriver_high_front_down_view" in piledriver_selected, + "Piledriver review manifest should record the high-front-down selected split", + ) + _expect( + len(piledriver_selected["normal_piledriver_high_front_down_view"].get("reference_images") or []) == 15, + "Piledriver high-front-down selected split should have 15 references", + ) + _expect( + blowjob_laying_front_manifest.get("folder") == "blowjob - laying - front view", + "Blowjob laying front-view review manifest targets the wrong folder", + ) + _expect( + blowjob_laying_front_manifest.get("image_count") == 26, + "Blowjob laying front-view review manifest should cover all 26 JPGs", + ) + blowjob_laying_front_selected = { + str(item.get("variant_key")): item for item in blowjob_laying_front_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_blowjob_laying_front_view" in blowjob_laying_front_selected, + "Blowjob laying front-view review manifest should record the reviewed route references", + ) + _expect( + len(blowjob_laying_front_selected["normal_blowjob_laying_front_view"].get("reference_images") or []) == 15, + "Blowjob laying front-view reviewed subset should have 15 references", + ) + _expect( + breast_contact_front_manifest.get("folder") == "breast - touching - front view", + "Breast-contact front-view review manifest targets the wrong folder", + ) + _expect( + breast_contact_front_manifest.get("image_count") == 25, + "Breast-contact front-view review manifest should cover all 25 JPGs", + ) + breast_contact_front_selected = { + str(item.get("variant_key")): item for item in breast_contact_front_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_breast_contact_front_view" in breast_contact_front_selected, + "Breast-contact front-view review manifest should record the reviewed route references", + ) + _expect( + len(breast_contact_front_selected["normal_breast_contact_front_view"].get("reference_images") or []) == 15, + "Breast-contact front-view reviewed subset should have 15 references", + ) + _expect( + reverse_congress_front_manifest.get("folder") == "reverse congress - front view", + "Reverse-congress front-view review manifest targets the wrong folder", + ) + _expect( + reverse_congress_front_manifest.get("image_count") == 21, + "Reverse-congress front-view review manifest should cover all 21 JPGs", + ) + reverse_congress_front_selected = { + str(item.get("variant_key")): item for item in reverse_congress_front_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_reverse_congress_front_view" in reverse_congress_front_selected, + "Reverse-congress front-view review manifest should record the reviewed route references", + ) + _expect( + len(reverse_congress_front_selected["normal_reverse_congress_front_view"].get("reference_images") or []) == 15, + "Reverse-congress front-view reviewed subset should have 15 references", + ) + _expect(boobjob_manifest.get("folder") == "boobjob", "Boobjob review manifest targets the wrong folder") + _expect(boobjob_manifest.get("image_count") == 19, "Boobjob review manifest should cover all 19 JPGs") + boobjob_selected = { + str(item.get("variant_key")): item for item in boobjob_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_boobjob_front_close_mixed_camera_folder_pool" in boobjob_selected, + "Boobjob review manifest should record the mixed source-pool anchor", + ) + _expect( + boobjob_selected["normal_boobjob_front_close_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Boobjob mixed source-pool anchor should stay needs_samples", + ) + _expect( + len(boobjob_selected["normal_boobjob_front_close_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Boobjob mixed source-pool anchor should keep 3 references", + ) + _expect( + "normal_boobjob_front_close_view" in boobjob_selected, + "Boobjob review manifest should record the front-close selected split", + ) + _expect( + boobjob_selected["normal_boobjob_front_close_view"].get("status") == "pre_ab_candidate", + "Boobjob front-close selected split should be pre-A/B", + ) + _expect( + len(boobjob_selected["normal_boobjob_front_close_view"].get("reference_images") or []) == 12, + "Boobjob front-close selected split should have 12 references", + ) + _expect(fingering_manifest.get("folder") == "fingering", "Fingering review manifest targets the wrong folder") + _expect(fingering_manifest.get("image_count") == 15, "Fingering review manifest should cover all 15 JPGs") + fingering_selected = { + str(item.get("variant_key")): item for item in fingering_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_fingering_mixed_camera_folder_pool" in fingering_selected, + "Fingering review manifest should record the mixed source-pool anchor", + ) + _expect( + fingering_selected["normal_fingering_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Fingering mixed source-pool anchor should stay needs_samples", + ) + _expect( + len(fingering_selected["normal_fingering_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Fingering mixed source-pool anchor should keep 3 references", + ) + _expect( + "normal_fingering_reclined_front_view" in fingering_selected, + "Fingering review manifest should record the reclined front-view selected split", + ) + _expect( + fingering_selected["normal_fingering_reclined_front_view"].get("status") == "pre_ab_candidate", + "Fingering reclined front-view selected split should be pre-A/B", + ) + _expect( + len(fingering_selected["normal_fingering_reclined_front_view"].get("reference_images") or []) == 10, + "Fingering reclined front-view selected split should have 10 references", + ) + _expect(sixty_nine_manifest.get("folder") == "69", "Sixty-nine review manifest targets the wrong folder") + _expect(sixty_nine_manifest.get("image_count") == 10, "Sixty-nine review manifest should cover all 10 JPGs") + sixty_nine_selected = { + str(item.get("variant_key")): item for item in sixty_nine_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_sixty_nine_mixed_camera_folder_pool" in sixty_nine_selected, + "Sixty-nine review manifest should record the mixed source-pool anchor", + ) + _expect( + sixty_nine_selected["normal_sixty_nine_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Sixty-nine mixed source-pool anchor should stay needs_samples", + ) + _expect( + len(sixty_nine_selected["normal_sixty_nine_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Sixty-nine mixed source-pool anchor should keep 3 references", + ) + _expect( + "normal_sixty_nine_front_close_view" in sixty_nine_selected, + "Sixty-nine review manifest should record the front-close selected split", + ) + _expect( + sixty_nine_selected["normal_sixty_nine_front_close_view"].get("status") == "pre_ab_candidate", + "Sixty-nine front-close selected split should be pre-A/B", + ) + _expect( + len(sixty_nine_selected["normal_sixty_nine_front_close_view"].get("reference_images") or []) == 7, + "Sixty-nine front-close selected split should have 7 references", + ) + _expect(wand_manifest.get("folder") == "wand", "Wand review manifest targets the wrong folder") + _expect(wand_manifest.get("image_count") == 9, "Wand review manifest should cover all 9 JPGs") + wand_selected = { + str(item.get("variant_key")): item for item in wand_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_wand_mixed_camera_folder_pool" in wand_selected, + "Wand review manifest should record the mixed source-pool anchor", + ) + _expect( + wand_selected["normal_wand_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Wand mixed source-pool anchor should stay needs_samples", + ) + _expect( + len(wand_selected["normal_wand_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Wand mixed source-pool anchor should keep 3 references", + ) + _expect( + "normal_wand_front_close_view" in wand_selected, + "Wand review manifest should record the front-close selected split", + ) + _expect( + wand_selected["normal_wand_front_close_view"].get("status") == "pre_ab_candidate", + "Wand front-close selected split should be pre-A/B", + ) + _expect( + len(wand_selected["normal_wand_front_close_view"].get("reference_images") or []) == 7, + "Wand front-close selected split should have 7 references", + ) + _expect( + ballsucking_standing_manifest.get("folder") == "ballsucking - standing", + "Ballsucking standing review manifest targets the wrong folder", + ) + _expect( + ballsucking_standing_manifest.get("image_count") == 12, + "Ballsucking standing review manifest should cover all 12 JPGs", + ) + ballsucking_standing_selected = { + str(item.get("variant_key")): item for item in ballsucking_standing_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_ballsucking_standing_partner_mixed_camera_folder_pool" in ballsucking_standing_selected, + "Ballsucking standing review manifest should record the mixed source-pool anchor", + ) + _expect( + ballsucking_standing_selected["normal_ballsucking_standing_partner_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Ballsucking standing mixed source-pool anchor should stay needs_samples", + ) + _expect( + len(ballsucking_standing_selected["normal_ballsucking_standing_partner_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Ballsucking standing mixed source-pool anchor should keep 3 references", + ) + _expect( + "normal_ballsucking_standing_low_side_view" in ballsucking_standing_selected, + "Ballsucking standing review manifest should record the low-side selected split", + ) + _expect( + ballsucking_standing_selected["normal_ballsucking_standing_low_side_view"].get("status") == "pre_ab_candidate", + "Ballsucking standing low-side selected split should be pre-A/B", + ) + _expect( + len(ballsucking_standing_selected["normal_ballsucking_standing_low_side_view"].get("reference_images") or []) == 11, + "Ballsucking standing low-side selected split should have 11 references", + ) + _expect(face_sitting_manifest.get("folder") == "face sitting", "Face-sitting review manifest targets the wrong folder") + _expect(face_sitting_manifest.get("image_count") == 4, "Face-sitting review manifest should cover all 4 JPGs") + face_sitting_selected = { + str(item.get("variant_key")): item for item in face_sitting_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_face_sitting_mixed_camera_folder_pool" in face_sitting_selected, + "Face-sitting review manifest should record the mixed source-pool anchor", + ) + _expect( + face_sitting_selected["normal_face_sitting_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Face-sitting mixed source-pool anchor should stay needs_samples", + ) + _expect( + face_sitting_selected["normal_face_sitting_mixed_camera_folder_pool"].get("review_bucket") == "reject_or_unclear", + "Face-sitting mixed source-pool anchor should stay in the reject/unclear review bucket", + ) + _expect( + len(face_sitting_selected["normal_face_sitting_mixed_camera_folder_pool"].get("reference_images") or []) == 4, + "Face-sitting mixed source-pool anchor should keep all 4 references", + ) + _expect( + pussy_licking_backview_manifest.get("folder") == "pussy licking - backv iew", + "Pussy-licking back-view review manifest targets the wrong folder", + ) + _expect( + pussy_licking_backview_manifest.get("image_count") == 3, + "Pussy-licking back-view review manifest should cover all 3 JPGs", + ) + pussy_licking_backview_selected = { + str(item.get("variant_key")): item for item in pussy_licking_backview_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_pussy_licking_backview_mixed_camera_folder_pool" in pussy_licking_backview_selected, + "Pussy-licking back-view review manifest should record the mixed source-pool anchor", + ) + _expect( + pussy_licking_backview_selected["normal_pussy_licking_backview_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Pussy-licking back-view mixed source-pool anchor should stay needs_samples", + ) + _expect( + pussy_licking_backview_selected["normal_pussy_licking_backview_mixed_camera_folder_pool"].get("review_bucket") == "reject_or_unclear", + "Pussy-licking back-view mixed source-pool anchor should stay in the reject/unclear review bucket", + ) + _expect( + len(pussy_licking_backview_selected["normal_pussy_licking_backview_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Pussy-licking back-view mixed source-pool anchor should keep all 3 references", + ) + _expect(removing_pants_manifest.get("folder") == "removing pants", "Removing-pants review manifest targets the wrong folder") + _expect(removing_pants_manifest.get("image_count") == 3, "Removing-pants review manifest should cover all 3 JPGs") + removing_pants_selected = { + str(item.get("variant_key")): item for item in removing_pants_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_removing_pants_mixed_camera_folder_pool" in removing_pants_selected, + "Removing-pants review manifest should record the mixed source-pool anchor", + ) + _expect( + removing_pants_selected["normal_removing_pants_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Removing-pants mixed source-pool anchor should stay needs_samples", + ) + _expect( + removing_pants_selected["normal_removing_pants_mixed_camera_folder_pool"].get("review_bucket") == "reject_or_unclear", + "Removing-pants mixed source-pool anchor should stay in the reject/unclear review bucket", + ) + _expect( + len(removing_pants_selected["normal_removing_pants_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Removing-pants mixed source-pool anchor should keep all 3 references", + ) + for folder, (variant_key, expected_count) in thin_batch_pool_expectations.items(): + manifest = thin_batch_manifests[folder] + _expect(manifest.get("folder") == folder, f"{folder} review manifest targets the wrong folder") + _expect( + manifest.get("image_count") == expected_count, + f"{folder} review manifest should cover all {expected_count} JPGs", + ) + selected = {str(item.get("variant_key")): item for item in manifest.get("selected_subvariants") or []} + _expect(variant_key in selected, f"{folder} review manifest should record the mixed source-pool anchor") + _expect(selected[variant_key].get("status") == "needs_samples", f"{folder} mixed source-pool anchor should stay needs_samples") + _expect( + selected[variant_key].get("review_bucket") == "reject_or_unclear", + f"{folder} mixed source-pool anchor should stay in the reject/unclear review bucket", + ) + _expect( + len(selected[variant_key].get("reference_images") or []) == expected_count, + f"{folder} mixed source-pool anchor should keep all {expected_count} references", + ) + _expect("No-generation contact sheet" in reverse_cowgirl_contact_sheet_path.read_text(encoding="utf-8"), "Reverse-cowgirl contact sheet lost no-generation scope") + breasts_contact_sheet = breasts_exposed_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in breasts_contact_sheet, "Breasts-exposed contact sheet lost no-generation scope") + _expect('data-review-bucket="front_view"' in breasts_contact_sheet, "Breasts-exposed contact sheet should mark selected front-view references") + _expect('data-review-bucket="side_view"' in breasts_contact_sheet, "Breasts-exposed contact sheet should mark selected side-view references") + _expect('data-selected-variant="normal_display_breasts_exposed_standing_front_view"' in breasts_contact_sheet, "Breasts-exposed contact sheet should mark selected standing front-view references") + _expect('data-selected-variant="normal_display_breasts_exposed_seated_kneeling_front_view"' in breasts_contact_sheet, "Breasts-exposed contact sheet should mark selected seated/kneeling front-view references") + pussy_contact_sheet = pussy_spread_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in pussy_contact_sheet, "Pussy-spread contact sheet lost no-generation scope") + _expect('data-selected-variant="normal_display_front_open_leg_front_view"' in pussy_contact_sheet, "Pussy-spread contact sheet should mark selected front-view references") + _expect('data-selected-variant="normal_display_front_open_leg_low_close"' in pussy_contact_sheet, "Pussy-spread contact sheet should mark selected low-close references") + _expect('data-selected-variant="normal_display_front_open_leg_side_offset_view"' in pussy_contact_sheet, "Pussy-spread contact sheet should mark selected side-offset references") + anal_contact_sheet = anal_random_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in anal_contact_sheet, "Anal-random contact sheet lost no-generation scope") + _expect('data-review-bucket="front_view"' in anal_contact_sheet, "Anal-random contact sheet should mark selected front-view references") + _expect('data-selected-variant="normal_anal_random_back_side_offset_view"' in anal_contact_sheet, "Anal-random contact sheet should mark selected back-side-offset references") + couple_contact_sheet = couple_kissing_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in couple_contact_sheet, "Couple-kissing contact sheet lost no-generation scope") + _expect('data-selected-variant="normal_couple_kissing_upright_side_profile"' in couple_contact_sheet, "Couple-kissing contact sheet should mark selected side-profile references") + cowgirl_back_contact_sheet = cowgirl_back_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in cowgirl_back_contact_sheet, "Cowgirl back-three-quarter contact sheet lost no-generation scope") + _expect('data-selected-variant="normal_cowgirl_back_three_quarter"' in cowgirl_back_contact_sheet, "Cowgirl back-three-quarter contact sheet should mark reviewed references") + rear_body_contact_sheet = rear_body_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in rear_body_contact_sheet, "Rear-body display contact sheet lost no-generation scope") + _expect('data-selected-variant="normal_display_rear_body_standing_back_view"' in rear_body_contact_sheet, "Rear-body display contact sheet should mark standing back-view references") + doggy_all_fours_back_contact_sheet = doggy_all_fours_back_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in doggy_all_fours_back_contact_sheet, "Doggy all-fours back-three-quarter contact sheet lost no-generation scope") + _expect('data-selected-variant="normal_doggy_all_fours_back_three_quarter"' in doggy_all_fours_back_contact_sheet, "Doggy all-fours back-three-quarter contact sheet should mark reviewed references") + doggy_all_fours_side_contact_sheet = doggy_all_fours_side_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in doggy_all_fours_side_contact_sheet, "Doggy all-fours side-view contact sheet lost no-generation scope") + _expect('data-selected-variant="normal_doggy_all_fours_side_view"' in doggy_all_fours_side_contact_sheet, "Doggy all-fours side-view contact sheet should mark reviewed references") + handjob_standing_side_contact_sheet = handjob_standing_side_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in handjob_standing_side_contact_sheet, "Handjob standing side-view contact sheet lost no-generation scope") + _expect('data-selected-variant="normal_handjob_standing_side_profile"' in handjob_standing_side_contact_sheet, "Handjob standing side-view contact sheet should mark reviewed references") + breast_sucking_side_contact_sheet = breast_sucking_side_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in breast_sucking_side_contact_sheet, "Breast-sucking side-view contact sheet lost no-generation scope") + _expect('data-selected-variant="normal_breast_sucking_side_view"' in breast_sucking_side_contact_sheet, "Breast-sucking side-view contact sheet should mark reviewed references") + standing_from_front_side_contact_sheet = standing_from_front_side_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in standing_from_front_side_contact_sheet, "Standing from-front side-view contact sheet lost no-generation scope") + _expect('data-selected-variant="normal_standing_from_front_side_view"' in standing_from_front_side_contact_sheet, "Standing from-front side-view contact sheet should mark reviewed references") + doggy_generic_back_contact_sheet = doggy_generic_back_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in doggy_generic_back_contact_sheet, "Doggy generic back-three-quarter contact sheet lost no-generation scope") + _expect('data-selected-variant="normal_doggy_generic_back_three_quarter"' in doggy_generic_back_contact_sheet, "Doggy generic back-three-quarter contact sheet should mark reviewed references") + cowgirl_side_contact_sheet = cowgirl_side_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in cowgirl_side_contact_sheet, "Cowgirl side-view contact sheet lost no-generation scope") + _expect('data-selected-variant="normal_cowgirl_side_profile"' in cowgirl_side_contact_sheet, "Cowgirl side-view contact sheet should mark reviewed references") + penis_worship_contact_sheet = penis_worship_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in penis_worship_contact_sheet, "Penis-worship contact sheet lost no-generation scope") + _expect('data-selected-variant="normal_penis_worship_top_view"' in penis_worship_contact_sheet, "Penis-worship contact sheet should mark top-view anchors") + _expect('data-selected-variant="normal_penis_worship_side_view"' in penis_worship_contact_sheet, "Penis-worship contact sheet should mark side-view anchors") + _expect('data-selected-variant="normal_penis_worship_laying_partner_vertical_side_view"' in penis_worship_contact_sheet, "Penis-worship contact sheet should mark laying-partner vertical side-view anchors") + _expect('data-selected-variant="normal_penis_worship_foreground_close_reference_folder_pool"' in penis_worship_contact_sheet, "Penis-worship contact sheet should mark foreground-close source-pool anchor") + standing_backside_side_contact_sheet = standing_backside_side_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in standing_backside_side_contact_sheet, "Standing backside side-view contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_doggy_standing_backside_side_view"' in standing_backside_side_contact_sheet, + "Standing backside side-view contact sheet should mark reviewed route anchors", + ) + _expect( + 'data-selected-variant="normal_doggy_standing_backside_side_view_folder_pool"' in standing_backside_side_contact_sheet, + "Standing backside side-view contact sheet should mark source-pool anchors", + ) + doggy_all_fours_front_contact_sheet = doggy_all_fours_front_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in doggy_all_fours_front_contact_sheet, "Doggy all-fours front-view contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_doggy_all_fours_front_view"' in doggy_all_fours_front_contact_sheet, + "Doggy all-fours front-view contact sheet should mark reviewed route references", + ) + doggy_generic_front_contact_sheet = doggy_generic_front_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in doggy_generic_front_contact_sheet, "Doggy generic front-view contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_doggy_generic_front_view"' in doggy_generic_front_contact_sheet, + "Doggy generic front-view contact sheet should mark reviewed route references", + ) + piledriver_contact_sheet = piledriver_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in piledriver_contact_sheet, "Piledriver contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_piledriver_high_front_down_view"' in piledriver_contact_sheet, + "Piledriver contact sheet should mark high-front-down selected references", + ) + _expect( + 'data-selected-variant="normal_piledriver_mixed_camera_folder_pool"' in piledriver_contact_sheet, + "Piledriver contact sheet should mark mixed source-pool anchors", + ) + blowjob_laying_front_contact_sheet = blowjob_laying_front_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in blowjob_laying_front_contact_sheet, "Blowjob laying front-view contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_blowjob_laying_front_view"' in blowjob_laying_front_contact_sheet, + "Blowjob laying front-view contact sheet should mark reviewed route references", + ) + breast_contact_front_contact_sheet = breast_contact_front_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in breast_contact_front_contact_sheet, "Breast-contact front-view contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_breast_contact_front_view"' in breast_contact_front_contact_sheet, + "Breast-contact front-view contact sheet should mark reviewed route references", + ) + reverse_congress_front_contact_sheet = reverse_congress_front_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in reverse_congress_front_contact_sheet, "Reverse-congress front-view contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_reverse_congress_front_view"' in reverse_congress_front_contact_sheet, + "Reverse-congress front-view contact sheet should mark reviewed route references", + ) + boobjob_contact_sheet = boobjob_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in boobjob_contact_sheet, "Boobjob contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_boobjob_front_close_mixed_camera_folder_pool"' in boobjob_contact_sheet, + "Boobjob contact sheet should mark mixed source-pool anchors", + ) + _expect( + 'data-selected-variant="normal_boobjob_front_close_view"' in boobjob_contact_sheet, + "Boobjob contact sheet should mark front-close selected references", + ) + fingering_contact_sheet = fingering_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in fingering_contact_sheet, "Fingering contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_fingering_mixed_camera_folder_pool"' in fingering_contact_sheet, + "Fingering contact sheet should mark mixed source-pool anchors", + ) + _expect( + 'data-selected-variant="normal_fingering_reclined_front_view"' in fingering_contact_sheet, + "Fingering contact sheet should mark reclined front-view selected references", + ) + sixty_nine_contact_sheet = sixty_nine_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in sixty_nine_contact_sheet, "Sixty-nine contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_sixty_nine_mixed_camera_folder_pool"' in sixty_nine_contact_sheet, + "Sixty-nine contact sheet should mark mixed source-pool anchors", + ) + _expect( + 'data-selected-variant="normal_sixty_nine_front_close_view"' in sixty_nine_contact_sheet, + "Sixty-nine contact sheet should mark front-close selected references", + ) + wand_contact_sheet = wand_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in wand_contact_sheet, "Wand contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_wand_mixed_camera_folder_pool"' in wand_contact_sheet, + "Wand contact sheet should mark mixed source-pool anchors", + ) + _expect( + 'data-selected-variant="normal_wand_front_close_view"' in wand_contact_sheet, + "Wand contact sheet should mark front-close selected references", + ) + ballsucking_standing_contact_sheet = ballsucking_standing_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in ballsucking_standing_contact_sheet, "Ballsucking standing contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_ballsucking_standing_partner_mixed_camera_folder_pool"' in ballsucking_standing_contact_sheet, + "Ballsucking standing contact sheet should mark mixed source-pool anchors", + ) + _expect( + 'data-selected-variant="normal_ballsucking_standing_low_side_view"' in ballsucking_standing_contact_sheet, + "Ballsucking standing contact sheet should mark low-side selected references", + ) + face_sitting_contact_sheet = face_sitting_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in face_sitting_contact_sheet, "Face-sitting contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_face_sitting_mixed_camera_folder_pool"' in face_sitting_contact_sheet, + "Face-sitting contact sheet should mark mixed source-pool anchors", + ) + pussy_licking_backview_contact_sheet = pussy_licking_backview_contact_sheet_path.read_text(encoding="utf-8") + _expect( + "No-generation contact sheet" in pussy_licking_backview_contact_sheet, + "Pussy-licking back-view contact sheet lost no-generation scope", + ) + _expect( + 'data-selected-variant="normal_pussy_licking_backview_mixed_camera_folder_pool"' in pussy_licking_backview_contact_sheet, + "Pussy-licking back-view contact sheet should mark mixed source-pool anchors", + ) + removing_pants_contact_sheet = removing_pants_contact_sheet_path.read_text(encoding="utf-8") + _expect("No-generation contact sheet" in removing_pants_contact_sheet, "Removing-pants contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_removing_pants_mixed_camera_folder_pool"' in removing_pants_contact_sheet, + "Removing-pants contact sheet should mark mixed source-pool anchors", + ) + for folder, (variant_key, _expected_count) in thin_batch_pool_expectations.items(): + contact_sheet = thin_batch_review_paths[folder][1].read_text(encoding="utf-8") + _expect("No-generation contact sheet" in contact_sheet, f"{folder} contact sheet lost no-generation scope") + _expect( + f'data-selected-variant="{variant_key}"' in contact_sheet, + f"{folder} contact sheet should mark mixed source-pool anchors", + ) + + +def smoke_normal_camera_unused_pool_review_artifacts() -> None: + import importlib + + _expect_normal_camera_validator() + + prep_module = importlib.import_module("normal_camera_atlas_prep") + + backlog = prep_module.build_unused_pool_backlog(limit=5) + _expect(backlog.get("schema") == "sxcp_normal_camera_unused_pool_backlog_v1", "Normal camera unused-pool backlog schema changed") + _expect(backlog.get("no_generation") is True, "Normal camera unused-pool backlog must stay no-generation") + backlog_folders = backlog.get("folders") + _expect(isinstance(backlog_folders, list) and backlog_folders, "Normal camera unused-pool backlog has no folders") + _expect(backlog_folders[0].get("folder") == "reverse cowgirl", "Reverse cowgirl should be the first unused-pool tranche") + _expect(backlog_folders[0].get("image_count") == 240, "Reverse cowgirl source-pool size changed") + _expect(backlog_folders[0].get("selected_reference_count") == 36, "Reverse cowgirl selected-reference count changed") + _expect(backlog_folders[0].get("remaining_image_count") == 204, "Reverse cowgirl unused-pool count changed") + _expect(backlog_folders[1].get("folder") == "breasts exposed", "Breasts exposed should remain the second unused-pool tranche") + _expect(backlog_folders[1].get("selected_reference_count") == 49, "Breasts-exposed selected-reference count changed") + _expect(backlog_folders[1].get("remaining_image_count") == 119, "Breasts-exposed unused-pool count changed") + _expect(backlog_folders[2].get("folder") == "cowgirl - back view - 3-4 angle", "Cowgirl back-three-quarter should remain the third unused-pool tranche") + _expect(backlog_folders[2].get("selected_reference_count") == 15, "Cowgirl back-three-quarter selected-reference count changed") + _expect(backlog_folders[2].get("remaining_image_count") == 114, "Cowgirl back-three-quarter unused-pool count changed") + backlog_by_folder = {str(row.get("folder")): row for row in backlog_folders} + _expect("anal random" in backlog_by_folder, "Anal random should remain in the top unused-pool backlog") + _expect(backlog_by_folder["anal random"].get("selected_reference_count") == 26, "Anal-random selected-reference count changed") + _expect(backlog_by_folder["anal random"].get("remaining_image_count") == 73, "Anal-random unused-pool count changed") + + full_backlog = prep_module.build_unused_pool_backlog() + full_backlog_by_folder = {str(row.get("folder")): row for row in full_backlog.get("folders") or []} + _expect("doggy on all four - back view - 3-4 angle" in full_backlog_by_folder, "Doggy all-fours back-three-quarter should remain in the unused-pool backlog") + _expect(full_backlog_by_folder["doggy on all four - back view - 3-4 angle"].get("selected_reference_count") == 15, "Doggy all-fours back-three-quarter selected-reference count changed") + _expect(full_backlog_by_folder["doggy on all four - back view - 3-4 angle"].get("remaining_image_count") == 54, "Doggy all-fours back-three-quarter unused-pool count changed") + _expect("breast sucking - side view" in full_backlog_by_folder, "Breast-sucking side-view should remain in the unused-pool backlog") + _expect(full_backlog_by_folder["breast sucking - side view"].get("selected_reference_count") == 15, "Breast-sucking side-view selected-reference count changed") + _expect(full_backlog_by_folder["breast sucking - side view"].get("remaining_image_count") == 28, "Breast-sucking side-view unused-pool count changed") + _expect("fuck from front standing - side view" in full_backlog_by_folder, "Standing from-front side-view should remain in the unused-pool backlog") + _expect(full_backlog_by_folder["fuck from front standing - side view"].get("selected_reference_count") == 3, "Standing from-front side-view selected-reference count changed") + _expect(full_backlog_by_folder["fuck from front standing - side view"].get("remaining_image_count") == 33, "Standing from-front side-view unused-pool count changed") + _expect("doggy - back view - 3-4 angle" in full_backlog_by_folder, "Doggy generic back-three-quarter should remain in the unused-pool backlog") + _expect(full_backlog_by_folder["doggy - back view - 3-4 angle"].get("selected_reference_count") == 15, "Doggy generic back-three-quarter selected-reference count changed") + _expect(full_backlog_by_folder["doggy - back view - 3-4 angle"].get("remaining_image_count") == 20, "Doggy generic back-three-quarter unused-pool count changed") + _expect("cowgirl - side view" in full_backlog_by_folder, "Cowgirl side-view should remain in the unused-pool backlog") + _expect(full_backlog_by_folder["cowgirl - side view"].get("selected_reference_count") == 15, "Cowgirl side-view selected-reference count changed") + _expect(full_backlog_by_folder["cowgirl - side view"].get("remaining_image_count") == 19, "Cowgirl side-view unused-pool count changed") + _expect("penis worship" in full_backlog_by_folder, "Penis-worship should remain in the unused-pool backlog") + _expect(full_backlog_by_folder["penis worship"].get("selected_reference_count") == 20, "Penis-worship selected-reference count changed") + _expect(full_backlog_by_folder["penis worship"].get("remaining_image_count") == 29, "Penis-worship unused-pool count changed") + _expect( + "fuck from behind standing - woman backside - side view" in full_backlog_by_folder, + "Standing backside side-view should remain in the unused-pool backlog", + ) + _expect( + full_backlog_by_folder["fuck from behind standing - woman backside - side view"].get("selected_reference_count") == 17, + "Standing backside side-view selected-reference count changed", + ) + _expect( + full_backlog_by_folder["fuck from behind standing - woman backside - side view"].get("remaining_image_count") == 30, + "Standing backside side-view unused-pool count changed", + ) + _expect("doggy all four - front view" in full_backlog_by_folder, "Doggy all-fours front-view should remain in the unused-pool backlog") + _expect( + full_backlog_by_folder["doggy all four - front view"].get("selected_reference_count") == 15, + "Doggy all-fours front-view selected-reference count changed", + ) + _expect( + full_backlog_by_folder["doggy all four - front view"].get("remaining_image_count") == 13, + "Doggy all-fours front-view unused-pool count changed", + ) + _expect( + "doggy - front view " in full_backlog_by_folder, + "Doggy generic front-view trailing-space folder should remain in the unused-pool backlog", + ) + _expect( + full_backlog_by_folder["doggy - front view "].get("covered_by_variants") is True, + "Doggy generic front-view trailing-space folder should be covered by an exact variant folder name", + ) + _expect( + full_backlog_by_folder["doggy - front view "].get("selected_reference_count") == 12, + "Doggy generic front-view selected-reference count changed", + ) + _expect( + full_backlog_by_folder["doggy - front view "].get("remaining_image_count") == 1, + "Doggy generic front-view unused-pool count changed", + ) + _expect("piledriver" in full_backlog_by_folder, "Piledriver should remain in the unused-pool backlog") + _expect( + full_backlog_by_folder["piledriver"].get("selected_reference_count") == 18, + "Piledriver selected-reference count changed", + ) + _expect( + full_backlog_by_folder["piledriver"].get("remaining_image_count") == 9, + "Piledriver unused-pool count changed", + ) + _expect( + "blowjob - laying - front view" in full_backlog_by_folder, + "Blowjob laying front-view should remain in the unused-pool backlog", + ) + _expect( + full_backlog_by_folder["blowjob - laying - front view"].get("selected_reference_count") == 15, + "Blowjob laying front-view selected-reference count changed", + ) + _expect( + full_backlog_by_folder["blowjob - laying - front view"].get("remaining_image_count") == 11, + "Blowjob laying front-view unused-pool count changed", + ) + _expect( + "breast - touching - front view" in full_backlog_by_folder, + "Breast-contact front-view should remain in the unused-pool backlog", + ) + _expect( + full_backlog_by_folder["breast - touching - front view"].get("selected_reference_count") == 15, + "Breast-contact front-view selected-reference count changed", + ) + _expect( + full_backlog_by_folder["breast - touching - front view"].get("remaining_image_count") == 10, + "Breast-contact front-view unused-pool count changed", + ) + _expect( + "reverse congress - front view" in full_backlog_by_folder, + "Reverse-congress front-view should remain in the unused-pool backlog", + ) + _expect( + full_backlog_by_folder["reverse congress - front view"].get("selected_reference_count") == 15, + "Reverse-congress front-view selected-reference count changed", + ) + _expect( + full_backlog_by_folder["reverse congress - front view"].get("remaining_image_count") == 6, + "Reverse-congress front-view unused-pool count changed", + ) + _expect("boobjob" in full_backlog_by_folder, "Boobjob should remain in the unused-pool backlog") + _expect( + full_backlog_by_folder["boobjob"].get("selected_reference_count") == 13, + "Boobjob selected-reference count changed", + ) + _expect( + full_backlog_by_folder["boobjob"].get("remaining_image_count") == 6, + "Boobjob unused-pool count changed", + ) + _expect("fingering" in full_backlog_by_folder, "Fingering should remain in the unused-pool backlog") + _expect( + full_backlog_by_folder["fingering"].get("selected_reference_count") == 12, + "Fingering selected-reference count changed", + ) + _expect( + full_backlog_by_folder["fingering"].get("remaining_image_count") == 3, + "Fingering unused-pool count changed", + ) + _expect("69" in full_backlog_by_folder, "Sixty-nine should remain in the unused-pool backlog") + _expect( + full_backlog_by_folder["69"].get("selected_reference_count") == 8, + "Sixty-nine selected-reference count changed", + ) + _expect( + full_backlog_by_folder["69"].get("remaining_image_count") == 2, + "Sixty-nine unused-pool count changed", + ) + _expect("wand" in full_backlog_by_folder, "Wand should remain in the unused-pool backlog") + _expect( + full_backlog_by_folder["wand"].get("selected_reference_count") == 8, + "Wand selected-reference count changed", + ) + _expect( + full_backlog_by_folder["wand"].get("remaining_image_count") == 1, + "Wand unused-pool count changed", + ) + _expect( + "ballsucking - standing" not in full_backlog_by_folder, + "Fully represented ballsucking standing folder should leave the unused-pool backlog", + ) + _expect( + "face sitting" not in full_backlog_by_folder, + "Fully represented face-sitting folder should leave the unused-pool backlog", + ) + _expect( + "pussy licking - backv iew" not in full_backlog_by_folder, + "Fully represented pussy-licking back-view folder should leave the unused-pool backlog", + ) + _expect( + "removing pants" not in full_backlog_by_folder, + "Fully represented removing-pants folder should leave the unused-pool backlog", + ) + thin_batch_pool_expectations = { + "rimjob": ("normal_rimjob_mixed_camera_folder_pool", 3), + "footjob": ("normal_footjob_mixed_camera_folder_pool", 2), + "reverse cowgirl - leg up": ("normal_reverse_cowgirl_leg_up_mixed_camera_folder_pool", 2), + "reverse cowgirl -pretzel": ("normal_reverse_cowgirl_pretzel_mixed_camera_folder_pool", 2), + "fist": ("normal_fist_mixed_camera_folder_pool", 1), + "anal cowgirl": ("normal_anal_cowgirl_single_reference_pool", 1), + "anal doggy - side view": ("normal_anal_doggy_side_view_single_reference_pool", 1), + "anal fuck from behind laying - back view - 3-4 angle": ( + "normal_anal_laying_back_three_quarter_single_reference_pool", + 1, + ), + "anal reverse congress": ("normal_anal_reverse_congress_single_reference_pool", 1), + "anus lickiing": ("normal_anus_licking_single_reference_pool", 1), + "blowjob laying - back view - 3-4 angle": ( + "normal_blowjob_laying_back_three_quarter_single_reference_pool", + 1, + ), + "doggy press - back side": ("normal_doggy_press_back_side_single_reference_pool", 1), + "face sitting - front view": ("normal_face_sitting_front_view_single_reference_pool", 1), + "handjob - standing -low angle": ("normal_handjob_standing_low_angle_single_reference_pool", 1), + "pussy licking leg up - back view - 3-4 angle": ( + "normal_pussy_licking_leg_up_back_three_quarter_single_reference_pool", + 1, + ), + "pussy licking standing woman": ("normal_pussy_licking_standing_woman_single_reference_pool", 1), + "under desk": ("normal_under_desk_single_reference_pool", 1), + "ballsucking - laying": ("normal_ballsucking_laying_close_reference_folder_pool", 2), + "pretzel": ("normal_pretzel_mixed_camera_folder_pool", 2), + "woman ass exposed": ("normal_display_rear_exposed_body_folder_pool", 4), + } + for folder in thin_batch_pool_expectations: + _expect( + folder not in full_backlog_by_folder, + f"Fully represented {folder} folder should leave the unused-pool backlog", + ) + + manifest = prep_module.build_review_manifest("reverse cowgirl", page_size=40) + _expect(manifest.get("schema") == "sxcp_normal_camera_review_manifest_v1", "Normal camera review manifest schema changed") + _expect(manifest.get("no_generation") is True, "Normal camera review manifest must stay no-generation") + _expect(manifest.get("folder") == "reverse cowgirl", "Review manifest should target reverse cowgirl") + _expect(manifest.get("image_count") == 240, "Reverse cowgirl review should cover all 240 JPGs") + _expect(len(manifest.get("contact_sheet_pages") or []) == 6, "Reverse cowgirl review should be paged at 40 images per sheet") + _expect("back_view" in (manifest.get("review_bucket_values") or {}), "Review buckets lost back-view routing") + selected_subvariants = manifest.get("selected_subvariants") + _expect(isinstance(selected_subvariants, list) and selected_subvariants, "Review manifest lost selected subvariants") + selected_by_key = {str(item.get("variant_key")): item for item in selected_subvariants} + _expect( + "normal_reverse_cowgirl_front_view" in selected_by_key, + "Review manifest should record the reverse-cowgirl front-view selected subset", + ) + _expect(len(selected_by_key["normal_reverse_cowgirl_front_view"].get("reference_images") or []) == 12, "Reverse-cowgirl front-view subset should have 12 references") + _expect( + "normal_reverse_cowgirl_front_three_quarter" in selected_by_key, + "Review manifest should record the reverse-cowgirl front-three-quarter selected subset", + ) + _expect( + len(selected_by_key["normal_reverse_cowgirl_front_three_quarter"].get("reference_images") or []) == 12, + "Reverse-cowgirl front-three-quarter subset should have 12 references", + ) + _expect( + "normal_reverse_cowgirl_low_close_front_view" in selected_by_key, + "Review manifest should record the reverse-cowgirl low-close front-view selected subset", + ) + _expect( + len(selected_by_key["normal_reverse_cowgirl_low_close_front_view"].get("reference_images") or []) == 12, + "Reverse-cowgirl low-close front-view subset should have 12 references", + ) + + html = prep_module.build_contact_sheet_html("reverse cowgirl", page_size=40) + _expect("reverse cowgirl/0001.jpg" in html, "Contact sheet lost first reverse-cowgirl image") + _expect('data-review-bucket="front_view"' in html, "Contact sheet should mark selected front-view references") + _expect('data-review-bucket="front_three_quarter"' in html, "Contact sheet should mark selected front-three-quarter references") + _expect('data-selected-variant="normal_reverse_cowgirl_low_close_front_view"' in html, "Contact sheet should mark selected low-close front-view references") + _expect("No-generation contact sheet" in html, "Contact sheet should document no-generation review scope") + + breasts_manifest = prep_module.build_review_manifest("breasts exposed", page_size=40) + breasts_selected = {str(item.get("variant_key")): item for item in breasts_manifest.get("selected_subvariants") or []} + _expect( + "normal_display_breasts_exposed_standing_front_view" in breasts_selected, + "Breasts-exposed review manifest should record the standing front-view selected subset", + ) + _expect( + len(breasts_selected["normal_display_breasts_exposed_standing_front_view"].get("reference_images") or []) == 12, + "Breasts-exposed standing front-view subset should have 12 references", + ) + _expect( + "normal_display_breasts_exposed_seated_kneeling_front_view" in breasts_selected, + "Breasts-exposed review manifest should record the seated/kneeling front-view selected subset", + ) + _expect( + len(breasts_selected["normal_display_breasts_exposed_seated_kneeling_front_view"].get("reference_images") or []) == 12, + "Breasts-exposed seated/kneeling front-view subset should have 12 references", + ) + + doggy_all_fours_back_manifest = prep_module.build_review_manifest("doggy on all four - back view - 3-4 angle", page_size=40) + doggy_all_fours_back_selected = {str(item.get("variant_key")): item for item in doggy_all_fours_back_manifest.get("selected_subvariants") or []} + _expect( + "normal_doggy_all_fours_back_three_quarter" in doggy_all_fours_back_selected, + "Doggy all-fours back-three-quarter review manifest should record the reviewed route references", + ) + _expect( + len(doggy_all_fours_back_selected["normal_doggy_all_fours_back_three_quarter"].get("reference_images") or []) == 15, + "Doggy all-fours back-three-quarter reviewed subset should have 15 references", + ) + + doggy_all_fours_side_manifest = prep_module.build_review_manifest("doggy on all four - side view", page_size=40) + doggy_all_fours_side_selected = {str(item.get("variant_key")): item for item in doggy_all_fours_side_manifest.get("selected_subvariants") or []} + _expect( + "normal_doggy_all_fours_side_view" in doggy_all_fours_side_selected, + "Doggy all-fours side-view review manifest should record the reviewed route references", + ) + _expect( + len(doggy_all_fours_side_selected["normal_doggy_all_fours_side_view"].get("reference_images") or []) == 14, + "Doggy all-fours side-view reviewed subset should keep 14 references", + ) + + handjob_standing_side_manifest = prep_module.build_review_manifest("handjob standing - side view", page_size=40) + handjob_standing_side_selected = {str(item.get("variant_key")): item for item in handjob_standing_side_manifest.get("selected_subvariants") or []} + _expect( + "normal_handjob_standing_side_profile" in handjob_standing_side_selected, + "Handjob standing side-view review manifest should record the reviewed route references", + ) + _expect( + len(handjob_standing_side_selected["normal_handjob_standing_side_profile"].get("reference_images") or []) == 7, + "Handjob standing side-view reviewed subset should keep 7 references", + ) + + breast_sucking_side_manifest = prep_module.build_review_manifest("breast sucking - side view", page_size=40) + breast_sucking_side_selected = {str(item.get("variant_key")): item for item in breast_sucking_side_manifest.get("selected_subvariants") or []} + _expect( + "normal_breast_sucking_side_view" in breast_sucking_side_selected, + "Breast-sucking side-view review manifest should record the reviewed route references", + ) + _expect( + len(breast_sucking_side_selected["normal_breast_sucking_side_view"].get("reference_images") or []) == 15, + "Breast-sucking side-view reviewed subset should have 15 references", + ) + + standing_from_front_side_manifest = prep_module.build_review_manifest("fuck from front standing - side view", page_size=40) + standing_from_front_side_selected = {str(item.get("variant_key")): item for item in standing_from_front_side_manifest.get("selected_subvariants") or []} + _expect( + "normal_standing_from_front_side_view" in standing_from_front_side_selected, + "Standing from-front side-view review manifest should record the reviewed route references", + ) + _expect( + len(standing_from_front_side_selected["normal_standing_from_front_side_view"].get("reference_images") or []) == 3, + "Standing from-front side-view reviewed subset should keep 3 references", + ) + + doggy_generic_back_manifest = prep_module.build_review_manifest("doggy - back view - 3-4 angle", page_size=40) + doggy_generic_back_selected = {str(item.get("variant_key")): item for item in doggy_generic_back_manifest.get("selected_subvariants") or []} + _expect( + "normal_doggy_generic_back_three_quarter" in doggy_generic_back_selected, + "Doggy generic back-three-quarter review manifest should record the reviewed route references", + ) + _expect( + len(doggy_generic_back_selected["normal_doggy_generic_back_three_quarter"].get("reference_images") or []) == 15, + "Doggy generic back-three-quarter reviewed subset should have 15 references", + ) + + cowgirl_side_manifest = prep_module.build_review_manifest("cowgirl - side view", page_size=40) + cowgirl_side_selected = {str(item.get("variant_key")): item for item in cowgirl_side_manifest.get("selected_subvariants") or []} + _expect( + "normal_cowgirl_side_profile" in cowgirl_side_selected, + "Cowgirl side-view review manifest should record the reviewed route references", + ) + _expect( + len(cowgirl_side_selected["normal_cowgirl_side_profile"].get("reference_images") or []) == 15, + "Cowgirl side-view reviewed subset should have 15 references", + ) + + penis_worship_manifest = prep_module.build_review_manifest("penis worship", page_size=40) + penis_worship_selected = {str(item.get("variant_key")): item for item in penis_worship_manifest.get("selected_subvariants") or []} + _expect( + "normal_penis_worship_foreground_close_reference_folder_pool" in penis_worship_selected, + "Penis-worship review manifest should record the foreground-close source-pool anchor", + ) + _expect( + len(penis_worship_selected["normal_penis_worship_foreground_close_reference_folder_pool"].get("reference_images") or []) == 1, + "Penis-worship foreground-close source-pool anchor should keep 1 reference", + ) + _expect( + "normal_penis_worship_top_view" in penis_worship_selected, + "Penis-worship review manifest should record the top-view anchors", + ) + _expect( + len(penis_worship_selected["normal_penis_worship_top_view"].get("reference_images") or []) == 6, + "Penis-worship top-view anchor subset should keep 6 references", + ) + _expect( + "normal_penis_worship_side_view" in penis_worship_selected, + "Penis-worship review manifest should record the side-view anchors", + ) + _expect( + len(penis_worship_selected["normal_penis_worship_side_view"].get("reference_images") or []) == 8, + "Penis-worship side-view anchor subset should keep 8 references", + ) + _expect( + "normal_penis_worship_laying_partner_vertical_side_view" in penis_worship_selected, + "Penis-worship review manifest should record the laying-partner vertical side-view anchors", + ) + _expect( + len(penis_worship_selected["normal_penis_worship_laying_partner_vertical_side_view"].get("reference_images") or []) == 5, + "Penis-worship laying-partner vertical side-view anchor subset should keep 5 references", + ) + + standing_backside_side_manifest = prep_module.build_review_manifest( + "fuck from behind standing - woman backside - side view", page_size=40 + ) + _expect( + standing_backside_side_manifest.get("image_count") == 47, + "Standing backside side-view review manifest should cover all 47 JPGs", + ) + standing_backside_side_selected = { + str(item.get("variant_key")): item for item in standing_backside_side_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_doggy_standing_backside_side_view_folder_pool" in standing_backside_side_selected, + "Standing backside side-view review manifest should record the source-pool anchor", + ) + _expect( + len(standing_backside_side_selected["normal_doggy_standing_backside_side_view_folder_pool"].get("reference_images") or []) == 3, + "Standing backside side-view source-pool anchor should keep 3 references", + ) + _expect( + "normal_doggy_standing_backside_side_view" in standing_backside_side_selected, + "Standing backside side-view review manifest should record the reviewed route anchors", + ) + _expect( + len(standing_backside_side_selected["normal_doggy_standing_backside_side_view"].get("reference_images") or []) == 16, + "Standing backside side-view reviewed subset should keep 16 references", + ) + standing_backside_side_html = prep_module.build_contact_sheet_html( + "fuck from behind standing - woman backside - side view", page_size=40 + ) + _expect( + 'data-selected-variant="normal_doggy_standing_backside_side_view"' in standing_backside_side_html, + "Standing backside side-view contact sheet should mark reviewed route anchors", + ) + _expect( + 'data-selected-variant="normal_doggy_standing_backside_side_view_folder_pool"' in standing_backside_side_html, + "Standing backside side-view contact sheet should mark source-pool anchors", + ) + + doggy_all_fours_front_manifest = prep_module.build_review_manifest("doggy all four - front view", page_size=40) + _expect( + doggy_all_fours_front_manifest.get("image_count") == 28, + "Doggy all-fours front-view review manifest should cover all 28 JPGs", + ) + doggy_all_fours_front_selected = { + str(item.get("variant_key")): item for item in doggy_all_fours_front_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_doggy_all_fours_front_view" in doggy_all_fours_front_selected, + "Doggy all-fours front-view review manifest should record the reviewed route references", + ) + _expect( + len(doggy_all_fours_front_selected["normal_doggy_all_fours_front_view"].get("reference_images") or []) == 15, + "Doggy all-fours front-view reviewed subset should have 15 references", + ) + doggy_all_fours_front_html = prep_module.build_contact_sheet_html("doggy all four - front view", page_size=40) + _expect( + 'data-selected-variant="normal_doggy_all_fours_front_view"' in doggy_all_fours_front_html, + "Doggy all-fours front-view contact sheet should mark reviewed route references", + ) + + doggy_generic_front_manifest = prep_module.build_review_manifest("doggy - front view ", page_size=40) + _expect( + doggy_generic_front_manifest.get("folder") == "doggy - front view ", + "Doggy generic front-view review manifest should target the trailing-space source folder", + ) + _expect( + doggy_generic_front_manifest.get("image_count") == 13, + "Doggy generic front-view review manifest should cover all 13 JPGs", + ) + doggy_generic_front_selected = { + str(item.get("variant_key")): item for item in doggy_generic_front_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_doggy_generic_front_view" in doggy_generic_front_selected, + "Doggy generic front-view review manifest should record the reviewed route references", + ) + _expect( + len(doggy_generic_front_selected["normal_doggy_generic_front_view"].get("reference_images") or []) == 15, + "Doggy generic front-view reviewed subset should have 15 references", + ) + doggy_generic_front_html = prep_module.build_contact_sheet_html("doggy - front view ", page_size=40) + _expect("No-generation contact sheet" in doggy_generic_front_html, "Doggy generic front-view contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_doggy_generic_front_view"' in doggy_generic_front_html, + "Doggy generic front-view contact sheet should mark reviewed route references", + ) + + piledriver_manifest = prep_module.build_review_manifest("piledriver", page_size=40) + _expect(piledriver_manifest.get("image_count") == 27, "Piledriver review manifest should cover all 27 JPGs") + piledriver_selected = {str(item.get("variant_key")): item for item in piledriver_manifest.get("selected_subvariants") or []} + _expect( + "normal_piledriver_mixed_camera_folder_pool" in piledriver_selected, + "Piledriver review manifest should record the mixed source-pool anchor", + ) + _expect( + len(piledriver_selected["normal_piledriver_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Piledriver mixed source-pool anchor should keep 3 references", + ) + _expect( + "normal_piledriver_high_front_down_view" in piledriver_selected, + "Piledriver review manifest should record the high-front-down selected split", + ) + _expect( + len(piledriver_selected["normal_piledriver_high_front_down_view"].get("reference_images") or []) == 15, + "Piledriver high-front-down selected split should have 15 references", + ) + piledriver_html = prep_module.build_contact_sheet_html("piledriver", page_size=40) + _expect( + 'data-selected-variant="normal_piledriver_high_front_down_view"' in piledriver_html, + "Piledriver contact sheet should mark high-front-down selected references", + ) + _expect( + 'data-selected-variant="normal_piledriver_mixed_camera_folder_pool"' in piledriver_html, + "Piledriver contact sheet should mark mixed source-pool anchors", + ) + + blowjob_laying_front_manifest = prep_module.build_review_manifest("blowjob - laying - front view", page_size=40) + _expect( + blowjob_laying_front_manifest.get("image_count") == 26, + "Blowjob laying front-view review manifest should cover all 26 JPGs", + ) + blowjob_laying_front_selected = { + str(item.get("variant_key")): item for item in blowjob_laying_front_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_blowjob_laying_front_view" in blowjob_laying_front_selected, + "Blowjob laying front-view review manifest should record the reviewed route references", + ) + _expect( + len(blowjob_laying_front_selected["normal_blowjob_laying_front_view"].get("reference_images") or []) == 15, + "Blowjob laying front-view reviewed subset should have 15 references", + ) + blowjob_laying_front_html = prep_module.build_contact_sheet_html("blowjob - laying - front view", page_size=40) + _expect( + 'data-selected-variant="normal_blowjob_laying_front_view"' in blowjob_laying_front_html, + "Blowjob laying front-view contact sheet should mark reviewed route references", + ) + + breast_contact_front_manifest = prep_module.build_review_manifest("breast - touching - front view", page_size=40) + _expect( + breast_contact_front_manifest.get("image_count") == 25, + "Breast-contact front-view review manifest should cover all 25 JPGs", + ) + breast_contact_front_selected = { + str(item.get("variant_key")): item for item in breast_contact_front_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_breast_contact_front_view" in breast_contact_front_selected, + "Breast-contact front-view review manifest should record the reviewed route references", + ) + _expect( + len(breast_contact_front_selected["normal_breast_contact_front_view"].get("reference_images") or []) == 15, + "Breast-contact front-view reviewed subset should have 15 references", + ) + breast_contact_front_html = prep_module.build_contact_sheet_html("breast - touching - front view", page_size=40) + _expect( + 'data-selected-variant="normal_breast_contact_front_view"' in breast_contact_front_html, + "Breast-contact front-view contact sheet should mark reviewed route references", + ) + + reverse_congress_front_manifest = prep_module.build_review_manifest("reverse congress - front view", page_size=40) + _expect( + reverse_congress_front_manifest.get("image_count") == 21, + "Reverse-congress front-view review manifest should cover all 21 JPGs", + ) + reverse_congress_front_selected = { + str(item.get("variant_key")): item for item in reverse_congress_front_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_reverse_congress_front_view" in reverse_congress_front_selected, + "Reverse-congress front-view review manifest should record the reviewed route references", + ) + _expect( + len(reverse_congress_front_selected["normal_reverse_congress_front_view"].get("reference_images") or []) == 15, + "Reverse-congress front-view reviewed subset should have 15 references", + ) + reverse_congress_front_html = prep_module.build_contact_sheet_html("reverse congress - front view", page_size=40) + _expect( + 'data-selected-variant="normal_reverse_congress_front_view"' in reverse_congress_front_html, + "Reverse-congress front-view contact sheet should mark reviewed route references", + ) + + boobjob_manifest = prep_module.build_review_manifest("boobjob", page_size=40) + _expect(boobjob_manifest.get("folder") == "boobjob", "Boobjob review manifest should target boobjob") + _expect(boobjob_manifest.get("image_count") == 19, "Boobjob review should cover all 19 JPGs") + boobjob_selected = { + str(item.get("variant_key")): item for item in boobjob_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_boobjob_front_close_mixed_camera_folder_pool" in boobjob_selected, + "Boobjob review manifest should record the mixed source-pool anchor", + ) + _expect( + boobjob_selected["normal_boobjob_front_close_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Boobjob mixed source-pool anchor should stay needs_samples", + ) + _expect( + len(boobjob_selected["normal_boobjob_front_close_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Boobjob mixed source-pool anchor should keep 3 references", + ) + _expect( + "normal_boobjob_front_close_view" in boobjob_selected, + "Boobjob review manifest should record the front-close selected split", + ) + _expect( + boobjob_selected["normal_boobjob_front_close_view"].get("status") == "pre_ab_candidate", + "Boobjob front-close selected split should be pre-A/B", + ) + _expect( + len(boobjob_selected["normal_boobjob_front_close_view"].get("reference_images") or []) == 12, + "Boobjob front-close selected split should have 12 references", + ) + boobjob_html = prep_module.build_contact_sheet_html("boobjob", page_size=40) + _expect("No-generation contact sheet" in boobjob_html, "Boobjob contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_boobjob_front_close_mixed_camera_folder_pool"' in boobjob_html, + "Boobjob contact sheet should mark mixed source-pool anchors", + ) + _expect( + 'data-selected-variant="normal_boobjob_front_close_view"' in boobjob_html, + "Boobjob contact sheet should mark front-close selected references", + ) + + fingering_manifest = prep_module.build_review_manifest("fingering", page_size=40) + _expect(fingering_manifest.get("folder") == "fingering", "Fingering review manifest should target fingering") + _expect(fingering_manifest.get("image_count") == 15, "Fingering review should cover all 15 JPGs") + fingering_selected = { + str(item.get("variant_key")): item for item in fingering_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_fingering_mixed_camera_folder_pool" in fingering_selected, + "Fingering review manifest should record the mixed source-pool anchor", + ) + _expect( + fingering_selected["normal_fingering_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Fingering mixed source-pool anchor should stay needs_samples", + ) + _expect( + len(fingering_selected["normal_fingering_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Fingering mixed source-pool anchor should keep 3 references", + ) + _expect( + "normal_fingering_reclined_front_view" in fingering_selected, + "Fingering review manifest should record the reclined front-view selected split", + ) + _expect( + fingering_selected["normal_fingering_reclined_front_view"].get("status") == "pre_ab_candidate", + "Fingering reclined front-view selected split should be pre-A/B", + ) + _expect( + len(fingering_selected["normal_fingering_reclined_front_view"].get("reference_images") or []) == 10, + "Fingering reclined front-view selected split should have 10 references", + ) + fingering_html = prep_module.build_contact_sheet_html("fingering", page_size=40) + _expect("No-generation contact sheet" in fingering_html, "Fingering contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_fingering_mixed_camera_folder_pool"' in fingering_html, + "Fingering contact sheet should mark mixed source-pool anchors", + ) + _expect( + 'data-selected-variant="normal_fingering_reclined_front_view"' in fingering_html, + "Fingering contact sheet should mark reclined front-view selected references", + ) + + sixty_nine_manifest = prep_module.build_review_manifest("69", page_size=40) + _expect(sixty_nine_manifest.get("folder") == "69", "Sixty-nine review manifest should target 69") + _expect(sixty_nine_manifest.get("image_count") == 10, "Sixty-nine review should cover all 10 JPGs") + sixty_nine_selected = { + str(item.get("variant_key")): item for item in sixty_nine_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_sixty_nine_mixed_camera_folder_pool" in sixty_nine_selected, + "Sixty-nine review manifest should record the mixed source-pool anchor", + ) + _expect( + sixty_nine_selected["normal_sixty_nine_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Sixty-nine mixed source-pool anchor should stay needs_samples", + ) + _expect( + len(sixty_nine_selected["normal_sixty_nine_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Sixty-nine mixed source-pool anchor should keep 3 references", + ) + _expect( + "normal_sixty_nine_front_close_view" in sixty_nine_selected, + "Sixty-nine review manifest should record the front-close selected split", + ) + _expect( + sixty_nine_selected["normal_sixty_nine_front_close_view"].get("status") == "pre_ab_candidate", + "Sixty-nine front-close selected split should be pre-A/B", + ) + _expect( + len(sixty_nine_selected["normal_sixty_nine_front_close_view"].get("reference_images") or []) == 7, + "Sixty-nine front-close selected split should have 7 references", + ) + sixty_nine_html = prep_module.build_contact_sheet_html("69", page_size=40) + _expect("No-generation contact sheet" in sixty_nine_html, "Sixty-nine contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_sixty_nine_mixed_camera_folder_pool"' in sixty_nine_html, + "Sixty-nine contact sheet should mark mixed source-pool anchors", + ) + _expect( + 'data-selected-variant="normal_sixty_nine_front_close_view"' in sixty_nine_html, + "Sixty-nine contact sheet should mark front-close selected references", + ) + + wand_manifest = prep_module.build_review_manifest("wand", page_size=40) + _expect(wand_manifest.get("folder") == "wand", "Wand review manifest should target wand") + _expect(wand_manifest.get("image_count") == 9, "Wand review should cover all 9 JPGs") + wand_selected = { + str(item.get("variant_key")): item for item in wand_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_wand_mixed_camera_folder_pool" in wand_selected, + "Wand review manifest should record the mixed source-pool anchor", + ) + _expect( + wand_selected["normal_wand_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Wand mixed source-pool anchor should stay needs_samples", + ) + _expect( + len(wand_selected["normal_wand_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Wand mixed source-pool anchor should keep 3 references", + ) + _expect( + "normal_wand_front_close_view" in wand_selected, + "Wand review manifest should record the front-close selected split", + ) + _expect( + wand_selected["normal_wand_front_close_view"].get("status") == "pre_ab_candidate", + "Wand front-close selected split should be pre-A/B", + ) + _expect( + len(wand_selected["normal_wand_front_close_view"].get("reference_images") or []) == 7, + "Wand front-close selected split should have 7 references", + ) + wand_html = prep_module.build_contact_sheet_html("wand", page_size=40) + _expect("No-generation contact sheet" in wand_html, "Wand contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_wand_mixed_camera_folder_pool"' in wand_html, + "Wand contact sheet should mark mixed source-pool anchors", + ) + _expect( + 'data-selected-variant="normal_wand_front_close_view"' in wand_html, + "Wand contact sheet should mark front-close selected references", + ) + + ballsucking_standing_manifest = prep_module.build_review_manifest("ballsucking - standing", page_size=40) + _expect( + ballsucking_standing_manifest.get("folder") == "ballsucking - standing", + "Ballsucking standing review manifest should target ballsucking - standing", + ) + _expect( + ballsucking_standing_manifest.get("image_count") == 12, + "Ballsucking standing review should cover all 12 JPGs", + ) + ballsucking_standing_selected = { + str(item.get("variant_key")): item for item in ballsucking_standing_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_ballsucking_standing_partner_mixed_camera_folder_pool" in ballsucking_standing_selected, + "Ballsucking standing review manifest should record the mixed source-pool anchor", + ) + _expect( + ballsucking_standing_selected["normal_ballsucking_standing_partner_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Ballsucking standing mixed source-pool anchor should stay needs_samples", + ) + _expect( + len(ballsucking_standing_selected["normal_ballsucking_standing_partner_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Ballsucking standing mixed source-pool anchor should keep 3 references", + ) + _expect( + "normal_ballsucking_standing_low_side_view" in ballsucking_standing_selected, + "Ballsucking standing review manifest should record the low-side selected split", + ) + _expect( + ballsucking_standing_selected["normal_ballsucking_standing_low_side_view"].get("status") == "pre_ab_candidate", + "Ballsucking standing low-side selected split should be pre-A/B", + ) + _expect( + len(ballsucking_standing_selected["normal_ballsucking_standing_low_side_view"].get("reference_images") or []) == 11, + "Ballsucking standing low-side selected split should have 11 references", + ) + ballsucking_standing_html = prep_module.build_contact_sheet_html("ballsucking - standing", page_size=40) + _expect("No-generation contact sheet" in ballsucking_standing_html, "Ballsucking standing contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_ballsucking_standing_partner_mixed_camera_folder_pool"' in ballsucking_standing_html, + "Ballsucking standing contact sheet should mark mixed source-pool anchors", + ) + _expect( + 'data-selected-variant="normal_ballsucking_standing_low_side_view"' in ballsucking_standing_html, + "Ballsucking standing contact sheet should mark low-side selected references", + ) + + face_sitting_manifest = prep_module.build_review_manifest("face sitting", page_size=40) + _expect(face_sitting_manifest.get("folder") == "face sitting", "Face-sitting review manifest should target face sitting") + _expect(face_sitting_manifest.get("image_count") == 4, "Face-sitting review should cover all 4 JPGs") + face_sitting_selected = { + str(item.get("variant_key")): item for item in face_sitting_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_face_sitting_mixed_camera_folder_pool" in face_sitting_selected, + "Face-sitting review manifest should record the mixed source-pool anchor", + ) + _expect( + face_sitting_selected["normal_face_sitting_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Face-sitting mixed source-pool anchor should stay needs_samples", + ) + _expect( + face_sitting_selected["normal_face_sitting_mixed_camera_folder_pool"].get("review_bucket") == "reject_or_unclear", + "Face-sitting mixed source-pool anchor should stay in the reject/unclear review bucket", + ) + _expect( + len(face_sitting_selected["normal_face_sitting_mixed_camera_folder_pool"].get("reference_images") or []) == 4, + "Face-sitting mixed source-pool anchor should keep all 4 references", + ) + face_sitting_html = prep_module.build_contact_sheet_html("face sitting", page_size=40) + _expect("No-generation contact sheet" in face_sitting_html, "Face-sitting contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_face_sitting_mixed_camera_folder_pool"' in face_sitting_html, + "Face-sitting contact sheet should mark mixed source-pool anchors", + ) + + pussy_licking_backview_manifest = prep_module.build_review_manifest("pussy licking - backv iew", page_size=40) + _expect( + pussy_licking_backview_manifest.get("folder") == "pussy licking - backv iew", + "Pussy-licking back-view review manifest should target pussy licking - backv iew", + ) + _expect( + pussy_licking_backview_manifest.get("image_count") == 3, + "Pussy-licking back-view review should cover all 3 JPGs", + ) + pussy_licking_backview_selected = { + str(item.get("variant_key")): item for item in pussy_licking_backview_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_pussy_licking_backview_mixed_camera_folder_pool" in pussy_licking_backview_selected, + "Pussy-licking back-view review manifest should record the mixed source-pool anchor", + ) + _expect( + pussy_licking_backview_selected["normal_pussy_licking_backview_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Pussy-licking back-view mixed source-pool anchor should stay needs_samples", + ) + _expect( + pussy_licking_backview_selected["normal_pussy_licking_backview_mixed_camera_folder_pool"].get("review_bucket") == "reject_or_unclear", + "Pussy-licking back-view mixed source-pool anchor should stay in the reject/unclear review bucket", + ) + _expect( + len(pussy_licking_backview_selected["normal_pussy_licking_backview_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Pussy-licking back-view mixed source-pool anchor should keep all 3 references", + ) + pussy_licking_backview_html = prep_module.build_contact_sheet_html("pussy licking - backv iew", page_size=40) + _expect( + "No-generation contact sheet" in pussy_licking_backview_html, + "Pussy-licking back-view contact sheet lost no-generation scope", + ) + _expect( + 'data-selected-variant="normal_pussy_licking_backview_mixed_camera_folder_pool"' in pussy_licking_backview_html, + "Pussy-licking back-view contact sheet should mark mixed source-pool anchors", + ) + + removing_pants_manifest = prep_module.build_review_manifest("removing pants", page_size=40) + _expect(removing_pants_manifest.get("folder") == "removing pants", "Removing-pants review manifest should target removing pants") + _expect(removing_pants_manifest.get("image_count") == 3, "Removing-pants review should cover all 3 JPGs") + removing_pants_selected = { + str(item.get("variant_key")): item for item in removing_pants_manifest.get("selected_subvariants") or [] + } + _expect( + "normal_removing_pants_mixed_camera_folder_pool" in removing_pants_selected, + "Removing-pants review manifest should record the mixed source-pool anchor", + ) + _expect( + removing_pants_selected["normal_removing_pants_mixed_camera_folder_pool"].get("status") == "needs_samples", + "Removing-pants mixed source-pool anchor should stay needs_samples", + ) + _expect( + removing_pants_selected["normal_removing_pants_mixed_camera_folder_pool"].get("review_bucket") == "reject_or_unclear", + "Removing-pants mixed source-pool anchor should stay in the reject/unclear review bucket", + ) + _expect( + len(removing_pants_selected["normal_removing_pants_mixed_camera_folder_pool"].get("reference_images") or []) == 3, + "Removing-pants mixed source-pool anchor should keep all 3 references", + ) + removing_pants_html = prep_module.build_contact_sheet_html("removing pants", page_size=40) + _expect("No-generation contact sheet" in removing_pants_html, "Removing-pants contact sheet lost no-generation scope") + _expect( + 'data-selected-variant="normal_removing_pants_mixed_camera_folder_pool"' in removing_pants_html, + "Removing-pants contact sheet should mark mixed source-pool anchors", + ) + for folder, (variant_key, expected_count) in thin_batch_pool_expectations.items(): + manifest = prep_module.build_review_manifest(folder, page_size=40) + _expect(manifest.get("folder") == folder, f"{folder} review manifest should target {folder}") + _expect(manifest.get("image_count") == expected_count, f"{folder} review should cover all {expected_count} JPGs") + selected = {str(item.get("variant_key")): item for item in manifest.get("selected_subvariants") or []} + _expect(variant_key in selected, f"{folder} review manifest should record the mixed source-pool anchor") + _expect(selected[variant_key].get("status") == "needs_samples", f"{folder} mixed source-pool anchor should stay needs_samples") + _expect( + selected[variant_key].get("review_bucket") == "reject_or_unclear", + f"{folder} mixed source-pool anchor should stay in the reject/unclear review bucket", + ) + _expect( + len(selected[variant_key].get("reference_images") or []) == expected_count, + f"{folder} mixed source-pool anchor should keep all {expected_count} references", + ) + html = prep_module.build_contact_sheet_html(folder, page_size=40) + _expect("No-generation contact sheet" in html, f"{folder} contact sheet lost no-generation scope") + _expect( + f'data-selected-variant="{variant_key}"' in html, + f"{folder} contact sheet should mark mixed source-pool anchors", + ) + + anal_manifest = prep_module.build_review_manifest("anal random", page_size=40) + anal_selected = {str(item.get("variant_key")): item for item in anal_manifest.get("selected_subvariants") or []} + _expect( + "normal_anal_random_back_side_offset_view" in anal_selected, + "Anal-random review manifest should record the back-side-offset selected subset", + ) + _expect( + len(anal_selected["normal_anal_random_back_side_offset_view"].get("reference_images") or []) == 12, + "Anal-random back-side-offset subset should have 12 references", + ) + + pussy_manifest = prep_module.build_review_manifest("pussy spread", page_size=40) + pussy_selected = {str(item.get("variant_key")): item for item in pussy_manifest.get("selected_subvariants") or []} + _expect( + "normal_display_front_open_leg_side_offset_view" in pussy_selected, + "Pussy-spread review manifest should record the side-offset selected subset", + ) + _expect( + len(pussy_selected["normal_display_front_open_leg_side_offset_view"].get("reference_images") or []) == 12, + "Pussy-spread side-offset subset should have 12 references", + ) + + cowgirl_back_manifest = prep_module.build_review_manifest("cowgirl - back view - 3-4 angle", page_size=40) + _expect(cowgirl_back_manifest.get("folder") == "cowgirl - back view - 3-4 angle", "Cowgirl back-three-quarter review manifest should target the source folder") + _expect(cowgirl_back_manifest.get("image_count") == 129, "Cowgirl back-three-quarter review should cover all 129 JPGs") + _expect(len(cowgirl_back_manifest.get("contact_sheet_pages") or []) == 4, "Cowgirl back-three-quarter review should be paged at 40 images per sheet") + cowgirl_back_selected = {str(item.get("variant_key")): item for item in cowgirl_back_manifest.get("selected_subvariants") or []} + _expect( + "normal_cowgirl_back_three_quarter" in cowgirl_back_selected, + "Cowgirl back-three-quarter review manifest should record the reviewed route references", + ) + _expect( + len(cowgirl_back_selected["normal_cowgirl_back_three_quarter"].get("reference_images") or []) == 15, + "Cowgirl back-three-quarter reviewed subset should have 15 references", + ) + cowgirl_back_html = prep_module.build_contact_sheet_html("cowgirl - back view - 3-4 angle", page_size=40) + _expect("cowgirl - back view - 3-4 angle/0002.jpg" in cowgirl_back_html, "Cowgirl back-three-quarter contact sheet lost first selected image") + _expect('data-selected-variant="normal_cowgirl_back_three_quarter"' in cowgirl_back_html, "Cowgirl back-three-quarter contact sheet should mark reviewed references") + + rear_body_manifest = prep_module.build_review_manifest("woman solo showing her hass - back view", page_size=40) + _expect(rear_body_manifest.get("folder") == "woman solo showing her hass - back view", "Rear-body display review manifest should target the source folder") + _expect(rear_body_manifest.get("image_count") == 99, "Rear-body display review should cover all 99 JPGs") + _expect(len(rear_body_manifest.get("contact_sheet_pages") or []) == 3, "Rear-body display review should be paged at 40 images per sheet") + rear_body_selected = {str(item.get("variant_key")): item for item in rear_body_manifest.get("selected_subvariants") or []} + _expect( + "normal_display_rear_body_standing_back_view" in rear_body_selected, + "Rear-body display review manifest should record the standing back-view selected subset", + ) + _expect( + len(rear_body_selected["normal_display_rear_body_standing_back_view"].get("reference_images") or []) == 12, + "Rear-body standing back-view subset should have 12 references", + ) + rear_body_html = prep_module.build_contact_sheet_html("woman solo showing her hass - back view", page_size=40) + _expect("woman solo showing her hass - back view/0001.jpg" in rear_body_html, "Rear-body display contact sheet lost first image") + _expect('data-selected-variant="normal_display_rear_body_standing_back_view"' in rear_body_html, "Rear-body display contact sheet should mark standing back-view references") + + couple_manifest = prep_module.build_review_manifest("couple kissing", page_size=40) + _expect(couple_manifest.get("folder") == "couple kissing", "Couple-kissing review manifest should target couple kissing") + _expect(couple_manifest.get("image_count") == 88, "Couple-kissing review should cover all 88 JPGs") + _expect(len(couple_manifest.get("contact_sheet_pages") or []) == 3, "Couple-kissing review should be paged at 40 images per sheet") + couple_selected = {str(item.get("variant_key")): item for item in couple_manifest.get("selected_subvariants") or []} + _expect( + "normal_couple_kissing_upright_side_profile" in couple_selected, + "Couple-kissing review manifest should record the upright side-profile selected subset", + ) + _expect( + len(couple_selected["normal_couple_kissing_upright_side_profile"].get("reference_images") or []) == 12, + "Couple-kissing upright side-profile subset should have 12 references", + ) + couple_html = prep_module.build_contact_sheet_html("couple kissing", page_size=40) + _expect("couple kissing/0001.jpg" in couple_html, "Contact sheet lost first couple-kissing image") + _expect('data-review-bucket="side_view"' in couple_html, "Couple-kissing contact sheet should mark selected side-view references") + _expect('data-selected-variant="normal_couple_kissing_upright_side_profile"' in couple_html, "Couple-kissing contact sheet should mark selected side-profile references") def _atlas_variant_include_key(variant_key: str) -> str: @@ -17258,6 +19721,8 @@ SMOKE_CASES: list[tuple[str, Callable[[], None]]] = [ ("pov_camera_scene", smoke_pov_camera_scene), ("krea2_pov_pose_variant_catalog", smoke_krea2_pov_pose_variant_catalog), ("normal_camera_atlas_catalog", smoke_normal_camera_atlas_catalog), + ("normal_camera_atlas_prep_artifacts", smoke_normal_camera_atlas_prep_artifacts), + ("normal_camera_unused_pool_review_artifacts", smoke_normal_camera_unused_pool_review_artifacts), ("krea2_pov_atlas_variant_prompt_routes", smoke_krea2_pov_atlas_variant_prompt_routes), ("krea2_pose_variant_catalog_policy", smoke_krea2_pose_variant_catalog_policy), ("krea2_eval_log_policy", smoke_krea2_eval_log_policy),