{"record":{"id":"e8a00ef858e8c7da","repo":"sgl-project/sglang","slug":"t2va-takes-no-conditioning-inputs-pick-another-ta","errorCode":null,"errorMessage":"t2va takes no conditioning inputs; pick another task","messagePattern":"t2va takes no conditioning inputs; pick another task","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/apps/ComfyUI_SGLDiffusion/nodes.py","lineNumber":749,"sourceCode":"            conditions.append(\n                {\n                    \"type\": \"audio\",\n                    \"uri\": self._material_uri(reference_audio),\n                    \"role\": \"reference\",\n                }\n            )\n\n        # 2. reject wiring the server would reject anyway, but name the input\n        #    the user has to change\n        if task == \"fl2va\" and not (first_frame is not None or last_frame is not None):\n            raise ValueError(\"fl2va requires first_frame, last_frame, or both\")\n        if task == \"ref2va\" and not conditions:\n            raise ValueError(\n                \"ref2va requires at least one of reference_image, \"\n                \"reference_video, or reference_audio\"\n            )\n        if task == \"t2va\" and conditions:\n            raise ValueError(\"t2va takes no conditioning inputs; pick another task\")\n\n        # 3. `target` resolves the aligned canvas and frame count; the `size`\n        #    the server API always sends is unused by H3\n        extra_fields = {\n            \"task\": task,\n            \"conditions\": conditions,\n            \"target\": {\n                \"short_edge\": short_edge,\n                \"aspect_ratio\": aspect_ratio,\n                \"duration_seconds\": duration_seconds,\n            },\n            \"flow_shift\": flow_shift,\n            \"audio_flow_shift\": audio_flow_shift,\n        }\n\n        request_params = {\n            \"prompt\": positive_prompt,\n            \"seconds\": int(duration_seconds),","sourceCodeStart":731,"sourceCodeEnd":767,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/apps/ComfyUI_SGLDiffusion/nodes.py#L731-L767","documentation":"Raised by the ComfyUI SGLDiffusion MiniMax-H3 node when task='t2va' (text-to-video) but conditioning inputs (images/videos/audio references) are connected. t2va is strictly text-only, so any conditioning input is rejected with a hint to pick another task.","triggerScenarios":"Calling generate() with task='t2va' while conditions is non-empty, i.e. any reference or frame input is wired.","commonSituations":"Leaving stale image connections in the graph after switching the task dropdown from fl2va/ref2va back to t2va.","solutions":["Disconnect conditioning inputs (first_frame/last_frame/reference_*) when using t2va","Or switch task to 'fl2va'/'ref2va' to actually use those inputs"],"exampleFix":"// before\ntask='t2va', first_frame=connected\n// after\ntask='t2va', first_frame=None","handlingStrategy":"validation","validationCode":"cond = [x for x in (first_frame, last_frame, reference_image, reference_video, reference_audio) if x is not None]\nif task == 't2va' and cond:\n    raise UserError('t2va takes no conditioning inputs')","typeGuard":null,"tryCatchPattern":"try: node.generate(...) except ValueError as e: show_user(str(e))","preventionTips":["Clear stale input connections when switching tasks","Automate task switching to also mute disconnected inputs"],"tags":["comfyui","sgldiffusion","minimax-h3","input-validation"],"backgroundTag":"invalid-argument-combination","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}