mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
e5b7dd63e9
- Do not retrieve graph from DB until we resolve the issue of changing node schemas causing application to fail to start up due to invalid graphs
65 lines
3.2 KiB
Python
65 lines
3.2 KiB
Python
from ..invocations.latent import LatentsToImageInvocation, NoiseInvocation, TextToLatentsInvocation
|
|
from ..invocations.compel import CompelInvocation
|
|
from ..invocations.params import ParamIntInvocation
|
|
from .graph import Edge, EdgeConnection, ExposedNodeInput, ExposedNodeOutput, Graph, LibraryGraph
|
|
from .item_storage import ItemStorageABC
|
|
|
|
|
|
default_text_to_image_graph_id = '539b2af5-2b4d-4d8c-8071-e54a3255fc74'
|
|
|
|
|
|
def create_text_to_image() -> LibraryGraph:
|
|
return LibraryGraph(
|
|
id=default_text_to_image_graph_id,
|
|
name='t2i',
|
|
description='Converts text to an image',
|
|
graph=Graph(
|
|
nodes={
|
|
'width': ParamIntInvocation(id='width', a=512),
|
|
'height': ParamIntInvocation(id='height', a=512),
|
|
'seed': ParamIntInvocation(id='seed', a=-1),
|
|
'3': NoiseInvocation(id='3'),
|
|
'4': CompelInvocation(id='4'),
|
|
'5': CompelInvocation(id='5'),
|
|
'6': TextToLatentsInvocation(id='6'),
|
|
'7': LatentsToImageInvocation(id='7'),
|
|
},
|
|
edges=[
|
|
Edge(source=EdgeConnection(node_id='width', field='a'), destination=EdgeConnection(node_id='3', field='width')),
|
|
Edge(source=EdgeConnection(node_id='height', field='a'), destination=EdgeConnection(node_id='3', field='height')),
|
|
Edge(source=EdgeConnection(node_id='seed', field='a'), destination=EdgeConnection(node_id='3', field='seed')),
|
|
Edge(source=EdgeConnection(node_id='3', field='noise'), destination=EdgeConnection(node_id='6', field='noise')),
|
|
Edge(source=EdgeConnection(node_id='6', field='latents'), destination=EdgeConnection(node_id='7', field='latents')),
|
|
Edge(source=EdgeConnection(node_id='4', field='conditioning'), destination=EdgeConnection(node_id='6', field='positive_conditioning')),
|
|
Edge(source=EdgeConnection(node_id='5', field='conditioning'), destination=EdgeConnection(node_id='6', field='negative_conditioning')),
|
|
]
|
|
),
|
|
exposed_inputs=[
|
|
ExposedNodeInput(node_path='4', field='prompt', alias='positive_prompt'),
|
|
ExposedNodeInput(node_path='5', field='prompt', alias='negative_prompt'),
|
|
ExposedNodeInput(node_path='width', field='a', alias='width'),
|
|
ExposedNodeInput(node_path='height', field='a', alias='height'),
|
|
ExposedNodeInput(node_path='seed', field='a', alias='seed'),
|
|
],
|
|
exposed_outputs=[
|
|
ExposedNodeOutput(node_path='7', field='image', alias='image')
|
|
])
|
|
|
|
|
|
def create_system_graphs(graph_library: ItemStorageABC[LibraryGraph]) -> list[LibraryGraph]:
|
|
"""Creates the default system graphs, or adds new versions if the old ones don't match"""
|
|
|
|
# TODO: Uncomment this when we are ready to fix this up to prevent breaking changes
|
|
graphs: list[LibraryGraph] = list()
|
|
|
|
# text_to_image = graph_library.get(default_text_to_image_graph_id)
|
|
|
|
# # TODO: Check if the graph is the same as the default one, and if not, update it
|
|
# #if text_to_image is None:
|
|
text_to_image = create_text_to_image()
|
|
graph_library.set(text_to_image)
|
|
|
|
graphs.append(text_to_image)
|
|
|
|
return graphs
|