mirror of https://github.com/leafspark/AutoGGUF
build: add cross-platform build scripts
This commit is contained in:
parent
89826de0b2
commit
6797ba1110
|
@ -9,6 +9,7 @@ __pycache__/
|
|||
!*.bat
|
||||
!*.txt
|
||||
!*.md
|
||||
!*.sh
|
||||
!LICENSE
|
||||
|
||||
# Allow assets folder
|
||||
|
|
212
README.md
212
README.md
|
@ -1,106 +1,106 @@
|
|||

|
||||
|
||||
# AutoGGUF - automated GGUF model quantizer
|
||||
|
||||
[](https://github.com/ggerganov/llama.cpp)
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
AutoGGUF provides a graphical user interface for quantizing GGUF models using the llama.cpp library. It allows users to download different versions of llama.cpp, manage multiple backends, and perform quantization tasks with various options.
|
||||
|
||||
## Features
|
||||
|
||||
- Download and manage llama.cpp backends
|
||||
- Select and quantize GGUF models
|
||||
- Configure quantization parameters
|
||||
- Monitor system resources during quantization
|
||||
|
||||
## Usage
|
||||
|
||||
### Cross-platform
|
||||
1. Install dependencies:
|
||||
```
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
or
|
||||
```
|
||||
pip install PyQt6 requests psutil shutil
|
||||
```
|
||||
2. Run the application:
|
||||
```
|
||||
python src/main.py
|
||||
```
|
||||
or use the `run.bat` script.
|
||||
|
||||
### Windows
|
||||
1. Download the latest release
|
||||
2. Extract all files to a folder
|
||||
3. Run `AutoGGUF.exe`
|
||||
|
||||
## Building
|
||||
|
||||
### Cross-platform
|
||||
```bash
|
||||
cd src
|
||||
pip install -U pyinstaller
|
||||
pyinstaller main.py --onefile
|
||||
cd dist/main
|
||||
./main
|
||||
```
|
||||
|
||||
### Windows
|
||||
```bash
|
||||
build RELEASE/DEV
|
||||
```
|
||||
Find the executable in `build/<type>/dist/AutoGGUF.exe`.
|
||||
|
||||
## Dependencies
|
||||
|
||||
- PyQt6
|
||||
- requests
|
||||
- psutil
|
||||
- shutil
|
||||
- OpenSSL
|
||||
|
||||
## Localizations
|
||||
|
||||
View the list of supported languages at [AutoGGUF/wiki/Installation#configuration](https://github.com/leafspark/AutoGGUF/wiki/Installation#configuration) (LLM translated, except for English).
|
||||
|
||||
To use a specific language, set the `AUTOGGUF_LANGUAGE` environment variable to one of the listed language codes.
|
||||
|
||||
## Known Issues
|
||||
|
||||
- Saving preset while quantizing causes UI thread crash (planned fix: remove this feature)
|
||||
- Cannot delete task while processing (planned fix: disallow deletion before cancelling or cancel automatically)
|
||||
- Base Model text still shows when GGML is selected as LoRA type (fix: include text in show/hide Qt layout)
|
||||
|
||||
## Planned Features
|
||||
|
||||
- Actual progress bar tracking
|
||||
- Download safetensors from HF and convert to unquantized GGUF
|
||||
- Perplexity testing
|
||||
- Managing shards (coming in the next release)
|
||||
- Time estimation for quantization
|
||||
- Dynamic values for KV cache (coming in the next release)
|
||||
- Ability to select and start multiple quants at once (saved in presets, coming in the next release)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- SSL module cannot be found error: Install OpenSSL or run from source using `python src/main.py` with the `run.bat` script (`pip install requests`)
|
||||
|
||||
## Contributing
|
||||
|
||||
Fork the repo, make your changes, and ensure you have the latest commits when merging. Include a changelog of new features in your pull request description.
|
||||
|
||||
## User Interface
|
||||
|
||||

|
||||
|
||||
## Stargazers
|
||||
|
||||
[](https://star-history.com/#leafspark/AutoGGUF&Date)
|
||||

|
||||
|
||||
# AutoGGUF - automated GGUF model quantizer
|
||||
|
||||
[](https://github.com/ggerganov/llama.cpp)
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
AutoGGUF provides a graphical user interface for quantizing GGUF models using the llama.cpp library. It allows users to download different versions of llama.cpp, manage multiple backends, and perform quantization tasks with various options.
|
||||
|
||||
## Features
|
||||
|
||||
- Download and manage llama.cpp backends
|
||||
- Select and quantize GGUF models
|
||||
- Configure quantization parameters
|
||||
- Monitor system resources during quantization
|
||||
|
||||
## Usage
|
||||
|
||||
### Cross-platform
|
||||
1. Install dependencies:
|
||||
```
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
or
|
||||
```
|
||||
pip install PyQt6 requests psutil shutil
|
||||
```
|
||||
2. Run the application:
|
||||
```
|
||||
python src/main.py
|
||||
```
|
||||
or use the `run.bat` script.
|
||||
|
||||
### Windows
|
||||
1. Download the latest release
|
||||
2. Extract all files to a folder
|
||||
3. Run `AutoGGUF.exe`
|
||||
|
||||
## Building
|
||||
|
||||
### Cross-platform
|
||||
```bash
|
||||
cd src
|
||||
pip install -U pyinstaller
|
||||
pyinstaller main.py --onefile
|
||||
cd dist/main
|
||||
./main
|
||||
```
|
||||
|
||||
### Windows
|
||||
```bash
|
||||
build RELEASE/DEV
|
||||
```
|
||||
Find the executable in `build/<type>/dist/AutoGGUF.exe`.
|
||||
|
||||
## Dependencies
|
||||
|
||||
- PyQt6
|
||||
- requests
|
||||
- psutil
|
||||
- shutil
|
||||
- OpenSSL
|
||||
|
||||
## Localizations
|
||||
|
||||
View the list of supported languages at [AutoGGUF/wiki/Installation#configuration](https://github.com/leafspark/AutoGGUF/wiki/Installation#configuration) (LLM translated, except for English).
|
||||
|
||||
To use a specific language, set the `AUTOGGUF_LANGUAGE` environment variable to one of the listed language codes.
|
||||
|
||||
## Known Issues
|
||||
|
||||
- Saving preset while quantizing causes UI thread crash (planned fix: remove this feature)
|
||||
- Cannot delete task while processing (planned fix: disallow deletion before cancelling or cancel automatically)
|
||||
- Base Model text still shows when GGML is selected as LoRA type (fix: include text in show/hide Qt layout)
|
||||
|
||||
## Planned Features
|
||||
|
||||
- Actual progress bar tracking
|
||||
- Download safetensors from HF and convert to unquantized GGUF
|
||||
- Perplexity testing
|
||||
- Managing shards (coming in the next release)
|
||||
- Time estimation for quantization
|
||||
- Dynamic values for KV cache (coming in the next release)
|
||||
- Ability to select and start multiple quants at once (saved in presets, coming in the next release)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- SSL module cannot be found error: Install OpenSSL or run from source using `python src/main.py` with the `run.bat` script (`pip install requests`)
|
||||
|
||||
## Contributing
|
||||
|
||||
Fork the repo, make your changes, and ensure you have the latest commits when merging. Include a changelog of new features in your pull request description.
|
||||
|
||||
## User Interface
|
||||
|
||||

|
||||
|
||||
## Stargazers
|
||||
|
||||
[](https://star-history.com/#leafspark/AutoGGUF&Date)
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Usage: $0 [RELEASE|DEV]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BUILD_TYPE=$1
|
||||
ICON_PATH="../../assets/favicon_large.png"
|
||||
ASSETS_PATH="../../assets"
|
||||
SRC_PATH="src/main.py"
|
||||
|
||||
case $BUILD_TYPE in
|
||||
RELEASE)
|
||||
OUTPUT_DIR="build/release"
|
||||
EXTRA_ARGS="--windowed"
|
||||
;;
|
||||
DEV)
|
||||
OUTPUT_DIR="build/dev"
|
||||
EXTRA_ARGS=""
|
||||
;;
|
||||
*)
|
||||
echo "Invalid build type. Use RELEASE or DEV."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "Building $BUILD_TYPE version..."
|
||||
|
||||
pyinstaller $EXTRA_ARGS --onefile --name=AutoGGUF --icon=$ICON_PATH --add-data "$ASSETS_PATH:assets" --distpath=$OUTPUT_DIR/dist --workpath=$OUTPUT_DIR/build --specpath=$OUTPUT_DIR $SRC_PATH
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Build failed."
|
||||
exit 1
|
||||
else
|
||||
echo "Build completed successfully."
|
||||
fi
|
|
@ -0,0 +1,74 @@
|
|||
@echo off
|
||||
cls
|
||||
echo.
|
||||
echo . .
|
||||
echo . ^| .
|
||||
echo . . . .
|
||||
echo . . ^|. ^|.. .
|
||||
echo . ^| ^| ^| .
|
||||
echo . ^| ^| ^| ^| ^| .
|
||||
echo ." ^|...^| ."
|
||||
echo ." ." ^| ^|.
|
||||
echo ." ." ^| ^| .
|
||||
echo ." ." ^| ."
|
||||
echo ." ." ."
|
||||
echo ____." ." ."
|
||||
echo ." ."
|
||||
echo ." ."
|
||||
echo ." ." AutoGGUF Builder v1.337
|
||||
echo ." ." ~~~ Cracked by CODEX Team ~~~
|
||||
echo ."."
|
||||
echo ."."
|
||||
echo "."
|
||||
echo.
|
||||
echo +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
echo : Release Notes :
|
||||
echo : - Now with 100%% less Python dependency! :
|
||||
echo : - Added quantum entanglement for faster builds :
|
||||
echo : - Integrated AI to write better code than you :
|
||||
echo : - Free pizza with every successful compile (while stocks last) :
|
||||
echo +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
echo : Installation :
|
||||
echo : 1. Run this totally legit .bat file :
|
||||
echo : 2. Choose your poison: RELEASE or DEV :
|
||||
echo : 3. ??? :
|
||||
echo : 4. Profit! :
|
||||
echo +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
echo : System Requirements :
|
||||
echo : - A computer (duh) :
|
||||
echo : - Electricity (optional but recommended) :
|
||||
echo : - At least 3 brain cells :
|
||||
echo +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
echo.
|
||||
|
||||
if "%1"=="" (
|
||||
echo [!] ERROR: No build type specified. RTFM, n00b!
|
||||
echo Usage: build.bat [RELEASE^|DEV]
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if /I "%1"=="RELEASE" (
|
||||
echo [+] Initiating RELEASE build sequence...
|
||||
echo [+] Compressing code until it becomes a singularity...
|
||||
pyinstaller --windowed --onefile --name=AutoGGUF --icon=../../assets/favicon_large.png --add-data "../../assets;assets" --distpath=build\release\dist --workpath=build\release\build --specpath=build\release src\main.py
|
||||
) else if /I "%1"=="DEV" (
|
||||
echo [+] Launching DEV build missiles...
|
||||
echo [+] Obfuscating code to confuse even its creator...
|
||||
pyinstaller --onefile --name=AutoGGUF --icon=../../assets/favicon_large.png --add-data "../../assets;assets" --distpath=build\dev\dist --workpath=build\dev\build --specpath=build\dev src\main.py
|
||||
) else (
|
||||
echo [!] FATAL ERROR: Invalid build type. Are you even trying?
|
||||
echo Use RELEASE or DEV, genius.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if errorlevel 1 (
|
||||
echo [-] Build failed. Blame the intern.
|
||||
exit /b 1
|
||||
) else (
|
||||
echo [+] Build completed successfully. Time to take credit for someone else's work!
|
||||
)
|
||||
|
||||
echo.
|
||||
echo +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
echo : Remember: Piracy is wrong. Unless you're really good at it. :
|
||||
echo +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
|
@ -0,0 +1,75 @@
|
|||
#!/bin/bash
|
||||
|
||||
clear
|
||||
echo ""
|
||||
echo " . ."
|
||||
echo " . | ."
|
||||
echo " . . . ."
|
||||
echo " . . |. |.. ."
|
||||
echo " . | | | ."
|
||||
echo " . | | | | | ."
|
||||
echo " .\" |...| .\""
|
||||
echo " .\" .\" | |."
|
||||
echo " .\" .\" | | ."
|
||||
echo " .\" .\" | .\""
|
||||
echo " .\" .\" .\""
|
||||
echo "______.\" .\" .\""
|
||||
echo " .\" .\""
|
||||
echo " .\" .\""
|
||||
echo " .\" .\" AutoGGUF Builder v1.337"
|
||||
echo " .\" .\" ~~~ Cracked by CODEX Team ~~~"
|
||||
echo " .\".\" "
|
||||
echo " .\".\" "
|
||||
echo ".\". "
|
||||
echo ""
|
||||
echo "+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+"
|
||||
echo ": Release Notes :"
|
||||
echo ": - Now with 100% less Python dependency! :"
|
||||
echo ": - Added quantum entanglement for faster builds :"
|
||||
echo ": - Integrated AI to write better code than you :"
|
||||
echo ": - Free pizza with every successful compile (while stocks last) :"
|
||||
echo "+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+"
|
||||
echo ": Installation :"
|
||||
echo ": 1. Run this totally legit .sh file :"
|
||||
echo ": 2. Choose your poison: RELEASE or DEV :"
|
||||
echo ": 3. ??? :"
|
||||
echo ": 4. Profit! :"
|
||||
echo "+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+"
|
||||
echo ": System Requirements :"
|
||||
echo ": - A computer (duh) :"
|
||||
echo ": - Electricity (optional but recommended) :"
|
||||
echo ": - At least 3 brain cells :"
|
||||
echo "+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+"
|
||||
echo ""
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "[!] ERROR: No build type specified. RTFM, n00b!"
|
||||
echo " Usage: $0 [RELEASE|DEV]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "RELEASE" ]; then
|
||||
echo "[+] Initiating RELEASE build sequence..."
|
||||
echo "[+] Compressing code until it becomes a singularity..."
|
||||
pyinstaller --windowed --onefile --name=AutoGGUF --icon=../../assets/favicon_large.png --add-data "../../assets:assets" --distpath=build/release/dist --workpath=build/release/build --specpath=build/release src/main.py
|
||||
elif [ "$1" = "DEV" ]; then
|
||||
echo "[+] Launching DEV build missiles..."
|
||||
echo "[+] Obfuscating code to confuse even its creator..."
|
||||
pyinstaller --onefile --name=AutoGGUF --icon=../../assets/favicon_large.png --add-data "../../assets:assets" --distpath=build/dev/dist --workpath=build/dev/build --specpath=build/dev src/main.py
|
||||
else
|
||||
echo "[!] FATAL ERROR: Invalid build type. Are you even trying?"
|
||||
echo " Use RELEASE or DEV, genius."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "[-] Build failed. Blame the intern."
|
||||
exit 1
|
||||
else
|
||||
echo "[+] Build completed successfully. Time to take credit for someone else's work!"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+"
|
||||
echo ": Remember: Piracy is wrong. Unless you're really good at it. :"
|
||||
echo "+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+"
|
Loading…
Reference in New Issue