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 needUltimateSDUpscale 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 atdenoise 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 plusDifferentialDiffusion 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 inmodels/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.