Commit Graph
38 Commits
Author SHA1 Message Date
JaredTherriault 34c1ce82dd Speed up loading of images in SubFolderExplorer contexts
-Speed up loading of images in SubFolderExplorer contexts like Input and Output (up to 6x!)
-Separate logic for loading images and gathering subdirectories
-Update some code to reflect the move to a unified usage of  "directory" rather than "folder" (WIP)
-Return more useful responses from python backend
2024-05-10 20:33:18 -07:00
JaredTherriault 7a3d3ba30b Add delete button to imageElements flyout
-Separate much of the logic for imageElements into imageElementsUtils for a more streamlined maintenance experience
-Add button to delete an image or video from the disk and list, preferring to move it to trash/recycling before deleting directly
2024-05-05 14:33:33 -07:00
JaredTherriault 1ded3147b3 Release capture of video info (cv) 2024-04-29 14:55:57 -07:00
JaredTherriault 5efa9ce0ab Fix gathering of files in input and temp directories 2024-04-23 18:21:38 -07:00
JaredTherriault f923e2a90a Make MediaInfoToString formatted pretty 2024-04-22 18:00:35 -07:00
JaredTherriault fc989fb216 Script renaming
-Uppercase script names for js, video -> media
2024-04-22 14:46:11 -07:00
JaredTherriault 6838fd084a Generify Media Upload nodes, fix video previews, image drawer drag and drop to node support
-Generify video loading nodes to work for many visual media types, still images, animated images, some video types, etc. 'Video' nodes and scripts and params have been renamed to 'media' to reflect the change.
-Added some accessors for MediaInfo
-Replaced OutVideoInfo with BreakMediaInfo
-Added some more information to MediaInfo
-Stashed renamed nodes into deprecated_nodes so they're still accessible for now
-Cleaned up some unnecessary variables and params in the media loading code, now runs a tiny bit faster
-Now possible to sample media by seconds or frames
-Added some filetype support in js, still need to just pull this directly from python
-Renamed some js variables to be less parsimonious and more clear
-Fix video preview in SaveVideo
-Encode text in video preview uri (so spaces in filenames work, et al)
-Add support for images and videos from the image drawer to be dragged onto UploadMedia node
-Formatting
2024-04-22 13:32:25 -07:00
JaredTherriault 7f5efaaabb video_nodes updates
-Fix video formats gathering code
-Fix ffmpeg output quality incorrectly mapping (now higher value = higher quality)
2024-04-22 13:07:21 -07:00
JaredTherriault 130c206122 Utils cleanup
-Added map_to_range function
-Update video format gathering code
-Formatting
2024-04-22 13:04:54 -07:00
JaredTherriault 82dd816c74 Ensure directory exists when getting fileMap 2024-04-22 13:03:28 -07:00
JaredTherriault 8efc32176d Add clamp python utlity function 2024-04-21 16:04:18 -07:00
JaredTherriault ce2313303d Fix VideoUpload node validation 2024-04-18 22:33:24 -07:00
JaredTherriault f0c7e1971f Rename directory_name parameter to relative_path 2024-04-18 22:33:01 -07:00
JaredTherriault 1656482688 Implement custom image upload function 2024-04-18 13:55:09 -07:00
JaredTherriault f53badad7b Point VideoUpload node toward corrected video extension list 2024-04-18 10:38:10 -07:00
JaredTherriault ff96695a76 Unfinished first draft at python task cancellation implementation 2024-04-17 12:49:53 -07:00
JaredTherriault b5c5f2898e Fix include subfolders toggle and separate upload extensions from browser display extensions 2024-04-15 20:59:02 -07:00
JaredTherriault 0db289845d Video support additions 2024-04-08 19:51:17 -07:00
JaredTherriault 3db0dc5247 Load image and video data only when needed for the current folder in view 2024-03-30 18:37:10 -07:00
JaredTherriault 4602523b9a Rename 'size' to 'dimensions' in file info, add 'file_size' to file info, 2024-03-29 21:59:17 -07:00
JaredTherriault dd9806f8e9 name clarity 2024-03-29 13:41:21 -07:00
JaredTherriault 0f0f6e12b1 Try/except metadata collection, add 'metadata_read' key to files info 2024-03-28 16:42:25 -07:00
JaredTherriault 81fc604c49 Return additional information from image and video metadata (image size for all, plus for videos frame_count, fps and duration_in_seconds) 2024-03-28 15:49:36 -07:00
JaredTherriault b375e9b2cc Fix is_webp, is_gif, is_video and is_acceptable_image_or_video methods, fix grabbing video format types, add support for jpeg, jfif 2024-03-28 12:28:29 -07:00
JaredTherriault c4e3c93d42 Add file ext and format to local browseable items (loaded from a folder) and fix files with consecutive '..' in filename 2024-03-28 12:25:45 -07:00
JaredTherriault 761bca4d9e Sort familiar items (to keep consistent image order for extra networks) 2024-03-19 18:17:10 -07:00
JaredTherriault f7341c53a1 Improve drag and drop onto video upload node, remove unnecessary IS_CHANGED calls 2024-03-10 19:32:27 -07:00
JaredTherriault 7ef4caf094 video node improvements
-Fix missing ImageOps import
-Add option to discard transparency when loading video (such as from apng or webp). This allows you to use certain preprocessors that expect only 3 channels.
2024-03-07 22:57:51 -08:00
JaredTherriault a656406eea relative paths support, synced string literal undo support, fix disappearing scrollbar
-Allow for relative paths and absolute paths in nodes that use paths (relative to the ComfyUI folder, so 'JNodes/input' without a leading slash)
-Add util to ascertain if an element is visible in the viewport
-Fix disappearing scrollbar in imageDrawer
-Add undo support for loading text in synced string literal node
2024-03-06 17:15:59 -08:00
JaredTherriault 0d730461e0 Update regex patterns, make unique extension identifiers, add copy ability for all image metadata keys
Update regex patterns, make unique extension identifiers, add copy ability for all image metadata keys
2024-02-24 17:02:19 -08:00
JaredTherriault 8cbc975019 -Add folder helpers to utils
-Fix model image paths on linux/mac/unix
-Fix embeddings images
2024-02-10 20:46:15 -08:00
JaredTherriault c7ed83fb30 Subfolder selection in subfolder contexts, search and replace text improvements, wider tooltip
-Made tooltip wider to accommodate longer values. Set it back with bUseWideTooltip  = false in ImageElements.js. Will eventually make this user-editable from the UI.
-JNodes_PromptEditor has become JNodes_SearchAndReplaceFromFile. Make sure you update your workflows, all two of you using it.
-Added JNodes_SearchAndReplaceFromList and JNodes_SearchAndReplace nodes to complement.
-Added JNodes_SplitAndJoin (originally for removing extra spaces and commas, but can be used to reduce anything you have too many of in a string) and JNodes_TrimAndStrip for removing leading and trailing whitespace.
-Split RemoveCommentedText out of ParseWildcards. Now the comment tokens are user-editable too.
-Added UI option for a custom batch commenting token (was previously hard-coded to '#')
-Removed 'unknown' placeholder text on some nodes
-Added subfolder selection support for SubFolderExplorer contexts. Now subfolders can be chosen in contexts like 'input' and 'output'. You can also choose to display items within a subfolder's subfolders. Make sure you're not trying to display too many items at once or the browser will crash.
-Added backend function to save user-configured model information so the end user can eventually override a lora or embedding's display name, tags, trained words and weight presets. The UI for this is not yet built.
-Added a nullptr check when checking to see if an object is empty.
-Removed setSearchTermsOnElement since it's superfluous. It takes fewer characters to just set it directly.
-Some search terms and some metadata are set now when an imageElement is first created rather than waiting for the image within to actually load. This allows sorting and search to work more properly as contexts are switched, but searching metadata obviously still won't work until the images are loaded. But you can search filename, subfolder and type until then.
2024-02-03 09:37:49 -08:00
JaredTherriault bfe6e2c8f8 Add Sorting, user overrides and civit.ai link for extra networks, new contexts
-Subclassed ModelContext (for extra networks types), ContextRefreshable (for contexts that need a refresh button to reload data) and ContextSubFolderExplorer (for contexts that just show you images in a folder, no subfolder support yet) base types
-Implemented sorting on the backend and frontend
 * "Show Newest First" checkbox removed
 * Sorting dropdown added
 * FriendlyName, Filename, Date sort types implemented, ascending and descending
 * Support for default sort type per context
 * Sort on change context, on refresh and on image added
-Added more utils (sleep, isEmptyObject, checkIfAllImagesAreComplete)
-Added Embeddings context support (images in subfolders don't work yet)
-Tooltips are only created for images that actually have metadata to show
-Added support for user-customized info for extra networks (friendlyName, userTags, userTrainedWords, lastViewedImageIndex) that override applicable data from civit.ai. In the future there will be a way to add these in the UI. For now, you can set these by creating a json file with the same name as the model file (so 227.safetensors -> 227.info). .info, .txt, and .json types are supported.
-Added civit.ai link for extra networks
-Now the selected context controls the toolbar widgets next to the search bar
-Added drawer location option to Drawer Options flyout
-Merged metadata - > tooltip code into setMetadataAndUpdateTooltipAndSearchTerms
2024-01-29 12:22:39 -08:00
JaredTherriault 4f4d6972b7 Context refactor
-Updated server backend method names to be more accurate (I think)
-Added backend function to get basically any folder from the ComfyUI install folder so we can dig into input/output and other custom folders
-Updated Acceptable formats for image drawer
-Error handling and flipped responsibility in JNodes view_image
-Created Contexts script with ImageDrawerContext class and subclasses that handle context types, using encapsulation
-Implemented input/output/saved_prompts context types (but still need subfolders!)
-Fixed "Show Newest First" toggle (but could still be optimized)
-Reorder functions in imageDrawer for sanity
2024-01-21 21:25:00 -08:00
JaredTherriault 908b94682f output context
-Half-implemented output context, need to support folders
-Switched createImageElementFromImgSrc over to jnodes_view_image api call
-Added decodeReadableStream
-python image/video validation functions
-strip text when setting png info / metadata value
2024-01-20 22:53:52 -08:00
JaredTherriault d6e6c0f4a9 metadata nodes improvements
-Update internal names for AddOrSetMetaDataKey and RemoveMetaDataKey
-Run these nodes every time by design
-Automatically title these nodes based on key name
2024-01-20 15:40:36 -08:00
JaredTherriault 136f391f1a Meta data control improvements, AnyToString
-Add AnyToString to turn anything into string
-Update AddOrSetPngInfoKey name to AddOrSetMetaDataKey
-Add passthrough pin to AddOrSetMetaDataKey (so you can use it anywhere)
-Removed 'unknown' default values (what the hell was that about?)
2024-01-20 14:51:53 -08:00
JaredTherriault 7ceb555e56 Initial Commit
-ImageDrawer (image feed, lora picker, image history, etc)
-EditAttention improvements
-Status indicators (percentage in title, favicon, progress bar on floating menu)
-Font control for textareas
-Token count node
-png_info manipulation nodes
-Synced string literals with external text files
-Parameter lists
-Save Video improvements over VHS
-Custom modal to replace lightbox
-Mouse over images to see exif/png_info
-Yet another dynamic prompts implementation with randomization controls
-Yet another Wildcards implementation
-Commenting out prompts support (just add # before each line you want to be ignored or encapsulate specific text on a line with ## on either side "## Commented text ##") built into Wildcards node, will be separated next time
-Prompt Editor (search and replace text in any text, intended for prompts to change certain trigger words, for example an embedding named '3mb3dd1n4' can be changed to 'embedding')
-Selector nodes that can be randomized based on seed (e.g. to select a random checkpoint name)
-Get Temp Directory, Get Output Directory
2024-01-15 13:36:49 -08:00