From d8171b9d1b481ec4a851b52d8606da524692b699 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20F=C3=B6rster?= Date: Sat, 5 Aug 2023 15:00:55 +0200 Subject: [PATCH 01/10] Option to enable GUI hardware acceleration (#2055) Add a settings option in the 'Advanced Tab' to allow hardware acceleration. --- src/main/gui/create.ts | 8 +++++++- src/renderer/components/SettingsModal.tsx | 13 ++++++++++++- src/renderer/contexts/SettingsContext.tsx | 5 +++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/main/gui/create.ts b/src/main/gui/create.ts index ad24dac3f..25362bc0d 100644 --- a/src/main/gui/create.ts +++ b/src/main/gui/create.ts @@ -3,6 +3,7 @@ import electronLog from 'electron-log'; import { log } from '../../common/log'; import { lazy } from '../../common/util'; import { OpenArguments } from '../arguments'; +import { settingStorage } from '../setting-storage'; import { createMainWindow } from './main-window'; const mdCodeBlock = (code: string): string => { @@ -47,7 +48,12 @@ const setupErrorHandling = () => { export const createGuiApp = (args: OpenArguments) => { setupErrorHandling(); - app.disableHardwareAcceleration(); + const isEnableHardwareAcceleration = + settingStorage.getItem('enable-hardware-acceleration') === 'true'; + + if (!isEnableHardwareAcceleration) { + app.disableHardwareAcceleration(); + } const hasInstanceLock = app.requestSingleInstanceLock(); if (!hasInstanceLock) { diff --git a/src/renderer/components/SettingsModal.tsx b/src/renderer/components/SettingsModal.tsx index 889f2e93b..86d2cbbdc 100644 --- a/src/renderer/components/SettingsModal.tsx +++ b/src/renderer/components/SettingsModal.tsx @@ -674,9 +674,12 @@ const PythonSettings = memo(() => { }); const AdvancedSettings = memo(() => { - const { useCheckUpdOnStrtUp, useExperimentalFeatures } = useContext(SettingsContext); + const { useCheckUpdOnStrtUp, useExperimentalFeatures, useEnableHardwareAcceleration } = + useContext(SettingsContext); const [isCheckUpdOnStrtUp, setIsCheckUpdOnStrtUp] = useCheckUpdOnStrtUp; const [isExperimentalFeatures, setIsExperimentalFeatures] = useExperimentalFeatures; + const [isEnableHardwareAcceleration, setIsEnableHardwareAcceleration] = + useEnableHardwareAcceleration; return ( { setIsExperimentalFeatures((prev) => !prev); }} /> + { + setIsEnableHardwareAcceleration((prev) => !prev); + }} + /> ); }); diff --git a/src/renderer/contexts/SettingsContext.tsx b/src/renderer/contexts/SettingsContext.tsx index 67648f43b..541ee2f76 100644 --- a/src/renderer/contexts/SettingsContext.tsx +++ b/src/renderer/contexts/SettingsContext.tsx @@ -29,6 +29,7 @@ interface Settings { useIsDarkMode: GetSetState; useAnimateChain: GetSetState; useExperimentalFeatures: GetSetState; + useEnableHardwareAcceleration: GetSetState; useViewportExportPadding: GetSetState; // Node Settings @@ -94,6 +95,9 @@ export const SettingsProvider = memo(({ children }: React.PropsWithChildren({ // GPU Stuff @@ -115,6 +119,7 @@ export const SettingsProvider = memo(({ children }: React.PropsWithChildren Date: Sat, 5 Aug 2023 15:01:45 +0200 Subject: [PATCH 02/10] Fixed release CI (#2059) --- .github/workflows/release-test.yml | 38 ++++++++++++++++++++++++++++++ .github/workflows/release.yml | 7 +----- package.json | 7 +----- 3 files changed, 40 insertions(+), 12 deletions(-) create mode 100644 .github/workflows/release-test.yml diff --git a/.github/workflows/release-test.yml b/.github/workflows/release-test.yml new file mode 100644 index 000000000..be7c56972 --- /dev/null +++ b/.github/workflows/release-test.yml @@ -0,0 +1,38 @@ +name: Release + +on: + pull_request: + branches: ['*'] + types: + - opened + - synchronize + - closed + paths: + - '.github/**' + - 'package.json' + - 'package-lock.json' + - 'forge.config.js' + - 'webpack*.js' + push: + branches: [main] + +permissions: read-all + +jobs: + release-test: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [macos-latest, ubuntu-latest, windows-latest] + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16 + cache: 'npm' + - run: npm ci + - name: publish --dry-run + shell: bash + run: npm run publish -- --dry-run diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fb523f4c4..1436b9e72 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -37,9 +37,4 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash - run: | - if [[ ${{ matrix.os }} == 'macos-latest' ]]; then - npm run publish-mac - else - npm run publish - fi + run: npm run publish diff --git a/package.json b/package.json index e591b6e5e..138f97709 100644 --- a/package.json +++ b/package.json @@ -12,14 +12,9 @@ "debug:py": "cd backend/src && nodemon --exec \"python -m debugpy --listen 5678\" ./run.py 8000", "package": "cross-env NODE_ENV=production electron-forge package", "make": "cross-env NODE_ENV=production electron-forge make", - "make-mac-arm64": "cross-env NODE_ENV=production electron-forge make --arch=arm64", - "make-mac-x64": "cross-env NODE_ENV=production electron-forge make --arch=x64", "make-linux-zip": "cross-env NODE_ENV=production electron-forge make --targets @electron-forge/maker-zip --platform linux", "make-win-zip": "cross-env NODE_ENV=production electron-forge make --targets @electron-forge/maker-zip --platform win32", - "make-mac-arm64-zip": "cross-env NODE_ENV=production electron-forge make --targets @electron-forge/maker-zip --arch arm64", - "make-mac-x64-zip": "cross-env NODE_ENV=production electron-forge make --targets @electron-forge/maker-zip --arch x64", - "make-mac-all": "npm run make-mac-arm64 && npm run make-mac-x64", - "publish-mac": "npm run make-mac-all && npm run publish", + "make-mac-zip": "cross-env NODE_ENV=production electron-forge make --targets @electron-forge/maker-zip --platform darwin", "publish": "cross-env NODE_ENV=production electron-forge publish", "lint": "npm run lint:js && npm run lint:py", "lint:js": "eslint . --ext \".js,.jsx,.ts,.tsx\" && stylelint src/**/*.scss", From c5dfb912b48da4c94eedf78abcdace751fd33e65 Mon Sep 17 00:00:00 2001 From: Michael Schmidt Date: Sun, 6 Aug 2023 17:40:38 +0200 Subject: [PATCH 03/10] Bump to 0.19.1 (#2061) --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6100fdc57..a944b9d51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chainner", - "version": "0.19.0", + "version": "0.19.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chainner", - "version": "0.19.0", + "version": "0.19.1", "license": "GPLv3", "dependencies": { "@babel/plugin-transform-react-jsx": "^7.17.12", diff --git a/package.json b/package.json index 138f97709..37d352f17 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "chainner", "productName": "chaiNNer", - "version": "0.19.0", + "version": "0.19.1", "description": "A flowchart based image processing GUI", "main": ".webpack/main", "scripts": { From fedc6d37397d96aa2d9240d7714f1b4661ced1c8 Mon Sep 17 00:00:00 2001 From: theflyingzamboni <55669985+theflyingzamboni@users.noreply.github.com> Date: Mon, 7 Aug 2023 14:22:16 -0400 Subject: [PATCH 04/10] Added sorting back to Image File Iterator (#2067) --- .../image/batch_processing/image_file_iterator.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/src/packages/chaiNNer_standard/image/batch_processing/image_file_iterator.py b/backend/src/packages/chaiNNer_standard/image/batch_processing/image_file_iterator.py index deb57e41d..1ea179a95 100644 --- a/backend/src/packages/chaiNNer_standard/image/batch_processing/image_file_iterator.py +++ b/backend/src/packages/chaiNNer_standard/image/batch_processing/image_file_iterator.py @@ -17,6 +17,7 @@ NumberOutput, TextOutput, ) +from nodes.utils.utils import alphanumeric_sort from process import IteratorContext from .. import batch_processing_group @@ -42,7 +43,10 @@ def list_glob(directory: str, globexpr: str, ext_filter: List[str]) -> List[str] flags=flags, ) - return list(set(map(lambda f: str(Path(directory) / f), filtered))) + return sorted( + list(set(map(lambda f: str(Path(directory) / f), filtered))), + key=alphanumeric_sort, + ) @batch_processing_group.register( From cc33b9898b9fa03dae1b172d8fe1e984a7722141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20F=C3=B6rster?= Date: Tue, 8 Aug 2023 06:03:36 +0200 Subject: [PATCH 05/10] fix duplicating nodes and exporting firing twice (#2068) fixes #2065 --- src/renderer/contexts/GlobalNodeState.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/renderer/contexts/GlobalNodeState.tsx b/src/renderer/contexts/GlobalNodeState.tsx index 7c8d7fc38..d9b419e93 100644 --- a/src/renderer/contexts/GlobalNodeState.tsx +++ b/src/renderer/contexts/GlobalNodeState.tsx @@ -1303,12 +1303,12 @@ export const GlobalProvider = memo( useIpcRendererListener('copy', copyFn); useHotkeys('ctrl+v, cmd+v', pasteFn); useIpcRendererListener('paste', pasteFn); - useHotkeys('ctrl+d, cmd+d', duplicateFn); + useHotkeys('ctrl+d', duplicateFn); useIpcRendererListener('duplicate', duplicateFn); - useHotkeys('ctrl+shift+d, cmd+shift+d', duplicateWithInputEdgesFn); + useHotkeys('ctrl+shift+d', duplicateWithInputEdgesFn); useIpcRendererListener('duplicate-with-input-edges', duplicateWithInputEdgesFn); - useHotkeys('ctrl+p, cmd+p', exportViewportScreenshot); - useHotkeys('ctrl+shift+p, cmd++shift+p', exportViewportScreenshotToClipboard); + useHotkeys('ctrl+p', exportViewportScreenshot); + useHotkeys('ctrl+shift+p', exportViewportScreenshotToClipboard); useIpcRendererListener( 'export-viewport', useCallback( From 79364acef072f90eaa05902f3ad2a5ee641e5a1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20F=C3=B6rster?= Date: Wed, 9 Aug 2023 00:08:09 +0200 Subject: [PATCH 06/10] changes to theme selection (#2060) instead of a toggle for always dark the user can now choose between: Dark Mode / Light Mode / System --- src/renderer/app.tsx | 6 ++--- src/renderer/components/SettingsModal.tsx | 26 +++++++++++++-------- src/renderer/contexts/SettingsContext.tsx | 12 +++++----- src/renderer/theme.ts | 28 +++++++++++++++++++++-- 4 files changed, 51 insertions(+), 21 deletions(-) diff --git a/src/renderer/app.tsx b/src/renderer/app.tsx index 21b90d43c..c0393f8f6 100644 --- a/src/renderer/app.tsx +++ b/src/renderer/app.tsx @@ -11,7 +11,7 @@ import { ContextMenuProvider } from './contexts/ContextMenuContext'; import { HotkeysProvider } from './contexts/HotKeyContext'; import { useAsyncEffect } from './hooks/useAsyncEffect'; import { Main } from './main'; -import { theme } from './theme'; +import { darktheme } from './theme'; import './i18n'; TimeAgo.addLocale(en); @@ -60,8 +60,8 @@ export const App = memo(() => { ); return ( - - + + diff --git a/src/renderer/components/SettingsModal.tsx b/src/renderer/components/SettingsModal.tsx index 86d2cbbdc..d3888a083 100644 --- a/src/renderer/components/SettingsModal.tsx +++ b/src/renderer/components/SettingsModal.tsx @@ -121,6 +121,7 @@ interface DropdownProps extends SettingsItemProps { value: T; options: readonly { label: string; value: T }[]; onChange: (value: T) => void; + small?: boolean; } // eslint-disable-next-line prefer-arrow-functions/prefer-arrow-functions, react-memo/require-memo @@ -131,6 +132,7 @@ function Dropdown({ value, options, onChange, + small, }: DropdownProps) { const index = options.findIndex((o) => o.value === value); @@ -149,7 +151,7 @@ function Dropdown({ >