-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path__init__.py
More file actions
66 lines (54 loc) · 2.48 KB
/
Copy path__init__.py
File metadata and controls
66 lines (54 loc) · 2.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
"""comfyui-memoacts — ComfyUI node pack for the MemoActs reel workflow.
The nodes are widgets and reporting; the work is `memoacts_core.pipeline`,
which `tools/` calls in the same order with the same arguments (SPEC §3). That
is deliberate and load-bearing: the two used to be separate implementations of
the same sequence, and they drifted.
The workflow is five nodes, left to right, and each is one sentence:
Project ─→ Align ─→ Shot Table ─→ Subtitles ─→ Render Reel
"my material" "my words "I decide "the words "the reel
become what is become is made"
timings" seen" captions"
Shot Table ─→ Preview Shot one shot, seconds
Effect Preset ─→ Grade ─→ Grain ─→ … ─→ Apply Effects ─┘
"""
from typing_extensions import override
from comfy_api.latest import ComfyExtension, io
from .nodes_align import MemoActsAlign
from .nodes_encode import MemoActsPreviewShot, MemoActsRenderReel
from .nodes_layers import (MemoActsApplyEffects, MemoActsEffectPreset,
MemoActsFrameOverlay, MemoActsGrade,
MemoActsGrain, MemoActsShake, MemoActsSharpen,
MemoActsTexture)
from .nodes_project import MemoActsProject
from .nodes_shot import MemoActsSetImage, MemoActsSetMotion, MemoActsShotTable
from .nodes_subs import MemoActsSubtitles
# Importing this registers the /memoacts/... routes the shot-table widget calls.
# It has to happen at load time, before ComfyUI hands its aiohttp app the route
# table it collected.
from . import nodes_web # noqa: F401,E402
#: The shot-table widget, served from web/ (SPEC §5.2 — the edit is a table,
#: and a node graph is poor at tables).
WEB_DIRECTORY = "web"
class MemoActsExtension(ComfyExtension):
@override
async def get_node_list(self) -> list[type[io.ComfyNode]]:
return [
MemoActsProject,
MemoActsAlign,
MemoActsShotTable,
MemoActsSubtitles,
MemoActsRenderReel,
MemoActsPreviewShot,
MemoActsSetMotion,
MemoActsSetImage,
MemoActsEffectPreset,
MemoActsGrade,
MemoActsGrain,
MemoActsTexture,
MemoActsFrameOverlay,
MemoActsShake,
MemoActsSharpen,
MemoActsApplyEffects,
]
async def comfy_entrypoint() -> MemoActsExtension:
return MemoActsExtension()