{ "info": { "author": "Alyssa Quek", "author_email": "alyssaquek@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Face Morpher\n============\n\n| Warp, average and morph human faces!\n| Scripts will automatically detect frontal faces and skip images if\n none is detected.\n\nBuilt with Python, OpenCV, Numpy, Scipy, Stasm.\n\n| Supported on Python 2.7, Python 3.6+ and OpenCV >= 3 (tested with OpenCV 3.4.1)\n| Tested on macOS Mojave and 64bit Linux (dockerized).\n\nRequirements\n--------------\n- Install `OpenCV`_: `Mac installation steps`_\n- Note: OpenCV must be installed either from `Homebrew`_ or `source`_ as stasm requires the library files.\n- ``pip install -r requirements.txt``\n\nEither:\n\n- `Use as local command-line utility`_\n- `Use as pip library`_\n- `Try out in a docker container`_\n\n.. _`Use as local command-line utility`:\n\nUse as local command-line utility\n---------------------------------\n::\n\n $ git clone https://github.com/alyssaq/face_morpher\n\nMorphing Faces\n--------------\n\nMorph from a source to destination image:\n\n::\n\n python facemorpher/morpher.py --src= --dest= --plot\n\nMorph through a series of images in a folder:\n\n::\n\n python facemorpher/morpher.py --images= --out_video=out.avi\n\nAll options listed in ``morpher.py`` (pasted below):\n\n::\n\n Morph from source to destination face or\n Morph through all images in a folder\n\n Usage:\n morpher.py (--src= --dest= | --images=)\n [--width=] [--height=]\n [--num=] [--fps=]\n [--out_frames=] [--out_video=]\n [--plot] [--background=(black|transparent|average)]\n\n Options:\n -h, --help Show this screen.\n --src= Filepath to source image (.jpg, .jpeg, .png)\n --dest= Filepath to destination image (.jpg, .jpeg, .png)\n --images= Folderpath to images\n --width= Custom width of the images/video [default: 500]\n --height= Custom height of the images/video [default: 600]\n --num= Number of morph frames [default: 20]\n --fps= Number frames per second for the video [default: 10]\n --out_frames= Folder path to save all image frames\n --out_video= Filename to save a video\n --plot Flag to plot images [default: False]\n --background= Background of images to be one of (black|transparent|average) [default: black]\n --version Show version.\n\nAveraging Faces\n---------------\n\nAverage faces from all images in a folder:\n\n::\n\n python facemorpher/averager.py --images= --out=average.png\n\nAll options listed in ``averager.py`` (pasted below):\n\n::\n\n Face averager\n\n Usage:\n averager.py --images= [--blur] [--plot]\n [--background=(black|transparent|average)]\n [--width=] [--height=]\n [--out=] [--destimg=]\n\n Options:\n -h, --help Show this screen.\n --images= Folder to images (.jpg, .jpeg, .png)\n --blur Flag to blur edges of image [default: False]\n --width= Custom width of the images/video [default: 500]\n --height= Custom height of the images/video [default: 600]\n --out= Filename to save the average face [default: result.png]\n --destimg= Destination face image to overlay average face\n --plot Flag to display the average face [default: False]\n --background= Background of image to be one of (black|transparent|average) [default: black]\n --version Show version.\n\nSteps (facemorpher folder)\n--------------------------\n\n1. Locator\n^^^^^^^^^^\n\n- Locates face points (using `stasm`_)\n- For a different locator, return an array of (x, y) control face\n points\n\n2. Aligner\n^^^^^^^^^^\n\n- Align faces by resizing, centering and cropping to given size\n\n3. Warper\n^^^^^^^^^\n\n- Given 2 images and its face points, warp one image to the other\n- Triangulates face points\n- Affine transforms each triangle with bilinear interpolation\n\n4a. Morpher\n^^^^^^^^^^^\n\n- Morph between 2 or more images\n\n4b. Averager\n^^^^^^^^^^^^\n\n- Average faces from 2 or more images\n\nBlender\n^^^^^^^\n\nOptional blending of warped image:\n\n- Weighted average\n- Alpha feathering\n- Poisson blend\n\nExamples - `Being John Malkovich`_\n----------------------------------\n\nCreate a morphing video between the 2 images:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n| ``> python facemorpher/morpher.py --src=alyssa.jpg --dest=john_malkovich.jpg``\n| ``--out_video=out.avi``\n\n(out.avi played and recorded as gif)\n\n.. figure:: https://raw.github.com/alyssaq/face_morpher/master/examples/being_john_malvokich.gif\n :alt: gif\n\nSave the frames to a folder:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n| ``> python facemorpher/morpher.py --src=alyssa.jpg --dest=john_malkovich.jpg``\n| ``--out_frames=out_folder --num=30``\n\nPlot the frames:\n^^^^^^^^^^^^^^^^\n\n| ``> python facemorpher/morpher.py --src=alyssa.jpg --dest=john_malkovich.jpg``\n| ``--num=12 --plot``\n\n.. figure:: https://raw.github.com/alyssaq/face_morpher/master/examples/plot.png\n :alt: plot\n\nAverage all face images in a folder:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n85 images used\n\n| ``> python facemorpher/averager.py --images=images --blur --background=transparent``\n| ``--width=220 --height=250``\n\n.. figure:: https://raw.github.com/alyssaq/face_morpher/master/examples/average_faces.png\n :alt: average\\_faces\n\n.. _`Use as pip library`:\n\nUse as pip library\n---------------------------------\n::\n\n $ pip install facemorpher\n\nExamples\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAdditional options are exactly the same as the command line\n\n::\n\n import facemorpher\n\n # Get a list of image paths in a folder\n imgpaths = facemorpher.list_imgpaths('imagefolder')\n\n # To morph, supply an array of face images:\n facemorpher.morpher(imgpaths, plot=True)\n\n # To average, supply an array of face images:\n facemorpher.averager(['image1.png', 'image2.png'], plot=True)\n\n\nOnce pip installed, 2 binaries are also available as a command line utility:\n\n::\n\n $ facemorpher --src= --dest= --plot\n $ faceaverager --images= --plot\n\nTry out in a docker container\n---------------------------------\nMount local folder to `/images` in docker container, run it and enter a bash session.\n--rm removes the container when you close it.\n::\n\n $ docker run -v /Users/alyssa/Desktop/images:/images --name py3 --rm -it jjanzic/docker-python3-opencv bash\n\nOnce you're in the container, install ``facemorpher`` and try the examples listed above\n::\n\n root@0dad0912ebbe:/# pip install facemorpher\n root@0dad0912ebbe:/# facemorpher --src= --dest= --plot\n\nDetails\n------------\n- Face points are detected with stasm. This library relies on the `python wrapper around stasm`_.\n\nDocumentation\n-------------\n\nhttp://alyssaq.github.io/face_morpher\n\nBuild & publish Docs\n^^^^^^^^^^^^^^^^^^^^\n\n::\n\n ./scripts/publish_ghpages.sh\n\nLicense\n-------\n`MIT`_\n\n.. _Being John Malkovich: http://www.rottentomatoes.com/m/being_john_malkovich\n.. _Mac installation steps: https://gist.github.com/alyssaq/f60393545173379e0f3f#file-4-opencv3-with-python3-md\n.. _MIT: http://alyssaq.github.io/mit-license\n.. _OpenCV: http://opencv.org\n.. _Homebrew: https://brew.sh\n.. _source: https://github.com/opencv/opencv\n.. _python wrapper around stasm: https://github.com/alyssaq/stasm\n.. _stasm: http://www.milbo.users.sonic.net/stasm\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/alyssaq/face_morpher", "keywords": "face morphing,averaging,warping", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "facemorpher", "package_url": "https://pypi.org/project/facemorpher/", "platform": "", "project_url": "https://pypi.org/project/facemorpher/", "project_urls": { "Homepage": "https://github.com/alyssaq/face_morpher" }, "release_url": "https://pypi.org/project/facemorpher/5.2.1/", "requires_dist": [ "docopt", "matplotlib", "numpy", "scipy", "stasm" ], "requires_python": "", "summary": "Warp, morph and average human faces!", "version": "5.2.1" }, "last_serial": 4717477, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "5b095fa4e4989306fc3c5662f84730e7", "sha256": "133ff457dca86b17362e60ea31fab946569f59f317a6d14a46101912c0369e17" }, "downloads": -1, "filename": "facemorpher-1.0.1.tar.gz", "has_sig": false, "md5_digest": "5b095fa4e4989306fc3c5662f84730e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 898222, "upload_time": "2015-04-18T12:36:39", "url": "https://files.pythonhosted.org/packages/cb/3c/a55769b2f68d703ca8b2fbf8896d9df4383753d54475ea39d8f06aa7f6d2/facemorpher-1.0.1.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "289988d0ce41a34aebae31d0153ff13b", "sha256": "8f019beaac310252ba188ef1d5457af57ed7163820989e9d472e6feec4960aa9" }, "downloads": -1, "filename": "facemorpher-2.0.0.tar.gz", "has_sig": false, "md5_digest": "289988d0ce41a34aebae31d0153ff13b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2059998, "upload_time": "2016-05-14T21:03:56", "url": "https://files.pythonhosted.org/packages/27/8b/da48fb98cd5072b4ae282cfd341d64abfcde59dbf7c4c49a0d5593678b1b/facemorpher-2.0.0.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "57092a55b980c33da140395049567a84", "sha256": "13527f085704114294f741e64d51678a195b49677a09076c05dbd64dfe489807" }, "downloads": -1, "filename": "facemorpher-3.0.0.tar.gz", "has_sig": false, "md5_digest": "57092a55b980c33da140395049567a84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2665249, "upload_time": "2018-01-09T10:20:58", "url": "https://files.pythonhosted.org/packages/db/27/52086e05b7dacd44f3e3a1f1665319a8ecc2a5e4d397df6607e235e47cb9/facemorpher-3.0.0.tar.gz" } ], "3.0.0a0": [ { "comment_text": "", "digests": { "md5": "1c9669a96e0ba33401934ef31e8826c3", "sha256": "e7f12101275037f5854eec8ebd64b4eafe72e26a8dad0ac0f206cb7c7df2f7c7" }, "downloads": -1, "filename": "facemorpher-3.0.0a0-py3-none-any.whl", "has_sig": false, "md5_digest": "1c9669a96e0ba33401934ef31e8826c3", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 17303, "upload_time": "2018-05-30T10:19:32", "url": "https://files.pythonhosted.org/packages/e4/74/0ba5de9d85b0b23daba66f366535ba97b6f79e5416fe0c544a33fffed528/facemorpher-3.0.0a0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5cdf845d0b8c5acf4f6c8a41a0a66f26", "sha256": "3ed772265e01016fef8e41a0e7d68786150b3d6a8c2225c67f0f47995b012fc3" }, "downloads": -1, "filename": "facemorpher-3.0.0a0.tar.gz", "has_sig": false, "md5_digest": "5cdf845d0b8c5acf4f6c8a41a0a66f26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13052, "upload_time": "2018-05-30T10:19:29", "url": "https://files.pythonhosted.org/packages/19/24/ac60e66f2ef6aee8ea68e1c3ee0244568bd53535fd94976c6dbe19a5ca27/facemorpher-3.0.0a0.tar.gz" } ], "3.0.1a0": [ { "comment_text": "", "digests": { "md5": "c1758561088afcc4c0672e19a3b410b9", "sha256": "43958294119f34325c34f3593996cf03c0ea9fb4b6ff8458084fd98dc9c8d8b6" }, "downloads": -1, "filename": "facemorpher-3.0.1a0-py3-none-any.whl", "has_sig": false, "md5_digest": "c1758561088afcc4c0672e19a3b410b9", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 17301, "upload_time": "2018-05-30T10:20:05", "url": "https://files.pythonhosted.org/packages/11/df/84f98230a66969e92360874ce9e0be479dee1f3cbbd4d426289bfab2a6c5/facemorpher-3.0.1a0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a817aaf6aa061b33a2bc49f95f1e5c5a", "sha256": "187325e4c7236b04af485b83645fe8be62b2f9f795b1709e42403841a019d9bc" }, "downloads": -1, "filename": "facemorpher-3.0.1a0.tar.gz", "has_sig": false, "md5_digest": "a817aaf6aa061b33a2bc49f95f1e5c5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13052, "upload_time": "2018-05-30T10:20:02", "url": "https://files.pythonhosted.org/packages/a2/16/7abfe64d33ae6324d4d36f4eb26f524a429f2f1e00b195f00fff2b2a14a9/facemorpher-3.0.1a0.tar.gz" } ], "3.3.3": [ { "comment_text": "", "digests": { "md5": "ab76786227c4e3cc1f7e423dbe74be1c", "sha256": "40e481c14f3b0124d711b92649353ef9a095e791b06be7b0df89cdb97c9f4e3c" }, "downloads": -1, "filename": "facemorpher-3.3.3.tar.gz", "has_sig": false, "md5_digest": "ab76786227c4e3cc1f7e423dbe74be1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2637634, "upload_time": "2018-01-11T02:24:06", "url": "https://files.pythonhosted.org/packages/99/b9/212d8c47904bf7a66a20d53a2f913ff1946200a8df8e24a6f7f536b27c2a/facemorpher-3.3.3.tar.gz" } ], "3.4.1": [ { "comment_text": "", "digests": { "md5": "da3b8827e92b3d267dd49b129750f866", "sha256": "9bfe51a7bbebec68c6a93dae397034f1324b6259f5813b67382e548cc1bf9454" }, "downloads": -1, "filename": "facemorpher-3.4.1.tar.gz", "has_sig": false, "md5_digest": "da3b8827e92b3d267dd49b129750f866", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2637599, "upload_time": "2018-01-21T16:05:43", "url": "https://files.pythonhosted.org/packages/08/95/8ad00c7001e7b9c790d711b5253535327ee8c313012c3ccd0d3c56a120ed/facemorpher-3.4.1.tar.gz" } ], "3.4.2": [ { "comment_text": "", "digests": { "md5": "ae835581471d23695b93773469acc12e", "sha256": "5f879bfe2b6a02fe6c4fd6591c2157a83220f20a66591d993531655e0c25f330" }, "downloads": -1, "filename": "facemorpher-3.4.2.tar.gz", "has_sig": false, "md5_digest": "ae835581471d23695b93773469acc12e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2637643, "upload_time": "2018-04-11T01:40:50", "url": "https://files.pythonhosted.org/packages/4e/f8/1b77f801fbbbb8b3fef6d45c73749ce8dd38fc4ef2ec4cf84c7b5d055158/facemorpher-3.4.2.tar.gz" } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "5986d95c1f6fbcd5c18da91d3d12d536", "sha256": "0ab3ed1e219e8ddf5926235c8c7996edfbd319fc12a21d0eddf3a947f86196c5" }, "downloads": -1, "filename": "facemorpher-4.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5986d95c1f6fbcd5c18da91d3d12d536", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 1500608, "upload_time": "2018-05-28T12:55:36", "url": "https://files.pythonhosted.org/packages/0f/6c/c85516e2cb6ef7e55cffe7130347767c20af641a8b4f804bafa02578e86c/facemorpher-4.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9732ea020fe6f3b09605ecbf5df50f2b", "sha256": "551b03912fd2c8ae001ee01327bd922b0f2d9ff0a96a3e9503eb42d02f04d814" }, "downloads": -1, "filename": "facemorpher-4.0.0.tar.gz", "has_sig": false, "md5_digest": "9732ea020fe6f3b09605ecbf5df50f2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1484379, "upload_time": "2018-05-28T12:55:30", "url": "https://files.pythonhosted.org/packages/95/ca/e450e9a2269919a2d3dfad18c16822351570194732d87e05d54c08aa8ce4/facemorpher-4.0.0.tar.gz" } ], "5.0.0": [ { "comment_text": "", "digests": { "md5": "d143085e323bac4f873811780b3008dc", "sha256": "73719e475975e8fd1f634b770ca0f1f497482eb09de5eccb031b99c4dc3363b9" }, "downloads": -1, "filename": "facemorpher-5.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d143085e323bac4f873811780b3008dc", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 17275, "upload_time": "2018-05-30T10:31:37", "url": "https://files.pythonhosted.org/packages/1d/8e/6ff79c75643f281ccaaaf9dd71b828e10c9bd5b024973096dc5fcb4c0ff1/facemorpher-5.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "742f18de65fae2d4c7f057d2c36fcee4", "sha256": "31e97d2297fd8927d33511be21e85ba839305504ec0611ecb361fa42ac065679" }, "downloads": -1, "filename": "facemorpher-5.0.0.tar.gz", "has_sig": false, "md5_digest": "742f18de65fae2d4c7f057d2c36fcee4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13044, "upload_time": "2018-05-30T10:31:34", "url": "https://files.pythonhosted.org/packages/44/13/b5b1312564fbfd9d6893ea91165dd65784bf4b398a0c30a89dc0f02a14dd/facemorpher-5.0.0.tar.gz" } ], "5.1.0": [ { "comment_text": "", "digests": { "md5": "ff95434c68823528981e1ec69ca5c66e", "sha256": "f3b14fd8a816f916e21940de41aab1221a71af0ebbbbeff58097ac8355e662d9" }, "downloads": -1, "filename": "facemorpher-5.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ff95434c68823528981e1ec69ca5c66e", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 17662, "upload_time": "2018-10-30T18:05:50", "url": "https://files.pythonhosted.org/packages/c1/8e/a794d96410b90bc7f33286a1e9a8db264bb1d8099575b341406daf92447d/facemorpher-5.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e23f365dc5dc62e4e240cab9794d00d", "sha256": "83feefcde6e7827e36a241e8ad226efc161d7e9dee04cbed13e90a4ffcc369bf" }, "downloads": -1, "filename": "facemorpher-5.1.0.tar.gz", "has_sig": false, "md5_digest": "1e23f365dc5dc62e4e240cab9794d00d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13301, "upload_time": "2018-10-30T18:05:47", "url": "https://files.pythonhosted.org/packages/d2/e6/af39413be1f02748d24a0652d7298baf64d5e617136beb2e4be26a2068c5/facemorpher-5.1.0.tar.gz" } ], "5.2.0": [ { "comment_text": "", "digests": { "md5": "e5812a109032e609d3bd0735bed402b9", "sha256": "5f5e00102ca0c64415d8a540de331f8689713a49db2776fec3d14373d9e793d5" }, "downloads": -1, "filename": "facemorpher-5.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "e5812a109032e609d3bd0735bed402b9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20923, "upload_time": "2019-01-05T10:46:18", "url": "https://files.pythonhosted.org/packages/db/20/866a89b037acccc94bc1bf3f1af8888b4ba5497469af4bfb2dfc745867e1/facemorpher-5.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2bfa14e11dc53bd716cb5a79bac3ab1b", "sha256": "befbcec2b832404113eb62341f3a093fc77200652404a0964056a2d02388869f" }, "downloads": -1, "filename": "facemorpher-5.2.0.tar.gz", "has_sig": false, "md5_digest": "2bfa14e11dc53bd716cb5a79bac3ab1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13265, "upload_time": "2019-01-05T10:46:14", "url": "https://files.pythonhosted.org/packages/5e/e7/29f8d85cd0df014f086ea046ca1051a8db17146d5c390111f58431ce09ee/facemorpher-5.2.0.tar.gz" } ], "5.2.1": [ { "comment_text": "", "digests": { "md5": "134e7de2b9aaa4fb2898fd42cb22d507", "sha256": "e1406e1701b8d21e5c3ddc46f7466bd5bfcb53fd0be8717e6b9b45c70841485b" }, "downloads": -1, "filename": "facemorpher-5.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "134e7de2b9aaa4fb2898fd42cb22d507", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 20926, "upload_time": "2019-01-05T13:14:36", "url": "https://files.pythonhosted.org/packages/07/bf/3b7760d19566624e1f831e9aff26228cd5c8447b1aa1189866980a27ccf5/facemorpher-5.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "975512cc0b1a8d2e57536d5f8cd668ca", "sha256": "a81568cce4f2b8cfe41bfa71e5de3aa32ad66d2de5f900e3d8c3812d159a61c1" }, "downloads": -1, "filename": "facemorpher-5.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "975512cc0b1a8d2e57536d5f8cd668ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17601, "upload_time": "2019-01-05T13:14:38", "url": "https://files.pythonhosted.org/packages/6b/4d/b0d03069d58a71da2b94db1ac8f1326dfffa55899bc0d202e9fd6d95e59c/facemorpher-5.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "088bb5fb83d4fb91017e081fae022aff", "sha256": "5dadb7b62e34d9ba63bfd4c75b59dbd1139caa80b28512212393efdd41b93374" }, "downloads": -1, "filename": "facemorpher-5.2.1.tar.gz", "has_sig": false, "md5_digest": "088bb5fb83d4fb91017e081fae022aff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13082, "upload_time": "2019-01-05T13:14:39", "url": "https://files.pythonhosted.org/packages/c8/ba/43c1832eea880d396d69fda96cde225e2dc2caa4d9382309d367bd6f1873/facemorpher-5.2.1.tar.gz" } ], "5.2.dev0": [ { "comment_text": "", "digests": { "md5": "590faea028f79db14b84c29217a2f2a1", "sha256": "fc8a4a96afac4f6aac2b2f1e63813a4e5442e71e12e84b401bdb3624123429cd" }, "downloads": -1, "filename": "facemorpher-5.2.dev0-py2-none-any.whl", "has_sig": false, "md5_digest": "590faea028f79db14b84c29217a2f2a1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21443, "upload_time": "2019-01-20T07:36:53", "url": "https://files.pythonhosted.org/packages/17/44/2c4aacf9fb237a493130033e3037df0fbe98eafc131ff70c8a5a1d3fe26c/facemorpher-5.2.dev0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "58ee659f6e69174d39d83c392b93c649", "sha256": "d1035cf54bde39d4bb447d88796711cf6e6ad3d34c8a8c9d958df0906ffa36c8" }, "downloads": -1, "filename": "facemorpher-5.2.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "58ee659f6e69174d39d83c392b93c649", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18137, "upload_time": "2019-01-20T07:36:55", "url": "https://files.pythonhosted.org/packages/71/13/c8e03b9831e63a2ed1f8165798ed141a9f13cb14f895cb01aad8a844194f/facemorpher-5.2.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "964af10e650993475a30e959af20ca13", "sha256": "27306b0a20b1c80adc446865c09aeba740675d84fb1b5a280e5a4250acfb391e" }, "downloads": -1, "filename": "facemorpher-5.2.dev0.tar.gz", "has_sig": false, "md5_digest": "964af10e650993475a30e959af20ca13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13687, "upload_time": "2019-01-20T07:36:56", "url": "https://files.pythonhosted.org/packages/4e/b6/0e787d12c3445e85ea379e26178551395531343e62414ba248f5287a12f4/facemorpher-5.2.dev0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "134e7de2b9aaa4fb2898fd42cb22d507", "sha256": "e1406e1701b8d21e5c3ddc46f7466bd5bfcb53fd0be8717e6b9b45c70841485b" }, "downloads": -1, "filename": "facemorpher-5.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "134e7de2b9aaa4fb2898fd42cb22d507", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 20926, "upload_time": "2019-01-05T13:14:36", "url": "https://files.pythonhosted.org/packages/07/bf/3b7760d19566624e1f831e9aff26228cd5c8447b1aa1189866980a27ccf5/facemorpher-5.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "975512cc0b1a8d2e57536d5f8cd668ca", "sha256": "a81568cce4f2b8cfe41bfa71e5de3aa32ad66d2de5f900e3d8c3812d159a61c1" }, "downloads": -1, "filename": "facemorpher-5.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "975512cc0b1a8d2e57536d5f8cd668ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17601, "upload_time": "2019-01-05T13:14:38", "url": "https://files.pythonhosted.org/packages/6b/4d/b0d03069d58a71da2b94db1ac8f1326dfffa55899bc0d202e9fd6d95e59c/facemorpher-5.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "088bb5fb83d4fb91017e081fae022aff", "sha256": "5dadb7b62e34d9ba63bfd4c75b59dbd1139caa80b28512212393efdd41b93374" }, "downloads": -1, "filename": "facemorpher-5.2.1.tar.gz", "has_sig": false, "md5_digest": "088bb5fb83d4fb91017e081fae022aff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13082, "upload_time": "2019-01-05T13:14:39", "url": "https://files.pythonhosted.org/packages/c8/ba/43c1832eea880d396d69fda96cde225e2dc2caa4d9382309d367bd6f1873/facemorpher-5.2.1.tar.gz" } ] }