diff --git a/README.md b/README.md index 294c22f..654d90e 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Every BFL request is asynchronous: the node submits the job, then polls until th - The submit response contains a `polling_url`, and the node polls **that URL**. BFL requires this because it points at the region that holds your task (Flux 3 Image, for example, returns a regional one). - Only when a response has no `polling_url` does the node fall back to building `get_result?id=` itself, with the base URL from `config.ini` or the **Flux Config (BFL)** node. -- Polls run every 5 s: up to 40 attempts (~200 s) for image nodes, 120 for **Flux 3 Image** (`4k` can take several minutes) and 240 for the video nodes. A terminal status (`Error`, `Request Moderated`, `Content Moderated`) stops polling at once, even when BFL reports it as HTTP 503, and the node returns a black placeholder so the workflow keeps running. +- Polls run every 5 s: up to 40 attempts (~200 s) for image nodes, 120 for **Flux 3 Image** and **Flux 3 Image Klein** (`4k` can take several minutes) and 240 for the video nodes. A terminal status (`Error`, `Request Moderated`, `Content Moderated`) stops polling at once, even when BFL reports it as HTTP 503, and the node returns a black placeholder so the workflow keeps running. - Every poll is logged in the ComfyUI console as `[BFL] Poll attempt … | GET `, so you can see which URL was used. ## Nodes @@ -51,6 +51,7 @@ Every BFL request is asynchronous: the node submits the job, then polls until th | Node | Description | |---|---| | Flux 3 Image (BFL) | Text-to-image and editing with FLUX 3 in one node — up to 10 references (`image_1`…`image_10` are "Image 1"…"Image 10" in the prompt), bounding boxes as a JSON list at the end of the prompt, `768sq` to `4k` output (`flux-3-image`) | +| Flux 3 Image Klein (BFL) | Open-weights 5.6B FLUX 3 — same prompt, 10 references and bounding boxes as Flux 3 Image, plus `seed`, `steps` (1–16), `output_format` and exact `width` × `height`; no grounding (`flux-3-image-klein`) | | Flux 3 Video T2V (BFL) | Text-to-video with FLUX 3 Video (up to 20 s, with audio) | | Flux 3 Video I2V (BFL) | Image-to-video — feed keyframes from the Flux 3 Keyframes node or a single image | | Flux 3 Video V2V (BFL) | Video continuation from an existing MP4 (URL or base64), up to 15 s | diff --git a/nodes/api_node.py b/nodes/api_node.py index 24639bb..a50754d 100644 --- a/nodes/api_node.py +++ b/nodes/api_node.py @@ -909,6 +909,63 @@ class Flux3Image(BaseFlux): return self.create_blank_image() +class Flux3ImageKlein(Flux3Image): + @classmethod + def INPUT_TYPES(cls): + types = super().INPUT_TYPES() + del types["required"]["grounding"] + types["required"]["safety_tolerance"] = ("INT", {"default": 2, "min": 0, "max": 7}) + types["required"]["output_format"] = (["jpeg", "png"], {"default": "jpeg"}) + types["required"]["steps"] = ("INT", {"default": 16, "min": 1, "max": 16}) + size = ("INT", { + "default": 0, "min": 0, "max": 6256, + "tooltip": "0 = not sent. Set width and height together (64-6256) to override resolution and aspect_ratio" + }) + types["optional"] = { + "width": size, + "height": size, + "seed": ("INT", {"default": -1}), + **types["optional"] + } + return types + + def generate_image(self, prompt, resolution, aspect_ratio, safety_tolerance, output_format, steps, + width=0, height=0, seed=-1, config=None, **images): + arguments = {"prompt": prompt} + connected = [name for name in self.IMAGE_SLOTS if images.get(name)] + if connected: + arguments["images"] = [images[name] for name in connected] + if connected != self.IMAGE_SLOTS[:len(connected)]: + print(f"[BFL] Warning: references {connected} skip a socket — BFL numbers them Image 1.." + f"{len(connected)} in this order, so 'Image N' in the prompt shifts") + if width > 0 and height > 0: + arguments["width"] = width + arguments["height"] = height + elif width > 0 or height > 0: + print("[BFL] Warning: width and height must be set together — sending neither") + if resolution != "1k": + arguments["resolution"] = resolution + if aspect_ratio != "auto": + arguments["aspect_ratio"] = aspect_ratio + if safety_tolerance != 2: + arguments["safety_tolerance"] = safety_tolerance + if output_format != "jpeg": + arguments["output_format"] = output_format + if steps != 16: + arguments["steps"] = steps + if seed != -1: + arguments["seed"] = seed + try: + task_id = self.post_request("flux-3-image-klein", arguments, config) + if task_id: + return self.get_result(task_id, output_format=output_format, max_attempts=self.MAX_ATTEMPTS, + config_override=config) + return self.create_blank_image() + except Exception as e: + print(f"[BFL] Error generating image: {str(e)}") + return self.create_blank_image() + + class FluxCredits: RETURN_TYPES = ("STRING",) FUNCTION = "get_credits" @@ -947,6 +1004,7 @@ NODE_CLASS_MAPPINGS = { "Flux2Klein9bPreview_BFL": Flux2Klein9bPreview, "Flux2Klein4b_BFL": Flux2Klein4b, "Flux3Image_BFL": Flux3Image, + "Flux3ImageKlein_BFL": Flux3ImageKlein, "FluxCredits_BFL": FluxCredits } @@ -966,5 +1024,6 @@ NODE_DISPLAY_NAME_MAPPINGS = { "Flux2Klein9bPreview_BFL": "Flux 2 Klein 9B Preview (BFL)", "Flux2Klein4b_BFL": "Flux 2 Klein 4B (BFL)", "Flux3Image_BFL": "Flux 3 Image (BFL)", + "Flux3ImageKlein_BFL": "Flux 3 Image Klein (BFL)", "FluxCredits_BFL": "Flux Credits (BFL)" } diff --git a/workflows/BFL-API-flux-3-image.json b/workflows/BFL-API-flux-3-image.json index 33f016a..e93e6fc 100644 --- a/workflows/BFL-API-flux-3-image.json +++ b/workflows/BFL-API-flux-3-image.json @@ -1 +1 @@ -{"id":"1c98fb27-2fb5-4bf0-9f69-0a0c13d884c0","revision":0,"last_node_id":11,"last_link_id":10,"nodes":[{"id":1,"type":"FluxConfig_BFL","pos":[-420,330],"size":[270,106],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"x_key","name":"x_key","type":"STRING","widget":{"name":"x_key"},"link":null},{"localized_name":"base_url","name":"base_url","type":"STRING","widget":{"name":"base_url"},"link":null},{"localized_name":"region","name":"region","shape":7,"type":"COMBO","widget":{"name":"region"},"link":null}],"outputs":[{"localized_name":"config","name":"config","type":"BFL_CONFIG","links":[1,3,7]}],"properties":{"Node name for S&R":"FluxConfig_BFL"},"widgets_values":["","https://api.bfl.ai/v1/","none"],"widgets_values_named":{"x_key":"","base_url":"https://api.bfl.ai/v1/","region":"none"}},{"id":2,"type":"Flux3Image_BFL","pos":[720,70],"size":[420,560],"flags":{},"order":6,"mode":4,"inputs":[{"localized_name":"image_1","name":"image_1","shape":7,"type":"STRING","link":null},{"localized_name":"image_2","name":"image_2","shape":7,"type":"STRING","link":null},{"localized_name":"image_3","name":"image_3","shape":7,"type":"STRING","link":null},{"localized_name":"image_4","name":"image_4","shape":7,"type":"STRING","link":null},{"localized_name":"image_5","name":"image_5","shape":7,"type":"STRING","link":null},{"localized_name":"image_6","name":"image_6","shape":7,"type":"STRING","link":null},{"localized_name":"image_7","name":"image_7","shape":7,"type":"STRING","link":null},{"localized_name":"image_8","name":"image_8","shape":7,"type":"STRING","link":null},{"localized_name":"image_9","name":"image_9","shape":7,"type":"STRING","link":null},{"localized_name":"image_10","name":"image_10","shape":7,"type":"STRING","link":null},{"localized_name":"config","name":"config","shape":7,"type":"BFL_CONFIG","link":1},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null},{"localized_name":"aspect_ratio","name":"aspect_ratio","type":"COMBO","widget":{"name":"aspect_ratio"},"link":null},{"localized_name":"grounding","name":"grounding","type":"BOOLEAN","widget":{"name":"grounding"},"link":null},{"localized_name":"safety_tolerance","name":"safety_tolerance","type":"INT","widget":{"name":"safety_tolerance"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[2]}],"properties":{"Node name for S&R":"Flux3Image_BFL"},"widgets_values":["A black silhouette of a running person \non a flat chartreuse background .\n\n[\n {\"id\": \"background_1\", \"bbox\": [0, 0, 1000, 1000], \"desc\": \"chartreuse field\"},\n {\"id\": \"runner_1\", \"bbox\": [150, 150, 850, 850], \"desc\": \"running silhouette\"}\n]","1k","auto",true,2],"widgets_values_named":{"prompt":"A black silhouette of a running person \non a flat chartreuse background .\n\n[\n {\"id\": \"background_1\", \"bbox\": [0, 0, 1000, 1000], \"desc\": \"chartreuse field\"},\n {\"id\": \"runner_1\", \"bbox\": [150, 150, 850, 850], \"desc\": \"running silhouette\"}\n]","resolution":"1k","aspect_ratio":"auto","grounding":true,"safety_tolerance":2}},{"id":3,"type":"PreviewImage","pos":[1170,70],"size":[520,520],"flags":{},"order":9,"mode":4,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":2}],"outputs":[{"localized_name":"images","name":"images","type":"IMAGE","links":null}],"properties":{"Node name for S&R":"PreviewImage"}},{"id":4,"type":"PrimitiveString","pos":[360,760],"size":[330,60],"flags":{},"order":1,"mode":4,"inputs":[{"localized_name":"value","name":"value","type":"STRING","widget":{"name":"value"},"link":null}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","links":[4]}],"properties":{"Node name for S&R":"PrimitiveString"},"widgets_values":["https://cdn.sanity.io/images/2gpum2i6/production/4792198dfeba9223bf3ecf020fed2942de7f0bd7-1800x1200.webp"],"widgets_values_named":{"value":"https://cdn.sanity.io/images/2gpum2i6/production/4792198dfeba9223bf3ecf020fed2942de7f0bd7-1800x1200.webp"}},{"id":5,"type":"Flux3Image_BFL","pos":[720,760],"size":[420,560],"flags":{},"order":7,"mode":4,"inputs":[{"localized_name":"image_1","name":"image_1","shape":7,"type":"STRING","link":4},{"localized_name":"image_2","name":"image_2","shape":7,"type":"STRING","link":null},{"localized_name":"image_3","name":"image_3","shape":7,"type":"STRING","link":null},{"localized_name":"image_4","name":"image_4","shape":7,"type":"STRING","link":null},{"localized_name":"image_5","name":"image_5","shape":7,"type":"STRING","link":null},{"localized_name":"image_6","name":"image_6","shape":7,"type":"STRING","link":null},{"localized_name":"image_7","name":"image_7","shape":7,"type":"STRING","link":null},{"localized_name":"image_8","name":"image_8","shape":7,"type":"STRING","link":null},{"localized_name":"image_9","name":"image_9","shape":7,"type":"STRING","link":null},{"localized_name":"image_10","name":"image_10","shape":7,"type":"STRING","link":null},{"localized_name":"config","name":"config","shape":7,"type":"BFL_CONFIG","link":3},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null},{"localized_name":"aspect_ratio","name":"aspect_ratio","type":"COMBO","widget":{"name":"aspect_ratio"},"link":null},{"localized_name":"grounding","name":"grounding","type":"BOOLEAN","widget":{"name":"grounding"},"link":null},{"localized_name":"safety_tolerance","name":"safety_tolerance","type":"INT","widget":{"name":"safety_tolerance"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[5]}],"properties":{"Node name for S&R":"Flux3Image_BFL"},"widgets_values":["change the color of only one bird in the middle to #e01075","1k","auto",true,2],"widgets_values_named":{"prompt":"change the color of only one bird in the middle to #e01075","resolution":"1k","aspect_ratio":"auto","grounding":true,"safety_tolerance":2}},{"id":6,"type":"PreviewImage","pos":[1170,760],"size":[520,520],"flags":{},"order":10,"mode":4,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":5}],"outputs":[{"localized_name":"images","name":"images","type":"IMAGE","links":null}],"properties":{"Node name for S&R":"PreviewImage"}},{"id":7,"type":"LoadImage","pos":[30,1450],"size":[300,340],"flags":{},"order":2,"mode":4,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[6]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"Node name for S&R":"LoadImage"},"widgets_values":["example.png","image"],"widgets_values_named":{"image":"example.png","upload":"image"}},{"id":8,"type":"ImageToBase64_BFL","pos":[360,1450],"size":[330,60],"flags":{},"order":8,"mode":4,"inputs":[{"localized_name":"image","name":"image","type":"IMAGE","link":6},{"localized_name":"image_format","name":"image_format","shape":7,"type":"COMBO","widget":{"name":"image_format"},"link":null}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","links":[8]}],"properties":{"Node name for S&R":"ImageToBase64_BFL"},"widgets_values":["jpeg"],"widgets_values_named":{"image_format":"jpeg"}},{"id":9,"type":"PrimitiveString","pos":[360,1570],"size":[330,60],"flags":{},"order":3,"mode":4,"inputs":[{"localized_name":"value","name":"value","type":"STRING","widget":{"name":"value"},"link":null}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","links":[9]}],"properties":{"Node name for S&R":"PrimitiveString"},"widgets_values":["https://cdn.sanity.io/images/2gpum2i6/production/dc642f5b01040c4afc46c1b4f8c4945152932683-1350x1800.webp"],"widgets_values_named":{"value":"https://cdn.sanity.io/images/2gpum2i6/production/dc642f5b01040c4afc46c1b4f8c4945152932683-1350x1800.webp"}},{"id":10,"type":"Flux3Image_BFL","pos":[720,1450],"size":[420,560],"flags":{},"order":4,"mode":4,"inputs":[{"localized_name":"image_1","name":"image_1","shape":7,"type":"STRING","link":8},{"localized_name":"image_2","name":"image_2","shape":7,"type":"STRING","link":9},{"localized_name":"image_3","name":"image_3","shape":7,"type":"STRING","link":null},{"localized_name":"image_4","name":"image_4","shape":7,"type":"STRING","link":null},{"localized_name":"image_5","name":"image_5","shape":7,"type":"STRING","link":null},{"localized_name":"image_6","name":"image_6","shape":7,"type":"STRING","link":null},{"localized_name":"image_7","name":"image_7","shape":7,"type":"STRING","link":null},{"localized_name":"image_8","name":"image_8","shape":7,"type":"STRING","link":null},{"localized_name":"image_9","name":"image_9","shape":7,"type":"STRING","link":null},{"localized_name":"image_10","name":"image_10","shape":7,"type":"STRING","link":null},{"localized_name":"config","name":"config","shape":7,"type":"BFL_CONFIG","link":7},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null},{"localized_name":"aspect_ratio","name":"aspect_ratio","type":"COMBO","widget":{"name":"aspect_ratio"},"link":null},{"localized_name":"grounding","name":"grounding","type":"BOOLEAN","widget":{"name":"grounding"},"link":null},{"localized_name":"safety_tolerance","name":"safety_tolerance","type":"INT","widget":{"name":"safety_tolerance"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[10]}],"properties":{"Node name for S&R":"Flux3Image_BFL"},"widgets_values":["Turn Image 1 in the style of Image 2","1k","auto",true,2],"widgets_values_named":{"prompt":"Turn Image 1 in the style of Image 2","resolution":"1k","aspect_ratio":"auto","grounding":true,"safety_tolerance":2}},{"id":11,"type":"PreviewImage","pos":[1170,1450],"size":[520,520],"flags":{},"order":5,"mode":4,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":10}],"outputs":[{"localized_name":"images","name":"images","type":"IMAGE","links":null}],"properties":{"Node name for S&R":"PreviewImage"}}],"links":[[1,1,0,2,10,"BFL_CONFIG"],[2,2,0,3,0,"IMAGE"],[3,1,0,5,10,"BFL_CONFIG"],[4,4,0,5,0,"STRING"],[5,5,0,6,0,"IMAGE"],[6,7,0,8,0,"IMAGE"],[7,1,0,10,10,"BFL_CONFIG"],[8,8,0,10,0,"STRING"],[9,9,0,10,1,"STRING"],[10,10,0,11,0,"IMAGE"]],"groups":[{"id":1,"title":"FLUX.3 Image — Text to Image (bounding boxes in the prompt)","bounding":[0,0,1720,650],"color":"#3f789e","flags":{}},{"id":2,"title":"FLUX.3 Image — Edit an Image (reference by URL)","bounding":[0,690,1720,650],"color":"#3f789e","flags":{}},{"id":3,"title":"FLUX.3 Image — Style Transfer (Image 1 in the style of Image 2)","bounding":[0,1380,1720,650],"color":"#3f789e","flags":{}}],"config":{},"extra":{"ds":{"scale":0.42,"offset":[560,140]}},"version":0.4} \ No newline at end of file +{"id":"1c98fb27-2fb5-4bf0-9f69-0a0c13d884c0","revision":0,"last_node_id":16,"last_link_id":15,"nodes":[{"id":1,"type":"FluxConfig_BFL","pos":[-420,330],"size":[270,106],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"x_key","name":"x_key","type":"STRING","widget":{"name":"x_key"},"link":null},{"localized_name":"base_url","name":"base_url","type":"STRING","widget":{"name":"base_url"},"link":null},{"localized_name":"region","name":"region","shape":7,"type":"COMBO","widget":{"name":"region"},"link":null}],"outputs":[{"localized_name":"config","name":"config","type":"BFL_CONFIG","links":[1,3,7,11,14]}],"properties":{"Node name for S&R":"FluxConfig_BFL"},"widgets_values":["","https://api.bfl.ai/v1/","none"],"widgets_values_named":{"x_key":"","base_url":"https://api.bfl.ai/v1/","region":"none"}},{"id":2,"type":"Flux3Image_BFL","pos":[720,70],"size":[420,560],"flags":{},"order":6,"mode":4,"inputs":[{"localized_name":"image_1","name":"image_1","shape":7,"type":"STRING","link":null},{"localized_name":"image_2","name":"image_2","shape":7,"type":"STRING","link":null},{"localized_name":"image_3","name":"image_3","shape":7,"type":"STRING","link":null},{"localized_name":"image_4","name":"image_4","shape":7,"type":"STRING","link":null},{"localized_name":"image_5","name":"image_5","shape":7,"type":"STRING","link":null},{"localized_name":"image_6","name":"image_6","shape":7,"type":"STRING","link":null},{"localized_name":"image_7","name":"image_7","shape":7,"type":"STRING","link":null},{"localized_name":"image_8","name":"image_8","shape":7,"type":"STRING","link":null},{"localized_name":"image_9","name":"image_9","shape":7,"type":"STRING","link":null},{"localized_name":"image_10","name":"image_10","shape":7,"type":"STRING","link":null},{"localized_name":"config","name":"config","shape":7,"type":"BFL_CONFIG","link":1},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null},{"localized_name":"aspect_ratio","name":"aspect_ratio","type":"COMBO","widget":{"name":"aspect_ratio"},"link":null},{"localized_name":"grounding","name":"grounding","type":"BOOLEAN","widget":{"name":"grounding"},"link":null},{"localized_name":"safety_tolerance","name":"safety_tolerance","type":"INT","widget":{"name":"safety_tolerance"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[2]}],"properties":{"Node name for S&R":"Flux3Image_BFL"},"widgets_values":["A black silhouette of a running person \non a flat chartreuse background .\n\n[\n {\"id\": \"background_1\", \"bbox\": [0, 0, 1000, 1000], \"desc\": \"chartreuse field\"},\n {\"id\": \"runner_1\", \"bbox\": [150, 150, 850, 850], \"desc\": \"running silhouette\"}\n]","1k","auto",true,2],"widgets_values_named":{"prompt":"A black silhouette of a running person \non a flat chartreuse background .\n\n[\n {\"id\": \"background_1\", \"bbox\": [0, 0, 1000, 1000], \"desc\": \"chartreuse field\"},\n {\"id\": \"runner_1\", \"bbox\": [150, 150, 850, 850], \"desc\": \"running silhouette\"}\n]","resolution":"1k","aspect_ratio":"auto","grounding":true,"safety_tolerance":2}},{"id":3,"type":"PreviewImage","pos":[1170,70],"size":[520,520],"flags":{},"order":9,"mode":4,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":2}],"outputs":[{"localized_name":"images","name":"images","type":"IMAGE","links":null}],"properties":{"Node name for S&R":"PreviewImage"}},{"id":4,"type":"PrimitiveString","pos":[360,760],"size":[330,60],"flags":{},"order":1,"mode":4,"inputs":[{"localized_name":"value","name":"value","type":"STRING","widget":{"name":"value"},"link":null}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","links":[4]}],"properties":{"Node name for S&R":"PrimitiveString"},"widgets_values":["https://cdn.sanity.io/images/2gpum2i6/production/4792198dfeba9223bf3ecf020fed2942de7f0bd7-1800x1200.webp"],"widgets_values_named":{"value":"https://cdn.sanity.io/images/2gpum2i6/production/4792198dfeba9223bf3ecf020fed2942de7f0bd7-1800x1200.webp"}},{"id":5,"type":"Flux3Image_BFL","pos":[720,760],"size":[420,560],"flags":{},"order":7,"mode":4,"inputs":[{"localized_name":"image_1","name":"image_1","shape":7,"type":"STRING","link":4},{"localized_name":"image_2","name":"image_2","shape":7,"type":"STRING","link":null},{"localized_name":"image_3","name":"image_3","shape":7,"type":"STRING","link":null},{"localized_name":"image_4","name":"image_4","shape":7,"type":"STRING","link":null},{"localized_name":"image_5","name":"image_5","shape":7,"type":"STRING","link":null},{"localized_name":"image_6","name":"image_6","shape":7,"type":"STRING","link":null},{"localized_name":"image_7","name":"image_7","shape":7,"type":"STRING","link":null},{"localized_name":"image_8","name":"image_8","shape":7,"type":"STRING","link":null},{"localized_name":"image_9","name":"image_9","shape":7,"type":"STRING","link":null},{"localized_name":"image_10","name":"image_10","shape":7,"type":"STRING","link":null},{"localized_name":"config","name":"config","shape":7,"type":"BFL_CONFIG","link":3},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null},{"localized_name":"aspect_ratio","name":"aspect_ratio","type":"COMBO","widget":{"name":"aspect_ratio"},"link":null},{"localized_name":"grounding","name":"grounding","type":"BOOLEAN","widget":{"name":"grounding"},"link":null},{"localized_name":"safety_tolerance","name":"safety_tolerance","type":"INT","widget":{"name":"safety_tolerance"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[5]}],"properties":{"Node name for S&R":"Flux3Image_BFL"},"widgets_values":["change the color of only one bird in the middle to #e01075","1k","auto",true,2],"widgets_values_named":{"prompt":"change the color of only one bird in the middle to #e01075","resolution":"1k","aspect_ratio":"auto","grounding":true,"safety_tolerance":2}},{"id":6,"type":"PreviewImage","pos":[1170,760],"size":[520,520],"flags":{},"order":10,"mode":4,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":5}],"outputs":[{"localized_name":"images","name":"images","type":"IMAGE","links":null}],"properties":{"Node name for S&R":"PreviewImage"}},{"id":7,"type":"LoadImage","pos":[30,1450],"size":[300,340],"flags":{},"order":2,"mode":4,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[6]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"Node name for S&R":"LoadImage"},"widgets_values":["example.png","image"],"widgets_values_named":{"image":"example.png","upload":"image"}},{"id":8,"type":"ImageToBase64_BFL","pos":[360,1450],"size":[330,60],"flags":{},"order":8,"mode":4,"inputs":[{"localized_name":"image","name":"image","type":"IMAGE","link":6},{"localized_name":"image_format","name":"image_format","shape":7,"type":"COMBO","widget":{"name":"image_format"},"link":null}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","links":[8]}],"properties":{"Node name for S&R":"ImageToBase64_BFL"},"widgets_values":["jpeg"],"widgets_values_named":{"image_format":"jpeg"}},{"id":9,"type":"PrimitiveString","pos":[360,1570],"size":[330,60],"flags":{},"order":3,"mode":4,"inputs":[{"localized_name":"value","name":"value","type":"STRING","widget":{"name":"value"},"link":null}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","links":[9]}],"properties":{"Node name for S&R":"PrimitiveString"},"widgets_values":["https://cdn.sanity.io/images/2gpum2i6/production/dc642f5b01040c4afc46c1b4f8c4945152932683-1350x1800.webp"],"widgets_values_named":{"value":"https://cdn.sanity.io/images/2gpum2i6/production/dc642f5b01040c4afc46c1b4f8c4945152932683-1350x1800.webp"}},{"id":10,"type":"Flux3Image_BFL","pos":[720,1450],"size":[420,560],"flags":{},"order":4,"mode":4,"inputs":[{"localized_name":"image_1","name":"image_1","shape":7,"type":"STRING","link":8},{"localized_name":"image_2","name":"image_2","shape":7,"type":"STRING","link":9},{"localized_name":"image_3","name":"image_3","shape":7,"type":"STRING","link":null},{"localized_name":"image_4","name":"image_4","shape":7,"type":"STRING","link":null},{"localized_name":"image_5","name":"image_5","shape":7,"type":"STRING","link":null},{"localized_name":"image_6","name":"image_6","shape":7,"type":"STRING","link":null},{"localized_name":"image_7","name":"image_7","shape":7,"type":"STRING","link":null},{"localized_name":"image_8","name":"image_8","shape":7,"type":"STRING","link":null},{"localized_name":"image_9","name":"image_9","shape":7,"type":"STRING","link":null},{"localized_name":"image_10","name":"image_10","shape":7,"type":"STRING","link":null},{"localized_name":"config","name":"config","shape":7,"type":"BFL_CONFIG","link":7},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null},{"localized_name":"aspect_ratio","name":"aspect_ratio","type":"COMBO","widget":{"name":"aspect_ratio"},"link":null},{"localized_name":"grounding","name":"grounding","type":"BOOLEAN","widget":{"name":"grounding"},"link":null},{"localized_name":"safety_tolerance","name":"safety_tolerance","type":"INT","widget":{"name":"safety_tolerance"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[10]}],"properties":{"Node name for S&R":"Flux3Image_BFL"},"widgets_values":["Turn Image 1 in the style of Image 2","1k","auto",true,2],"widgets_values_named":{"prompt":"Turn Image 1 in the style of Image 2","resolution":"1k","aspect_ratio":"auto","grounding":true,"safety_tolerance":2}},{"id":11,"type":"PreviewImage","pos":[1170,1450],"size":[520,520],"flags":{},"order":5,"mode":4,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":10}],"outputs":[{"localized_name":"images","name":"images","type":"IMAGE","links":null}],"properties":{"Node name for S&R":"PreviewImage"}},{"id":12,"type":"Flux3ImageKlein_BFL","pos":[720,2140],"size":[420,640],"flags":{},"order":12,"mode":4,"inputs":[{"localized_name":"image_1","name":"image_1","shape":7,"type":"STRING","link":null},{"localized_name":"image_2","name":"image_2","shape":7,"type":"STRING","link":null},{"localized_name":"image_3","name":"image_3","shape":7,"type":"STRING","link":null},{"localized_name":"image_4","name":"image_4","shape":7,"type":"STRING","link":null},{"localized_name":"image_5","name":"image_5","shape":7,"type":"STRING","link":null},{"localized_name":"image_6","name":"image_6","shape":7,"type":"STRING","link":null},{"localized_name":"image_7","name":"image_7","shape":7,"type":"STRING","link":null},{"localized_name":"image_8","name":"image_8","shape":7,"type":"STRING","link":null},{"localized_name":"image_9","name":"image_9","shape":7,"type":"STRING","link":null},{"localized_name":"image_10","name":"image_10","shape":7,"type":"STRING","link":null},{"localized_name":"config","name":"config","shape":7,"type":"BFL_CONFIG","link":11},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null},{"localized_name":"aspect_ratio","name":"aspect_ratio","type":"COMBO","widget":{"name":"aspect_ratio"},"link":null},{"localized_name":"safety_tolerance","name":"safety_tolerance","type":"INT","widget":{"name":"safety_tolerance"},"link":null},{"localized_name":"output_format","name":"output_format","type":"COMBO","widget":{"name":"output_format"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"},"link":null,"shape":7},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"},"link":null,"shape":7},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null,"shape":7}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[12]}],"properties":{"Node name for S&R":"Flux3ImageKlein_BFL"},"widgets_values":["A red vintage bicycle leaning against a whitewashed wall \nbelow a blue shuttered window .\n\n[\n {\"id\": \"wall_1\", \"bbox\": [0, 0, 1000, 1000], \"desc\": \"whitewashed wall\"},\n {\"id\": \"window_1\", \"bbox\": [300, 80, 700, 420], \"desc\": \"blue shuttered window\"},\n {\"id\": \"bike_1\", \"bbox\": [120, 480, 880, 960], \"desc\": \"red vintage bicycle\"}\n]","1k","1:1",2,"png",16,0,0,42,"fixed"],"widgets_values_named":{"prompt":"A red vintage bicycle leaning against a whitewashed wall \nbelow a blue shuttered window .\n\n[\n {\"id\": \"wall_1\", \"bbox\": [0, 0, 1000, 1000], \"desc\": \"whitewashed wall\"},\n {\"id\": \"window_1\", \"bbox\": [300, 80, 700, 420], \"desc\": \"blue shuttered window\"},\n {\"id\": \"bike_1\", \"bbox\": [120, 480, 880, 960], \"desc\": \"red vintage bicycle\"}\n]","resolution":"1k","aspect_ratio":"1:1","safety_tolerance":2,"output_format":"png","steps":16,"width":0,"height":0,"seed":42}},{"id":13,"type":"PreviewImage","pos":[1170,2140],"size":[520,520],"flags":{},"order":13,"mode":4,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":12}],"outputs":[{"localized_name":"images","name":"images","type":"IMAGE","links":null}],"properties":{"Node name for S&R":"PreviewImage"}},{"id":14,"type":"PrimitiveString","pos":[360,2940],"size":[330,60],"flags":{},"order":11,"mode":4,"inputs":[{"localized_name":"value","name":"value","type":"STRING","widget":{"name":"value"},"link":null}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","links":[13]}],"properties":{"Node name for S&R":"PrimitiveString"},"widgets_values":["https://cdn.sanity.io/images/2gpum2i6/production/4792198dfeba9223bf3ecf020fed2942de7f0bd7-1800x1200.webp"],"widgets_values_named":{"value":"https://cdn.sanity.io/images/2gpum2i6/production/4792198dfeba9223bf3ecf020fed2942de7f0bd7-1800x1200.webp"}},{"id":15,"type":"Flux3ImageKlein_BFL","pos":[720,2940],"size":[420,640],"flags":{},"order":14,"mode":4,"inputs":[{"localized_name":"image_1","name":"image_1","shape":7,"type":"STRING","link":13},{"localized_name":"image_2","name":"image_2","shape":7,"type":"STRING","link":null},{"localized_name":"image_3","name":"image_3","shape":7,"type":"STRING","link":null},{"localized_name":"image_4","name":"image_4","shape":7,"type":"STRING","link":null},{"localized_name":"image_5","name":"image_5","shape":7,"type":"STRING","link":null},{"localized_name":"image_6","name":"image_6","shape":7,"type":"STRING","link":null},{"localized_name":"image_7","name":"image_7","shape":7,"type":"STRING","link":null},{"localized_name":"image_8","name":"image_8","shape":7,"type":"STRING","link":null},{"localized_name":"image_9","name":"image_9","shape":7,"type":"STRING","link":null},{"localized_name":"image_10","name":"image_10","shape":7,"type":"STRING","link":null},{"localized_name":"config","name":"config","shape":7,"type":"BFL_CONFIG","link":14},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null},{"localized_name":"aspect_ratio","name":"aspect_ratio","type":"COMBO","widget":{"name":"aspect_ratio"},"link":null},{"localized_name":"safety_tolerance","name":"safety_tolerance","type":"INT","widget":{"name":"safety_tolerance"},"link":null},{"localized_name":"output_format","name":"output_format","type":"COMBO","widget":{"name":"output_format"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"},"link":null,"shape":7},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"},"link":null,"shape":7},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null,"shape":7}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[15]}],"properties":{"Node name for S&R":"Flux3ImageKlein_BFL"},"widgets_values":["turn the scene into a pencil sketch","1k","auto",2,"jpeg",16,0,0,-1,"fixed"],"widgets_values_named":{"prompt":"turn the scene into a pencil sketch","resolution":"1k","aspect_ratio":"auto","safety_tolerance":2,"output_format":"jpeg","steps":16,"width":0,"height":0,"seed":-1}},{"id":16,"type":"PreviewImage","pos":[1170,2940],"size":[520,520],"flags":{},"order":15,"mode":4,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":15}],"outputs":[{"localized_name":"images","name":"images","type":"IMAGE","links":null}],"properties":{"Node name for S&R":"PreviewImage"}}],"links":[[1,1,0,2,10,"BFL_CONFIG"],[2,2,0,3,0,"IMAGE"],[3,1,0,5,10,"BFL_CONFIG"],[4,4,0,5,0,"STRING"],[5,5,0,6,0,"IMAGE"],[6,7,0,8,0,"IMAGE"],[7,1,0,10,10,"BFL_CONFIG"],[8,8,0,10,0,"STRING"],[9,9,0,10,1,"STRING"],[10,10,0,11,0,"IMAGE"],[11,1,0,12,10,"BFL_CONFIG"],[12,12,0,13,0,"IMAGE"],[13,14,0,15,0,"STRING"],[14,1,0,15,10,"BFL_CONFIG"],[15,15,0,16,0,"IMAGE"]],"groups":[{"id":1,"title":"FLUX.3 Image — Text to Image (bounding boxes in the prompt)","bounding":[0,0,1720,650],"color":"#3f789e","flags":{}},{"id":2,"title":"FLUX.3 Image — Edit an Image (reference by URL)","bounding":[0,690,1720,650],"color":"#3f789e","flags":{}},{"id":3,"title":"FLUX.3 Image — Style Transfer (Image 1 in the style of Image 2)","bounding":[0,1380,1720,650],"color":"#3f789e","flags":{}},{"id":4,"title":"FLUX.3 Image Klein — Text to Image (bounding boxes, fixed seed)","bounding":[0,2070,1720,760],"color":"#3f789e","flags":{}},{"id":5,"title":"FLUX.3 Image Klein — Edit an Image (reference by URL)","bounding":[0,2870,1720,760],"color":"#3f789e","flags":{}}],"config":{},"extra":{"ds":{"scale":0.42,"offset":[560,140]}},"version":0.4} \ No newline at end of file