How do you fix reflections in a ComfyUI architecture render?
Set the final lighting first, then mask the glazing and regenerate only that region at low denoise while depth or Canny guidance protects the facade. Compare the result against the source at full size. Reflections depend on the camera and light, so repairing them before either is settled guarantees another repair.
A current FluxAI thread asks for a ComfyUI workflow that can improve lighting, textures, reflections, vegetation and shadows while maintaining composition. This is the ordinary archviz brief in its most dangerous form: make everything better, move nothing.
The temptation is one heroic img2img pass. Add “accurate reflections” to the prompt, lower denoise and hope the facade survives. Sometimes it does. Sometimes a mullion becomes a second mullion inside the glass, the reflected sky points toward a sun that is behind the camera, and the lobby gains a tree. The image is shinier. The building is now gossip.
Why must reflections come after lighting?
A reflection is not decoration placed on top of glass. It is evidence of a view, a surface and a light field. Change the sky, sun direction or interior brightness and that evidence changes too. Repair the glass first, relight later, and the two passes will disagree in public.
This is especially obvious on curtain walls. A bright reflected sky beside a dim, warm facade can make each panel look pasted in. Wet paving is less forgiving: it repeats the building, lights and sky in one broad surface. If the reflection pass invents a different window rhythm, the error appears twice.
ArchiGen's repair-order guide puts geometry before light, light before materials and reflections after both. That sequence is not tidiness. Each later decision depends on the earlier one.
A reflection is a witness. Change the scene and its testimony must change with it.
Which ComfyUI controls keep the facade still?
Use two kinds of restraint: a spatial condition for the building and a mask for the edit.
The official ComfyUI ControlNet examples state that each ControlNet expects the matching input format, such as a depth or Canny map, and that the Apply node does not create those maps for you. That small warning matters. Connecting a beauty render directly to a depth model is not geometry control. It is a wiring error wearing a serious expression.
Depth guidance holds large planes and their relative position. Canny guidance holds visible edges. For a glazed facade, depth may treat the glass as one plane while Canny catches the mullion grid. Neither knows that a line is a mullion. They constrain the generated image to the evidence supplied.
The mask sets the jurisdiction. ComfyUI's official inpainting workflow is designed to regenerate a selected area rather than the whole frame. Give the glass pass the glass, plus a modest feather at its boundary. Do not let it vote on concrete, planting or the roofline.
A reflection repair graph in five checkpoints
| Checkpoint | Save | Reject when |
|---|---|---|
| 1. Accepted base | Source render and camera crop | Geometry is already wrong |
| 2. Final light | Relit opaque surfaces | Shadows and sky disagree |
| 3. Glass mask | Black-and-white mask | Mullions or opaque spandrels leak in |
| 4. Inpaint result | Seed, prompt, denoise and controls | Frame count or reflected lines change |
| 5. Composite | Output plus difference matte | Pixels changed outside the mask |
Checkpoint 1: reject a bad base
Do not ask the enhancement graph to rescue missing windows, broken perspective or an impossible camera. Those defects belong upstream. The base-render acceptance gate is a useful stop line: correct the source before the expensive polish begins.
Checkpoint 2: settle the light
Choose the time of day, sky brightness, interior exposure and shadow direction. This need not be the final grade, but the physical story must stop moving. If the opaque facade still needs a relight, do it now and lock the result.
Checkpoint 3: build a glass mask that understands frames
A quick rectangular mask over the whole curtain wall is too blunt. Separate transparent panes from mullions, caps and opaque spandrels. Feather enough to avoid a cut edge, but not enough to repaint the frame. Save the mask as an artifact. It is part of the workflow, not disposable UI dust.
If the source contains interior views through glass, decide whether the pass should preserve them. Reflection and transmission compete. A prompt demanding both a mirror-bright sky and a clearly visible lobby is asking the model to fake an exposure stack. Pick the design story.
Checkpoint 4: inpaint quietly
Start with low denoise and a literal prompt describing the existing condition: neutral architectural glazing, reflected sky direction, restrained interior visibility. Avoid style language. The official ComfyUI img2img guide describes the input image as an added condition alongside the prompt. Denoise controls how much authority that starting image keeps; the exact acceptable value depends on model, resolution and source.
Generate a small contact sheet at one setting before increasing freedom. If every candidate invents divisions or signage, more denoise is unlikely to become wiser. Fix the mask, control map or prompt first.
Checkpoint 5: inspect what moved
Overlay the output on the accepted base and toggle it. Then create a difference matte. The changed region should match the intended mask, with only the feather extending beyond it. Our difference-matte method turns “looks close” into a visible boundary.
Inspect at delivery size as well as fit-to-screen. Duplicate mullions hide at 20 percent zoom. So do smeared reflections around balcony rails.
What should a reflection prompt name?
Name observable conditions: sky state, brightness, reflected context, interior visibility and surface roughness. “Photoreal glass” is a compliment, not an instruction. “Cool overcast sky reflected across low-iron glazing, muted street context, interior visible only in the brightest bays” gives the model relationships it can depict.
Do not prompt for code compliance, solar performance or a specified coating and treat the pixels as proof. An AI image can illustrate those ideas. It cannot calculate them. The same boundary applies to AI relighting and daylight analysis.
When is the reflection pass finished?
Stop when the glass agrees with the settled light, the panel rhythm matches the base and no pixels outside the approved mask changed materially. Also stop when three candidates fail in the same way. Repeated failure is a workflow diagnosis, not an invitation to spend the afternoon on seed roulette.
At that point, return to the source renderer or composite the reflection conventionally. ComfyUI is valuable because its graph exposes conditions, masks and checkpoints. Using it as a slot machine rather misses the architecture.
Good glass does not shout. It agrees with the room.
Evidence note: this workflow is an editorial synthesis, not an ArchiGen hands-on benchmark. Sources checked 4 October 2026: a FluxAI community request for render enhancement that preserves composition; official ComfyUI ControlNet examples describing required control-map formats; and official ComfyUI img2img and inpainting documentation. Settings are intentionally given as starting principles rather than universal values because acceptable denoise and control strength vary by model, source and resolution.