-
Notifications
You must be signed in to change notification settings - Fork 75
dev/0.6.0 #260
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
melMass
wants to merge
44
commits into
main
Choose a base branch
from
dev/0.6.0
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or 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
7436e24 to
b87ef2e
Compare
utility extended from an idea by @AustinMroz
would avoid the need for: Kosinkadink/ComfyUI-VideoHelperSuite#517
WIP for now
It used to return LLink now it returns the link ID
recurse all LoopStart outputs
mostly by relying on properties this allow renaming inputs at will
also rely on dynamic_connection setup directly
this rely on fakingly declaring list[str] as STRING for now...
same as previous commit
Still unsure how to expose it
to call the toast, it's useful to propagate non raised errors to the user simply.
I mainly use this to capture the proper state of a node at different lifecycle events
it is now backed by a python node. I'm leveraging litegraph custom widgets in a bit of an hacky way. The main idea is: - python endpoints for the editor: to execute, lint, format code live without queuing anything, this doesn't support inputs but you can use the `IS_LIVE` global variable to conditionally set inputs. - a backend singleton class that is used to execute both the live and "in flow" version. - a custom widget `CODE_EDITOR` that wraps ACE editor automatically adding the needed de/serialization hooks on the node it targets TLDR this node can be either used as a scratchpad akin to a notebook, isolated from the graph, or part of the graph and can receive inputs and produce outputs
on windows it displays the full path which is quite long
exact copy of the native node using STRING instead of COMBO useful for constructing paths from the graph. for instance using "apply text template"
- changed MTB_AudioCut length and offset from FLOAT to INT type, expecting milliseconds - added sys.maxsize for parameter limits and millisecond tooltips - fixed calculation to explicitly cast to float before math operations - uncommented hex_to_rgb import in legacy.py - expanded MTB_ColorInput to return hex and RGB formats alongside color - added return names and output tooltips for better usability
- Add MTB_PromptPresets node to load and manage prompt presets from json files - Add MTB_FloatsToFloatList node for converting FLOATS type to float list for loops - Update MTB_FloatToFloats docstring to include KJ extension
…unction - Extract pagination setup logic into initPagination() function for reuse - Initialize observer as global variable to manage lifecycle across resets - Call initPagination() after content resets to properly reinitialize infinite scroll - Add observer cleanup in widget cleanup to prevent memory leaks - Safely handle observer disconnect with null checks to avoid errors
- initialize web_source project with vite, svelte 5, and typescript - add mtb_inspector: interactive node inspector panel for comfyui workflow authoring - add note-plus: markdown/html editor node with live preview and ace editor integration - add python repl: interactive frontend repl with syntax highlighting and linting - implement draggable/resizable UI components with custom actions - add color picker, dnd support, and tabbed interface - configure build system with css injection and external comfyui script imports - add web/dist to .gitignore for built artifacts
- migrate Inspector components to Svelte 5 runes ($state, $derived, $props) - replace on:event directives with new onclick/onconsider/onfinalize syntax - add mtb_api module with widget manager, graph-to-prompt conversion, and extension registration - implement APIPanel controller for managing exposed workflow inputs - add mock implementations for ComfyUI scripts (app, api, ui, comfy_shared) - create constants module for API colors and styling - update vite config to handle mtb_api entry point and external @mtb/shared imports - refactor api_nodes.css to use css custom properties instead of template variables - add postbuild script to copy dist files to web/dist
Split monolithic 1400-line comfy_shared.js into focused TypeScript modules in web_source/src/comfy_shared/: - api.ts: server API utilities (runAction, getServerInfo, setServerInfo) - colors.ts: color brightness utilities - documentation.ts: node documentation widget system - dom.ts: DOM and HTML utilities - dynamic-connections.ts: dynamic input/output management - logger.ts: logging utilities with toast notifications - node-extensions.ts: node type extension helpers - storage.ts: namespaced localStorage management - types.ts: comprehensive type definitions - utils.ts: base utilities (UUID, debounce, deep merge) - widgets.ts: LiteGraph widget utilities Benefits: - ~200 LOC reduction through proper typing and elimination of redundant code - Better code organization with single-responsibility modules - Full TypeScript type safety with proper generics - Improved documentation and maintainability - Easier to tree-shake unused utilities Updated vite.config.ts to build comfy_shared as separate entry point and marked external dependencies (/mtb_async modules). Modified InspectorItem.svelte to use extracted item.value instead of always pulling from widgets[0]. Renamed panel.ts to panel.svelte.ts to enable Svelte 5 runes and made APIPanel reactive using $state instead of $$set.
- completely redesigned inspector panel
- introduced MTB_API_CHANGED_EVENT custom event for triggering panel updates - added notifyAPIChanged() function dispatched on API modifications - setup event listener in APIPanel constructor to debounce updates via requestAnimationFrame - improved boolean value handling to recognize numeric 1/'1' as true - ensures UI stays in sync when API properties change across extension, widget manager, and panel
- register alchemy bridge extension for cross-window workflow communication - enable loading, serialization, and queuing of workflows via postMessage api
- remove html stripping from doc assignments, keep raw content - refactor graphToPrompt to delegate to comfyui's built-in implementation and post-process for mtb metadata - add export api functionality to inspector with json download - expand api input types to include audio and video with type-specific config ui - implement number (min/max/step), string (multiline), and media (accept/duration/trim) configuration panels - fix widget value syncing with untrack to prevent reverting user input - update bun.lock with configVersion field
- implement drag-drop interface in TabUI with svelte-dnd-action - add notifyOrderChanged event to persist input order to node properties - update getAPIInputs to sort by order field and assign sequential ids - add order? optional field to APIInputSettings for tracking display order - listen for MTB_API_ORDER_CHANGED_EVENT in APIPanel and apply reordering via applyInputOrder
- now falls back to key name only if original_name is not defined - fixes issue where original_name was being overwritten during mapping
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.