Migrate the last remaining V1 node (VACEOutpaint) to the V3 io.ComfyNode API and register it in get_node_list(). The Python change is mechanical; the stdlib io import is aliased to _io to avoid clashing with comfy's io. Rewrite the JS node-sizing for Nodes 2.0. The old onResize/computeSize hack inverted the V3 sizing model and caused runaway vertical growth on horizontal drag. Drive height via the getMinHeight option with a flex column that lets the canvas absorb extra height. There is no working min-width channel for DOM widgets in Nodes 2.0, so contain the controls with CSS (overflow:hidden, wrap/scroll rows) instead of forcing a floor. Add V3_DOC_GAPS.md documenting the V3/Nodes 2.0 gaps hit during migration.
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
"""
|
|
Wan VACE Prep - Custom nodes for preparing videos for Wan VACE generation
|
|
"""
|
|
|
|
from comfy_api.latest import ComfyExtension, io
|
|
|
|
from .vace_join import WanVACEPrep, WanVACEPrepBatch
|
|
from .vace_extend import WanVACEExtend
|
|
from .load_videos_from_folder import LoadVideosFromFolderSimple
|
|
from .vace_batch_context import WanVACEBatchContext
|
|
from .frame_number_overlay import FrameNumberOverlay
|
|
from .vace_inpaint import WanVACEInpaint
|
|
from .wan_first_middle_last_frame import WanFirstMiddleLastFrameToVideo
|
|
from .vace_first_middle_last import WanVACEFirstMiddleLast
|
|
from .vace_outpaint import VACEOutpaint
|
|
|
|
# Node display names come from each node's Schema.display_name, so no
|
|
# NODE_DISPLAY_NAME_MAPPINGS is needed here.
|
|
|
|
|
|
class WanVacePrepExtension(ComfyExtension):
|
|
async def get_node_list(self) -> list[type[io.ComfyNode]]:
|
|
return [
|
|
WanVACEPrep,
|
|
WanVACEPrepBatch,
|
|
WanVACEExtend,
|
|
LoadVideosFromFolderSimple,
|
|
WanVACEBatchContext,
|
|
FrameNumberOverlay,
|
|
WanVACEInpaint,
|
|
WanFirstMiddleLastFrameToVideo,
|
|
WanVACEFirstMiddleLast,
|
|
VACEOutpaint,
|
|
]
|
|
|
|
|
|
async def comfy_entrypoint() -> WanVacePrepExtension:
|
|
return WanVacePrepExtension()
|
|
|
|
|
|
WEB_DIRECTORY = "./web"
|
|
|
|
__all__ = ["comfy_entrypoint", "WEB_DIRECTORY"]
|