UI→API conversion drops a promoted subgraph value that feeds a non-widget input (Qwen Image 2.1 t2i loses its prompt)

Đang mở
#974 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@allenflux đang làm issue này rồi.

Từ ngày 20/10/2026.

  • #1039 của @allenflux — đang mở

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
68/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python
Lĩnh vực
cli

Hướng nghiên cứu

Start in workflow_to_api.py, especially _overlay_promoted_host_values, and trace how it uses cql.promoted.boundary_widget_targets and _boundary_targets. Reproduce with the supplied workflow and object-info inputs, then check that the converted ComfySwitchNode receives the promoted prompt on on_false when the prompt-rewrite switch is off. Done means the API output preserves the prompt for that socket as the ComfyUI frontend does.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Versions: comfy-cli 1.22.0 (PyPI); same logic on main at 09cfceb. ComfyUI 0.38.0, comfyui-workflow-templates 0.11.76.

What happens: converting the stock image_qwen_image_2_1_t2i template (as comfy run / comfy-mcp's run_workflow do) produces a ComfySwitchNode with no on_false input:

import json
from comfy_cli.workflow_to_api import convert_ui_to_api
wf = json.load(open("image_qwen_image_2_1_t2i.json"))   # GET /templates/image_qwen_image_2_1_t2i.json
oi = json.load(open("object_info.json"))                 # GET /object_info
api = convert_ui_to_api(wf, oi)
print(api["459:474"]["inputs"])
# {'switch': 'False', 'on_true': ['459:471', 0]}   <- on_false missing

In the template, subgraph input prompt (linkIds 684, 711) feeds TextGenerate.prompt (a widget, 711) and ComfySwitchNode.on_false (a plain socket, 684). With the prompt-rewrite switch off (the template default), the switch returns nothing, TextEncodeQwenImage21 encodes an empty prompt, and the image ignores the prompt entirely.

Expected: on_false receives the promoted host value (the prompt string), as the ComfyUI frontend does.

Cause: workflow_to_api._overlay_promoted_host_values writes the host value only to targets returned by cql.promoted.boundary_widget_targets → _boundary_targets, which keeps a target only when its input entry has a widget marker. A promoted widget value that also fans out to a socket-only input is never written there, and the expansion leaves that input unlinked.

Workaround we use: route such inputs through a Primitive node inside the subgraph (-10 → PrimitiveStringMultiline.value → original socket), so the value lands on a widget.

Ngôn ngữ chính
Python
Star
1k
Fork
176
Merge trung bình
1 ngày 11 giờ
Pull request đã merge (30 ngày)
87

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Comfy-Org/comfy-cli

Tất cả issue của Comfy-Org/comfy-cli

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.