Expand casual categories and clean prompt wording

This commit is contained in:
2026-06-24 11:38:57 +02:00
parent 3c28de3712
commit 4f14017b2a
5 changed files with 407 additions and 5 deletions
+20 -4
View File
@@ -55,18 +55,18 @@ GENERIC_POSITIVE_SUFFIX = (
SINGLE_TEMPLATE = (
"A {subject}: {style}, {age}, {body_phrase}, {skin}, {hair}, {eyes}. "
"{item_label}: {item}. Scene: {scene}. Pose: {pose}. Facial expression: {expression}. "
"Composition: vertical {composition}. {positive_suffix} Avoid: {negative_prompt}."
"Composition: {composition_prompt}. {positive_suffix} Avoid: {negative_prompt}."
)
COUPLE_TEMPLATE = (
"{subject_phrase}: {style}. Ages: {age}. Body types: {body}. {item_label}: {item}. "
"Scene: {scene}. Pose: {pose}. Facial expressions: {expression}. "
"Composition: vertical {composition}. {positive_suffix} Avoid: {negative_prompt}."
"Composition: {composition_prompt}. {positive_suffix} Avoid: {negative_prompt}."
)
GROUP_TEMPLATE = (
"{subject_phrase}: {style}, ages {age}, diverse adult body types. {item_label}: {item}. "
"Scene: {scene}. Facial expressions: {expression}. Composition: vertical {composition}. "
"Scene: {scene}. Facial expressions: {expression}. Composition: {composition_prompt}. "
"{positive_suffix} Avoid: {negative_prompt}."
)
@@ -1154,6 +1154,16 @@ def _body_phrase(body: Any, figure_note: Any = "") -> str:
return f"{body} figure with {figure_note}"
def _composition_prompt(composition: str) -> str:
composition = str(composition or "").strip()
if not composition:
return composition
lower = composition.lower()
if lower.startswith("vertical ") or " vertical " in lower or lower.endswith(" vertical"):
return composition
return f"vertical {composition}"
def _appearance_for_subject(
rng: random.Random,
subject_type: str,
@@ -1384,7 +1394,12 @@ def _role_graph(
man = any_man()
third = any_person({woman, man}) if people_count >= 3 else ""
if "oral" in slug:
graph = f"{woman} gives oral to {man} while {man} holds her hair and hips."
if "sixty-nine" in item_text or ("blowjob" in item_text and ("cunnilingus" in item_text or "pussy" in item_text)):
graph = f"{woman} and {man} are in mutual oral contact with mouth-to-genital contact visible."
elif any(term in item_text for term in ("cunnilingus", "pussy licking", "tongue on pussy", "mouth on pussy")):
graph = f"{man} gives oral to {woman} while {woman}'s thighs are held open for the camera."
else:
graph = f"{woman} gives oral to {man} while {man} holds her hair and hips."
elif "anal" in slug or "double" in slug:
if "double" in item_text or "toy" in item_text:
if people_count >= 3:
@@ -1794,6 +1809,7 @@ def _build_custom_row(
"expression": expression,
"expression_intensity": expression_intensity,
"composition": composition,
"composition_prompt": _composition_prompt(composition),
"role_graph": role_graph,
"positive_suffix": positive_suffix,
"negative_prompt": negative_prompt,