diff --git a/image_actions.py b/image_actions.py index a397699..dde73f1 100644 --- a/image_actions.py +++ b/image_actions.py @@ -223,6 +223,15 @@ def labels_for(category): return [label for label, (_, group, _) in ACTIONS.items() if group == category] +POSE_NOTES = { + "Position - missionary": "She is on her back, he is above her between her legs; NOT cowgirl, NOT sitting, NOT from behind.", + "Position - cowgirl": "She is on top of him, he lies on his back; NOT missionary, NOT standing.", + "Position - doggy style": "She is on hands and knees, he kneels behind; NOT on her back.", + "Position - spooning": "Both lie on their sides, he is behind her back; NOT sitting.", + "Oral - cunnilingus": "She lies on her back, he kneels between her legs; NOT standing.", +} + + def brief(action, people, camera="auto", place="auto", lighting="auto", outfit="as in the image", style="auto", notes="", overrides="", source="input image", instructions=""): """The action block appended to the writer's user text.""" @@ -240,6 +249,10 @@ def brief(action, people, camera="auto", place="auto", lighting="auto", outfit=" lines.append("Keep the identity, face and body of the person from the input image unchanged.") if place != "auto": lines.append(f"Place: {PLACES[place]}") + if count == 2: + lines.append("Replace the source pose and furniture entirely: no chair, no upright sitting. Both bodies are horizontal on a bed or the floor unless the action says standing.") + if count == 2 and camera == "auto": + camera = "side view, full bodies" if camera != "auto": lines.append(f"Camera: {CAMERAS[camera]}") if lighting != "auto": @@ -254,6 +267,8 @@ def brief(action, people, camera="auto", place="auto", lighting="auto", outfit=" lines.append(f"Overrides: {overrides.strip()}") if action not in ("Position - footjob", "Position - intercrural, between the thighs", "Position - standing 69", "Position - scissoring"): lines.append("Show the point where the bodies join.") + if action in POSE_NOTES: + lines.append(f"Pose: {POSE_NOTES[action]}") if instructions.strip(): lines.append(f"Extra instructions: {instructions.strip()}") lines.append("The pose is exactly this arrangement, held still as one frozen frame; do not change it or add another subject. Expand the arrangement with concrete visual detail while keeping every element exactly.") diff --git a/pyproject.toml b/pyproject.toml index 556bf04..30f6036 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "ComfyUI-PromptForge" description = "ComfyUI prompt enhancement suite: model/config node with GPU-aware auto settings, prompt enhancer with a preset catalog, and a standalone config finder." -version = "1.28.28" +version = "1.28.29" license = { file = "LICENSE" } dependencies = [ "transformers",