From d1b2a6082367dbb1bc06c36a67efde62571dbdc4 Mon Sep 17 00:00:00 2001 From: Andrea Pozzetti Date: Tue, 11 Nov 2025 10:32:21 +0000 Subject: [PATCH] updated prestartup script - better index page - changed workflows --- .github/workflows/test-real-models.yml | 23 ++ .gitignore | 4 + __init__.py | 4 +- assets/brekkie.jpg | Bin 0 -> 91146 bytes prestartup_script.py | 77 ----- requirements.txt | 3 +- tests/generate_index_page.py | 335 ++++++++++++++++++++++ workflows/mask_grounding.json | 370 +++++++------------------ workflows/normal_grounding.json | 349 +++-------------------- 9 files changed, 514 insertions(+), 651 deletions(-) create mode 100644 assets/brekkie.jpg create mode 100644 tests/generate_index_page.py diff --git a/.github/workflows/test-real-models.yml b/.github/workflows/test-real-models.yml index ef26f77..c28cccc 100644 --- a/.github/workflows/test-real-models.yml +++ b/.github/workflows/test-real-models.yml @@ -101,3 +101,26 @@ jobs: destination_dir: ${{ github.run_number }} keep_files: true enable_jekyll: false + + - name: Checkout gh-pages branch + if: always() + uses: actions/checkout@v4 + with: + ref: gh-pages + path: gh-pages-content + + - name: Generate central index page + if: always() + run: | + mkdir -p deploy-index + python tests/generate_index_page.py gh-pages-content deploy-index/index.html ${{ github.repository }} + ls -la deploy-index/ + + - name: Deploy index page to root + if: always() + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./deploy-index + keep_files: true + enable_jekyll: false diff --git a/.gitignore b/.gitignore index 29bb157..eb07a56 100644 --- a/.gitignore +++ b/.gitignore @@ -208,3 +208,7 @@ cython_debug/ marimo/_static/ marimo/_lsp/ __marimo__/ + +# Local marker files (machine-specific installation state) +.flash_attn_attempted +.assets_copied diff --git a/__init__.py b/__init__.py index 8be8640..c6bacc3 100644 --- a/__init__.py +++ b/__init__.py @@ -45,12 +45,12 @@ NODE_CLASS_MAPPINGS = { } NODE_DISPLAY_NAME_MAPPINGS = { - "GroundingModelLoader": "Grounding Model Loader", + "GroundingModelLoader": "Grounding Model (down)Loader", "GroundingDetector": "Grounding Detector", "BboxVisualizer": "Bounding Box Visualizer", "DownloadAndLoadSAM2Model": "(Down)Load SAM2Model", "Sam2Segmentation": "Sam2 Segmentation", - "GroundingMaskModelLoader": "Grounding Mask Model Loader", + "GroundingMaskModelLoader": "Grounding Mask Model (down)Loader", "GroundingMaskDetector": "Grounding Mask Detector", "BatchCropAndPadFromMask": "Batch Crop and Pad From Mask", } diff --git a/assets/brekkie.jpg b/assets/brekkie.jpg new file mode 100644 index 0000000000000000000000000000000000000000..52b6cf65f140b6de13c3900a62be921cc49ca427 GIT binary patch literal 91146 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 {u>fmK?KG$7h4Joi^|2w3mnesJa%Srjwo6b> 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 literal 0 HcmV?d00001 diff --git a/prestartup_script.py b/prestartup_script.py index 9efed0f..ffc7176 100644 --- a/prestartup_script.py +++ b/prestartup_script.py @@ -1,14 +1,11 @@ """ PreStartup Script for ComfyUI-Grounding -- Attempts to install flash_attn (optional dependency) on first run - Copies example assets and workflows to ComfyUI directories on first run """ import os import shutil -import subprocess import sys -from pathlib import Path # Import folder_paths from ComfyUI try: @@ -28,11 +25,6 @@ def get_marker_file(): return os.path.join(get_node_dir(), ".assets_copied") -def get_flash_attn_marker(): - """Get path to marker file that tracks if flash_attn installation was attempted""" - return os.path.join(get_node_dir(), ".flash_attn_attempted") - - def has_assets_been_copied(): """Check if assets have already been copied""" return os.path.exists(get_marker_file()) @@ -47,72 +39,6 @@ def mark_assets_as_copied(): print(f"[ComfyUI-Grounding] Warning: Could not create marker file: {e}") -def mark_flash_attn_attempted(success): - """Create marker file to indicate flash_attn installation was attempted""" - try: - with open(get_flash_attn_marker(), 'w') as f: - if success: - f.write("flash_attn installed successfully\n") - else: - f.write("flash_attn installation failed (optional)\n") - except Exception as e: - print(f"[ComfyUI-Grounding] Warning: Could not create flash_attn marker: {e}") - - -def try_install_flash_attn(): - """ - Attempt to install flash_attn (optional dependency for faster inference). - Only runs once - uses marker file to track attempts. - """ - # Check if already attempted - if os.path.exists(get_flash_attn_marker()): - return True # Already attempted, skip - - print("[ComfyUI-Grounding] Checking for flash_attn...") - - # Check if already installed - try: - import flash_attn - print("[ComfyUI-Grounding] ✅ flash_attn already installed") - mark_flash_attn_attempted(True) - return True - except ImportError: - pass - - print("[ComfyUI-Grounding] Attempting to install flash_attn (optional)...") - print("[ComfyUI-Grounding] Note: This may take 5-10 minutes and requires CUDA GPU") - - try: - result = subprocess.run( - [sys.executable, "-m", "pip", "install", "flash-attn", "--prefer-binary"], - capture_output=True, - text=True, - timeout=300 # 5 minute timeout - ) - - if result.returncode == 0: - print("[ComfyUI-Grounding] ✅ flash_attn installed successfully") - print("[ComfyUI-Grounding] Florence-2 and SA2VA will use faster inference") - mark_flash_attn_attempted(True) - return True - else: - print("[ComfyUI-Grounding] ⚠️ flash_attn installation failed") - print("[ComfyUI-Grounding] This is optional - nodes will work without it") - mark_flash_attn_attempted(False) - return False - - except subprocess.TimeoutExpired: - print("[ComfyUI-Grounding] ⚠️ flash_attn installation timed out") - print("[ComfyUI-Grounding] Continuing without it (nodes will still work)") - mark_flash_attn_attempted(False) - return False - except Exception as e: - print(f"[ComfyUI-Grounding] ⚠️ flash_attn installation error: {e}") - print("[ComfyUI-Grounding] Continuing without flash_attn") - mark_flash_attn_attempted(False) - return False - - def copy_assets(): """Copy example assets recursively to ComfyUI input directory""" node_dir = get_node_dir() @@ -254,9 +180,6 @@ def main(): """Main initialization function""" print("[ComfyUI-Grounding] PreStartup Script Running...") - # Try to install flash_attn (optional, only on first run) - try_install_flash_attn() - # Copy assets and workflows (skips files that already exist) print("[ComfyUI-Grounding] Checking assets and workflows...") assets_ok = copy_assets() diff --git a/requirements.txt b/requirements.txt index bdec250..8b4d4b9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,7 +9,6 @@ einops>=0.6.0 # Required by Florence-2 and SA2VA model architectures ultralytics>=8.2.0 hf_transfer peft -# flash_attn # Optional - improves SA2VA performance but not required # Image processing (usually already installed with ComfyUI) # pillow>=10.0.0 @@ -26,4 +25,4 @@ tqdm>=4.65.0 torch<=2.8.0 torchvision torchaudio -# flash_attn # Optional - improves SA2VA inference speed but not required +flash_attn \ No newline at end of file diff --git a/tests/generate_index_page.py b/tests/generate_index_page.py new file mode 100644 index 0000000..10047f9 --- /dev/null +++ b/tests/generate_index_page.py @@ -0,0 +1,335 @@ +#!/usr/bin/env python3 +""" +Generate central landing page for all test runs +""" +import os +import json +import re +from pathlib import Path +from datetime import datetime, timezone + + +def scan_gh_pages_runs(gh_pages_dir): + """Scan gh-pages directory for all run directories and extract metadata""" + + gh_pages_path = Path(gh_pages_dir) + if not gh_pages_path.exists(): + print(f"Warning: {gh_pages_dir} does not exist") + return [] + + runs = [] + + # Find all directories that are numeric (run numbers) + for item in gh_pages_path.iterdir(): + if item.is_dir() and item.name.isdigit(): + run_number = int(item.name) + + # Count PNG images + png_files = list(item.glob("*.png")) + image_count = len(png_files) + + # Try to get timestamp from index.html if it exists + index_file = item / "index.html" + timestamp = None + if index_file.exists(): + try: + content = index_file.read_text() + # Extract timestamp from "Generated: YYYY-MM-DD HH:MM:SS UTC" + match = re.search(r'Generated: ([\d\-: ]+) UTC', content) + if match: + timestamp = match.group(1) + except Exception as e: + print(f"Warning: Could not read timestamp from {index_file}: {e}") + + # If no timestamp found, use directory modification time + if not timestamp: + mtime = item.stat().st_mtime + timestamp = datetime.fromtimestamp(mtime).strftime("%Y-%m-%d %H:%M:%S") + + runs.append({ + "run_number": run_number, + "timestamp": timestamp, + "image_count": image_count, + "has_gallery": index_file.exists() + }) + + # Sort by run number (descending - newest first) + runs.sort(key=lambda x: x["run_number"], reverse=True) + + return runs + + +def generate_index_html(runs, output_file, repo_name="ComfyUI-Grounding"): + """Generate the central landing page HTML""" + + total_images = sum(run["image_count"] for run in runs) + + html = f""" + + + + + ComfyUI-Grounding Test Results + + + +

+ + +""" + + # Write the HTML file + output_path = Path(output_file) + output_path.write_text(html) + print(f"✅ Generated index page at {output_path}") + print(f"📊 {len(runs)} runs listed") + print(f"🖼️ {total_images} total images") + + +def main(): + import sys + + if len(sys.argv) < 2: + print("Usage: python generate_index_page.py [output-file] [repo-name]") + print("Example: python generate_index_page.py ./gh-pages index.html ComfyUI-Grounding") + sys.exit(1) + + gh_pages_dir = sys.argv[1] + output_file = sys.argv[2] if len(sys.argv) > 2 else "index.html" + repo_name = sys.argv[3] if len(sys.argv) > 3 else "ComfyUI-Grounding" + + print(f"🔍 Scanning {gh_pages_dir} for test runs...") + runs = scan_gh_pages_runs(gh_pages_dir) + + print(f"📝 Generating index page...") + generate_index_html(runs, output_file, repo_name) + + +if __name__ == "__main__": + main() diff --git a/workflows/mask_grounding.json b/workflows/mask_grounding.json index f91584e..7ab0d88 100644 --- a/workflows/mask_grounding.json +++ b/workflows/mask_grounding.json @@ -1,58 +1,59 @@ { "id": "38945c5c-4e77-4d6c-b916-6a2f0a1b6a89", "revision": 0, - "last_node_id": 32, - "last_link_id": 39, + "last_node_id": 36, + "last_link_id": 44, "nodes": [ { - "id": 28, - "type": "InvertMask", + "id": 33, + "type": "LoadImage", "pos": [ - 98.71468314873522, - -76.55255233775446 + -303.3027379792829, + 92.61863567718751 ], "size": [ - 140, - 26 + 274.080078125, + 314 ], "flags": {}, - "order": 3, + "order": 0, "mode": 0, - "inputs": [ - { - "name": "mask", - "type": "MASK", - "link": 33 - } - ], + "inputs": [], "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 42 + ] + }, { "name": "MASK", "type": "MASK", - "links": [ - 34 - ] + "links": null } ], "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.67", - "Node name for S&R": "InvertMask" - } + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "brekkie.jpg", + "image" + ] }, { "id": 31, "type": "PreviewAny", "pos": [ - 110.50039305540561, - 281.573065740487 + 580.0735093941091, + 291.1285668669379 ], "size": [ - 140, - 76 + 210, + 88 ], "flags": {}, - "order": 5, + "order": 4, "mode": 0, "inputs": [ { @@ -63,9 +64,9 @@ ], "outputs": [], "properties": { + "Node name for S&R": "PreviewAny", "cnr_id": "comfy-core", - "ver": "0.3.67", - "Node name for S&R": "PreviewAny" + "ver": "0.3.67" }, "widgets_values": [] }, @@ -73,15 +74,15 @@ "id": 29, "type": "PreviewImage", "pos": [ - 533.6126667407317, - 103.92480629195937 + 564.3432225749335, + -58.75360697114505 ], "size": [ 279.1381383513526, 299.2129823737602 ], "flags": {}, - "order": 4, + "order": 3, "mode": 0, "inputs": [ { @@ -92,202 +93,12 @@ ], "outputs": [], "properties": { + "Node name for S&R": "PreviewImage", "cnr_id": "comfy-core", - "ver": "0.3.67", - "Node name for S&R": "PreviewImage" + "ver": "0.3.67" }, "widgets_values": [] }, - { - "id": 30, - "type": "PreviewImage", - "pos": [ - 532.7368358026316, - -228.9107803208185 - ], - "size": [ - 289.0763407319919, - 290.26959173790755 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 36 - } - ], - "outputs": [], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.67", - "Node name for S&R": "PreviewImage" - }, - "widgets_values": [] - }, - { - "id": 32, - "type": "LoadImagesFromFolderKJ", - "pos": [ - -309.5514298801789, - 161.68998793772164 - ], - "size": [ - 290.5201171875, - 262 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "image", - "type": "IMAGE", - "links": [ - 38, - 39 - ] - }, - { - "name": "mask", - "type": "MASK", - "links": null - }, - { - "name": "count", - "type": "INT", - "links": null - }, - { - "name": "image_path", - "type": "STRING", - "links": null - } - ], - "properties": { - "cnr_id": "comfyui-kjnodes", - "ver": "1.1.9", - "Node name for S&R": "LoadImagesFromFolderKJ" - }, - "widgets_values": [ - "input/tobatch", - 1024, - 1024, - "pad", - 0, - 0, - false - ] - }, - { - "id": 26, - "type": "JoinImageWithAlpha", - "pos": [ - 259.332162129211, - -105.19057150244885 - ], - "size": [ - 176.86484375, - 46 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 39 - }, - { - "name": "alpha", - "type": "MASK", - "link": 34 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 36 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.67", - "Node name for S&R": "JoinImageWithAlpha" - } - }, - { - "id": 19, - "type": "GroundingMaskDetector", - "pos": [ - 106.9620845129382, - -14.471635853967237 - ], - "size": [ - 400, - 248 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MASK_MODEL", - "link": 21 - }, - { - "name": "image", - "type": "IMAGE", - "link": 38 - } - ], - "outputs": [ - { - "name": "masks", - "type": "MASK", - "links": [ - 33 - ] - }, - { - "name": "overlaid_mask", - "type": "IMAGE", - "links": [ - 35 - ] - }, - { - "name": "text", - "type": "STRING", - "links": [ - 37 - ] - } - ], - "properties": { - "aux_id": "PozzettiAndrea/ComfyUI-Grounding", - "ver": "a947f4961c39cc150a98738fa83a0494e52f3de0", - "Node name for S&R": "GroundingMaskDetector" - }, - "widgets_values": [ - "segment the main object in the image.", - 0.3, - 1024, - 3, - 2048, - 1, - 42, - "fixed" - ] - }, { "id": 18, "type": "GroundingMaskModelLoader", @@ -313,14 +124,75 @@ } ], "properties": { + "Node name for S&R": "GroundingMaskModelLoader", "aux_id": "PozzettiAndrea/ComfyUI-Grounding", - "ver": "a947f4961c39cc150a98738fa83a0494e52f3de0", - "Node name for S&R": "GroundingMaskModelLoader" + "ver": "a947f4961c39cc150a98738fa83a0494e52f3de0" }, "widgets_values": [ - "SA2VA: 1B", + "SA2VA: 4B", "bf16" ] + }, + { + "id": 19, + "type": "GroundingMaskDetector", + "pos": [ + 106.9620845129382, + -14.471635853967237 + ], + "size": [ + 400, + 248 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MASK_MODEL", + "link": 21 + }, + { + "name": "image", + "type": "IMAGE", + "link": 42 + } + ], + "outputs": [ + { + "name": "masks", + "type": "MASK", + "links": [] + }, + { + "name": "overlaid_mask", + "type": "IMAGE", + "links": [ + 35 + ] + }, + { + "name": "text", + "type": "STRING", + "links": [ + 37 + ] + } + ], + "properties": { + "Node name for S&R": "GroundingMaskDetector", + "aux_id": "PozzettiAndrea/ComfyUI-Grounding", + "ver": "a947f4961c39cc150a98738fa83a0494e52f3de0" + }, + "widgets_values": [ + "Segment the food with the most vitamin C", + 0.3, + 2048, + 1, + 42, + "fixed" + ] } ], "links": [ @@ -332,22 +204,6 @@ 0, "MASK_MODEL" ], - [ - 33, - 19, - 0, - 28, - 0, - "MASK" - ], - [ - 34, - 28, - 0, - 26, - 1, - "MASK" - ], [ 35, 19, @@ -356,14 +212,6 @@ 0, "IMAGE" ], - [ - 36, - 26, - 0, - 30, - 0, - "IMAGE" - ], [ 37, 19, @@ -373,30 +221,22 @@ "*" ], [ - 38, - 32, + 42, + 33, 0, 19, 1, "IMAGE" - ], - [ - 39, - 32, - 0, - 26, - 0, - "IMAGE" ] ], "groups": [], "config": {}, "extra": { "ds": { - "scale": 1.2894499156462411, + "scale": 1.0656610873109524, "offset": [ - 386.94731260454324, - 226.3186553038392 + 315.358950162618, + 142.88899383901187 ] }, "frontendVersion": "1.28.8" diff --git a/workflows/normal_grounding.json b/workflows/normal_grounding.json index 706b5c0..8b1465c 100644 --- a/workflows/normal_grounding.json +++ b/workflows/normal_grounding.json @@ -1,8 +1,8 @@ { "id": "23662dd8-0bfd-4ab0-833e-1775efda6729", "revision": 0, - "last_node_id": 17, - "last_link_id": 19, + "last_node_id": 19, + "last_link_id": 21, "nodes": [ { "id": 3, @@ -13,7 +13,7 @@ ], "size": [ 270, - 82 + 58 ], "flags": {}, "order": 0, @@ -29,163 +29,49 @@ } ], "properties": { + "Node name for S&R": "GroundingModelLoader", "aux_id": "PozzettiAndrea/ComfyUI-Grounding", - "ver": "a947f4961c39cc150a98738fa83a0494e52f3de0", - "Node name for S&R": "GroundingModelLoader" + "ver": "a947f4961c39cc150a98738fa83a0494e52f3de0" }, "widgets_values": [ - "Florence-2: Large (0.77B params)", - "eager" + "Florence-2: Large (0.77B params)" ] }, { - "id": 12, - "type": "DownloadAndLoadSAM2Model", + "id": 18, + "type": "LoadImage", "pos": [ - 134.1244248881893, - -152.4815917189195 + -361.5061512509591, + 112.76113420046104 ], "size": [ - 270, - 130 + 274.080078125, + 314 ], "flags": {}, "order": 1, "mode": 0, "inputs": [], - "outputs": [ - { - "name": "sam2_model", - "type": "SAM2MODEL", - "links": [ - 10 - ] - } - ], - "properties": { - "aux_id": "PozzettiAndrea/ComfyUI-Grounding", - "ver": "a947f4961c39cc150a98738fa83a0494e52f3de0", - "Node name for S&R": "DownloadAndLoadSAM2Model" - }, - "widgets_values": [ - "sam2.1_hiera_large.safetensors", - "single_image", - "cuda", - "fp16" - ] - }, - { - "id": 14, - "type": "JoinImageWithAlpha", - "pos": [ - 806.4560194385198, - 47.17325913006609 - ], - "size": [ - 176.86484375, - 46 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 13 - }, - { - "name": "alpha", - "type": "MASK", - "link": 17 - } - ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ - 19 + 20 ] + }, + { + "name": "MASK", + "type": "MASK", + "links": null } ], "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.67", - "Node name for S&R": "JoinImageWithAlpha" - }, - "widgets_values": [] - }, - { - "id": 11, - "type": "Sam2Segmentation", - "pos": [ - 507.4435292430558, - 34.683721146105555 - ], - "size": [ - 272.087890625, - 254 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [ - { - "name": "sam2_model", - "type": "SAM2MODEL", - "link": 10 - }, - { - "name": "image", - "type": "IMAGE", - "link": 11 - }, - { - "name": "coordinates_positive", - "shape": 7, - "type": "STRING", - "link": null - }, - { - "name": "coordinates_negative", - "shape": 7, - "type": "STRING", - "link": null - }, - { - "name": "bboxes", - "shape": 7, - "type": "BBOX", - "link": 12 - }, - { - "name": "mask", - "shape": 7, - "type": "MASK", - "link": null - } - ], - "outputs": [ - { - "name": "mask", - "type": "MASK", - "links": [ - 16 - ] - } - ], - "properties": { - "aux_id": "PozzettiAndrea/ComfyUI-Grounding", - "ver": "a947f4961c39cc150a98738fa83a0494e52f3de0", - "Node name for S&R": "Sam2Segmentation" + "Node name for S&R": "LoadImage" }, "widgets_values": [ - false, - false, - 0, - 0, - 0 + "plantpot.png", + "image" ] }, { @@ -197,10 +83,10 @@ ], "size": [ 400, - 364 + 340 ], "flags": {}, - "order": 3, + "order": 2, "mode": 0, "inputs": [ { @@ -211,21 +97,21 @@ { "name": "image", "type": "IMAGE", - "link": 8 + "link": 20 } ], "outputs": [ { "name": "bboxes", "type": "BBOX", - "links": [ - 12 - ] + "links": [] }, { "name": "annotated_image", "type": "IMAGE", - "links": [] + "links": [ + 21 + ] }, { "name": "labels", @@ -239,144 +125,45 @@ } ], "properties": { + "Node name for S&R": "GroundingDetector", "aux_id": "PozzettiAndrea/ComfyUI-Grounding", - "ver": "a947f4961c39cc150a98738fa83a0494e52f3de0", - "Node name for S&R": "GroundingDetector" + "ver": "a947f4961c39cc150a98738fa83a0494e52f3de0" }, "widgets_values": [ - "main object", + "plant. watering can", 0.3, false, true, "list_only", - 0.25, 1024, 3, - 0.45, - false, - 300, 42, "fixed" ] }, { - "id": 15, - "type": "InvertMask", - "pos": [ - 634.4085072101292, - -31.37835895949953 - ], - "size": [ - 140, - 26 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "mask", - "type": "MASK", - "link": 16 - } - ], - "outputs": [ - { - "name": "MASK", - "type": "MASK", - "links": [ - 17 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.67", - "Node name for S&R": "InvertMask" - }, - "widgets_values": [] - }, - { - "id": 9, - "type": "LoadImagesFromFolderKJ", - "pos": [ - -319.8692780804565, - 159.9365003928532 - ], - "size": [ - 290.5201171875, - 262 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "image", - "type": "IMAGE", - "links": [ - 8, - 11, - 13 - ] - }, - { - "name": "mask", - "type": "MASK", - "links": null - }, - { - "name": "count", - "type": "INT", - "links": null - }, - { - "name": "image_path", - "type": "STRING", - "links": null - } - ], - "properties": { - "cnr_id": "comfyui-kjnodes", - "ver": "1.1.9", - "Node name for S&R": "LoadImagesFromFolderKJ" - }, - "widgets_values": [ - "input/tobatch", - 1024, - 1024, - "pad", - 0, - 0, - false - ] - }, - { - "id": 17, + "id": 19, "type": "PreviewImage", "pos": [ - 1001.6651677560029, - 55.417983277011885 + 530.6472534980396, + 42.682752634548045 ], "size": [ - 330.90445054815405, - 258 + 339.1799683347449, + 401.7374663149234 ], "flags": {}, - "order": 7, + "order": 3, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", - "link": 19 + "link": 21 } ], "outputs": [], "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.67", "Node name for S&R": "PreviewImage" }, "widgets_values": [] @@ -392,66 +179,18 @@ "GROUNDING_MODEL" ], [ - 8, - 9, + 20, + 18, 0, 1, 1, "IMAGE" ], [ - 10, - 12, - 0, - 11, - 0, - "SAM2MODEL" - ], - [ - 11, - 9, - 0, - 11, + 21, 1, - "IMAGE" - ], - [ - 12, 1, - 0, - 11, - 4, - "BBOX" - ], - [ - 13, - 9, - 0, - 14, - 0, - "IMAGE" - ], - [ - 16, - 11, - 0, - 15, - 0, - "MASK" - ], - [ - 17, - 15, - 0, - 14, - 1, - "MASK" - ], - [ 19, - 14, - 0, - 17, 0, "IMAGE" ] @@ -460,10 +199,10 @@ "config": {}, "extra": { "ds": { - "scale": 0.9278994587027772, + "scale": 0.8435449624570703, "offset": [ - 508.01216790085954, - 282.0476732486773 + 425.7123038653443, + 180.08680307006819 ] }, "frontendVersion": "1.28.8"