By Shehab Waleed, Founder, Cairo Studio 3 min read
When we generate photographs with an image model, we use one fixed treatment that sets the film stock, the light and the palette. We write a new scene for each image and leave the treatment alone, so a series reads as one body of work.
In October, during one image project, the same faults kept coming back: a shirtless man, a blonde bystander, a poster with a face on it. So we added one sentence to the treatment to rule them out.
no bare chests, no blonde hair, no printed
photographs or pictures of faces, every paper blank
The next 93 images were full of shirtless men, blonde heads and posters of faces. We took the sentence out, and the faults went back to their usual rate.
Why naming a thing invites it
An image model like this one is steered by the words in the prompt. No blonde hair contains blonde hair, and the model follows what the words describe far more reliably than it understands that one of them cancels the rest. A list of things to avoid works like a shopping list.
That is our working explanation, not a proven one. Some tools have a separate negative prompt field that is handled differently, and models differ. Our base treatment also still contains a few negatives from before we learned this. It works as a whole, so we leave it untouched and stopped adding to it.
Write the scene you want
So we describe what should be there instead of what should not. When a scene kept producing shirtless men, the fix was to dress them. When crowds brought blonde bystanders, the fix was to empty the scene. When signs and boxes grew fake lettering, we swapped them for things that do not carry writing, like rolled fabric, bread and rope.
We run generations from a command line tool, with the scene and the fixed treatment joined into one prompt.
higgsfield generate create text2image_soul_v2 \
--aspect_ratio 16:9 --quality 2k \
--prompt "$SCENE $TREATMENT"
Every image is reviewed
Writing positively lowers the failure rate. It does not remove it. We generate two takes of every photo and review them side by side on a contact sheet, looking for the same short list: fake lettering, pale or blonde people, sharp faces looking at the camera, and extra hands.
In a recent batch of 20 photos, 8 needed a second round. That is close to the four in ten first take reject rate we have come to expect, and it is why no generated image goes out without a person looking at it first.
The same rules hold for any system that writes prompts for a model, including the chat and automation tools we build for clients. Say what you want, keep the fixed parts fixed, and put a check between the model and anything public.
