{"id":45171178,"url":"https://github.com/FennelFetish/qapyq","last_synced_at":"2026-03-05T06:00:38.920Z","repository":{"id":258535224,"uuid":"873907033","full_name":"FennelFetish/qapyq","owner":"FennelFetish","description":"An image viewer and AI-assisted editing/captioning/masking tool that helps with curating datasets for generative AI models, finetunes and LoRA.","archived":false,"fork":false,"pushed_at":"2026-02-01T15:50:50.000Z","size":3414,"stargazers_count":148,"open_issues_count":2,"forks_count":8,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-02-01T23:38:49.942Z","etag":null,"topics":["ai","annotation","automation","desktop-app","fine-tuning","image","image-processing","llm","lora","mask","multimodal","object-detection","stable-diffusion","text","vlm"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FennelFetish.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-16T23:36:29.000Z","updated_at":"2026-02-01T15:50:53.000Z","dependencies_parsed_at":"2024-10-24T19:55:55.406Z","dependency_job_id":"901c97ed-998f-4e27-97fd-be099ae51c91","html_url":"https://github.com/FennelFetish/qapyq","commit_stats":null,"previous_names":["fennelfetish/qapyq"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/FennelFetish/qapyq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FennelFetish%2Fqapyq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FennelFetish%2Fqapyq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FennelFetish%2Fqapyq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FennelFetish%2Fqapyq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FennelFetish","download_url":"https://codeload.github.com/FennelFetish/qapyq/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FennelFetish%2Fqapyq/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30111779,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T03:40:26.266Z","status":"ssl_error","status_checked_at":"2026-03-05T03:39:15.902Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","annotation","automation","desktop-app","fine-tuning","image","image-processing","llm","lora","mask","multimodal","object-detection","stable-diffusion","text","vlm"],"created_at":"2026-02-20T08:05:55.701Z","updated_at":"2026-03-05T06:00:38.911Z","avatar_url":"https://github.com/FennelFetish.png","language":"Python","funding_links":[],"categories":["public repositories"],"sub_categories":["annotation tools"],"readme":"\u003cimg src=\"res/qapyq.png\" align=\"left\" /\u003e\n\n# qapyq\n\u003csup\u003e(CapPic)\u003c/sup\u003e\u003cbr /\u003e\n**An image viewer and AI-assisted editing tool that helps with curating datasets for generative AI models, finetunes and LoRA.**\n\n\u003cbr clear=\"left\"/\u003e\n\u003cbr /\u003e\u003cbr /\u003e\n\n![Screenshot of qapyq with its 5 windows open.](https://www.alchemists.ch/qapyq/overview-3.jpg)\n\n\u003ca href=\"https://camo.githubusercontent.com/059f5cef1671955473d5d3e096263cf85910a2d52094c389b2924cca1b1a33c5/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f647261672d6e2d64726f702e676966\"\u003e\u003cimg alt=\"Edit captions quickly with drag-and-drop support\" src=\"https://camo.githubusercontent.com/059f5cef1671955473d5d3e096263cf85910a2d52094c389b2924cca1b1a33c5/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f647261672d6e2d64726f702e676966\" width=\"30%\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"https://camo.githubusercontent.com/71df5556ba81a944f3a28ed3760644b6f7c0c455b4ed639a80418b51d0cae704/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f7461675f6d75742d6578636c75736976652e676966\"\u003e\u003cimg alt=\"Select one-of-many\" src=\"https://camo.githubusercontent.com/71df5556ba81a944f3a28ed3760644b6f7c0c455b4ed639a80418b51d0cae704/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f7461675f6d75742d6578636c75736976652e676966\" width=\"30%\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"https://camo.githubusercontent.com/9403e354708969d4c5f1262583294913bd238e8b38df640e2a7fc36a313bf686/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f72756c65732e676966\"\u003e\u003cimg alt=\"Apply sorting and filtering rules\" src=\"https://camo.githubusercontent.com/9403e354708969d4c5f1262583294913bd238e8b38df640e2a7fc36a313bf686/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f72756c65732e676966\" width=\"30%\"\u003e\u003c/img\u003e\u003c/a\u003e\n\n\u003ca href=\"https://camo.githubusercontent.com/74122b177a2f5a1cd4add5d749b90a49ac2f0cec631363ef861199a7c90566d7/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f63726f702e676966\"\u003e\u003cimg alt=\"Quick cropping\" src=\"https://camo.githubusercontent.com/74122b177a2f5a1cd4add5d749b90a49ac2f0cec631363ef861199a7c90566d7/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f63726f702e676966\" width=\"30%\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"https://camo.githubusercontent.com/d15df56575d4d69fe2cc04c5ed822e6cc95c0208185df3464a21fc351c4b04fb/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f636f6d706172652e676966\"\u003e\u003cimg alt=\"Image comparison\" src=\"https://camo.githubusercontent.com/d15df56575d4d69fe2cc04c5ed822e6cc95c0208185df3464a21fc351c4b04fb/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f636f6d706172652e676966\" width=\"30%\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"https://camo.githubusercontent.com/1583a08a56e63f4d6dae0c59f6572310558bb7c9f8e7b79e7e4e53af6e2663ee/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f6d61736b2d322e676966\"\u003e\u003cimg alt=\"Draw masks manually or apply automatic detection and segmentation\" src=\"https://camo.githubusercontent.com/1583a08a56e63f4d6dae0c59f6572310558bb7c9f8e7b79e7e4e53af6e2663ee/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f6d61736b2d322e676966\" width=\"30%\"\u003e\u003c/img\u003e\u003c/a\u003e\n\n\n\u003ca href=\"https://camo.githubusercontent.com/b6cf81d56d9d4e9e2bbc8fb031e03e9380bc0a5c5e47b4885edd8ff0cc043b6b/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f636f6e642d666f6f74776561722d686169722d666c6f6f722e676966\"\u003e\u003cimg alt=\"Transform tags using conditional rules\" src=\"https://camo.githubusercontent.com/b6cf81d56d9d4e9e2bbc8fb031e03e9380bc0a5c5e47b4885edd8ff0cc043b6b/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f636f6e642d666f6f74776561722d686169722d666c6f6f722e676966\" width=\"30%\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"https://camo.githubusercontent.com/b094b255ba1d18d83253dba4f7f813ac6d64ea6cedac7330437eb0791479f062/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f6d756c7469656469742d666f6375732d636f6d707265737365642e676966\"\u003e\u003cimg alt=\"Multi-Edit and Focus Mode\" src=\"https://camo.githubusercontent.com/b094b255ba1d18d83253dba4f7f813ac6d64ea6cedac7330437eb0791479f062/68747470733a2f2f7777772e616c6368656d697374732e63682f71617079712f6d756c7469656469742d666f6375732d636f6d707265737365642e676966\" width=\"60%\"\u003e\u003c/img\u003e\u003c/a\u003e\n\n\n## Features\n\n- **Image Viewer**: Display and navigate images\n  - Quick-starting desktop application built with Qt\n  - Runs smoothly with a million images\n  - Modular interface that lets you place windows on different monitors\n  - Open multiple tabs\n  - Zoom/pan and fullscreen mode\n  - Gallery with thumbnails and optionally captions \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide#gallery)\u003c/sup\u003e\n  - Semantic image sorting with text prompts \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide#semantic-sort)\u003c/sup\u003e\n  - Compare two images \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide#compare-tool)\u003c/sup\u003e\n  - Measure size, area and pixel distances \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide#measure-tool)\u003c/sup\u003e\n  - Slideshow \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide#slideshow-tool)\u003c/sup\u003e\n\n- **Image/Mask Editor**: Prepare images for training\n  - Crop and save parts of images \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide#crop-tool)\u003c/sup\u003e\n  - Scale images, optionally using AI upscale models \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide#scale-tool)\u003c/sup\u003e\n  - Dynamic save paths with template variables \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide#path-settings)\u003c/sup\u003e\n  - Manually edit masks with multiple layers \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide#mask-tool)\u003c/sup\u003e\n  - Generate masks with AI models \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/Setup#mask)\u003c/sup\u003e\n  - Record masking operations into macros \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide#macro-recording)\u003c/sup\u003e\n  - VAE-encode images and check their latent representation \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide#vae-reconstruction)\u003c/sup\u003e\n\n- **Captioning**: Describe images with text\n  - Edit captions manually with drag-and-drop support \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide-%E2%80%90-Captioning#caption-window)\u003c/sup\u003e\n  - Save multiple captions in a JSON file per image \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide-%E2%80%90-Captioning#captions-in-text-files-vs-json-files)\u003c/sup\u003e\n  - *Multi-Edit Mode*: Edit captions of multiple images simultaneously \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide-%E2%80%90-Captioning#multi-edit-mode)\u003c/sup\u003e\n  - *Focus Mode*: Add the same tags to many files quickly \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide-%E2%80%90-Captioning#focus-mode)\u003c/sup\u003e\n  - Tag grouping, merging, sorting, filtering and replacement rules \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide-%E2%80%90-Captioning#rules)\u003c/sup\u003e\n  - Colored text highlighting\n  - Autocomplete with tags from your groups and CSV files \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide-%E2%80%90-Captioning#autocomplete)\u003c/sup\u003e\n  - CLIP Token Counter \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide-%E2%80%90-Captioning#token-counter)\u003c/sup\u003e\n  - Automated captioning with support for grounding \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide-%E2%80%90-Tips-and-Workflows#grounding)\u003c/sup\u003e\n  - Dynamic prompts with templates and text transformations \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide-%E2%80%90-Captioning#templates)\u003c/sup\u003e\n  - Multi-turn conversations with VLMs \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide-%E2%80%90-Captioning#prompts-and-conversations)\u003c/sup\u003e\n  - Further refinement with LLMs\n\n- **Stats/Filters**: Summarize your data and get an overview\n  - List all tags, image resolutions, masked regions, or size of concept folders \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide#stats)\u003c/sup\u003e\n  - Filter images and create subsets \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide-%E2%80%90-Tips-and-Workflows#training-on-subsets)\u003c/sup\u003e\n  - Combine and chain filters\n  - Export the summaries as CSV\n\n- **Batch Processing**: Process whole folders at once\n  - Flexible batch captioning, tagging and transformation \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/User-Guide#batch)\u003c/sup\u003e\n  - Batch scaling of images\n  - Batch masking with user-defined macros\n  - Batch cropping of images using your macros\n  - Copy, move and rename files, create symlinks, ZIP captions for backups\n\n- **AI Assistance**:\n  - Support for state-of-the-art captioning and masking models\n  - Model and sampling settings, GPU acceleration with CPU offload support\n  - On-the-fly NF4 and INT8 quantization\n  - Run inference locally and/or on multiple remote machines over SSH \u003csup\u003e[?](https://github.com/FennelFetish/qapyq/wiki/Setup#host-setup-for-remote-inference)\u003c/sup\u003e\n  - Separate inference subprocess isolates potential crashes and allows complete VRAM cleanup\n\n\n## Supported Models\nThese are the supported architectures with links to the original models.\u003cbr\u003e\nFind more specialized finetuned models on [huggingface.co](https://huggingface.co/models).\n\n- **Tagging**\u003cbr\u003e\n  Models for generating keyword captions for images.\n  - [JoyTag](https://github.com/fpgaminer/joytag)\n  - [PixAI Tagger (onnx)](https://huggingface.co/deepghs/pixai-tagger-v0.9-onnx)\n  - [WD (onnx)](https://huggingface.co/SmilingWolf/wd-eva02-large-tagger-v3) (eva02 recommended)\n\n- **Captioning**\u003cbr\u003e\n  Models for generating complete-sentence captions for images.\n  - [Florence-2](https://huggingface.co/collections/microsoft/florence-6669f44df0d87d9c3bfb76de)\n  - [Gemma3 (GGUF)](https://huggingface.co/collections/unsloth/gemma-3-67d12b7e8816ec6efa7e4e5b)\n  - [InternVL2](https://huggingface.co/collections/OpenGVLab/internvl-20-667d3961ab5eb12c7ed1463e), [InternVL2.5](https://huggingface.co/collections/OpenGVLab/internvl25-673e1019b66e2218f68d7c1c), [InternVL2.5-MPO](https://huggingface.co/collections/OpenGVLab/internvl25-mpo-6753fed98cd828219b12f849), [InternVL3](https://huggingface.co/collections/OpenGVLab/internvl3-67f7f690be79c2fe9d74fe9d), [InternVL3.5](https://huggingface.co/collections/OpenGVLab/internvl35-core-68b08a936ded8dc59597179c) (Github Format)\n  - [JoyCaption](https://huggingface.co/fancyfeast/llama-joycaption-beta-one-hf-llava)\n  - [MiniCPM-V-2.6 (GGUF)](https://huggingface.co/openbmb/MiniCPM-V-2_6-gguf), [MiniCPM-o-2.6 (GGUF)](https://huggingface.co/openbmb/MiniCPM-o-2_6-gguf), [MiniCPM-V-4 (GGUF)](https://huggingface.co/openbmb/MiniCPM-V-4-gguf)\n  - [Molmo](https://huggingface.co/collections/allenai/molmo-66f379e6fe3b8ef090a8ca19)\n  - [Moondream2 (GGUF)](https://huggingface.co/vikhyatk/moondream2)\n  - [Ovis1.6](https://huggingface.co/AIDC-AI/Ovis1.6-Gemma2-9B), [Ovis2](https://huggingface.co/collections/AIDC-AI/ovis2-67ab36c7e497429034874464), [Ovis2.5](https://huggingface.co/collections/AIDC-AI/ovis25-689ec1474633b2aab8809335)\n  - [Qwen2-VL](https://huggingface.co/collections/Qwen/qwen2-vl-66cee7455501d7126940800d), [Qwen2.5-VL](https://huggingface.co/collections/Qwen/qwen25-vl-6795ffac22b334a837c0f9a5), [Qwen3-VL](https://huggingface.co/collections/Qwen/qwen3-vl) (Instruct/Thinking)\n\n- **LLM**\u003cbr\u003e\n  Models for transforming existing captions/tags.\n  - Any model in GGUF format with embedded chat template (llama-cpp backend).\n\n- **Upscaling**\u003cbr\u003e\n  Models for resizing images to higher resolutions.\n  - Architectures supported by the [spandrel](https://github.com/chaiNNer-org/spandrel?tab=readme-ov-file#model-architecture-support) backend.\n  - Find more models at [openmodeldb.info](https://openmodeldb.info/).\n\n- **Masking**\u003cbr\u003e\n  Models for generating greyscale masks.\n  - Box Detection\n    - YOLO/Adetailer detection models\n      - Search for YOLO models on [huggingface.co](https://huggingface.co/models?pipeline_tag=object-detection).\n    - [Florence-2](https://huggingface.co/collections/microsoft/florence-6669f44df0d87d9c3bfb76de)\n    - [Qwen3-VL](https://huggingface.co/collections/Qwen/qwen3-vl)\n  - Segmentation / Background Removal\n    - [InSPyReNet](https://github.com/plemeri/InSPyReNet/blob/main/docs/model_zoo.md) (Plus_Ultra)\n    - [RMBG-2.0](https://huggingface.co/briaai/RMBG-2.0)\n    - [Florence-2](https://huggingface.co/collections/microsoft/florence-6669f44df0d87d9c3bfb76de)\n\n- **Embedding**\u003cbr\u003e\n  Models for sorting images by their similarity to a prompt.\n  - [CLIP](https://huggingface.co/openai/clip-vit-large-patch14)\n  - [SigLIP](https://huggingface.co/google/siglip2-so400m-patch14-384)\n  - [SigLIP (ONNX)](https://huggingface.co/onnx-community/siglip2-so400m-patch14-384-ONNX), [SigLIP2-giant-opt (ONNX)](https://huggingface.co/onnx-community/siglip2-giant-opt-patch16-384-ONNX)\u003cbr\u003e(recommended: largest text model + fp16 vision model)\n\n- **VAE**\u003cbr\u003e\n  Models for previewing the latent representation of images.\n  - [Flux.1](https://huggingface.co/Comfy-Org/Lumina_Image_2.0_Repackaged/tree/main/split_files/vae), [Flux.2](https://huggingface.co/black-forest-labs/FLUX.2-dev/tree/main/vae), [SD1.5](https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5/tree/main/vae), [SDXL](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main/vae), [Qwen](https://huggingface.co/Qwen/Qwen-Image-2512/tree/main/vae)\n\n\n## Setup\nRequires Python 3.10 or later.\n\nBy default, prebuilt packages for CUDA 12.8 are installed. If you need a different CUDA version, change the URLs in `requirements-pytorch.txt` and `requirements-flashattn.txt` before running the setup script.\n\n1. Git clone or [download](https://github.com/FennelFetish/qapyq/archive/refs/heads/main.zip) this repository.\n2. Run `setup.sh` on Linux, `setup.bat` on Windows.\n   - Packages are installed into a virtual environment.\n\nThe setup script will ask you a couple of questions.\u003cbr\u003e\nYou can choose to install only the GUI and image processing packages without AI assistance. Or when installing on a headless server for remote inference, you can choose to install only the backend.\n\nIf the setup scripts didn't work for you, but you manually got it running, please share your solution and raise an issue.\n\n### Startup\n- Linux: `run.sh`\n- Windows: `run.bat` or `run-console.bat`\n\nYou can open files or folders directly in qapyq by associating the file types with the respective run script in your OS.\nFor shortcuts, icons are available in the `qapyq/res` folder.\n\n### Update\nIf git was used to clone the repository, simply use `git pull` to update.\u003cbr\u003e\nIf the repository was downloaded as a zip archive, download it again and replace the installed files.\n\nTo update the installed packages in the virtual environment, run the setup script again.\n\nNew dependencies may be added. If the program fails to start or crashes, run the setup script to install the missing packages.\n\n\n## User Guide\nMore information is available in the [Wiki](https://github.com/FennelFetish/qapyq/wiki).\u003cbr\u003e\nUse the page index on the right side to find topics and navigate the Wiki.\n\n**How to**:\n- Setup and configure AI models: [Model Setup](https://github.com/FennelFetish/qapyq/wiki/Setup#model-setup)\n- Use qapyq: [User Guide](https://github.com/FennelFetish/qapyq/wiki/User-Guide)\n- Caption with qapyq: [Captioning](https://github.com/FennelFetish/qapyq/wiki/User-Guide-%E2%80%90-Captioning)\n- Use qapyq's features in a workflow: [Tips and Workflows](https://github.com/FennelFetish/qapyq/wiki/User-Guide-%E2%80%90-Tips-and-Workflows)\n\nIf you have questions, please ask in the [Discussions](https://github.com/FennelFetish/qapyq/discussions).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFennelFetish%2Fqapyq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFennelFetish%2Fqapyq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFennelFetish%2Fqapyq/lists"}