I've seen some people struggling and asking how to get realistic outputs from Flux, and wanted to share the workflow I've used.
This not a technical guide.
I'm going very high level and metaphorical in this post. Almost everything is talking from the user perspective, while the backend reality is much more nuanced and complicated. There are lots of other resources if you're curious about the hard technical backend, and I encourage you to dive deeper when you're ready!
Shoutout to the article "FLUX is smarter than you!" by pyros_sd_models for giving me some context on how Flux tries to infer and use associated concepts.
Standard prompts from Flux 1 Dev
First thing to understand is how good Flux 1 Dev is, and how that increase in accuracy may break prior workflow knowledge that we've built up from years of older Stable Diffusion.
Without any prompt tinkering, we can directly ask Flux to give us an image, and it produces something very accurate.
Prompt: Photo of a beautiful woman smiling. Holding up a sign that says "KEEP THINGS REAL"
It gest the contents technically correct and the text is very accurate, especially for a diffusion image gen model!
Problem is that it doesn't feel real.
In the last couple of years, we've seen so many AI images this is clocked as 'off'. A good image gen AI is trained and targeted for high quality output. Flux isn't an exception; on a technical level, this photo is arguably hitting the highest quality.
The lighting, framing posing, skin and setting? They're all too good. Too polished and shiny.
This looks like a supermodel professionally photographed, not a casual real person taking a photo themselves.
Making it better by making it worse
We need to compensate for this by making the image technically worse. We're not looking for a supermodel from a Vouge fashion shoot, we're aiming for a real person taking a real photo they'd post online or send to their friends.
Luckily, Flux Dev is still up the task. You just need to give it permission and guidance to make a worse photo.
Prompt: A verification selfie webcam pic of an attractive woman smiling. Holding up a sign written in blue ballpoint pen that says "KEEP THINGS REAL" on an crumpled index card with one hand. Potato quality. Indoors, night, Low light, no natural light. Compressed. Reddit selfie. Low quality.
Immediately, it's much more realistic. Let's focus on what changed:
We insist that the quality is lowered, using terms that would be in it's training data.
Literal tokens of poor quality like
compression
andlow light
Fuzzy associated tokens like
potato quality
andwebcam
We remove any tokens that would be overly polished by association.
More obvious token phrases like
stunning
andperfect smile
Fuzzy terms that you can think through by association; ex. there are more professional and staged
cosplay
images online thanselfie
Hint at how the sign and setting would be more realistic.
People don't normally take selfies with posterboard, writing out messages in perfect marker strokes.
People don't normally take candid photos on empty beaches or in front of studio drop screens. Put our subject where it makes sense: bedrooms, living rooms, etc.
TLDR:
Flux will by default try to make images look polished and professional. You have to give it permission to make your outputs realistically flawed.
For every term that's even associated with high quality "professional photoshoot", you'll be dragging your output back to that shiny AI feel; find your balance!
Edit: GarethEss on Reddit has pointed out that turning down the generation strength also greatly helps complement all this advice!