# Cartoonizer > Convert images and videos into a cartoon! The webapp is deployed here - https://cartoonize-lkqov62dia-de.a.run.app
Powered by Algorithmia
You can find a writeup on this webapp's architecture [here](https://medium.com/@Niraj_pandkar/how-we-built-an-inexpensive-scalable-architecture-to-cartoonize-the-world-8610050f90a0)! --- ## Contents - [Prerequisites for Google Cloud and Algorithmia](#prerequisites-for-google-cloud-and-algorithmia) - [Installation](#installation) - [Docker](#using-docker) - [VirtualEnv](#using-virtualenv) - [Google Colab](#using-google-colab) - [Sample Image and Video](#sample-image-and-video) --- ## Prerequisites for Google Cloud and Algorithmia **These are important steps if you want to leverage Google buckets, signed URLs and Algorithmia's platform. Skip this if you want to run locally / colab.** ### Cloud Run authentication To use any functionalities pertaining to Google Cloud, you'll need a global authentication file (JSON). You can obtain this JSON by following the steps given here - [Getting started with authentication](https://cloud.google.com/docs/authentication/getting-started) After you get the JSON file, rename it to `token.json` (so that it's compatible with the codebase). Set the environment variable in your terminal - ``` export GOOGLE_APPLICATION_CREDENTIALS="/path/to/token.json" ``` **Notes**: - You can set it permanently by adding this line to `~/.bashrc`. - `Dockerfile` already includes the setting of this particular environment variable. :) ### Algorithmia We used the Serveless AI Layer product of [Algorithmia](https://algorithmia.com/serverless-ai-layer) for inference on videos. To learn more on how to deploy your model in Algorithmia, check here - https://algorithmia.com/developers --- ## Installation ### Application tested on: - python 3.7 - tensorflow 2.1.0 - tf_slim 1.1.0 - ffmpeg 3.4.8 - Cuda version 10.1 - OS: Linux (Ubuntu 18.04) ### Using Docker The easiest way to get the webapp running is by using the Dockerfile: 1. `cd` into the root directory and build the image ``` docker build -t cartoonize . ``` **Note**: Set the appropriate values in `config.yaml` before building the image. 2. Run the container by exposing the appropriate ports ``` docker run -p 8080:8080 cartoonize ``` ### Using `virtualenv` 1. Make a virtual environment using `virutalenv` and activate it ``` virtualenv -p python3 cartoonize source cartoonize/bin/activate ``` 2. Install python dependencies ``` pip install -r requirements.txt ``` 3. Run the webapp. Be sure to set the appropriate values in `config.yaml` file before running the application. ``` python app.py ``` ### Using [Google Colab](https://colab.research.google.com/drive/1oDhMEVMcsRbe7bt-2A7cDsx44KQpQwuB?usp=sharing) 1. Clone the repository using either of the below mentioned way: - Using Command: - Create a new Notebook in Colab and in the cell execute the below command. ``` ! git clone https://github.com/experience-ml/cartoonize.git ``` **Note:** Don't forget to add `!` at the beginning of the command - From Colab User Interface ``` Open Colab └── File └── Open Notebook └── Github └── paste the Url of the repository ``` Note : Before running the application change the runtime to GPU for processing videos but you for images CPU shall also work just fine. ``` Runtime └── Change runtime type └── Select GPU ``` 2. After cloning the repository navigate to the `/cartoonize` using below command in the notebook cell: ``` %cd cartoonize ``` 3. Run the below commands in the notebook cell to install the requirements. ``` !pip install -r requirements.txt ``` 4. In config.yaml file set: ``` colab-mode: true ``` 5. Launch the flask app on ngrok ``` !python app.py ``` #### Note : Sample [Google Colab Notebook](https://colab.research.google.com/drive/1oDhMEVMcsRbe7bt-2A7cDsx44KQpQwuB?usp=sharing) for reference --- ## Sample Image and Video ### Emma Watson Cartoonized Emma Watson Cartoonized ### Youtube Video of Avenger's Bar Scene Cartoonized [![Cartoonized version of Avenger's bar scene](http://img.youtube.com/vi/GqduSLcmhto/0.jpg)](http://www.youtube.com/watch?v=GqduSLcmhto "AVENGERS BAR SCENE [Cartoonized Version]") --- ## License 1. Copyright © Cartoonizer ([Demo webapp](https://cartoonize-lkqov62dia-de.a.run.app/)) - Authors: [Niraj Pandkar](https://twitter.com/Niraj_pandkar) and [Tejas Mahajan](https://twitter.com/tjdevWorks). - Licensed under the [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode) - Commercial application is prohibited by license 2. Copyright (C) Xinrui Wang, Jinze Yu. ([White box cartoonization](https://github.com/SystemErrorWang/White-box-Cartoonization)) - All rights reserved. - Licensed under the CC BY-NC-SA 4.0 - Also, Commercial application is prohibited license (https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode).