BackgroundRemover
BackgroundRemover copied to clipboard
Remove the background from your headshots!
Background Remover
Description
Background Remover is a SvelteKit app that uses Appwrite Cloud and Azure AI to remove the background from your headshots (and other images).
Features
- Removes background from your picture
- Register via email or login as guest
- Saves images to your profile (for logged in users)
- Allows viewing (and sharing) of picture links (for logged in users)
Setup
There are some necessary steps to get the project up and running.
Azure AI
- Create an Azure account
- Create a Computer Vision resource from the Azure Marketplace.
Keep the endpoint and API key stored with you for later.
Appwrite Cloud
Project
- Create an account on Appwrite Cloud (or sign in if you have one)
- Create a project and add your web app (URL)
- Adding the exact URL is necessary for the reset password link functionality
- Create an API key with
user.read,user.write,documents.read,documents.write,files.read, andfiles.writescopes
Keep the project ID and API key stored with you for later.
Storage
- Create two buckets, one for input images and one for output images
| Input Images Bucket | Output Images Bucket | |
|---|---|---|
| Purpose | Contains images to be processed, have their backgrounds removed, and get deleted after | Contains images that have had their backgrounds removed |
| Id | input | output |
| Permissions |
Keep both your bucket Ids stored with you for later.
Database
- Create a database with one collection, containing the following attributes
| Key | Type | Size | Required |
|---|---|---|---|
| userId | string | 255 | Yes |
| fileId | string | 255 | Yes |
- Set the permissions as visible in the image
Keep the database Id and collection Id stored with you for later.
Function
- Change the branch (Git) to
appwrite-functionsto find the Appwrite function that helps in deleting accounts - Update the project name and project id in the
appwrite.jsonfile, if you kept them different - Deploy the function from the
functions/Delete Accountdirectory, following the configuration details in the function's Readme - Setup the function's environment variables as mentioned in the function's Readme
Keep the function Id stored with you for later.
Environment variables
Rename the .env.example file to .env and add all the necessary environment variables.
VITE_APP_URL: URL of the app with protocol (e.g.: https://bgremover.in)PUBLIC_APPWRITE_COLLECTION_ID: Collection Id from AppwritePUBLIC_APPWRITE_DATABASE_ID: Database Id from AppwritePUBLIC_APPWRITE_PROJECT_ID: Project Id from AppwritePUBLIC_APPWRITE_OUTPUT_IMAGES_BUCKET_ID: Output images bucket Id from AppwritePUBLIC_APPWRITE_INPUT_IMAGES_BUCKET_ID: Input images bucket Id from AppwritePUBLIC_APPWRITE_DELETE_ACCOUNT_FUNCTION_ID: Delete account function Id from AppwriteSECRET_VISION_ENDPOINT: Azure AI Vision endpointSECRET_VISION_KEY: Azure AI Vision API Key
Deployment
Vercel
The svelte.config.js file is currently configured for Vercel since that is where the application is deployed and a custom timeout is configured for server actions.
Other PaaS platforms (Cloudflare, Azure, etc.)
- Install
@sveltejs/adapter-autousing npm/pnpm/yarn - Replace all the code in the
svelte.config.jsfile with the following:
import adapter from '@sveltejs/adapter-auto';
import { preprocessMeltUI } from '@melt-ui/pp';
import { vitePreprocess } from '@sveltejs/kit/vite';
import sequence from 'svelte-sequential-preprocessor';
/** @type {import('@sveltejs/kit').Config} */
const config = {
preprocess: sequence([vitePreprocess(), preprocessMeltUI()])
};
export default config;
After deploying, make sure to update the final URL in the
VITE_APP_URLenvironment variable