DreamPower is a deep learning algorithm based on DeepNude with the ability to nudify photos of people.
DreamPower is a CLI application. If you have no experience in terminals you can use DreamTime, an easy way to use the power of DreamPower.
If you want to share or modify this software please do it for the same purpose as we do and always release the source code of your modifications. Read the LICENSE for more information.
DreamPower is a fork of deepnude_official but with constant improvements from DreamNet developers and the world, we stand out for offering these features:
- GPU Processing (Transformation in ~10 seconds!)
- Multiple GPU support
- Multithreading
- Auto-resize, auto-rescale, etc
- Animated GIFs support
- Customization: size of boobs, pubic hair, etc.
- Constant updates!
We are a community interested in developing decentralized applications free of censorship. Join our social networks or repositories:
We work every day to offer new features and improvements to the program for free, support us financially to offer more constant and large updates!
- 64 bits OS
- Windows 7 SP1/Windows 8/Windows 10 1803+
- Ubuntu 16.04+
- macOS Catalina 10.15+
- 8 GB of RAM or more.
- NVIDIA GPU with minimum 3.5 CUDA compute capability.
- Latest NVIDIA drivers.
๐ If you do not have an NVIDIA or compatible GPU you can use CPU processing.
- Extract the file that contains the CLI, it can be anywhere you want it, this should generate a folder called
dreampower
- Inside the folder called
dreampower
run the CLI executabledreampower checkpoints download
to download the checkpoints.
When you update DreamPower it will only be necessary to download the file that contains the
DreamPower
, you can reuse the checkpoints (unless we tell you otherwise)
Available on the Archlinux User Repository in two version:
- dreampower with CUDA Support
- dreampower-cpu with no CUDA Support
In the command line terminal run:
dreampower run --help
This will print out help on the parameters the algorithm accepts.
The input image should be 512px * 512px in size (parameters are provided to auto resize/scale your input).
Before you can launch the main alogirthm script you'll need to install certain packages in your Python3 environment.
We've added a setup script for the supported OSes in the 'scripts' folder that will do this for you.
The following OSes are supported:
- Windows
- MacOS
- Linux
python3 main.py run --help
This will print out help on the parameters the algorithm accepts.
The input image should be 512px * 512px in size (parameters are provided to auto resize / scale your input).
DreamPower uses an interesting method to solve a typical AI problem, so it could be useful for researchers and developers working in other fields such as fashion, cinema and visual effects.
The algorithm uses a slightly modified version of the pix2pixHD GAN architecture. If you are interested in the details of the network you can study this amazing project provided by NVIDIA.
A GAN network can be trained using both paired and unpaired dataset. Paired datasets get better results and are the only choice if you want to get photorealistic results, but there are cases in which these datasets do not exist and they are impossible to create. A database in which a person appears both naked and dressed, in the same position, is extremely difficult to achieve, if not impossible.
We overcome the problem using a divide-et-impera approach. Instead of relying on a single network, we divided the problem into 3 simpler sub-problems:
-
- Generation of a mask that selects clothes
-
- Generation of a abstract representation of anatomical attributes
-
- Generation of the fake nude photo
This approach makes the construction of the sub-datasets accessible and feasible. Web scrapers can download thousands of images from the web, dressed and nude, and through photoshop you can apply the appropriate masks and details to build the dataset that solve a particular sub problem. Working on stylized and abstract graphic fields the construction of these datasets becomes a mere problem of hours working on photoshop to mask photos and apply geometric elements. Although it is possible to use some automations, the creation of these datasets still require great and repetitive manual effort.
To optimize the result, simple computer vision transformations are performed before each GAN phase, using OpenCV. The nature and meaning of these transformations are not very important, and have been discovered after numerous trial and error attempts.
Considering these additional transformations, the phases of the algorithm are the following:
- dress -> correct [OPENCV]
- correct -> mask [GAN]
- mask -> maskref [OPENCV]
- maskref -> maskdet [GAN]
- maskdet -> maskfin [OPENCV]
- maskfin -> nude [GAN]