How I Fixed My Paris Street Illustrations
Whimsical Parisian street illustration in mid-century travel poster style, row of five Haussmann townhouses in a locked palette of butter yellow, terracotta coral, teal blue, dusty rose, and warm cream. Positional color mapping: leftmost facade butter yellow, second terracotta coral, third dusty rose, fourth warm cream, fifth teal blue — each facade a single flat color block, no gradient blending between buildings. Architectural variety per building: wrought-iron balcony with red geraniums, crimson-and-cream striped awning, dormer windows with shutters, mansard roof with chimney pots. Eiffel Tower in deep teal lattice silhouette rising behind rooftops, soft cream sky with two stylized white clouds, no atmospheric haze. Hand-lettered "PARIS" in textured navy brush script, upper left third, sized as a primary compositional element, spelling exactly P-A-R-I-S. Sidewalk with potted plants and vintage lamppost along bottom edge. Confident thick black outlines around every shape, flat color blocking, subtle canvas grain texture overlay, minimal soft shading. Warm diffused morning light, cheerful 1950s children's book nostalgia. Vertical composition, eye-level frontal view. --ar 9:16 --style raw --s 250
Quick Tip: Click the prompt box above to select it, then press Ctrl+C (Cmd+C on Mac) to copy. Paste directly into Midjourney, DALL-E, or Stable Diffusion and customize to make it your own!
The characteristic break of a mid-century travel-poster prompt is chromatic bleed. Ask for five Haussmann townhouses in five named colors and the model frequently returns one continuous ochre mass, with butter yellow, terracotta coral, and dusty rose smeared across the row as a single gradient. The Eiffel Tower loses its lattice and becomes a solid teal triangle. The hand-lettered "PARIS" returns as six pseudo-glyphs that read as lettering from three meters away and as noise from thirty centimeters. Every requested element is present, and nothing is distinct.
The cause is not the model's color vocabulary — it is the syntax. A comma-separated color list is parsed as an atmospheric mood, not as a map. When the prompt says "butter yellow, terracotta coral, teal blue," nothing in that string tells the renderer which facade owns which hue, so it distributes them statistically across the canvas. The same failure appears in the sky: "soft cream sky" alone often produces a vertical gradient, which destroys the flat-plane poster look the style depends on.
A secondary failure lives in the text. Diffusion models render lettering as texture, not as typography. Without an explicit spelling instruction and a stated position, "PARIS" competes with the sky, drifts toward the center, and loses its stroke weight. The three approaches below attack these failures from different angles, and each carries a visible trade-off.
Approach One — Positional Color Assignment
This method rewrites the palette as a left-to-right inventory. Instead of naming five colors, the prompt names five buildings and assigns each one a color by position: leftmost facade butter yellow, second terracotta coral, third dusty rose, fourth warm cream, fifth teal blue. The renderer now has five separate color tokens anchored to five separate objects, and averaging becomes far less likely because each token has an owner.
The visible signature is crisp vertical color boundaries. Where two facades meet, you see a hard edge and a black outline rather than a blend. Flat-plane skies follow naturally, because the same logic can be applied to background elements — "soft cream sky, no atmospheric haze" removes the gradient that would otherwise reintroduce depth. The technique is essentially the same discipline used in architectural portrait prompts, where each structural element needs its own named treatment.
The trade-off is rigidity. Positional mapping locks the composition: if the model decides the second building should be taller, the color assignment still holds, but you lose the model's own sense of rhythm and balance. It also lengthens the prompt considerably, and every added token competes for attention with the architectural detail instructions. On short prompts, positional mapping crowds out the geraniums, awnings, and dormers that make the row feel inhabited.
Approach Two — Reference Anchoring With Style Weight
Rather than naming colors, this approach names a visual tradition and lets the model supply the palette. Phrases like "1950s children's book nostalgia" or "mid-century travel poster" already encode a specific color behavior: saturated flat blocks, limited hue count, no gradients. Adding --style raw in Midjourney strips much of the default aesthetic polish, which keeps the illustration closer to a printed lithograph than to a rendered 3D scene.
The visible signature is a palette the prompt never specified but that feels historically correct. Buildings may come back in hues you did not request, and the overall harmony is often better than a hand-written list. The stylize value controls how hard the model pushes toward that reference: --s 250 sits in a moderate band where the poster logic dominates but architectural specificity survives. Higher values push toward decorative abstraction; lower values flatten the illustration into photographic neutrality.
The trade-off is unpredictability. Reference anchoring cannot guarantee that the third building is dusty rose. If a client brief specifies exact hex-adjacent colors, this method fails the brief even when the image is more attractive. It also interacts badly with long object lists — the more detailed the architectural description, the less the style reference influences the palette. The technique pairs well with texture-driven work such as cracked-canvas treatments, where grain and palette are meant to read as one material.
Approach Three — Lettering as a Compositional Element
Hand-lettered titles fail in a specific way: the model treats the word as decoration and shrinks it to a caption. The fix is to declare the lettering a primary compositional element and give it coordinates. "Upper left third, sized as a primary compositional element" converts text from an afterthought into a layout constraint, and the renderer reserves negative space for it instead of painting over rooftops.
Spelling must be stated explicitly. Writing "spelling exactly P-A-R-I-S" gives the text encoder a character sequence to match rather than a word to approximate. The visible signature is thicker stroke weight, a consistent navy value across all five letters, and a clean cream field behind them. Without that instruction, letters acquire stray serifs, duplicate, or bleed into the cloud shapes.
The trade-off is compositional pressure. A large title in the upper left forces the Eiffel Tower to shift right and the row of facades to compress vertically, which can crowd the awnings. This is the same spatial bargaining that governs flat color-block compositions, where every large shape claims area from its neighbors. If the tower must stay centered, reduce the title to the upper-right or accept a smaller script.
The Parameter That Decides Which Approach Survives
Aspect ratio is the hidden variable. At --ar 9:16, a five-building row plus a tower plus a title has very little horizontal room, so the model compresses facades and the positional color map survives only because the boundaries are stated explicitly. Switch to a square ratio and the same prompt spreads out, giving each building enough width that palette bleed becomes almost invisible — which is why square tests often look fine and vertical exports do not.
Style weight interacts with this. --style raw preserves hard black outlines and flat fills, both of which reinforce color separation. Disable it and the model adds ambient occlusion and soft falloff at facade edges, reintroducing exactly the gradient that Approach One was written to prevent. When both approaches are combined — positional mapping plus raw style — the failure rate drops sharply, and the cost is a slightly less polished, more print-like surface.
The diagnostic order matters. If colors blend, fix the syntax before touching parameters. If outlines soften, fix the style flag before rewriting the palette. If the title drifts, fix the position instruction before resizing the canvas. Changing three variables at once makes it impossible to know which one produced the improvement, and mid-century poster prompts are sensitive enough that a single flag can flip the result entirely.
The Next Variation Worth Testing
The next step is a night version of the same row: identical positional color map, identical architectural inventory, but "deep navy sky, warm amber window glow, no stars" replacing the cream sky and morning light. Expect the flat color blocking to hold, the Eiffel Tower silhouette to read as a darker teal against navy, and the black outlines to become the dominant structural element rather than a supporting one.
Run it at the same --ar 9:16 --style raw --s 250 settings so the only variable is lighting. If the outlines disappear into the dark facades, raise the stylize value slightly rather than adding a brightness instruction — the outlines are a style artifact, not a lighting property. Compare the two exports side by side and the palette map's value becomes obvious: it is the one instruction that survives a complete lighting change.
Label: Poster
Key Principle: Bind every palette color to a named object and a position, never list colors as mood. In five-facade posters, positional assignment is the only thing stopping the model from averaging butter yellow, coral, and teal into one muddy ochre.