メインコンテンツへスキップ
ComfyUI ネイティブ Pika 2.2 Text to Video ノード Pika 2.2 Text to Video ノードは、Pika の 2.2 API を用いてテキスト記述から動画を生成します。このノードは Pika のテキストから動画を生成する API に接続し、さまざまな制御パラメーターを伴ったテキストプロンプトを用いて動画を生成できます。

パラメーター

必須パラメーター

パラメーターデフォルト値説明
prompt_text文字列""動画の内容を記述するテキストプロンプト
negative_prompt文字列""動画に含めたくない要素
seed整数0生成時の乱数シード
resolution選択項目”1080p”出力動画の解像度
duration選択項目”5s”生成される動画の長さ
aspect_ratio浮動小数点数1.7777777777777777動画のアスペクト比(範囲:0.4~2.5、ステップ:0.001)

出力

出力説明
VIDEO動画生成された動画

ソースコード

[ノードソースコード(2025-05-05 更新)]

class PikaTextToVideoNodeV2_2(PikaNodeBase):
    """Pika 2.2 Text to Video Node."""

    @classmethod
    def INPUT_TYPES(cls):
        return {
            "required": {
                **cls.get_base_inputs_types(PikaBodyGenerate22T2vGenerate22T2vPost),
                "aspect_ratio": model_field_to_node_input(
                    IO.FLOAT,
                    PikaBodyGenerate22T2vGenerate22T2vPost,
                    "aspectRatio",
                    step=0.001,
                    min=0.4,
                    max=2.5,
                    default=1.7777777777777777,
                ),
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
            },
        }

    RETURN_TYPES = ("VIDEO",)
    DESCRIPTION = "Sends a text prompt to the Pika API v2.2 to generate a video."

    def api_call(
        self,
        prompt_text: str,
        negative_prompt: str,
        seed: int,
        resolution: str,
        duration: int,
        aspect_ratio: float,
        auth_token: Optional[str] = None,
    ) -> tuple[VideoFromFile]:
        """API call for Pika 2.2 Text to Video."""
        initial_operation = SynchronousOperation(
            endpoint=ApiEndpoint(
                path=PATH_TEXT_TO_VIDEO,
                method=HttpMethod.POST,
                request_model=PikaBodyGenerate22T2vGenerate22T2vPost,
                response_model=PikaGenerateResponse,
            ),
            request=PikaBodyGenerate22T2vGenerate22T2vPost(
                promptText=prompt_text,
                negativePrompt=negative_prompt,
                seed=seed,
                resolution=resolution,
                duration=duration,
                aspectRatio=aspect_ratio,
            ),
            auth_token=auth_token,
            content_type="application/x-www-form-urlencoded",
        )

        return self.execute_task(initial_operation, auth_token)