Each Baldur’s Gate II background starts with the game’s own pixels, grows to four times its original resolution, then goes back into the engine.
4×resolution
369maps inventoried
Day / nighthandled separately
The short version
Every map follows the same process.
The pipeline does the repetitive work. The important choices and the final green light still stay human.
01
Extract
The game tiles are rebuilt into one complete image.
02
Inspect
Doors, water, transparency and night versions are spotted first.
03
Split
Large areas are divided into overlapping pieces.
04
Upscale
SeedVR2 7B rebuilds detail at four times the resolution.
05
Put it back
The image becomes BG2EE tiles again, ready for checking.
Why this model
Generative AI stays faithful to the game.
A normal resize makes the image bigger and keeps the blur. SeedVR2 7B is a generative AI upscaler: it rebuilds believable detail in stone, roofs and ground textures.
It does not start from a free-form prompt. The game pixels stay in charge. Composition, shapes, colours and the overall style must still feel immediately like Baldur’s Gate II.
More detail. Not a new art direction.
Local ComfyUI workflow
My local ComfyUI graph: load the map, run SeedVR2 7B, save the x4 image.
ComfyUIEverything runs locally
RTX 5090The GPU doing the calculation
≈ 20 minFor one of the largest maps, complete day + night
From 1 to 10 pieces
Resolution determines the number of pieces.
Small maps stay whole. Larger ones are divided by source resolution, so every SeedVR pass keeps enough useful context.
1≤ 1.8 Mpx
2≤ 3.6 Mpx
4≤ 7.2 Mpx
6≤ 10.8 Mpx
8≤ 14.4 Mpx
10> 14.4 Mpx
AR0700 · Day · 19.66 Mpx
Waukeen’s Promenade, separated into ten real SeedVR outputs.
Each piece includes a little of its neighbours. Those shared margins keep walls, roofs and streets coherent right across a cut.
01020304050607080910
↓
Ten pieces · one exact imageClean joins, no rescaling.
128 px
A clean join without hiding it under blur.
The pieces overlap by 128 source pixels. Once SeedVR is finished, the inner margins are removed and the useful centres are placed edge to edge. The final image returns to the exact expected size.
One area, several states
The same area can have several states.
BG2EE does not always display one fixed background. Some tiles can change, and day and night are separate images.
Primary / secondary tiles
A door is only a few different tiles.
The engine swaps small parts of the map when a door opens or a set piece changes. Both states use the same scale and the same split, so the switch stays natural.
↔
Primary stateSecondary state
Day / night
Night is not a colour filter.
It has its own lights, shadows and colours. Day and night get separate upscale runs, separate builds and separate in-game checks.
↔
DayNight
Built to handle a lot of maps
Claude and Codex helped me build the pipelines.
I built the tools with Claude and Codex. They inspect areas, prepare the cuts, send jobs to local ComfyUI, reassemble the outputs and rebuild the game files. Once a recipe is ready, several areas can run as a batch.
Maps→Pipeline→ComfyUI→BG2EE build
Small map · One pass
AR0714 fits in one piece.
At 1152 × 1152 pixels, this area can go through SeedVR in one pass. No large-scale splitting is needed.
Source
1152 × 1152
Output
4608 × 4608
Scale
Exactly ×4
↔
Original ×1SeedVR ×4
Drag the handle and look at the broken stone, roofs and small ground details.
Back in the game
That is when a bigger image becomes a real BG2 map.
Exact dimensions, clean joins, working variants — and one last pair of human eyes.