## Light
The light settings in this section are used to set the default lighting settings for 3D components. The corresponding settings in the 3D settings in ComfyUI can also be modified.
### Light Adjustment Increment
* **Default Value**: 0.5
* **Function**: Controls the step size when adjusting light intensity in 3D scenes. Smaller step values allow for finer light adjustments, while larger values make each adjustment more noticeable
### Light Intensity Minimum
* **Default Value**: 1
* **Function**: Sets the minimum light intensity value allowed in 3D scenes. This defines the lowest brightness that can be set when adjusting the lighting of any 3D control
### Light Intensity Maximum
* **Default Value**: 10
* **Function**: Sets the maximum light intensity value allowed in 3D scenes. This defines the upper limit of brightness that can be set when adjusting the lighting of any 3D control
### Initial Light Intensity
* **Default Value**: 3
* **Function**: Sets the default brightness level of lights in 3D scenes. This value determines the intensity with which lights illuminate objects when creating new 3D controls, but each control can be adjusted individually after creation
## Scene
### Initial Background Color
* **Function**: Controls the default background color of 3D scenes. This setting determines the background appearance when creating new 3D components, but each component can be adjusted individually after creation
* **Default Value**: `282828` (dark gray)
Change the background color, which can also be adjusted in the canvas.
### Initial Preview Visibility
* **Function**: Controls whether the preview screen is displayed by default when creating new 3D components. This default setting can still be toggled individually for each component after creation
* **Default Value**: true (enabled)
### Initial Grid Visibility
* **Function**: Controls whether the grid is displayed by default when creating new 3D components. This default setting can still be toggled individually for each component after creation
* **Default Value**: true (enabled)
Hide or show the grid on initialization
---
# Source: https://docs.comfy.org/built-in-nodes/BasicScheduler.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# BasicScheduler - ComfyUI Built-in Node Documentation
> The BasicScheduler node is used to compute a sequence of sigma values for diffusion models based on the provided scheduler, model, and denoising parameters.
The `BasicScheduler` node is designed to compute a sequence of sigma values for diffusion models based on the provided scheduler, model, and denoising parameters. It dynamically adjusts the total number of steps based on the denoise factor to fine-tune the diffusion process, providing precise "recipes" for different stages in advanced sampling processes that require fine control (such as multi-stage sampling).
## Inputs
| Parameter | Data Type | Input Type | Default | Range | Metaphor Description | Technical Purpose |
| ----------- | -------------- | ---------- | ------- | --------- | ------------------------------------------------------------------------- | ---------------------------------------------------------- |
| `model` | MODEL | Input | - | - | **Canvas Type**: Different canvas materials need different paint formulas | Diffusion model object, determines sigma calculation basis |
| `scheduler` | COMBO\[STRING] | Widget | - | 9 options | **Mixing Technique**: Choose how paint concentration changes | Scheduling algorithm, controls noise decay mode |
| `steps` | INT | Widget | 20 | 1-10000 | **Mixing Count**: 20 mixes vs 50 mixes precision difference | Sampling steps, affects generation quality and speed |
| `denoise` | FLOAT | Widget | 1.0 | 0.0-1.0 | **Creation Intensity**: Control level from fine-tuning to repainting | Denoising strength, supports partial repainting scenarios |
### Scheduler Types
Based on source code `comfy.samplers.SCHEDULER_NAMES`, supports the following 9 schedulers:
| Scheduler Name | Characteristics | Use Cases | Noise Decay Pattern |
| --------------------- | ----------------- | ----------------------------- | ----------------------------- |
| **normal** | Standard linear | General scenarios, balanced | Uniform decay |
| **karras** | Smooth transition | High quality, detail-rich | Smooth non-linear decay |
| **exponential** | Exponential decay | Fast generation, efficiency | Exponential rapid decay |
| **sgm\_uniform** | SGM uniform | Specific model optimization | SGM optimized decay |
| **simple** | Simple scheduling | Quick testing, basic use | Simplified decay |
| **ddim\_uniform** | DDIM uniform | DDIM sampling optimization | DDIM specific decay |
| **beta** | Beta distribution | Special distribution needs | Beta function decay |
| **linear\_quadratic** | Linear quadratic | Complex scenario optimization | Quadratic function decay |
| **kl\_optimal** | KL optimal | Theoretical optimization | KL divergence optimized decay |
## Outputs
| Parameter | Data Type | Output Type | Metaphor Description | Technical Meaning |
| --------- | --------- | ----------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------- |
| `sigmas` | SIGMAS | Output | **Paint Recipe Chart**: Detailed paint concentration list for step-by-step use | Noise level sequence, guides diffusion model denoising process |
## Node Role: Artist's Color Mixing Assistant
Imagine you are an artist creating a clear image from a chaotic mixture of paint (noise). `BasicScheduler` acts like your **professional color mixing assistant**, whose job is to prepare a series of precise paint concentration recipes:
### Workflow
* **Step 1**: Use 90% concentration paint (high noise level)
* **Step 2**: Use 80% concentration paint
* **Step 3**: Use 70% concentration paint
* **...**
* **Final Step**: Use 0% concentration (clean canvas, no noise)
### Color Assistant's Special Skills
**Different mixing methods (scheduler)**:
* **"karras" mixing method**: Paint concentration changes very smoothly, like professional artist's gradient technique
* **"exponential" mixing method**: Paint concentration decreases rapidly, suitable for quick creation
* **"linear" mixing method**: Paint concentration decreases uniformly, stable and controllable
**Fine control (steps)**:
* **20 mixes**: Quick painting, efficiency priority
* **50 mixes**: Fine painting, quality priority
**Creation intensity (denoise)**:
* **1.0 = Complete new creation**: Start completely from blank canvas
* **0.5 = Half transformation**: Keep half of original painting, transform half
* **0.2 = Fine adjustment**: Only make subtle adjustments to original painting
### Collaboration with Other Nodes
`BasicScheduler` (Color Assistant) → Prepare Recipe → `SamplerCustom` (Artist) → Actual Painting → Completed Work
---
# Source: https://docs.comfy.org/built-in-nodes/Canny.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# Canny - ComfyUI Built-in Node Documentation
> The Canny node used to extract edge lines from photos.
Extract all edge lines from photos, like using a pen to outline a photo, drawing out the contours and detail boundaries of objects.
## Working Principle
Imagine you are an artist who needs to use a pen to outline a photo. The Canny node acts like an intelligent assistant, helping you decide where to draw lines (edges) and where not to.
This process is like a screening job:
* **High threshold** is the "must draw line standard": only very obvious and clear contour lines will be drawn, such as facial contours of people and building frames
* **Low threshold** is the "definitely don't draw line standard": edges that are too weak will be ignored to avoid drawing noise and meaningless lines
* **Middle area**: edges between the two standards will be drawn together if they connect to "must draw lines", but won't be drawn if they are isolated
The final output is a black and white image, where white parts are detected edge lines and black parts are areas without edges.
## Inputs
| Parameter Name | Data Type | Input Type | Default | Range | Function Description |
| ---------------- | --------- | ---------- | ------- | --------- | --------------------------------------------------------------------------------------------------------------- |
| `image` | IMAGE | Input | - | - | Original photo that needs edge extraction |
| `low_threshold` | FLOAT | Widget | 0.4 | 0.01-0.99 | Low threshold, determines how weak edges to ignore. Lower values preserve more details but may produce noise |
| `high_threshold` | FLOAT | Widget | 0.8 | 0.01-0.99 | High threshold, determines how strong edges to preserve. Higher values only keep the most obvious contour lines |
## Outputs
| Output Name | Data Type | Description |
| ----------- | --------- | ----------------------------------------------------------------------------------------------- |
| `image` | IMAGE | Black and white edge image, white lines are detected edges, black areas are parts without edges |
## Parameter Comparison
**Common Issues:**
* Broken edges: Try lowering high threshold
* Too much noise: Raise low threshold
* Missing important details: Lower low threshold
* Edges too rough: Check input image quality and resolution
---
# Source: https://docs.comfy.org/built-in-nodes/CheckpointLoaderSimple.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# CheckpointLoaderSimple - ComfyUI Built-in Node Documentation
> The CheckpointLoaderSimple node is used to load model files from specified locations and decompose them into three core components: the main model, text encoder, and image encoder/decoder.
This is a model loader node that loads model files from specified locations and decomposes them into three core components: the main model, text encoder, and image encoder/decoder.
This node automatically detects all model files in the `ComfyUI/models/checkpoints` folder, as well as additional paths configured in your `extra_model_paths.yaml` file.
1. **Model Compatibility**: Ensure the selected model is compatible with your workflow. Different model types (such as SD1.5, SDXL, Flux, etc.) need to be paired with corresponding samplers and other nodes
2. **File Management**: Place model files in the `ComfyUI/models/checkpoints` folder, or configure other paths through extra\_model\_paths.yaml
3. **Interface Refresh**: If new model files are added while ComfyUI is running, you need to refresh the browser (Ctrl+R) to see the new files in the dropdown list
## Inputs
| Parameter | Data Type | Input Type | Default | Range | Description |
| ----------- | --------- | ---------- | ------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `ckpt_name` | STRING | Widget | null | All model files in checkpoints folder | Select the checkpoint model file name to load, which determines the AI model used for subsequent image generation |
## Outputs
| Output Name | Data Type | Description |
| ----------- | --------- | --------------------------------------------------------------------------------------------------------------- |
| `MODEL` | MODEL | The main diffusion model used for image denoising generation, the core component of AI image creation |
| `CLIP` | CLIP | The model used for encoding text prompts, converting text descriptions into information that AI can understand |
| `VAE` | VAE | The model used for image encoding and decoding, responsible for converting between pixel space and latent space |
---
# Source: https://docs.comfy.org/built-in-nodes/ClipLoader.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ClipLoader - ComfyUI Built-in Node Documentation
> The ClipLoader node is used to load CLIP text encoder models independently.
This node is primarily used for loading CLIP text encoder models independently.
The model files can be detected in the following paths:
* "ComfyUI/models/text\_encoders/"
* "ComfyUI/models/clip/"
> If you save a model after ComfyUI has started, you'll need to refresh the ComfyUI frontend to get the latest model file path list
Supported model formats:
* `.ckpt`
* `.pt`
* `.pt2`
* `.bin`
* `.pth`
* `.safetensors`
* `.pkl`
* `.sft`
For more details on the latest model file loading, please refer to [folder\_paths](https://github.com/comfyanonymous/ComfyUI/blob/master/folder_paths.py)
## Inputs
| Parameter | Data Type | Description |
| ----------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `clip_name` | COMBO\[STRING] | Specifies the name of the CLIP model to be loaded. This name is used to locate the model file within a predefined directory structure. |
| `type` | COMBO\[STRING] | Determines the type of CLIP model to load. As ComfyUI supports more models, new types will be added here. Please check the `CLIPLoader` class definition in [node.py](https://github.com/comfyanonymous/ComfyUI/blob/master/nodes.py) for details. |
| `device` | COMBO\[STRING] | Choose the device for loading the CLIP model. `default` will run the model on GPU, while selecting `CPU` will force loading on CPU. |
### Device Options Explained
**When to choose "default":**
* Have sufficient GPU memory
* Want the best performance
* Let the system optimize memory usage automatically
**When to choose "cpu":**
* Insufficient GPU memory
* Need to reserve GPU memory for other models (like UNet)
* Running in a low VRAM environment
* Debugging or special purpose needs
**Performance Impact**
Running on CPU will be much slower than GPU, but it can save valuable GPU memory for other more important model components. In memory-constrained environments, putting the CLIP model on CPU is a common optimization strategy.
### Supported Combinations
| Model Type | Corresponding Encoder |
| ----------------- | ----------------------- |
| stable\_diffusion | clip-l |
| stable\_cascade | clip-g |
| sd3 | t5 xxl/ clip-g / clip-l |
| stable\_audio | t5 base |
| mochi | t5 xxl |
| cosmos | old t5 xxl |
| lumina2 | gemma 2 2B |
| wan | umt5 xxl |
As ComfyUI updates, these combinations may expand. For details, please refer to the `CLIPLoader` class definition in [node.py](https://github.com/comfyanonymous/ComfyUI/blob/master/nodes.py)
## Outputs
| Parameter | Data Type | Description |
| --------- | --------- | ------------------------------------------------------------------------------- |
| `clip` | CLIP | The loaded CLIP model, ready for use in downstream tasks or further processing. |
## Additional Notes
CLIP models play a core role as text encoders in ComfyUI, responsible for converting text prompts into numerical representations that diffusion models can understand. You can think of them as translators, responsible for translating your text into a language that large models can understand. Of course, different models have their own "dialects," so different CLIP encoders are needed between different architectures to complete the text encoding process.
---
# Source: https://docs.comfy.org/built-in-nodes/ClipMergeSimple.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ClipMergeSimple - ComfyUI Built-in Node Documentation
> The ClipMergeSimple node is used to combine two CLIP text encoder models based on a specified ratio.
`CLIPMergeSimple` is an advanced model merging node used to combine two CLIP text encoder models based on a specified ratio.
This node specializes in merging two CLIP models based on a specified ratio, effectively blending their characteristics. It selectively applies patches from one model to another, excluding specific components like position IDs and logit scale, to create a hybrid model that combines features from both source models.
## Inputs
| Parameter | Data Type | Description |
| --------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `clip1` | CLIP | The first CLIP model to be merged. It serves as the base model for the merging process. |
| `clip2` | CLIP | The second CLIP model to be merged. Its key patches, except for position IDs and logit scale, are applied to the first model based on the specified ratio. |
| `ratio` | FLOAT | Range `0.0 - 1.0`, determines the proportion of features from the second model to blend into the first model. A ratio of 1.0 means fully adopting the second model's features, while 0.0 retains only the first model's features. |
## Outputs
| Parameter | Data Type | Description |
| --------- | --------- | ---------------------------------------------------------------------------------------------------------------- |
| `clip` | CLIP | The resulting merged CLIP model, incorporating features from both input models according to the specified ratio. |
## Merging Mechanism Explained
### Merging Algorithm
The node uses weighted averaging to merge the two models:
1. **Clone Base Model**: First clones `clip1` as the base model
2. **Get Patches**: Obtains all key patches from `clip2`
3. **Filter Special Keys**: Skips keys ending with `.position_ids` and `.logit_scale`
4. **Apply Weighted Merge**: Uses the formula `(1.0 - ratio) * clip1 + ratio * clip2`
### Ratio Parameter Explained
* **ratio = 0.0**: Fully uses clip1, ignores clip2
* **ratio = 0.5**: 50% contribution from each model
* **ratio = 1.0**: Fully uses clip2, ignores clip1
## Use Cases
1. **Model Style Fusion**: Combine characteristics of CLIP models trained on different data
2. **Performance Optimization**: Balance strengths and weaknesses of different models
3. **Experimental Research**: Explore combinations of different CLIP encoders
---
# Source: https://docs.comfy.org/built-in-nodes/ClipSave.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ClipSave - ComfyUI Built-in Node Documentation
> The ClipSave node is used to save CLIP text encoder models in SafeTensors format.
The `CLIPSave` node is designed for saving CLIP text encoder models in SafeTensors format. This node is part of advanced model merging workflows and is typically used in conjunction with nodes like `CLIPMergeSimple` and `CLIPMergeAdd`. The saved files use the SafeTensors format to ensure security and compatibility.
## Inputs
| Parameter | Data Type | Required | Default Value | Description |
| ---------------- | -------------- | -------- | -------------- | ------------------------------------------ |
| clip | CLIP | Yes | - | The CLIP model to be saved |
| filename\_prefix | STRING | Yes | "clip/ComfyUI" | The prefix path for the saved file |
| prompt | PROMPT | Hidden | - | Workflow prompt information (for metadata) |
| extra\_pnginfo | EXTRA\_PNGINFO | Hidden | - | Additional PNG information (for metadata) |
## Outputs
This node has no defined output types. It saves the processed files to the `ComfyUI/output/` folder.
### Multi-file Saving Strategy
The node saves different components based on the CLIP model type:
| Prefix Type | File Suffix | Description |
| ------------ | ----------- | --------------------- |
| `clip_l.` | `_clip_l` | CLIP-L text encoder |
| `clip_g.` | `_clip_g` | CLIP-G text encoder |
| Empty prefix | No suffix | Other CLIP components |
## Usage Notes
1. **File Location**: All files are saved in the `ComfyUI/output/` directory
2. **File Format**: Models are saved in SafeTensors format for security
3. **Metadata**: Includes workflow information and PNG metadata if available
4. **Naming Convention**: Uses the specified prefix plus appropriate suffixes based on model type
---
# Source: https://docs.comfy.org/built-in-nodes/ClipSetLastLayer.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ClipSetLastLayer - ComfyUI Built-in Node Documentation
> The ClipSetLastLayer node is used to control the processing depth of CLIP models.
`CLIP Set Last Layer` is a core node in ComfyUI for controlling the processing depth of CLIP models. It allows users to precisely control where the CLIP text encoder stops processing, affecting both the depth of text understanding and the style of generated images.
Imagine the CLIP model as a 24-layer intelligent brain:
* Shallow layers (1-8): Recognize basic letters and words
* Middle layers (9-16): Understand grammar and sentence structure
* Deep layers (17-24): Grasp abstract concepts and complex semantics
`CLIP Set Last Layer` works like a **"thinking depth controller"**:
-1: Use all 24 layers (complete understanding)
-2: Stop at layer 23 (slightly simplified)
-12: Stop at layer 13 (medium understanding)
-24: Use only layer 1 (basic understanding)
## Inputs
| Parameter | Data Type | Default | Range | Description |
| -------------------- | --------- | ------- | --------- | ----------------------------------------------------------------------------------- |
| `clip` | CLIP | - | - | The CLIP model to be modified |
| `stop_at_clip_layer` | INT | -1 | -24 to -1 | Specifies which layer to stop at, -1 uses all layers, -24 uses only the first layer |
## Outputs
| Output Name | Data Type | Description |
| ----------- | --------- | -------------------------------------------------------------------- |
| clip | CLIP | The modified CLIP model with the specified layer set as the last one |
## Why Set the Last Layer
* **Performance Optimization**: Like not needing a PhD to understand simple sentences, sometimes shallow understanding is enough and faster
* **Style Control**: Different levels of understanding produce different artistic styles
* **Compatibility**: Some models might perform better at specific layers
---
# Source: https://docs.comfy.org/built-in-nodes/ClipTextEncode.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ClipTextEncode - ComfyUI Built-in Node Documentation
> The ClipTextEncode node is used to convert text prompts into AI-understandable 'language' for image generation.
`CLIP Text Encode (CLIPTextEncode)` acts like a translator, converting your creative text prompts into a special "language" that AI can understand, helping the AI accurately interpret what kind of image you want to create.
Imagine communicating with a foreign artist - you need a translator to help accurately convey the artwork you want. This node acts as that translator, using the CLIP model (an AI model trained on vast amounts of image-text pairs) to understand your text descriptions and convert them into "instructions" that the AI art model can understand.
## Inputs
| Parameter | Data Type | Input Method | Default | Range | Description |
| --------- | --------- | --------------- | ------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| text | STRING | Text Input | Empty | Any text | Like detailed instructions to an artist, enter your image description here. Supports multi-line text for detailed descriptions. |
| clip | CLIP | Model Selection | None | Loaded CLIP models | Like choosing a specific translator, different CLIP models are like different translators with slightly different understandings of artistic styles. |
## Outputs
| Output Name | Data Type | Description |
| ------------ | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CONDITIONING | CONDITIONING | These are the translated "painting instructions" containing detailed creative guidance that the AI model can understand. These instructions tell the AI model how to create an image matching your description. |
## Usage Tips
1. **Basic Text Prompt Usage**
* Write detailed descriptions like you're writing a short essay
* More specific descriptions lead to more accurate results
* Use English commas to separate different descriptive elements
2. **Special Feature: Using Embedding Models**
* Embedding models are like preset art style packages that can quickly apply specific artistic effects
* Currently supports .safetensors, .pt, and .bin file formats, and you don't necessarily need to use the complete model name
* How to use:
1. Place the embedding model file (in .pt format) in the `ComfyUI/models/embeddings` folder
2. Use `embedding:model_name` in your text
Example: If you have a model called `EasyNegative.pt`, you can use it like this:
```
a beautiful landscape, embedding:EasyNegative, high quality
```
3. **Prompt Weight Adjustment**
* Use parentheses to adjust the importance of certain descriptions
* For example: `(beautiful:1.2)` will make the "beautiful" feature more prominent
* Regular parentheses `()` have a default weight of 1.1
* Use keyboard shortcuts `ctrl + up/down arrow` to quickly adjust weights
* The weight adjustment step size can be modified in settings
4. **Important Notes**
* Ensure the CLIP model is properly loaded
* Use positive and clear text descriptions
* When using embedding models, make sure the file name is correct and compatible with your current main model's architecture
---
# Source: https://docs.comfy.org/built-in-nodes/ClipTextEncodeFlux.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ClipTextEncodeFlux - ComfyUI Built-in Node Documentation
> The ClipTextEncodeFlux node is used to encode text prompts into Flux-compatible conditioning embeddings.
`CLIPTextEncodeFlux` is an advanced text encoding node in ComfyUI, specifically designed for the Flux architecture. It uses a dual-encoder mechanism (CLIP-L and T5XXL) to process both structured keywords and detailed natural language descriptions, providing the Flux model with more accurate and comprehensive text understanding for improved text-to-image generation quality.
This node is based on a dual-encoder collaboration mechanism:
1. The `clip_l` input is processed by the CLIP-L encoder, extracting style, theme, and other keyword features—ideal for concise descriptions.
2. The `t5xxl` input is processed by the T5XXL encoder, which excels at understanding complex and detailed natural language scene descriptions.
3. The outputs from both encoders are fused, and combined with the `guidance` parameter to generate unified conditioning embeddings (`CONDITIONING`) for downstream Flux sampler nodes, controlling how closely the generated content matches the text description.
## Inputs
| Parameter | Data Type | Input Method | Default | Range | Description |
| ---------- | --------- | ------------ | ------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------- |
| `clip` | CLIP | Node input | None | - | Must be a CLIP model supporting the Flux architecture, including both CLIP-L and T5XXL encoders |
| `clip_l` | STRING | Text box | None | Up to 77 tokens | Suitable for concise keyword descriptions, such as style or theme |
| `t5xxl` | STRING | Text box | None | Nearly unlimited | Suitable for detailed natural language descriptions, expressing complex scenes and details |
| `guidance` | FLOAT | Slider | 3.5 | 0.0 - 100.0 | Controls the influence of text conditions on the generation process; higher values mean stricter adherence to the text |
## Outputs
| Output Name | Data Type | Description |
| -------------- | ------------ | ------------------------------------------------------------------------------------------------------------------ |
| `CONDITIONING` | CONDITIONING | Contains the fused embeddings from both encoders and the guidance parameter, used for conditional image generation |
## Usage Examples
### Prompt Examples
* **clip\_l input** (keyword style):
* Use structured, concise keyword combinations
* Example: `masterpiece, best quality, portrait, oil painting, dramatic lighting`
* Focus on style, quality, and main subject
* **t5xxl input** (natural language description):
* Use complete, fluent scene descriptions
* Example: `A highly detailed portrait in oil painting style, featuring dramatic chiaroscuro lighting that creates deep shadows and bright highlights, emphasizing the subject's features with renaissance-inspired composition.`
* Focus on scene details, spatial relationships, and lighting effects
### Notes
1. Make sure to use a CLIP model compatible with the Flux architecture
2. It is recommended to fill in both `clip_l` and `t5xxl` to leverage the dual-encoder advantage
3. Note the 77-token limit for `clip_l`
4. Adjust the `guidance` parameter based on the generated results
---
# Source: https://docs.comfy.org/built-in-nodes/ClipTextEncodeHunyuanDit.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ClipTextEncodeHunyuanDit - ComfyUI Built-in Node Documentation
> The ClipTextEncodeHunyuanDit node is used to encode text prompts into HunyuanDiT-compatible conditioning embeddings.
The `CLIPTextEncodeHunyuanDiT` node's main function is to convert input text into a form that the model can understand. It is an advanced conditioning node specifically designed for the dual text encoder architecture of the HunyuanDiT model.
Its primary role is like a translator, converting our text descriptions into "machine language" that the AI model can understand. The `bert` and `mt5xl` inputs prefer different types of prompt inputs.
## Inputs
| Parameter | Data Type | Description |
| --------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `clip` | CLIP | A CLIP model instance used for text tokenization and encoding, which is core to generating conditions. |
| `bert` | STRING | Text input for encoding, prefers phrases and keywords, supports multiline and dynamic prompts. |
| `mt5xl` | STRING | Another text input for encoding, supports multiline and dynamic prompts (multilingual), can use complete sentences and complex descriptions. |
## Outputs
| Parameter | Data Type | Description |
| -------------- | ------------ | ------------------------------------------------------------------------------- |
| `CONDITIONING` | CONDITIONING | The encoded conditional output used for further processing in generation tasks. |
---
# Source: https://docs.comfy.org/built-in-nodes/ClipTextEncodeSdxl.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ClipTextEncodeSdxl - ComfyUI Built-in Node Documentation
> The ClipTextEncodeSdxl node is used to encode text prompts into SDXL-compatible conditioning embeddings.
This node is designed to encode text input using a CLIP model specifically customized for the SDXL architecture. It uses a dual encoder system (CLIP-L and CLIP-G) to process text descriptions, resulting in more accurate image generation.
## Inputs
| Parameter | Data Type | Description |
| --------------- | --------- | ------------------------------------------------------ |
| `clip` | CLIP | CLIP model instance used for text encoding. |
| `width` | INT | Specifies the image width in pixels, default 1024. |
| `height` | INT | Specifies the image height in pixels, default 1024. |
| `crop_w` | INT | Width of the crop area in pixels, default 0. |
| `crop_h` | INT | Height of the crop area in pixels, default 0. |
| `target_width` | INT | Target width for the output image, default 1024. |
| `target_height` | INT | Target height for the output image, default 1024. |
| `text_g` | STRING | Global text description for overall scene description. |
| `text_l` | STRING | Local text description for detail description. |
## Outputs
| Parameter | Data Type | Description |
| -------------- | ------------ | ------------------------------------------------------------------------------ |
| `CONDITIONING` | CONDITIONING | Contains encoded text and conditional information needed for image generation. |
---
# Source: https://docs.comfy.org/built-in-nodes/ClipTextEncodeSdxlRefiner.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ClipTextEncodeSdxlRefiner - ComfyUI Built-in Node Documentation
> The ClipTextEncodeSdxlRefiner node is used to encode text prompts into SDXL Refiner-compatible conditioning embeddings.
This node is specifically designed for the SDXL Refiner model to convert text prompts into conditioning information by incorporating aesthetic scores and dimensional information to enhance the conditions for generation tasks, thereby improving the final refinement effect. It acts like a professional art director, not only conveying your creative intent but also injecting precise aesthetic standards and specification requirements into the work.
## About SDXL Refiner
SDXL Refiner is a specialized refinement model that focuses on enhancing image details and quality based on the SDXL base model. This process is like having an art retoucher:
1. First, it receives preliminary images or text descriptions generated by the base model
2. Then, it guides the refinement process through precise aesthetic scoring and dimensional parameters
3. Finally, it focuses on processing high-frequency image details to improve overall quality
Refiner can be used in two ways:
* As a standalone refinement step for post-processing images generated by the base model
* As part of an expert integration system, taking over processing during the low-noise phase of generation
## Inputs
| Parameter Name | Data Type | Input Type | Default Value | Value Range | Description |
| -------------- | --------- | ---------- | ------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `clip` | CLIP | Required | - | - | CLIP model instance used for text tokenization and encoding, the core component for converting text into model-understandable format |
| `ascore` | FLOAT | Optional | 6.0 | 0.0-1000.0 | Controls the visual quality and aesthetics of generated images, similar to setting quality standards for artwork:
## Canvas Area Description
The Load3D node's Canvas area contains numerous view operations, including:
* Preview view settings (grid, background color, preview view)
* Camera control: Control FOV, camera type
* Global illumination intensity: Adjust lighting intensity
* Video recording: Record and export videos
* Model export: Supports `GLB`, `OBJ`, `STL` formats
* And more
1. Contains multiple menus and hidden menus of the Load 3D node
2. Menu for `resizing preview window` and `canvas video recording`
3. 3D view operation axis
4. Preview thumbnail
5. Preview size settings, scale preview view display by setting dimensions and then resizing window
### 1. View Operations
View control operations:
* Left-click + drag: Rotate the view
* Right-click + drag: Pan the view
* Middle wheel scroll or middle-click + drag: Zoom in/out
* Coordinate axis: Switch views
### 2. Left Menu Functions
In the canvas, some settings are hidden in the menu. Click the menu button to expand different menus
* 1. Scene: Contains preview window grid, background color, preview settings
* 2. Model: Model rendering mode, texture materials, up direction settings
* 3. Camera: Switch between orthographic and perspective views, and set the perspective angle size
* 4. Light: Scene global illumination intensity
* 5. Export: Export model to other formats (GLB, OBJ, STL)
#### Scene
The Scene menu provides some basic scene setting functions
1. Show/Hide grid
2. Set background color
3. Click to upload a background image
4. Hide the preview
#### Model
The Model menu provides some model-related functions
1. **Up direction**: Determine which axis is the up direction for the model
2. **Material mode**: Switch model rendering modes - Original, Normal, Wireframe, Lineart
#### Camera
This menu provides switching between orthographic and perspective views, and perspective angle size settings
1. **Camera**: Quickly switch between orthographic and orthographic views
2. **FOV**: Adjust FOV angle
#### Light
Through this menu, you can quickly adjust the scene's global illumination intensity
#### Export
This menu provides the ability to quickly convert and export model formats
### 3. Right Menu Functions
The right menu has two main functions:
1. **Reset view ratio**: After clicking the button, the view will adjust the canvas rendering area ratio according to the set width and height
2. **Video recording**: Allows you to record current 3D view operations as video, allows import, and can be output as `recording_video` to subsequent nodes
---
# Source: https://docs.comfy.org/interface/settings/about.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# About Page
> Detailed description of ComfyUI About settings page
The About page is an information display panel in the ComfyUI settings system, used to show application version information, related links, and system statistics. These settings can provide us with critical information when you submit feedback or report issues.
### Version Information Badges
The About page displays the following core version information:
* **ComfyUI Version**: Shows the backend ComfyUI version number, linked to the official GitHub repository
* **ComfyUI\_frontend Version**: Shows the frontend interface version number, linked to the frontend GitHub repository
* **Discord Community**: Provides a link to the ComfyOrg Discord server
* **Official Website**: Links to the ComfyOrg official website
*Select **USD** as your payment currency (1) to unlock the Alipay and WeChat Pay options (2) during checkout.*
## Requirements
To successfully process your payment:
* Your card must have sufficient funds or available credit
* Your billing address must match the address on file with your card issuer
* International cards are accepted, but may be subject to currency conversion fees from your bank
## Security
Stripe is a PCI Service Provider Level 1, the most stringent level of certification available in the payments industry. All payment information is processed securely using industry-standard encryption. Comfy Organization Inc does not store your complete card details on our servers.
## Payment processing
Payments are processed immediately upon subscription or renewal. You will receive a confirmation email once your payment has been successfully processed.
If you experience any issues with payment processing, please contact our [support team](https://support.comfy.org/) for assistance.
---
# Source: https://docs.comfy.org/tutorials/audio/ace-step/ace-step-v1.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ComfyUI ACE-Step Native Example
> This guide will help you create dynamic music using the ACE-Step model in ComfyUI
ACE-Step is an open-source foundational music generation model jointly developed by Chinese team StepFun and ACE Studio, aimed at providing music creators with efficient, flexible and high-quality music generation and editing tools.
The model is released under the [Apache-2.0](https://github.com/ace-step/ACE-Step?tab=readme-ov-file#-license) license and is free for commercial use.
As a powerful music generation foundation, ACE-Step provides rich extensibility. Through fine-tuning techniques like LoRA and ControlNet, developers can customize the model according to their actual needs.
Whether it's audio editing, vocal synthesis, accompaniment production, voice cloning or style transfer applications, ACE-Step provides stable and reliable technical support.
This flexible architecture greatly simplifies the development process of music AI applications, allowing more creators to quickly apply AI technology to music creation.
Currently, ACE-Step has released related training code, including LoRA model training, and the corresponding ControlNet training code will be released in the future.
You can visit their [Github](https://github.com/ace-step/ACE-Step?tab=readme-ov-file#-roadmap) to learn more details.
Download Json Format Workflow File
You can also manually download [ace\_step\_v1\_3.5b.safetensors](https://huggingface.co/Comfy-Org/ACE-Step_ComfyUI_repackaged/blob/main/all_in_one/ace_step_v1_3.5b.safetensors) and save it to the `ComfyUI/models/checkpoints` folder ### 2. Complete the Workflow Step by Step
1. Ensure the `Load Checkpoints` node has loaded the `ace_step_v1_3.5b.safetensors` model
2. (Optional) In the `EmptyAceStepLatentAudio` node, you can set the duration of the music to be generated
3. (Optional) In the `LatentOperationTonemapReinhard` node, you can adjust the `multiplier` to control the volume of the vocals (higher numbers result in more prominent vocals)
4. (Optional) Input corresponding music styles etc. in the `tags` field of `TextEncodeAceStepAudio`
5. (Optional) Input corresponding lyrics in the `lyrics` field of `TextEncodeAceStepAudio`
6. Click the `Run` button, or use the shortcut `Ctrl(cmd) + Enter` to execute the audio generation
7. After the workflow completes,, you can preview the generated audio in the `Save Audio` node. You can click to play and listen to it, and the audio will also be saved to `ComfyUI/output/audio` (subdirectory determined by the `Save Audio` node).
## ACE-Step ComfyUI Audio-to-Audio Workflow
Similar to image-to-image workflows, you can input a piece of music and use the workflow below to resample and generate music. You can also adjust the difference from the original audio by controlling the `denoise` parameter in the `Ksampler`.
### 1. Download Workflow File
Click the button below to download the corresponding workflow file. Drag it into ComfyUI to load the workflow information.
Download Json Format Workflow File
Download the following audio file as the input audio:Download Example Audio File for Input
### 2. Complete the Workflow Step by Step
1. Ensure the `Load Checkpoints` node has loaded the `ace_step_v1_3.5b.safetensors` model
2. Upload the provided audio file in the `LoadAudio` node
3. (Optional) Input corresponding music styles and lyrics in the `tags` and `lyrics` fields of `TextEncodeAceStepAudio`. Providing lyrics is very important for audio editing
4. (Optional) Modify the `denoise` parameter in the `Ksampler` node to adjust the noise added during sampling to control similarity with the original audio (smaller values result in more similarity to the original audio; setting it to `1.00` is approximately equivalent to having no audio input)
5. Click the `Run` button, or use the shortcut `Ctrl(cmd) + Enter` to execute the audio generation
6. After the workflow completes, you can preview the generated audio in the `Save Audio` node. You can click to play and listen to it, and the audio will also be saved to `ComfyUI/output/audio` (subdirectory determined by the `Save Audio` node).
You can also implement the lyrics modification and editing functionality from the ACE-Step project page, modifying the original lyrics to change the audio effect.
### 3. Additional Workflow Notes
1. In the example workflow, you can change the `tags` in `TextEncodeAceStepAudio` from `male voice` to `female voice` to generate female vocals.
2. You can also modify the `lyrics` in `TextEncodeAceStepAudio` to change the lyrics and thus the generated audio. Refer to the examples on the ACE-Step project page for more details.
## ACE-Step Prompt Guide
ACE currently uses two types of prompts: `tags` and `lyrics`.
* `tags`: Mainly used to describe music styles, scenes, etc. Similar to prompts we use for other generations, they primarily describe the overall style and requirements of the audio, separated by English commas
* `lyrics`: Mainly used to describe lyrics, supporting lyric structure tags such as \[verse], \[chorus], and \[bridge] to distinguish different parts of the lyrics. You can also input instrument names for purely instrumental music
You can find rich examples of `tags` and `lyrics` on the [ACE-Step model homepage](https://ace-step.github.io/). You can refer to these examples to try corresponding prompts. This document's prompt guide is organized based on the project to help you quickly try combinations to achieve your desired effect.
### Tags (prompt)
#### Mainstream Music Styles
Use short tag combinations to generate specific music styles
* electronic
* rock
* pop
* funk
* soul
* cyberpunk
* Acid jazz
* electro
* em (electronic music)
* soft electric drums
* melodic
#### Scene Types
Combine specific usage scenarios and atmospheres to generate music that matches the corresponding mood
* background music for parties
* radio broadcasts
* workout playlists
#### Instrumental Elements
* saxophone
* jazz
* piano, violin
#### Vocal Types
* female voice
* male voice
* clean vocals
#### Professional Terms
Use some professional terms commonly used in music to precisely control music effects
* 110 bpm (beats per minute is 110)
* fast tempo
* slow tempo
* loops
* fills
* acoustic guitar
* electric bass
{/* - Lyrics editing:
- edit lyrics: 'When I was young' -> 'When you were kid' (lyrics editing example) */}
### Lyrics
#### Lyric Structure Tags
* \[outro]
* \[verse]
* \[chorus]
* \[bridge]
#### Multilingual Support
* ACE-Step V1 supports multiple languages. When used, ACE-Step converts different languages into English letters and then generates music.
* In ComfyUI, we haven't fully implemented the conversion of all languages to English letters. Currently, only [Japanese hiragana and katakana characters](https://github.com/comfyanonymous/ComfyUI/commit/5d3cc85e13833aeb6ef9242cdae243083e30c6fc) are implemented.
So if you need to use multiple languages for music generation, you need to first convert the corresponding language to English letters, and then input the language code abbreviation at the beginning of the `lyrics`, such as Chinese `[zh]`, Korean `[ko]`, etc.
For example:
```
[verse]
[zh]wo3zou3guo4shen1ye4de5jie1dao4
[zh]leng3feng1chui1luan4si1nian4de5piao4liang4wai4tao4
[zh]ni3de5wei1xiao4xiang4xing1guang1hen3xuan4yao4
[zh]zhao4liang4le5wo3gu1du2de5mei3fen1mei3miao3
[chorus]
[verse]
[ko]hamkke si-kkeuleo-un sesang-ui sodong-eul pihae
[ko]honja ogsang-eseo dalbich-ui eolyeompus-ileul balaboda
[ko]niga salang-eun lideum-i ganghan eum-ag gatdago malhaess-eo
[ko]han ta han tamada ma-eum-ui ondoga eolmana heojeonhanji ijge hae
[bridge]
[es]cantar mi anhelo por ti sin ocultar
[es]como poesía y pintura, lleno de anhelo indescifrable
[es]tu sombra es tan terca como el viento, inborrable
[es]persiguiéndote en vuelo, brilla como cruzar una mar de nubes
[chorus]
[fr]que tu sois le vent qui souffle sur ma main
[fr]un contact chaud comme la douce pluie printanière
[fr]que tu sois le vent qui s'entoure de mon corps
[fr]un amour profond qui ne s'éloignera jamais
```
Currently, ACE-Step supports 19 languages, but the following ten languages have better support:
* English
* Chinese: \[zh]
* Russian: \[ru]
* Spanish: \[es]
* Japanese: \[ja]
* German: \[de]
* French: \[fr]
* Portuguese: \[pt]
* Italian: \[it]
* Korean: \[ko]
This allows you to:
1. Switch ComfyUI themes
2. Export the currently selected theme as JSON format
3. Load custom theme configuration from JSON file
4. Delete custom theme configuration
## Node
### Node Opacity
* **Function**: Set the opacity of nodes, where 0 represents completely transparent and 1 represents completely opaque.
## Node Widget
### Textarea Widget Font Size
* **Range**: 8 - 24
* **Function**: Set the font size in textarea widgets. Adjusts the text display size in text input boxes to improve readability.
## Sidebar
### Unified Sidebar Width
* **Function**: When enabled, the sidebar width will be unified to a consistent width when switching between different sidebars. If disabled, different sidebars can maintain their custom widths when switching.
### Sidebar Size
* **Function**: Control the size of the sidebar, can be set to normal or small.
### Sidebar Location
* **Function**: Control whether the sidebar is displayed on the left or right side of the interface, allowing users to adjust the sidebar position according to their usage habits.
### Sidebar Style
* **Function**: Control the visual style of the sidebar. Options include:
* **Connected**: The sidebar appears connected to the edge of the interface.
* **Floating**: The sidebar appears as a floating panel with visual separation from the interface edge.
## Tree Explorer
### Tree Explorer Item Padding
* **Function**: Set the padding of items in the tree explorer (sidebar panel), adjusting the spacing between items in the tree structure.
## Advanced Customization with user.css
For cases where the color palette doesn't provide enough control, you can use custom CSS via a user.css file. This method is recommended for advanced users who need to customize elements that aren't available in the color palette system.
### Requirements
* ComfyUI frontend version 1.20.5 or newer
### Setting Up user.css
1. Create a file named `user.css` in your ComfyUI user directory (same location as your workflows and settings - see location details below)
2. Add your custom CSS rules to this file
3. Restart ComfyUI or refresh the page to apply changes
### User Directory Location
The ComfyUI user directory is where your personal settings, workflows, and customizations are stored. The location depends on your installation type:
5. Click `Cancel subscription` button in Stripe to cancel your subscription
## Important notes
* All Comfy Cloud subscription plans automatically renew unless you set your plan to cancel
* Your subscription will remain active until the end of your current billing period
* You can resubscribe at any time by visiting [cloud.comfy.org](https://cloud.comfy.org/?utm_source=docs)
---
# Source: https://docs.comfy.org/support/subscription/changing-plan.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# Changing your subscription plan
> Learn how to change your Comfy Cloud subscription plan
## How to change your subscription plan
You can upgrade or downgrade your Comfy Cloud subscription plan at any time. Follow these steps to change your plan:
### Step 1: Open the settings panel
Click the **Plan & Credits** menu to open the settings panel.
### Step 2: Access subscription management
In the **Plan & Credits** panel, click the **Manage subscription** button to open the subscription settings.
### Step 3: Select a new plan
Select any plan you want, then click the **Change** button.
### Step 4: Open the billing portal
After opening the Comfy billing portal, click the **Update subscription** button.
### Step 5: Confirm your new plan
Select the plan you want, then click **Continue** to confirm your selection.
## Billing for plan changes
### Upgrading to a higher-priced plan
If your current subscription plan price is lower than the target plan, you will need to pay the price difference. You will receive an equivalent credit amount corresponding to the price difference.
### Downgrading to a lower-priced plan
If your current subscription plan price is higher than the target plan, your subscription will switch to the new plan after the current billing cycle ends. The new subscription will be based on the new pricing plan.
---
# Source: https://docs.comfy.org/tutorials/partner-nodes/openai/chat.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# OpenAI Chat API Node ComfyUI Official Example
> This article will introduce how to use OpenAI Chat Partner nodes in ComfyUI to complete conversational functions
OpenAI is a company focused on generative AI, providing powerful conversational capabilities. Currently, ComfyUI has integrated the OpenAI API, allowing you to directly use the related nodes in ComfyUI to complete conversational functions.
In this guide, we will walk you through completing the corresponding conversational functionality.
Download Json Format Workflow File
### 2. Complete the Workflow Execution Step by Step
---
# Source: https://docs.comfy.org/registry/claim-my-node.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# Claim My Node
## Overview
The **Claim My Node** feature allows developers to claim ownership of custom nodes in the ComfyUI Registry. This system ensures that only the rightful authors can manage and update their published nodes, providing security and accountability within the community.
## What are Unclaimed Nodes?
As we migrate from ComfyUI Manager to the Comfy Registry with new standards, many custom nodes that were previously listed in the ComfyUI Manager legacy system now appear as "unclaimed" in the registry. These are nodes that:
* Were originally published in the ComfyUI Manager legacy system
* Have been migrated to the Comfy Registry to meet the latest standards
* Are waiting for their original authors to claim ownership
We provide an easy way for developers to claim these migrated nodes, ensuring a smooth transition from the legacy system to the new registry standard while maintaining proper ownership and control.
## Getting Started
To claim your nodes:
1. **Navigate to Your Unclaimed Node Page**: Visit your unclaimed node page, Click "Claim my node!" button.
2. **Create a Publisher (if you don't have one yet)**:
* If you haven't created a publisher yet, you'll be prompted to create one. A publisher is required to claim nodes and manage them effectively.
3. **Select a Publisher**: Choose the publisher under which you want to claim the node. this step will redirect you to the claim page.
To claim the node under the choosed publisher, follow these steps:
1. **Review Node Information:**
* Check the node details, including the name, repository link, and publisher status as shown on the screen.
2. **GitHub Authentication:**
* Click the "Continue with GitHub" button to start the authentication process. Ensure you're logged in to the correct GitHub account with admin rights to the repository.
3. **Verify Admin Access:**
* Once logged in, the system will verify if you have admin privileges for the specified GitHub repository. This step is crucial to ensure you have the necessary permissions.
4. **Claim the Node:**
* If the verification is successful, Click "Claim" to claim the node. The publisher status will change, indicating ownership.
5. **Complete!:**
* After successfully claiming the node, you can continue on [publishing](./publishing) and managing your node as the rightful owner.
## Frequently Asked Questions
## Frequently Asked Questions
> For more information about API nodes, please refer to [API Nodes](/tutorials/partner-nodes/overview)
## Dev Mode
### Enable dev mode options (API save, etc.)
* **Default Value**: Disabled
* **Function**: Enables development mode options (such as API save, etc.)
## Edit Token Weight
### Ctrl+up/down precision
* **Default Value**: 0.01
* **Function**: When using CLIPTextEncode type nodes or text input node widgets, use Ctrl+up/down to quickly adjust weights. This option changes the weight value for each adjustment
## Locale
### Language
* **Options**: English, 中文 (Chinese),日本語 (Japanese), 한국어 (Korean), Русский (Russian), Español (Spanish), Français (French)
* **Default Value**: Auto-detect browser language
* **Function**: Modify the display language of ComfyUI interface
## Menu
### Use new menu
* **Default Value**: Top
* **Function**: Select menu interface and position, currently only supports Top, Bottom, Disabled
### What name to display in the model library tree view
* **Default Value**: title
* **Function**: Select the name format to display in the model library tree view, currently only supports filename and title
### Automatically load all model folders
* **Default Value**: Disabled
* **Function**: Whether to automatically detect model files in all folders when clicking the model library. Enabling may cause loading delays (requires traversing all folders). When disabled, files in the corresponding folder will only be loaded when clicking the folder name.
## Node
During the iteration process of ComfyUI, we will adjust some nodes and enable some nodes. These nodes may undergo major changes or be removed in future versions. However, to ensure compatibility, deprecated nodes have not been removed. You can use the settings below to enable whether to display **experimental nodes** and **deprecated nodes**.
### Show deprecated nodes in search
* **Default Value**: Disabled
* **Function**: Controls whether to display deprecated nodes in search. Deprecated nodes are hidden by default in the UI, but remain effective in existing workflows.
### Show experimental nodes in search
* **Default Value**: Enabled
* **Function**: Controls whether to display experimental nodes in search. Experimental nodes are some new feature support, but are not fully stable and may change or be removed in future versions.
## Node Search Box
### Number of nodes suggestions
* **Default Value**: 5
* **Function**: Used to modify the number of recommended nodes in the related node context menu. The larger the value, the more related recommended nodes are displayed.
### Show node frequency in search results
* **Default Value**: Disabled
* **Function**: Controls whether to display node usage frequency in search results
### Show node id name in search results
* **Default Value**: Disabled
* **Function**: Controls whether to display node ID names in search results
### Show node category in search results
* **Default Value**: Enabled
* **Function**: Controls whether to display node categories in search results, helping users understand node classification information
### Node preview
* **Default Value**: Enabled
* **Function**: Controls whether to display node previews in search results, making it convenient for you to quickly preview nodes
### Node search box implementation
* **Default Value**: default
* **Function**: Select the implementation method of the node search box (experimental feature). If you select `litegraph (legacy)`, it will switch to the early ComfyUI search box
## Node Widget
### Widget control mode
* **Options**: before, after
* **Function**: Controls whether the timing of node widget value updates is before or after workflow execution, such as updating seed values
### Textarea widget spellcheck
* **Default Value**: Disabled
* **Function**: Controls whether text area widgets enable spellcheck, providing spellcheck functionality during text input. This functionality is implemented through the browser's spellcheck attribute
## Queue
### Queue history size
* **Default Value**: 100
* **Function**: Controls the queue history size recorded in the sidebar queue history panel. The larger the value, the more queue history is recorded. When the number is large, loading the page will also consume more memory
## Queue Button
### Batch count limit
* **Default Value**: 100
* **Function**: Sets the maximum number of tasks added to the queue in a single click, preventing accidentally adding too many tasks to the queue
## Validation
### Validate node definitions (slow)
* **Default Value**: Disabled
* **Function**: Controls whether to validate all node definitions at startup (slow). Only recommended for node developers. When enabled, the system will use Zod schemas to strictly validate each node definition. This functionality will consume more memory and time
* **Error Handling**: Failed node definitions will be skipped and warning information will be output to the console
Download ComfyUI Portable
After downloading, you can use decompression software like [7-ZIP](https://7-zip.org/) to extract the compressed package The file structure and description after extracting the portable version are as follows: ``` ComfyUI_windows_portable ├── 📂ComfyUI // ComfyUI main program ├── 📂python_embeded // Independent Python environment ├── 📂update // Batch scripts for upgrading portable version ├── README_VERY_IMPORTANT.txt // ComfyUI Portable usage instructions in English ├── run_cpu.bat // Double click to start ComfyUI (CPU only) └── run_nvidia_gpu.bat // Double click to start ComfyUI (Nvidia GPU) ``` ## How to Launch ComfyUI Double click either `run_nvidia_gpu.bat` or `run_cpu.bat` depending on your computer's configuration to launch ComfyUI. You will see the command running as shown in the image below
When you see something similar to the image
```
To see the GUI go to: http://127.0.0.1:8188
```
At this point, your ComfyUI service has started. Normally, ComfyUI will automatically open your default browser and navigate to `http://127.0.0.1:8188`. If it doesn't open automatically, please manually open your browser and visit this address.
Or open it directly at:
With the advent of ControlNet, we can control image generation by introducing additional conditions.
For example, we can use a simple sketch to guide the image generation process, producing images that closely align with our sketch.
In this example, we will guide you through installing and using ControlNet models in [ComfyUI](https://github.com/comfyanonymous/ComfyUI), and complete a sketch-controlled image generation example.

1. Ensure that `Load Checkpoint` can load **dreamCreationVirtual3DECommerce\_v10.safetensors**
2. Ensure that `Load VAE` can load **vae-ft-mse-840000-ema-pruned.safetensors**
3. Click `Upload` in the `Load Image` node to upload the input image provided earlier
4. Ensure that `Load ControlNet` can load **control\_v11p\_sd15\_scribble\_fp16.safetensors**
5. Click the `Queue` button or use the shortcut `Ctrl(cmd) + Enter` to execute the image generation
## Related Node Explanations
### Load ControlNet Node Explanation
Models located in `ComfyUI\models\controlnet` will be detected by ComfyUI and can be loaded through this node.
### Apply ControlNet Node Explanation
This node accepts the ControlNet model loaded by `load controlnet` and generates corresponding control conditions based on the input image.
**Input Types**
| Parameter Name | Function |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `positive` | Positive conditioning |
| `negative` | Negative conditioning |
| `control_net` | The ControlNet model to be applied |
| `image` | Preprocessed image used as reference for ControlNet application |
| `vae` | VAE model input |
| `strength` | Strength of ControlNet application; higher values increase ControlNet's influence on the generated image |
| `start_percent` | Determines when to start applying ControlNet as a percentage; e.g., 0.2 means ControlNet guidance begins when 20% of diffusion is complete |
| `end_percent` | Determines when to stop applying ControlNet as a percentage; e.g., 0.8 means ControlNet guidance stops when 80% of diffusion is complete |
**Output Types**
| Parameter Name | Function |
| -------------- | -------------------------------------------------- |
| `positive` | Positive conditioning data processed by ControlNet |
| `negative` | Negative conditioning data processed by ControlNet |
You can use chain connections to apply multiple ControlNet models, as shown in the image below. You can also refer to the [Mixing ControlNet Models](/tutorials/controlnet/mixing-controlnets) guide to learn more about combining multiple ControlNet models.
To enable it, go to **Settings** --> **comfy** --> **Node** and enable the `Show deprecated nodes in search` option. However, it's recommended to use the new node.
## Next steps
Once your account is created and verified:
* [Log in to your account](/account/login)
* Set up your profile preferences
* Start using ComfyUI features
* Explore tutorials and documentation
## Troubleshooting
If you encounter issues during account creation:
* Ensure your email address is valid and not already registered
* Check that your password meets the minimum requirements
* Clear your browser cache and try again
* Contact [support](/support/contact-support) if problems persist
---
# Source: https://docs.comfy.org/api-reference/cloud/asset/create-asset-reference-from-existing-hash.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# Create asset reference from existing hash
> Creates a new asset reference using an existing hash from cloud storage.
This avoids re-uploading file content when the underlying data already exists,
which is useful for large files or when referencing well-known assets.
The user provides their own metadata and tags for the new reference.
## OpenAPI
````yaml openapi-cloud.yaml post /api/assets/from-hash
openapi: 3.0.3
info:
title: Comfy Cloud API
description: >
In the popup, set the purchase amount and click the `Buy` button
On the payment page, please follow these steps:
1. Select the currency for payment
2. Confirm that the email is the same as your ComfyUI registration email
3. Choose your payment method
* Credit Card
* WeChat (only supported when paying in Comfy Credits)
* Alipay (only supported when paying in Comfy Credits)
4. Click the `Pay` button or the `Generate QR Code` button to complete the payment process
After completing the payment, please return to `Menu` -> `Credits` to check if your balance has been updated. Try refreshing the interface or restarting if necessary
or run the server manually:
```bash theme={null}
cd path/to/your/comfyui
python main.py --disable-all-custom-nodes
```
1. Copy `run_nvidia_gpu.bat` or `run_cpu.bat` file and rename it to `run_nvidia_gpu_disable_custom_nodes.bat`
2. Open the copied file with Notepad
3. Add the `--disable-all-custom-nodes` parameter to the file, or copy the parameters below into a `.txt` file and rename the file to `run_nvidia_gpu_disable_custom_nodes.bat`
```bash theme={null}
.\python_embeded\python.exe -s ComfyUI\main.py --disable-all-custom-nodes --windows-standalone-build
pause
```
4. Save the file and close it
5. Double-click the file to run it. If everything is normal, you should see ComfyUI start and custom nodes disabled
1. Enter the folder where the portable version is located
2. Open the terminal by right-clicking the menu → Open terminal
3. Ensure that the folder name is the current directory of the portable version
4. Enter the following command to start ComfyUI through the portable python and disable custom nodes
```
.\python_embeded\python.exe -s ComfyUI\main.py --disable-all-custom-nodes
```
* A: Custom nodes with frontend extensions
* B: Regular custom nodes
Let's first understand the potential issues and causes for different types of custom nodes:
After starting ComfyUI, find the `Extensions` menu in settings and follow the steps shown in the image to disable all third-party extensions
Refer to the image to enable half of the frontend extensions. Note that if extension names are similar, they likely come from the same custom node's frontend extensions
If not yet installed, please visit [git-scm.com](https://git-scm.com/) to download the corresponding installation package. Linux users please refer to [git-scm.com/downloads/linux](https://git-scm.com/downloads/linux) for installation instructions.
This means you have successfully cloned the custom node code. Next, we need to install the corresponding dependencies.
Visit the corresponding custom node repository page:
1. Click the `Code` button
2. Then click the `Download ZIP` button to download the ZIP package
3. Extract the ZIP package
Ensure that the terminal directory is `\ComfyUI_windows_portable\`, as shown below for `D:\ComfyUI_windows_portable\`
Then use `python_embeded\python.exe` to complete the dependency installation:
```bash theme={null}
python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\ComfyUI-Manager\requirements.txt
```
Of course, you can replace ComfyUI-Manager with the name of the custom node you actually installed, but make sure that a `requirements.txt` file exists in the corresponding node directory.
Then use the following command to install the dependencies for the corresponding plugin:
```bash theme={null}
pip install -r .\custom_nodes\
This tool is currently included by default in the [Desktop version](/installation/desktop/windows), while in the [Portable version](/installation/comfyui_portable_windows), you need to refer to the installation instructions in the [Install Manager](#installing-custom-nodes) section of this document.
## Developing a Custom Node
If you have some development capabilities, please start with the documentation below to learn how to begin developing a custom node.
OpenAI DALL·E 2 is part of the ComfyUI Partner Nodes series, allowing users to generate images through OpenAI's **DALL·E 2** model.
This node supports:
* Text-to-image generation
* Image editing functionality (inpainting through masks)
## Node Overview
The **OpenAI DALL·E 2** node generates images synchronously through OpenAI's image generation API. It receives text prompts and returns images that match the description.
You only need to load the `OpenAI DALL·E 2` node, input the description of the image you want to generate in the `prompt` node, connect a `Save Image` node, and then run the workflow.
### Inpainting Workflow
DALL·E 2 supports image editing functionality, allowing you to use a mask to specify the area to be replaced. Below is a simple inpainting workflow example:
#### 1. Workflow File Download
Download the image below and drag it into ComfyUI to load the corresponding workflow.

We will use the image below as input:

#### 2. Workflow File Usage Instructions
Since this workflow is relatively simple, if you want to manually implement the corresponding workflow yourself, you can follow the steps below:
1. Use the `Load Image` node to load the image
2. Right-click on the load image node and select `MaskEditor`
3. In the mask editor, use the brush to draw the area you want to redraw
4. Connect the loaded image to the `image` input of the **OpenAI DALL·E 2** node
5. Connect the mask to the `mask` input of the **OpenAI DALL·E 2** node
6. Edit the prompt in the `prompt` node
7. Run the workflow
**Notes**
* If you want to use the image editing functionality, you must provide both an image and a mask (both are required)
* The mask and image must be the same size
* When inputting large images, the node will automatically resize the image to an appropriate size
* The URLs returned by the API are valid for a short period, please save the results promptly
* Each generation consumes credits, charged according to image size and quantity
## FAQs
## Node Overview
DALL·E 3 is OpenAI's latest image generation model, capable of creating detailed and high-quality images based on text prompts. Through this node in ComfyUI, you can directly access DALL·E 3's generation capabilities without leaving the ComfyUI interface.
The **OpenAI DALL·E 3** node generates images synchronously through OpenAI's image generation API. It receives text prompts and returns images that match the description.
1. Add the **OpenAI DALL·E 3** node in ComfyUI
2. Enter the description of the image you want to generate in the prompt text box
3. Adjust optional parameters as needed (quality, style, size, etc.)
4. Run the workflow to generate the image
## FAQs
---
# Source: https://docs.comfy.org/tutorials/controlnet/depth-controlnet.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ComfyUI Depth ControlNet Usage Example
> This guide will introduce you to the basic concepts of Depth ControlNet and demonstrate how to generate corresponding images in ComfyUI
## Introduction to Depth Maps and Depth ControlNet
A depth map is a special type of image that uses grayscale values to represent the distance between objects in a scene and the observer or camera. In a depth map, the grayscale value is inversely proportional to distance: brighter areas (closer to white) indicate objects that are closer, while darker areas (closer to black) indicate objects that are farther away.

Depth ControlNet is a ControlNet model specifically trained to understand and utilize depth map information. It helps AI correctly interpret spatial relationships, ensuring that generated images conform to the spatial structure specified by the depth map, thereby enabling precise control over three-dimensional spatial layouts.
### Application Scenarios for Depth Maps with ControlNet
Depth maps have numerous applications in various scenarios:
1. **Portrait Scenes**: Control the spatial relationship between subjects and backgrounds, avoiding distortion in critical areas such as faces
2. **Landscape Scenes**: Control the hierarchical relationships between foreground, middle ground, and background
3. **Architectural Scenes**: Control the spatial structure and perspective relationships of buildings
4. **Product Showcase**: Control the separation and spatial positioning of products against their backgrounds
In this example, we will use a depth map to generate an architectural visualization scene.
## ComfyUI ControlNet Workflow Example Explanation
### 1. ControlNet Workflow Assets
Please download the workflow image below and drag it into ComfyUI to load the workflow:

1. Ensure that `Load Checkpoint` can load **architecturerealmix\_v11.safetensors**
2. Ensure that `Load ControlNet` can load **control\_v11f1p\_sd15\_depth\_fp16.safetensors**
3. Click `Upload` in the `Load Image` node to upload the depth image provided earlier
4. Click the `Queue` button or use the shortcut `Ctrl(cmd) + Enter` to execute the image generation
## Combining Depth Control with Other Techniques
Based on different creative needs, you can combine Depth ControlNet with other types of ControlNet to achieve better results:
1. **Depth + Lineart**: Maintain spatial relationships while reinforcing outlines, suitable for architecture, products, and character design
2. **Depth + Pose**: Control character posture while maintaining correct spatial relationships, suitable for character scenes
For more information on using multiple ControlNet models together, please refer to the [Mixing ControlNet](/tutorials/controlnet/mixing-controlnets) example.
---
# Source: https://docs.comfy.org/tutorials/controlnet/depth-t2i-adapter.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ComfyUI Depth T2I Adapter Usage Example
> This guide will introduce you to the basic concepts of Depth T2I Adapter and demonstrate how to generate corresponding images in ComfyUI
## Introduction to T2I Adapter
[T2I-Adapter](https://huggingface.co/TencentARC/T2I-Adapter) is a lightweight adapter developed by [Tencent ARC Lab](https://github.com/TencentARC) designed to enhance the structural, color, and style control capabilities of text-to-image generation models (such as Stable Diffusion).
It works by aligning external conditions (such as edge detection maps, depth maps, sketches, or color reference images) with the model's internal features, achieving high-precision control without modifying the original model structure. With only about 77M parameters (approximately 300MB in size), its inference speed is about 3 times faster than [ControlNet](https://github.com/lllyasviel/ControlNet-v1-1-nightly), and it supports multiple condition combinations (such as sketch + color grid). Application scenarios include line art to image conversion, color style transfer, multi-element scene generation, and more.
### Comparison Between T2I Adapter and ControlNet
Although their functions are similar, there are notable differences in implementation and application:
1. **Lightweight Design**: T2I Adapter has fewer parameters and a smaller memory footprint
2. **Inference Speed**: T2I Adapter is typically about 3 times faster than ControlNet
3. **Control Precision**: ControlNet offers more precise control in certain scenarios, while T2I Adapter is more suitable for lightweight control
4. **Multi-condition Combination**: T2I Adapter shows more significant resource advantages when combining multiple conditions
### Main Types of T2I Adapter
T2I Adapter provides various types to control different aspects:
* **Depth**: Controls the spatial structure and depth relationships in images
* **Line Art (Canny/Sketch)**: Controls image edges and lines
* **Keypose**: Controls character poses and actions
* **Segmentation (Seg)**: Controls scene layout through semantic segmentation
* **Color**: Controls the overall color scheme of images
In ComfyUI, using T2I Adapter is similar to [ControlNet](/tutorials/controlnet/controlnet) in terms of interface and workflow. In this example, we will demonstrate how to use a depth T2I Adapter to control an interior scene.

## Value of Depth T2I Adapter Applications
Depth maps have several important applications in image generation:
1. **Spatial Layout Control**: Accurately describes three-dimensional spatial structures, suitable for interior design and architectural visualization
2. **Object Positioning**: Controls the relative position and size of objects in a scene, suitable for product showcases and scene construction
3. **Perspective Relationships**: Maintains reasonable perspective and proportions, suitable for landscape and urban scene generation
4. **Light and Shadow Layout**: Natural light and shadow distribution based on depth information, enhancing realism
We will use interior design as an example to demonstrate how to use the depth T2I Adapter, but these techniques are applicable to other scenarios as well.
## ComfyUI Depth T2I Adapter Workflow Example Explanation
### 1. Depth T2I Adapter Workflow Assets
Please download the workflow image below and drag it into ComfyUI to load the workflow:

1. Ensure that `Load Checkpoint` can load **interiordesignsuperm\_v2.safetensors**
2. Ensure that `Load ControlNet` can load **t2iadapter\_depth\_sd15v2.pth**
3. Click `Upload` in the `Load Image` node to upload the input image provided earlier
4. Click the `Queue` button or use the shortcut `Ctrl(cmd) + Enter` to execute the image generation
## General Tips for Using T2I Adapter
### Input Image Quality Optimization
Regardless of the application scenario, high-quality input images are key to successfully using T2I Adapter:
1. **Moderate Contrast**: Control images (such as depth maps, line art) should have clear contrast, but not excessively extreme
2. **Clear Boundaries**: Ensure that major structures and element boundaries are clearly distinguishable in the control image
3. **Noise Control**: Try to avoid excessive noise in control images, especially for depth maps and line art
4. **Reasonable Layout**: Control images should have a reasonable spatial layout and element distribution
## Characteristics of T2I Adapter Usage
One major advantage of T2I Adapter is its ability to easily combine multiple conditions for complex control effects:
1. **Depth + Edge**: Control spatial layout while maintaining clear structural edges, suitable for architecture and interior design
2. **Line Art + Color**: Control shapes while specifying color schemes, suitable for character design and illustrations
3. **Pose + Segmentation**: Control character actions while defining scene areas, suitable for complex narrative scenes
Mixing different T2I Adapters, or combining them with other control methods (such as ControlNet, regional prompts, etc.), can further expand creative possibilities. To achieve mixing, simply chain multiple `Apply ControlNet` nodes together in the same way as described in [Mixing ControlNet](/tutorials/controlnet/mixing-controlnets).
---
# Source: https://docs.comfy.org/support/payment/editing-payment-information.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# Editing your payment information
> Learn how to update your payment method and billing details
You can update your payment information at any time through your account settings.
## How to edit payment information
1. Log in to your ComfyUI account and open the profile menu
2. Click **User Settings**
3. Select the **Credits** tab in the settings panel
4. Choose **Invoice History** to open the Stripe billing portal in a new tab
5. Click **Update information** and edit your billing or payment details
6. Save your changes in the Stripe portal
### Visual walkthrough
*Open the profile menu and choose **User Settings** to manage billing.*
*Go to the **Credits** tab and select **Invoice History**.*
*Review the billing information fields in the Stripe portal.*
*Click **Update information** to edit payment details and save your changes.*
## What you can update
You can modify the following payment details:
* Credit or debit card number
* Card expiration date
* CVV/security code
* Billing address
* Payment method type (switch between card and digital wallet)
## When changes take effect
* Changes to your payment method take effect immediately
* Your next billing cycle will use the updated payment information
* Updates to billing details (name, address, tax ID) only apply to future invoices; existing invoices cannot be modified
* Active subscriptions will not be interrupted when you update payment details
## Important notes
* You must have an active payment method on file to maintain your subscription
* If you remove a payment method, you must add a new one before the next billing date
* Keep a copy of past invoices before making changes if you need them for record keeping
* Updating your payment information does not change your billing date or subscription plan
## Troubleshooting
If you encounter issues updating your payment information:
* Verify that all information is entered correctly
* Ensure your card has not expired
* Check that your billing address matches your card issuer's records
* Try using a different browser or clearing your cache
* Contact our [support team](https://support.comfy.org/) if problems persist
---
# Source: https://docs.comfy.org/development/comfyui-server/execution_model_inversion_guide.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# Execution Model Inversion Guide
[PR #2666](https://github.com/comfyanonymous/ComfyUI/pull/2666) inverts the execution model from a back-to-front recursive model to a front-to-back topological sort. While most custom nodes should continue to "just work", this page is intended to serve as a guide for custom node creators to the things that *could* break.
## Breaking Changes
### Monkey Patching
Any code that monkey patched the execution model is likely to stop working. Note that the performance of execution with this PR exceeds that with the most popular monkey patches, so many of them will be unnecessary.
### Optional Input Validation
Prior to this PR, only nodes that were connected to outputs exclusively through a string of `"required"` inputs were actually validated. If you had custom nodes that were only ever connected to `"optional"` inputs, you previously wouldn't have been seeing that they failed validation.
These frontend extension plugins are used to enhance the ComfyUI experience, such as providing shortcuts, settings, UI components, menu items, and other features.
Extension status changes require a page reload to take effect:
## Extension Settings Panel Features
### 1. Extension List Management
Displays all registered extensions, including:
* Extension Name
* Core extension identification (displays "Core" label)
* Enable/disable status
### 2. Search Functionality
Provides a search box to quickly find specific extensions:
### 3. Enable/Disable Control
Each extension has an independent toggle switch:
### 4. Batch Operations
Provides right-click menu for batch operations:
* Enable All extensions
* Disable All extensions
* Disable 3rd Party extensions (keep core extensions)
## Notes
* Extension status changes require a page reload to take effect
* Some core extensions cannot be disabled
* The system will automatically disable known problematic extensions
* Extension settings are automatically saved to the user configuration file
This Extension settings panel is essentially a "frontend plugin manager" that allows users to flexibly control ComfyUI's functional modules.
---
# Source: https://docs.comfy.org/tutorials/partner-nodes/faq.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# FAQs about Partner Nodes
> Some FAQs you may encounter when using Partner Nodes.
This article addresses common questions regarding the use of Partner nodes.
If you have not installed ComfyUI, please choose a suitable version to install based on your device.
Follow the numbered steps in the image:
1. Click the **Fit View** button in the bottom right to ensure any loaded workflow isn't hidden
2. Click the **folder icon (workflows)** in the sidebar
3. Click the **Browse example workflows** button at the top of the Workflows panel
Continue with:
4. Select the first default workflow **Image Generation** to load it
Alternatively, you can select **Browse workflow templates** from the workflow menu
Download text-to-image.json
After downloading, use menu **Workflows** -> **Open** to load the JSON file.
All models are stored in `
You can install models through:
If everything goes smoothly, the model should be able to download locally. If the download fails for a long time, please try other installation methods.
Click the `Manager` button to open ComfyUI Manager
Click `Model Manager`
1. Search for `v1-5-pruned-emaonly.ckpt`
2. Click `install` on the desired model
Save the downloaded file to:
1. In the **Load Checkpoint** node, ensure **v1-5-pruned-emaonly-fp16.safetensors** is selected
2. Click `Queue` or press `Ctrl + Enter` to generate
The result will appear in the **Save Image** node. Right-click to save locally.
For detailed text-to-image instructions, see our comprehensive guide:
Follow the numbered steps to complete the basic workflow:
1. (Optional) Modify the prompt in the `Flux 1.1 [pro] Ultra Image` node
2. (Optional) Set `raw` parameter to `false` for more realistic output
3. Click `Run` or use shortcut `Ctrl(cmd) + Enter` to generate the image
4. After the API returns results, view the generated image in the `Save Image` node. Images are saved to the `ComfyUI/output/` directory
## Flux 1.1\[pro] Image-to-Image Tutorial
When adding an `image_prompt` to the node input, the output will blend features from the input image (Remix). The `image_prompt_strength` value affects the blend ratio: higher values make the output more similar to the input image.
### 1. Download Workflow File
Download and drag the following file into ComfyUI, or right-click the purple node in the Text-to-Image workflow and set `mode` to `always` to enable `image_prompt` input:

We'll use this image as input:

### 2. Complete the Workflow Steps
Follow these numbered steps:
1. Click **Upload** on the `Load Image` node to upload your input image
2. (Optional) Adjust `image_prompt_strength` in `Flux 1.1 [pro] Ultra Image` to change the blend ratio
3. Click `Run` or use shortcut `Ctrl(cmd) + Enter` to generate the image
4. After the API returns results, view the generated image in the `Save Image` node. Images are saved to the `ComfyUI/output/` directory
Here's a comparison of outputs with different `image_prompt_strength` values:
---
# Source: https://docs.comfy.org/tutorials/flux/flux-1-controlnet.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ComfyUI Flux.1 ControlNet Examples
> This guide will demonstrate workflow examples using Flux.1 ControlNet.
## FLUX.1 ControlNet Model Introduction
FLUX.1 Canny and Depth are two powerful models from the [FLUX.1 Tools](https://blackforestlabs.ai/flux-1-tools/) launched by [Black Forest Labs](https://blackforestlabs.ai/). This toolkit is designed to add control and guidance capabilities to FLUX.1, enabling users to modify and recreate real or generated images.
**FLUX.1-Depth-dev** and **FLUX.1-Canny-dev** are both 12B parameter Rectified Flow Transformer models that can generate images based on text descriptions while maintaining the structural features of the input image.
The Depth version maintains the spatial structure of the source image through depth map extraction techniques, while the Canny version uses edge detection techniques to preserve the structural features of the source image, allowing users to choose the appropriate control method based on different needs.
Both models have the following features:
* Top-tier output quality and detail representation
* Excellent prompt following ability while maintaining consistency with the original image
* Trained using guided distillation techniques for improved efficiency
* Open weights for the research community
* API interfaces (pro version) and open-source weights (dev version)
Additionally, Black Forest Labs also provides **FLUX.1-Depth-dev-lora** and **FLUX.1-Canny-dev-lora** adapter versions extracted from the complete models.
These can be applied to the FLUX.1 \[dev] base model to provide similar functionality with smaller file size, especially suitable for resource-constrained environments.
We will use the full version of **FLUX.1-Canny-dev** and **FLUX.1-Depth-dev-lora** to complete the workflow examples.
Run on Comfy Cloud
### 1. Workflow and Asset Please download the workflow image below and drag it into ComfyUI to load the workflow  Please download the image below, which we will use as the input image  ### 2. Manual Models Installation
1. Make sure `ae.safetensors` is loaded in the `Load VAE` node
2. Make sure `flux1-canny-dev.safetensors` is loaded in the `Load Diffusion Model` node
3. Make sure the following models are loaded in the `DualCLIPLoader` node:
* clip\_name1: t5xxl\_fp16.safetensors
* clip\_name2: clip\_l.safetensors
4. Upload the provided input image in the `Load Image` node
5. Click the `Queue` button, or use the shortcut `Ctrl(cmd) + Enter` to run the workflow
### 4. Start Your Experimentation
Try using the [FLUX.1-Depth-dev](https://huggingface.co/black-forest-labs/FLUX.1-Depth-dev) model to complete the Depth version of the workflow
You can use the image below as input

Or use the following custom nodes to complete image preprocessing:
* [ComfyUI-Advanced-ControlNet](https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet)
* [ComfyUI ControlNet aux](https://github.com/Fannovel16/comfyui_controlnet_aux)
## FLUX.1-Depth-dev-lora Workflow
Run on Comfy Cloud
The LoRA version workflow builds on the complete version by adding the LoRA model. Compared to the [complete version of the Flux workflow](/tutorials/flux/flux-1-text-to-image), it adds nodes for loading and using the corresponding LoRA model. ### 1. Workflow and Asset Please download the workflow image below and drag it into ComfyUI to load the workflow  Please download the image below, which we will use as the input image  ### 2. Manual Model Download
1. Make sure `flux1-dev.safetensors` is loaded in the `Load Diffusion Model` node
2. Make sure `flux1-depth-dev-lora.safetensors` is loaded in the `LoraLoaderModelOnly` node
3. Make sure the following models are loaded in the `DualCLIPLoader` node:
* clip\_name1: t5xxl\_fp16.safetensors
* clip\_name2: clip\_l.safetensors
4. Upload the provided input image in the `Load Image` node
5. Make sure `ae.safetensors` is loaded in the `Load VAE` node
6. Click the `Queue` button, or use the shortcut `Ctrl(cmd) + Enter` to run the workflow
### 4. Start Your Experimentation
Try using the [FLUX.1-Canny-dev-lora](https://huggingface.co/black-forest-labs/FLUX.1-Canny-dev-lora) model to complete the Canny version of the workflow
Use [ComfyUI-Advanced-ControlNet](https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet) or [ComfyUI ControlNet aux](https://github.com/Fannovel16/comfyui_controlnet_aux) to complete image preprocessing
## Community Versions of Flux Controlnets
XLab and InstantX + Shakker Labs have released Controlnets for Flux.
**InstantX:**
* [FLUX.1-dev-Controlnet-Canny](https://huggingface.co/InstantX/FLUX.1-dev-Controlnet-Canny/blob/main/diffusion_pytorch_model.safetensors)
* [FLUX.1-dev-ControlNet-Depth](https://huggingface.co/Shakker-Labs/FLUX.1-dev-ControlNet-Depth/blob/main/diffusion_pytorch_model.safetensors)
* [FLUX.1-dev-ControlNet-Union-Pro](https://huggingface.co/Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro/blob/main/diffusion_pytorch_model.safetensors)
**XLab**: [flux-controlnet-collections](https://huggingface.co/XLabs-AI/flux-controlnet-collections)
Place these files in the `ComfyUI/models/controlnet` directory.
You can visit [Flux Controlnet Example](https://raw.githubusercontent.com/comfyanonymous/ComfyUI_examples/refs/heads/master/flux/flux_controlnet_example.png) to get the corresponding workflow image, and use the image from [here](https://raw.githubusercontent.com/comfyanonymous/ComfyUI_examples/refs/heads/master/flux/girl_in_field.png) as the input image.
---
# Source: https://docs.comfy.org/tutorials/flux/flux-1-fill-dev.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ComfyUI Flux.1 fill dev Example
> This guide demonstrates how to use Flux.1 fill dev to create Inpainting and Outpainting workflows.
## Introduction to Flux.1 fill dev Model
Flux.1 fill dev is one of the core tools in the [FLUX.1 Tools suite](https://blackforestlabs.ai/flux-1-tools/) launched by [Black Forest Labs](https://blackforestlabs.ai/), specifically designed for image inpainting and outpainting.
Key features of Flux.1 fill dev:
* Powerful image inpainting and outpainting capabilities, with results second only to the commercial version FLUX.1 Fill \[pro].
* Excellent prompt understanding and following ability, precisely capturing user intent while maintaining high consistency with the original image.
* Advanced guided distillation training technology, making the model more efficient while maintaining high-quality output.
* Friendly licensing terms, with generated outputs usable for personal, scientific, and commercial purposes, please refer to the [FLUX.1 \[dev\] non-commercial license](https://huggingface.co/black-forest-labs/FLUX.1-dev/blob/main/LICENSE.md) for details.
Open Source Repository: [FLUX.1 \[dev\]](https://huggingface.co/black-forest-labs/FLUX.1-dev)
This guide will demonstrate inpainting and outpainting workflows based on the Flux.1 fill dev model.
If you're not familiar with inpainting and outpainting workflows, you can refer to [ComfyUI Layout Inpainting Example](/tutorials/basic/inpaint) and [ComfyUI Image Extension Example](/tutorials/basic/outpaint) for some related explanations.
## Flux.1 Fill dev and related models installation
Before we begin, let's complete the installation of the Flux.1 Fill dev model files. The inpainting and outpainting workflows will use exactly the same model files.
If you've previously used the full version of the [Flux.1 Text-to-Image workflow](/tutorials/flux/flux-1-text-to-image),
then you only need to download the **flux1-fill-dev.safetensors** model file in this section.
However, since downloading the corresponding model requires agreeing to the corresponding usage agreement, please visit the [black-forest-labs/FLUX.1-Fill-dev](https://huggingface.co/black-forest-labs/FLUX.1-Fill-dev) page and make sure you have agreed to the corresponding agreement as shown in the image below.
Complete model list:
* [clip\_l.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors?download=true)
* [t5xxl\_fp16.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp16.safetensors?download=true)
* [ae.safetensors](https://huggingface.co/black-forest-labs/FLUX.1-schnell/resolve/main/ae.safetensors?download=true)
* [flux1-fill-dev.safetensors](https://huggingface.co/black-forest-labs/FLUX.1-Fill-dev/resolve/main/flux1-fill-dev.safetensors?download=true)
File storage location:
```
ComfyUI/
├── models/
│ ├── text_encoders/
│ │ ├── clip_l.safetensors
│ │ └── t5xxl_fp16.safetensors
│ ├── vae/
│ │ └── ae.safetensors
│ └── diffusion_models/
│ └── flux1-fill-dev.safetensors
```
## Flux.1 Fill dev inpainting workflow
### 1. Inpainting workflow and asset
Download Workflow Image
Run on Comfy Cloud
Please download the image below and drag it into ComfyUI to load the corresponding workflow  Please download the image below, we will use it as the input image 
1. Ensure the `Load Diffusion Model` node has `flux1-fill-dev.safetensors` loaded.
2. Ensure the `DualCLIPLoader` node has the following models loaded:
* clip\_name1: `t5xxl_fp16.safetensors`
* clip\_name2: `clip_l.safetensors`
3. Ensure the `Load VAE` node has `ae.safetensors` loaded.
4. Upload the input image provided in the document to the `Load Image` node; if you're using the version without a mask, remember to complete the mask drawing using the mask editor
5. Click the `Queue` button, or use the shortcut `Ctrl(cmd) + Enter` to run the workflow
## Flux.1 Fill dev Outpainting Workflow
### 1. Outpainting workflow and asset
Please download the image below and drag it into ComfyUI to load the corresponding workflow

Please download the image below, we will use it as the input image

### 2. Steps to run the workflow
1. Ensure the `Load Diffusion Model` node has `flux1-fill-dev.safetensors` loaded.
2. Ensure the `DualCLIPLoader` node has the following models loaded:
* clip\_name1: `t5xxl_fp16.safetensors`
* clip\_name2: `clip_l.safetensors`
3. Ensure the `Load VAE` node has `ae.safetensors` loaded.
4. Upload the input image provided in the document to the `Load Image` node
5. Click the `Queue` button, or use the shortcut `Ctrl(cmd) + Enter` to run the workflow
---
# Source: https://docs.comfy.org/tutorials/flux/flux-1-kontext-dev.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ComfyUI Flux Kontext Dev Native Workflow Example
> ComfyUI Flux Kontext Dev Native Workflow Example.
## About FLUX.1 Kontext Dev
FLUX.1 Kontext is a breakthrough multimodal image editing model from Black Forest Labs that supports simultaneous text and image input, intelligently understanding image context and performing precise editing. Its development version is an open-source diffusion transformer model with 12 billion parameters, featuring excellent context understanding and character consistency maintenance, ensuring that key elements such as character features and composition layout remain stable even after multiple iterative edits.
It shares the same core capabilities as the FLUX.1 Kontext suite:
* Character Consistency: Preserves unique elements in images across multiple scenes and environments, such as reference characters or objects in the image.
* Editing: Makes targeted modifications to specific elements in the image without affecting other parts.
* Style Reference: Generates novel scenes while preserving the unique style of the reference image according to text prompts.
* Interactive Speed: Minimal latency in image generation and editing.
While the previously released API version offers the highest fidelity and speed, FLUX.1 Kontext \[Dev] runs entirely on local machines, providing unparalleled flexibility for developers, researchers, and advanced users who wish to experiment.
### Version Information
* **\[FLUX.1 Kontext \[pro]** - Commercial version, focused on rapid iterative editing
* **FLUX.1 Kontext \[max]** - Experimental version with stronger prompt adherence
* **FLUX.1 Kontext \[dev]** - Open source version (used in this tutorial), 12B parameters, mainly for research
Currently in ComfyUI, you can use all these versions, where [Pro and Max versions](/tutorials/partner-nodes/black-forest-labs/flux-1-kontext) can be called through API nodes, while the Dev open source version please refer to the instructions in this guide.
Run on Comfy Cloud
This workflow uses the `Load Image(from output)` node to load the image to be edited, making it more convenient for you to access the edited image for multiple rounds of editing. ### 1. Workflow and Input Image Download Download the following files and drag them into ComfyUI to load the corresponding workflow  **Input Image**  ### 2. Complete the workflow step by step
You can refer to the numbers in the image to complete the workflow run:
1. In the `Load Diffusion Model` node, load the `flux1-dev-kontext_fp8_scaled.safetensors` model
2. In the `DualCLIP Load` node, ensure that `clip_l.safetensors` and `t5xxl_fp16.safetensors` or `t5xxl_fp8_e4m3fn_scaled.safetensors` are loaded
3. In the `Load VAE` node, ensure that `ae.safetensors` model is loaded
4. In the `Load Image(from output)` node, load the provided input image
5. In the `CLIP Text Encode` node, modify the prompts, only English is supported
6. Click the `Queue` button, or use the shortcut `Ctrl(cmd) + Enter` to run the workflow
## Flux Kontext Prompt Techniques
### 1. Basic Modifications
* Simple and direct: `"Change the car color to red"`
* Maintain style: `"Change to daytime while maintaining the same style of the painting"`
### 2. Style Transfer
**Principles:**
* Clearly name style: `"Transform to Bauhaus art style"`
* Describe characteristics: `"Transform to oil painting with visible brushstrokes, thick paint texture"`
* Preserve composition: `"Change to Bauhaus style while maintaining the original composition"`
### 3. Character Consistency
**Framework:**
* Specific description: `"The woman with short black hair"` instead of "she"
* Preserve features: `"while maintaining the same facial features, hairstyle, and expression"`
* Step-by-step modifications: Change background first, then actions
### 4. Text Editing
* Use quotes: `"Replace 'joy' with 'BFL'"`
* Maintain format: `"Replace text while maintaining the same font style"`
## Common Problem Solutions
### Character Changes Too Much
❌ Wrong: `"Transform the person into a Viking"`
✅ Correct: `"Change the clothes to be a viking warrior while preserving facial features"`
### Composition Position Changes
❌ Wrong: `"Put him on a beach"`
✅ Correct: `"Change the background to a beach while keeping the person in the exact same position, scale, and pose"`
### Style Application Inaccuracy
❌ Wrong: `"Make it a sketch"`
✅ Correct: `"Convert to pencil sketch with natural graphite lines, cross-hatching, and visible paper texture"`
## Core Principles
1. **Be Specific and Clear** - Use precise descriptions, avoid vague terms
2. **Step-by-step Editing** - Break complex modifications into multiple simple steps
3. **Explicit Preservation** - State what should remain unchanged
4. **Verb Selection** - Use "change", "replace" rather than "transform"
## Best Practice Templates
**Object Modification:**
`"Change [object] to [new state], keep [content to preserve] unchanged"`
**Style Transfer:**
`"Transform to [specific style], while maintaining [composition/character/other] unchanged"`
**Background Replacement:**
`"Change the background to [new background], keep the subject in the exact same position and pose"`
**Text Editing:**
`"Replace '[original text]' with '[new text]', maintain the same font style"`
> **Remember:** The more specific, the better. Kontext excels at understanding detailed instructions and maintaining consistency.
---
# Source: https://docs.comfy.org/tutorials/partner-nodes/black-forest-labs/flux-1-kontext.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ComfyUI Flux.1 Kontext Pro Image API Node Official Example
> This guide will show you how to use the Flux.1 Kontext Pro Image Partner node in ComfyUI to perform image editing
FLUX.1 Kontext is a professional image-to-image editing model developed by Black Forest Labs, focusing on intelligent understanding of image context and precise editing.
It can perform various editing tasks without complex descriptions, including object modification, style transfer, background replacement, character consistency editing, and text editing.
The core advantage of Kontext lies in its excellent context understanding ability and character consistency maintenance, ensuring that key elements such as character features and composition layout remain stable even after multiple iterations of editing.
Currently, ComfyUI has supported two models of Flux.1 Kontext:
* **Kontext Pro** is ideal for editing, composing, and remixing.
* **Kontext Max** pushes the limits on typography, prompt precision, and speed.
In this guide, we will briefly introduce how to use the Flux.1 Kontext Partner nodes to perform image editing through corresponding workflows.
You can follow the numbered steps in the image to complete the workflow:
1. Upload the provided images in the `Load image` node
2. Modify the necessary parameters in `Flux.1 Kontext Pro Image`:
* `prompt` Enter the prompt for the image you want to edit
* `aspect_ratio` Set the aspect ratio of the original image, which must be between 1:4 and 4:1
* `prompt_upsampling` Set whether to use prompt upsampling. If enabled, it will automatically modify the prompt to get richer results, but the results are not reproducible
3. Click the `Run` button or use the shortcut `Ctrl(cmd) + Enter` to execute the image editing
4. After waiting for the API to return results, you can view the edited image in the `Save Image` node, and the corresponding image will also be saved to the `ComfyUI/output/` directory
You can follow the numbered steps in the image to complete the workflow:
1. Load the image you want to edit in the `Load Image` node
2. (Optional) Modify the necessary parameters in `Flux.1 Kontext Pro Image`
3. Click the `Run` button or use the shortcut `Ctrl(cmd) + Enter` to execute the image editing
4. After waiting for the API to return results, you can view the edited image in the `Save Image` node, and the corresponding image will also be saved to the `ComfyUI/output/` directory
## Flux.1 Kontext Max Image API Node Workflow
### 1. Workflow File Download
The `metadata` of the image below contains the workflow information. Please download and drag it into ComfyUI to load the corresponding workflow.

Download the image below for input or use your own image for demonstration:

### 2. Complete the Workflow Step by Step
You can follow the numbered steps in the image to complete the workflow:
1. Load the image you want to edit in the `Load Image` node
2. (Optional) Modify the necessary parameters in `Flux.1 Kontext Max Image`
3. Click the `Run` button or use the shortcut `Ctrl(cmd) + Enter` to execute the image editing
4. After waiting for the API to return results, you can view the edited image in the `Save Image` node, and the corresponding image will also be saved to the `ComfyUI/output/` directory
## Flux Kontext Prompt Techniques
### 1. Basic Modifications
* Simple and direct: `"Change the car color to red"`
* Maintain style: `"Change to daytime while maintaining the same style of the painting"`
### 2. Style Transfer
**Principles:**
* Clearly name style: `"Transform to Bauhaus art style"`
* Describe characteristics: `"Transform to oil painting with visible brushstrokes, thick paint texture"`
* Preserve composition: `"Change to Bauhaus style while maintaining the original composition"`
### 3. Character Consistency
**Framework:**
* Specific description: `"The woman with short black hair"` instead of "she"
* Preserve features: `"while maintaining the same facial features, hairstyle, and expression"`
* Step-by-step modifications: Change background first, then actions
### 4. Text Editing
* Use quotes: `"Replace 'joy' with 'BFL'"`
* Maintain format: `"Replace text while maintaining the same font style"`
## Common Problem Solutions
### Character Changes Too Much
❌ Wrong: `"Transform the person into a Viking"`
✅ Correct: `"Change the clothes to be a viking warrior while preserving facial features"`
### Composition Position Changes
❌ Wrong: `"Put him on a beach"`
✅ Correct: `"Change the background to a beach while keeping the person in the exact same position, scale, and pose"`
### Style Application Inaccuracy
❌ Wrong: `"Make it a sketch"`
✅ Correct: `"Convert to pencil sketch with natural graphite lines, cross-hatching, and visible paper texture"`
## Core Principles
1. **Be Specific and Clear** - Use precise descriptions, avoid vague terms
2. **Step-by-step Editing** - Break complex modifications into multiple simple steps
3. **Explicit Preservation** - State what should remain unchanged
4. **Verb Selection** - Use "change", "replace" rather than "transform"
## Best Practice Templates
**Object Modification:**
`"Change [object] to [new state], keep [content to preserve] unchanged"`
**Style Transfer:**
`"Transform to [specific style], while maintaining [composition/character/other] unchanged"`
**Background Replacement:**
`"Change the background to [new background], keep the subject in the exact same position and pose"`
**Text Editing:**
`"Replace '[original text]' with '[new text]', maintain the same font style"`
> **Remember:** The more specific, the better. Kontext excels at understanding detailed instructions and maintaining consistency.
---
# Source: https://docs.comfy.org/tutorials/flux/flux-1-text-to-image.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ComfyUI Flux.1 Text-to-Image Workflow Example
> This guide provides a brief introduction to the Flux.1 model and guides you through using the Flux.1 model for text-to-image generation with examples including the full version and the FP8 Checkpoint version.
Flux is one of the largest open-source text-to-image generation models, with 12B parameters and an original file size of approximately 23GB. It was developed by [Black Forest Labs](https://blackforestlabs.ai/), a team founded by former Stable Diffusion team members.
Flux is known for its excellent image quality and flexibility, capable of generating high-quality, diverse images.
Currently, the Flux.1 model has several main versions:
* **Flux.1 Pro:** The best performing model, closed-source, only available through API calls.
* **[Flux.1 \[dev\]:](https://huggingface.co/black-forest-labs/FLUX.1-dev)** Open-source but limited to non-commercial use, distilled from the Pro version, with performance close to the Pro version.
* **[Flux.1 \[schnell\]:](https://huggingface.co/black-forest-labs/FLUX.1-schnell)** Uses the Apache2.0 license, requires only 4 steps to generate images, suitable for low-spec hardware.
**Flux.1 Model Features**
* **Hybrid Architecture:** Combines the advantages of Transformer networks and diffusion models, effectively integrating text and image information, improving the alignment accuracy between generated images and prompts, with excellent fidelity to complex prompts.
* **Parameter Scale:** Flux has 12B parameters, capturing more complex pattern relationships and generating more realistic, diverse images.
* **Supports Multiple Styles:** Supports diverse styles, with excellent performance for various types of images.
In this example, we'll introduce text-to-image examples using both Flux.1 Dev and Flux.1 Schnell versions, including the full version model and the simplified FP8 Checkpoint version.
* **Flux Full Version:** Best performance, but requires larger VRAM resources and installation of multiple model files.
* **Flux FP8 Checkpoint:** Requires only one fp8 version of the model, but quality is slightly reduced compared to the full version.
Run on Comfy Cloud
#### 2. Manual Model Installation
1. Ensure the `DualCLIPLoader` node has the following models loaded:
* clip\_name1: t5xxl\_fp16.safetensors
* clip\_name2: clip\_l.safetensors
2. Ensure the `Load Diffusion Model` node has `flux1-dev.safetensors` loaded
3. Make sure the `Load VAE` node has `ae.safetensors` loaded
4. Click the `Queue` button, or use the shortcut `Ctrl(cmd) + Enter` to run the workflow
Run on Comfy Cloud
#### 2. Manual Models Installation
1. Ensure the `DualCLIPLoader` node has the following models loaded:
* clip\_name1: t5xxl\_fp8\_e4m3fn.safetensors
* clip\_name2: clip\_l.safetensors
2. Ensure the `Load Diffusion Model` node has `flux1-schnell.safetensors` loaded
3. Ensure the `Load VAE` node has `ae.safetensors` loaded
4. Click the `Queue` button, or use the shortcut `Ctrl(cmd) + Enter` to run the workflow
## Flux.1 FP8 Checkpoint Version Text-to-Image Example
The fp8 version is a quantized version of the original Flux.1 fp16 version.
To some extent, the quality of this version will be lower than that of the fp16 version,
but it also requires less VRAM, and you only need to install one model file to try running it.
### Flux.1 Dev
Please download the image below and drag it into ComfyUI to load the workflow.

Run on Comfy Cloud
Please download [flux1-dev-fp8.safetensors](https://huggingface.co/Comfy-Org/flux1-dev/resolve/main/flux1-dev-fp8.safetensors?download=true) and save it to the `ComfyUI/models/checkpoints/` directory. Ensure that the corresponding `Load Checkpoint` node loads `flux1-dev-fp8.safetensors`, and you can try to run the workflow. ### Flux.1 Schnell Please download the image below and drag it into ComfyUI to load the workflow.  Please download [flux1-schnell-fp8.safetensors](https://huggingface.co/Comfy-Org/flux1-schnell/resolve/main/flux1-schnell-fp8.safetensors?download=true) and save it to the `ComfyUI/models/checkpoints/` directory. Ensure that the corresponding `Load Checkpoint` node loads `flux1-schnell-fp8.safetensors`, and you can try to run the workflow. --- # Source: https://docs.comfy.org/tutorials/flux/flux-1-uso.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.comfy.org/llms.txt > Use this file to discover all available pages before exploring further. # ByteDance USO ComfyUI Native Workflow example > Unified Style and Subject-Driven Generation with ByteDance's USO model **USO (Unified Style-Subject Optimized)** is a model developed by ByteDance's UXO Team that unifies style-driven and subject-driven generation tasks. Built on FLUX.1-dev architecture, the model achieves both style similarity and subject consistency through disentangled learning and style reward learning (SRL). USO supports three main approaches: * **Subject-Driven**: Place subjects into new scenes while maintaining identity consistency * **Style-Driven**: Apply artistic styles to new content based on reference images * **Combined**: Use both subject and style references simultaneously **Related Links** * [Project Page](https://bytedance.github.io/USO/) * [GitHub](https://github.com/bytedance/USO) * [Model Weights](https://huggingface.co/bytedance-research/USO) ## ByteDance USO ComfyUI Native WorkflowDownload JSON Workflow
Run on Comfy Cloud
Use the image below as an input image.  ### 2. Model links **checkpoints** * [flux1-dev-fp8.safetensors](https://huggingface.co/Comfy-Org/flux1-dev/resolve/main/flux1-dev-fp8.safetensors) **loras** * [uso-flux1-dit-lora-v1.safetensors](https://huggingface.co/Comfy-Org/USO_1.0_Repackaged/resolve/main/split_files/loras/uso-flux1-dit-lora-v1.safetensors) **model\_patches** * [uso-flux1-projector-v1.safetensors](https://huggingface.co/Comfy-Org/USO_1.0_Repackaged/resolve/main/split_files/model_patches/uso-flux1-projector-v1.safetensors) **clip\_visions** * [sigclip\_vision\_patch14\_384.safetensors](https://huggingface.co/Comfy-Org/sigclip_vision_384/resolve/main/sigclip_vision_patch14_384.safetensors) Please download all models and place them in the following directories: ``` 📂 ComfyUI/ ├── 📂 models/ │ ├── 📂 checkpoints/ │ │ └── flux1-dev-fp8.safetensors │ ├── 📂 loras/ │ │ └── uso-flux1-dit-lora-v1.safetensors │ ├── 📂 model_patches/ │ │ └── uso-flux1-projector-v1.safetensors │ ├── 📂 clip_visions/ │ │ └── sigclip_vision_patch14_384.safetensors ``` ### 3. Workflow instructions
1. Load models:
* 1.1 Ensure the `Load Checkpoint` node has `flux1-dev-fp8.safetensors` loaded
* 1.2 Ensure the `LoraLoaderModelOnly` node has `dit_lora.safetensors` loaded
* 1.3 Ensure the `ModelPatchLoader` node has `projector.safetensors` loaded
* 1.4 Ensure the `Load CLIP Vision` node has `sigclip_vision_patch14_384.safetensors` loaded
2. Content Reference:
* 2.1 Click `Upload` to upload the input image we provided
* 2.2 The `ImageScaleToMaxDimension` node will scale your input image for content reference, 512px will keep more character features, but if you only use the character's head as input, the final output image often has issues like the character taking up too much space. Setting it to 1024px gives much better results.
3. In the example, we only use the `content reference` image input. If you want to use the `style reference` image input, you can use `Ctrl-B` to bypass the marked node group.
4. Write your prompt or keep default
5. Set the image size if you need
6. The EasyCache node is for inference acceleration, but it will also sacrifice some quality and details. You can bypass it (Ctrl+B) if you don't need to use it.
7. Click the `Run` button, or use the shortcut `Ctrl(Cmd) + Enter` to run the workflow
### 4. Additional Notes
1. Style reference only:
We also provide a workflow that only uses style reference in the same workflow we provided
The only different is we replaced the `content reference` node and only use an `Empty Latent Image` node.
2. You can also bypass whole `Style Reference` group and use the workflow as a text to image workflow, which means this workflow has 4 variations
* Only use content (subject) reference
* Only use style reference
* Mixed content and style reference
* As a text to image workflow
---
# Source: https://docs.comfy.org/tutorials/flux/flux-2-dev.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ComfyUI Flux.2 Dev Example
> This guide provides a brief introduction to the Flux.2 model and guides you through using the Flux.2 Dev model for text-to-image generation in ComfyUI.
## About FLUX.2
[FLUX.2](https://bfl.ai/blog/flux-2) is a next-generation image model from [Black Forest Labs](https://blackforestlabs.ai/), delivering up to 4MP photorealistic output with far better lighting, skin, fabric, and hand detail. It adds reliable multi-reference consistency (up to 10 images), improved editing precision, better visual understanding, and professional-class text rendering.
**Key Features:**
* **Multi-Reference Consistency:** Reliably maintains identity, product geometry, textures, materials, wardrobe, and composition intent across multiple outputs
* **High-Resolution Photorealism:** Generates images up to 4MP with real-world lighting behavior, spatial reasoning, and physics-aware detail
* **Professional-Grade Control:** Exact pose control, hex-code accurate brand colors, any aspect ratio, and structured prompting for programmatic workflows
* **Usable Text Rendering:** Produces clean, legible text across UI screens, infographics, and multi-language content
**Available Models:**
* **FLUX.2 Dev:** Open-source model (used in this tutorial)
* **FLUX.2 Pro:** API version from Black Forest Labs
Download JSON Workflow File
Run on Comfy Cloud
## Model links **text\_encoders** * [mistral\_3\_small\_flux2\_bf16.safetensors](https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/text_encoders/mistral_3_small_flux2_bf16.safetensors) **diffusion\_models** * [flux2\_dev\_fp8mixed.safetensors](https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/diffusion_models/flux2_dev_fp8mixed.safetensors) **vae** * [flux2-vae.safetensors](https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/vae/flux2-vae.safetensors) **Model Storage Location** ``` 📂 ComfyUI/ ├── 📂 models/ │ ├── 📂 text_encoders/ │ │ └── mistral_3_small_flux2_bf16.safetensors │ ├── 📂 diffusion_models/ │ │ └── flux2_dev_fp8mixed.safetensors │ └── 📂 vae/ │ └── flux2-vae.safetensors ``` --- # Source: https://docs.comfy.org/tutorials/flux/flux-2-klein.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.comfy.org/llms.txt > Use this file to discover all available pages before exploring further. # ComfyUI Flux.2 Klein 4B Guide > A quick introduction to FLUX.2 [klein] 4B and how to run text-to-image and image editing workflows in ComfyUI. ## About FLUX.2 \[klein] FLUX.2 \[Klein] is the fastest model in the Flux family, unifying text-to-image and image editing in one compact architecture. It’s designed for interactive workflows, immediate previews, and latency-critical applications, with distilled variants delivering end-to-end inference around one second while keeping strong quality for single- and multi-reference editing. **Model highlights:** * Two 4B types: Base (undistilled) for maximum flexibility and fine-tuning; Distilled (4-step) for speed-first deployments * Performance: distilled \~1.2s (5090) · 8.4GB VRAM; base \~17s (5090) · 9.2GB VRAM * Editing support: style transforms, semantic edits, object replacement/removal, multi-reference composition, iterative edits
[Flux.1 Krea Dev](https://huggingface.co/black-forest-labs/FLUX.1-Krea-dev) is an advanced text-to-image generation model developed in collaboration between Black Forest Labs (BFL) and Krea. This is currently the best open-source FLUX model, specifically designed for text-to-image generation.
**Model Features**
* **Unique Aesthetic Style**: Focuses on generating images with unique aesthetics, avoiding common "AI look" appearance
* **Natural Details**: Does not produce blown-out highlights, maintaining natural detail representatio
* **Exceptional Realism**: Provides outstanding realism and image quality
* **Fully Compatible Architecture**: Fully compatible architecture design with FLUX.1 \[dev]
**Model License**
This model is released under the [flux-1-dev-non-commercial-license](https://huggingface.co/black-forest-labs/FLUX.1-Krea-dev/blob/main/LICENSE.md)
## Flux.1 Krea Dev ComfyUI Workflow
Download JSON Workflow
Run on Comfy Cloud
#### 2. Manual Model Installation Please download the following model files: **Diffusion model** * [flux1-krea-dev\_fp8\_scaled.safetensors](https://huggingface.co/Comfy-Org/FLUX.1-Krea-dev_ComfyUI/blob/main/split_files/diffusion_models/flux1-krea-dev_fp8_scaled.safetensors) If you want to pursue higher quality and have enough VRAM, you can try the original model weights * [flux1-krea-dev.safetensors](https://huggingface.co/black-forest-labs/FLUX.1-Krea-dev/resolve/main/flux1-krea-dev.safetensors)
1. Ensure that `flux1-krea-dev_fp8_scaled.safetensors` or `flux1-krea-dev.safetensors` is loaded in the `Load Diffusion Model` node
* `flux1-krea-dev_fp8_scaled.safetensors` is recommended for low VRAM users
* `flux1-krea-dev.safetensors` is the original weights, if you have enough VRAM like 24GB you can use it for better quality
2. Ensure the following models are loaded in the `DualCLIPLoader` node:
* clip\_name1: t5xxl\_fp16.safetensors or t5xxl\_fp8\_e4m3fn.safetensors
* clip\_name2: clip\_l.safetensors
3. Ensure that `ae.safetensors` is loaded in the `Load VAE` node
4. Click the `Queue` button, or use the shortcut `Ctrl(cmd) + Enter` to run the workflow
---
# Source: https://docs.comfy.org/tutorials/video/wan/fun-camera.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ComfyUI Wan2.1 Fun Camera Official Examples
> This guide demonstrates how to use Wan2.1 Fun Camera in ComfyUI for video generation
## About Wan2.1 Fun Camera
**Wan2.1 Fun Camera** is a video generation project launched by the Alibaba team, focusing on controlling video generation effects through camera motion.
**Model Weights Download**:
* [14B Version](https://huggingface.co/alibaba-pai/Wan2.1-Fun-V1.1-14B-Control-Camera)
* [1.3B Version](https://huggingface.co/alibaba-pai/Wan2.1-Fun-V1.1-1.3B-Control-Camera)
**Code Repository**: [VideoX-Fun](https://github.com/aigc-apps/VideoX-Fun)
**ComfyUI now natively supports the Wan2.1 Fun Camera model**.
Download Json Workflow File
1. Ensure the correct version of model file is loaded:
* 1.3B version: `wan2.1_fun_camera_v1.1_1.3B_bf16.safetensors`
* 14B version: `wan2.1_fun_camera_v1.1_14B_bf16.safetensors`
2. Ensure the `Load CLIP` node has loaded `umt5_xxl_fp8_e4m3fn_scaled.safetensors`
3. Ensure the `Load VAE` node has loaded `wan_2.1_vae.safetensors`
4. Ensure the `Load CLIP Vision` node has loaded `clip_vision_h.safetensors`
5. Upload the starting frame to the `Load Image` node
6. Modify the Prompt if you're using your own input image
7. Set camera motion in the `WanCameraEmbedding` node
8. Click the `Run` button or use the shortcut `Ctrl(cmd) + Enter` to execute generation
## ComfyUI Wan2.1 Fun Camera 14B Workflow and Input Image
Download Json Workflow File
**Input Image**  ## Performance Reference **1.3B Version**: * 512×512 resolution on RTX 4090 takes about 72 seconds to generate 81 frames **14B Version**: * RTX4090 24GB VRAM may experience insufficient memory when generating 512×512 resolution, and memory issues have also occurred on A100 when using larger sizes --- # Source: https://docs.comfy.org/tutorials/video/wan/fun-control.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.comfy.org/llms.txt > Use this file to discover all available pages before exploring further. # ComfyUI Wan2.1 Fun Control Video Examples > This guide demonstrates how to use Wan2.1 Fun Control in ComfyUI to generate videos with control videos ## About Wan2.1-Fun-Control **Wan2.1-Fun-Control** is an open-source video generation and control project developed by Alibaba team. It introduces innovative Control Codes mechanisms combined with deep learning and multimodal conditional inputs to generate high-quality videos that conform to preset control conditions. The project focuses on precisely guiding generated video content through multimodal control conditions. Currently, the Fun Control model supports various control conditions, including **Canny (line art), Depth, OpenPose (human posture), MLSD (geometric edges), and trajectory control.** The model also supports multi-resolution video prediction with options for 512, 768, and 1024 resolutions at 16 frames per second, generating videos up to 81 frames (approximately 5 seconds) in length. Model versions: * **1.3B** Lightweight: Suitable for local deployment and quick inference with **lower VRAM requirements** * **14B** High-performance: Model size reaches 32GB+, offering better results but **requiring higher VRAM** Here are the relevant code repositories: * [Wan2.1-Fun-1.3B-Control](https://huggingface.co/alibaba-pai/Wan2.1-Fun-1.3B-Control) * [Wan2.1-Fun-14B-Control](https://huggingface.co/alibaba-pai/Wan2.1-Fun-14B-Control) * Code repository: [VideoX-Fun](https://github.com/aigc-apps/VideoX-Fun) ComfyUI now **natively supports** the Wan2.1 Fun Control model. Before starting this tutorial, please update your ComfyUI to ensure you're using a version after [this commit](https://github.com/comfyanonymous/ComfyUI/commit/3661c833bcc41b788a7c9f0e7bc48524f8ee5f82). In this guide, we'll provide two workflows: 1. A workflow using only native Comfy Core nodes 2. A workflow using custom nodes
1. Ensure the `Load Diffusion Model` node has loaded `wan2.1_fun_control_1.3B_bf16.safetensors`
2. Ensure the `Load CLIP` node has loaded `umt5_xxl_fp8_e4m3fn_scaled.safetensors`
3. Ensure the `Load VAE` node has loaded `wan_2.1_vae.safetensors`
4. Ensure the `Load CLIP Vision` node has loaded `clip_vision_h.safetensors`
5. Upload the starting frame to the `Load Image` node (renamed to `Start_image`)
6. Upload the control video to the second `Load Image` node. Note: This node currently doesn't support mp4, only WebP videos
7. (Optional) Modify the prompt (both English and Chinese are supported)
8. (Optional) Adjust the video size in `WanFunControlToVideo`, avoiding overly large dimensions
9. Click the `Run` button or use the shortcut `Ctrl(cmd) + Enter` to execute video generation
### 3. Usage Notes
* Since we need to input the same number of frames as the control video into the `WanFunControlToVideo` node, if the specified frame count exceeds the actual control video frames, the excess frames may display scenes not conforming to control conditions. We'll address this issue in the [Workflow Using Custom Nodes](#workflow-using-custom-nodes)
* Avoid setting overly large dimensions, as this can make the sampling process very time-consuming. Try generating smaller images first, then upscale
* Use your imagination to build upon this workflow by adding text-to-image or other types of workflows to achieve direct text-to-video generation or style transfer
* Use tools like [ComfyUI-comfyui\_controlnet\_aux](https://github.com/Fannovel16/comfyui_controlnet_aux) for richer control options
## Workflow Using Custom Nodes
We'll need to install the following two custom nodes:
* [ComfyUI-VideoHelperSuite](https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite)
* [ComfyUI-comfyui\_controlnet\_aux](https://github.com/Fannovel16/comfyui_controlnet_aux)
You can use [ComfyUI Manager](https://github.com/Comfy-Org/ComfyUI-Manager) to install missing nodes or follow the installation instructions for each custom node package.
### 1. Workflow File Download
#### 1.1 Workflow File
Download the image below and drag it into ComfyUI to load the workflow:

> The model part is essentially the same. If you've already experienced the native-only workflow, you can directly upload the corresponding images and run it.
1. Ensure the `Load Diffusion Model` node has loaded `wan2.1_fun_control_1.3B_bf16.safetensors`
2. Ensure the `Load CLIP` node has loaded `umt5_xxl_fp8_e4m3fn_scaled.safetensors`
3. Ensure the `Load VAE` node has loaded `wan_2.1_vae.safetensors`
4. Ensure the `Load CLIP Vision` node has loaded `clip_vision_h.safetensors`
5. Upload the starting frame to the `Load Image` node
6. Upload an mp4 format video to the `Load Video(Upload)` custom node. Note that the workflow has adjusted the default `frame_load_cap`
7. For the current image, the `DWPose Estimator` only uses the `detect_face` option
8. (Optional) Modify the prompt (both English and Chinese are supported)
9. (Optional) Adjust the video size in `WanFunControlToVideo`, avoiding overly large dimensions
10. Click the `Run` button or use the shortcut `Ctrl(cmd) + Enter` to execute video generation
### 3. Workflow Notes
Thanks to the ComfyUI community authors for their custom node packages:
* This example uses `Load Video(Upload)` to support mp4 videos
* The `video_info` obtained from `Load Video(Upload)` allows us to maintain the same `fps` for the output video
* You can replace `DWPose Estimator` with other preprocessors from the `ComfyUI-comfyui_controlnet_aux` node package
* Prompts support multiple languages
## Usage Tips
* A useful tip is that you can combine multiple image preprocessing techniques and then use the `Image Blend` node to achieve the goal of applying multiple control methods simultaneously.
* You can use the `Video Combine` node from `ComfyUI-VideoHelperSuite` to save videos in mp4 format
* We use `SaveAnimatedWEBP` because we currently don't support embedding workflow into **mp4** and some other custom nodes may not support embedding workflow too. To preserve the workflow in the video, we choose `SaveAnimatedWEBP` node.
* In the `WanFunControlToVideo` node, `control_video` is not mandatory, so sometimes you can skip using a control video, first generate a very small video size like 320x320, and then use them as control video input to achieve consistent results.
* [ComfyUI-WanVideoWrapper](https://github.com/kijai/ComfyUI-WanVideoWrapper)
* [ComfyUI-KJNodes](https://github.com/kijai/ComfyUI-KJNodes)
---
# Source: https://docs.comfy.org/tutorials/video/wan/fun-inp.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# ComfyUI Wan2.1 Fun InP Video Examples
> This guide demonstrates how to use Wan2.1 Fun InP in ComfyUI to generate videos with first and last frame control
## About Wan2.1-Fun-InP
**Wan-Fun InP** is an open-source video generation model released by Alibaba, part of the Wan2.1-Fun series, focusing on generating videos from images with first and last frame control.
**Key features**:
* **First and last frame control**: Supports inputting both first and last frame images to generate transitional video between them, enhancing video coherence and creative freedom. Compared to earlier community versions, Alibaba's official model produces more stable and significantly higher quality results.
* **Multi-resolution support**: Supports generating videos at 512×512, 768×768, 1024×1024 and other resolutions to accommodate different scenario requirements.
**Model versions**:
* **1.3B** Lightweight: Suitable for local deployment and quick inference with **lower VRAM requirements**
* **14B** High-performance: Model size reaches 32GB+, offering better results but requiring **higher VRAM**
Below are the relevant model weights and code repositories:
* [Wan2.1-Fun-1.3B-Input](https://huggingface.co/alibaba-pai/Wan2.1-Fun-1.3B-Input)
* [Wan2.1-Fun-14B-Input](https://huggingface.co/alibaba-pai/Wan2.1-Fun-14B-Input)
* Code repository: [VideoX-Fun](https://github.com/aigc-apps/VideoX-Fun)
1. Ensure the `Load Diffusion Model` node has loaded `wan2.1_fun_inp_1.3B_bf16.safetensors`
2. Ensure the `Load CLIP` node has loaded `umt5_xxl_fp8_e4m3fn_scaled.safetensors`
3. Ensure the `Load VAE` node has loaded `wan_2.1_vae.safetensors`
4. Ensure the `Load CLIP Vision` node has loaded `clip_vision_h.safetensors`
5. Upload the starting frame to the `Load Image` node (renamed to `Start_image`)
6. Upload the ending frame to the second `Load Image` node
7. (Optional) Modify the prompt (both English and Chinese are supported)
8. (Optional) Adjust the video size in `WanFunInpaintToVideo`, avoiding overly large dimensions
9. Click the `Run` button or use the shortcut `Ctrl(cmd) + Enter` to execute video generation
### 4. Workflow Notes
Download Json Format Workflow File
### 2. Complete the Workflow Execution Step by Step
The Google Veo2 Video node generates high-quality videos from text descriptions using Google's Veo2 API technology, converting text prompts into dynamic video content.
## Parameters
### Basic Parameters
| Parameter | Type | Default | Description |
| ------------------ | ------- | ------- | ---------------------------------------------------- |
| prompt | string | "" | Text description of the video content to generate |
| aspect\_ratio | select | "16:9" | Output video aspect ratio, "16:9" or "9:16" |
| negative\_prompt | string | "" | Text describing what to avoid in the video |
| duration\_seconds | integer | 5 | Video duration, 5-8 seconds |
| enhance\_prompt | boolean | True | Whether to use AI to enhance the prompt |
| person\_generation | select | "ALLOW" | Allow or block person generation, "ALLOW" or "BLOCK" |
| seed | integer | 0 | Random seed, 0 means randomly generated |
### Optional Parameters
| Parameter | Type | Default | Description |
| --------- | ----- | ------- | ------------------------------------------------ |
| image | image | None | Optional reference image to guide video creation |
### Output
| Output | Type | Description |
| ------ | ----- | --------------- |
| VIDEO | video | Generated video |
## Source Code
\[Node Source Code (Updated 2025-05-03)]
```python theme={null}
class VeoVideoGenerationNode(ComfyNodeABC):
"""
Generates videos from text prompts using Google's Veo API.
This node can create videos from text descriptions and optional image inputs,
with control over parameters like aspect ratio, duration, and more.
"""
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"prompt": (
IO.STRING,
{
"multiline": True,
"default": "",
"tooltip": "Text description of the video",
},
),
"aspect_ratio": (
IO.COMBO,
{
"options": ["16:9", "9:16"],
"default": "16:9",
"tooltip": "Aspect ratio of the output video",
},
),
},
"optional": {
"negative_prompt": (
IO.STRING,
{
"multiline": True,
"default": "",
"tooltip": "Negative text prompt to guide what to avoid in the video",
},
),
"duration_seconds": (
IO.INT,
{
"default": 5,
"min": 5,
"max": 8,
"step": 1,
"display": "number",
"tooltip": "Duration of the output video in seconds",
},
),
"enhance_prompt": (
IO.BOOLEAN,
{
"default": True,
"tooltip": "Whether to enhance the prompt with AI assistance",
}
),
"person_generation": (
IO.COMBO,
{
"options": ["ALLOW", "BLOCK"],
"default": "ALLOW",
"tooltip": "Whether to allow generating people in the video",
},
),
"seed": (
IO.INT,
{
"default": 0,
"min": 0,
"max": 0xFFFFFFFF,
"step": 1,
"display": "number",
"control_after_generate": True,
"tooltip": "Seed for video generation (0 for random)",
},
),
"image": (IO.IMAGE, {
"default": None,
"tooltip": "Optional reference image to guide video generation",
}),
},
"hidden": {
"auth_token": "AUTH_TOKEN_COMFY_ORG",
},
}
RETURN_TYPES = (IO.VIDEO,)
FUNCTION = "generate_video"
CATEGORY = "api node/video/Veo"
DESCRIPTION = "Generates videos from text prompts using Google's Veo API"
API_NODE = True
def generate_video(
self,
prompt,
aspect_ratio="16:9",
negative_prompt="",
duration_seconds=5,
enhance_prompt=True,
person_generation="ALLOW",
seed=0,
image=None,
auth_token=None,
):
# Prepare the instances for the request
instances = []
instance = {
"prompt": prompt
}
# Add image if provided
if image is not None:
image_base64 = convert_image_to_base64(image)
if image_base64:
instance["image"] = {
"bytesBase64Encoded": image_base64,
"mimeType": "image/png"
}
instances.append(instance)
# Create parameters dictionary
parameters = {
"aspectRatio": aspect_ratio,
"personGeneration": person_generation,
"durationSeconds": duration_seconds,
"enhancePrompt": enhance_prompt,
}
# Add optional parameters if provided
if negative_prompt:
parameters["negativePrompt"] = negative_prompt
if seed > 0:
parameters["seed"] = seed
# Initial request to start video generation
initial_operation = SynchronousOperation(
endpoint=ApiEndpoint(
path="/proxy/veo/generate",
method=HttpMethod.POST,
request_model=Veo2GenVidRequest,
response_model=Veo2GenVidResponse
),
request=Veo2GenVidRequest(
instances=instances,
parameters=parameters
),
auth_token=auth_token
)
initial_response = initial_operation.execute()
operation_name = initial_response.name
logging.info(f"Veo generation started with operation name: {operation_name}")
# Define status extractor function
def status_extractor(response):
# Only return "completed" if the operation is done, regardless of success or failure
# We'll check for errors after polling completes
return "completed" if response.done else "pending"
# Define progress extractor function
def progress_extractor(response):
# Could be enhanced if the API provides progress information
return None
# Define the polling operation
poll_operation = PollingOperation(
poll_endpoint=ApiEndpoint(
path="/proxy/veo/poll",
method=HttpMethod.POST,
request_model=Veo2GenVidPollRequest,
response_model=Veo2GenVidPollResponse
),
completed_statuses=["completed"],
failed_statuses=[], # No failed statuses, we'll handle errors after polling
status_extractor=status_extractor,
progress_extractor=progress_extractor,
request=Veo2GenVidPollRequest(
operationName=operation_name
),
auth_token=auth_token,
poll_interval=5.0
)
# Execute the polling operation
poll_response = poll_operation.execute()
# Now check for errors in the final response
# Check for error in poll response
if hasattr(poll_response, 'error') and poll_response.error:
error_message = f"Veo API error: {poll_response.error.message} (code: {poll_response.error.code})"
logging.error(error_message)
raise Exception(error_message)
# Check for RAI filtered content
if (hasattr(poll_response.response, 'raiMediaFilteredCount') and
poll_response.response.raiMediaFilteredCount > 0):
# Extract reason message if available
if (hasattr(poll_response.response, 'raiMediaFilteredReasons') and
poll_response.response.raiMediaFilteredReasons):
reason = poll_response.response.raiMediaFilteredReasons[0]
error_message = f"Content filtered by Google's Responsible AI practices: {reason} ({poll_response.response.raiMediaFilteredCount} videos filtered.)"
else:
error_message = f"Content filtered by Google's Responsible AI practices ({poll_response.response.raiMediaFilteredCount} videos filtered.)"
logging.error(error_message)
raise Exception(error_message)
# Extract video data
video_data = None
if poll_response.response and hasattr(poll_response.response, 'videos') and poll_response.response.videos and len(poll_response.response.videos) > 0:
video = poll_response.response.videos[0]
# Check if video is provided as base64 or URL
if hasattr(video, 'bytesBase64Encoded') and video.bytesBase64Encoded:
# Decode base64 string to bytes
video_data = base64.b64decode(video.bytesBase64Encoded)
elif hasattr(video, 'gcsUri') and video.gcsUri:
# Download from URL
video_url = video.gcsUri
video_response = requests.get(video_url)
video_data = video_response.content
else:
raise Exception("Video returned but no data or URL was provided")
else:
raise Exception("Video generation completed but no video was returned")
if not video_data:
raise Exception("No video data was returned")
logging.info("Video generation completed successfully")
# Convert video data to BytesIO object
video_io = io.BytesIO(video_data)
# Return VideoFromFile object
return (VideoFromFile(video_io),)
```
---
# Source: https://docs.comfy.org/tutorials/partner-nodes/openai/gpt-image-1.md
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.
# OpenAI GPT-Image-1 Node
> Learn how to use the OpenAI GPT-Image-1 Partner node to generate images in ComfyUI
OpenAI GPT-Image-1 is part of the ComfyUI Partner nodes series that allows users to generate images through OpenAI's **GPT-Image-1** model. This is the same model used for image generation in ChatGPT 4o.
This node supports:
* Text-to-image generation
* Image editing functionality (inpainting through masks)
## Node Overview
The **OpenAI GPT-Image-1** node synchronously generates images through OpenAI's image generation API. It receives text prompts and returns images matching the description. GPT-Image-1 is OpenAI's most advanced image generation model currently available, capable of creating highly detailed and realistic images.
You only need to load the `OpenAI GPT-Image-1` node, input the description of the image you want to generate in the `prompt` node, connect a `Save Image` node, and then run the workflow.
### Image-to-Image Example
The image below contains a simple image-to-image workflow. Please download the image and drag it into ComfyUI to load the corresponding workflow.

We will use the image below as input:

In this workflow, we use the `OpenAI GPT-Image-1` node to generate images and the `Load Image` node to load the input image, then connect it to the `image` input of the `OpenAI GPT-Image-1` node.
### Multiple Image Input Example
Please download the image below and drag it into ComfyUI to load the corresponding workflow.

Use the hat image below as an additional input image.

The corresponding workflow is shown in the image below:
The `Batch Images` node is used to load multiple images into the `OpenAI GPT-Image-1` node.
### Inpainting Workflow
GPT-Image-1 also supports image editing functionality, allowing you to specify areas to replace using a mask. Below is a simple inpainting workflow example:
Download the image below and drag it into ComfyUI to load the corresponding workflow. We will continue to use the input image from the image-to-image workflow section.

The corresponding workflow is shown in the image
Compared to the image-to-image workflow, we use the MaskEditor in the `Load Image` node through the right-click menu to draw a mask, then connect it to the `mask` input of the `OpenAI GPT-Image-1` node to complete the workflow.
**Notes**
* The mask and image must be the same size
* When inputting large images, the node will automatically resize the image to an appropriate size
## FAQs