diff --git a/image_actions.py b/image_actions.py index cc176cc..ff9b48b 100644 --- a/image_actions.py +++ b/image_actions.py @@ -171,6 +171,15 @@ CAMERAS = { "wide environmental": "Wide framing with the subject small in a large, fully visible room.", } +CAMERA_STAGE = { + "three-quarter side": "The camera stands at the foot-left of the bed, three-quarters to the bodies: the woman's face and chest toward the camera, the man's back filling the upper-right, his hip and thigh in front of her pelvis.", + "side view, full bodies": "The camera is exactly side-on at bed height: both bodies in profile, the man's back to the right of frame, the woman under him facing left, her face toward the camera.", + "front view": "The camera is at the foot of the bed facing them: the woman's face and front toward the camera, the man seen from behind above her, his back and shoulders filling the upper frame.", + "from above, lying down": "The camera is directly above the bed looking down: the man's back on top, the woman's arms, legs and face visible around him.", + "POV": "The camera is the eyes of the person underneath looking up along their own body at the other person above them.", +} + + LIGHTING = { "auto": "", "soft window light": "Soft daylight from one window, gentle shadows falling away from it.", @@ -225,7 +234,7 @@ def labels_for(category): POSE_NOTES = { - "Sex - missionary": "The woman is BOTTOM, flat on her back, face up. The man is TOP, his chest above hers, hips between her thighs, his body covering hers, his back to the camera. Camera three-quarter side so his back and her face are both visible. NOT cowgirl, NOT sitting, NOT from behind, NOT her lying on him.", + "Sex - missionary": "The woman is BOTTOM, flat on her back, face up. The man is TOP, his chest above hers, hips between her thighs, his body covering hers, his back to the camera. They are on a plain white bed, not the chair from the source. His pelvis flush against hers, pubic bone to pubic bone, the shaft buried to the hilt with only the balls outside and the labia wrapped around its base. Camera three-quarter side so his back and her face are both visible. NOT cowgirl, NOT sitting, NOT from behind, NOT her lying on him.", "Sex - cowgirl": "The man is BOTTOM on his back. The woman is TOP, sitting astride him. NOT missionary, NOT standing.", "Sex - doggy style": "The woman is BOTTOM on hands and knees. The man kneels behind her. NOT her on her back.", "Sex - spooning": "Both lie on their sides, the man behind the woman's back. NOT sitting, NOT her on top.", @@ -260,6 +269,8 @@ def brief(action, people, camera="auto", place="auto", lighting="auto", outfit=" camera = "three-quarter side" if action in POSE_NOTES else "side view, full bodies" if camera != "auto": lines.append(f"Camera: {CAMERAS[camera]}") + if count == 2 and camera in CAMERA_STAGE: + lines.append(f"Camera stage: {CAMERA_STAGE[camera]}") if lighting != "auto": lines.append(f"Lighting: {LIGHTING[lighting]}") if outfit and outfit != "as in the image": diff --git a/moss_nodes.py b/moss_nodes.py index f633c53..bf20e62 100644 --- a/moss_nodes.py +++ b/moss_nodes.py @@ -111,6 +111,7 @@ class PROMPTFORGE_PromptLibrary: EDIT_LORAS = { "Krea 2": "Krea 2/tool/krea2_identity_edit_v2.safetensors", + "Krea 2 (general edit)": "Krea 2/tool/krea2_general_edit_v2.safetensors", "MOSS Image": "MOSS Image/tool/moss_image_edit_lora_rank_64_bf16.safetensors", } diff --git a/pyproject.toml b/pyproject.toml index 7e6cb8f..57fd176 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.37" +version = "1.28.38" license = { file = "LICENSE" } dependencies = [ "transformers",