InvokeAI/invokeai/app/invocations/params.py
psychedelicious f49fc7fb55 feat: node editor
squashed rebase on main after backendd refactor
2023-08-16 09:54:38 +10:00

82 lines
2.0 KiB
Python

# Copyright (c) 2023 Kyle Schouviller (https://github.com/kyle0654)
from typing import Literal
from invokeai.app.invocations.prompt import PromptOutput
from .baseinvocation import (
BaseInvocation,
BaseInvocationOutput,
InputField,
InvocationContext,
OutputField,
tags,
title,
)
from .math import FloatOutput, IntOutput
# Pass-through parameter nodes - used by subgraphs
@title("Integer Parameter")
@tags("integer")
class ParamIntInvocation(BaseInvocation):
"""An integer parameter"""
type: Literal["param_int"] = "param_int"
# Inputs
a: int = InputField(default=0, description="The integer value")
def invoke(self, context: InvocationContext) -> IntOutput:
return IntOutput(a=self.a)
@title("Float Parameter")
@tags("float")
class ParamFloatInvocation(BaseInvocation):
"""A float parameter"""
type: Literal["param_float"] = "param_float"
# Inputs
param: float = InputField(default=0.0, description="The float value")
def invoke(self, context: InvocationContext) -> FloatOutput:
return FloatOutput(a=self.param)
class StringOutput(BaseInvocationOutput):
"""A string output"""
type: Literal["string_output"] = "string_output"
text: str = OutputField(description="The output string")
@title("String Parameter")
@tags("string")
class ParamStringInvocation(BaseInvocation):
"""A string parameter"""
type: Literal["param_string"] = "param_string"
# Inputs
text: str = InputField(default="", description="The string value")
def invoke(self, context: InvocationContext) -> StringOutput:
return StringOutput(text=self.text)
@title("Prompt Parameter")
@tags("prompt")
class ParamPromptInvocation(BaseInvocation):
"""A prompt input parameter"""
type: Literal["param_prompt"] = "param_prompt"
# Inputs
prompt: str = InputField(default="", description="The prompt value")
def invoke(self, context: InvocationContext) -> PromptOutput:
return PromptOutput(prompt=self.prompt)