21 Commits

Author SHA1 Message Date
adbb97ecc2 added desc_act option 2023-06-03 16:27:13 +02:00
b10c023810 next try adding patchelf installation
All checks were successful
Package Release / package_on_ubuntu (push) Has been cancelled
Package Release / package_on_windows (push) Has been cancelled
2023-05-27 15:27:17 +02:00
757debce3a trying nuitka with linux 2023-05-27 15:23:35 +02:00
a8f033ac5b switching to nuitka, fix removing build folders 2023-05-27 15:19:49 +02:00
a32aff730e fixes indentations 2023-05-27 15:10:37 +02:00
0cd44016f5 trying out nuitka on github actions 2023-05-27 15:09:44 +02:00
21930ba8e9 fixed ubuntu & Windows package creation 2023-05-27 13:38:52 +02:00
b96c0914ed Update package.yml 2023-05-27 13:36:45 +02:00
a07146e879 deleted venv
All checks were successful
Package Release / package (ubuntu-latest) (push) Has been cancelled
Package Release / package (windows-latest) (push) Has been cancelled
2023-05-27 13:21:57 +02:00
807dad51dd too tired to get it in one go 2023-05-27 11:12:04 +02:00
395c347020 mistake fixing 2023-05-27 11:11:16 +02:00
a75a8f42bc still trying to use venv for packaging p2 2023-05-27 11:10:35 +02:00
24e5876eff removed venv deletion for now. 2023-05-27 09:26:37 +02:00
c87e12d75a still trying to use venv for packaging p1 2023-05-27 09:08:07 +02:00
1ffd11eb5b copy & paste error
All checks were successful
Package Release / package (ubuntu-latest) (push) Has been cancelled
Package Release / package (windows-latest) (push) Has been cancelled
2023-05-27 08:21:56 +02:00
311cbfed75 fixing the leave venv 2023-05-27 08:20:29 +02:00
646b7419a5 trying venv to hopefully decrease the binary size 2023-05-27 08:12:41 +02:00
0fb9a42cc6 Update package.yml 2023-05-27 09:45:12 +02:00
b2f2a894c9 removed git commit compare, fixed startup if no nvidia_gpu was found. 2023-05-26 23:23:53 +02:00
ce9ef8f419 last try to fix this
All checks were successful
Package Release / package (ubuntu-latest) (push) Has been cancelled
Package Release / package (windows-latest) (push) Has been cancelled
2023-05-26 18:46:42 +02:00
db6ed71594 last try to fix this 2023-05-26 18:44:36 +02:00
2 changed files with 84 additions and 51 deletions

View File

@@ -6,11 +6,8 @@ on:
workflow_dispatch:
jobs:
package:
runs-on: self-hosted
strategy:
matrix:
os: [windows-latest, ubuntu-latest]
package_on_ubuntu:
runs-on: ubuntu-selfhosted
steps:
- name: Set up Python
uses: actions/setup-python@v3
@@ -20,18 +17,67 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v3
- name: Upgrade Pip
run: python -m pip install --upgrade pip
- name: Install dependencies
run: |
python -m pip install --upgrade pip
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install patchelf -y
pip install -r requirements.txt
pip install pyinstaller
pip install nuitka
sudo apt install patchelf
- name: Build and package
run: python3 -m nuitka StartUI.py --onefile --enable-plugin=pyqt5 --product-version=1.6.0 --disable-console --include-data-files=webuiGUI.py=webuiGUI.py --output-dir=./dist --noinclude-pytest-mode=nofollow --noinclude-setuptools-mode=nofollow
- name: remove build folders
run: |
pyinstaller --noconfirm --onefile --windowed StartUI.py --add-data "${{ github.workspace }}/webuiGUI.py;."
rm -rf dist/StartUI.build
rm -rf dist/StartUI.dist
rm -rf dist/StartUI.onefile-build
- name: Executive permission
run: |
chmod +x dist/StartUI
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.os }}-binary-v1.6
name: ubuntu-binary-v1.6
path: dist
package_on_windows:
runs-on: windows-selfhosted
steps:
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: 3.x
- name: Checkout repository
uses: actions/checkout@v3
- name: Upgrade Pip
run: python -m pip install --upgrade pip
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install nuitka
- name: Build and package
run: nuitka StartUI.py --onefile --enable-plugin=pyqt5 --product-version=1.6.0 --disable-console --include-data-files=webuiGUI.py=webuiGUI.py --output-dir=./dist --noinclude-pytest-mode=nofollow --noinclude-setuptools-mode=nofollow
- name: remove build folders
run: |
Remove-Item -Recurse -Force ./dist/StartUI.build
Remove-Item -Recurse -Force ./dist/StartUI.dist
Remove-Item -Recurse -Force ./dist/StartUI.onefile-build
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: windows-binary-v1.6
path: dist

View File

@@ -1,7 +1,8 @@
import sys, os, gpustat, json, subprocess, platform, psutil, re, requests, darkdetect, qdarkstyle, time, git
from PyQt5.QtWidgets import QApplication, QHBoxLayout, QToolBar, QMessageBox, QAction, QMainWindow, QSpinBox, QLabel, QVBoxLayout, QComboBox, QSlider, QCheckBox, QLineEdit, QFileDialog, QPushButton, QWidget, QListWidget, QListWidgetItem, QGridLayout, QRadioButton, QFrame
import sys, os, gpustat, json, subprocess, platform, psutil, re, requests, darkdetect, qdarkstyle, time
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QDoubleValidator, QIntValidator
from PyQt5.QtWidgets import QAction, QApplication, QCheckBox, QComboBox, QFileDialog, QFrame, QGridLayout, QHBoxLayout, QLabel, QLineEdit, QListWidget, QListWidgetItem, QMainWindow, QMessageBox, QPushButton, QRadioButton, QSlider, QSpinBox, QToolBar, QVBoxLayout, QWidget
# For showing the current version and checking for updates
version = "1.6"
@@ -91,7 +92,6 @@ class MainWindow(QMainWindow):
super().__init__()
self.init_ui()
self.load_last_commit()
self.load_settings()
self.set_ram_slider_max()
self.update_check()
@@ -421,6 +421,7 @@ class MainWindow(QMainWindow):
self.pre_layer_slider_value = []
self.pre_layer_amount_max = 100
# Don't get confused. With the latest changes, each GPU can have it's own pre_layer value. So we check again gpu_stats for the amount.
if nvidia_gpu:
for i, gpu in enumerate(gpu_stats):
pre_layer_labels = QLabel(f"{gpu.name} Pre_Layer:")
pre_layer_labels.setToolTip(f"The number of layers to allocate to the GPU.\nSetting this parameter enables CPU offloading for 4-bit models.\nFor multi-gpu, write the numbers separated by spaces, eg --pre_layer 30 60.")
@@ -451,7 +452,7 @@ class MainWindow(QMainWindow):
# Deactivate Streaming Output
self.use_nostream_checkbox = QCheckBox("No Stream")
self.use_nostream_checkbox.setToolTip("Don't stream the text output in real time. Increases Token/s by ~ 50%")
layout.addWidget(self.use_nostream_checkbox, 15 + (len(gpu_stats) * 2), 1)
layout.addWidget(self.use_nostream_checkbox, 14 + (len(gpu_stats) * 2), 1)
# Load in full 16bit precision
self.use_16bit_checkbox = QCheckBox("Load in 16bit")
@@ -542,11 +543,16 @@ class MainWindow(QMainWindow):
self.use_triton_checkbox.setToolTip("Use Triton for inference.")
layout.addWidget(self.use_triton_checkbox, 22 + (len(gpu_stats) * 2), 1)
# Add desc_act option Checkbox
self.use_desc_act_checkbox = QCheckBox("Use desc_act")
self.use_desc_act_checkbox.setToolTip("For models that don\'t have a quantize_config.json, this parameter is used to define whether to set desc_act or not in BaseQuantizeConfig.")
layout.addWidget(self.use_desc_act_checkbox, 23 + (len(gpu_stats) * 2), 0)
# Add horizontal line to seperate the Checkboxes
line = QFrame()
line.setFrameShape(QFrame.HLine)
line.setFrameShadow(QFrame.Sunken)
layout.addWidget(line, 23 + (len(gpu_stats) * 2), 0, 1, 3)
layout.addWidget(line, 29 + (len(gpu_stats) * 2), 0, 1, 3)
# New GUI Options based on Toolbox Checkboxes.
@@ -1861,6 +1867,10 @@ class MainWindow(QMainWindow):
if self.use_triton_checkbox.isChecked():
command += " --triton"
# if desc_act is checked
if self.use_desc_act_checkbox.isChecked():
command += " --desc_act"
# Adds the chosen extensions to the list of the command.
extensions = [self.extensions_list.item(i).text() for i in range(self.extensions_list.count()) if self.extensions_list.item(i).checkState() == Qt.Checked]
if self.use_extensions_checkbox.isChecked():
@@ -1922,29 +1932,6 @@ class MainWindow(QMainWindow):
profile_name = selected_profile.replace(".json", "")
self.profile_name_textfield.setText(profile_name)
def load_last_commit(self):
last_commit = os.path.join("./text-generation-webui/.git/ORIG_HEAD")
if os.path.exists(last_commit):
with open(last_commit, "r") as file:
last_commit_sha = file.read()
print(last_commit_sha)
try:
current_commit = (self.get_current_commit_sha() + '\n') # Call the method within the class
print(current_commit)
if current_commit != last_commit_sha:
self.update_button.setVisible(True)
else:
self.update_button.setVisible(False)
except json.JSONDecodeError:
pass
def get_current_commit_sha(self):
# Initialize the Git repository object
repo = git.Repo(repo_path)
# Get the current commit SHA
commit_sha = repo.head.object.hexsha
return commit_sha
def apply_load_settings(self, settings):
self.model_dropdown.setCurrentText(settings.get("model", ""))
self.model_type.setCurrentText(settings.get("model_type", ""))