#E4002B, and why asking does not work
A brand guideline says the red is #E4002B. You put that in the prompt. You get a red. It is not that red, and it is not the same red twice.
The reason is structural. The prompt goes through a text encoder that turns it into a semantic embedding: a representation of meaning. “#E4002B” is tokenised into fragments that carry no reliable meaning, and even “crimson red” is a region of colour space rather than a coordinate. The model then denoises toward an image consistent with that meaning, with every pixel influenced by lighting, material, white balance and the rest of the scene. There is no path in that architecture by which a specific RGB triple can be requested.
This is worth understanding rather than just accepting, because it tells you where the control actually is: after generation, in pixel space, where a colour is just a number you can set.
Four ways to get the exact colour
One: generate neutral, grade after. The most reliable method. Generate the scene with the element in a plain, slightly desaturated version of the colour, then correct it in an editor. In GIMP or Photopea, select the region, and use Curves or Hue-Saturation to move it. For a flat surface, a solid-colour layer in Colour blend mode over a mask lands the value exactly while keeping the original shading.
Two: composite the element. If the brand colour belongs to an object with a defined shape (a packet, a bottle, a chair) put the real thing in. This is the product workflow from later in the course and it solves colour as a side effect.
Three: condition on a colour block. Paint flat shapes of the right colours in GIMP or Krita, then run that image through img2img at low denoise, around 0.3 to 0.45. The composition and palette survive; the model adds material and light. This is the best method when the brand colour must be distributed across a whole scene rather than on one object.
Four: accept approximate and say so. For background atmosphere and incidental colour, “in the region of the brand palette” is usually fine, and pretending otherwise creates work nobody asked for. Ask which elements are strictly specified. Usually it is two.
The thing that surprises people
Even after you set the exact hex, it will look wrong in context. A pure brand red surrounded by warm generated light reads as orange-shifted; the same red on a cool background reads pink. This is simultaneous contrast and it is a property of human vision, not a colour error.
Which means grading the whole image matters as much as the swatch. If the generated scene is warm and the brand palette is cool, you either grade the scene toward the palette or you have a permanent argument about whether the colour is right. Do that first and match the specific element second.
Print makes it worse, and it is better to know now
If the image is going to print, the brand colour may be defined as a spot ink that no CMYK press can reproduce, let alone your screen. A vivid brand orange or a deep navy frequently shifts visibly when converted. That is a standard print problem rather than a generation problem, and the vector-and-print course in this catalogue covers the conversion properly, but the timing matters here: you want to know before you spend two hours matching a screen colour that the press cannot hit.
A free toolchain that does all of this
None of it needs paid software.
- GIMP: Curves, Hue-Saturation, selection by colour, layer blend modes.
- Krita: better painting tools for making colour-block conditioning images.
- Photopea: runs in a browser, reads and writes PSD, useful when you are on a borrowed machine.
- Inkscape: for placing exact flat brand colours as vector shapes over a generated plate, which is how most logos and blocks of brand colour should arrive anyway.
The rule underneath all four methods is the same: use the generator for light, material and form; use pixel-editing tools for exact values. Trying to make a diffusion model do arithmetic on colour is spending hours on something a colour picker does in one click.
Every lesson here is open. Your progress is recorded once you pass the Vectors, Logos and Things That Get Printed exam.
Check your understanding
Why can a diffusion model not reliably produce an exact hex colour on request?
Pick the one you would defend. Your answer stays private.
Stuck on something?Ask Neema, your AI tutor
