ComfyUI/tests-unit/comfy_api_test
Jedrzej Kosinski cca4119fdf DynamicOutputs: tighter integration with DynamicCombo / DynamicSlot via FromInput
Lets dynamic-input nodes co-declare per-option outputs so the option list is a
single source of truth for both inputs and outputs.

* DynamicCombo.Option / DynamicSlot.Option gain an optional outputs=[...] list.
* DynamicOutputs.FromInput(input_id) is a positional placeholder in outputs[]
  that resolves to the referenced input's active-option outputs at finalize
  time. DynamicCombo selects by literal value; DynamicSlot selects by the
  upstream slot's resolved type (or when=None when unlinked).
* get_finalized_class_outputs gains schema_inputs / live_input_types and the
  TypeResolver / execute() compute live_input_types only when at least one
  FromInput → DynamicSlot is present.
* Schema.validate(): FromInput must reference an existing DynamicCombo /
  DynamicSlot input, each input may be referenced at most once, and option
  output ids stay globally unique.
* V1 info synthesizes the dynamic_outputs entry as kind='by_key' for combos
  and kind='by_slot' for slots, inlining the option outputs.

Tests: combo + slot FromInput finalization, FromInput validation (missing /
duplicate / id collision), and TypeResolver end-to-end picks for both kinds.

Amp-Thread-ID: https://ampcode.com/threads/T-019e8568-f382-743d-a97f-0de3ff29d501
Co-authored-by: Amp <amp@ampcode.com>
2026-06-01 21:10:17 -07:00
..
input_impl_test.py Support saving Comfy VIDEO type to buffer (#7939) 2025-05-04 23:26:57 -04:00
multicombo_serialization_test.py fix(api-io): serialize MultiCombo multi_select as object config (#13484) 2026-05-05 13:58:32 -07:00
test_dynamic_outputs.py DynamicOutputs: tighter integration with DynamicCombo / DynamicSlot via FromInput 2026-06-01 21:10:17 -07:00
test_dynamic_slot.py DynamicSlot: support required slots and always forceInput 2026-06-01 19:28:15 -07:00
video_types_test.py Add get_duration method to Comfy VIDEO type (#8122) 2025-05-15 00:11:41 -04:00