alexopus / ComfyUI-Image-Saver

Allows you to save images with their generation metadata in ComfyUI. Compatible with Civitai. Works with png, jpeg and webp.
MIT License
31 stars 6 forks source link

New nodes #21

Open AndreBuzz opened 1 month ago

AndreBuzz commented 1 month ago

Hello, I would like to suggest some new nodes that may complete this custom node. Save controlnet name and Save IPAdapter model information. In general it would be helpful to extract the widget information right form a node along with its paramaters. Thank you very much for your work.

alexopus commented 1 month ago

The current selection of nodes/widgets in this node set are infos that civitai can recognize, which is not the case for controlnet/IPAdapter, or?

But maybe we can add "custom" field(s) where you can save any additional info.

AndreBuzz commented 1 month ago

Thank you, I didn't know that. I'm using these nodes to save the data of the generation as text overlay on the image and to keep things organised. I'm not very practical with custom nodes but yesterday i gave it a try and added the controlnet node. It works great, but it's not searchable but you can find it in: rightclick->addnode->ImageSaver->utilis->ControlNet Loader with Name I can't attach the node.py code here but i'll add the code that i've added and modified. If you have suggestions on a better way to suggest changes I'd be open to. PS: I don't know why it changes the formatting of the areas marked as code

class ControlNetLoaderWithName:
    @classmethod
    def INPUT_TYPES(s):
        return {"required": { "control_net_name": (folder_paths.get_filename_list("controlnet"), )}}    

    RETURN_TYPES = ("CONTROL_NET","STRING",)
    RETURN_NAMES = ("MODEL", "control_net_name")

    FUNCTION = "load_controlnet"

    CATEGORY = "ImageSaver/utils"

    def load_controlnet(self, control_net_name):
        controlnet_path = folder_paths.get_full_path("controlnet", control_net_name)
        controlnet = comfy.controlnet.load_controlnet(controlnet_path)
        return (controlnet,control_net_name)
NODE_CLASS_MAPPINGS = {
    "Checkpoint Loader with Name (Image Saver)": CheckpointLoaderWithName,
    "ControlNet Loader with Name (Image Saver)": ControlNetLoaderWithName,
    "Image Saver": ImageSaver,
    "Sampler Selector (Image Saver)": SamplerSelector,
    "Scheduler Selector (Image Saver)": SchedulerSelector,
    "Seed Generator (Image Saver)": SeedGenerator,
    "String Literal (Image Saver)": StringLiteral,
    "Width/Height Literal (Image Saver)": SizeLiteral,
    "Cfg Literal (Image Saver)": CfgLiteral,
    "Int Literal (Image Saver)": IntLiteral,
    "Float Literal (Image Saver)": FloatLiteral,
}