mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-02 22:37:32 +00:00
Summary Fully Refactored the Load3D module to improve architecture and maintainability by consolidating functionality into a centralized composable pattern and simplifying component structure. and support VueNodes system Changes - Architecture: Introduced new useLoad3d composable to centralize 3D loading logic and state management - Component Simplification: Removed redundant components (Load3DAnimation.vue, Load3DAnimationScene.vue, PreviewManager.ts) - Support VueNodes - improve config store - remove lineart output due Animation doesnot support it, may add it back later - remove Preview screen and keep scene in fixed ratio in load3d (not affect preview3d) - improve record video feature which will already record video by same ratio as scene Need BE change https://github.com/comfyanonymous/ComfyUI/pull/10025 https://github.com/user-attachments/assets/9e038729-84a0-45ad-b0f2-11c57d7e0c9a ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-5765-refactor-refactor-load3d-2796d73d365081728297cc486e2e9052) by [Unito](https://www.unito.io)
53 lines
1.3 KiB
Vue
53 lines
1.3 KiB
Vue
<template>
|
|
<div
|
|
v-if="animations && animations.length > 0"
|
|
class="pointer-events-auto absolute top-0 left-0 z-10 flex w-full items-center justify-center gap-2 pt-2"
|
|
>
|
|
<Button class="p-button-rounded p-button-text" @click="togglePlay">
|
|
<i
|
|
:class="['pi', playing ? 'pi-pause' : 'pi-play', 'text-lg text-white']"
|
|
/>
|
|
</Button>
|
|
|
|
<Select
|
|
v-model="selectedSpeed"
|
|
:options="speedOptions"
|
|
option-label="name"
|
|
option-value="value"
|
|
class="w-24"
|
|
/>
|
|
|
|
<Select
|
|
v-model="selectedAnimation"
|
|
:options="animations"
|
|
option-label="name"
|
|
option-value="index"
|
|
class="w-32"
|
|
/>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import Button from 'primevue/button'
|
|
import Select from 'primevue/select'
|
|
|
|
type Animation = { name: string; index: number }
|
|
|
|
const animations = defineModel<Animation[]>('animations')
|
|
const playing = defineModel<boolean>('playing')
|
|
const selectedSpeed = defineModel<number>('selectedSpeed')
|
|
const selectedAnimation = defineModel<number>('selectedAnimation')
|
|
|
|
const speedOptions = [
|
|
{ name: '0.1x', value: 0.1 },
|
|
{ name: '0.5x', value: 0.5 },
|
|
{ name: '1x', value: 1 },
|
|
{ name: '1.5x', value: 1.5 },
|
|
{ name: '2x', value: 2 }
|
|
]
|
|
|
|
const togglePlay = () => {
|
|
playing.value = !playing.value
|
|
}
|
|
</script>
|