Face Swapping in Video and Images with Google Colab Scripts | Learn to swap faces in videos and images with Google Colab scripts for free.

Follow on LinkedIn

Face swapping typically involves using computer vision techniques and machine learning models, and Google Colab can be used to run Python code that leverages these technologies.

To perform face swapping in Google Colab, you can run these commands step by step.

All required Steps:

Face Swap Step 1:

!git clone https://github.com/s0md3v/roop.git
%cd roop
!pip install -r requirements.txt

!git clone https://github.com/s0md3v/roop.git: This command clones a Git repository hosted at the given URL (https://github.com/s0md3v/roop.git). It will download the contents of the repository into the current directory in your Colab environment.

%cd roop: This is a magic command in Jupyter/Colab notebooks that changes the current working directory to the specified path (roop in this case), which was created after cloning the repository.

!pip install -r requirements.txt: This command uses pip (Python package manager) to install the Python packages specified in the requirements.txt file from the roop repository. This file typically contains a list of dependencies or required Python libraries for the project.

Step 2:

!wget https://huggingface.co/ezioruan/inswapper_128.onnx/resolve/main/inswapper_128.onnx -O inswapper_128.onnx
!mkdir models
!mv inswapper_128.onnx ./models

!wget https://huggingface.co/ezioruan/inswapper_128.onnx/resolve/main/inswapper_128.onnx -O inswapper_128.onnx:

wget is a command-line utility to download files from the internet.

This command downloads a file from the specified URL (https://huggingface.co/ezioruan/inswapper_128.onnx/resolve/main/inswapper_128.onnx) and saves it locally as inswapper_128.onnx.

!mkdir models:

mkdir is a command to create a new directory.

This command creates a new directory named models.

!mv inswapper_128.onnx ./models:

mv is a command to move or rename files/directories.

This command moves the file inswapper_128.onnx to the models directory that was created earlier. The ./ denotes the current directory.

Step 3:

!pip uninstall onnxruntime onnxruntime-gpu -y
!pip install torch torchvision torchaudio --force-reinstall --index-url https://download.pytorch.org/whl/cu118
!pip install onnxruntime-gpu

!pip uninstall onnxruntime onnxruntime-gpu -y:

This command attempts to uninstall the onnxruntime and onnxruntime-gpu packages using pip. The -y flag automatically confirms the uninstallation without user confirmation.

!pip install torch torchvision torchaudio --force-reinstall --index-url https://download.pytorch.org/whl/cu118:

This command installs or reinstalls the torch, torchvision, and torchaudio packages, which are components of PyTorch, a popular deep-learning framework.

The --force-reinstall flag forces the reinstallation of these packages.

The --index-url https://download.pytorch.org/whl/cu118 specifies the index URL for downloading the PyTorch wheels specific to CUDA version 11.1 (cu118). This CUDA version corresponds to GPU computation support.

!pip install onnxruntime-gpu:

This command installs the onnxruntime-gpu package using pip. ONNX Runtime is a runtime engine executing ONNX (Open Neural Network Exchange) models efficiently across different platforms.

After this, you can upload the video file and image file that you want to do a face swapping in your video, The face inside the image file should be clear.

Step 4 (Face Swap Final Step):

!python run.py --target /content/video.mp4  --source /content/image.jpg -o /content/swapped.mp4 --execution-provider cuda --frame-processor face_swapper face_enhancer

Now, after running this command you will get a newly converted file name swapped.mp4, always take care of the name of uploaded files, these should not consist of any special character or any capital letter, the file name should be plain and in small cases.

if you want to swap faces in an image then instead of video.mp4 you can use the image file like image2.jpg and don’t forget to replace the extension of swapped.mp4 with swapped.jpg.

The output file will get in the same left-side section, just right-click on it and download it.

Errors you may face during the installation :

If you face any errors like these

I am listing all the working versions for this code to run properly, you can find your required version and install it like this

!pip install package==package_version
ex. !pip install torch==2.1.0

List of working versions:

  1. absl-py==1.4.0
  2. addict==2.4.0
  3. aiohttp==3.9.1
  4. aiosignal==1.3.1
  5. alabaster==0.7.13
  6. albumentations==1.3.1
  7. altair==4.2.2
  8. anyio==3.7.1
  9. appdirs==1.4.4
  10. argon2-cffi==23.1.0
  11. argon2-cffi-bindings==21.2.0
  12. array-record==0.5.0
  13. arviz==0.15.1
  14. astropy==5.3.4
  15. astunparse==1.6.3
  16. async-timeout==4.0.3
  17. atpublic==4.0
  18. attrs==23.1.0
  19. audioread==3.0.1
  20. autograd==1.6.2
  21. Babel==2.14.0
  22. backcall==0.2.0
  23. basicsr==1.4.2
  24. beautifulsoup4==4.11.2
  25. bidict==0.22.1
  26. bigframes==0.17.0
  27. bleach==6.1.0
  28. blinker==1.4
  29. blis==0.7.11
  30. blosc2==2.0.0
  31. bokeh==3.3.2
  32. bqplot==0.12.42
  33. branca==0.7.0
  34. build==1.0.3
  35. CacheControl==0.13.1
  36. cachetools==5.3.2
  37. catalogue==2.0.10
  38. certifi==2022.12.7
  39. cffi==1.16.0
  40. chardet==5.2.0
  41. charset-normalizer==2.1.1
  42. chex==0.1.7
  43. click==8.1.7
  44. click-plugins==1.1.1
  45. cligj==0.7.2
  46. cloudpickle==2.2.1
  47. cmake==3.27.9
  48. cmdstanpy==1.2.0
  49. colorcet==3.0.1
  50. coloredlogs==15.0.1
  51. colorlover==0.3.0
  52. colour==0.1.5
  53. community==1.0.0b1
  54. confection==0.1.4
  55. cons==0.4.6
  56. contextlib2==21.6.0
  57. contourpy==1.2.0
  58. cryptography==41.0.7
  59. cufflinks==0.17.3
  60. cupy-cuda12x==12.2.0
  61. customtkinter==5.2.0
  62. cvxopt==1.3.2
  63. cvxpy==1.3.2
  64. cycler==0.12.1
  65. cymem==2.0.8
  66. Cython==3.0.7
  67. darkdetect==0.8.0
  68. dask==2023.8.1
  69. datascience==0.17.6
  70. db-dtypes==1.2.0
  71. dbus-python==1.2.18
  72. debugpy==1.6.6
  73. decorator==4.4.2
  74. defusedxml==0.7.1
  75. diskcache==5.6.3
  76. distributed==2023.8.1
  77. distro==1.7.0
  78. dlib==19.24.2
  79. dm-tree==0.1.8
  80. docutils==0.18.1
  81. dopamine-rl==4.0.6
  82. duckdb==0.9.2
  83. earthengine-api==0.1.384
  84. easydict==1.11
  85. ecos==2.0.12
  86. editdistance==0.6.2
  87. eerepr==0.0.4
  88. en-core-web-sm
  89. @
  90. https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.6.0/en_core_web_sm-3.6.0-py3-none-any.whl#sha256=83276fc78a70045627144786b52e1f2728ad5e29e5e43916ec37ea9c26a11212
  91. entrypoints==0.4
  92. et-xmlfile==1.1.0
  93. etils==1.6.0
  94. etuples==0.3.9
  95. exceptiongroup==1.2.0
  96. facexlib==0.3.0
  97. fastai==2.7.13
  98. fastcore==1.5.29
  99. fastdownload==0.0.7
  100. fastjsonschema==2.19.0
  101. fastprogress==1.0.3
  102. fastrlock==0.8.2
  103. filelock==3.9.0
  104. filterpy==1.4.5
  105. fiona==1.9.5
  106. firebase-admin==5.3.0
  107. Flask==2.2.5
  108. flatbuffers==23.5.26
  109. flax==0.7.5
  110. folium==0.14.0
  111. fonttools==4.47.0
  112. frozendict==2.3.10
  113. frozenlist==1.4.1
  114. fsspec==2023.4.0
  115. future==0.18.3
  116. gast==0.4.0
  117. gcsfs==2023.6.0
  118. GDAL==3.4.3
  119. gdown==4.6.6
  120. geemap==0.29.6
  121. gensim==4.3.2
  122. geocoder==1.38.1
  123. geographiclib==2.0
  124. geopandas==0.13.2
  125. geopy==2.3.0
  126. gfpgan==1.3.8
  127. gin-config==0.5.0
  128. glob2==0.7
  129. google==2.0.3
  130. google-ai-generativelanguage==0.4.0
  131. google-api-core==2.11.1
  132. google-api-python-client==2.84.0
  133. google-auth==2.17.3
  134. google-auth-httplib2==0.1.1
  135. google-auth-oauthlib==1.0.0
  136. google-cloud-aiplatform==1.38.1
  137. google-cloud-bigquery==3.12.0
  138. google-cloud-bigquery-connection==1.12.1
  139. google-cloud-bigquery-storage==2.24.0
  140. google-cloud-core==2.3.3
  141. google-cloud-datastore==2.15.2
  142. google-cloud-firestore==2.11.1
  143. google-cloud-functions==1.13.3
  144. google-cloud-iam==2.13.0
  145. google-cloud-language==2.9.1
  146. google-cloud-resource-manager==1.11.0
  147. google-cloud-storage==2.8.0
  148. google-cloud-translate==3.11.3
  149. google-colab
  150. @
  151. file:///colabtools/dist/google-colab-1.0.0.tar.gz#sha256=eb6190db7e94f83570d0663e5324b48dbc8d7ffbf066a99973922bc15318ecda
  152. google-crc32c==1.5.0
  153. google-generativeai==0.3.2
  154. google-pasta==0.2.0
  155. google-resumable-media==2.7.0
  156. googleapis-common-protos==1.62.0
  157. googledrivedownloader==0.4
  158. graphviz==0.20.1
  159. greenlet==3.0.2
  160. grpc-google-iam-v1==0.13.0
  161. grpcio==1.60.0
  162. grpcio-status==1.48.2
  163. gspread==3.4.2
  164. gspread-dataframe==3.3.1
  165. gym==0.25.2
  166. gym-notices==0.0.8
  167. h5netcdf==1.3.0
  168. h5py==3.9.0
  169. holidays==0.39
  170. holoviews==1.17.1
  171. html5lib==1.1
  172. httpimport==1.3.1
  173. httplib2==0.22.0
  174. huggingface-hub==0.20.1
  175. humanfriendly==10.0
  176. humanize==4.7.0
  177. hyperopt==0.2.7
  178. ibis-framework==6.2.0
  179. idna==3.4
  180. imageio==2.31.6
  181. imageio-ffmpeg==0.4.9
  182. imagesize==1.4.1
  183. imbalanced-learn==0.10.1
  184. imgaug==0.4.0
  185. importlib-metadata==7.0.0
  186. importlib-resources==6.1.1
  187. imutils==0.5.4
  188. inflect==7.0.0
  189. iniconfig==2.0.0
  190. insightface==0.7.3
  191. install==1.3.5
  192. intel-openmp==2023.2.3
  193. ipyevents==2.0.2
  194. ipyfilechooser==0.6.0
  195. ipykernel==5.5.6
  196. ipyleaflet==0.18.1
  197. ipython==7.34.0
  198. ipython-genutils==0.2.0
  199. ipython-sql==0.5.0
  200. ipytree==0.2.2
  201. ipywidgets==7.7.1
  202. itsdangerous==2.1.2
  203. jax==0.4.23
  204. jaxlib
  205. @
  206. https://storage.googleapis.com/jax-releases/cuda12/jaxlib-0.4.23+cuda12.cudnn89-cp310-cp310-manylinux2014_x86_64.whl#sha256=8e42000672599e7ec0ea7f551acfcc95dcdd0e22b05a1d1f12f97b56a9fce4a8
  207. jeepney==0.7.1
  208. jieba==0.42.1
  209. Jinja2==3.1.2
  210. joblib==1.3.2
  211. jsonpickle==3.0.2
  212. jsonschema==4.19.2
  213. jsonschema-specifications==2023.11.2
  214. jupyter-client==6.1.12
  215. jupyter-console==6.1.0
  216. jupyter-server==1.24.0
  217. jupyter_core==5.5.1
  218. jupyterlab-widgets==3.0.9
  219. jupyterlab_pygments==0.3.0
  220. kaggle==1.5.16
  221. kagglehub==0.1.4
  222. keras==2.13.1
  223. keyring==23.5.0
  224. kiwisolver==1.4.5
  225. langcodes==3.3.0
  226. launchpadlib==1.10.16
  227. lazr.restfulclient==0.14.4
  228. lazr.uri==1.0.6
  229. lazy_loader==0.3
  230. libclang==16.0.6
  231. librosa==0.10.1
  232. lida==0.0.10
  233. lightgbm==4.1.0
  234. linkify-it-py==2.0.2
  235. llmx==0.0.15a0
  236. llvmlite==0.41.1
  237. lmdb==1.4.1
  238. locket==1.0.0
  239. logical-unification==0.4.6
  240. lxml==4.9.4
  241. malloy==2023.1067
  242. Markdown==3.5.1
  243. markdown-it-py==3.0.0
  244. MarkupSafe==2.1.3
  245. matplotlib==3.7.1
  246. matplotlib-inline==0.1.6
  247. matplotlib-venn==0.11.9
  248. mdit-py-plugins==0.4.0
  249. mdurl==0.1.2
  250. miniKanren==1.0.3
  251. missingno==0.5.2
  252. mistune==0.8.4
  253. mizani==0.9.3
  254. mkl==2023.2.0
  255. ml-dtypes==0.2.0
  256. mlxtend==0.22.0
  257. more-itertools==10.1.0
  258. moviepy==1.0.3
  259. mpmath==1.3.0
  260. msgpack==1.0.7
  261. multidict==6.0.4
  262. multipledispatch==1.0.0
  263. multitasking==0.0.11
  264. murmurhash==1.0.10
  265. music21==9.1.0
  266. natsort==8.4.0
  267. nbclassic==1.0.0
  268. nbclient==0.9.0
  269. nbconvert==6.5.4
  270. nbformat==5.9.2
  271. nest-asyncio==1.5.8
  272. networkx==3.0
  273. nibabel==4.0.2
  274. nltk==3.8.1
  275. notebook==6.5.5
  276. notebook_shim==0.2.3
  277. numba==0.58.1
  278. numexpr==2.8.8
  279. numpy==1.24.1
  280. oauth2client==4.1.3
  281. oauthlib==3.2.2
  282. onnx==1.14.0
  283. onnxruntime-gpu==1.16.3
  284. opencv-contrib-python==4.8.0.76
  285. opencv-python==4.8.0.74
  286. opencv-python-headless==4.8.1.78
  287. opennsfw2==0.10.2
  288. openpyxl==3.1.2
  289. opt-einsum==3.3.0
  290. optax==0.1.7
  291. orbax-checkpoint==0.4.4
  292. osqp==0.6.2.post8
  293. packaging==23.2
  294. pandas==1.5.3
  295. pandas-datareader==0.10.0
  296. pandas-gbq==0.19.2
  297. pandas-stubs==1.5.3.230304
  298. pandocfilters==1.5.0
  299. panel==1.3.6
  300. param==2.0.1
  301. parso==0.8.3
  302. parsy==2.1
  303. partd==1.4.1
  304. pathlib==1.0.1
  305. pathy==0.10.3
  306. patsy==0.5.4
  307. peewee==3.17.0
  308. pexpect==4.9.0
  309. pickleshare==0.7.5
  310. Pillow==9.3.0
  311. pip-tools==6.13.0
  312. platformdirs==4.1.0
  313. plotly==5.15.0
  314. plotnine==0.12.4
  315. pluggy==1.3.0
  316. polars==0.17.3
  317. pooch==1.8.0
  318. portpicker==1.5.2
  319. prefetch-generator==1.0.3
  320. preshed==3.0.9
  321. prettytable==3.9.0
  322. proglog==0.1.10
  323. progressbar2==4.2.0
  324. prometheus-client==0.19.0
  325. promise==2.3
  326. prompt-toolkit==3.0.43
  327. prophet==1.1.5
  328. proto-plus==1.23.0
  329. protobuf==4.23.4
  330. psutil==5.9.5
  331. psycopg2==2.9.9
  332. ptyprocess==0.7.0
  333. py-cpuinfo==9.0.0
  334. py4j==0.10.9.7
  335. pyarrow==10.0.1
  336. pyasn1==0.5.1
  337. pyasn1-modules==0.3.0
  338. pycocotools==2.0.7
  339. pycparser==2.21
  340. pyct==0.5.0
  341. pydantic==1.10.13
  342. pydata-google-auth==1.8.2
  343. pydot==1.4.2
  344. pydot-ng==2.0.0
  345. pydotplus==2.0.2
  346. PyDrive==1.3.1
  347. PyDrive2==1.6.3
  348. pyerfa==2.0.1.1
  349. pygame==2.5.2
  350. Pygments==2.16.1
  351. PyGObject==3.42.1
  352. PyJWT==2.3.0
  353. pymc==5.7.2
  354. pymystem3==0.2.0
  355. PyOpenGL==3.1.7
  356. pyOpenSSL==23.3.0
  357. pyparsing==3.1.1
  358. pyperclip==1.8.2
  359. pyproj==3.6.1
  360. pyproject_hooks==1.0.0
  361. pyshp==2.3.1
  362. PySocks==1.7.1
  363. pytensor==2.14.2
  364. pytest==7.4.3
  365. python-apt==0.0.0
  366. python-box==7.1.1
  367. python-dateutil==2.8.2
  368. python-louvain==0.16
  369. python-slugify==8.0.1
  370. python-utils==3.8.1
  371. pytz==2023.3.post1
  372. pyviz_comms==3.0.0
  373. PyWavelets==1.5.0
  374. PyYAML==6.0.1
  375. pyzmq==23.2.1
  376. qdldl==0.1.7.post0
  377. qudida==0.0.4
  378. ratelim==0.1.6
  379. referencing==0.32.0
  380. regex==2023.6.3
  381. requests==2.28.1
  382. requests-oauthlib==1.3.1
  383. requirements-parser==0.5.0
  384. rich==13.7.0
  385. rpds-py==0.15.2
  386. rpy2==3.4.2
  387. rsa==4.9
  388. safetensors==0.4.1
  389. scikit-image==0.19.3
  390. scikit-learn==1.2.2
  391. scipy==1.11.4
  392. scooby==0.9.2
  393. scs==3.2.4.post1
  394. seaborn==0.12.2
  395. SecretStorage==3.3.1
  396. Send2Trash==1.8.2
  397. shapely==2.0.2
  398. six==1.16.0
  399. sklearn-pandas==2.2.0
  400. smart-open==6.4.0
  401. sniffio==1.3.0
  402. snowballstemmer==2.2.0
  403. sortedcontainers==2.4.0
  404. soundfile==0.12.1
  405. soupsieve==2.5
  406. soxr==0.3.7
  407. spacy==3.6.1
  408. spacy-legacy==3.0.12
  409. spacy-loggers==1.0.5
  410. Sphinx==5.0.2
  411. sphinxcontrib-applehelp==1.0.7
  412. sphinxcontrib-devhelp==1.0.5
  413. sphinxcontrib-htmlhelp==2.0.4
  414. sphinxcontrib-jsmath==1.0.1
  415. sphinxcontrib-qthelp==1.0.6
  416. sphinxcontrib-serializinghtml==1.1.9
  417. SQLAlchemy==2.0.23
  418. sqlglot==17.16.2
  419. sqlparse==0.4.4
  420. srsly==2.4.8
  421. stanio==0.3.0
  422. statsmodels==0.14.1
  423. sympy==1.12
  424. tables==3.8.0
  425. tabulate==0.9.0
  426. tb-nightly==2.16.0a20240106
  427. tbb==2021.11.0
  428. tblib==3.0.0
  429. tenacity==8.2.3
  430. tensorboard==2.13.0
  431. tensorboard-data-server==0.7.2
  432. tensorflow==2.13.0
  433. tensorflow-datasets==4.9.4
  434. tensorflow-estimator==2.13.0
  435. tensorflow-gcs-config==2.15.0
  436. tensorflow-hub==0.15.0
  437. tensorflow-io-gcs-filesystem==0.35.0
  438. tensorflow-metadata==1.14.0
  439. tensorflow-probability==0.22.0
  440. tensorstore==0.1.45
  441. termcolor==2.4.0
  442. terminado==0.18.0
  443. text-unidecode==1.3
  444. textblob==0.17.1
  445. tf-slim==1.1.0
  446. tf_keras-nightly==2.16.0.dev2024010610
  447. thinc==8.1.12
  448. threadpoolctl==3.2.0
  449. tifffile==2023.12.9
  450. tinycss2==1.2.1
  451. tk==0.1.0
  452. tkinterdnd2==0.3.0
  453. tokenizers==0.15.0
  454. toml==0.10.2
  455. tomli==2.0.1
  456. toolz==0.12.0
  457. torch==2.1.2+cu118
  458. torchaudio==2.1.2+cu118
  459. torchdata==0.7.0
  460. torchsummary==1.5.1
  461. torchtext==0.16.0
  462. torchvision==0.16.2+cu118
  463. tornado==6.3.2
  464. tqdm==4.65.0
  465. traitlets==5.7.1
  466. traittypes==0.2.1
  467. transformers==4.35.2
  468. triton==2.1.0
  469. tweepy==4.14.0
  470. typer==0.9.0
  471. types-pytz==2023.3.1.1
  472. types-setuptools==69.0.0.0
  473. typing_extensions==4.4.0
  474. tzlocal==5.2
  475. uc-micro-py==1.0.2
  476. uritemplate==4.1.1
  477. urllib3==1.26.13
  478. vega-datasets==0.9.0
  479. wadllib==1.3.6
  480. wasabi==1.1.2
  481. wcwidth==0.2.12
  482. webcolors==1.13
  483. webencodings==0.5.1
  484. websocket-client==1.7.0
  485. Werkzeug==3.0.1
  486. widgetsnbextension==3.6.6
  487. wordcloud==1.9.3
  488. wrapt==1.14.1
  489. xarray==2023.7.0
  490. xarray-einstats==0.6.0
  491. xgboost==2.0.3
  492. xlrd==2.0.1
  493. xxhash==3.4.1
  494. xyzservices==2023.10.1
  495. yapf==0.40.2
  496. yarl==1.9.4
  497. yellowbrick==1.5
  498. yfinance==0.2.33
  499. zict==3.0.0
  500. zipp==3.17.0

You can use chatGPT or perplexity.ai for further help. Happy Coding 🙂

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

×