Tuning a Model for Tone Instead of Truth
Roastmaster looks at your selfie and insults you. The vision was the easy half.
Roastmaster takes a selfie and roasts you. You upload a photo, it looks at it properly, and it says something unkind enough to be worth screenshotting.
I assumed the hard part would be the vision. It was not. Vision models are very good now. Ask one what is in a photo and you get the hair, the clothes, the expression, the lighting, and the pile of laundry in the background, all correctly identified.
Correct descriptions are not funny. That was the actual project.
Funny is a narrow band with a cliff on each side
Too soft and you get a compliment wearing a costume. “Nice shirt, bold choice.” Nobody screenshots that.
Too hard and it stops being a joke. The model is perfectly capable of finding the cruellest true thing in a photograph, and when it does, the product is not fun any more. It is just mean, and the person closes the tab.
The band between those is narrow, and here is the uncomfortable bit: the thing that makes a roast land is specificity, and specificity is also exactly what makes it cross the line. Generic is safe and boring. Specific is funny and dangerous. You cannot get the humour by turning the intensity down, because turning it down lands you back in bland.
Draw the line at choices, not at people
What finally worked was not a dial at all. It was a rule about targets.
Roast the choices. Clothes, pose, the deliberate face someone is pulling, the framing, the background, the lighting they picked, the obvious effort. Never the things a person did not choose and cannot change: body, features, apparent age, anything that reads as ethnicity.
I put that in as an ethical guardrail and then discovered it was also just better comedy. Choices are funnier. A roast about the specific decision to angle a webcam upward from your lap has a point of view. A roast about someone’s face is not observational, it is only nasty, and it is the lazy option the model reaches for when you give it nothing else to aim at.
Constraint did not cost me humour. It was the thing that produced the humour, because it forced the model onto the one target that is actually a joke.
What I took from it
“Make it funny” is not a specification. Tone has to be defined as concrete rules about what is in bounds, not as an adjective and a temperature setting.
Guardrails and quality point the same way more often than you expect. The safe version was also the sharper version. That is not always true, but it is true far more often than the tradeoff framing suggests.
Specify the target, not the intensity. Telling a model how hard to hit gets you bland or brutal. Telling it what to aim at gets you the joke.