Coder Social home page Coder Social logo

fluvial's Introduction

🌧️ Fluvial - Super-resolution and deblurring tool

Fluvial is a set of tools that can be used to do high quality super-resolution, artifact removal and deblurring. The ML models underpinning Fluvial were trained on images of people, so it performs best on these types of images. See the bottom of this readme for examples.

Technical Description

Fluvial uses a large diffusion model to perform super-resolution. The diffusion model is loosely based off of the work OpenAI did for improved diffusion. I spent over a year building different types of ML models refining the best possible one for super-resolution and diffusion models are it. GANs have serious problems with mode collapse, likelihood and MSE-based models just blur everything, flow-based models have artifact problems due to the restricted operator set they use. Autoregressive models are promising but are tricky to apply to SR and do not scale to high-resolution images.

I am quite confident that this model could be better. Scaled up, it could be downright incredible. I simply do not have the compute resources to do this scaling. Let me know if you're interested in working on it, though. I'd be happy to help you build it.

These models are notorious for being quite slow at processing, so expect to wait a few seconds if you have a good GPU, or several minutes if you are running on a CPU. I recommend working in colab if you do not have a GPU. I have provided a notebook that you can use to do this.

Set-up

git clone https://github.com/neonbjb/fluvial
cd fluvial
pip install -r requirements.txt

Usage

Sample Results

Training

Fluvial was trained in my configurable training environment, DLAS. I have provided a file, training_config.yml, which you can use to train this model within DLAS.

I have not trained image SR models in awhile in DLAS, so I recommend you checkout a older commit. Hash 3801d5d55e7af033a7d5256cabca50b0f3da1104 is probably a good bet. The latest versions of DLAS have a ton of awesome new stuff that would likely improve training results but expect to need to do some fixes.

You'll need to bring your own data. If you're looking for some toy data just to try it out, try using CELEB-A.

fluvial's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.