![ComfyUI Native Flux 1.1 [pro] Ultra Image node](https://mintcdn.com/dripart-nav-minimax-h3-license-pricing/RVgAlp8EAxN1J0Sq/images/built-in-nodes/api_nodes/bfl/flux-1-1-pro-ultra-image.jpg?fit=max&auto=format&n=RVgAlp8EAxN1J0Sq&q=85&s=63deaea7aee1f2d1c75203b9a285afdf)
- Text-to-Image: Generate high-quality images from text prompts (when no image input is used)
- Image-to-Image: Combine existing images with prompts to create new images that blend features from both (Remix mode)
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Create images using Black Forest Labs’ high-resolution image generation API
![ComfyUI Native Flux 1.1 [pro] Ultra Image node](https://mintcdn.com/dripart-nav-minimax-h3-license-pricing/RVgAlp8EAxN1J0Sq/images/built-in-nodes/api_nodes/bfl/flux-1-1-pro-ultra-image.jpg?fit=max&auto=format&n=RVgAlp8EAxN1J0Sq&q=85&s=63deaea7aee1f2d1c75203b9a285afdf)
| Parameter | Type | Default | Description |
|---|---|---|---|
| prompt | String | "" | Text description for generating the image |
| prompt_upsampling | Boolean | False | Whether to use prompt upsampling technique to enhance details. When enabled, automatically modifies prompts for more creative generation, but results become non-deterministic (same seed won’t produce exactly the same result) |
| seed | Integer | 0 | Random seed value, controls generation randomness |
| aspect_ratio | String | ”16:9” | Width-to-height ratio of the image, must be between 1:4 and 4:1 |
| raw | Boolean | False | When set to True, generates less processed, more natural-looking images |
| Parameter | Type | Default | Description |
|---|---|---|---|
| image_prompt | Image | None | Optional input, used for Image-to-Image (Remix) mode |
| image_prompt_strength | Float | 0.1 | Active when image_prompt is input, adjusts the blend between prompt and image prompt. Higher values make output closer to input image, range is 0.0-1.0 |
| Output | Type | Description |
|---|---|---|
| IMAGE | Image | Generated high-resolution image result |
class FluxProUltraImageNode(ComfyNodeABC):
"""
Generates images synchronously based on prompt and resolution.
"""
MINIMUM_RATIO = 1 / 4
MAXIMUM_RATIO = 4 / 1
MINIMUM_RATIO_STR = "1:4"
MAXIMUM_RATIO_STR = "4:1"
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"prompt": (
IO.STRING,
{
"multiline": True,
"default": "",
"tooltip": "Prompt for the image generation",
},
),
"prompt_upsampling": (
IO.BOOLEAN,
{
"default": False,
"tooltip": "Whether to perform upsampling on the prompt. If active, automatically modifies the prompt for more creative generation, but results are nondeterministic (same seed will not produce exactly the same result).",
},
),
"seed": (
IO.INT,
{
"default": 0,
"min": 0,
"max": 0xFFFFFFFFFFFFFFFF,
"control_after_generate": True,
"tooltip": "The random seed used for creating the noise.",
},
),
"aspect_ratio": (
IO.STRING,
{
"default": "16:9",
"tooltip": "Aspect ratio of image; must be between 1:4 and 4:1.",
},
),
"raw": (
IO.BOOLEAN,
{
"default": False,
"tooltip": "When True, generate less processed, more natural-looking images.",
},
),
},
"optional": {
"image_prompt": (IO.IMAGE,),
"image_prompt_strength": (
IO.FLOAT,
{
"default": 0.1,
"min": 0.0,
"max": 1.0,
"step": 0.01,
"tooltip": "Blend between the prompt and the image prompt.",
},
),
},
"hidden": {
"auth_token": "AUTH_TOKEN_COMFY_ORG",
},
}
@classmethod
def VALIDATE_INPUTS(cls, aspect_ratio: str):
try:
validate_aspect_ratio(
aspect_ratio,
minimum_ratio=cls.MINIMUM_RATIO,
maximum_ratio=cls.MAXIMUM_RATIO,
minimum_ratio_str=cls.MINIMUM_RATIO_STR,
maximum_ratio_str=cls.MAXIMUM_RATIO_STR,
)
except Exception as e:
return str(e)
return True
RETURN_TYPES = (IO.IMAGE,)
DESCRIPTION = cleandoc(__doc__ or "") # Handle potential None value
FUNCTION = "api_call"
API_NODE = True
CATEGORY = "api node/image/bfl"
def api_call(
self,
prompt: str,
aspect_ratio: str,
prompt_upsampling=False,
raw=False,
seed=0,
image_prompt=None,
image_prompt_strength=0.1,
auth_token=None,
**kwargs,
):
operation = SynchronousOperation(
endpoint=ApiEndpoint(
path="/proxy/bfl/flux-pro-1.1-ultra/generate",
method=HttpMethod.POST,
request_model=BFLFluxProUltraGenerateRequest,
response_model=BFLFluxProGenerateResponse,
),
request=BFLFluxProUltraGenerateRequest(
prompt=prompt,
prompt_upsampling=prompt_upsampling,
seed=seed,
aspect_ratio=validate_aspect_ratio(
aspect_ratio,
minimum_ratio=self.MINIMUM_RATIO,
maximum_ratio=self.MAXIMUM_RATIO,
minimum_ratio_str=self.MINIMUM_RATIO_STR,
maximum_ratio_str=self.MAXIMUM_RATIO_STR,
),
raw=raw,
image_prompt=(
image_prompt
if image_prompt is None
else convert_image_to_base64(image_prompt)
),
image_prompt_strength=(
None if image_prompt is None else round(image_prompt_strength, 2)
),
),
auth_token=auth_token,
)
output_image = handle_bfl_synchronous_operation(operation)
return (output_image,)
Was this page helpful?