Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThis pull request adds numerous ComfyUI blueprint JSON files (including Crop Images 2x2, Crop Images 3x3, multiple Image Edit and Image Inpainting/Outpainting variants, and several Text-to-Image workflows such as Flux, Krea, NetaYume, and Qwen variants). It also updates existing blueprints: several subgraph names had a leading "local-" removed, trailing newlines were trimmed, the Depth-to-Image/Video name fields were adjusted, and the Image to Layers blueprint received metadata/node/link/layout updates (IDs, widget proxies, and link mappings). New blueprints expose subgraph inputs/outputs and include full node/link definitions and metadata. 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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: 7
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@blueprints/Crop` Images 2x2.json:
- Around line 283-285: The current crop split logic uses INT(a/b) for both tile
sizes and offsets (seen in the widget expressions like "a/b"), which truncates
odd dimensions and can produce zero-size tiles; change it so the first tile uses
floor(dim/2) (or INT(dim/2)) but compute the right/bottom tile size as remainder
(dim - first_tile) and set offsets to 0 and first_tile, and clamp sizes to at
least 1 to avoid zero-size crops; update the corresponding expressions where
INT(a/b) is used for both size and offset (including the other occurrences
mentioned) to this remainder-based approach.
In `@blueprints/Crop` Images 3x3.json:
- Around line 384-386: Replace the truncated-third expressions ("a/b" and "2*a")
used to derive crop coordinates with explicit boundary computation from the
original image dimensions: compute x0=0, x1=Math.floor(W/3), x2=x1*2, and set
tile widths as w0=x1-x0, w1=x2-x1, w2=W-x2 (and similarly y0=0,
y1=Math.floor(H/3), y2=y1*2 with heights h0,h1,h2 by difference) so every pixel
is covered; update the code that emits the "widgets_values" (the places using
"a/b") to use these computed x/y boundaries and widths/heights, and apply the
same change to the other occurrences noted (lines referenced in the comment).
In `@blueprints/Image` Edit (FireRed Image Edit 1.1).json:
- Around line 858-866: The "outputs" array for the Switch (Steps) node contains
a nonexistent link id 344 alongside the valid 345, making the blueprint
inconsistent; remove the invalid id 344 from the outputs list so it only
references 345 (i.e., edit the outputs entry that currently lists [344, 345] and
change it to [345]) to restore correct graph wiring for the Switch (Steps)
output.
In `@blueprints/Image` Edit (LongCat Image Edit).json:
- Around line 268-276: The outputs entry for the IMAGE output contains a
duplicated link id in the linkIds array (the object with "id":
"0a288e93-c03f-4805-80f3-4e320a6a492e", "name": "IMAGE"); remove the repeated 20
so linkIds only includes a single 20 and ensure any serializer or exporter for
outputs deduplicates link IDs to prevent stale connection metadata from being
saved.
In `@blueprints/Text` to Image (Qwen-Image 2512).json:
- Around line 1225-1233: Remove the stray edge 347 from the turbo-steps path so
the 4-step value is only driven by the Switch (steps) link 371: delete the "347"
entry from the outputs/links arrays where present and remove any routing that
connects link 347 into KSampler.seed, leaving only link 371 feeding
KSampler.seed; ensure no other metadata still references link 347 in the
turbo-steps/Switch (steps)/KSampler.seed wiring.
In `@blueprints/Text` to Image (Qwen-Image).json:
- Around line 1419-1422: The "Original Settings" branch's non-turbo path
currently sets "widgets_values": [20, "fixed"] but the note says original
Qwen-Image uses 50 steps; update the blueprint so the non-turbo branch uses 50
steps instead of 20 (change the "widgets_values" array from 20 to 50) in both
occurrences (the one shown and the duplicate referenced) so disabling turbo
produces the documented baseline; look for the "Original Settings" branch and
the "widgets_values" arrays to make the edits.
- Around line 87-95: The exported boolean input for enable_turbo_mode is
currently using name: "value" which exposes the wrong key downstream; update the
JSON entries where label is "enable_turbo_mode" (the object with "type":
"BOOLEAN" and its "widget" sub-object) to set both "name" fields to
"enable_turbo_mode" instead of "value" so the input is exported under the
correct key; ensure you change both occurrences referenced in the diff (the
top-level "name" and the nested "widget"."name") and repeat the same fix for the
second block around lines 297–309.
🪄 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: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 9177f79e-0e61-4ebe-8a2a-450f0239014c
📒 Files selected for processing (18)
blueprints/Crop Images 2x2.jsonblueprints/Crop Images 3x3.jsonblueprints/Depth to Image (Z-Image-Turbo).jsonblueprints/Depth to Video (ltx 2.0).jsonblueprints/First-Last-Frame to Video (LTX-2.3).jsonblueprints/Image Edit (FireRed Image Edit 1.1).jsonblueprints/Image Edit (Flux.2 Klein 4B).jsonblueprints/Image Edit (LongCat Image Edit).jsonblueprints/Image Inpainting (Flux.1 Fill Dev).jsonblueprints/Image Inpainting (Qwen-image).jsonblueprints/Image Outpainting (Qwen-Image).jsonblueprints/Image to Video (LTX-2.3).jsonblueprints/Text to Image (Flux.1 Dev).jsonblueprints/Text to Image (Flux.1 Krea Dev).jsonblueprints/Text to Image (NetaYume Lumina).jsonblueprints/Text to Image (Qwen-Image 2512).jsonblueprints/Text to Image (Qwen-Image).jsonblueprints/Text to Video (LTX-2.3).json
| "outputs": [ | ||
| { | ||
| "localized_name": "INT", | ||
| "name": "INT", | ||
| "type": "INT", | ||
| "links": [ | ||
| 347, | ||
| 354 | ||
| ] |
There was a problem hiding this comment.
Remove the stray 347 edge from the turbo-steps path.
Lines 1225-1233 still advertise link 347, and Lines 1789-1795 route it into KSampler.seed even though seed is already driven by link 371. That leaves the blueprint with conflicting edge metadata and can produce broken or misleading wiring after load/save. Keep the 4-step value flowing only through Switch (steps).
🛠️ Suggested cleanup
@@
{
"localized_name": "INT",
"name": "INT",
"type": "INT",
"links": [
- 347,
354
]
}
@@
- {
- "id": 347,
- "origin_id": 257,
- "origin_slot": 0,
- "target_id": 253,
- "target_slot": 4,
- "type": "INT"
- },Also applies to: 1789-1795
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@blueprints/Text` to Image (Qwen-Image 2512).json around lines 1225 - 1233,
Remove the stray edge 347 from the turbo-steps path so the 4-step value is only
driven by the Switch (steps) link 371: delete the "347" entry from the
outputs/links arrays where present and remove any routing that connects link 347
into KSampler.seed, leaving only link 371 feeding KSampler.seed; ensure no other
metadata still references link 347 in the turbo-steps/Switch
(steps)/KSampler.seed wiring.
| { | ||
| "label": "enable_turbo_mode", | ||
| "name": "value", | ||
| "type": "BOOLEAN", | ||
| "widget": { | ||
| "name": "value" | ||
| }, | ||
| "link": null | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
In ComfyUI subgraph/workflow JSON, is an exported input identified downstream by its namefield or itslabelfield? For a BOOLEAN input withname: "value"andlabel: "enable_turbo_mode", which identifier is exposed to other workflows and API consumers?
💡 Result:
In ComfyUI subgraph/workflow JSON, exported inputs are identified downstream by their name field, not the label field. The name serves as the canonical/internal identifier used for connections, API prompts, and external interfaces, while label is for UI display only. For a BOOLEAN input with name: "value" and label: "enable_turbo_mode", the identifier exposed to other workflows (via links/connections) and API consumers (in the prompt JSON as node_id.inputs.value) is "value". This is evidenced by ComfyUI workflow JSON schema where node inputs use "name" for identification (docs.comfy.org/specs/workflow_json), node definition JSON using "name" for inputs (docs.comfy.org/specs/nodedef_json), and GitHub issues confirming that renaming updates label but external interface uses original/canonical name like "value" or "positive" (github.com/Comfy-Org/ComfyUI_frontend/issues/7832). In older versions, custom labels didn't propagate; even when fixed for display, the programmatic identifier remains the name.
Citations:
- 1: Subgraph input parameter names ignore custom names set inside subgraph ComfyUI_frontend#7832
- 2: https://docs.comfy.org/specs/nodedef_json
- 3: https://docs.comfy.org/specs/workflow_json
- 4: https://github.com/Comfy-Org/workflow_templates/blob/main/docs/BLUEPRINTS.md
Rename the exported boolean input from value to enable_turbo_mode.
The input is exposed downstream with name: "value" rather than the intended enable_turbo_mode. Update the name field in both locations (lines 87–95 and 297–309) to match the label.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@blueprints/Text` to Image (Qwen-Image).json around lines 87 - 95, The
exported boolean input for enable_turbo_mode is currently using name: "value"
which exposes the wrong key downstream; update the JSON entries where label is
"enable_turbo_mode" (the object with "type": "BOOLEAN" and its "widget"
sub-object) to set both "name" fields to "enable_turbo_mode" instead of "value"
so the input is exported under the correct key; ensure you change both
occurrences referenced in the diff (the top-level "name" and the nested
"widget"."name") and repeat the same fix for the second block around lines
297–309.
| "widgets_values": [ | ||
| 20, | ||
| "fixed" | ||
| ] |
There was a problem hiding this comment.
The “Original Settings” branch doesn’t match the note.
The non-turbo path still feeds 20 steps, but the note says the original Qwen-Image setting is 50 steps. As written, disabling turbo mode does not produce the documented baseline unless the user edits the blueprint manually.
Also applies to: 1549-1550
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@blueprints/Text` to Image (Qwen-Image).json around lines 1419 - 1422, The
"Original Settings" branch's non-turbo path currently sets "widgets_values":
[20, "fixed"] but the note says original Qwen-Image uses 50 steps; update the
blueprint so the non-turbo branch uses 50 steps instead of 20 (change the
"widgets_values" array from 20 to 50) in both occurrences (the one shown and the
duplicate referenced) so disabling turbo produces the documented baseline; look
for the "Original Settings" branch and the "widgets_values" arrays to make the
edits.
Made-with: Cursor
Made-with: Cursor
Summary
This PR adds a collection of new subgraph blueprints and fixes a naming issue in existing ones.
New Blueprints Added
Text to Image
Image Editing & Inpainting
Image to Video / First-Last-Frame
Image Processing
Bug Fix
localtag prefix from subgraph names in 5 existing blueprints (Depth to Image, Depth to Video, Image Edit Flux.2 Klein, Image Inpainting Qwen, Image Outpainting Qwen) to fix incorrect naming.