One Noise to Rule Them All: Learning a Unified Model of Spatially-Varying Noise Patterns

Arman Maesumi, Dylan Hu, Krishi Saripalli, Vladimir G. Kim, Matthew Fisher +2 more
4/25/2024
cs.GRcs.CVcs.LG

No official code found. Best implementation: ArmanMaesumi/OneNoise (57 stars, MIT, last commit 2024-08-09).

Abstract

Procedural noise is a fundamental component of computer graphics pipelines, offering a flexible way to generate textures that exhibit "natural" random variation. Many different types of noise exist, each produced by a separate algorithm. In this paper, we present a single generative model which can learn to generate multiple types of noise as well as blend between them. In addition, it is capable of producing spatially-varying noise blends despite not having access to such data for training. These features are enabled by training a denoising diffusion model using a novel combination of data augmentation and network conditioning techniques. Like procedural noise generators, the model's behavior is controllable via interpretable parameters and a source of randomness. We use our model to produce a variety of visually compelling noise textures. We also present an application of our model to improving inverse procedural material design; using our model in place of fixed-type noise nodes in a procedural material graph results in higher-fidelity material reconstructions without needing to know the type of noise in advance.

View on arXivView PDF

Code Implementations(1)

MIT

Official repository for "One Noise to Rule Them All: Learning a Unified Model of Spatially-Varying Noise Patterns"

574Shell, PythonMay 7, 20242 years agoMIT
diffusion-modelsgenerative-modelnoiseprocedural-noisetexture-synthesis

Similar Papers

Cite this paper

@article{maesumi2024noise,
  title  = {One Noise to Rule Them All: Learning a Unified Model of Spatially-Varying Noise Patterns},
  author = {Arman Maesumi and Dylan Hu and Krishi Saripalli and Vladimir G. Kim and Matthew Fisher and Sören Pirk and Daniel Ritchie},
  year   = {2024},
  eprint = {2404.16292},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2404.16292v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2404.16292.svg)](https://codeofpaper.com/paper/2404.16292)

Discussion