Guest User

Fix for https://civitai.com/models/26836?commentId=168599&modal=commentThread

a guest
Aug 12th, 2023
648
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.92 KB | None | 0 0
  1. class Loop:
  2.     def __init__(self):
  3.         self.state = {}
  4.         pass
  5.  
  6.     @classmethod
  7.     def INPUT_TYPES(s):
  8.         return {"required": {"text": ("STRING", {"multiline": False})}}
  9.  
  10.     RETURN_TYPES = ("LOOP",)
  11.     FUNCTION = "run"
  12.     CATEGORY = "loopback"
  13.  
  14.     def run(self, text):
  15.         print("here!")
  16.         print(self)
  17.         return (self.state,)
  18.  
  19. class LoopStart:
  20.     @classmethod
  21.     def INPUT_TYPES(s):
  22.         return {"required": {"first_loop": s.RETURN_TYPES, "loop": ("LOOP",)}}
  23.  
  24.     FUNCTION = "run"
  25.     CATEGORY = "loopback"
  26.  
  27.     def run(self, first_loop, loop):
  28.         if 'next' in loop:
  29.             return (loop['next'],)
  30.         return (first_loop,)
  31.  
  32.     @classmethod
  33.     def IS_CHANGED(s, first_loop, loop):
  34.         if 'next' in loop:
  35.             return id(loop['next'])
  36.         return float("NaN")
  37.  
  38. class LoopEnd:
  39.     @classmethod
  40.     def INPUT_TYPES(s):
  41.         return {"required": { "send_to_next_loop": (s.LOOP_TYPE,), "loop": ("LOOP",) }}
  42.  
  43.     RETURN_TYPES = ()
  44.     FUNCTION = "run"
  45.     CATEGORY = "loopback"
  46.     OUTPUT_NODE = True
  47.  
  48.     def run(self, send_to_next_loop, loop):
  49.         loop['next'] = send_to_next_loop
  50.         return {}
  51.  
  52. NODE_CLASS_MAPPINGS = {
  53.     "Loop": Loop
  54. }
  55.  
  56. def addLoopType(t):
  57.     NODE_CLASS_MAPPINGS["LoopStart_" + t] = type("LoopStart_" + t, (LoopStart, ), { "RETURN_TYPES": (t,) })
  58.     NODE_CLASS_MAPPINGS["LoopEnd_" + t] = type("LoopEnd_" + t, (LoopEnd, ), { "LOOP_TYPE": t })
  59.  
  60. # ComfyUI types
  61. addLoopType("IMAGE")
  62. addLoopType("CONDITIONING")
  63. addLoopType("LATENT")
  64. addLoopType("MASK")
  65. addLoopType("MODEL")
  66.  
  67. # These don't work for some reason :/
  68. # addLoopType("FLOAT")
  69. # addLoopType("INT")
  70. # addLoopType("STRING")
  71.  
  72. # Derfuu nodes use these types
  73. addLoopType("FlOAT")
  74. addLoopType("INTEGER")
  75. addLoopType("TUPLE")
  76.  
  77. # WAS nodes use these types
  78. addLoopType("ASCII")
  79. addLoopType("STR")
  80.  
  81. # Feel free to add more loopback node types here
  82.  
Advertisement
Add Comment
Please, Sign In to add comment