# QQ's "Different Dimension Me" Animefier Python library
Python wrapper for [QQ's "Different Dimension Me" AI](https://h5.tu.qq.com/web/ai-2d/cartoon/index) API, that applies an anime-theme to any given picture.
## Installing
This package was developed & tested under Python 3.9. Available on [PyPI](https://pypi.org/project/qqddm):
```bash
pip install --user qqddm
```
## Usage
Check the [example](example.py) code.
### Known issues and limitations of the API
- **Only pictures with human faces**: since 2022-12-06, the QQ's API became stricter with the pictures being converted, and requires them to have a human face.
- **Forbidden images**: the QQ's API refuses to convert images with sensible or political content.
## Changelog
Versions 0.y.z are expected to be unstable, and the library API may change on Minor (y) releases.
- 0.1.1
- Update to the new "overseas" API, which can be used from outside China
- Fix how images are downloaded using threads
- 0.0.3
- Add new custom exception `ParamInvalidQQDDMApiResponseException`
- Refactor mapping of API response codes with custom exceptions, now done programatically, defining the corresponding response code on each exception class
- 0.0.2
- Add new `x-sign` headers required by the API since 2022-12-06.
- Add new custom exceptions based on errors returned by the API: `VolumnLimitQQDDMApiResponseException`, `AuthFailedQQDDMApiResponseException`, `NotAllowedCountryQQDDMApiResponseException`, `NoFaceInPictureQQDDMApiResponseException`.
- 0.0.1
- Initial release:
- Class-based interface.
- Pass an image (as bytes) and send it to QQ API, returning the resulting images URLs.
- Download the returned images URLs.
- Requests settings (different for QQ API and for downloading result images): request timeouts, proxy, user-agents.
Raw data
{
"_id": null,
"home_page": "https://github.com/David-Lor/python-qqddm",
"name": "qqddm",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "qq,different dimension me,anime,ai",
"author": "David Lorenzo",
"author_email": "17401854+David-Lor@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/ab/1d/178549c45a1ce10525af88b8b3894ca70834d29630421fd6f40eee83e2b9/qqddm-0.1.1.tar.gz",
"platform": null,
"description": "# QQ's \"Different Dimension Me\" Animefier Python library\n\nPython wrapper for [QQ's \"Different Dimension Me\" AI](https://h5.tu.qq.com/web/ai-2d/cartoon/index) API, that applies an anime-theme to any given picture.\n\n## Installing\n\nThis package was developed & tested under Python 3.9. Available on [PyPI](https://pypi.org/project/qqddm):\n\n```bash\npip install --user qqddm\n```\n\n## Usage\n\nCheck the [example](example.py) code.\n\n### Known issues and limitations of the API\n\n- **Only pictures with human faces**: since 2022-12-06, the QQ's API became stricter with the pictures being converted, and requires them to have a human face.\n- **Forbidden images**: the QQ's API refuses to convert images with sensible or political content.\n\n## Changelog\n\nVersions 0.y.z are expected to be unstable, and the library API may change on Minor (y) releases.\n\n- 0.1.1\n - Update to the new \"overseas\" API, which can be used from outside China\n - Fix how images are downloaded using threads\n- 0.0.3\n - Add new custom exception `ParamInvalidQQDDMApiResponseException`\n - Refactor mapping of API response codes with custom exceptions, now done programatically, defining the corresponding response code on each exception class\n- 0.0.2\n - Add new `x-sign` headers required by the API since 2022-12-06.\n - Add new custom exceptions based on errors returned by the API: `VolumnLimitQQDDMApiResponseException`, `AuthFailedQQDDMApiResponseException`, `NotAllowedCountryQQDDMApiResponseException`, `NoFaceInPictureQQDDMApiResponseException`.\n- 0.0.1\n - Initial release:\n - Class-based interface.\n - Pass an image (as bytes) and send it to QQ API, returning the resulting images URLs.\n - Download the returned images URLs.\n - Requests settings (different for QQ API and for downloading result images): request timeouts, proxy, user-agents.\n\n\n",
"bugtrack_url": null,
"license": "ISC",
"summary": "",
"version": "0.1.1",
"split_keywords": [
"qq",
"different dimension me",
"anime",
"ai"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ab1d178549c45a1ce10525af88b8b3894ca70834d29630421fd6f40eee83e2b9",
"md5": "75b0dc7d48fbe3aa3f2e6b5bff2860b7",
"sha256": "6dfdd0235b5326d1ef0db34aa1d012becae647dae7e9f511b92765e28c74d03e"
},
"downloads": -1,
"filename": "qqddm-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "75b0dc7d48fbe3aa3f2e6b5bff2860b7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7352,
"upload_time": "2023-01-07T16:08:47",
"upload_time_iso_8601": "2023-01-07T16:08:47.350178Z",
"url": "https://files.pythonhosted.org/packages/ab/1d/178549c45a1ce10525af88b8b3894ca70834d29630421fd6f40eee83e2b9/qqddm-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-01-07 16:08:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "David-Lor",
"github_project": "python-qqddm",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "qqddm"
}