diff --git a/README.md b/README.md index 8c4a91e..195b6a8 100644 --- a/README.md +++ b/README.md @@ -20,12 +20,15 @@ Clone the repository into ComfyUI's custom_nodes directory: ```bash cd ComfyUI/custom_nodes + git clone https://github.com/lceric/comfyui-gpt-image + Install the required Python dependencies: ``` ```bash cd comfyui-gpt-image + pip install -r requirements.txt ``` @@ -35,7 +38,13 @@ Restart ComfyUI. The new GPT node will be automatically loaded and available for Here’s a quick look at the GPT-API node inside ComfyUI: -(Tip: Replace ./assets/preview.png with your actual screenshot path.) +**生成图片** + +![生成图片](example/gpt-image.png) + +**编辑图片** + +![生成图片](example/gpt-image-mask.png) ### Usage diff --git a/example/gpt-image-mask.json b/example/gpt-image-mask.json new file mode 100644 index 0000000..d21b2cc --- /dev/null +++ b/example/gpt-image-mask.json @@ -0,0 +1 @@ +{"id":"32145835-ade3-4507-bf69-ce89a56a8e21","revision":0,"last_node_id":10,"last_link_id":15,"nodes":[{"id":6,"type":"LoadImage","pos":[-221,1317],"size":[314,331],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"图像","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"选择文件上传","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"图像","name":"IMAGE","type":"IMAGE","links":[11]},{"localized_name":"遮罩","name":"MASK","type":"MASK","links":[12]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.29","Node name for S&R":"LoadImage"},"widgets_values":["clipspace/clipspace-mask-853606.900000006.png [input]","image"]},{"id":10,"type":"GPTImage1Generate","pos":[186.71676635742188,1317],"size":[400,324],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":11},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":12},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null},{"localized_name":"api_base","name":"api_base","shape":7,"type":"STRING","widget":{"name":"api_base"},"link":null},{"localized_name":"auth_token","name":"auth_token","shape":7,"type":"STRING","widget":{"name":"auth_token"},"link":null},{"localized_name":"model","name":"model","shape":7,"type":"STRING","widget":{"name":"model"},"link":null},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"quality","name":"quality","shape":7,"type":"COMBO","widget":{"name":"quality"},"link":null},{"localized_name":"background","name":"background","shape":7,"type":"COMBO","widget":{"name":"background"},"link":null},{"localized_name":"size","name":"size","shape":7,"type":"COMBO","widget":{"name":"size"},"link":null},{"localized_name":"n","name":"n","shape":7,"type":"INT","widget":{"name":"n"},"link":null}],"outputs":[{"localized_name":"图像","name":"IMAGE","type":"IMAGE","links":[15]}],"properties":{"aux_id":"lceric/comfyui-gpt-image","ver":"81ffa274f206ae76115d59dfdc723e21d88e2228","Node name for S&R":"GPTImage1Generate"},"widgets_values":["创建一张吉卜力风格的小女孩,戴个眼镜,坐在森林里,和一只小狗熊玩耍","http://xxxx/v1/","sk-xxx","gpt-image-1",837444574,"randomize","low","opaque","auto",1]},{"id":7,"type":"SaveImage","pos":[634,1317],"size":[218,270],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"图片","name":"images","type":"IMAGE","link":15},{"localized_name":"文件名前缀","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.3.29","Node name for S&R":"SaveImage"},"widgets_values":["ComfyUI"]}],"links":[[11,6,0,10,0,"IMAGE"],[12,6,1,10,1,"MASK"],[15,10,0,7,0,"IMAGE"]],"groups":[],"config":{},"extra":{"ds":{"scale":1.3109994191500114,"offset":[269.59467019154306,-1067.8671115334487]},"frontendVersion":"1.17.11"},"version":0.4} \ No newline at end of file diff --git a/example/gpt-image-mask.png b/example/gpt-image-mask.png new file mode 100644 index 0000000..1d30b81 Binary files /dev/null and b/example/gpt-image-mask.png differ diff --git a/example/gpt-image.json b/example/gpt-image.json new file mode 100644 index 0000000..6e2adf7 --- /dev/null +++ b/example/gpt-image.json @@ -0,0 +1 @@ +{"id":"32145835-ade3-4507-bf69-ce89a56a8e21","revision":0,"last_node_id":14,"last_link_id":17,"nodes":[{"id":13,"type":"GPTImage1Generate","pos":[194,776],"size":[400,324],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null},{"localized_name":"api_base","name":"api_base","shape":7,"type":"STRING","widget":{"name":"api_base"},"link":null},{"localized_name":"auth_token","name":"auth_token","shape":7,"type":"STRING","widget":{"name":"auth_token"},"link":null},{"localized_name":"model","name":"model","shape":7,"type":"STRING","widget":{"name":"model"},"link":null},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"quality","name":"quality","shape":7,"type":"COMBO","widget":{"name":"quality"},"link":null},{"localized_name":"background","name":"background","shape":7,"type":"COMBO","widget":{"name":"background"},"link":null},{"localized_name":"size","name":"size","shape":7,"type":"COMBO","widget":{"name":"size"},"link":null},{"localized_name":"n","name":"n","shape":7,"type":"INT","widget":{"name":"n"},"link":null}],"outputs":[{"localized_name":"图像","name":"IMAGE","type":"IMAGE","links":[17]}],"properties":{"aux_id":"lceric/comfyui-gpt-image","ver":"81ffa274f206ae76115d59dfdc723e21d88e2228","Node name for S&R":"GPTImage1Generate"},"widgets_values":["创建一张吉卜力风格的小女孩,戴个眼镜,坐在森林里,和一只小狗熊玩耍","http://xxxx/v1/","sk-xxx","gpt-image-1",169661286,"randomize","low","opaque","auto",1]},{"id":14,"type":"SaveImage","pos":[673,777],"size":[315,270],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"图片","name":"images","type":"IMAGE","link":17},{"localized_name":"文件名前缀","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.3.29","Node name for S&R":"SaveImage"},"widgets_values":["ComfyUI"]}],"links":[[17,13,0,14,0,"IMAGE"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.9849732675807719,"offset":[423.57032398077075,-780.2891992443103]},"frontendVersion":"1.17.11"},"version":0.4} \ No newline at end of file diff --git a/example/gpt-image.png b/example/gpt-image.png new file mode 100644 index 0000000..ead04d1 Binary files /dev/null and b/example/gpt-image.png differ diff --git a/nodes_api.py b/nodes_api.py index 3c16959..5c34882 100644 --- a/nodes_api.py +++ b/nodes_api.py @@ -186,7 +186,7 @@ class GPTImage1Generate(ComfyNodeABC): RETURN_TYPES = (IO.IMAGE,) FUNCTION = "api_call" - CATEGORY = "SEM GPT-Api Node" + CATEGORY = "GPT Image 1 Generate Node" DESCRIPTION = cleandoc(__doc__ or "") # API_NODE = True