{"id":22529470,"url":"https://github.com/hfg-gmuend/zoomaker","last_synced_at":"2025-05-08T00:25:00.223Z","repository":{"id":154629716,"uuid":"632399721","full_name":"hfg-gmuend/zoomaker","owner":"hfg-gmuend","description":"Zoomaker - Friendly house keeping for your AI model zoo and related resources","archived":false,"fork":false,"pushed_at":"2024-09-09T07:04:05.000Z","size":86,"stargazers_count":33,"open_issues_count":1,"forks_count":3,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-10-30T21:03:15.749Z","etag":null,"topics":["ai","ai-art","cli-tool","generative-art","image-generator","ml","model","model-management","package-manager","stable-diffusion"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hfg-gmuend.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-04-25T10:27:24.000Z","updated_at":"2024-10-28T21:18:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"2a063771-b44e-45eb-9707-20ec9f72c0fd","html_url":"https://github.com/hfg-gmuend/zoomaker","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfg-gmuend%2Fzoomaker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfg-gmuend%2Fzoomaker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfg-gmuend%2Fzoomaker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfg-gmuend%2Fzoomaker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hfg-gmuend","download_url":"https://codeload.github.com/hfg-gmuend/zoomaker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231468021,"owners_count":18381174,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","ai-art","cli-tool","generative-art","image-generator","ml","model","model-management","package-manager","stable-diffusion"],"created_at":"2024-12-07T07:14:50.032Z","updated_at":"2025-05-08T00:25:00.200Z","avatar_url":"https://github.com/hfg-gmuend.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![zoomaker_social_keyvisual](https://github.com/hfg-gmuend/zoomaker/assets/480224/75d3d492-fe54-4711-afbf-02768bbb4033)\n\nZoomaker - Friendly house keeping for your AI model zoo and related resources.\n========\n\nZoomaker is a command-line tool that helps install AI models, git repositories and run scripts.\n\n- **single source of truth**: all resources are neatly defined in the `zoo.yaml` file\n- **freeze versions**: know exactly which revision of a resources is installed at any time\n- **only download once**: optimize bandwidth and cache your models locally\n- **optimize disk usage**: downloaded models are cached\n\n## 😻 TL;DR\n\n1. Install Zoomaker `pip install zoomaker`\n2. Define your resources in the `zoo.yaml` file\n3. Run `zoomaker install` to install them\n\n\n## 📦 Installation\n\n```bash\npip install zoomaker\n```\n\n## 🦁 zoo.yaml Examples\n\nExample of the `zoo.yaml` of a Stable Diffusion project with the [Automatic1111](https://github.com/AUTOMATIC1111/stable-diffusion-webui) image generator:\n\n```yaml\nname: my-automatic1111-model-zoo\nversion: 1.0\ndescription: Lorem ipsum\nauthor: your name\n\nresources:\n  image_generator:\n    - name: automatic1111\n      src: https://github.com/AUTOMATIC1111/stable-diffusion-webui.git\n      type: git\n      revision: 22bcc7be428c94e9408f589966c2040187245d81\n      install_to: ./\n\n  models:\n    - name: v2-1_768-ema-pruned\n      src: stabilityai/stable-diffusion-2-1/v2-1_768-ema-pruned.safetensors\n      type: huggingface\n      install_to: ./stable-diffusion-webui/models/Stable-diffusion/\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e`zoo.yaml` example long\u003c/summary\u003e\n\n```yaml\nname: my-automatic1111-model-zoo\nversion: 1.0\ndescription: Lorem ipsum\nauthor: your name\n\naliases:\n  image_generator: \u0026image_generator ./\n  models: \u0026models ./stable-diffusion-webui/models/Stable-diffusion/\n  controlnet: \u0026controlnet ./stable-diffusion-webui/models/ControlNet/\n  embeddings: \u0026embeddings ./stable-diffusion-webui/embeddings/\n  extensions: \u0026extensions ./stable-diffusion-webui/extensions/\n\nresources:\n  image_generator:\n    - name: automatic1111\n      src: https://github.com/AUTOMATIC1111/stable-diffusion-webui.git\n      type: git\n      revision: 22bcc7be428c94e9408f589966c2040187245d81\n      install_to: *image_generator\n\n  models:\n    - name: v1-5-pruned-emaonly\n      src: runwayml/stable-diffusion-v1-5/v1-5-pruned-emaonly.safetensors\n      type: huggingface\n      install_to: *models\n\n  controlnet:\n    - name: control_sd15_canny\n      src: lllyasviel/ControlNet/models/control_sd15_canny.pth\n      type: huggingface\n      install_to: *controlnet\n\n  embeddings:\n    - name: midjourney-style\n      src: sd-concepts-library/midjourney-style/learned_embeds.bin\n      type: huggingface\n      install_to: *embeddings\n      rename_to: midjourney-style.bin\n    - name: moebius\n      src: sd-concepts-library/moebius/learned_embeds.bin\n      type: huggingface\n      install_to: *embeddings\n      rename_to: moebius.bin\n\n  extensions:\n    - name: sd-webui-tunnels\n      src: https://github.com/Bing-su/sd-webui-tunnels.git\n      type: git\n      install_to: *extensions\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e`zoo.yaml` with script snippets\u003c/summary\u003e\n\nHere are a few examples of how to run scripts snippets from the `zoo.yaml` file. For example for starting the Automatic1111's webui, you could setup snippets like these and then run them with `zoomaker run start_webui`. All scripts are run from the root of the project, please adjust the paths accordingly.\n\n```yaml\nscripts:\n  start_webui: |\n    cd .\\stable-diffusion-webui \u0026\u0026 call webui.bat\n```\n\n```yaml\nscripts:\n  start_webui: |\n    conda activate automatic1111\n    cd /home/$(whoami)/stable-diffusion-webui/\n    ./webui.sh --xformers --no-half\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e`zoo.yaml` with web download\u003c/summary\u003e\n\n```yaml\nresources:\n  models:\n    - name: analog-diffusion-v1\n      src: https://civitai.com/api/download/models/1344\n      type: download\n      install_to: ./stable-diffusion-webui/models/Stable-diffusion/\n      rename_to: analog-diffusion-v1.safetensors\n```\nPlease note:\nThe resource `type: download` can be seen as the last resort. Existing web downloads are skipped, but no other caching. It is recommended to avoid web downloads :)\n\u003c/details\u003e\n\n## 🧮 zoo.yaml Structure\n\n\u003cdetails\u003e\n\u003csummary\u003eTop level:\u003c/summary\u003e\n\n- `name` (mandatory)\n- `version`, `description`, `author`, `aliases` (optional)\n- `resources` (mandatory) : `\u003cgroup-name\u003e` : `[]` (array of resources)\n- `scripts` (optional) : `\u003cscript-name\u003e`\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eResource:\u003c/summary\u003e\n\n- `name`, `src`, `type`, `install_to` (mandatory)\n- `rename_to` (optional)\n- `revision` (optional), if none is defined the latest version from the main branch is downloaded\n- `type` can either be `git`, `huggingface` or `download`\n- `api_key` (optional) for civitai\n\u003c/details\u003e\n\n## 🧞 Zoomaker Commands\n\nAll commands are run from the root of the project, where also your `zoo.yaml` file is located.\n\n| Command                | Action                                           |\n| :--------------------- | :----------------------------------------------- |\n| `zoomaker install`          | Installs resources as defined in `zoo.yaml` |\n| `zoomaker run \u003cscript_name\u003e`    | Run CLI scripts as defined in `zoo.yaml` |\n| `zoomaker --help` | Get help using the Zoomaker CLI                     |\n| `zoomaker --version` | Show current Zoomaker version                     |\n| `zoomaker install -f \u003cfile\u003e` | Installs resources as defined in the specified YAML file |\n| `zoomaker run -f \u003cfile\u003e \u003cscript_name\u003e` | Run CLI scripts as defined in the specified YAML file |\n\n## 🤗 Hugging Face Access Token and Custom Cache Location\n\nYou might be asked for a [Hugging Face Access Token](https://huggingface.co/docs/hub/security-tokens) during `zoomaker install`. Some resources on Hugging Face require accepting the terms of use of the model. You can set your access token by running this command in a terminal. The command `huggingface-cli` is automatically shipped alongside zoomaker.\n\n```bash\nhuggingface-cli login\n```\n\nYou can specify a custom cache location by setting the HF_HOME environment variable. The default cache location is `~/.cache/huggingface/`.\n\n```bash\nexport HF_HOME=/path/to/your/cache\nzoomaker install\n```\n\n## 🙏 Acknowledgements\n- Most of the internal heavy lifting is done be the [huggingface_hub library](https://huggingface.co/docs/huggingface_hub/guides/download) by Hugging Face. Thanks!\n- \"Zoomaker Safari Hacker Cat\" cover image by Alia Tasler, based on this [OpenMoji](https://openmoji.org/library/emoji-1F431-200D-1F4BB/). Thanks!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhfg-gmuend%2Fzoomaker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhfg-gmuend%2Fzoomaker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhfg-gmuend%2Fzoomaker/lists"}