{"id":50728687,"url":"https://github.com/arcxteam/gguf-convert-model","last_synced_at":"2026-06-10T06:45:54.820Z","repository":{"id":323477700,"uuid":"1093062252","full_name":"arcxteam/gguf-convert-model","owner":"arcxteam","description":"Auto GGUF Converter for HuggingFace Hub Models with Multiple Quantizations (GGUF Format)","archived":false,"fork":false,"pushed_at":"2026-02-11T16:32:32.000Z","size":133,"stargazers_count":2,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T06:45:49.611Z","etag":null,"topics":["ai","ai-models","bf16","cmake","convert-gguf","gguf","gguf-editor","gguf-models","gguf-quantization","huggingface","huggingface-models","llama-cpp","machine-learning","safetensors","tensorflow","transformers"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arcxteam.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-09T20:39:09.000Z","updated_at":"2025-12-29T10:04:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/arcxteam/gguf-convert-model","commit_stats":null,"previous_names":["arcxteam/gguf-convert-model"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arcxteam/gguf-convert-model","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arcxteam%2Fgguf-convert-model","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arcxteam%2Fgguf-convert-model/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arcxteam%2Fgguf-convert-model/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arcxteam%2Fgguf-convert-model/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arcxteam","download_url":"https://codeload.github.com/arcxteam/gguf-convert-model/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arcxteam%2Fgguf-convert-model/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34140774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","ai-models","bf16","cmake","convert-gguf","gguf","gguf-editor","gguf-models","gguf-quantization","huggingface","huggingface-models","llama-cpp","machine-learning","safetensors","tensorflow","transformers"],"created_at":"2026-06-10T06:45:54.042Z","updated_at":"2026-06-10T06:45:54.813Z","avatar_url":"https://github.com/arcxteam.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eGGUF LLMs Converter for Huggingface Hub Models with Multiple Quantizations (GGUF-Format)\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eAutomated conversion of any Huggingface model to multiple GGUF LLMs quantization formats\u003c/strong\u003e\u003cbr\u003e\n  \u003cem\u003eSupports continuous monitoring, auto-detection, and universal deployment modes\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Release-v1.2-FF0069\" alt=\"Version\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/GGUF-Available-brightgreen\" alt=\"GGUF\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/llama.cpp-Compatible-orange\" alt=\"llama.cpp\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/🤗 Huggingface-Models-blue\" alt=\"Huggingface\"\u003e\n  \u003ca href=\"https://github.com/arcxteam/gguf-convert-model/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-green\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## 📖 Overview\n\n**Universal GGUF LLMs Converter** is a production-ready, Docker-based solution for automatically converting HuggingFace models to GGUF format with multiple quantization types. Built with `llama.cpp` integration and intelligent tokenizer detection, this tool streamlines the conversion workflow for both personal and community models.\n\n### Key Features\n\n- 🔄 **Continuous Monitoring**: Automatically detects and converts new model updates from HuggingFace repositories\n- 🤖 **Auto-Detection**: Intelligent tokenizer detection for 50+ popular model architectures (Qwen, Llama, Mistral, Phi, Gemma, etc.)\n- 📦 **Multiple Quantization**: Supports F16, F32, BF16, and all K-quant formats (Q2_K to Q8_0)\n- 🎯 **Flexible Deploy**: Three (3) upload modes - same repository, new repository, or local-only storage\n- 🧹 **Smart Cleanup**: Automatic temporary file management to prevent storage used\n- 🐳 **Docker**: Fully container with optimized build times and resource usage\n- 📊 **Progress Tracking**: Clean, milestone-based logging with colorized console output\n\n## 🛠️ Requirements\n\n\u003cp\u003e\n  \u003cimg src=\"https://img.shields.io/badge/VPS_Server-232F3E?style=for-the-badge\u0026logo=digitalocean\u0026logoColor=red\" alt=\"VPS\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Linux-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black\" alt=\"Linux\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Docker-2CA5E0?style=for-the-badge\u0026logo=docker\u0026logoColor=white\" alt=\"Docker\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/HuggingFace-FFD21E?style=for-the-badge\u0026logo=huggingface\u0026logoColor=black\" alt=\"HuggingFace\"\u003e\n\u003c/p\u003e\n\n**System Requirements:**\n- Linux-based VPS or local machine\n- Docker \u0026 Docker Compose installed\n- HuggingFace account with **WRITE** access token\n- Sufficient disk space for model downloads and conversion (varies by model size)\n\n## 📁 Project Structure\n\n```diff\ngguf-convert-model/\n├── .env\n├── .env.example\n├── .gitignore\n├── .dockerignore\n├── docker-compose.yml\n├── Dockerfile\n├── requirements.txt\n├── README.md\n├── scripts/\n│   └── start.sh\n├── src/\n│   ├── __init__.py\n│   ├── main.py\n│   ├── config.py\n│   └── utils/\n│       ├── __init__.py\n│       ├── logger.py\n│       └── helpers.py\n└── logs/ (auto-created)\n```\n\n## 🚀 **Quick Start**\n### 1. Prerequisites\n\n**HuggingFace Access Token:**\n- Visit settings → https://huggingface.co/settings/tokens\n- Create a new token with **Write** permissions\n- Copy the token (starts with `hf_`)\n\n**Install Docker \u0026 Compose** \u003cmark\u003eif not already installed\u003c/mark\u003e\n\u003e Instal docker is optional, if you don't have.. try securely\n\n```\ncurl -sSL https://raw.githubusercontent.com/arcxteam/succinct-prover/refs/heads/main/docker.sh | sudo bash\n```\n\n### 2. Clone Repository\n\n```\ngit clone https://github.com/arcxteam/gguf-convert-model.git\ncd gguf-convert-model\n```\n\n### 3. Configure Environment\n\u003e Create edit \u0026 save configuration file\n\n```\ncp .env.example .env\nnano .env\n```\n\u003e Example config environment variable\n\n```diff\n# HF token with WRITE permission\nHUGGINGFACE_TOKEN=hf_xxxxxxxx\n\n# Source model repository to convert\n+ Example: Qwen/Qwen3-0.6B\nREPO_ID=username/model-name\n\n# Use interval in secs\n+ Default 0 = only one-time convert, for other commits setup more)\nCHECK_INTERVAL=0\n\n# Output formats (comma-separated, no spaces)\n# Available: F16,BF16,F32,Q2_K,Q2_K_S,Q3_K_S,Q3_K_M,Q3_K_L,Q4_K_S,Q4_K_M,Q4_K_L,Q5_K_S,Q5_K_M,Q5_K_L,Q6_K,Q8_0\n+ Recommended: F16,Q4_K_M,Q5_K_M,Q6_K\nQUANT_TYPES=F16,Q3_K_M,Q4_K_M,Q5_K_M,Q6_K\n\n# ========================================\n# UPLOAD MODE - Choose ONE option below\n# ========================================\n\n# OPTION 1: same_repo\n# Upload to the same repository as own source model\n+ Use this only YOUR OWN models with WRITE access\nUPLOAD_MODE=same_repo\n\n# OPTION 2: new_repo\n# TARGET_REPO will be auto-generated as: username/ModelName-GGUF\n+ Leave TARGET_REPO empty for auto (recommended)\n+ Or manually specify: TARGET_REPO=your-username/custom-name-GGUF\nUPLOAD_MODE=new_repo\nTARGET_REPO=\n\n# OPTION 3: local_only\n+ Save to local directory only (no upload hugging)\n+ Files auto-delete after LOCAL_CLEANUP_HOURS\nUPLOAD_MODE=local_only\nOUTPUT_DIR=./output\n\n# Only set if auto-detection fails (default)\n+ Example: Qwen/Qwen3-0.6B\nBASE_MODEL_TOKENIZER=\n\n# Output filename pattern (default)\n# Placeholders: {model_name} = extracted base name, {quant} = format type\n+ Result example: Qwen3-0.6B-Instruct-Q4_K_M.gguf\nOUTPUT_PATTERN={model_name}-{quant}.gguf\n\n# Auto-cleanup hours (default)\n+ Setup you need local_only mode\nLOCAL_CLEANUP_HOURS=24\n\n# Timezone\nTZ=Asia/Singapore\n```\n\n## 📊 **Configuration Reference**\n\n| ENV Variable | Required? | When to Change | Default if Empty |\n|--------------|-----------|----------------|------------------|\n| `HUGGINGFACE_TOKEN` | ✅ Yes | Always (your token) | `ERROR` |\n| `REPO_ID` | ✅ Yes | Always (source model) | `ERROR` |\n| `CHECK_INTERVAL` | ⚠️ Optional | Default= 0 or Changes | `in secs 3600=1h` |\n| `QUANT_TYPES` | ⚠️ Optional | Change formats needed | `F16,Q4_K_M,Q5_K_M,more` |\n| `UPLOAD_MODE` | ⚠️ Optional | Change based on use case | default `new_repo` |\n| `TARGET_REPO` | ⚠️ Conditional | Only if `new_repo` mode | Same as `REPO_ID` |\n| `OUTPUT_DIR` | ⚠️ Conditional | Only if `local_only` mode | `./output` |\n| `BASE_MODEL_TOKENIZER` | ❌ Optional | Only if auto-detect fails | `empty = auto` |\n| `OUTPUT_PATTERN` | ❌ Optional | Only if custom naming | `{model_name}-{quant}.gguf` |\n| `LOCAL_CLEANUP_HOURS` | ❌ Optional | Only for `local_only` | default `24hour` |\n| `TZ` | ❌ Optional | Change to your timezone | UTC |\n\n### ✅ Checklist - What to Change\n\n**Always Change:**\n- ✅ `HUGGINGFACE_TOKEN` → Your personal token\n- ✅ `REPO_ID` → Model to convert\n\n**Usually Change:**\n- ⚠️ `CHECK_INTERVAL` → Frequency (or 0 for one-time)\n- ⚠️ `QUANT_TYPES` → Formats you need\n- ⚠️ `UPLOAD_MODE` → Based on use case\n\n**Change Only If Needed:**\n- ❌ `TARGET_REPO` → If using `new_repo` mode\n- ❌ `OUTPUT_DIR` → If using `local_only` mode\n- ❌ `BASE_MODEL_TOKENIZER` → If auto-detect fails\n- ❌ `OUTPUT_PATTERN` → If custom naming wanted\n- ❌ `LOCAL_CLEANUP_HOURS` → If different cleanup time\n- ❌ `TZ` → Your timezone (up to you)\n\n**Never Change (Leave Default):**\n- ✅ Comments (helpful documentation)\n- ✅ Commented-out options (for reference)\n\n### 3.🏃 **Build and Start**\n\u003e Starting running\n\n```\ndocker compose up --build -d\n```\n\n\u003e Monitor logs \u0026 stop\n\n```\ndocker compose logs -f\n# docker compose down\n```\n\n## 📊 **Supported Quantization Formats**\n\n| Format | Precision | Size Reduction | Use Case |\n|--------|-----------|----------------|----------|\n| **F32** | Full (32-bit) | None | Maximum precision |\n| **F16** | Half (16-bit) | ~50% | High quality general use |\n| **BF16** | Brain Float 16 | ~50% | Training-optimized |\n| **Q8_0** | 8-bit | ~75% | Near-lossless compression |\n| **Q6_K** | 6-bit | ~80% | High quality compression |\n| **Q5_K_M** | 5-bit | ~83% | **Recommended** balance |\n| **Q4_K_M** | 4-bit | ~87% | **Popular** for production |\n| **Q3_K_M** | 3-bit | ~90% | Aggressive compression |\n| **Q2_K** | 2-bit | ~93% | Maximum compression |\n\n## 📜 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcxteam%2Fgguf-convert-model","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farcxteam%2Fgguf-convert-model","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcxteam%2Fgguf-convert-model/lists"}