From 8a0e1b6cfc686efd8260817bf6100aac121cb4be Mon Sep 17 00:00:00 2001 From: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Sat, 29 Jul 2023 15:52:37 +1200 Subject: [PATCH] feat: Create Prompt Input Node --- invokeai/app/invocations/params.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/invokeai/app/invocations/params.py b/invokeai/app/invocations/params.py index 127eefa21d..3a3149aaa7 100644 --- a/invokeai/app/invocations/params.py +++ b/invokeai/app/invocations/params.py @@ -4,7 +4,8 @@ from typing import Literal from pydantic import Field -from .baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationConfig, InvocationContext +from .baseinvocation import (BaseInvocation, BaseInvocationOutput, + InvocationConfig, InvocationContext) from .math import FloatOutput, IntOutput # Pass-through parameter nodes - used by subgraphs @@ -64,3 +65,24 @@ class ParamStringInvocation(BaseInvocation): def invoke(self, context: InvocationContext) -> StringOutput: return StringOutput(text=self.text) + +class PromptOutput(BaseInvocationOutput): + """A string output""" + + type: Literal["prompt_output"] = "prompt_output" + prompt: str = Field(default=None, description="The output prompt") + + +class ParamPromptInvocation(BaseInvocation): + """A prompt input parameter""" + + type: Literal["param_prompt"] = "param_prompt" + prompt: str = Field(default="", description="The prompt value") + + class Config(InvocationConfig): + schema_extra = { + "ui": {"tags": ["param", "prompt"], "title": "Prompt"}, + } + + def invoke(self, context: InvocationContext) -> PromptOutput: + return StringOutput(prompt=self.prompt) \ No newline at end of file