
I was surfing the internet searching for AI tools and methods to make money online, and I stumbled upon an Image Background Removal service called Remove.Bg.
It works great. But I was shocked by the pricing. It charges $0.2-$1.99 per Image!?

So, I decided to take the challenge and reverse engineer this website to build my own Free Image Background Remover without relying on any APIs or Third Parties.
I kept searching for a few days and found a great python project on GitHub, Called U2Net.
A Big Shout-out and Thanks to the authors of this project!
I tried my best to make things as simple as possible so that even newbies could use and run the python script I built.
I also created a Short Video showing The Script & How to use it, and I pointed out three methods and secrets that may help you build an online income stream with the help of this script. Here is the video:
For example, You can turn this into an online tool that people pay to use based on a monthly subscription. I did something similar with BoostCTR, FreeImageAI, LargeFileSender, and H-supertools.
What you can also do is that. You can use the script, turn it into an API, publish it on RapidAPI, and sell it for a monthly recurring income. I also do this with my Domain Authority API.

Remove Background from Image with Python
So, let’s open our source code with visual studio code
The main part of our script is this magic method called removeBg(). We’ll pass the Image Path as an argument.

So, two methods are very important in this Python Script. One saves the output, and the other will create the mask of the image and the image without background and return.

So, in the first part, we are loading the model. I will also give you the trained model so you can use it directly.
After Loading, we call the removebg() function to remove the background image.
Let’s see how it works I will reopen Remove.bg and get a sample image from their website.

So we can compare the results.
I will save this cat image on my desktop.


I will copy the name and open the script again. And paste the image path here

And run the script.
To see the Results. Go to your Python Project Folder.
Find a Folder named ‘static.’
Now in the static folder, go to inputs.

So, this is the input (this is the main image.)


The Masks folder will have a mask of the same image.


And finally, this is the result. It’s Great!



Now let’s go to Remove.bg. The result here is almost the same.

Thanks to everyone who helped in developing this awesome machine-learning model.
Source Code
You can Download the Full Source Code or Check it out On GitHub
Download The API version here.
By the way, here’s the script!
#start import torch import torch.nn as nn import torch.optim as optim import numpy as np import cv2 import uuid import os from model import U2NET from torch.autograd import Variable from skimage import io, transform from PIL import Image # Get The Current Directory currentDir = os.path.dirname(__file__) # Functions: # Save Results def save_output(image_name, output_name, pred, d_dir, type): predict = pred predict = predict.squeeze() predict_np = predict.cpu().data.numpy() im = Image.fromarray(predict_np*255).convert('RGB') image = io.imread(image_name) imo = im.resize((image.shape[1], image.shape[0])) pb_np = np.array(imo) if type == 'image': # Make and apply mask mask = pb_np[:, :, 0] mask = np.expand_dims(mask, axis=2) imo = np.concatenate((image, mask), axis=2) imo = Image.fromarray(imo, 'RGBA') imo.save(d_dir+output_name) # Remove Background From Image (Generate Mask, and Final Results) def removeBg(imagePath): inputs_dir = os.path.join(currentDir, 'static/inputs/') results_dir = os.path.join(currentDir, 'static/results/') masks_dir = os.path.join(currentDir, 'static/masks/') # convert string of image data to uint8 with open(imagePath, "rb") as image: f = image.read() img = bytearray(f) nparr = np.frombuffer(img, np.uint8) if len(nparr) == 0: return '---Empty image---' # decode image try: img = cv2.imdecode(nparr, cv2.IMREAD_COLOR) except: # build a response dict to send back to client return "---Empty image---" # save image to inputs unique_filename = str(uuid.uuid4()) cv2.imwrite(inputs_dir+unique_filename+'.jpg', img) # processing image = transform.resize(img, (320, 320), mode='constant') tmpImg = np.zeros((image.shape[0], image.shape[1], 3)) tmpImg[:, :, 0] = (image[:, :, 0]-0.485)/0.229 tmpImg[:, :, 1] = (image[:, :, 1]-0.456)/0.224 tmpImg[:, :, 2] = (image[:, :, 2]-0.406)/0.225 tmpImg = tmpImg.transpose((2, 0, 1)) tmpImg = np.expand_dims(tmpImg, 0) image = torch.from_numpy(tmpImg) image = image.type(torch.FloatTensor) image = Variable(image) d1, d2, d3, d4, d5, d6, d7 = net(image) pred = d1[:, 0, :, :] ma = torch.max(pred) mi = torch.min(pred) dn = (pred-mi)/(ma-mi) pred = dn save_output(inputs_dir+unique_filename+'.jpg', unique_filename + '.png', pred, results_dir, 'image') save_output(inputs_dir+unique_filename+'.jpg', unique_filename + '.png', pred, masks_dir, 'mask') return "---Success---" # ------- Load Trained Model -------- print("---Loading Model---") model_name = 'u2net' model_dir = os.path.join(currentDir, 'saved_models', model_name, model_name + '.pth') net = U2NET(3, 1) if torch.cuda.is_available(): net.load_state_dict(torch.load(model_dir)) net.cuda() else: net.load_state_dict(torch.load(model_dir, map_location='cpu')) # ------- Load Trained Model -------- print("---Removing Background...") # ------- Call The removeBg Function -------- imgPath = "Image_File_Path" # Change this to your image path print(removeBg(imgPath)) #end
Also, here is some help if you download the Full Project Folder.
File Structure
when you open the Downloads folder. You’ll find this inside:

Saved models

U2NET

And here is the trained model so you can use it directly.

And we have the script file here.

And the static folder, we have the inputs, masks, and results. You can find them here also. It’s super easy to use.
You can use this requirements text file directly to import and install all the requirements with the pip command.
If you have any questions, please share them in the comments below.
If you find this helpful, share it with your friends!
sir make a detaild video how to create website using this script
sir your script is so good and very useful for beginners like me. so I want to add it as a tool to my website how can I do that could help with that?
thank you very much, sir
I will explain this soon
I love you Hassan.
Your vids/tuts are amazingly well balanced.
Keep up the amazing work.
(please do more of your dry dev humor to.
like the one “Now we are getting dangerous”)
Epic!
Thank you 🙂
I tried to learn to program on Coursera but stopped along the way.
After following your channel on Ai for some time now I am beginning to develop an interest in Python and want to learn with the help of Ai, but I don’t know how to start.
I need your advice and direction on how to start.
Thank you
We will soon have a python course. stay tuned 🙂
Thank you very much for sharing your knowledge. Your content is really of very high value and not everyone shares knowledge
Thanks 🙂
Awesome sir great work.
Good work best of luck
Dear Mr. Hassan.
Thank you for sharing your ideas online for free. Your generosity and selflessness are genuinely appreciated.
I would be much grateful if you could make a detailed video on creating an online tool with the script you gave.
Best regards,
Justice
From Ghana
Thank you!
Hello
Thanks for sharing the script and tutorial
It gives an error message only when running the script
ModuleNotFoundError: No module named ‘torch’
https://postimg.cc/cK05pn75
PLease install requirements
Mr.Hasan,
Remove BG is the most famous site for removing background of the photos.
You are giving a similar tool for free! You are really great.
Thank you so much.
I really appreciate what you are doing Mr Hassan
Thank you!
Hi you are doing a treasure hunt. Thanks so much and very appropriate to you for giving it free to us.
Thank you!
Great job bro..tks
“You can use this requirements text file directly to import and install all the requirements with the pip command.”
There’s no text file?
Hi Hasan,firstly thansk for your effort and I have a question I can not find saved_models/u2net/u2net.pth
Did you download the whole project ? or github, please double check
Hello Mr. Hasan,
first thanks for appreciated effort for making this script for free.
but I ran into problem when I run the script it says : ModuleNotFoundError: No module named ‘torch’.
can you help with this?
thanks,
Please install the requierments
i really appreciate you work mr hassan.
Thank you!
Hey, just watched your YouTube video on this, you did a super job explaining how it all works together with your script. I’ll be setting it up for sure. Really love your videos, watching your videos on building backlinks right now.
Keep putting out great stuff!
Thanks again.
Sincerely,
Richard Weberg
Thank you Richard 🙂
Great project!!!
More greese to your elbow Mr Abul Hasan, we really appreciate your effort.
Thank you very much.
(I’m having trouble in Installing from requirement.txt)
Solution:
1. Download the file from GitHub as this contains the reqiurement.txt
2. Then open the folder in Visual studio, click on requirement.txt then go to view>terminal to access the terminal panel then type “pip install -r ” in the terminal panel (You can copy the requirement.txt file path and then place it in ).
(X file or module is missing)
Solution:
Type “pip install scikit-image”
Above is just one example of installing missing files, you may replace with whatever file is missing and install it.
You will type that command in the Visual Studio terminal.
Kindly Hasan bro make a detailed video as soon as possible from downloading the script and how to add all requirements installation. I will wait for you.
Thank you Hasan. This is the second video of yours that I have watched. I am 10% hooked. You are my AI teacher. I have learned a bit about ChatGPT promting but I am really a beginner with coding and machine learning. I am committed to learning these things. I WILL do this as you have explained, and I will report back to you how I do with it. I want to be ahead of the game. I want to be able to do more and more of what YOU are teaching. You are a TOP teacher as well as tremendously resourceful and creative, and very generous in your spirit. I salute you!
Thank you 🙂
Greetings Mr. Hasan,
I am here to say a big thank you for this gift.
Thank you!
Thank you 🙂