Comfy-Org/ComfyUI · error · ValueError

Provide at least one of start_frame / end_frame.

Error message

Provide at least one of start_frame / end_frame.

What it means

Raised by LumaRay32ImageToVideoNode (comfy_api_nodes/nodes_luma.py:1107) when both start_frame and end_frame are None. Ray 3.2 image-to-video requires at least one anchor frame; prompt-only generation belongs in the text-to-video node.

Source

Thrown at comfy_api_nodes/nodes_luma.py:1107

                IO.Hidden.unique_id,
            ],
            is_api_node=True,
            price_badge=_BADGE_RAY32_VIDEO_5S,
        )

    @classmethod
    async def execute(
        cls,
        prompt: str,
        resolution: str,
        loop: bool,
        seed: int,
        start_frame: torch.Tensor | None = None,
        end_frame: torch.Tensor | None = None,
    ) -> IO.NodeOutput:
        validate_string(prompt, strip_whitespace=True, min_length=1, max_length=6000)
        if start_frame is None and end_frame is None:
            raise ValueError("Provide at least one of start_frame / end_frame.")
        if loop and end_frame is not None:
            raise ValueError("Looping is not available when an end_frame is set.")
        video = Luma2VideoOptions(resolution=resolution, duration="5s", loop=loop or None)
        if start_frame is not None:
            url = await upload_image_to_comfyapi(cls, start_frame, mime_type="image/png")
            video.start_frame = Luma2ImageRef(url=url)
        if end_frame is not None:
            url = await upload_image_to_comfyapi(cls, end_frame, mime_type="image/png")
            video.end_frame = Luma2ImageRef(url=url)
        request = Luma2GenerationRequest(prompt=prompt, model="ray-3.2", type="video", video=video)
        return await _ray32_generate(cls, request)


class LumaRay32KeyframeNode(IO.ComfyNode):
    @classmethod
    def define_schema(cls) -> IO.Schema:
        return IO.Schema(
            node_id="LumaRay32KeyframeNode",

View on GitHub (pinned to 1c6d8d45b3)

Solutions

  1. Connect an image to start_frame (or end_frame, or both).
  2. Use LumaRay32TextToVideoNode for prompt-only generation.
  3. For a single frame plus continuation, consider the Ray 3.2 extend node with a prior generation_id.
Defensive patterns

Strategy: validation

Validate before calling

if start_frame is None and end_frame is None:
    raise ValueError("Ray 3.2 image-to-video needs a start_frame or end_frame")

Prevention

When it happens

Trigger: Executing the Ray 3.2 image-to-video node with neither start_frame nor end_frame connected.

Common situations: Disconnected edges during graph editing; user expects prompt-only behavior from an image-conditioned node; workflow converted from the text-to-video node without wiring frames.

Related errors


AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14). Data as JSON: /api/errors/ec26a9140438d515. Report an issue: GitHub.