- Possible fix: DreamTrack load stuck. - Improvements to DreamPower error messages. - Waifu2X CUDA 10.2 requirement visibility improvements. - Some improvements for Mac release.tags/v1.5.4
@@ -50,6 +50,15 @@ | |||
} | |||
} | |||
&.button--warning { | |||
@apply bg-warning text-black; | |||
&:hover, | |||
&:active { | |||
@apply bg-warning-700; | |||
} | |||
} | |||
&.button--danger { | |||
@apply bg-danger text-black; | |||
@@ -48,7 +48,8 @@ input[type="checkbox"] { | |||
} | |||
&[readonly] { | |||
@apply text-common-light cursor-default #{!important}; | |||
@apply text-common-light #{!important}; | |||
@apply cursor-default; | |||
} | |||
&.input--sm { |
@@ -43,11 +43,11 @@ | |||
</button> | |||
<a v-if="project === 'waifu' && $settings.preferences.advanced.device === 'GPU'" | |||
v-tooltip="'Software required to use Waifu2X on GPU.'" | |||
class="button button--danger" | |||
v-tooltip="'Install this to use Waifu2X on GPU.'" | |||
class="button button--success" | |||
href="https://developer.nvidia.com/cuda-10.2-download-archive" | |||
target="_blank"> | |||
<span class="icon"><font-awesome-icon icon="download" /></span> | |||
<span class="icon"><font-awesome-icon icon="external-link-square-alt" /></span> | |||
<span>CUDA 10.2</span> | |||
</a> | |||
@@ -140,10 +140,12 @@ class DreamApp { | |||
*/ | |||
static async setup() { | |||
if (process.platform === 'darwin') { | |||
const { enforceMacOSAppLocation } = require('electron-util') | |||
if (!process.env.BUILD_PORTABLE && !process.env.DISABLE_ENFORCE_APP_LOCATION) { | |||
const { enforceMacOSAppLocation } = require('electron-util') | |||
// https://github.com/sindresorhus/electron-util#enforcemacosapplocation-macos | |||
enforceMacOSAppLocation() | |||
// https://github.com/sindresorhus/electron-util#enforcemacosapplocation-macos | |||
enforceMacOSAppLocation() | |||
} | |||
// PyTorch does not have support for GPU in macOS | |||
settings.preferences.advanced.device = 'CPU' |
@@ -9,47 +9,39 @@ | |||
}, | |||
{ | |||
"query": "CUDA environment is not correctly set up", | |||
"message": "To use Waifu2X with GPU it is necessary to install CUDA 10.2" | |||
"message": "Waifu2X error: Please install <a href='https://developer.nvidia.com/cuda-10.2-download-archive' target='_blank'>CUDA 10.2</a> to use Waifu2X." | |||
}, | |||
{ | |||
"query": "no longer supports this GPU", | |||
"message": "The algorithm no longer supports your GPU." | |||
"message": "Algorithm error: The algorithm no longer supports your GPU." | |||
}, | |||
{ | |||
"query": "Buy new RAM!", | |||
"message": "You have run out of RAM on your system! Please install more RAM on your system before using DreamTime." | |||
"message": "You have run out of RAM on your system! Please buy more RAM before using DreamTime." | |||
}, | |||
{ | |||
"query": "Stopped to avoid memory problems", | |||
"message": "You have run out of RAM on your system! Please install more RAM on your system before using DreamTime." | |||
"message": "You have run out of RAM on your system! Please buy more RAM before using DreamTime." | |||
}, | |||
{ | |||
"query": "enforce fail at CPUAllocator", | |||
"message": "You have run out of RAM on your system! Please install more RAM on your system before using DreamTime." | |||
"message": "You have run out of RAM on your system! Please buy more RAM before using DreamTime." | |||
}, | |||
{ | |||
"query": "CUDA out of memory", | |||
"message": "Your GPU doesn't have enough VRAM! The algorithm is out of VRAM to process the photo, please buy a new GPU with more VRAM or use CPU processing." | |||
"message": "Your GPU doesn't have enough VRAM! Please use CPU processing or buy a new GPU with more than 8 GB of VRAM." | |||
}, | |||
{ | |||
"query": "codec can't decode byte", | |||
"message": "There was a problem saving the nudified photo. Please make sure the folders in Settings do not have special characters or spaces." | |||
"message": "Save error: Please make sure you have enough disk space and the folders in settings do not have special characters or spaces." | |||
}, | |||
{ | |||
"query": "The final result is not a valid image file", | |||
"message": "There was a problem saving the nudified photo. Please make sure you have enough disk space and the folders in Settings do not have special characters or spaces." | |||
"message": "Save error: Please make sure you have enough disk space and the folders in settings do not have special characters or spaces." | |||
}, | |||
{ | |||
"query": "invalid device ordinal", | |||
"message": "The selected GPU is not a valid device. Please make sure that the GPU option in Settings is valid." | |||
}, | |||
{ | |||
"query": "Image is not 512 x 512", | |||
"message": "Image error: Your photo needs to be 512x512 to be nudified. Please use the 'Scale method' option or resize manually before uploading." | |||
}, | |||
{ | |||
"query": "_mask.sameSize(*psrc1)", | |||
"message": "Image error: Your photo needs to be 512x512 to be nudified. Please use the 'Scale method' option or resize manually before uploading." | |||
"message": "The selected GPU is not a valid device. Please make sure that the GPU option in settings is valid." | |||
}, | |||
{ | |||
"query": "loading Python", | |||
@@ -93,7 +85,7 @@ | |||
}, | |||
{ | |||
"query": "not compiled with CUDA", | |||
"message": "You have installed the CPU-only version of DreamPower. Please reinstall DreamPower to get GPU support." | |||
"message": "You have installed the CPU-only version of DreamPower. Please reinstall DreamPower." | |||
}, | |||
{ | |||
"query": "float division by zero", |
@@ -199,7 +199,7 @@ | |||
- id: preferences.advanced.imageSize | |||
label: Image size. | |||
description: Size for photo rescale. Larger sizes requires more RAM and can produce less satisfactory results. | |||
description: Photo scale size. Larger sizes requires more RAM and can produce less satisfactory results. | |||
input: select | |||
options: | |||
- label: 256x256 | |||
@@ -239,7 +239,7 @@ | |||
- id: preferences.advanced.waifu.scale | |||
label: Upscale ratio. | |||
description: Ratios beyond 2x can decrease the quality. | |||
description: | |||
input: select | |||
options: | |||
- label: 2x |
@@ -9,7 +9,6 @@ | |||
import { isNil } from 'lodash' | |||
import Ws from '@adonisjs/websocket-client/index' | |||
import Deferred from 'deferred' | |||
import { BaseService } from './base' | |||
import { settings } from '../system/settings' | |||
import { Consola } from '../consola' | |||
@@ -95,33 +94,36 @@ export class DreamTrackService extends BaseService { | |||
return Promise.resolve() | |||
} | |||
this.promise = Deferred() | |||
consola.info(`Connecting to ${this.host}...`) | |||
return new Promise((resolve, reject) => { | |||
this.promise = { | |||
resolve, | |||
reject, | |||
} | |||
try { | |||
this.timeout = setTimeout(() => { | |||
this.resolve() | |||
}, CONNECT_TIMEOUT) | |||
consola.info(`Connecting to ${this.host}...`) | |||
const ws = Ws(this.host, this.config) | |||
try { | |||
this.timeout = setTimeout(() => { | |||
this.resolve() | |||
}, CONNECT_TIMEOUT) | |||
ws.on('open', this.onOpen.bind(this)) | |||
const ws = Ws(this.host, this.config) | |||
ws.on('close', this.onClosed.bind(this)) | |||
ws.on('open', this.onOpen.bind(this)) | |||
ws.on('reconnect', this.onReconnect.bind(this)) | |||
ws.on('close', this.onClosed.bind(this)) | |||
ws.connect() | |||
ws.on('reconnect', this.onReconnect.bind(this)) | |||
/** @type {import('@adonisjs/websocket-client/src/Connection').default} */ | |||
this.service = ws | |||
} catch (err) { | |||
consola.warn('Setup failed!', err) | |||
return Promise.resolve() | |||
} | |||
ws.connect() | |||
return this.promise.promise | |||
/** @type {import('@adonisjs/websocket-client/src/Connection').default} */ | |||
this.service = ws | |||
} catch (err) { | |||
consola.warn('Setup failed!', err) | |||
this.resolve() | |||
} | |||
}) | |||
} | |||
resolve() { |
@@ -3,7 +3,7 @@ | |||
"private": true, | |||
"displayName": "DreamTime", | |||
"description": "Application that uses artificial intelligence to generate fake nudes.", | |||
"version": "1.5.3", | |||
"version": "1.5.4", | |||
"homepage": "https://time.dreamnet.tech", | |||
"main": "electron/dist/index.js", | |||
"license": "GPL-3.0-only", |
@@ -3,7 +3,7 @@ | |||
"private": true, | |||
"displayName": "DreamTime", | |||
"description": "Application that uses artificial intelligence to generate fake nudes.", | |||
"version": "1.5.3", | |||
"version": "1.5.4", | |||
"main": "electron/dist/index.js", | |||
"license": "GPL-3.0-only" | |||
} |
@@ -12,7 +12,7 @@ | |||
</h2> | |||
</div> | |||
<div class="right"> | |||
<div class="right buttons"> | |||
<button v-if="requirements.canUseWaifu" class="button" @click="$waifu.openAppFolder()"> | |||
App Folder | |||
</button> | |||
@@ -20,6 +20,15 @@ | |||
<nuxt-link v-else to="/wizard/waifu" class="button button--info"> | |||
Install | |||
</nuxt-link> | |||
<a v-if="$settings.preferences.advanced.device === 'GPU'" | |||
v-tooltip="'Install this to use Waifu2X on GPU.'" | |||
href="https://developer.nvidia.com/cuda-10.2-download-archive" | |||
target="_blank" | |||
class="button button--success"> | |||
<span class="icon"><font-awesome-icon icon="external-link-square-alt" /></span> | |||
<span>CUDA 10.2</span> | |||
</a> | |||
</div> | |||
</div> | |||
@@ -70,11 +79,11 @@ export default { | |||
@apply grid grid-cols-4 gap-3; | |||
.left { | |||
@apply col-span-3; | |||
@apply col-span-2; | |||
} | |||
.right { | |||
@apply flex justify-center items-center; | |||
@apply flex justify-center items-center col-span-2; | |||
} | |||
} | |||
</style> |
@@ -10,7 +10,7 @@ | |||
<!-- Menu --> | |||
<section class="menu__items"> | |||
<MenuItem | |||
label="Preferences" | |||
label="Photo Preferences" | |||
icon="sliders-h" | |||
:href="`/nudify/${photo.id}/preferences`" /> | |||
@@ -3,7 +3,7 @@ | |||
<PageHeader> | |||
<h2 class="title"> | |||
<span class="icon"><font-awesome-icon icon="sliders-h" /></span> | |||
<span>Preferences</span> | |||
<span>Photo Preferences</span> | |||
</h2> | |||
<h3 class="subtitle"> |
@@ -3,7 +3,7 @@ | |||
<PageHeader> | |||
<h2 class="title"> | |||
<span class="icon"><font-awesome-icon icon="images" /></span> | |||
<span>Photos</span> | |||
<span>My Photos</span> | |||
</h2> | |||
<h3 class="subtitle"> | |||
@@ -14,7 +14,7 @@ | |||
<button class="button" | |||
@click.prevent="openFolder"> | |||
<span class="icon"><font-awesome-icon icon="folder-open" /></span> | |||
<span>Open Folder</span> | |||
<span>Folder</span> | |||
</button> | |||
</template> | |||
</PageHeader> |
@@ -29,7 +29,7 @@ | |||
v-model="value$.folders.cli" | |||
readonly | |||
class="input" | |||
title="Change" | |||
:title="value$.folders.cli" | |||
@click.prevent="changePower"> | |||
<input | |||
@@ -37,6 +37,7 @@ | |||
disabled | |||
readonly | |||
:value="paths.getPowerPath()" | |||
:title="value$.folders.cli" | |||
class="input"> | |||
</SettingsField> | |||
@@ -46,7 +47,7 @@ | |||
v-model="value$.folders.waifu" | |||
readonly | |||
class="input" | |||
title="Change" | |||
:title="value$.folders.waifu" | |||
@click.prevent="changeWaifu"> | |||
<input | |||
@@ -54,6 +55,7 @@ | |||
disabled | |||
readonly | |||
:value="paths.getWaifuPath()" | |||
:title="value$.folders.waifu" | |||
class="input"> | |||
</SettingsField> | |||
@@ -64,7 +66,7 @@ | |||
:disabled="$dream.isPortable" | |||
class="input" | |||
readonly | |||
title="Change" | |||
:title="value$.folders.models" | |||
@click.prevent="changeModels"> | |||
<input | |||
@@ -72,6 +74,7 @@ | |||
disabled | |||
readonly | |||
:value="paths.getModelsPath()" | |||
:title="value$.folders.models" | |||
class="input"> | |||
</SettingsField> | |||
@@ -82,7 +85,7 @@ | |||
:disabled="$dream.isPortable" | |||
class="input" | |||
readonly | |||
title="Change" | |||
:title="value$.folders.cropped" | |||
@click.prevent="changeCropped"> | |||
<input | |||
@@ -90,6 +93,7 @@ | |||
disabled | |||
readonly | |||
:value="paths.getCropPath()" | |||
:title="value$.folders.cropped" | |||
class="input"> | |||
</SettingsField> | |||
</div> |
@@ -12,6 +12,11 @@ | |||
</h3> | |||
</PageHeader> | |||
<div v-if="value$.preferences.mode === 3" class="notification notification--info"> | |||
<span class="icon"><font-awesome-icon icon="exclamation-triangle" /></span> | |||
<span>Advanced mode is recommended only for experienced users. <a href="https://dreamtime.tech/docs/guide/custom-masks/" target="_blank">Click here to visit the guide</a>.</span> | |||
</div> | |||
<SettingsPreferences v-model="value$.preferences" /> | |||
</div> | |||
</template> |
@@ -20,16 +20,16 @@ | |||
<div class="project__content"> | |||
<div v-if="!requirements.power.installed" class="notification notification--warning"> | |||
This component is required to continue using {{ $dreamtime.name }}. | |||
This component needs to be installed to continue using {{ $dreamtime.name }}. | |||
</div> | |||
<div v-else-if="!requirements.power.compatible" class="notification notification--danger"> | |||
<h5>ALERT</h5> | |||
The installed version is not compatible with this version of {{ $dreamtime.name }}. Please update to continue. | |||
This component requires an update to continue to be used in this version of {{ $dreamtime.name }}. | |||
</div> | |||
<div v-else class="notification"> | |||
Installed version: <strong>{{ $dreampower.currentVersion }}</strong> | |||
Installed version: <strong>{{ $dreampower.version }}</strong> | |||
</div> | |||
<AppBox> | |||
@@ -53,9 +53,10 @@ | |||
<SettingsField v-if="!$dreamtime.isPortable" label="Location" field-id="folders.cli"> | |||
<input | |||
v-model="$settings.folders.cli" | |||
:title="$settings.folders.cli" | |||
readonly | |||
class="input" | |||
title="Change" | |||
:style="{ cursor: 'pointer' }" | |||
@click.prevent="changePower"> | |||
</SettingsField> | |||