a flux workflow for wallpapers, in any style

every wallpaper generator i tried had a dropdown of styles in it, and the dropdown was always the problem: you get the twelve looks the author thought of and nothing else. this one has no presets at all. there are two text boxes — subject and style — and whatever you write in the second one is the style. "frutiger aero", "y2k vector", "view from orbit", "risograph print in three colours". the model already knows these words; a dropdown just hides them from you.
download the workflow — drag the json onto the comfyui canvas.
what you need on disk
| file | goes in |
|---|---|
flux1-dev-fp8.safetensors |
models/diffusion_models/ |
t5xxl_fp8_e4m3fn.safetensors |
models/text_encoders/ |
clip_l.safetensors |
models/text_encoders/ |
ae.safetensors |
models/vae/ |
RealESRGAN_x2plus.pth |
models/upscale_models/ |
both the model and the text encoder are fp8 builds — that is the only reason
this fits on a normal card. from the custom node side you need
UltimateSDUpscale and whichever pack gives you ComfySwitchNode; everything
else is core. if a node loads red, manager → install missing custom nodes will
find it by type name.
three stages, and why they exist
diffusion at 4k does not work — you get two horizons and a second sun, because the model was trained around one megapixel and has never seen a composition that large. so nothing here diffuses above ~2 mp:
- base, ~1 mp. 1344×768 for a 16:9 screen. this is where the picture is actually decided.
- detail, ~2 mp. esrgan enlarges it in pixels, then the sampler goes over
the result at
denoise 0.35— low enough to add texture without inventing new objects. - tiles, up to ~4k.
UltimateSDUpscaleatdenoise 0.15, one 1024 tile at a time.
the 2.07 megapixels in stage 2 are not a round number for nothing: stage 3 multiplies by exactly 2, so 1344×768 comes out at 3840×2160 rather than at something you then have to crop.
the one trick worth stealing: stage 3 gets its own prompt, with no subject in it and guidance dropped to 2.0. a tile is a square of sky with no idea it is a square of sky, so if you hand it the full prompt it will helpfully paint a whole mountain range inside it. that is where corner artefacts in 4k upscales come from.
flux has no negative prompt
this catches everyone once. flux-dev is guidance-distilled: cfg stays at 1.0
and the negative branch is not part of the maths at all. leaving text in it does
nothing — which is worse than an error, because you sit there tuning a string
that was never read. ConditioningZeroOut sits where the negative would be, and
anything you don't want has to be said positively: not "no blur", but "sharp
focus".
what replaces cfg is the FluxGuidance node, and it is the real style dial:
- 2.0–2.5 — softer, more photographic, better light
- 3.5 — the default
- 5–7 — strict to the prompt, harder edges; usually better for graphic styles like frutiger or flat vector
the panel
four booleans in the yellow group: detail pass, final upscale, add an object, and source. a branch that is switched off genuinely doesn't run — comfy is lazy about inputs it doesn't need — so turning off the upscale costs you nothing in time or vram rather than computing it and throwing it away.
the fourth switch is the odd one. flip it and the whole graph turns into an inpainting tool: no wallpaper gets generated at all, and the thing it edits is a photo you upload. same nodes, different machine.
putting something into the picture
paint a mask, write what goes there, get it. InpaintModelConditioning plus
DifferentialDiffusion is the pair that works on flux-dev — the first builds
the masked latent, the second softens the edge so the seam doesn't show.
denoise is 1.0 here and that is correct: under the mask it paints from
scratch, outside it nothing is touched.
two things i got wrong before they worked. draw the mask bigger than the object — with a tight outline the model has nowhere to put the thing and squashes it. and describe not just the object but how it sits: "a wooden rowboat resting on the shore, gentle reflection in the water" lands in the scene, "a wooden rowboat" gets pasted on top of it.
what's in the file
the prompt boxes ship empty on purpose, the seeds are zeroed, and all four lora
slots are bypassed, so plain flux runs the moment you open it. slot one points
at frutiger metro if you want that look — download it, drop it in
models/loras, enable the node with ctrl+b. keep the total strength of style
loras near 1.2; past that they start arguing with each other.