# How I perfected Midjourney prompts for our marketing assets I make the background art for every post on the Fern blog. They're all generated from [Midjourney](https://www.midjourney.com/), the best text-to-image model to generate high-fidelity imagery. I wanted Fern's marketing content to feel calm and polished, representing the same craft we put into the product. Midjourney is the only text-to-image model I've found that can truly do that. Its style references and personalization keep every asset in the same visual key. Landing the template that does that took months of scrapped generations and one museum visit. Here's how I got there. ## Technobotanicals My first prompts tried to make Fern's identity literal. Fern is a developer tooling platform with a plant for a logo, so I fused the organic with the digital and generated a pile of what I started calling _technobotanicals_: ```text VELVET-MATTED FERN LEAVES WITH CHROME VEINING, IMPOSSIBLY QUIET, ECHOES OF ELECTRONIC LIFE, SOFT VIOLET AND PALE GREEN PALETTE, STILLNESS AT THE EDGE OF A DIGITAL FOREST --exp 100 --profile c6so3sz --sref 2082925974 --raw --stylize 1000 --sw 200 --v 7.0 MYCELIUM NETWORKS WOVEN THROUGH HAZY SYNTHETIC MIST, SLOW BREATHING LIGHT PULSES, GREY-GREEN ORGANIC WEBBING MERGING WITH NANOSTRUCTURES, DREAMLIKE DATA FOREST --exp 100 --profile c6so3sz --sref 2082925974 --raw --stylize 1000 --sw 200 --v 7.0 ``` Iridescent ferns, glowing spores, a mountain range with a luminescent grid draped over it. Ethereal, but unusable. The problem is that each one is a subject in its own right. They demand to be looked at. But almost every post on this blog lays a headline and a product screenshot over the hero image, so the background has to do the opposite of demand attention: hold a mood, then disappear behind the content. These fought whatever I put on top of them. ## Surreal minimalism If the technobotanicals were too loud, maybe the answer was almost nothing: ```text people standing on top of a mountain, walking towards the sky with clouds and a moon. A large, vertical rectangle floats in front of them. The scene evokes a sense of minimalism, surrealism, and a dreamy color palette, characteristic of a digital art style. high definition --exp 100 --v 7.0 --ar 4:5 --chaos 5 --p --raw ``` ![A line of tiny figures climbing a snowy ridge above the clouds toward a glowing vertical monolith, a crescent moon overhead](/post/midjourney-blog-art/surreal-monolith.avif) Beautiful, but it read like an album cover, not a developer blog. The human figures and the giant floating monolith turn it into a scene you're meant to stop and decode. A background can't have a subject staring back at you. ## Woodblock landscapes I'd been here once before. During the [site redesign](/post/fern-site) I tried woodblock-style graphics and shelved them: Midjourney copied the surface texture of the prints but not the intent behind them, the deliberate linework and hand-registration. So I swung back and tried plain woodblock landscapes: a fern forest, spring meadows, Iguazu Falls. I also re-ran the old technobotanical scenes in the new woodblock style: ```text A Japanese woodblock print of cherry blossoms in full bloom at the temple, with people enjoying their time near a pond and pagoda tower in the background. The sky is a clear blue, and there's an array of green trees around the scene. This artwork uses vibrant pastel colors to capture the serene beauty of springtime nature. --sref 2826299952 --v 7.0 --p --sv 4 --exp 100 --raw ``` The circuitry faded into mountain ranges and weather. Much closer, but still too many strong color notes fighting for attention. I wanted fewer of them, and quieter. ## Being inspired When I'm in a creative rut, I visit whatever art museum is nearby. On a trip to the [Philadelphia Museum of Art](https://philamuseum.org/), I came across Hiroshi Yoshida, and it clicked. He spent the 1920s applying Japanese woodblock printmaking to landscapes, including American ones: El Capitan, the Grand Canyon, Niagara Falls. Hiroshi's prints had the serenity I was after. The palettes are muted, the weather does the work, and there are no faces, hands, or text, exactly the things image models struggle to render with any exactness. And where my technobotanicals shouted and the surreal pieces posed, these landscapes just recede. That was the quality I'd been missing and couldn't name until I stood in front of them. I took the inspiration, stripped out the intricacy, and added motion blur so the eye glides past the details instead of snagging on them. ## The final prompt template I didn't land the prompt in one shot. Back home, I fed photos of Yoshida's prints into Midjourney's `/describe` command, which hands back the phrases a model would use to recreate an image, then isolated the ones that captured what I wanted, the muted palette, the analog grain, the smoothing motion, and folded them into a single template: ```text title="house-prompt.txt" [scene description in Hiroshi Yoshida landscape style], atmospheric [weather], long-exposure smoothing motion, muted earthy colors, tactile analog grain --v 7.0 --p --raw --exp 100 --ar 16:9 ``` Then I added `--p `, a Midjourney personalization code. Personalization lets you train your own mini Midjourney model by ranking image pairs; it hands back an ID, and appending that ID makes every generation inherit the same look. I pair that ID with a scene, usually natural scenery or flora and fauna tied to whatever we're launching. Everything else stays fixed, so a background I generated last September and one from this month *visually feel the same.* ## The outputs Every asset still gets its own scene. Rust's mascot is a crab, so the [Rust SDK generator](/post/rust-sdk-generator) launch became a low tide beach crawling with tiny orange ["Ferris" crabs](https://medium.com/kbtg-life/that-is-why-you-and-i-should-become-rustaceans-31ddd212e52f): ```text A low tide beach crawling with tiny orange crabs, Hiroshi Yoshida landscape style, atmospheric coastal haze at dusk, long-exposure smoothing motion, muted earthy colors, tactile analog grain --v 7.0 --p --raw --exp 100 --ar 16:9 ``` The [Swift launch](/post/swift-sdk-launch) swapped in swifts pouring out of a temple. The template holds the look; the scene carries the story. ## What's next I'm still tuning every asset, and each launch is an excuse to go find the next scene. Hope you find them as beautiful as I do. - See how we put this same prompt system to work in our paid ads (post coming soon). - [DM me on X](https://x.com/kapilgowru) and I'll send over more prompts, or if you want to jam.