Defining NODE_CLASS_MAPPINGS made ComfyUI skip comfy_entrypoint, so /imageops/viewmedia and node replacements were never registered. Load as a V3 extension only, move server.py to routes.py so it stops shadowing ComfyUI's server module, and transcode animated previews with PyAV instead of an external ffmpeg. - Require ComfyUI 0.19.0 (has_intermediate_output); CI floor updated. - Process 11 nodes on ComfyUI's torch device when the frames fit in free memory (IMAGEOPS_COMPUTE_DEVICE=cpu disables it). - Add core CURVE input to Color Correct, BOUNDING_BOX output/input to Crop and Crop Stitch, LAYERS output to Comp (ComfyUI 0.31+), essentials_category, and Merge blend modes with golden parity. - Report progress through the public set_progress API and drop the hidden unique_id input. - Add ImageOps settings and a refresh-previews command. - Fix ImageOpsComp rotation and preview saving (undefined to_display_range) and masked Transform edge colors. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
21 lines
479 B
Python
21 lines
479 B
Python
from comfy_api.latest import ComfyExtension
|
|
|
|
from .node_replacements import register_node_replacements
|
|
from .nodes import NODES
|
|
from .routes import register_imageops_routes
|
|
|
|
WEB_DIRECTORY = "./js"
|
|
|
|
|
|
class MajoorImageOpsExtension(ComfyExtension):
|
|
async def on_load(self):
|
|
register_imageops_routes()
|
|
await register_node_replacements()
|
|
|
|
async def get_node_list(self):
|
|
return NODES
|
|
|
|
|
|
async def comfy_entrypoint():
|
|
return MajoorImageOpsExtension()
|