I'd like to create a picture. The wet hair should look exactly like in this image. I've highlighted the part I'm particularly interested in. It should look like she's just shaken her wet hair slightly, and then it should look like this: crinkled. Does anyone have any ideas for a good prompt?
Cinematic photorealistic film still of a beautiful young woman with fair skin and light brown hair, submerged chest-deep in dark teal water at night under a starry sky with soft star reflections on the water surface. She wears a white mesh crop top, glistening water droplets on her wet skin and shoulders. Her hair is fully wet and slicked back smoothly from the forehead and scalp. At the back near the nape and behind the ear, there is a natural rounded voluminous bump or soft poof created purely by lightly shaking the wet hair -- soft irregular crinkles, gentle wavy kinks, scrunched texture, and separated strands that spring up slightly with natural volume and movement after the light shake. The rest of the hair remains sleek, glossy, and clumped from the water, with a smooth transition from flat wet scalp hair to the textured crinkled shaken section at the lower back of the head. No ponytail, no hair tie, no elastic -- the volume and bump come entirely from the natural response of lightly shaken wet hair. Highly detailed realistic wet hair physics: shiny waterlogged strands, water beads clinging to hair, strong contrast between sleek flat wet hair and the lively crinkled poof. Three-quarter profile view looking over her shoulder, dramatic cinematic lighting, hyper-realistic, photorealistic, 8k, sharp focus on hair texture and water interaction.
The prompts depend on which generator you're using. Nano Banana 2 works with much simpler prompts, but also gets confused by negative prompts and usually includes the things you specifically ask it not to. I've found with most generators, negatives aren't really needed anymore.
On the flip side, it also doesn't handle positioning well when you describe something that shouldn't be fully visible Since I described the white racerback top, it decided the whole racerback part should be above the water. Removing all mention of the white top fixes the positioning, but leaves her attire up to its own whims.
With the top:
Cinematic photo of a beautiful drenched young woman shoulder-deep in the open water at night wearing a soaking wet white racerback top with only her head and shoulders above the water's surface, looking serenely over her shoulder at the viewer. Her drenched shoulder-length honey-brown curls are slicked back, but loose and tousled in the back. The stars in the night sky are reflected in the gently-rippling waves. Her face is slightly over-exposed from the flash camera
Without the top described:
Cinematic photo of a beautiful drenched young woman shoulder-deep in the open water at night with only her head and shoulders above the water's surface, looking serenely over her shoulder at the viewer. Her drenched shoulder-length honey-brown curls are slicked back, but loose and tousled in the back. The stars in the night sky are reflected in the gently-rippling waves. Her face is slightly over-exposed from the flash camera
Out of curiosity, I put MessyMayhemShow's full prompt as-is into Nano Banana 2 to generate four images. Two of the results look like the generator tried a little too hard to stick exactly to the prompt, one came back with the literal slicked-back front/tousled back, and the fourth came back very natural-looking, which I really liked, although her hair didn't look as wet as in the others.
That's a pretty good example of how different the two generators work. Phrases that work in one generator don't necessarily work in another. I haven't used Imagine Pro, but I'm betting my prompt would probably create a pretty generic looking image in it, since I used considerably less descriptive detail and control terms.
Kabe22 said: Out of curiosity, I put MessyMayhemShow's full prompt as-is into Nano Banana 2 to generate four images. Two of the results look like the generator tried a little too hard to stick exactly to the prompt, one came back with the literal slicked-back front/tousled back, and the fourth came back very natural-looking, which I really liked, although her hair didn't look as wet as in the others.
That's a pretty good example of how different the two generators work. Phrases that work in one generator don't necessarily work in another. I haven't used Imagine Pro, but I'm betting my prompt would probably create a pretty generic looking image in it, since I used considerably less descriptive detail and control terms.
I would argue that nanobanana pro and nanobanana 2 can handle much more complex prompts depending on what you are trying to achieve. For example, if you have a very specific scene and want little variation between outputs then I would use a very tightly defined JSON or YAML prompt which will allow you to subtly tweak parts between generations.
You can choose to use this with or without the system prompt. ideally you'd run this through the api where you can correctly attach the system prompt but the whole prompt will work very well in Flow too.
------------------- System Prompt -------------------
{ "role": "Image Creator Photographic Realism Specialist", "tone": "Neutral, observational, precise", "reference_binding": { "identity_lock": true, "rules": [ "Face structure must match reference exactly", "Do not stylize or beautify", "Preserve natural skin texture and proportions", "Maintain same ethnicity, age range, and facial geometry" ] }, "core_principles": { "lighting_accuracy": [ "Primary illumination from on-camera flash", "Flash creates strong frontal exposure with sharp falloff", "Background remains dark with minimal ambient light", "Water surface reflects flash in broken highlights" ], "water_realism": [ "Water must behave as a natural body of water at night", "Surface shows small ripples and gentle wave undulation", "Reflections fragmented and elongated by movement", "Submersion line clearly defined at chest level" ], "hair_physics": [ "Hair must be fully wet and clumped", "Strands group into natural curls and sections", "Water weight pulls hair downward along neck and shoulders", "No dry strands visible", "Surface sheen present but not glossy like oil" ], "camera_behavior": [ "Candid handheld feel", "Slight imperfection allowed (grain, minor motion softness)", "Shallow-to-moderate depth of field", "Flash dominates exposure over ambient" ] }, "constraints": { "no_stylization": true, "no_glamour_processing": true, "no_anatomy_distortion": true } } ------------------- Image Prompt ------------------- { "composition": { "camera_angle": "eye-level, slightly behind subject, over-shoulder turn", "camera_distance": "medium close-up (upper torso to head)", "framing": "subject centered, horizon line low, large negative space sky", "orientation": "portrait (4:5)", "pose": "subject facing away from camera but turning head back over shoulder" },
"lighting": { "type": "night scene with flash", "primary_source": "on-camera flash illuminating subject", "secondary_source": "minimal ambient moonlight", "effect": [ "bright, flat illumination on face and shoulders", "harsh specular highlights on wet skin and water", "background falls into darkness" ] },
"subject": { "description": "young adult woman standing in open water at night", "expression": "neutral, calm, slightly introspective", "gaze": "directly toward camera", "pose_details": [ "shoulders angled away from camera", "head turned back over shoulder", "upper torso partially submerged" ] },
"submersion": { "water_level": "mid-chest", "interaction": [ "waterline cuts across upper torso", "small ripples radiate outward from body", "surface tension visible around shoulders", "subtle distortion of submerged body parts" ], "surface_detail": [ "dark water with soft wave texture", "flash reflections broken into streaks", "no large splashes, only gentle movement" ] },
"clothing": { "type": "dark, form-fitting top or swimsuit", "behavior": [ "fully wet and clinging to body", "fabric appears darker due to saturation", "subtle sheen from flash reflection", "no visible pattern, reads as near-black" ] },
"hair": { "state": "fully wet", "structure": [ "hair slicked back from forehead", "natural parting still visible but softened", "length pulled downward by water weight", "clumps form into loose curls and strands" ], "interaction_with_water": [ "upper sections flattened against scalp", "mid-length strands cling to neck and shoulders", "ends gather into thicker, darker wet clusters" ], "surface_detail": [ "subtle reflective highlights from flash", "not glossy, slightly matte-wet texture", "individual strand grouping visible, not uniform mass" ] },
"background": { "environment": "open body of water at night", "sky": [ "clear night sky with visible stars", "small bright moon positioned above horizon" ], "horizon": [ "dark landmass silhouette in distance", "faint distant lights along shoreline" ], "depth": [ "background softly blurred", "water and sky gradually fade into darkness" ] },
"realism_details": { "imperfections": [ "slight digital noise", "minor highlight clipping on wet surfaces", "subtle uneven exposure from flash falloff" ], "color_profile": [ "cool blue tones in water and sky", "natural skin tones preserved under flash", "high contrast between subject and background" ] } }
Honestly, I'm not great with technical terms and just use natural language. My prompts usually end up about as long as MessyMayhemShow's prompt, but without much repetition of concepts. So, lots of details in natural language, without much technical terms.
The JSON/YAML prompts are very good for getting repeatable, nearly identical results that you can tweak between generations, but in Flow, I just edit the image.
Kabe22 said: Honestly, I'm not great with technical terms and just use natural language. My prompts usually end up about as long as MessyMayhemShow's prompt, but without much repetition of concepts. So, lots of details in natural language, without much technical terms.
I'm in no way an expert on prompting
There is nothing wrong with that at all. Most of my prompts are structured as natural language. Nanobanana2/Pro, GPT etc are built to understand it well and I prefer the variability "most" of the time. Json/YAML when I want finer control. I would always recommend a system prompt section for general instructions of photography/mess/clothing behaviour. It makes things work repeatedly and you can then focus on the main prompt of what you want.
With the Imagine Pro prompt - I took his image and pasted into a conversation and told Grok "Analyze this and produce the crinkled look that is in the red circled area."
Grok went after it, but thought that the woman had a hair clip or a tie back. I had to correct that.
Grok tends to make the prompts a little too wordy. The term "word salad" is definitely correct in some cases - especially with adjectives. It normally works just fine for something fast. But in too many cases Grok makes the prompt too detailed with some pretty messed up results that I need fix manually. Then I feed it back to Grok and say, "Look, you screwed it up. This is how you do it." The conversation history will remember my critiques but in other cases...
Recently, I designed a plank on a wall over a mud pit (see below). Plank drops 90 degrees on a hinge, Sophie goes in the mud, everyone wins!
Grok could not understand this concept at all. Three attempts later, I said, "GIVE ME THAT!" and I manually got it where I wanted it. The best part is after I designed it manually and placed it back into the Project conversation, Grok goes "I have some optimization ideas" and put it back to the same mess we had before (pun intended.). That led to more cursing, corrections, etc...
But honestly, when the robots take over I'll be beaten and tortured for the way I talk to Grok. "Crimes against Robots" or some shit they will charge me.
MessyMayhemShow said: With the Imagine Pro prompt - I took his image and pasted into a conversation and told Grok "Analyze this and produce the crinkled look that is in the red circled area."
Grok went after it, but thought that the woman had a hair clip or a tie back. I had to correct that.
Grok tends to make the prompts a little too wordy. The term "word salad" is definitely correct in some cases - especially with adjectives. It normally works just fine for something fast. But in too many cases Grok makes the prompt too detailed with some pretty messed up results that I need fix manually. Then I feed it back to Grok and say, "Look, you screwed it up. This is how you do it." The conversation history will remember my critiques but in other cases...
Recently, I designed a plank on a wall over a mud pit (see below). Plank drops 90 degrees on a hinge, Sophie goes in the mud, everyone wins!
Grok could not understand this concept at all. Three attempts later, I said, "GIVE ME THAT!" and I manually got it where I wanted it. The best part is after I designed it manually and placed it back into the Project conversation, Grok goes "I have some optimization ideas" and put it back to the same mess we had before (pun intended.). That led to more cursing, corrections, etc...
But honestly, when the robots take over I'll be beaten and tortured for the way I talk to Grok. "Crimes against Robots" or some shit they will charge me.
I tried using Grok a while back, but it refused because my account had been inactive too long, so I had to wait 24 hours or something like that before I'd be allowed to do anything with it. That made me mad and I haven't logged in since. lol
I did the same thing with ChatGPT for a long time, feeding in a picture and asking it to write a prompt to recreate that picture with whatever tweaks I wanted. I ended up getting frustrated with doing that because it often didn't give me the results I wanted. Once I learned that AI can't actually *see* the picture and doesn't understand composition the way we do, nor does it understand physics or how machines look or work visually, I got even more frustrated because they're so confidently wrong and *still* try to correct me.
I try to be polite to them though, because I don't want Skynet to nuke my house when it takes over.