-
Notifications
You must be signed in to change notification settings - Fork 161
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add about panel in settings dialog (#799)
* basic about page * Remove frontend version from setting dialog header * Style about page * basic system stats * Basic styling * Reword * Format memory amount
- Loading branch information
Showing
8 changed files
with
227 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
<template> | ||
<div class="grid grid-cols-2 gap-2"> | ||
<template v-for="col in deviceColumns" :key="col.field"> | ||
<div class="font-medium">{{ $t(col.header) }}</div> | ||
<div>{{ formatValue(props.device[col.field], col.field) }}</div> | ||
</template> | ||
</div> | ||
</template> | ||
|
||
<script setup lang="ts"> | ||
import type { DeviceStats } from '@/types/apiTypes' | ||
const props = defineProps<{ | ||
device: DeviceStats | ||
}>() | ||
const deviceColumns = [ | ||
{ field: 'name', header: 'Name' }, | ||
{ field: 'type', header: 'Type' }, | ||
{ field: 'vram_total', header: 'VRAM Total' }, | ||
{ field: 'vram_free', header: 'VRAM Free' }, | ||
{ field: 'torch_vram_total', header: 'Torch VRAM Total' }, | ||
{ field: 'torch_vram_free', header: 'Torch VRAM Free' } | ||
] | ||
const formatValue = (value: any, field: string) => { | ||
if ( | ||
['vram_total', 'vram_free', 'torch_vram_total', 'torch_vram_free'].includes( | ||
field | ||
) | ||
) { | ||
const mb = Math.round(value / (1024 * 1024)) | ||
if (mb >= 1024) { | ||
return `${(mb / 1024).toFixed(2)} GB` | ||
} | ||
return `${mb} MB` | ||
} | ||
return value | ||
} | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
<template> | ||
<div class="system-stats"> | ||
<div class="mb-6"> | ||
<h2 class="text-2xl font-semibold mb-4">{{ $t('systemInfo') }}</h2> | ||
<div class="grid grid-cols-2 gap-2"> | ||
<template v-for="col in systemColumns" :key="col.field"> | ||
<div class="font-medium">{{ $t(col.header) }}</div> | ||
<div>{{ systemInfo[col.field] }}</div> | ||
</template> | ||
</div> | ||
</div> | ||
|
||
<Divider /> | ||
|
||
<div> | ||
<h2 class="text-2xl font-semibold mb-4">{{ $t('devices') }}</h2> | ||
<TabView v-if="props.stats.devices.length > 1"> | ||
<TabPanel | ||
v-for="device in props.stats.devices" | ||
:key="device.index" | ||
:header="device.name" | ||
> | ||
<DeviceInfo :device="device" /> | ||
</TabPanel> | ||
</TabView> | ||
<DeviceInfo v-else :device="props.stats.devices[0]" /> | ||
</div> | ||
</div> | ||
</template> | ||
|
||
<script setup lang="ts"> | ||
import { computed } from 'vue' | ||
import TabView from 'primevue/tabview' | ||
import TabPanel from 'primevue/tabpanel' | ||
import Divider from 'primevue/divider' | ||
import type { SystemStats } from '@/types/apiTypes' | ||
import DeviceInfo from '@/components/common/DeviceInfo.vue' | ||
const props = defineProps<{ | ||
stats: SystemStats | ||
}>() | ||
const systemInfo = computed(() => ({ | ||
...props.stats.system, | ||
argv: props.stats.system.argv.join(' ') | ||
})) | ||
const systemColumns = [ | ||
{ field: 'os', header: 'OS' }, | ||
{ field: 'python_version', header: 'Python Version' }, | ||
{ field: 'embedded_python', header: 'Embedded Python' }, | ||
{ field: 'pytorch_version', header: 'Pytorch Version' }, | ||
{ field: 'argv', header: 'Arguments' } | ||
] | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
<template> | ||
<div> | ||
<h2 class="text-2xl font-bold mb-2">{{ $t('about') }}</h2> | ||
<div class="space-y-2"> | ||
<a | ||
v-for="link in links" | ||
:key="link.url" | ||
:href="link.url" | ||
target="_blank" | ||
rel="noopener noreferrer" | ||
class="inline-flex items-center no-underline" | ||
> | ||
<Tag class="mr-2"> | ||
<template #icon> | ||
<i :class="[link.icon, 'mr-2 text-xl']"></i> | ||
</template> | ||
{{ link.label }} | ||
</Tag> | ||
</a> | ||
</div> | ||
|
||
<Divider /> | ||
|
||
<SystemStatsPanel | ||
v-if="systemStatsStore.systemStats" | ||
:stats="systemStatsStore.systemStats" | ||
/> | ||
</div> | ||
</template> | ||
|
||
<script setup lang="ts"> | ||
import { useSystemStatsStore } from '@/stores/systemStatsStore' | ||
import Tag from 'primevue/tag' | ||
import Divider from 'primevue/divider' | ||
import { computed, onMounted } from 'vue' | ||
import SystemStatsPanel from '@/components/common/SystemStatsPanel.vue' | ||
const systemStatsStore = useSystemStatsStore() | ||
const frontendVersion = window['__COMFYUI_FRONTEND_VERSION__'] | ||
const coreVersion = computed( | ||
() => systemStatsStore.systemStats?.system?.comfyui_version ?? '' | ||
) | ||
const links = computed(() => [ | ||
{ | ||
label: `ComfyUI ${coreVersion.value}`, | ||
url: 'https://github.com/comfyanonymous/ComfyUI', | ||
icon: 'pi pi-github' | ||
}, | ||
{ | ||
label: `ComfyUI_frontend v${frontendVersion}`, | ||
url: 'https://github.com/Comfy-Org/ComfyUI_frontend', | ||
icon: 'pi pi-github' | ||
}, | ||
{ | ||
label: 'Discord', | ||
url: 'https://www.comfy.org/discord', | ||
icon: 'pi pi-discord' | ||
}, | ||
{ label: 'ComfyOrg', url: 'https://www.comfy.org/', icon: 'pi pi-globe' } | ||
]) | ||
onMounted(async () => { | ||
if (!systemStatsStore.systemStats) { | ||
await systemStatsStore.fetchSystemStats() | ||
} | ||
}) | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
import { defineStore } from 'pinia' | ||
import { ref } from 'vue' | ||
import { api } from '@/scripts/api' | ||
import type { SystemStats } from '@/types/apiTypes' | ||
|
||
export const useSystemStatsStore = defineStore('systemStats', () => { | ||
const systemStats = ref<SystemStats | null>(null) | ||
const isLoading = ref(false) | ||
const error = ref<string | null>(null) | ||
|
||
async function fetchSystemStats() { | ||
isLoading.value = true | ||
error.value = null | ||
|
||
try { | ||
systemStats.value = await api.getSystemStats() | ||
} catch (err) { | ||
error.value = | ||
err instanceof Error | ||
? err.message | ||
: 'An error occurred while fetching system stats' | ||
console.error('Error fetching system stats:', err) | ||
} finally { | ||
isLoading.value = false | ||
} | ||
} | ||
|
||
return { | ||
systemStats, | ||
isLoading, | ||
error, | ||
fetchSystemStats | ||
} | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters