| 19 | pass |
| 20 | |
| 21 | class DynamicPrompt: |
| 22 | def __init__(self, original_prompt): |
| 23 | # The original prompt provided by the user |
| 24 | self.original_prompt = original_prompt |
| 25 | # Any extra pieces of the graph created during execution |
| 26 | self.ephemeral_prompt = {} |
| 27 | self.ephemeral_parents = {} |
| 28 | self.ephemeral_display = {} |
| 29 | |
| 30 | def get_node(self, node_id): |
| 31 | if node_id in self.ephemeral_prompt: |
| 32 | return self.ephemeral_prompt[node_id] |
| 33 | if node_id in self.original_prompt: |
| 34 | return self.original_prompt[node_id] |
| 35 | raise NodeNotFoundError(f"Node {node_id} not found") |
| 36 | |
| 37 | def has_node(self, node_id): |
| 38 | return node_id in self.original_prompt or node_id in self.ephemeral_prompt |
| 39 | |
| 40 | def add_ephemeral_node(self, node_id, node_info, parent_id, display_id): |
| 41 | self.ephemeral_prompt[node_id] = node_info |
| 42 | self.ephemeral_parents[node_id] = parent_id |
| 43 | self.ephemeral_display[node_id] = display_id |
| 44 | |
| 45 | def get_real_node_id(self, node_id): |
| 46 | while node_id in self.ephemeral_parents: |
| 47 | node_id = self.ephemeral_parents[node_id] |
| 48 | return node_id |
| 49 | |
| 50 | def get_parent_node_id(self, node_id): |
| 51 | return self.ephemeral_parents.get(node_id, None) |
| 52 | |
| 53 | def get_display_node_id(self, node_id): |
| 54 | while node_id in self.ephemeral_display: |
| 55 | node_id = self.ephemeral_display[node_id] |
| 56 | return node_id |
| 57 | |
| 58 | def all_node_ids(self): |
| 59 | return set(self.original_prompt.keys()).union(set(self.ephemeral_prompt.keys())) |
| 60 | |
| 61 | def get_original_prompt(self): |
| 62 | return self.original_prompt |
| 63 | |
| 64 | def get_input_info( |
| 65 | class_def: Type[ComfyNodeABC], |
no outgoing calls
no test coverage detected