G-Buffer-Conditioned Diffusion for Neural Forward Frame Rendering.
See the codeG-Buffer-Conditioned Diffusion for Neural Forward Frame Rendering
https://github.com/user-attachments/assets/b43532e0-5f5d-40f3-9d3c-e49814faa77f
π Project Page Β |Β π Paper Β |Β π€ Models
# Create conda environment
conda create -n framediffuser python=3.10 -y
conda activate framediffuser
# Install PyTorch with CUDA (required)
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
# Install dependencies
pip install -r requirements.txt
FrameDiffuser is an autoregressive neural rendering framework that generates temporally consistent, photorealistic frames by conditioning on G-buffer data and the model's own previous output. The dual-conditioning architecture combines ControlNet for structural guidance with ControlLoRA for temporal coherence.
Pretrained weights are available on HuggingFace.
| Model | Scene Type | Notes |
|---|---|---|
DowntownWest | Outdoor | Recommended for outdoor scenes |
Hillside | Indoor | Recommended for indoor scenes |
CityPark | Outdoor | |
CitySample | Outdoor | |
ElectricDreams | Outdoor | Rainforest environment |
DerelictCorridor | Indoor | Small environment with dark lighting |
Each model directory contains:
controlnet/ - ControlNet weights (G-buffer encoder)controllora.safetensors - ControlLoRA weights (temporal conditioning)For best results:
DowntownWestHillsidedata/train/ and data/validation/train_3_stages.bat to set your prompt and pathstrain_3_stages.bat
The provided batch file serves as an example configuration. For best performance, experiment with adjusted settings for your specific environment and dataset.
python inference.py
To add new models or datasets, use the GUI to select paths and save configurations.
G-buffer data can be exported from Unreal Engine using the Movie Render Queue with custom Post Process Materials.
Enable the Movie Render Queue plugin: Edit > Plugins > Movie Render Queue (restart required)
Create Post Process Materials for each G-buffer channel (BaseColor, Normals, Depth, Roughness, Metallic) that output the corresponding Scene Texture to Emissive Color
In the Movie Render Queue, add your Level Sequence and open Settings
Under Rendering > Deferred Rendering, expand Deferred Renderer Data
In Additional Post Process Materials, add array elements for each G-buffer material:
Add a .png Sequence output format under Exports
For more details, see the Cinematic Render Passes documentation.
Place your G-buffer renders in the following structure:
data/
βββ train/
β βββ FinalImage/
β β βββ FinalImage_0000.png
β β βββ FinalImage_0001.png
β β βββ ...
β βββ BaseColor/
β β βββ BaseColor_0000.png
β β βββ ...
β βββ Normals/
β βββ Depth/
β βββ Roughness/
β βββ Metallic/ (optional)
βββ validation/
βββ FinalImage/
βββ BaseColor/
βββ Normals/
βββ Depth/
βββ Roughness/
βββ Metallic/ (optional)
Requirements:
If you find this work useful, please cite:
@article{beisswenger2025framediffuser,
title={FrameDiffuser: G-Buffer-Conditioned Diffusion for Neural Forward Frame Rendering},
author={Beisswenger, Ole and Dihlmann, Jan-Niklas and Lensch, Hendrik},
journal={arXiv preprint arXiv:2512.16670},
year={2025}
}
This project is licensed under the MIT License - see the LICENSE file for details.
This work was funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation).
This project builds upon:
G-Buffer-Conditioned Diffusion for Neural Forward Frame Rendering.
See the codeG-Buffer-Conditioned Diffusion for Neural Forward Frame Rendering
https://github.com/user-attachments/assets/b43532e0-5f5d-40f3-9d3c-e49814faa77f
π Project Page Β |Β π Paper Β |Β π€ Models
# Create conda environment
conda create -n framediffuser python=3.10 -y
conda activate framediffuser
# Install PyTorch with CUDA (required)
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
# Install dependencies
pip install -r requirements.txt
FrameDiffuser is an autoregressive neural rendering framework that generates temporally consistent, photorealistic frames by conditioning on G-buffer data and the model's own previous output. The dual-conditioning architecture combines ControlNet for structural guidance with ControlLoRA for temporal coherence.
Pretrained weights are available on HuggingFace.
| Model | Scene Type | Notes |
|---|---|---|
DowntownWest | Outdoor | Recommended for outdoor scenes |
Hillside | Indoor | Recommended for indoor scenes |
CityPark | Outdoor | |
CitySample | Outdoor | |
ElectricDreams | Outdoor | Rainforest environment |
DerelictCorridor | Indoor | Small environment with dark lighting |
Each model directory contains:
controlnet/ - ControlNet weights (G-buffer encoder)controllora.safetensors - ControlLoRA weights (temporal conditioning)For best results:
DowntownWestHillsidedata/train/ and data/validation/train_3_stages.bat to set your prompt and pathstrain_3_stages.bat
The provided batch file serves as an example configuration. For best performance, experiment with adjusted settings for your specific environment and dataset.
python inference.py
To add new models or datasets, use the GUI to select paths and save configurations.
G-buffer data can be exported from Unreal Engine using the Movie Render Queue with custom Post Process Materials.
Enable the Movie Render Queue plugin: Edit > Plugins > Movie Render Queue (restart required)
Create Post Process Materials for each G-buffer channel (BaseColor, Normals, Depth, Roughness, Metallic) that output the corresponding Scene Texture to Emissive Color
In the Movie Render Queue, add your Level Sequence and open Settings
Under Rendering > Deferred Rendering, expand Deferred Renderer Data
In Additional Post Process Materials, add array elements for each G-buffer material:
Add a .png Sequence output format under Exports
For more details, see the Cinematic Render Passes documentation.
Place your G-buffer renders in the following structure:
data/
βββ train/
β βββ FinalImage/
β β βββ FinalImage_0000.png
β β βββ FinalImage_0001.png
β β βββ ...
β βββ BaseColor/
β β βββ BaseColor_0000.png
β β βββ ...
β βββ Normals/
β βββ Depth/
β βββ Roughness/
β βββ Metallic/ (optional)
βββ validation/
βββ FinalImage/
βββ BaseColor/
βββ Normals/
βββ Depth/
βββ Roughness/
βββ Metallic/ (optional)
Requirements:
If you find this work useful, please cite:
@article{beisswenger2025framediffuser,
title={FrameDiffuser: G-Buffer-Conditioned Diffusion for Neural Forward Frame Rendering},
author={Beisswenger, Ole and Dihlmann, Jan-Niklas and Lensch, Hendrik},
journal={arXiv preprint arXiv:2512.16670},
year={2025}
}
This project is licensed under the MIT License - see the LICENSE file for details.
This work was funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation).
This project builds upon: