New Templates#938
Conversation
Created via ComfyUI Template Manager
🔤 Spellcheck Results
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds three new workflow templates: two Depth Anything 3 Utility templates (image and video depth estimation with embedded DA3 subgraphs) and one Bernini-R video editing template. All are registered in templates/index.json, localized across multiple languages, and enrolled in bundles.json — workflow templates really depth into the stack, and with Bernini-R on board, we're ready to edit like there's no tomorrow (literally). ChangesDepth Anything 3 Utility Templates (image + video)
Bernini-R Video Editing Template
🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@scripts/i18n.json`:
- Around line 4557-4574: The i18n entry
"utility_depth_anything3_image_depth_estimation" has a stale
"missing_fields"/"missing_languages" block while the locale sub-blocks for
zh/zh-TW/ja/ko/es/fr/ru/tr/ar/pt-BR/fa already include title/description
placeholders; either remove the entire "missing_fields" and "missing_languages"
properties for that key or replace the English placeholder strings under each
locale with proper translations, ensuring title and description are present and
accurate for each listed language so the metadata reflects reality.
In `@templates/index.json`:
- Line 14125: The model entry contains an escaped backspace sequence "Depth
Anything \bv3" which becomes a control char in JSON and breaks matching; update
the models array entry to a plain, literal model name (e.g. replace "Depth
Anything \bv3" with "Depth Anything bv3" or the correct intended name) so the
"models" value is a normal string and exact matching/filtering will work.
In `@templates/utility_depth_anything3_image_depth_estimation.json`:
- Around line 571-636: The validator is failing because the LoadDA3Model node
(id 82) models metadata lacks required SHA256 hashes; update the
properties.models array for the LoadDA3Model node to include a "sha256" field
for each model entry (depth_anything_3_small.safetensors,
depth_anything_3_base.safetensors, depth_anything_3_mono_large.safetensors,
depth_anything_3_metric_large.safetensors) with their correct checksum values so
the pipeline validator accepts them, and then re-run validation (leave
widgets_values as the selected default unless the validator requires enumerating
options).
- Around line 609-630: Each model object in properties.models[] for
Depth-Anything-3 is missing the required sha256 field; update the four model
entries (depth_anything_3_small.safetensors, depth_anything_3_base.safetensors,
depth_anything_3_mono_large.safetensors,
depth_anything_3_metric_large.safetensors) to include their respective SHA256
values (9c0a53d157c5b315d4c82908a43d93eeaa3a9ac3de9d15c2b4242ef46b5508ad,
418c0d2ea857e2d1215fa51baa46833f499a62eb2400ec63d337aa20d326414f,
9b44eda5bedba5b4e125686fdb79d1db309c1b9785277576eb930f885b008f96,
b6eac00c060931fb15a97c1ba77d2e49d866b83ff7da631289279b3c1c0c99c8) so validation
can pass; after adding these sha256 fields to the model objects, run the schema
validation and, if it still fails, inspect widget_values/model-list wiring.
- Around line 1-742: The LoadDA3Model node's model entries are missing required
SHA256 hashes and the template lacks an embedded thumbnail reference; update the
properties.models array inside the LoadDA3Model node (identify by type
"LoadDA3Model" and property path properties.models) to add a "sha256" field for
each model object with the correct hash for the corresponding URL, and add a
thumbnail metadata entry that points to
"utility_depth_anything3_image_depth_estimation-1.webp" (place the thumbnail
reference under the template metadata—e.g., add a "thumbnail" or
"extra.thumbnail" field at the JSON root or inside
definitions.subgraphs[0].properties—so the template properly references the
bundled {template}-1.webp file).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 2fc47a8c-ecce-44e2-b06a-9acb4a65025b
📒 Files selected for processing (6)
bundles.jsonscripts/i18n.jsontemplates/index.jsontemplates/utility_depth_anything3_image_depth_estimation-1.webptemplates/utility_depth_anything3_image_depth_estimation-2.webptemplates/utility_depth_anything3_image_depth_estimation.json
| "mediaSubtype": "webp", | ||
| "thumbnailVariant": "compareSlider", | ||
| "tags": ["Depth Map"], | ||
| "models": ["Depth Anything \bv3"], |
There was a problem hiding this comment.
Fix escaped backspace in model name (\b) before it breaks matching.
Line 14125 uses ["Depth Anything \bv3"]; in JSON, \b becomes a backspace character, so the model string is corrupted and may fail exact model matching/filtering. Use a plain string instead.
Suggested fix
- "models": ["Depth Anything \bv3"],
+ "models": ["Depth Anything v3"],📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "models": ["Depth Anything \bv3"], | |
| "models": ["Depth Anything v3"], |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@templates/index.json` at line 14125, The model entry contains an escaped
backspace sequence "Depth Anything \bv3" which becomes a control char in JSON
and breaks matching; update the models array entry to a plain, literal model
name (e.g. replace "Depth Anything \bv3" with "Depth Anything bv3" or the
correct intended name) so the "models" value is a normal string and exact
matching/filtering will work.
| { | ||
| "id": "b2d4f6a8-3c5e-7f9b-1d3f-5a7b9c1d3e5f", | ||
| "revision": 2, | ||
| "last_node_id": 85, | ||
| "last_link_id": 109, | ||
| "nodes": [ | ||
| { | ||
| "id": 6, | ||
| "type": "PreviewImage", | ||
| "pos": [ | ||
| 780, | ||
| 30 | ||
| ], | ||
| "size": [ | ||
| 400, | ||
| 400 | ||
| ], | ||
| "flags": {}, | ||
| "order": 4, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "name": "images", | ||
| "type": "IMAGE", | ||
| "link": 21 | ||
| } | ||
| ], | ||
| "outputs": [], | ||
| "title": "Depth Preview (one frame per view)", | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.19.0", | ||
| "Node name for S&R": "PreviewImage" | ||
| }, | ||
| "widgets_values": [] | ||
| }, | ||
| { | ||
| "id": 14, | ||
| "type": "605cfcbf-c05b-4cd4-8b8f-9d7d989ab5d3", | ||
| "pos": [ | ||
| 340, | ||
| 30 | ||
| ], | ||
| "size": [ | ||
| 400, | ||
| 360 | ||
| ], | ||
| "flags": {}, | ||
| "order": 3, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "name": "image", | ||
| "type": "IMAGE", | ||
| "link": 108 | ||
| }, | ||
| { | ||
| "label": "output_type", | ||
| "name": "output", | ||
| "type": "COMFY_DYNAMICCOMBO_V3", | ||
| "widget": { | ||
| "name": "output" | ||
| }, | ||
| "link": null | ||
| }, | ||
| { | ||
| "label": "output_normalization", | ||
| "name": "output.normalization", | ||
| "type": "COMBO", | ||
| "widget": { | ||
| "name": "output.normalization" | ||
| }, | ||
| "link": null | ||
| }, | ||
| { | ||
| "label": "apply_sky_clip", | ||
| "name": "output.apply_sky_clip", | ||
| "type": "BOOLEAN", | ||
| "widget": { | ||
| "name": "output.apply_sky_clip" | ||
| }, | ||
| "link": null | ||
| } | ||
| ], | ||
| "outputs": [ | ||
| { | ||
| "name": "IMAGE", | ||
| "type": "IMAGE", | ||
| "links": [ | ||
| 21, | ||
| 105 | ||
| ] | ||
| } | ||
| ], | ||
| "properties": { | ||
| "proxyWidgets": [ | ||
| [ | ||
| "5", | ||
| "resolution" | ||
| ], | ||
| [ | ||
| "5", | ||
| "resize_method" | ||
| ], | ||
| [ | ||
| "7", | ||
| "output" | ||
| ], | ||
| [ | ||
| "7", | ||
| "output.normalization" | ||
| ], | ||
| [ | ||
| "7", | ||
| "output.apply_sky_clip" | ||
| ], | ||
| [ | ||
| "82", | ||
| "model_name" | ||
| ] | ||
| ], | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.24.0" | ||
| }, | ||
| "widgets_values": [] | ||
| }, | ||
| { | ||
| "id": 80, | ||
| "type": "ImageCompare", | ||
| "pos": [ | ||
| 1240, | ||
| 30 | ||
| ], | ||
| "size": [ | ||
| 440, | ||
| 390 | ||
| ], | ||
| "flags": {}, | ||
| "order": 5, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "name": "image_a", | ||
| "shape": 7, | ||
| "type": "IMAGE", | ||
| "link": 109 | ||
| }, | ||
| { | ||
| "name": "image_b", | ||
| "shape": 7, | ||
| "type": "IMAGE", | ||
| "link": 105 | ||
| } | ||
| ], | ||
| "outputs": [], | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.24.0", | ||
| "Node name for S&R": "ImageCompare" | ||
| }, | ||
| "widgets_values": [] | ||
| }, | ||
| { | ||
| "id": 83, | ||
| "type": "MarkdownNote", | ||
| "pos": [ | ||
| -1190, | ||
| 30 | ||
| ], | ||
| "size": [ | ||
| 510, | ||
| 818.953125 | ||
| ], | ||
| "flags": {}, | ||
| "order": 0, | ||
| "mode": 0, | ||
| "inputs": [], | ||
| "outputs": [], | ||
| "title": "Model Link", | ||
| "properties": {}, | ||
| "widgets_values": [ | ||
| "Guide: [Subgraph](https://docs.comfy.org/interface/features/subgraph)\n\n## Model Link (for Local Users)\n\n**geometry_estimation**\n\n- [depth_anything_3_small.safetensors](https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_small.safetensors)\n- [depth_anything_3_base.safetensors](https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_base.safetensors)\n- [depth_anything_3_mono_large.safetensors](https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_mono_large.safetensors)\n- [depth_anything_3_metric_large.safetensors](https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_metric_large.safetensors)\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ └── 📂 geometry_estimation/\n│ ├── depth_anything_3_small.safetensors\n│ ├── depth_anything_3_base.safetensors\n│ ├── depth_anything_3_mono_large.safetensors\n│ └── depth_anything_3_metric_large.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n" | ||
| ], | ||
| "color": "#222", | ||
| "bgcolor": "#000" | ||
| }, | ||
| { | ||
| "id": 84, | ||
| "type": "MarkdownNote", | ||
| "pos": [ | ||
| -640, | ||
| 30 | ||
| ], | ||
| "size": [ | ||
| 550, | ||
| 820 | ||
| ], | ||
| "flags": {}, | ||
| "order": 1, | ||
| "mode": 0, | ||
| "inputs": [], | ||
| "outputs": [], | ||
| "title": "About: Depth Anything 3", | ||
| "properties": {}, | ||
| "widgets_values": [ | ||
| "## About Depth Anything 3\n\n[Depth Anything 3 (DA3)](https://github.com/ByteDance-Seed/Depth-Anything-3) is a vision transformer from ByteDance Seed that recovers spatially consistent geometry from arbitrary visual inputs, with or without known camera poses. A single plain DINO encoder and unified depth-ray representation let one model family cover monocular depth, multi-view depth, camera pose estimation, and 3D reconstruction.\n\n### What this workflow does\n\nUpload one image and run **Image Depth Estimation (Depth Anything 3)** to produce a depth map. The result is shown in **Depth Preview**, with a side-by-side **ImageCompare** against the source image.\n\n### Model variants\n\n- **depth_anything_3_mono_large** (default): High-quality relative monocular depth with sky segmentation. Best starting point for single-image depth maps.\n- **depth_anything_3_metric_large**: Metric depth in real-world scale (meters). Use `raw` normalization in Render to preserve scale.\n- **depth_anything_3_base**: Any-view foundation model (0.12B). Adds confidence maps and supports multi-view mode.\n- **depth_anything_3_small**: Fastest any-view model (0.08B). Lowest VRAM; supports confidence and multi-view.\n\n\n### Learn more\n\n- Paper: [arXiv:2511.10647](https://arxiv.org/abs/2511.10647)\n- Original repo: [ByteDance-Seed/Depth-Anything-3](https://github.com/ByteDance-Seed/Depth-Anything-3)\n- ComfyUI weights: [Comfy-Org/Depth-Anything-3](https://huggingface.co/Comfy-Org/Depth-Anything-3)\n" | ||
| ], | ||
| "color": "#222", | ||
| "bgcolor": "#000" | ||
| }, | ||
| { | ||
| "id": 85, | ||
| "type": "LoadImage", | ||
| "pos": [ | ||
| -20, | ||
| 30 | ||
| ], | ||
| "size": [ | ||
| 282.796875, | ||
| 364 | ||
| ], | ||
| "flags": {}, | ||
| "order": 2, | ||
| "mode": 0, | ||
| "inputs": [], | ||
| "outputs": [ | ||
| { | ||
| "name": "IMAGE", | ||
| "type": "IMAGE", | ||
| "links": [ | ||
| 108, | ||
| 109 | ||
| ] | ||
| }, | ||
| { | ||
| "name": "MASK", | ||
| "type": "MASK", | ||
| "links": null | ||
| } | ||
| ], | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.24.0", | ||
| "Node name for S&R": "LoadImage" | ||
| }, | ||
| "widgets_values": [ | ||
| "retro_futuristic_home.png", | ||
| "image" | ||
| ] | ||
| } | ||
| ], | ||
| "links": [ | ||
| [ | ||
| 21, | ||
| 14, | ||
| 0, | ||
| 6, | ||
| 0, | ||
| "IMAGE" | ||
| ], | ||
| [ | ||
| 105, | ||
| 14, | ||
| 0, | ||
| 80, | ||
| 1, | ||
| "IMAGE" | ||
| ], | ||
| [ | ||
| 108, | ||
| 85, | ||
| 0, | ||
| 14, | ||
| 0, | ||
| "IMAGE" | ||
| ], | ||
| [ | ||
| 109, | ||
| 85, | ||
| 0, | ||
| 80, | ||
| 0, | ||
| "IMAGE" | ||
| ] | ||
| ], | ||
| "groups": [], | ||
| "definitions": { | ||
| "subgraphs": [ | ||
| { | ||
| "id": "605cfcbf-c05b-4cd4-8b8f-9d7d989ab5d3", | ||
| "version": 1, | ||
| "state": { | ||
| "lastGroupId": 4, | ||
| "lastNodeId": 85, | ||
| "lastLinkId": 109, | ||
| "lastRerouteId": 0 | ||
| }, | ||
| "revision": 2, | ||
| "config": {}, | ||
| "name": "Image Depth Estimation (Depth Anything 3)", | ||
| "inputNode": { | ||
| "id": -10, | ||
| "bounding": [ | ||
| 400, | ||
| 90, | ||
| 166.998046875, | ||
| 188 | ||
| ] | ||
| }, | ||
| "outputNode": { | ||
| "id": -20, | ||
| "bounding": [ | ||
| 1250, | ||
| 146, | ||
| 128, | ||
| 68 | ||
| ] | ||
| }, | ||
| "inputs": [ | ||
| { | ||
| "id": "43cf3118-495a-487d-8eb3-a17c7e92f64f", | ||
| "name": "image", | ||
| "type": "IMAGE", | ||
| "linkIds": [ | ||
| 19 | ||
| ], | ||
| "localized_name": "image", | ||
| "pos": [ | ||
| 542.998046875, | ||
| 114 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "1089a0a1-6db1-45a8-84b0-0bfdc2ed920a", | ||
| "name": "resolution", | ||
| "type": "INT", | ||
| "linkIds": [ | ||
| 22 | ||
| ], | ||
| "pos": [ | ||
| 542.998046875, | ||
| 134 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "25fb64ac-26d5-466d-995b-6d51b9afa2c4", | ||
| "name": "resize_method", | ||
| "type": "COMBO", | ||
| "linkIds": [ | ||
| 23 | ||
| ], | ||
| "pos": [ | ||
| 542.998046875, | ||
| 154 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "8acafb7c-6c8b-46b3-9d74-c563498a3af1", | ||
| "name": "output", | ||
| "type": "COMFY_DYNAMICCOMBO_V3", | ||
| "linkIds": [ | ||
| 24 | ||
| ], | ||
| "label": "output_type", | ||
| "pos": [ | ||
| 542.998046875, | ||
| 174 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "1da5009b-4648-43e8-a257-16426630cf22", | ||
| "name": "output.normalization", | ||
| "type": "COMBO", | ||
| "linkIds": [ | ||
| 25 | ||
| ], | ||
| "label": "output_normalization", | ||
| "pos": [ | ||
| 542.998046875, | ||
| 194 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "fd7edb33-5fb1-4538-a411-26e5039a9321", | ||
| "name": "output.apply_sky_clip", | ||
| "type": "BOOLEAN", | ||
| "linkIds": [ | ||
| 26 | ||
| ], | ||
| "label": "apply_sky_clip", | ||
| "pos": [ | ||
| 542.998046875, | ||
| 214 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "b5be4c8a-b833-4f1e-8c94-3ed1dd722190", | ||
| "name": "model_name", | ||
| "type": "COMBO", | ||
| "linkIds": [ | ||
| 106 | ||
| ], | ||
| "pos": [ | ||
| 542.998046875, | ||
| 234 | ||
| ] | ||
| } | ||
| ], | ||
| "outputs": [ | ||
| { | ||
| "id": "478ab537-63bc-4d74-a9f0-c975f550880f", | ||
| "name": "IMAGE", | ||
| "type": "IMAGE", | ||
| "linkIds": [ | ||
| 7 | ||
| ], | ||
| "localized_name": "IMAGE", | ||
| "pos": [ | ||
| 1274, | ||
| 170 | ||
| ] | ||
| } | ||
| ], | ||
| "widgets": [], | ||
| "nodes": [ | ||
| { | ||
| "id": 7, | ||
| "type": "DA3Render", | ||
| "pos": [ | ||
| 800, | ||
| 310 | ||
| ], | ||
| "size": [ | ||
| 380, | ||
| 126 | ||
| ], | ||
| "flags": {}, | ||
| "order": 1, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "localized_name": "da3_geometry", | ||
| "name": "da3_geometry", | ||
| "type": "DA3_GEOMETRY", | ||
| "link": 12 | ||
| }, | ||
| { | ||
| "localized_name": "output", | ||
| "name": "output", | ||
| "type": "COMFY_DYNAMICCOMBO_V3", | ||
| "widget": { | ||
| "name": "output" | ||
| }, | ||
| "link": 24 | ||
| }, | ||
| { | ||
| "localized_name": "output.normalization", | ||
| "name": "output.normalization", | ||
| "type": "COMBO", | ||
| "widget": { | ||
| "name": "output.normalization" | ||
| }, | ||
| "link": 25 | ||
| }, | ||
| { | ||
| "localized_name": "output.apply_sky_clip", | ||
| "name": "output.apply_sky_clip", | ||
| "type": "BOOLEAN", | ||
| "widget": { | ||
| "name": "output.apply_sky_clip" | ||
| }, | ||
| "link": 26 | ||
| }, | ||
| { | ||
| "name": "geometry", | ||
| "type": "DA3_GEOMETRY", | ||
| "link": null | ||
| } | ||
| ], | ||
| "outputs": [ | ||
| { | ||
| "localized_name": "IMAGE", | ||
| "name": "IMAGE", | ||
| "type": "IMAGE", | ||
| "slot_index": 0, | ||
| "links": [ | ||
| 7 | ||
| ] | ||
| } | ||
| ], | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.19.0", | ||
| "Node name for S&R": "DA3Render" | ||
| }, | ||
| "widgets_values": [ | ||
| "depth", | ||
| "v2_style", | ||
| false | ||
| ] | ||
| }, | ||
| { | ||
| "id": 5, | ||
| "type": "DA3Inference", | ||
| "pos": [ | ||
| 800, | ||
| 50 | ||
| ], | ||
| "size": [ | ||
| 390, | ||
| 130 | ||
| ], | ||
| "flags": {}, | ||
| "order": 0, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "localized_name": "da3_model", | ||
| "name": "da3_model", | ||
| "type": "DA3_MODEL", | ||
| "link": 107 | ||
| }, | ||
| { | ||
| "localized_name": "image", | ||
| "name": "image", | ||
| "type": "IMAGE", | ||
| "link": 19 | ||
| }, | ||
| { | ||
| "localized_name": "resolution", | ||
| "name": "resolution", | ||
| "type": "INT", | ||
| "widget": { | ||
| "name": "resolution" | ||
| }, | ||
| "link": 22 | ||
| }, | ||
| { | ||
| "localized_name": "resize_method", | ||
| "name": "resize_method", | ||
| "type": "COMBO", | ||
| "widget": { | ||
| "name": "resize_method" | ||
| }, | ||
| "link": 23 | ||
| } | ||
| ], | ||
| "outputs": [ | ||
| { | ||
| "localized_name": "da3_geometry", | ||
| "name": "da3_geometry", | ||
| "type": "DA3_GEOMETRY", | ||
| "slot_index": 0, | ||
| "links": [ | ||
| 12 | ||
| ] | ||
| } | ||
| ], | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.19.0", | ||
| "Node name for S&R": "DA3Inference" | ||
| }, | ||
| "widgets_values": [ | ||
| 504, | ||
| "upper_bound_resize", | ||
| "mono" | ||
| ] | ||
| }, | ||
| { | ||
| "id": 82, | ||
| "type": "LoadDA3Model", | ||
| "pos": [ | ||
| 810, | ||
| -160 | ||
| ], | ||
| "size": [ | ||
| 400, | ||
| 140 | ||
| ], | ||
| "flags": {}, | ||
| "order": 2, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "localized_name": "model_name", | ||
| "name": "model_name", | ||
| "type": "COMBO", | ||
| "widget": { | ||
| "name": "model_name" | ||
| }, | ||
| "link": 106 | ||
| } | ||
| ], | ||
| "outputs": [ | ||
| { | ||
| "localized_name": "DA3_MODEL", | ||
| "name": "DA3_MODEL", | ||
| "type": "DA3_MODEL", | ||
| "links": [ | ||
| 107 | ||
| ] | ||
| } | ||
| ], | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.24.0", | ||
| "Node name for S&R": "LoadDA3Model", | ||
| "models": [ | ||
| { | ||
| "name": "depth_anything_3_small.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_small.safetensors", | ||
| "directory": "geometry_estimation" | ||
| }, | ||
| { | ||
| "name": "depth_anything_3_base.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_base.safetensors", | ||
| "directory": "geometry_estimation" | ||
| }, | ||
| { | ||
| "name": "depth_anything_3_mono_large.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_mono_large.safetensors", | ||
| "directory": "geometry_estimation" | ||
| }, | ||
| { | ||
| "name": "depth_anything_3_metric_large.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_metric_large.safetensors", | ||
| "directory": "geometry_estimation" | ||
| } | ||
| ] | ||
| }, | ||
| "widgets_values": [ | ||
| "depth_anything_3_mono_large.safetensors", | ||
| "default" | ||
| ] | ||
| } | ||
| ], | ||
| "groups": [], | ||
| "links": [ | ||
| { | ||
| "id": 12, | ||
| "origin_id": 5, | ||
| "origin_slot": 0, | ||
| "target_id": 7, | ||
| "target_slot": 0, | ||
| "type": "DA3_GEOMETRY" | ||
| }, | ||
| { | ||
| "id": 19, | ||
| "origin_id": -10, | ||
| "origin_slot": 0, | ||
| "target_id": 5, | ||
| "target_slot": 1, | ||
| "type": "IMAGE" | ||
| }, | ||
| { | ||
| "id": 7, | ||
| "origin_id": 7, | ||
| "origin_slot": 0, | ||
| "target_id": -20, | ||
| "target_slot": 0, | ||
| "type": "IMAGE" | ||
| }, | ||
| { | ||
| "id": 22, | ||
| "origin_id": -10, | ||
| "origin_slot": 1, | ||
| "target_id": 5, | ||
| "target_slot": 2, | ||
| "type": "INT" | ||
| }, | ||
| { | ||
| "id": 23, | ||
| "origin_id": -10, | ||
| "origin_slot": 2, | ||
| "target_id": 5, | ||
| "target_slot": 3, | ||
| "type": "COMBO" | ||
| }, | ||
| { | ||
| "id": 24, | ||
| "origin_id": -10, | ||
| "origin_slot": 3, | ||
| "target_id": 7, | ||
| "target_slot": 1, | ||
| "type": "COMFY_DYNAMICCOMBO_V3" | ||
| }, | ||
| { | ||
| "id": 25, | ||
| "origin_id": -10, | ||
| "origin_slot": 4, | ||
| "target_id": 7, | ||
| "target_slot": 2, | ||
| "type": "COMBO" | ||
| }, | ||
| { | ||
| "id": 26, | ||
| "origin_id": -10, | ||
| "origin_slot": 5, | ||
| "target_id": 7, | ||
| "target_slot": 3, | ||
| "type": "BOOLEAN" | ||
| }, | ||
| { | ||
| "id": 106, | ||
| "origin_id": -10, | ||
| "origin_slot": 6, | ||
| "target_id": 82, | ||
| "target_slot": 0, | ||
| "type": "COMBO" | ||
| }, | ||
| { | ||
| "id": 107, | ||
| "origin_id": 82, | ||
| "origin_slot": 0, | ||
| "target_id": 5, | ||
| "target_slot": 0, | ||
| "type": "DA3_MODEL" | ||
| } | ||
| ], | ||
| "extra": {} | ||
| } | ||
| ] | ||
| }, | ||
| "config": {}, | ||
| "extra": { | ||
| "ds": { | ||
| "scale": 0.48791082929996415, | ||
| "offset": [ | ||
| 1502.5449848048947, | ||
| 716.678231284096 | ||
| ] | ||
| }, | ||
| "frontendVersion": "1.45.15", | ||
| "workflowRendererVersion": "LG", | ||
| "VHS_latentpreview": false, | ||
| "VHS_latentpreviewrate": 0, | ||
| "VHS_MetadataImage": true, | ||
| "VHS_KeepIntermediate": true | ||
| }, | ||
| "version": 0.4 | ||
| } No newline at end of file |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check if thumbnail file exists in the templates directory
echo "Checking for thumbnail file..."
fd -t f "utility_depth_anything3_image_depth_estimation.*\.webp" templates/Repository: Comfy-Org/workflow_templates
Length of output: 231
Fix model metadata compliance in templates/utility_depth_anything3_image_depth_estimation.json
LoadDA3Modelproperties.models[]entries includename,url, anddirectory, but nosha256fields (guidelines require embedded download URLs and SHA256 hashes).- The snippet does not show any embedded thumbnail metadata referencing
{template}-1.webp(e.g.,utility_depth_anything3_image_depth_estimation-1.webp), even though thumbnail files appear to exist intemplates/.
🧰 Tools
🪛 GitHub Actions: Validate Templates / 0_validate.txt
[error] 1-1: Validation error: Model 'depth_anything_3_small.safetensors' in node 82 (LoadDA3Model) properties but not in widget_values (subgraph 605cfcbf-c05b-4cd4-8b8f-9d7d989ab5d3).
🪛 GitHub Actions: Validate Templates / validate
[error] 1-1: Template validation error: in subgraph 605cfcbf-c05b-4cd4-8b8f-9d7d989ab5d3, model 'depth_anything_3_small.safetensors' in node 82 (LoadDA3Model) properties but not in widget_values.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@templates/utility_depth_anything3_image_depth_estimation.json` around lines 1
- 742, The LoadDA3Model node's model entries are missing required SHA256 hashes
and the template lacks an embedded thumbnail reference; update the
properties.models array inside the LoadDA3Model node (identify by type
"LoadDA3Model" and property path properties.models) to add a "sha256" field for
each model object with the correct hash for the corresponding URL, and add a
thumbnail metadata entry that points to
"utility_depth_anything3_image_depth_estimation-1.webp" (place the thumbnail
reference under the template metadata—e.g., add a "thumbnail" or
"extra.thumbnail" field at the JSON root or inside
definitions.subgraphs[0].properties—so the template properly references the
bundled {template}-1.webp file).
Source: Coding guidelines
| "id": 82, | ||
| "type": "LoadDA3Model", | ||
| "pos": [ | ||
| 810, | ||
| -160 | ||
| ], | ||
| "size": [ | ||
| 400, | ||
| 140 | ||
| ], | ||
| "flags": {}, | ||
| "order": 2, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "localized_name": "model_name", | ||
| "name": "model_name", | ||
| "type": "COMBO", | ||
| "widget": { | ||
| "name": "model_name" | ||
| }, | ||
| "link": 106 | ||
| } | ||
| ], | ||
| "outputs": [ | ||
| { | ||
| "localized_name": "DA3_MODEL", | ||
| "name": "DA3_MODEL", | ||
| "type": "DA3_MODEL", | ||
| "links": [ | ||
| 107 | ||
| ] | ||
| } | ||
| ], | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.24.0", | ||
| "Node name for S&R": "LoadDA3Model", | ||
| "models": [ | ||
| { | ||
| "name": "depth_anything_3_small.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_small.safetensors", | ||
| "directory": "geometry_estimation" | ||
| }, | ||
| { | ||
| "name": "depth_anything_3_base.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_base.safetensors", | ||
| "directory": "geometry_estimation" | ||
| }, | ||
| { | ||
| "name": "depth_anything_3_mono_large.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_mono_large.safetensors", | ||
| "directory": "geometry_estimation" | ||
| }, | ||
| { | ||
| "name": "depth_anything_3_metric_large.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_metric_large.safetensors", | ||
| "directory": "geometry_estimation" | ||
| } | ||
| ] | ||
| }, | ||
| "widgets_values": [ | ||
| "depth_anything_3_mono_large.safetensors", | ||
| "default" | ||
| ] | ||
| } |
There was a problem hiding this comment.
Pipeline validation failure: models property-widget mismatch merit.
The pipeline reports: "Model 'depth_anything_3_small.safetensors' in node 82 (LoadDA3Model) properties but not in widget_values."
The widgets_values array (lines 632-635) contains only the default selected model (depth_anything_3_mono_large.safetensors), while properties.models[] defines all four available model options. This validation error may indicate:
- A structural requirement that the validation script expects (possibly related to the missing SHA256 hashes flagged in the previous comment)
- An incomplete model metadata entry causing validation to fail
- A mismatch in how the LoadDA3Model node is structured
Resolving the missing SHA256 hashes should address this pipeline failure. If the error persists after adding hashes, further investigation of the validation script's requirements will be needed.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@templates/utility_depth_anything3_image_depth_estimation.json` around lines
571 - 636, The validator is failing because the LoadDA3Model node (id 82) models
metadata lacks required SHA256 hashes; update the properties.models array for
the LoadDA3Model node to include a "sha256" field for each model entry
(depth_anything_3_small.safetensors, depth_anything_3_base.safetensors,
depth_anything_3_mono_large.safetensors,
depth_anything_3_metric_large.safetensors) with their correct checksum values so
the pipeline validator accepts them, and then re-run validation (leave
widgets_values as the selected default unless the validator requires enumerating
options).
Source: Pipeline failures
| "models": [ | ||
| { | ||
| "name": "depth_anything_3_small.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_small.safetensors", | ||
| "directory": "geometry_estimation" | ||
| }, | ||
| { | ||
| "name": "depth_anything_3_base.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_base.safetensors", | ||
| "directory": "geometry_estimation" | ||
| }, | ||
| { | ||
| "name": "depth_anything_3_mono_large.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_mono_large.safetensors", | ||
| "directory": "geometry_estimation" | ||
| }, | ||
| { | ||
| "name": "depth_anything_3_metric_large.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_metric_large.safetensors", | ||
| "directory": "geometry_estimation" | ||
| } | ||
| ] |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Retrieve SHA256 hashes from the Hugging Face repository for each model
echo "Fetching SHA256 hashes for Depth Anything 3 models..."
echo ""
models=(
"depth_anything_3_small.safetensors"
"depth_anything_3_base.safetensors"
"depth_anything_3_mono_large.safetensors"
"depth_anything_3_metric_large.safetensors"
)
for model in "${models[@]}"; do
echo "Model: $model"
# Try to fetch the hash from HuggingFace's LFS pointer or metadata
curl -sL "https://huggingface.co/Comfy-Org/Depth-Anything-3/raw/main/geometry_estimation/$model" | head -n 20 | grep -i "sha256" || echo " (Hash not found in LFS pointer)"
echo ""
doneRepository: Comfy-Org/workflow_templates
Length of output: 614
Fix missing SHA256 hashes in properties.models[] for Depth-Anything-3 (hash it or crash—no capes required!)
templates/utility_depth_anything3_image_depth_estimation.json (lines 609-630): each properties.models[] entry is missing the required sha256. Add these SHA256 values to the corresponding model objects:
depth_anything_3_small.safetensors:9c0a53d157c5b315d4c82908a43d93eeaa3a9ac3de9d15c2b4242ef46b5508addepth_anything_3_base.safetensors:418c0d2ea857e2d1215fa51baa46833f499a62eb2400ec63d337aa20d326414fdepth_anything_3_mono_large.safetensors:9b44eda5bedba5b4e125686fdb79d1db309c1b9785277576eb930f885b008f96depth_anything_3_metric_large.safetensors:b6eac00c060931fb15a97c1ba77d2e49d866b83ff7da631289279b3c1c0c99c8
If validation still fails afterward, re-check the widget_values/model list wiring (but hashes are the must-fix first).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@templates/utility_depth_anything3_image_depth_estimation.json` around lines
609 - 630, Each model object in properties.models[] for Depth-Anything-3 is
missing the required sha256 field; update the four model entries
(depth_anything_3_small.safetensors, depth_anything_3_base.safetensors,
depth_anything_3_mono_large.safetensors,
depth_anything_3_metric_large.safetensors) to include their respective SHA256
values (9c0a53d157c5b315d4c82908a43d93eeaa3a9ac3de9d15c2b4242ef46b5508ad,
418c0d2ea857e2d1215fa51baa46833f499a62eb2400ec63d337aa20d326414f,
9b44eda5bedba5b4e125686fdb79d1db309c1b9785277576eb930f885b008f96,
b6eac00c060931fb15a97c1ba77d2e49d866b83ff7da631289279b3c1c0c99c8) so validation
can pass; after adding these sha256 fields to the model objects, run the schema
validation and, if it still fails, inspect widget_values/model-list wiring.
Source: Coding guidelines
Created via ComfyUI Template Manager
There was a problem hiding this comment.
Actionable comments posted: 7
♻️ Duplicate comments (1)
scripts/i18n.json (1)
4576-4593:⚠️ Potential issue | 🟠 Major | ⚡ Quick winMissing-fields metadata doesn't match the locale data that's been set.
The
missing_fieldsandmissing_languagesblock claimstitleanddescriptionare missing for zh/zh-TW/ja/ko/es/fr/ru/tr/ar/pt-BR/fa, but hunk 2 below (lines 20885–20913) provides those exact keys for every listed language—they're just English placeholder strings rather than real translations. This duplicates the concern raised for the image variant: either remove the stalemissing_*properties or replace the English placeholders with actual translations so the metadata reflects reality.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@scripts/i18n.json` around lines 4576 - 4593, The metadata for key "utility_depth_anything3_video_depth_estimation" incorrectly lists title and description as missing for several locales while those keys exist as English placeholders; either remove the stale missing_fields/missing_languages entries or replace the placeholder title/description values for the listed locales (zh, zh-TW, ja, ko, es, fr, ru, tr, ar, pt-BR, fa) with proper translations so the metadata matches the actual locale content; update the JSON so missing_fields only lists truly absent keys and missing_languages only lists locales that lack non-placeholder translations.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@scripts/i18n.json`:
- Around line 20886-20913: The non-English locale values under the JSON keys
"title" and "description" (locale codes "zh", "zh-TW", "ja", "ko", "es", "fr",
"ru", "tr", "ar", "pt-BR", "fa") are English placeholders and will be ignored by
the sync logic; replace each placeholder with actual translated text (or remove
the locale entry so the sync process can populate it) ensuring each non-English
value differs from the "en" master; update the "title" and "description" entries
accordingly so the sync_data.py comparison detects and preserves real
translations.
- Line 20901: The "en" string currently says "Upload 1 image..." but this
template is for video depth estimation; update the English description string in
scripts/i18n.json (the "en" value shown in the diff) to instruct users to upload
a video or multiple frames (e.g., "Upload a video or sequence of frames to
generate depth maps for video depth estimation...") and clarify the output is a
depth-processed video or per-frame depth images ready for downstream workflows.
- Line 20898: The repo has partial Farsi locale entries (e.g., the "fa" key for
utility_depth_anything3_video_depth_estimation in scripts/i18n.json and an
index.fa.json generated by scripts/locale_index_files.py) but the official site
locale lists in site/astro.config.mjs and site/src/i18n/config.ts don’t include
"fa"; choose one: either add "fa" to the supported locales arrays in
site/astro.config.mjs and site/src/i18n/config.ts (ensuring any build tooling or
locale whitelist accepts it) or remove all "fa" keys/generated files (e.g.,
remove the "fa" entries for utility_depth_anything3_video_depth_estimation in
scripts/i18n.json and prevent generating index.fa.json in
scripts/locale_index_files.py) so the i18n source matches the site’s official
locale list.
In `@templates/index.json`:
- Around line 14137-14157: The metadata claims an image input/output but the IO
block uses a LoadVideo node (nodeId 87, nodeType "LoadVideo", file
"empty_room_assembly.mp4"), so update the template to be consistent: either
change the description/mediaType/mediaSubtype fields (and any size/vram if
needed) to indicate a video workflow (e.g., "Upload 1 video..." and mediaType
"video") or replace the LoadVideo input with the correct image loader (e.g., a
LoadImage node) and adjust file/sample info accordingly; ensure the
"description", "mediaType", "mediaSubtype", and the IO input node (nodeType for
nodeId 87) all match the chosen media type.
In `@templates/utility_depth_anything3_video_depth_estimation.json`:
- Around line 1-903: The Markdown note titled "About: Depth Anything 3 Video"
(node id 84) currently tells users to "Upload 1 image" but the workflow uses a
LoadVideo node (node id 87) and expects a video input; update the Markdown text
to say "Upload 1 video" (and any nearby phrasing referencing an image input) to
match the workflow, and also fix the LoadVideo node's widget value (node id 87,
widgets_values second entry) from "image" to "video" so UI hints and node
settings are consistent.
- Around line 1-903: The template is missing thumbnail wiring, model SHA256s,
and has wrong i18n text: add a reference to
utility_depth_anything3_video_depth_estimation-1.webp in the template metadata
so the UI shows the thumbnail breadcrumbs, add a sha256 field to each entry in
the LoadDA3Model properties.models array (node id 82 / "LoadDA3Model") with the
correct SHA256 checksums for those safetensors, and update the i18n string in
scripts/i18n.json that currently reads "Upload 1 image…" to a video-appropriate
phrase like "Upload a video…" (or similar) so the description matches
LoadVideo/CreateVideo usage. Ensure you modify the template's top-level metadata
section the UI reads for thumbnails and the specific properties.models objects
rather than adding new duplicate model entries.
- Around line 706-712: The model metadata entry in properties.models[] is
missing the required sha256 field; update the model object (the entry with name
"depth_anything_3_mono_large.safetensors" and url
"https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_mono_large.safetensors")
to include a sha256 property containing the SHA-256 checksum of the file,
keeping the existing name/url/directory keys intact and formatted the same way
as other models in properties.models[] so the workflow JSON follows the standard
ComfyUI model metadata schema.
---
Duplicate comments:
In `@scripts/i18n.json`:
- Around line 4576-4593: The metadata for key
"utility_depth_anything3_video_depth_estimation" incorrectly lists title and
description as missing for several locales while those keys exist as English
placeholders; either remove the stale missing_fields/missing_languages entries
or replace the placeholder title/description values for the listed locales (zh,
zh-TW, ja, ko, es, fr, ru, tr, ar, pt-BR, fa) with proper translations so the
metadata matches the actual locale content; update the JSON so missing_fields
only lists truly absent keys and missing_languages only lists locales that lack
non-placeholder translations.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 1975201d-abaa-4e15-adf0-3f650db88238
⛔ Files ignored due to path filters (2)
input/empty_room_assembly.mp4is excluded by!**/*.mp4input/retro_futuristic_home.pngis excluded by!**/*.png
📒 Files selected for processing (6)
bundles.jsonscripts/i18n.jsontemplates/index.jsontemplates/utility_depth_anything3_video_depth_estimation-1.webptemplates/utility_depth_anything3_video_depth_estimation-2.webptemplates/utility_depth_anything3_video_depth_estimation.json
| "fa": "Depth Anything 3: Video Depth Estimation" | ||
| }, | ||
| "description": { | ||
| "en": "Upload 1 image to generate a depth map for video depth estimation. Output a single depth-processed image ready for use in downstream workflows. Ideal for video generation tasks requiring depth control, 3D scene preprocessing, and animation depth mapping.", |
There was a problem hiding this comment.
Description says "Upload 1 image" but this is video depth, no debate—check your input, mate!
The description begins with "Upload 1 image to generate a depth map for video depth estimation," but this template processes video input, not a single image. This appears to be a copy-paste slip from the image variant's description.
📹 Proposed fix to correct the input description
- "en": "Upload 1 image to generate a depth map for video depth estimation. Output a single depth-processed image ready for use in downstream workflows. Ideal for video generation tasks requiring depth control, 3D scene preprocessing, and animation depth mapping.",
+ "en": "Upload 1 video to generate depth maps for each frame using Depth Anything 3. Outputs a depth-processed video ready for use in downstream workflows. Ideal for video generation tasks requiring depth control, 3D scene preprocessing, and animation depth mapping.",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "en": "Upload 1 image to generate a depth map for video depth estimation. Output a single depth-processed image ready for use in downstream workflows. Ideal for video generation tasks requiring depth control, 3D scene preprocessing, and animation depth mapping.", | |
| "en": "Upload 1 video to generate depth maps for each frame using Depth Anything 3. Outputs a depth-processed video ready for use in downstream workflows. Ideal for video generation tasks requiring depth control, 3D scene preprocessing, and animation depth mapping.", |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@scripts/i18n.json` at line 20901, The "en" string currently says "Upload 1
image..." but this template is for video depth estimation; update the English
description string in scripts/i18n.json (the "en" value shown in the diff) to
instruct users to upload a video or multiple frames (e.g., "Upload a video or
sequence of frames to generate depth maps for video depth estimation...") and
clarify the output is a depth-processed video or per-frame depth images ready
for downstream workflows.
| { | ||
| "id": "b2d4f6a8-3c5e-7f9b-1d3f-5a7b9c1d3e5f", | ||
| "revision": 2, | ||
| "last_node_id": 89, | ||
| "last_link_id": 118, | ||
| "nodes": [ | ||
| { | ||
| "id": 14, | ||
| "type": "605cfcbf-c05b-4cd4-8b8f-9d7d989ab5d3", | ||
| "pos": [ | ||
| 340, | ||
| 30 | ||
| ], | ||
| "size": [ | ||
| 400, | ||
| 360 | ||
| ], | ||
| "flags": {}, | ||
| "order": 3, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "label": "output_type", | ||
| "name": "output", | ||
| "type": "COMFY_DYNAMICCOMBO_V3", | ||
| "widget": { | ||
| "name": "output" | ||
| }, | ||
| "link": null | ||
| }, | ||
| { | ||
| "label": "output_normalization", | ||
| "name": "output.normalization", | ||
| "type": "COMBO", | ||
| "widget": { | ||
| "name": "output.normalization" | ||
| }, | ||
| "link": null | ||
| }, | ||
| { | ||
| "label": "apply_sky_clip", | ||
| "name": "output.apply_sky_clip", | ||
| "type": "BOOLEAN", | ||
| "widget": { | ||
| "name": "output.apply_sky_clip" | ||
| }, | ||
| "link": null | ||
| }, | ||
| { | ||
| "name": "video", | ||
| "type": "VIDEO", | ||
| "link": 114 | ||
| } | ||
| ], | ||
| "outputs": [ | ||
| { | ||
| "name": "IMAGE", | ||
| "type": "IMAGE", | ||
| "links": [ | ||
| 21, | ||
| 115 | ||
| ] | ||
| }, | ||
| { | ||
| "name": "audio", | ||
| "type": "AUDIO", | ||
| "links": [ | ||
| 116 | ||
| ] | ||
| }, | ||
| { | ||
| "name": "fps", | ||
| "type": "FLOAT", | ||
| "links": [ | ||
| 117 | ||
| ] | ||
| } | ||
| ], | ||
| "properties": { | ||
| "proxyWidgets": [ | ||
| [ | ||
| "5", | ||
| "resolution" | ||
| ], | ||
| [ | ||
| "5", | ||
| "resize_method" | ||
| ], | ||
| [ | ||
| "7", | ||
| "output" | ||
| ], | ||
| [ | ||
| "7", | ||
| "output.normalization" | ||
| ], | ||
| [ | ||
| "7", | ||
| "output.apply_sky_clip" | ||
| ], | ||
| [ | ||
| "82", | ||
| "model_name" | ||
| ] | ||
| ], | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.24.0" | ||
| }, | ||
| "widgets_values": [] | ||
| }, | ||
| { | ||
| "id": 83, | ||
| "type": "MarkdownNote", | ||
| "pos": [ | ||
| -1190, | ||
| 30 | ||
| ], | ||
| "size": [ | ||
| 510, | ||
| 820 | ||
| ], | ||
| "flags": {}, | ||
| "order": 0, | ||
| "mode": 0, | ||
| "inputs": [], | ||
| "outputs": [], | ||
| "title": "Model Link", | ||
| "properties": {}, | ||
| "widgets_values": [ | ||
| "Guide: [Subgraph](https://docs.comfy.org/interface/features/subgraph)\n\n## Model Link (for Local Users)\n\n**geometry_estimation**\n\n- [depth_anything_3_small.safetensors](https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_small.safetensors)\n- [depth_anything_3_base.safetensors](https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_base.safetensors)\n- [depth_anything_3_mono_large.safetensors](https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_mono_large.safetensors)\n- [depth_anything_3_metric_large.safetensors](https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_metric_large.safetensors)\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ └── 📂 geometry_estimation/\n│ ├── depth_anything_3_small.safetensors\n│ ├── depth_anything_3_base.safetensors\n│ ├── depth_anything_3_mono_large.safetensors\n│ └── depth_anything_3_metric_large.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n" | ||
| ], | ||
| "color": "#222", | ||
| "bgcolor": "#000" | ||
| }, | ||
| { | ||
| "id": 84, | ||
| "type": "MarkdownNote", | ||
| "pos": [ | ||
| -640, | ||
| 30 | ||
| ], | ||
| "size": [ | ||
| 550, | ||
| 966.03125 | ||
| ], | ||
| "flags": {}, | ||
| "order": 1, | ||
| "mode": 0, | ||
| "inputs": [], | ||
| "outputs": [], | ||
| "title": "About: Depth Anything 3 Video", | ||
| "properties": {}, | ||
| "widgets_values": [ | ||
| "## About Depth Anything 3\n\n[Depth Anything 3 (DA3)](https://github.com/ByteDance-Seed/Depth-Anything-3) is a vision transformer from ByteDance Seed that recovers spatially consistent geometry from arbitrary visual inputs. In ComfyUI, it can estimate a depth map for every frame of a video.\n\n### What this workflow does\n\nUpload a video with **LoadVideo**, then run **Video Depth Estimation (Depth Anything 3)** to produce a per-frame depth sequence. Inside the subgraph:\n\n1. **GetVideoComponents** splits the input video into a frame **image sequence**, **audio**, and **fps**.\n2. **LoadDA3Model** loads the selected DA3 checkpoint.\n3. **DA3Inference** runs mono depth estimation on each frame.\n4. **DA3Render** converts geometry into a depth preview image per frame.\n\nThe subgraph also forwards the original **audio** and **fps** from the source video for downstream reuse.\n\n\n### Model variants\n\n- **depth_anything_3_mono_large** (default): High-quality relative monocular depth with sky segmentation. Best starting point for per-frame video depth.\n- **depth_anything_3_metric_large**: Metric depth in real-world scale (meters). Use `raw` normalization in Render to preserve scale.\n- **depth_anything_3_base**: Any-view foundation model (0.12B). Adds confidence maps; supports multi-view mode (not used in this per-frame video workflow).\n- **depth_anything_3_small**: Fastest any-view model (0.08B). Lowest VRAM per frame.\n\n### Learn more\n\n- Paper: [arXiv:2511.10647](https://arxiv.org/abs/2511.10647)\n- Original repo: [ByteDance-Seed/Depth-Anything-3](https://github.com/ByteDance-Seed/Depth-Anything-3)\n- ComfyUI weights: [Comfy-Org/Depth-Anything-3](https://huggingface.co/Comfy-Org/Depth-Anything-3)\n" | ||
| ], | ||
| "color": "#222", | ||
| "bgcolor": "#000" | ||
| }, | ||
| { | ||
| "id": 87, | ||
| "type": "LoadVideo", | ||
| "pos": [ | ||
| -40, | ||
| 30 | ||
| ], | ||
| "size": [ | ||
| 290, | ||
| 300 | ||
| ], | ||
| "flags": {}, | ||
| "order": 2, | ||
| "mode": 0, | ||
| "inputs": [], | ||
| "outputs": [ | ||
| { | ||
| "name": "VIDEO", | ||
| "type": "VIDEO", | ||
| "links": [ | ||
| 114 | ||
| ] | ||
| } | ||
| ], | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.24.0", | ||
| "Node name for S&R": "LoadVideo" | ||
| }, | ||
| "widgets_values": [ | ||
| "empty_room_assembly.mp4", | ||
| "image" | ||
| ] | ||
| }, | ||
| { | ||
| "id": 6, | ||
| "type": "PreviewImage", | ||
| "pos": [ | ||
| 780, | ||
| 30 | ||
| ], | ||
| "size": [ | ||
| 370, | ||
| 350 | ||
| ], | ||
| "flags": {}, | ||
| "order": 4, | ||
| "mode": 4, | ||
| "inputs": [ | ||
| { | ||
| "name": "images", | ||
| "type": "IMAGE", | ||
| "link": 21 | ||
| } | ||
| ], | ||
| "outputs": [], | ||
| "title": "Depth Preview (one frame per view)", | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.19.0", | ||
| "Node name for S&R": "PreviewImage" | ||
| }, | ||
| "widgets_values": [] | ||
| }, | ||
| { | ||
| "id": 89, | ||
| "type": "CreateVideo", | ||
| "pos": [ | ||
| 1200, | ||
| 30 | ||
| ], | ||
| "size": [ | ||
| 270, | ||
| 130 | ||
| ], | ||
| "flags": {}, | ||
| "order": 5, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "name": "images", | ||
| "type": "IMAGE", | ||
| "link": 115 | ||
| }, | ||
| { | ||
| "name": "audio", | ||
| "shape": 7, | ||
| "type": "AUDIO", | ||
| "link": 116 | ||
| }, | ||
| { | ||
| "name": "fps", | ||
| "type": "FLOAT", | ||
| "widget": { | ||
| "name": "fps" | ||
| }, | ||
| "link": 117 | ||
| } | ||
| ], | ||
| "outputs": [ | ||
| { | ||
| "name": "VIDEO", | ||
| "type": "VIDEO", | ||
| "links": [ | ||
| 118 | ||
| ] | ||
| } | ||
| ], | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.24.0", | ||
| "Node name for S&R": "CreateVideo" | ||
| }, | ||
| "widgets_values": [ | ||
| 30 | ||
| ] | ||
| }, | ||
| { | ||
| "id": 88, | ||
| "type": "SaveVideo", | ||
| "pos": [ | ||
| 1510, | ||
| 30 | ||
| ], | ||
| "size": [ | ||
| 560, | ||
| 520 | ||
| ], | ||
| "flags": {}, | ||
| "order": 6, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "name": "video", | ||
| "type": "VIDEO", | ||
| "link": 118 | ||
| } | ||
| ], | ||
| "outputs": [], | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.24.0", | ||
| "Node name for S&R": "SaveVideo" | ||
| }, | ||
| "widgets_values": [ | ||
| "video/depth_anything3", | ||
| "auto", | ||
| "auto" | ||
| ] | ||
| } | ||
| ], | ||
| "links": [ | ||
| [ | ||
| 21, | ||
| 14, | ||
| 0, | ||
| 6, | ||
| 0, | ||
| "IMAGE" | ||
| ], | ||
| [ | ||
| 114, | ||
| 87, | ||
| 0, | ||
| 14, | ||
| 3, | ||
| "VIDEO" | ||
| ], | ||
| [ | ||
| 115, | ||
| 14, | ||
| 0, | ||
| 89, | ||
| 0, | ||
| "IMAGE" | ||
| ], | ||
| [ | ||
| 116, | ||
| 14, | ||
| 1, | ||
| 89, | ||
| 1, | ||
| "AUDIO" | ||
| ], | ||
| [ | ||
| 117, | ||
| 14, | ||
| 2, | ||
| 89, | ||
| 2, | ||
| "FLOAT" | ||
| ], | ||
| [ | ||
| 118, | ||
| 89, | ||
| 0, | ||
| 88, | ||
| 0, | ||
| "VIDEO" | ||
| ] | ||
| ], | ||
| "groups": [], | ||
| "definitions": { | ||
| "subgraphs": [ | ||
| { | ||
| "id": "605cfcbf-c05b-4cd4-8b8f-9d7d989ab5d3", | ||
| "version": 1, | ||
| "state": { | ||
| "lastGroupId": 4, | ||
| "lastNodeId": 89, | ||
| "lastLinkId": 118, | ||
| "lastRerouteId": 0 | ||
| }, | ||
| "revision": 2, | ||
| "config": {}, | ||
| "name": "Video Depth Estimation (Depth Anything 3)", | ||
| "inputNode": { | ||
| "id": -10, | ||
| "bounding": [ | ||
| 160, | ||
| -110, | ||
| 166.998046875, | ||
| 188 | ||
| ] | ||
| }, | ||
| "outputNode": { | ||
| "id": -20, | ||
| "bounding": [ | ||
| 1520, | ||
| 140, | ||
| 128, | ||
| 108 | ||
| ] | ||
| }, | ||
| "inputs": [ | ||
| { | ||
| "id": "1089a0a1-6db1-45a8-84b0-0bfdc2ed920a", | ||
| "name": "resolution", | ||
| "type": "INT", | ||
| "linkIds": [ | ||
| 22 | ||
| ], | ||
| "pos": [ | ||
| 302.998046875, | ||
| -86 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "25fb64ac-26d5-466d-995b-6d51b9afa2c4", | ||
| "name": "resize_method", | ||
| "type": "COMBO", | ||
| "linkIds": [ | ||
| 23 | ||
| ], | ||
| "pos": [ | ||
| 302.998046875, | ||
| -66 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "8acafb7c-6c8b-46b3-9d74-c563498a3af1", | ||
| "name": "output", | ||
| "type": "COMFY_DYNAMICCOMBO_V3", | ||
| "linkIds": [ | ||
| 24 | ||
| ], | ||
| "label": "output_type", | ||
| "pos": [ | ||
| 302.998046875, | ||
| -46 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "1da5009b-4648-43e8-a257-16426630cf22", | ||
| "name": "output.normalization", | ||
| "type": "COMBO", | ||
| "linkIds": [ | ||
| 25 | ||
| ], | ||
| "label": "output_normalization", | ||
| "pos": [ | ||
| 302.998046875, | ||
| -26 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "fd7edb33-5fb1-4538-a411-26e5039a9321", | ||
| "name": "output.apply_sky_clip", | ||
| "type": "BOOLEAN", | ||
| "linkIds": [ | ||
| 26 | ||
| ], | ||
| "label": "apply_sky_clip", | ||
| "pos": [ | ||
| 302.998046875, | ||
| -6 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "b5be4c8a-b833-4f1e-8c94-3ed1dd722190", | ||
| "name": "model_name", | ||
| "type": "COMBO", | ||
| "linkIds": [ | ||
| 106 | ||
| ], | ||
| "pos": [ | ||
| 302.998046875, | ||
| 14 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "698c28c6-cf92-4039-8b39-f3062868ea7c", | ||
| "name": "video", | ||
| "type": "VIDEO", | ||
| "linkIds": [ | ||
| 110 | ||
| ], | ||
| "pos": [ | ||
| 302.998046875, | ||
| 34 | ||
| ] | ||
| } | ||
| ], | ||
| "outputs": [ | ||
| { | ||
| "id": "478ab537-63bc-4d74-a9f0-c975f550880f", | ||
| "name": "IMAGE", | ||
| "type": "IMAGE", | ||
| "linkIds": [ | ||
| 7 | ||
| ], | ||
| "localized_name": "IMAGE", | ||
| "pos": [ | ||
| 1544, | ||
| 164 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "cdaf037e-79bc-4a94-b06c-0fd32e76f615", | ||
| "name": "audio", | ||
| "type": "AUDIO", | ||
| "linkIds": [ | ||
| 112 | ||
| ], | ||
| "pos": [ | ||
| 1544, | ||
| 184 | ||
| ] | ||
| }, | ||
| { | ||
| "id": "4c0e5484-d193-49c7-b107-92619628880a", | ||
| "name": "fps", | ||
| "type": "FLOAT", | ||
| "linkIds": [ | ||
| 113 | ||
| ], | ||
| "pos": [ | ||
| 1544, | ||
| 204 | ||
| ] | ||
| } | ||
| ], | ||
| "widgets": [], | ||
| "nodes": [ | ||
| { | ||
| "id": 7, | ||
| "type": "DA3Render", | ||
| "pos": [ | ||
| 780, | ||
| 70 | ||
| ], | ||
| "size": [ | ||
| 380, | ||
| 126 | ||
| ], | ||
| "flags": {}, | ||
| "order": 1, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "localized_name": "da3_geometry", | ||
| "name": "da3_geometry", | ||
| "type": "DA3_GEOMETRY", | ||
| "link": 12 | ||
| }, | ||
| { | ||
| "localized_name": "output", | ||
| "name": "output", | ||
| "type": "COMFY_DYNAMICCOMBO_V3", | ||
| "widget": { | ||
| "name": "output" | ||
| }, | ||
| "link": 24 | ||
| }, | ||
| { | ||
| "localized_name": "output.normalization", | ||
| "name": "output.normalization", | ||
| "type": "COMBO", | ||
| "widget": { | ||
| "name": "output.normalization" | ||
| }, | ||
| "link": 25 | ||
| }, | ||
| { | ||
| "localized_name": "output.apply_sky_clip", | ||
| "name": "output.apply_sky_clip", | ||
| "type": "BOOLEAN", | ||
| "widget": { | ||
| "name": "output.apply_sky_clip" | ||
| }, | ||
| "link": 26 | ||
| }, | ||
| { | ||
| "name": "geometry", | ||
| "type": "DA3_GEOMETRY", | ||
| "link": null | ||
| } | ||
| ], | ||
| "outputs": [ | ||
| { | ||
| "localized_name": "IMAGE", | ||
| "name": "IMAGE", | ||
| "type": "IMAGE", | ||
| "slot_index": 0, | ||
| "links": [ | ||
| 7 | ||
| ] | ||
| } | ||
| ], | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.19.0", | ||
| "Node name for S&R": "DA3Render" | ||
| }, | ||
| "widgets_values": [ | ||
| "depth", | ||
| "v2_style", | ||
| false | ||
| ] | ||
| }, | ||
| { | ||
| "id": 5, | ||
| "type": "DA3Inference", | ||
| "pos": [ | ||
| 780, | ||
| -190 | ||
| ], | ||
| "size": [ | ||
| 390, | ||
| 130 | ||
| ], | ||
| "flags": {}, | ||
| "order": 0, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "localized_name": "da3_model", | ||
| "name": "da3_model", | ||
| "type": "DA3_MODEL", | ||
| "link": 107 | ||
| }, | ||
| { | ||
| "localized_name": "image", | ||
| "name": "image", | ||
| "type": "IMAGE", | ||
| "link": 111 | ||
| }, | ||
| { | ||
| "localized_name": "resolution", | ||
| "name": "resolution", | ||
| "type": "INT", | ||
| "widget": { | ||
| "name": "resolution" | ||
| }, | ||
| "link": 22 | ||
| }, | ||
| { | ||
| "localized_name": "resize_method", | ||
| "name": "resize_method", | ||
| "type": "COMBO", | ||
| "widget": { | ||
| "name": "resize_method" | ||
| }, | ||
| "link": 23 | ||
| } | ||
| ], | ||
| "outputs": [ | ||
| { | ||
| "localized_name": "da3_geometry", | ||
| "name": "da3_geometry", | ||
| "type": "DA3_GEOMETRY", | ||
| "slot_index": 0, | ||
| "links": [ | ||
| 12 | ||
| ] | ||
| } | ||
| ], | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.19.0", | ||
| "Node name for S&R": "DA3Inference" | ||
| }, | ||
| "widgets_values": [ | ||
| 504, | ||
| "lower_bound_resize", | ||
| "mono" | ||
| ] | ||
| }, | ||
| { | ||
| "id": 82, | ||
| "type": "LoadDA3Model", | ||
| "pos": [ | ||
| 790, | ||
| -400 | ||
| ], | ||
| "size": [ | ||
| 400, | ||
| 140 | ||
| ], | ||
| "flags": {}, | ||
| "order": 2, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "localized_name": "model_name", | ||
| "name": "model_name", | ||
| "type": "COMBO", | ||
| "widget": { | ||
| "name": "model_name" | ||
| }, | ||
| "link": 106 | ||
| } | ||
| ], | ||
| "outputs": [ | ||
| { | ||
| "localized_name": "DA3_MODEL", | ||
| "name": "DA3_MODEL", | ||
| "type": "DA3_MODEL", | ||
| "links": [ | ||
| 107 | ||
| ] | ||
| } | ||
| ], | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.24.0", | ||
| "Node name for S&R": "LoadDA3Model", | ||
| "models": [ | ||
| { | ||
| "name": "depth_anything_3_mono_large.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_mono_large.safetensors", | ||
| "directory": "geometry_estimation" | ||
| } | ||
| ] | ||
| }, | ||
| "widgets_values": [ | ||
| "depth_anything_3_mono_large.safetensors", | ||
| "default" | ||
| ] | ||
| }, | ||
| { | ||
| "id": 86, | ||
| "type": "GetVideoComponents", | ||
| "pos": [ | ||
| 380, | ||
| 150 | ||
| ], | ||
| "size": [ | ||
| 230, | ||
| 120 | ||
| ], | ||
| "flags": {}, | ||
| "order": 3, | ||
| "mode": 0, | ||
| "inputs": [ | ||
| { | ||
| "localized_name": "video", | ||
| "name": "video", | ||
| "type": "VIDEO", | ||
| "link": 110 | ||
| } | ||
| ], | ||
| "outputs": [ | ||
| { | ||
| "localized_name": "images", | ||
| "name": "images", | ||
| "type": "IMAGE", | ||
| "links": [ | ||
| 111 | ||
| ] | ||
| }, | ||
| { | ||
| "localized_name": "audio", | ||
| "name": "audio", | ||
| "type": "AUDIO", | ||
| "links": [ | ||
| 112 | ||
| ] | ||
| }, | ||
| { | ||
| "localized_name": "fps", | ||
| "name": "fps", | ||
| "type": "FLOAT", | ||
| "links": [ | ||
| 113 | ||
| ] | ||
| } | ||
| ], | ||
| "properties": { | ||
| "cnr_id": "comfy-core", | ||
| "ver": "0.24.0", | ||
| "Node name for S&R": "GetVideoComponents" | ||
| }, | ||
| "widgets_values": [] | ||
| } | ||
| ], | ||
| "groups": [], | ||
| "links": [ | ||
| { | ||
| "id": 12, | ||
| "origin_id": 5, | ||
| "origin_slot": 0, | ||
| "target_id": 7, | ||
| "target_slot": 0, | ||
| "type": "DA3_GEOMETRY" | ||
| }, | ||
| { | ||
| "id": 7, | ||
| "origin_id": 7, | ||
| "origin_slot": 0, | ||
| "target_id": -20, | ||
| "target_slot": 0, | ||
| "type": "IMAGE" | ||
| }, | ||
| { | ||
| "id": 22, | ||
| "origin_id": -10, | ||
| "origin_slot": 0, | ||
| "target_id": 5, | ||
| "target_slot": 2, | ||
| "type": "INT" | ||
| }, | ||
| { | ||
| "id": 23, | ||
| "origin_id": -10, | ||
| "origin_slot": 1, | ||
| "target_id": 5, | ||
| "target_slot": 3, | ||
| "type": "COMBO" | ||
| }, | ||
| { | ||
| "id": 24, | ||
| "origin_id": -10, | ||
| "origin_slot": 2, | ||
| "target_id": 7, | ||
| "target_slot": 1, | ||
| "type": "COMFY_DYNAMICCOMBO_V3" | ||
| }, | ||
| { | ||
| "id": 25, | ||
| "origin_id": -10, | ||
| "origin_slot": 3, | ||
| "target_id": 7, | ||
| "target_slot": 2, | ||
| "type": "COMBO" | ||
| }, | ||
| { | ||
| "id": 26, | ||
| "origin_id": -10, | ||
| "origin_slot": 4, | ||
| "target_id": 7, | ||
| "target_slot": 3, | ||
| "type": "BOOLEAN" | ||
| }, | ||
| { | ||
| "id": 106, | ||
| "origin_id": -10, | ||
| "origin_slot": 5, | ||
| "target_id": 82, | ||
| "target_slot": 0, | ||
| "type": "COMBO" | ||
| }, | ||
| { | ||
| "id": 107, | ||
| "origin_id": 82, | ||
| "origin_slot": 0, | ||
| "target_id": 5, | ||
| "target_slot": 0, | ||
| "type": "DA3_MODEL" | ||
| }, | ||
| { | ||
| "id": 110, | ||
| "origin_id": -10, | ||
| "origin_slot": 6, | ||
| "target_id": 86, | ||
| "target_slot": 0, | ||
| "type": "VIDEO" | ||
| }, | ||
| { | ||
| "id": 111, | ||
| "origin_id": 86, | ||
| "origin_slot": 0, | ||
| "target_id": 5, | ||
| "target_slot": 1, | ||
| "type": "IMAGE" | ||
| }, | ||
| { | ||
| "id": 112, | ||
| "origin_id": 86, | ||
| "origin_slot": 1, | ||
| "target_id": -20, | ||
| "target_slot": 1, | ||
| "type": "AUDIO" | ||
| }, | ||
| { | ||
| "id": 113, | ||
| "origin_id": 86, | ||
| "origin_slot": 2, | ||
| "target_id": -20, | ||
| "target_slot": 2, | ||
| "type": "FLOAT" | ||
| } | ||
| ], | ||
| "extra": {} | ||
| } | ||
| ] | ||
| }, | ||
| "config": {}, | ||
| "extra": { | ||
| "ds": { | ||
| "scale": 0.6830134553650705, | ||
| "offset": [ | ||
| 532.010608439562, | ||
| 553.4384332508414 | ||
| ] | ||
| }, | ||
| "frontendVersion": "1.45.15", | ||
| "workflowRendererVersion": "LG", | ||
| "VHS_latentpreview": false, | ||
| "VHS_latentpreviewrate": 0, | ||
| "VHS_MetadataImage": true, | ||
| "VHS_KeepIntermediate": true | ||
| }, | ||
| "version": 0.4 | ||
| } No newline at end of file |
There was a problem hiding this comment.
Description says "image" but workflow takes video—quite a mix-up in the input grip!
The i18n description (from context snippet) states "Upload 1 image to generate a depth map for video depth estimation", but this workflow uses a LoadVideo node (line 161) that expects video input, not a single image. The description should be corrected to say "Upload 1 video" to match the actual workflow input type.
🧰 Tools
🪛 OpenGrep (1.22.0)
[ERROR] 892-892: Possible credit card number (PAN) detected in source code. Credit card numbers should never be hardcoded or stored in source files. Use a secrets manager or tokenization service instead.
(coderabbit.pii.credit-card-number)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@templates/utility_depth_anything3_video_depth_estimation.json` around lines 1
- 903, The Markdown note titled "About: Depth Anything 3 Video" (node id 84)
currently tells users to "Upload 1 image" but the workflow uses a LoadVideo node
(node id 87) and expects a video input; update the Markdown text to say "Upload
1 video" (and any nearby phrasing referencing an image input) to match the
workflow, and also fix the LoadVideo node's widget value (node id 87,
widgets_values second entry) from "image" to "video" so UI hints and node
settings are consistent.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check if the thumbnail file exists in the templates directory
fd -t f "utility_depth_anything3_video_depth_estimation.*\.webp$" templates/Repository: Comfy-Org/workflow_templates
Length of output: 200
🏁 Script executed:
#!/bin/bash
set -euo pipefail
FILE="templates/utility_depth_anything3_video_depth_estimation.json"
echo "== Thumbnail reference check (-1.webp) =="
rg -n --fixed-strings "utility_depth_anything3_video_depth_estimation-1.webp" "$FILE" || true
rg -n --fixed-strings ".webp" "$FILE" || true
echo
echo "== SHA256 presence check =="
rg -n --ignore-case "sha256" "$FILE" || true
echo
echo "== Embedded model metadata (properties.models) check =="
rg -n "\"models\"" "$FILE" || true
python3 - <<'PY'
import json,sys
path="templates/utility_depth_anything3_video_depth_estimation.json"
with open(path,'r',encoding='utf-8') as f:
data=json.load(f)
def walk(obj, path=""):
if isinstance(obj, dict):
for k,v in obj.items():
p=f"{path}/{k}" if path else k
if k=="models" and isinstance(v,list):
print("Found models list at", path)
for i,m in enumerate(v):
if isinstance(m,dict):
keys=list(m.keys())
print(f" models[{i}] keys={keys}")
walk(v, p)
elif isinstance(obj, list):
for i,v in enumerate(obj):
walk(v, f"{path}[{i}]")
walk(data)
PY
echo
echo "== i18n description wording check =="
# try common locations; avoid huge output by limiting matches
if [ -f "scripts/i18n.json" ]; then
rg -n --fixed-strings "Upload 1 image" scripts/i18n.json | head -n 20 || true
rg -n --fixed-strings "depth_anything_3_video" scripts/i18n.json | head -n 50 || true
fi
if [ -f "i18n.json" ]; then
rg -n --fixed-strings "Upload 1 image" i18n.json | head -n 20 || true
fiRepository: Comfy-Org/workflow_templates
Length of output: 5552
Fix template metadata: add SHA256 hashes, wire in the -1.webp thumbnail, and correct the i18n text
templates/utility_depth_anything3_video_depth_estimation.jsonhas no reference toutility_depth_anything3_video_depth_estimation-1.webp(even though the file exists), so the template has no thumbnail “breadcrumbs”—UI time, not ghost time.templates/utility_depth_anything3_video_depth_estimation.jsonincludesproperties.models[]entries withname/url/directorybut nosha256(coding guideline requires SHA256 hashes).scripts/i18n.jsontext says “Upload 1 image…” while this workflow usesLoadVideo/CreateVideo(video input), making the description misleading.
🧰 Tools
🪛 OpenGrep (1.22.0)
[ERROR] 892-892: Possible credit card number (PAN) detected in source code. Credit card numbers should never be hardcoded or stored in source files. Use a secrets manager or tokenization service instead.
(coderabbit.pii.credit-card-number)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@templates/utility_depth_anything3_video_depth_estimation.json` around lines 1
- 903, The template is missing thumbnail wiring, model SHA256s, and has wrong
i18n text: add a reference to
utility_depth_anything3_video_depth_estimation-1.webp in the template metadata
so the UI shows the thumbnail breadcrumbs, add a sha256 field to each entry in
the LoadDA3Model properties.models array (node id 82 / "LoadDA3Model") with the
correct SHA256 checksums for those safetensors, and update the i18n string in
scripts/i18n.json that currently reads "Upload 1 image…" to a video-appropriate
phrase like "Upload a video…" (or similar) so the description matches
LoadVideo/CreateVideo usage. Ensure you modify the template's top-level metadata
section the UI reads for thumbnails and the specific properties.models objects
rather than adding new duplicate model entries.
Source: Coding guidelines
| "models": [ | ||
| { | ||
| "name": "depth_anything_3_mono_large.safetensors", | ||
| "url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_mono_large.safetensors", | ||
| "directory": "geometry_estimation" | ||
| } | ||
| ] |
There was a problem hiding this comment.
Add SHA256 hash to model metadata for depth perception protection.
The properties.models[] entry includes name, url, and directory, but is missing the required sha256 field. As per coding guidelines, workflow JSON files must include SHA256 hashes in embedded model metadata to ensure download integrity and security verification.
🔐 Proposed fix
"properties.models": [
{
"name": "depth_anything_3_mono_large.safetensors",
"url": "https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_mono_large.safetensors",
- "directory": "geometry_estimation"
+ "directory": "geometry_estimation",
+ "sha256": "<add_the_actual_sha256_hash_here>"
}
]As per coding guidelines: "Workflow JSON files must follow standard ComfyUI workflow format with embedded model metadata in properties.models[] including download URLs and SHA256 hashes".
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@templates/utility_depth_anything3_video_depth_estimation.json` around lines
706 - 712, The model metadata entry in properties.models[] is missing the
required sha256 field; update the model object (the entry with name
"depth_anything_3_mono_large.safetensors" and url
"https://huggingface.co/Comfy-Org/Depth-Anything-3/resolve/main/geometry_estimation/depth_anything_3_mono_large.safetensors")
to include a sha256 property containing the SHA-256 checksum of the file,
keeping the existing name/url/directory keys intact and formatted the same way
as other models in properties.models[] so the workflow JSON follows the standard
ComfyUI model metadata schema.
Source: Coding guidelines
Created via ComfyUI Template Manager
There was a problem hiding this comment.
Actionable comments posted: 10
♻️ Duplicate comments (1)
scripts/i18n.json (1)
4600-4612:⚠️ Potential issue | 🟠 Major | ⚡ Quick winRemove unsupported
falocale to keep the 11-language contract in tune (no extra verse).Line 4611 adds
fatomissing_languages, and the same locale is also added in content maps at Line 20947 and Line 20961. The declared supported locale set is 11 languages and does not includefa, so this introduces scope drift between localization metadata and template locale policy.As per coding guidelines, “Support 11 languages in templates: en (default), zh, zh-TW, ja, ko, es, fr, ru, tr, ar, pt-BR; maintain corresponding
index.{locale}.jsonfiles for each locale”.Proposed minimal diff
@@ - "pt-BR", - "fa" + "pt-BR" @@ - "pt-BR": "Bernini-R: Video Editing", - "fa": "Bernini-R: Video Editing" + "pt-BR": "Bernini-R: Video Editing" @@ - "pt-BR": "Generate an edited video with consistent relighting using Bernini-R. Ideal for portrait and product relighting, e-commerce catalog photography, and creating consistent lighting across photo sets.", - "fa": "Generate an edited video with consistent relighting using Bernini-R. Ideal for portrait and product relighting, e-commerce catalog photography, and creating consistent lighting across photo sets." + "pt-BR": "Generate an edited video with consistent relighting using Bernini-R. Ideal for portrait and product relighting, e-commerce catalog photography, and creating consistent lighting across photo sets."🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@scripts/i18n.json` around lines 4600 - 4612, The `fa` (Farsi) locale is being added to the `missing_languages` array in the diff, but it is not part of the 11-language contract supported by the project (en, zh, zh-TW, ja, ko, es, fr, ru, tr, ar, pt-BR). Remove `fa` from the `missing_languages` array in scripts/i18n.json, and also remove `fa` from the content maps at the other locations referenced in the comment, to maintain consistency between the localization metadata and the template locale policy.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@templates/index.ar.json`:
- Around line 8415-8417: The Bernini-R template entry in templates/index.ar.json
at lines 8415-8417 has English text for the "title" and "description" fields,
which breaks consistency with the Arabic locale. Translate the "title" field
"Bernini-R: Video Editing" and the entire "description" field about video
editing and relighting to Arabic, ensuring the localized content maintains the
same meaning and context for Arabic-speaking users. The "mediaType" field should
remain unchanged as it is a technical value, not user-facing text.
In `@templates/index.es.json`:
- Around line 8415-8416: The title and description fields for the Bernini-R:
Video Editing entry in index.es.json are currently in English, but this file is
the Spanish locale version and must maintain Spanish translations throughout.
Translate both the title "Bernini-R: Video Editing" and the full description
text about video editing, relighting, portraiture, and e-commerce catalog
photography into Spanish to ensure consistent localization and avoid
mixed-language user experience.
In `@templates/index.fa.json`:
- Around line 8415-8416: The "title" and "description" fields for the Bernini-R
entry in templates/index.fa.json at lines 8415-8416 are in English but should be
translated to Persian (فارسی) to maintain consistent localization throughout the
Persian locale file. Translate both the title "Bernini-R: Video Editing" and the
complete description text into Persian to ensure the UI displays entirely in the
correct language for Persian-speaking users.
In `@templates/index.ja.json`:
- Around line 8417-8439: The index entry for the video_bernini_r_video_editing
template declares mediaType as image with a LoadImage input node, but the actual
workflow contains LoadVideo and SaveVideo nodes representing a genuine video
editing path. Update the entries in both templates/index.json and
templates/index.ja.json for this template to change mediaType from "image" to
"video" and update the io section to include sample inputs/outputs that reflect
the LoadVideo input node (node 47) and SaveVideo output node (node 46) instead
of the current LoadImage node, ensuring the index metadata accurately represents
the video editing workflow.
In `@templates/index.json`:
- Around line 8416-8439: The template metadata describes a video editing
workflow for consistent relighting, but the io section defines only an image
input (LoadImage node) with empty outputs, creating a mismatch between the
template's purpose and its IO contract. Align the inputs and outputs in the io
section to match the template's actual purpose: either add appropriate video
input and output definitions if this is truly a video editing template, or
update the description and tags to reflect that this is an image processing
template. Ensure the mediaType, inputs array, and outputs array are consistent
with what the template actually produces.
In `@templates/index.ko.json`:
- Around line 8415-8416: The Bernini-R template entry in the Korean locale file
contains English text in the "title" and "description" fields instead of Korean
translations. Replace the English "title" value "Bernini-R: Video Editing" and
the English "description" value about video editing and relighting with their
appropriate Korean translations to maintain consistency with the locale
requirements for the KO index file.
In `@templates/index.pt-BR.json`:
- Around line 8415-8416: The Bernini-R template entry in
templates/index.pt-BR.json contains English text for both the "title" field
(currently "Bernini-R: Video Editing") and the "description" field at lines
8415-8416, which breaks locale consistency in the Portuguese-Brazilian catalog
file. Translate both of these string values into Portuguese-Brazilian while
preserving all other JSON structure and field names. Ensure the translated title
maintains the product name "Bernini-R" as part of the translation and that the
description accurately conveys the functionality of video editing with
relighting capabilities in Portuguese-Brazilian.
In `@templates/index.ru.json`:
- Around line 8415-8416: The title and description fields in the Bernini-R entry
within the Russian localization file contain English text instead of Russian
translations, causing mixed-language UI in the Russian catalog. Translate both
the title "Bernini-R: Video Editing" and the description text about video
editing and relighting into Russian to maintain consistency with the rest of the
Russian index file and comply with the localization guidelines for all supported
languages.
In `@templates/index.tr.json`:
- Around line 8415-8416: The Bernini-R template in the Turkish locale file
(templates/index.tr.json) contains English text for the title and description
fields instead of Turkish translations. Replace the English "title" value
"Bernini-R: Video Editing" with its Turkish translation, and replace the English
"description" value describing video editing and relighting with its
corresponding Turkish translation to maintain locale consistency for Turkish
users.
In `@templates/index.zh.json`:
- Around line 8415-8416: The Chinese locale template file contains English-only
title and description text for the Bernini-R: Video Editing template entry,
which creates a mixed-locale user experience in the zh catalog. Translate both
the title "Bernini-R: Video Editing" and its corresponding description text from
English to Chinese to maintain consistent localization as per the supported 11
languages guideline for template files.
---
Duplicate comments:
In `@scripts/i18n.json`:
- Around line 4600-4612: The `fa` (Farsi) locale is being added to the
`missing_languages` array in the diff, but it is not part of the 11-language
contract supported by the project (en, zh, zh-TW, ja, ko, es, fr, ru, tr, ar,
pt-BR). Remove `fa` from the `missing_languages` array in scripts/i18n.json, and
also remove `fa` from the content maps at the other locations referenced in the
comment, to maintain consistency between the localization metadata and the
template locale policy.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: af48692d-bade-4ef8-ab5c-26ce3d0b1983
📒 Files selected for processing (16)
bundles.jsonscripts/i18n.jsontemplates/index.ar.jsontemplates/index.es.jsontemplates/index.fa.jsontemplates/index.fr.jsontemplates/index.ja.jsontemplates/index.jsontemplates/index.ko.jsontemplates/index.pt-BR.jsontemplates/index.ru.jsontemplates/index.tr.jsontemplates/index.zh-TW.jsontemplates/index.zh.jsontemplates/video_bernini_r_video_editing-1.webptemplates/video_bernini_r_video_editing.json
| "mediaType": "image", | ||
| "mediaSubtype": "webp", | ||
| "tags": ["動画編集"], | ||
| "models": ["Bernini-R"], | ||
| "requiresCustomNodes": ["was-node-suite-comfyui"], | ||
| "date": "2026-06-14", | ||
| "openSource": true, | ||
| "size": 38762079846, | ||
| "vram": 38762079846, | ||
| "usage": 0, | ||
| "searchRank": 0, | ||
| "username": "ComfyUI", | ||
| "io": { | ||
| "inputs": [ | ||
| { | ||
| "nodeId": 104, | ||
| "nodeType": "LoadImage", | ||
| "file": "example.png", | ||
| "mediaType": "image" | ||
| } | ||
| ], | ||
| "outputs": [] | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify Bernini-R template IO contract across index and workflow files (read-only).
set -euo pipefail
echo "== Locate Bernini-R workflow file(s) =="
fd -i "bernini" templates
echo
echo "== Inspect index registrations for Bernini-R =="
jq '.. | objects | select(has("name") and .name=="video_bernini_r_video_editing")' \
templates/index.json templates/index.ja.json 2>/dev/null
echo
echo "== If workflow file exists, inspect node IO types =="
WF="$(fd -i "video_bernini_r_video_editing.json" templates | head -n1 || true)"
if [ -n "${WF:-}" ]; then
echo "Workflow file: $WF"
jq '
{
load_nodes: [ .nodes[]? | select(.type|test("Load(Video|Image)$")) | {id, type} ],
save_nodes: [ .nodes[]? | select(.type|test("Save(Video|Image)$")) | {id, type} ]
}' "$WF"
else
echo "Workflow JSON not found in provided checkout."
fiRepository: Comfy-Org/workflow_templates
Length of output: 2212
Index IO metadata for video-editing template needs alignment with workflow nodes.
The index entry declares this as an image input template ("mediaType": "image", LoadImage node), with zero sample outputs. However, the actual workflow file contains LoadVideo (node 47), LoadImage (node 104), and SaveVideo (node 46) nodes—a genuine video input/output path that the index refuses to reflect. That's a data contract mismatch that'll make Template Manager wiring misleading—a video edit that reads as image-only won't hit the right note.
Update templates/index.json and templates/index.ja.json entries for video_bernini_r_video_editing to declare "mediaType": "video" with sample input/output reflecting the LoadVideo and SaveVideo nodes, or adjust the workflow if it's truly image-driven.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@templates/index.ja.json` around lines 8417 - 8439, The index entry for the
video_bernini_r_video_editing template declares mediaType as image with a
LoadImage input node, but the actual workflow contains LoadVideo and SaveVideo
nodes representing a genuine video editing path. Update the entries in both
templates/index.json and templates/index.ja.json for this template to change
mediaType from "image" to "video" and update the io section to include sample
inputs/outputs that reflect the LoadVideo input node (node 47) and SaveVideo
output node (node 46) instead of the current LoadImage node, ensuring the index
metadata accurately represents the video editing workflow.
| "description": "Generate an edited video with consistent relighting using Bernini-R. Ideal for portrait and product relighting, e-commerce catalog photography, and creating consistent lighting across photo sets.", | ||
| "mediaType": "image", | ||
| "mediaSubtype": "webp", | ||
| "tags": ["Video Edit"], | ||
| "models": ["Bernini-R"], | ||
| "requiresCustomNodes": ["was-node-suite-comfyui"], | ||
| "date": "2026-06-14", | ||
| "openSource": true, | ||
| "size": 38762079846, | ||
| "vram": 38762079846, | ||
| "usage": 0, | ||
| "searchRank": 0, | ||
| "username": "ComfyUI", | ||
| "io": { | ||
| "inputs": [ | ||
| { | ||
| "nodeId": 104, | ||
| "nodeType": "LoadImage", | ||
| "file": "example.png", | ||
| "mediaType": "image" | ||
| } | ||
| ], | ||
| "outputs": [] | ||
| } |
There was a problem hiding this comment.
Video template metadata and IO contract are out of sync.
This entry says “video editing” but defines an image input and no outputs. That mismatch will misroute users in the UI—same beat, wrong street.
🔧 Proposed fix
{
"name": "video_bernini_r_video_editing",
"title": "Bernini-R: Video Editing",
"description": "Generate an edited video with consistent relighting using Bernini-R. Ideal for portrait and product relighting, e-commerce catalog photography, and creating consistent lighting across photo sets.",
"mediaType": "image",
"mediaSubtype": "webp",
@@
"io": {
"inputs": [
{
"nodeId": 104,
- "nodeType": "LoadImage",
- "file": "example.png",
- "mediaType": "image"
+ "nodeType": "LoadVideo",
+ "file": "example.mp4",
+ "mediaType": "video"
}
],
- "outputs": []
+ "outputs": [
+ {
+ "nodeId": 200,
+ "nodeType": "SaveVideo",
+ "file": "video_bernini_r_video_editing.mp4",
+ "mediaType": "video"
+ }
+ ]
}
},🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@templates/index.json` around lines 8416 - 8439, The template metadata
describes a video editing workflow for consistent relighting, but the io section
defines only an image input (LoadImage node) with empty outputs, creating a
mismatch between the template's purpose and its IO contract. Align the inputs
and outputs in the io section to match the template's actual purpose: either add
appropriate video input and output definitions if this is truly a video editing
template, or update the description and tags to reflect that this is an image
processing template. Ensure the mediaType, inputs array, and outputs array are
consistent with what the template actually produces.
Created via ComfyUI Template Manager
Updated via ComfyUI Template Manager
Updated via ComfyUI Template Manager
Updated via ComfyUI Template Manager
Created via ComfyUI Template Manager
Created via ComfyUI Template Manager
Created via ComfyUI Template Manager
Created via ComfyUI Template Manager
Updated via Translation Manager
Included new entries for Bernini, Aleph, and various related terms to enhance the wordlist for better recognition in workflows.
- Added multiple new input files including images and videos to the workflow template. - Introduced new templates for video processing and depth estimation, enhancing functionality for users. - Updated existing templates with additional input nodes for improved workflow integration.
- Added the term 'gothic' to the existing wordlist to enhance recognition in workflows.
Changes Summary
✨ New Templates (1)
utility_depth_anything3_image_depth_estimationDetails
This PR contains updates to the ComfyUI workflow templates.
📝 Created via ComfyUI Template Manager
Branch:
template-update-20260612-131543Repository:
comfyui-wiki/workflow_templates📊 View changes in Template Manager: http://localhost:3000/?pr=938