Files
rgthree-rgthree-comfy/py/context.py
T
2023-08-15 00:44:23 -04:00

59 lines
2.5 KiB
Python

from constants import category_prefix, get_name
ctx_keys = ["model", "clip", "vae", "positive", "negative", "latent", "images", "seed"]
def new_context(context=None, model=None, clip=None, vae=None, positive=None, negative=None, latent=None, images=None, seed=None):
ctx = {}
for key in ctx_keys:
v = None
v = v if v != None else model if key == 'model' else None
v = v if v != None else clip if key == 'clip' else None
v = v if v != None else vae if key == 'vae' else None
v = v if v != None else positive if key == 'positive' else None
v = v if v != None else negative if key == 'negative' else None
v = v if v != None else latent if key == 'latent' else None
v = v if v != None else images if key == 'images' else None
v = v if v != None else seed if key == 'seed' else None
ctx[key] = a_b(v, d_k(context, key))
return ctx
def d_k(dct, key, default=None):
return dct[key] if dct != None and key in dct else default
def a_b(a, b):
return a if a != None else b
class RgthreeContext:
@classmethod
def INPUT_TYPES(s):
return {
"required": {},
"optional": {
"base_ctx": ("RGTHREE_CONTEXT",),
"model": ("MODEL",),
"clip": ("CLIP",),
"vae": ("VAE",),
"positive": ("CONDITIONING",),
"negative": ("CONDITIONING",),
"latent": ("LATENT",),
"images": ("IMAGE", ),
"seed": ("INT", {"forceInput": True}),
},
"hidden": {
"prompt": "PROMPT",
},
}
RETURN_TYPES = ("RGTHREE_CONTEXT", "MODEL", "CLIP", "VAE", "CONDITIONING", "CONDITIONING", "LATENT", "IMAGE", "INT",)
RETURN_NAMES = ("CONTEXT", "MODEL", "CLIP", "VAE", "POSITIVE", "NEGATIVE", "LATENT", "IMAGE", "SEED",)
FUNCTION = "convert"
CATEGORY = "%s/utils" % category_prefix
def convert(self, base_ctx=None, model=None, clip=None, vae=None, positive=None, negative=None, latent=None, images=None, seed=None, prompt=None):
ctx = new_context(context=base_ctx, model=model, clip=clip, vae=vae, positive=positive, negative=negative, latent=latent, images=images, seed=seed)
return (ctx, ctx['model'], ctx['clip'], ctx['vae'], ctx['positive'], ctx['negative'], ctx['latent'], ctx['images'], ctx['seed'],)
NODE_CLASS_MAPPINGS = {}
NODE_CLASS_MAPPINGS[get_name('Context')] = RgthreeContext