The building is right, but the render is not. The light is flat. The foreground planting looks synthetic. One glass panel reflects an impossible sky. The temptation is to ask a ComfyUI graph to improve everything in a single generation.
That instruction combines two different jobs. The first is global: establish exposure, color relationship, atmosphere, material coherence, and the overall level of realism. The second is local: repair a named object or bounded defect without reopening every approved pixel.
Today's community sweep returned recurring requests for ComfyUI workflows that enhance architectural renders while retaining composition. The requested fixes include lighting, textures, reflections, vegetation, shadows, and detail. Treating that list as one prompt makes review difficult. Split it into one controlled global pass and a short queue of masked local repairs.
Start with a source that deserves to survive
Before opening the graph, check the source render at presentation size. Confirm the camera, crop, massing, floor count, openings, major materials, horizon, and required context. If any of those are wrong, return to the model or renderer. ComfyUI should not become a way to disguise an unresolved design view.
Write a preservation list with visible, testable items: keep the roofline, retain all seven structural bays, hold the entrance location, preserve the neighboring wall, and do not add people. Then write the global target in one sentence, such as “overcast afternoon with restrained contrast, warm interior light, and neutral concrete.”
Save the untouched input under a stable name. Every later output should point back to it. A graph without a known source encourages accidental generations from an already altered image.
Pass one sets the whole frame
The global pass may use image-to-image generation with a structural condition such as an edge or depth reference, depending on the selected model and graph. ComfyUI's official ControlNet documentation describes condition images, including edge and depth maps, as a way to guide generation beyond prompt-only trial and error. It also exposes control strength and start and end percentages. Those controls can influence how strongly and for how much of the diffusion process a condition applies.
Do not interpret this as permission to stack every available control. Use the fewest conditions needed to protect the agreed geometry. A control image can be wrong or noisy, and a second condition can conflict with the first. Preview inputs before generation and name what each one is expected to hold.
Change one family of settings at a time. First find a defensible structural setup. Then tune the global visual direction. Record the checkpoint, VAE if separately selected, prompts, sampler settings, seed policy, input dimensions, condition models, strengths, and timing. Custom preprocessors or nodes belong in the dependency record.
| Gate | Global pass question | Action if failed |
|---|---|---|
| Geometry | Are massing, openings, and edges intact? | Reduce change or correct the condition |
| Composition | Are crop, horizon, and focal hierarchy intact? | Return to the source and framing |
| Light | Does one plausible direction organize the frame? | Revise the global target |
| Materials | Do major surfaces read consistently? | Fix the broad material instruction |
| Defects | Are remaining problems bounded and nameable? | Send only bounded items to local repair |
Select the global result only when the building and overall image pass. Do not wait for perfect leaves, flawless furniture, or every reflection. Those are local candidates. The point is to stop rolling the entire frame once its large decisions are approved.
When the frame passes, freeze it. A bad tree is not a reason to regenerate the building.
Turn complaints into a local repair queue
Review the approved global image at full size and write one line per defect. Each line needs a location, failure, intended correction, and protected boundary. “Improve vegetation” is too broad. “Replace the repeated shrubs left of the entrance while keeping the door, curb, and shadow edge” is reviewable.
Prioritize defects by impact. Start with errors that distract from the architecture or misstate it. A tree covering the entrance matters more than a minor leaf artifact. An implausible reflection that invents another building may matter more than a soft texture in the distance. Limit the queue, because every repair creates another opportunity for unintended change.
Create a mask around one defect. Include enough transition area for the replacement to meet its surroundings, but do not casually cover adjacent architecture. ComfyUI's official inpainting example uses a mask to specify the area for modification and a dedicated VAE Encode for Inpainting node. Its documented grow_mask_by input expands the mask to provide a transition area and avoid a hard edge.
Keep each repair narrow enough to judge
Give the repair prompt only the context needed for that region. A planting repair needs species character, scale, season, and light direction. A glazing repair needs transparency or reflectivity, interior visibility, and the scene it can plausibly reflect. A pavement repair needs material, joint scale, wear, and the existing perspective.
Queue a small contact sheet of variants rather than accepting the first output. The ComfyUI inpainting guide explicitly suggests changing prompts, trying different KSampler seeds, and re-inpainting results. Those are general capabilities, not a guarantee that a particular repair will respect architectural intent. Compare each variant with the frozen global image and the source model view.
After choosing a repair, inspect the seam, repeated texture, scale, lighting, occlusion, and any structure at the mask edge. Save the mask and settings beside the selected output. If the repair keeps leaking into protected geometry, redraw the mask, lower the permitted change, switch the inpainting setup, or accept the original defect. A smaller honest flaw can be safer than a confident invented detail.
Do not create an endless chain of copies
Repeatedly encoding and regenerating the full composite can gradually move approved areas. Keep the frozen global pass as the reference and maintain a simple repair ledger. Record which output became the new composite, which mask changed it, and which prior file remains available for comparison.
Where the graph permits partial execution, organize local branches so a vegetation change does not unnecessarily rerun the global stage. Keep masks, condition images, and outputs in named folders rather than relying on the interface queue as the project record.
Stop when all mandatory defects pass at delivery size. Zoomed inspection is useful, but a workflow can spend hours repairing details that vanish in the final layout. Define the viewing condition before the queue grows.
Our take: separate approval from repair
A single giant enhancement graph looks efficient because every ambition is visible at once. It can also make every failure ambiguous. Was the facade changed by denoise, a structural condition, the prompt, the model, or a local instruction buried in the same run?
Two passes create two decisions. First, does the frame work? Second, do the named repairs work?
Approve the building. Then fix the tree.
Editorial basis: the 23 September 2026 ArchiGen AI intel sweep, including community requests for ComfyUI architecture-render guidance on r/FluxAI, r/comfyui, and r/archviz. Product behavior was checked against the official ComfyUI inpainting tutorial and ControlNet usage documentation. Those sources support the described mask, inpainting, workflow-metadata, condition-image, strength, timing, and custom-preprocessor capabilities. The two-pass workflow, review gates, defect queue, and stopping rule are ArchiGen editorial recommendations. No hands-on test or guaranteed result is claimed.