├── data └── .gitkeep ├── .gitignore ├── images ├── flux-dev.png ├── flux-dev-fp8.png ├── flux-schnell.png └── flux-schnell-fp8.png ├── scripts ├── models_fp8.txt ├── models.txt ├── install_comfyui.sh └── entrypoint.sh ├── docker-compose.yml ├── Dockerfile ├── README.md └── workflows ├── workflow-flux-schnell-fp8.json ├── workflow-flux-dev-fp8.json ├── workflow-flux-schnell.json └── workflow-flux-dev.json /data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | data/* 2 | !data/.gitkeep 3 | .env 4 | build* -------------------------------------------------------------------------------- /images/flux-dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frefrik/comfyui-flux/HEAD/images/flux-dev.png -------------------------------------------------------------------------------- /images/flux-dev-fp8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frefrik/comfyui-flux/HEAD/images/flux-dev-fp8.png -------------------------------------------------------------------------------- /images/flux-schnell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frefrik/comfyui-flux/HEAD/images/flux-schnell.png -------------------------------------------------------------------------------- /images/flux-schnell-fp8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frefrik/comfyui-flux/HEAD/images/flux-schnell-fp8.png -------------------------------------------------------------------------------- /scripts/models_fp8.txt: -------------------------------------------------------------------------------- 1 | # FLUX.1[schnell] FP8 2 | https://huggingface.co/Comfy-Org/flux1-schnell/resolve/main/flux1-schnell-fp8.safetensors 3 | dir=ComfyUI/models/checkpoints 4 | out=flux1-schnell-fp8.safetensors 5 | 6 | # FLUX.1[dev] FP8 7 | https://huggingface.co/Comfy-Org/flux1-dev/resolve/main/flux1-dev-fp8.safetensors 8 | dir=ComfyUI/models/checkpoints 9 | out=flux1-dev-fp8.safetensors 10 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | comfyui: 3 | container_name: comfyui 4 | image: frefrik/comfyui-flux:latest 5 | restart: unless-stopped 6 | ports: 7 | - "8188:8188" 8 | volumes: 9 | - "./data:/app" 10 | environment: 11 | - CLI_ARGS= 12 | - HF_TOKEN=${HF_TOKEN} 13 | - LOW_VRAM=${LOW_VRAM:-false} 14 | deploy: 15 | resources: 16 | reservations: 17 | devices: 18 | - driver: nvidia 19 | device_ids: ['0'] 20 | capabilities: [gpu] -------------------------------------------------------------------------------- /scripts/models.txt: -------------------------------------------------------------------------------- 1 | # FLUX.1[schnell] UNet 2 | # Requires HF_TOKEN 3 | https://huggingface.co/black-forest-labs/FLUX.1-schnell/resolve/main/flux1-schnell.safetensors 4 | dir=ComfyUI/models/unet 5 | out=flux1-schnell.safetensors 6 | 7 | # FLUX.1[dev] UNet (Requires HF_TOKEN) 8 | # Requires HF_TOKEN 9 | https://huggingface.co/black-forest-labs/FLUX.1-dev/resolve/main/flux1-dev.safetensors 10 | dir=ComfyUI/models/unet 11 | out=flux1-dev.safetensors 12 | 13 | # Flux Text Encoders 14 | https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors 15 | dir=ComfyUI/models/clip 16 | out=clip_l.safetensors 17 | https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp16.safetensors 18 | dir=ComfyUI/models/clip 19 | out=t5xxl_fp16.safetensors 20 | https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn.safetensors 21 | dir=ComfyUI/models/clip 22 | out=t5xxl_fp8_e4m3fn.safetensors 23 | 24 | # VAE 25 | # Requires HF_TOKEN 26 | https://huggingface.co/black-forest-labs/FLUX.1-schnell/resolve/main/ae.safetensors 27 | dir=ComfyUI/models/vae 28 | out=ae.safetensors 29 | 30 | # Loras 31 | https://huggingface.co/comfyanonymous/flux_RealismLora_converted_comfyui/resolve/main/flux_realism_lora.safetensors 32 | dir=ComfyUI/models/loras 33 | out=flux_realism_lora.safetensors 34 | -------------------------------------------------------------------------------- /scripts/install_comfyui.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "########################################" 4 | echo "[INFO] Downloading ComfyUI & Manager..." 5 | echo "########################################" 6 | 7 | set -euxo pipefail 8 | 9 | # ComfyUI 10 | cd /app 11 | git clone --recurse-submodules \ 12 | https://github.com/comfyanonymous/ComfyUI.git \ 13 | || (cd /app/ComfyUI && git pull) 14 | 15 | # ComfyUI Manager 16 | cd /app/ComfyUI/custom_nodes 17 | git clone --recurse-submodules \ 18 | https://github.com/ltdrdata/ComfyUI-Manager.git \ 19 | || (cd /app/ComfyUI/custom_nodes/ComfyUI-Manager && git pull) 20 | 21 | # Install dependencies for ComfyUI and Manager 22 | for req_file in "/app/ComfyUI/requirements.txt" "/app/ComfyUI/custom_nodes/ComfyUI-Manager/requirements.txt"; do 23 | if [ -f "$req_file" ]; then 24 | echo "[INFO] Installing requirements from $req_file" 25 | uv pip install -r "$req_file" || echo "Warning: Some dependencies from $req_file may have failed to install" 26 | fi 27 | done 28 | 29 | # Copy workflows 30 | WORKFLOWS_DIR="/app/ComfyUI/user/default/workflows" 31 | mkdir -p "$WORKFLOWS_DIR" 32 | 33 | if [ -d "/workflows" ]; then 34 | cp -R /workflows/* "$WORKFLOWS_DIR/" 35 | echo "[INFO] Workflows copied successfully." 36 | else 37 | echo "[WARNING] /workflows directory not found. Skipping workflow copy." 38 | fi 39 | 40 | # Finish 41 | touch /app/.download-complete -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.12-slim-trixie 2 | 3 | # Build arguments 4 | ARG CUDA_VERSION=cu128 5 | 6 | # Environment variables 7 | ENV DEBIAN_FRONTEND=noninteractive \ 8 | UV_COMPILE_BYTECODE=1 \ 9 | UV_LINK_MODE=copy \ 10 | VIRTUAL_ENV=/opt/venv \ 11 | PATH="/opt/venv/bin:$PATH" \ 12 | CLI_ARGS="" 13 | 14 | # Copy UV binaries 15 | COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ 16 | 17 | # Install system dependencies 18 | RUN apt-get update && \ 19 | apt-get install -y --no-install-recommends \ 20 | git \ 21 | build-essential \ 22 | gcc \ 23 | g++ \ 24 | aria2 \ 25 | libgl1 \ 26 | libglib2.0-0 \ 27 | fonts-dejavu-core \ 28 | sudo \ 29 | ca-certificates && \ 30 | apt-get clean && \ 31 | rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 32 | 33 | 34 | # Create application directories and user 35 | RUN useradd -m -d /app -s /bin/bash runner && \ 36 | mkdir -p /app /scripts /workflows /opt/venv && \ 37 | chown -R runner:runner /app /scripts /workflows /opt/venv && \ 38 | echo "runner ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/runner && \ 39 | chmod 0440 /etc/sudoers.d/runner 40 | 41 | # Set working directory 42 | WORKDIR /app 43 | 44 | # Switch to non-root user 45 | USER runner 46 | 47 | # Create virtual environment 48 | RUN uv venv /opt/venv 49 | 50 | # Install torch, torchvision, torchaudio and xformers 51 | RUN uv pip install --no-cache \ 52 | torch \ 53 | torchvision \ 54 | torchaudio \ 55 | xformers \ 56 | --index-url https://download.pytorch.org/whl/${CUDA_VERSION} 57 | 58 | # Install onnxruntime-gpu 59 | RUN uv pip install --no-cache \ 60 | onnxruntime-gpu \ 61 | --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/ 62 | 63 | # Copy application files 64 | COPY --chown=runner:runner scripts/. /scripts/ 65 | COPY --chown=runner:runner workflows/. /workflows/ 66 | 67 | VOLUME ["/app"] 68 | EXPOSE 8188 69 | CMD ["bash","/scripts/entrypoint.sh"] -------------------------------------------------------------------------------- /scripts/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Ensure correct permissions for /app directory 6 | if [ ! -w "/app" ]; then 7 | echo "Warning: Cannot write to /app. Attempting to fix permissions..." 8 | sudo chown -R $(id -u):$(id -g) /app 9 | fi 10 | 11 | # Install or update ComfyUI 12 | cd /app 13 | if [ ! -d "/app/ComfyUI" ]; then 14 | echo "ComfyUI not found. Installing..." 15 | chmod +x /scripts/install_comfyui.sh 16 | bash /scripts/install_comfyui.sh 17 | else 18 | echo "Updating ComfyUI..." 19 | cd /app/ComfyUI 20 | git fetch origin master 21 | git reset --hard origin/master 22 | uv pip install -r requirements.txt 23 | echo "Updating ComfyUI-Manager..." 24 | cd /app/ComfyUI/custom_nodes/ComfyUI-Manager 25 | git fetch origin main 26 | git reset --hard origin/main 27 | uv pip install -r requirements.txt 28 | cd /app 29 | fi 30 | 31 | # Determine model list file based on LOW_VRAM 32 | if [ "$LOW_VRAM" == "true" ]; then 33 | echo "[INFO] LOW_VRAM is set to true. Downloading FP8 models..." 34 | MODEL_LIST_FILE="/scripts/models_fp8.txt" 35 | else 36 | echo "[INFO] LOW_VRAM is not set or false. Downloading non-FP8 models..." 37 | MODEL_LIST_FILE="/scripts/models.txt" 38 | fi 39 | 40 | # Create temporary file for model list 41 | TEMP_MODEL_LIST=$(mktemp) 42 | 43 | # Filter models based on MODELS_DOWNLOAD if set 44 | if [ -n "${MODELS_DOWNLOAD}" ]; then 45 | echo "[INFO] Filtering models based on MODELS_DOWNLOAD=${MODELS_DOWNLOAD}" 46 | 47 | # Convert to lowercase for case-insensitive matching 48 | MODELS_DOWNLOAD_LC=$(echo "$MODELS_DOWNLOAD" | tr '[:upper:]' '[:lower:]') 49 | 50 | if [ "$LOW_VRAM" == "true" ]; then 51 | # For FP8 models, only copy the specified model sections 52 | if [[ "$MODELS_DOWNLOAD_LC" == *"schnell"* ]]; then 53 | sed -n '/# FLUX.1\[schnell\] FP8/,/^$/p' "$MODEL_LIST_FILE" >> "$TEMP_MODEL_LIST" 54 | fi 55 | if [[ "$MODELS_DOWNLOAD_LC" == *"dev"* ]]; then 56 | sed -n '/# FLUX.1\[dev\] FP8/,/^$/p' "$MODEL_LIST_FILE" >> "$TEMP_MODEL_LIST" 57 | fi 58 | else 59 | # For full models, copy dependencies first 60 | sed -n '/# Flux Text Encoders/,/# VAE/p' "$MODEL_LIST_FILE" >> "$TEMP_MODEL_LIST" 61 | sed -n '/# Loras/,/^$/p' "$MODEL_LIST_FILE" >> "$TEMP_MODEL_LIST" 62 | 63 | # Then add requested models and their VAE 64 | if [[ "$MODELS_DOWNLOAD_LC" == *"schnell"* ]]; then 65 | sed -n '/# FLUX.1\[schnell\] UNet/,/^$/p' "$MODEL_LIST_FILE" >> "$TEMP_MODEL_LIST" 66 | sed -n '/# VAE/,/# Loras/p' "$MODEL_LIST_FILE" >> "$TEMP_MODEL_LIST" 67 | fi 68 | if [[ "$MODELS_DOWNLOAD_LC" == *"dev"* ]]; then 69 | sed -n '/# FLUX.1\[dev\] UNet/,/^$/p' "$MODEL_LIST_FILE" >> "$TEMP_MODEL_LIST" 70 | sed -n '/# VAE/,/# Loras/p' "$MODEL_LIST_FILE" >> "$TEMP_MODEL_LIST" 71 | fi 72 | fi 73 | 74 | # If the temp file is empty (invalid MODELS_DOWNLOAD value), use the full list 75 | if [ ! -s "$TEMP_MODEL_LIST" ]; then 76 | echo "[WARN] No models matched MODELS_DOWNLOAD value. Using complete model list." 77 | cp "$MODEL_LIST_FILE" "$TEMP_MODEL_LIST" 78 | fi 79 | else 80 | # If MODELS_DOWNLOAD not set, use the complete list 81 | cp "$MODEL_LIST_FILE" "$TEMP_MODEL_LIST" 82 | fi 83 | 84 | # Download models 85 | echo "########################################" 86 | echo "[INFO] Downloading models..." 87 | echo "########################################" 88 | 89 | if [ -z "${HF_TOKEN}" ]; then 90 | echo "[WARN] HF_TOKEN not provided. Skipping models that require authentication..." 91 | sed '/# Requires HF_TOKEN/,/^$/d' "$TEMP_MODEL_LIST" > /scripts/models_filtered.txt 92 | DOWNLOAD_LIST_FILE="/scripts/models_filtered.txt" 93 | else 94 | DOWNLOAD_LIST_FILE="$TEMP_MODEL_LIST" 95 | fi 96 | 97 | aria2c --input-file="$DOWNLOAD_LIST_FILE" \ 98 | --allow-overwrite=false --auto-file-renaming=false --continue=true \ 99 | --max-connection-per-server=5 --conditional-get=true \ 100 | ${HF_TOKEN:+--header="Authorization: Bearer ${HF_TOKEN}"} 101 | 102 | # Cleanup 103 | rm -f "$TEMP_MODEL_LIST" 104 | 105 | echo "########################################" 106 | echo "[INFO] Starting ComfyUI..." 107 | echo "########################################" 108 | 109 | export PATH="${PATH}:/app/.local/bin" 110 | export PYTHONPYCACHEPREFIX="/app/.cache/pycache" 111 | 112 | cd /app 113 | 114 | python3 ./ComfyUI/main.py --listen --port 8188 ${CLI_ARGS} 115 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ComfyUI Flux 2 | 3 | ComfyUI Flux is a Docker-based setup for running [ComfyUI](https://github.com/comfyanonymous/ComfyUI) with [FLUX.1](https://www.basedlabs.ai/tools/flux1) models and additional features. 4 | 5 | ## Features 6 | 7 | - Dockerized ComfyUI environment 8 | - Automatic installation of ComfyUI and ComfyUI-Manager 9 | - **Low VRAM Mode**: Download and use FP8 models for reduced VRAM usage 10 | - Pre-configured with FLUX models and VAEs 11 | - Easy model management and updates 12 | - GPU support with CUDA 12.6, 12.8 (default), or 12.9 13 | 14 | ## Prerequisites 15 | 16 | - Docker and Docker Compose 17 | - NVIDIA GPU with CUDA support (for GPU acceleration) 18 | - (Optional) Huggingface account and token (for downloading official FLUX.1[dev] and FLUX.1[schnell] models) 19 | 20 | ## Quick Start 21 | 22 | 1. (Optional) Create a `.env` file in the project root and add your Huggingface token: 23 | 24 | ```bash 25 | # For downloading FLUX.1[dev] and FLUX.1[schnell] model files. 26 | # Get your token from https://huggingface.co/settings/tokens 27 | HF_TOKEN=your_huggingface_token 28 | ``` 29 | 30 | 2. Download the `docker-compose.yml` file: 31 | 32 | ```bash 33 | wget https://raw.githubusercontent.com/frefrik/comfyui-flux/main/docker-compose.yml 34 | ``` 35 | 36 | Alternatively, you can create a `docker-compose.yml` file and copy/paste the following contents: 37 | 38 | ```yaml 39 | services: 40 | comfyui: 41 | container_name: comfyui 42 | image: frefrik/comfyui-flux:latest 43 | restart: unless-stopped 44 | ports: 45 | - "8188:8188" 46 | volumes: 47 | - "./data:/app" 48 | environment: 49 | - CLI_ARGS= 50 | - HF_TOKEN=${HF_TOKEN} 51 | - LOW_VRAM=${LOW_VRAM:-false} 52 | deploy: 53 | resources: 54 | reservations: 55 | devices: 56 | - driver: nvidia 57 | device_ids: ['0'] 58 | capabilities: [gpu] 59 | ``` 60 | 61 | **Note:** The default Docker image uses CUDA 12.8 (`cu128`). If you require a specific CUDA version, you can specify the tag in the image name. For example: 62 | 63 | ```yaml 64 | image: frefrik/comfyui-flux:cu129 65 | ``` 66 | 67 | 3. Run the container using Docker Compose: 68 | 69 | ```bash 70 | docker-compose up -d 71 | ``` 72 | 73 | **Note:** The first time you run the container, it will download all the included models before starting up. This process may take some time depending on your internet connection. 74 | 75 | 4. Access ComfyUI in your browser at `http://localhost:8188` 76 | 77 | ## Environment Variables 78 | 79 | - `HF_TOKEN` - Your Hugging Face access token. **Required** to download the official `flux1-dev`, `flux1-schnell` models. 80 | - `LOW_VRAM` - Set to `true` to download and configure ComfyUI for FP8 models, reducing VRAM usage. See [Low VRAM Mode](#low-vram-mode) section. 81 | - `MODELS_DOWNLOAD` - Comma-separated list specifying which FLUX base models to download (`schnell`, `dev`). If not set, both models will be downloaded. 82 | - `CLI_ARGS` - Additional command-line arguments to pass directly to the ComfyUI. 83 | 84 | ## Low VRAM Mode 85 | 86 | By setting the `LOW_VRAM` environment variable to `true`, the container will download and use the FP8 models, which are optimized for lower VRAM usage. The FP8 versions have CLIP and VAE merged, so only the checkpoint files are needed. 87 | 88 | Enable Low VRAM Mode: 89 | 90 | ```bash 91 | LOW_VRAM=true 92 | ``` 93 | 94 | ## Model Files 95 | 96 | Overview of the model files that will be downloaded when using this container. 97 | Both official FLUX.1[dev] and FLUX.1[schnell] model files now require a `HF_TOKEN` for download. 98 | 99 | ### When `LOW_VRAM=false` (default) 100 | 101 | The following model files will be downloaded by default, unless specified otherwise in `MODELS_DOWNLOAD`: 102 | 103 | | Type | Model File Name | Size | Notes | 104 | |-------------|-------------------------------|---------|-------------------------------------------------| 105 | | UNet | flux1-schnell.safetensors | 23 GiB | requires `HF_TOKEN` for download | 106 | | UNet | flux1-dev.safetensors | 23 GiB | requires `HF_TOKEN` for download | 107 | | CLIP | clip_l.safetensors | 235 MiB | | 108 | | CLIP | t5xxl_fp16.safetensors | 9.2 GiB | | 109 | | CLIP | t5xxl_fp8_e4m3fn.safetensors | 4.6 GiB | | 110 | | LoRA | flux_realism_lora.safetensors | 22 MiB | | 111 | | VAE | ae.safetensors | 320 MiB | requires `HF_TOKEN` for download | 112 | 113 | ### When `LOW_VRAM=true` 114 | 115 | | Type | Model File Name | Size | Notes | 116 | |-------------|-------------------------------|---------|-------------------------------------------------| 117 | | Checkpoint | flux1-dev-fp8.safetensors | 17 GiB | | 118 | | Checkpoint | flux1-schnell-fp8.safetensors | 17 GiB | | 119 | 120 | ## Workflows 121 | 122 | Download the images below and drag them into ComfyUI to load the corresponding workflows. 123 | 124 | ### Official versions 125 | 126 | | FLUX.1[schnell] | FLUX.1[dev] | 127 | |-----------------|-------------| 128 | |
![Flux Schnell](./images/flux-schnell.png)
[Download](https://raw.githubusercontent.com/frefrik/comfyui-flux/refs/heads/main/images/flux-schnell.png)
|
![Flux Dev](./images/flux-dev.png)
[Download](https://raw.githubusercontent.com/frefrik/comfyui-flux/refs/heads/main/images/flux-dev.png)
| 129 | 130 | ### FP8 versions (LOW_VRAM) 131 | 132 | | FLUX.1[schnell] FP8 | FLUX.1[dev] FP8 | 133 | |---------------------|-----------------| 134 | |
![Flux Schnell FP8](./images/flux-schnell-fp8.png)
[Download](https://raw.githubusercontent.com/frefrik/comfyui-flux/main/images/flux-schnell-fp8.png)
|
![Flux Dev FP8](./images/flux-dev-fp8.png)
[Download](https://raw.githubusercontent.com/frefrik/comfyui-flux/main/images/flux-dev-fp8.png)
| 135 | 136 | ## Updating 137 | 138 | The ComfyUI and ComfyUI-Manager are automatically updated when the container starts. To update the base image and other dependencies, pull the latest version of the Docker image using: 139 | 140 | ```bash 141 | docker-compose pull 142 | ``` 143 | 144 | ## Additional Notes 145 | 146 | - **Switching Between Modes**: If you change the `LOW_VRAM` setting after the initial run, the container will automatically download the required models for the new setting upon restart. 147 | - **Model Selection**: Use the optional `MODELS_DOWNLOAD` environment variable to specify which FLUX models to download: 148 | - `MODELS_DOWNLOAD="schnell"`: Download only FLUX.1[schnell] model 149 | - `MODELS_DOWNLOAD="dev"`: Download only FLUX.1[dev] model 150 | - `MODELS_DOWNLOAD="schnell,dev"` or not set: Download both models (default) 151 | - When `LOW_VRAM=false`, necessary dependencies (VAE, text encoders, LoRA) are always included 152 | - **Model Downloading**: The scripts are designed to skip downloading models that already exist, so you won't waste bandwidth re-downloading models you already have. 153 | - **Huggingface Token**: The `HF_TOKEN` is necessary for downloading the `flux1-dev.safetensors`, `flux1-schnell.safetensors`, and `ae.safetensors` models when `LOW_VRAM=false`. 154 | -------------------------------------------------------------------------------- /workflows/workflow-flux-schnell-fp8.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 36, 3 | "last_link_id": 58, 4 | "nodes": [ 5 | { 6 | "id": 33, 7 | "type": "CLIPTextEncode", 8 | "pos": { 9 | "0": 390, 10 | "1": 400 11 | }, 12 | "size": { 13 | "0": 422.84503173828125, 14 | "1": 164.31304931640625 15 | }, 16 | "flags": { 17 | "collapsed": true 18 | }, 19 | "order": 4, 20 | "mode": 0, 21 | "inputs": [ 22 | { 23 | "name": "clip", 24 | "type": "CLIP", 25 | "link": 54, 26 | "slot_index": 0 27 | } 28 | ], 29 | "outputs": [ 30 | { 31 | "name": "CONDITIONING", 32 | "type": "CONDITIONING", 33 | "links": [ 34 | 55 35 | ], 36 | "slot_index": 0 37 | } 38 | ], 39 | "title": "CLIP Text Encode (Negative Prompt)", 40 | "properties": { 41 | "Node name for S&R": "CLIPTextEncode" 42 | }, 43 | "widgets_values": [ 44 | "" 45 | ], 46 | "color": "#322", 47 | "bgcolor": "#533" 48 | }, 49 | { 50 | "id": 27, 51 | "type": "EmptySD3LatentImage", 52 | "pos": { 53 | "0": 471, 54 | "1": 455 55 | }, 56 | "size": { 57 | "0": 315, 58 | "1": 106 59 | }, 60 | "flags": {}, 61 | "order": 0, 62 | "mode": 0, 63 | "inputs": [], 64 | "outputs": [ 65 | { 66 | "name": "LATENT", 67 | "type": "LATENT", 68 | "links": [ 69 | 51 70 | ], 71 | "slot_index": 0, 72 | "shape": 3 73 | } 74 | ], 75 | "properties": { 76 | "Node name for S&R": "EmptySD3LatentImage" 77 | }, 78 | "widgets_values": [ 79 | 1024, 80 | 1024, 81 | 1 82 | ], 83 | "color": "#323", 84 | "bgcolor": "#535" 85 | }, 86 | { 87 | "id": 8, 88 | "type": "VAEDecode", 89 | "pos": { 90 | "0": 1151, 91 | "1": 195 92 | }, 93 | "size": { 94 | "0": 210, 95 | "1": 46 96 | }, 97 | "flags": {}, 98 | "order": 6, 99 | "mode": 0, 100 | "inputs": [ 101 | { 102 | "name": "samples", 103 | "type": "LATENT", 104 | "link": 52 105 | }, 106 | { 107 | "name": "vae", 108 | "type": "VAE", 109 | "link": 46 110 | } 111 | ], 112 | "outputs": [ 113 | { 114 | "name": "IMAGE", 115 | "type": "IMAGE", 116 | "links": [ 117 | 9 118 | ], 119 | "slot_index": 0 120 | } 121 | ], 122 | "properties": { 123 | "Node name for S&R": "VAEDecode" 124 | }, 125 | "widgets_values": [] 126 | }, 127 | { 128 | "id": 9, 129 | "type": "SaveImage", 130 | "pos": { 131 | "0": 1375, 132 | "1": 194 133 | }, 134 | "size": { 135 | "0": 985.3012084960938, 136 | "1": 1060.3828125 137 | }, 138 | "flags": {}, 139 | "order": 7, 140 | "mode": 0, 141 | "inputs": [ 142 | { 143 | "name": "images", 144 | "type": "IMAGE", 145 | "link": 9 146 | } 147 | ], 148 | "outputs": [], 149 | "properties": {}, 150 | "widgets_values": [ 151 | "ComfyUI" 152 | ] 153 | }, 154 | { 155 | "id": 30, 156 | "type": "CheckpointLoaderSimple", 157 | "pos": { 158 | "0": 48, 159 | "1": 192 160 | }, 161 | "size": { 162 | "0": 315, 163 | "1": 98 164 | }, 165 | "flags": {}, 166 | "order": 1, 167 | "mode": 0, 168 | "inputs": [], 169 | "outputs": [ 170 | { 171 | "name": "MODEL", 172 | "type": "MODEL", 173 | "links": [ 174 | 47 175 | ], 176 | "slot_index": 0, 177 | "shape": 3 178 | }, 179 | { 180 | "name": "CLIP", 181 | "type": "CLIP", 182 | "links": [ 183 | 45, 184 | 54 185 | ], 186 | "slot_index": 1, 187 | "shape": 3 188 | }, 189 | { 190 | "name": "VAE", 191 | "type": "VAE", 192 | "links": [ 193 | 46 194 | ], 195 | "slot_index": 2, 196 | "shape": 3 197 | } 198 | ], 199 | "properties": { 200 | "Node name for S&R": "CheckpointLoaderSimple" 201 | }, 202 | "widgets_values": [ 203 | "flux1-schnell-fp8.safetensors" 204 | ] 205 | }, 206 | { 207 | "id": 34, 208 | "type": "Note", 209 | "pos": { 210 | "0": 831, 211 | "1": 501 212 | }, 213 | "size": { 214 | "0": 282.8617858886719, 215 | "1": 164.08004760742188 216 | }, 217 | "flags": {}, 218 | "order": 2, 219 | "mode": 0, 220 | "inputs": [], 221 | "outputs": [], 222 | "properties": { 223 | "text": "" 224 | }, 225 | "widgets_values": [ 226 | "Note that Flux dev and schnell do not have any negative prompt so CFG should be set to 1.0. Setting CFG to 1.0 means the negative prompt is ignored.\n\nThe schnell model is a distilled model that can generate a good image with only 4 steps." 227 | ], 228 | "color": "#432", 229 | "bgcolor": "#653" 230 | }, 231 | { 232 | "id": 31, 233 | "type": "KSampler", 234 | "pos": { 235 | "0": 816, 236 | "1": 192 237 | }, 238 | "size": { 239 | "0": 315, 240 | "1": 262 241 | }, 242 | "flags": {}, 243 | "order": 5, 244 | "mode": 0, 245 | "inputs": [ 246 | { 247 | "name": "model", 248 | "type": "MODEL", 249 | "link": 47 250 | }, 251 | { 252 | "name": "positive", 253 | "type": "CONDITIONING", 254 | "link": 58 255 | }, 256 | { 257 | "name": "negative", 258 | "type": "CONDITIONING", 259 | "link": 55 260 | }, 261 | { 262 | "name": "latent_image", 263 | "type": "LATENT", 264 | "link": 51 265 | } 266 | ], 267 | "outputs": [ 268 | { 269 | "name": "LATENT", 270 | "type": "LATENT", 271 | "links": [ 272 | 52 273 | ], 274 | "slot_index": 0, 275 | "shape": 3 276 | } 277 | ], 278 | "properties": { 279 | "Node name for S&R": "KSampler" 280 | }, 281 | "widgets_values": [ 282 | 887041056990335, 283 | "randomize", 284 | 4, 285 | 1, 286 | "euler", 287 | "simple", 288 | 1 289 | ] 290 | }, 291 | { 292 | "id": 6, 293 | "type": "CLIPTextEncode", 294 | "pos": { 295 | "0": 384, 296 | "1": 192 297 | }, 298 | "size": { 299 | "0": 422.84503173828125, 300 | "1": 164.31304931640625 301 | }, 302 | "flags": {}, 303 | "order": 3, 304 | "mode": 0, 305 | "inputs": [ 306 | { 307 | "name": "clip", 308 | "type": "CLIP", 309 | "link": 45 310 | } 311 | ], 312 | "outputs": [ 313 | { 314 | "name": "CONDITIONING", 315 | "type": "CONDITIONING", 316 | "links": [ 317 | 58 318 | ], 319 | "slot_index": 0 320 | } 321 | ], 322 | "title": "CLIP Text Encode (Positive Prompt)", 323 | "properties": { 324 | "Node name for S&R": "CLIPTextEncode" 325 | }, 326 | "widgets_values": [ 327 | "photo of a cat holding up a neonsign that says \"FLUX SCHNELL FP 8\"" 328 | ], 329 | "color": "#232", 330 | "bgcolor": "#353" 331 | } 332 | ], 333 | "links": [ 334 | [ 335 | 9, 336 | 8, 337 | 0, 338 | 9, 339 | 0, 340 | "IMAGE" 341 | ], 342 | [ 343 | 45, 344 | 30, 345 | 1, 346 | 6, 347 | 0, 348 | "CLIP" 349 | ], 350 | [ 351 | 46, 352 | 30, 353 | 2, 354 | 8, 355 | 1, 356 | "VAE" 357 | ], 358 | [ 359 | 47, 360 | 30, 361 | 0, 362 | 31, 363 | 0, 364 | "MODEL" 365 | ], 366 | [ 367 | 51, 368 | 27, 369 | 0, 370 | 31, 371 | 3, 372 | "LATENT" 373 | ], 374 | [ 375 | 52, 376 | 31, 377 | 0, 378 | 8, 379 | 0, 380 | "LATENT" 381 | ], 382 | [ 383 | 54, 384 | 30, 385 | 1, 386 | 33, 387 | 0, 388 | "CLIP" 389 | ], 390 | [ 391 | 55, 392 | 33, 393 | 0, 394 | 31, 395 | 2, 396 | "CONDITIONING" 397 | ], 398 | [ 399 | 58, 400 | 6, 401 | 0, 402 | 31, 403 | 1, 404 | "CONDITIONING" 405 | ] 406 | ], 407 | "groups": [], 408 | "config": {}, 409 | "extra": { 410 | "ds": { 411 | "scale": 0.683013455365071, 412 | "offset": [ 413 | -3.187623496637743, 414 | 41.041799397560105 415 | ] 416 | } 417 | }, 418 | "version": 0.4 419 | } -------------------------------------------------------------------------------- /workflows/workflow-flux-dev-fp8.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 36, 3 | "last_link_id": 57, 4 | "nodes": [ 5 | { 6 | "id": 33, 7 | "type": "CLIPTextEncode", 8 | "pos": { 9 | "0": 390, 10 | "1": 400 11 | }, 12 | "size": { 13 | "0": 422.84503173828125, 14 | "1": 164.31304931640625 15 | }, 16 | "flags": { 17 | "collapsed": true 18 | }, 19 | "order": 4, 20 | "mode": 0, 21 | "inputs": [ 22 | { 23 | "name": "clip", 24 | "type": "CLIP", 25 | "link": 54, 26 | "slot_index": 0, 27 | "label": "clip" 28 | } 29 | ], 30 | "outputs": [ 31 | { 32 | "name": "CONDITIONING", 33 | "type": "CONDITIONING", 34 | "links": [ 35 | 55 36 | ], 37 | "slot_index": 0, 38 | "label": "CONDITIONING" 39 | } 40 | ], 41 | "title": "CLIP Text Encode (Negative Prompt)", 42 | "properties": { 43 | "Node name for S&R": "CLIPTextEncode" 44 | }, 45 | "widgets_values": [ 46 | "" 47 | ], 48 | "color": "#322", 49 | "bgcolor": "#533" 50 | }, 51 | { 52 | "id": 27, 53 | "type": "EmptySD3LatentImage", 54 | "pos": { 55 | "0": 471, 56 | "1": 455 57 | }, 58 | "size": { 59 | "0": 315, 60 | "1": 106 61 | }, 62 | "flags": {}, 63 | "order": 0, 64 | "mode": 0, 65 | "inputs": [], 66 | "outputs": [ 67 | { 68 | "name": "LATENT", 69 | "type": "LATENT", 70 | "links": [ 71 | 51 72 | ], 73 | "slot_index": 0, 74 | "shape": 3, 75 | "label": "LATENT" 76 | } 77 | ], 78 | "properties": { 79 | "Node name for S&R": "EmptySD3LatentImage" 80 | }, 81 | "widgets_values": [ 82 | 1024, 83 | 1024, 84 | 1 85 | ], 86 | "color": "#323", 87 | "bgcolor": "#535" 88 | }, 89 | { 90 | "id": 35, 91 | "type": "FluxGuidance", 92 | "pos": { 93 | "0": 576, 94 | "1": 96 95 | }, 96 | "size": { 97 | "0": 211.60000610351562, 98 | "1": 58 99 | }, 100 | "flags": {}, 101 | "order": 5, 102 | "mode": 0, 103 | "inputs": [ 104 | { 105 | "name": "conditioning", 106 | "type": "CONDITIONING", 107 | "link": 56, 108 | "label": "conditioning" 109 | } 110 | ], 111 | "outputs": [ 112 | { 113 | "name": "CONDITIONING", 114 | "type": "CONDITIONING", 115 | "links": [ 116 | 57 117 | ], 118 | "slot_index": 0, 119 | "shape": 3, 120 | "label": "CONDITIONING" 121 | } 122 | ], 123 | "properties": { 124 | "Node name for S&R": "FluxGuidance" 125 | }, 126 | "widgets_values": [ 127 | 3.5 128 | ] 129 | }, 130 | { 131 | "id": 8, 132 | "type": "VAEDecode", 133 | "pos": { 134 | "0": 1151, 135 | "1": 195 136 | }, 137 | "size": { 138 | "0": 210, 139 | "1": 46 140 | }, 141 | "flags": {}, 142 | "order": 7, 143 | "mode": 0, 144 | "inputs": [ 145 | { 146 | "name": "samples", 147 | "type": "LATENT", 148 | "link": 52, 149 | "label": "samples" 150 | }, 151 | { 152 | "name": "vae", 153 | "type": "VAE", 154 | "link": 46, 155 | "label": "vae" 156 | } 157 | ], 158 | "outputs": [ 159 | { 160 | "name": "IMAGE", 161 | "type": "IMAGE", 162 | "links": [ 163 | 9 164 | ], 165 | "slot_index": 0, 166 | "label": "IMAGE" 167 | } 168 | ], 169 | "properties": { 170 | "Node name for S&R": "VAEDecode" 171 | }, 172 | "widgets_values": [] 173 | }, 174 | { 175 | "id": 34, 176 | "type": "Note", 177 | "pos": { 178 | "0": 831, 179 | "1": 501 180 | }, 181 | "size": { 182 | "0": 282.8617858886719, 183 | "1": 164.08004760742188 184 | }, 185 | "flags": {}, 186 | "order": 1, 187 | "mode": 0, 188 | "inputs": [], 189 | "outputs": [], 190 | "properties": { 191 | "text": "" 192 | }, 193 | "widgets_values": [ 194 | "Note that Flux dev and schnell do not have any negative prompt so CFG should be set to 1.0. Setting CFG to 1.0 means the negative prompt is ignored." 195 | ], 196 | "color": "#432", 197 | "bgcolor": "#653" 198 | }, 199 | { 200 | "id": 9, 201 | "type": "SaveImage", 202 | "pos": { 203 | "0": 1375, 204 | "1": 194 205 | }, 206 | "size": { 207 | "0": 985.3012084960938, 208 | "1": 1060.3828125 209 | }, 210 | "flags": {}, 211 | "order": 8, 212 | "mode": 0, 213 | "inputs": [ 214 | { 215 | "name": "images", 216 | "type": "IMAGE", 217 | "link": 9, 218 | "label": "images" 219 | } 220 | ], 221 | "outputs": [], 222 | "properties": {}, 223 | "widgets_values": [ 224 | "ComfyUI" 225 | ] 226 | }, 227 | { 228 | "id": 31, 229 | "type": "KSampler", 230 | "pos": { 231 | "0": 816, 232 | "1": 192 233 | }, 234 | "size": { 235 | "0": 315, 236 | "1": 262 237 | }, 238 | "flags": {}, 239 | "order": 6, 240 | "mode": 0, 241 | "inputs": [ 242 | { 243 | "name": "model", 244 | "type": "MODEL", 245 | "link": 47, 246 | "label": "model" 247 | }, 248 | { 249 | "name": "positive", 250 | "type": "CONDITIONING", 251 | "link": 57, 252 | "label": "positive" 253 | }, 254 | { 255 | "name": "negative", 256 | "type": "CONDITIONING", 257 | "link": 55, 258 | "label": "negative" 259 | }, 260 | { 261 | "name": "latent_image", 262 | "type": "LATENT", 263 | "link": 51, 264 | "label": "latent_image" 265 | } 266 | ], 267 | "outputs": [ 268 | { 269 | "name": "LATENT", 270 | "type": "LATENT", 271 | "links": [ 272 | 52 273 | ], 274 | "slot_index": 0, 275 | "shape": 3, 276 | "label": "LATENT" 277 | } 278 | ], 279 | "properties": { 280 | "Node name for S&R": "KSampler" 281 | }, 282 | "widgets_values": [ 283 | 1122807001177657, 284 | "randomize", 285 | 20, 286 | 1, 287 | "euler", 288 | "simple", 289 | 1 290 | ] 291 | }, 292 | { 293 | "id": 30, 294 | "type": "CheckpointLoaderSimple", 295 | "pos": { 296 | "0": 48, 297 | "1": 192 298 | }, 299 | "size": { 300 | "0": 315, 301 | "1": 98 302 | }, 303 | "flags": {}, 304 | "order": 2, 305 | "mode": 0, 306 | "inputs": [], 307 | "outputs": [ 308 | { 309 | "name": "MODEL", 310 | "type": "MODEL", 311 | "links": [ 312 | 47 313 | ], 314 | "slot_index": 0, 315 | "shape": 3, 316 | "label": "MODEL" 317 | }, 318 | { 319 | "name": "CLIP", 320 | "type": "CLIP", 321 | "links": [ 322 | 45, 323 | 54 324 | ], 325 | "slot_index": 1, 326 | "shape": 3, 327 | "label": "CLIP" 328 | }, 329 | { 330 | "name": "VAE", 331 | "type": "VAE", 332 | "links": [ 333 | 46 334 | ], 335 | "slot_index": 2, 336 | "shape": 3, 337 | "label": "VAE" 338 | } 339 | ], 340 | "properties": { 341 | "Node name for S&R": "CheckpointLoaderSimple" 342 | }, 343 | "widgets_values": [ 344 | "flux1-dev-fp8.safetensors" 345 | ] 346 | }, 347 | { 348 | "id": 6, 349 | "type": "CLIPTextEncode", 350 | "pos": { 351 | "0": 384, 352 | "1": 192 353 | }, 354 | "size": { 355 | "0": 422.84503173828125, 356 | "1": 164.31304931640625 357 | }, 358 | "flags": {}, 359 | "order": 3, 360 | "mode": 0, 361 | "inputs": [ 362 | { 363 | "name": "clip", 364 | "type": "CLIP", 365 | "link": 45, 366 | "label": "clip" 367 | } 368 | ], 369 | "outputs": [ 370 | { 371 | "name": "CONDITIONING", 372 | "type": "CONDITIONING", 373 | "links": [ 374 | 56 375 | ], 376 | "slot_index": 0, 377 | "label": "CONDITIONING" 378 | } 379 | ], 380 | "title": "CLIP Text Encode (Positive Prompt)", 381 | "properties": { 382 | "Node name for S&R": "CLIPTextEncode" 383 | }, 384 | "widgets_values": [ 385 | "photo of a cat holding up a sign that says \"FLUX DEV FP 8\"" 386 | ], 387 | "color": "#232", 388 | "bgcolor": "#353" 389 | } 390 | ], 391 | "links": [ 392 | [ 393 | 9, 394 | 8, 395 | 0, 396 | 9, 397 | 0, 398 | "IMAGE" 399 | ], 400 | [ 401 | 45, 402 | 30, 403 | 1, 404 | 6, 405 | 0, 406 | "CLIP" 407 | ], 408 | [ 409 | 46, 410 | 30, 411 | 2, 412 | 8, 413 | 1, 414 | "VAE" 415 | ], 416 | [ 417 | 47, 418 | 30, 419 | 0, 420 | 31, 421 | 0, 422 | "MODEL" 423 | ], 424 | [ 425 | 51, 426 | 27, 427 | 0, 428 | 31, 429 | 3, 430 | "LATENT" 431 | ], 432 | [ 433 | 52, 434 | 31, 435 | 0, 436 | 8, 437 | 0, 438 | "LATENT" 439 | ], 440 | [ 441 | 54, 442 | 30, 443 | 1, 444 | 33, 445 | 0, 446 | "CLIP" 447 | ], 448 | [ 449 | 55, 450 | 33, 451 | 0, 452 | 31, 453 | 2, 454 | "CONDITIONING" 455 | ], 456 | [ 457 | 56, 458 | 6, 459 | 0, 460 | 35, 461 | 0, 462 | "CONDITIONING" 463 | ], 464 | [ 465 | 57, 466 | 35, 467 | 0, 468 | 31, 469 | 1, 470 | "CONDITIONING" 471 | ] 472 | ], 473 | "groups": [], 474 | "config": {}, 475 | "extra": { 476 | "ds": { 477 | "scale": 0.6934334949441618, 478 | "offset": [ 479 | -25.60850917723201, 480 | 39.85080263219448 481 | ] 482 | } 483 | }, 484 | "version": 0.4 485 | } -------------------------------------------------------------------------------- /workflows/workflow-flux-schnell.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 51, 3 | "last_link_id": 89, 4 | "nodes": [ 5 | { 6 | "id": 10, 7 | "type": "VAELoader", 8 | "pos": { 9 | "0": 80, 10 | "1": 80 11 | }, 12 | "size": { 13 | "0": 315, 14 | "1": 58 15 | }, 16 | "flags": {}, 17 | "order": 0, 18 | "mode": 0, 19 | "inputs": [], 20 | "outputs": [ 21 | { 22 | "name": "VAE", 23 | "type": "VAE", 24 | "links": [ 25 | 12 26 | ], 27 | "slot_index": 0, 28 | "shape": 3 29 | } 30 | ], 31 | "properties": { 32 | "Node name for S&R": "VAELoader" 33 | }, 34 | "widgets_values": [ 35 | "ae.safetensors" 36 | ] 37 | }, 38 | { 39 | "id": 12, 40 | "type": "UNETLoader", 41 | "pos": { 42 | "0": 80, 43 | "1": 180 44 | }, 45 | "size": { 46 | "0": 315, 47 | "1": 82 48 | }, 49 | "flags": {}, 50 | "order": 1, 51 | "mode": 0, 52 | "inputs": [], 53 | "outputs": [ 54 | { 55 | "name": "MODEL", 56 | "type": "MODEL", 57 | "links": [ 58 | 38, 59 | 39 60 | ], 61 | "slot_index": 0, 62 | "shape": 3 63 | } 64 | ], 65 | "properties": { 66 | "Node name for S&R": "UNETLoader" 67 | }, 68 | "widgets_values": [ 69 | "flux1-schnell.safetensors", 70 | "fp8_e4m3fn" 71 | ] 72 | }, 73 | { 74 | "id": 11, 75 | "type": "DualCLIPLoader", 76 | "pos": { 77 | "0": 80, 78 | "1": 300 79 | }, 80 | "size": { 81 | "0": 315, 82 | "1": 106 83 | }, 84 | "flags": {}, 85 | "order": 2, 86 | "mode": 0, 87 | "inputs": [], 88 | "outputs": [ 89 | { 90 | "name": "CLIP", 91 | "type": "CLIP", 92 | "links": [ 93 | 10 94 | ], 95 | "slot_index": 0, 96 | "shape": 3 97 | } 98 | ], 99 | "properties": { 100 | "Node name for S&R": "DualCLIPLoader" 101 | }, 102 | "widgets_values": [ 103 | "t5xxl_fp8_e4m3fn.safetensors", 104 | "clip_l.safetensors", 105 | "flux" 106 | ] 107 | }, 108 | { 109 | "id": 6, 110 | "type": "CLIPTextEncode", 111 | "pos": { 112 | "0": 80, 113 | "1": 460 114 | }, 115 | "size": { 116 | "0": 422.84503173828125, 117 | "1": 164.31304931640625 118 | }, 119 | "flags": {}, 120 | "order": 7, 121 | "mode": 0, 122 | "inputs": [ 123 | { 124 | "name": "clip", 125 | "type": "CLIP", 126 | "link": 10 127 | } 128 | ], 129 | "outputs": [ 130 | { 131 | "name": "CONDITIONING", 132 | "type": "CONDITIONING", 133 | "links": [ 134 | 40 135 | ], 136 | "slot_index": 0 137 | } 138 | ], 139 | "properties": { 140 | "Node name for S&R": "CLIPTextEncode" 141 | }, 142 | "widgets_values": [ 143 | "a monkey that holds up a sign that says \"wooo local FLUX!\"" 144 | ] 145 | }, 146 | { 147 | "id": 22, 148 | "type": "BasicGuider", 149 | "pos": { 150 | "0": 660, 151 | "1": 460 152 | }, 153 | "size": { 154 | "0": 241.79998779296875, 155 | "1": 46 156 | }, 157 | "flags": {}, 158 | "order": 9, 159 | "mode": 0, 160 | "inputs": [ 161 | { 162 | "name": "model", 163 | "type": "MODEL", 164 | "link": 39, 165 | "slot_index": 0 166 | }, 167 | { 168 | "name": "conditioning", 169 | "type": "CONDITIONING", 170 | "link": 40, 171 | "slot_index": 1 172 | } 173 | ], 174 | "outputs": [ 175 | { 176 | "name": "GUIDER", 177 | "type": "GUIDER", 178 | "links": [ 179 | 30 180 | ], 181 | "slot_index": 0, 182 | "shape": 3 183 | } 184 | ], 185 | "properties": { 186 | "Node name for S&R": "BasicGuider" 187 | } 188 | }, 189 | { 190 | "id": 16, 191 | "type": "KSamplerSelect", 192 | "pos": { 193 | "0": 660, 194 | "1": 200 195 | }, 196 | "size": { 197 | "0": 315, 198 | "1": 58 199 | }, 200 | "flags": {}, 201 | "order": 3, 202 | "mode": 0, 203 | "inputs": [], 204 | "outputs": [ 205 | { 206 | "name": "SAMPLER", 207 | "type": "SAMPLER", 208 | "links": [ 209 | 19 210 | ], 211 | "shape": 3 212 | } 213 | ], 214 | "properties": { 215 | "Node name for S&R": "KSamplerSelect" 216 | }, 217 | "widgets_values": [ 218 | "euler" 219 | ] 220 | }, 221 | { 222 | "id": 17, 223 | "type": "BasicScheduler", 224 | "pos": { 225 | "0": 660, 226 | "1": 300 227 | }, 228 | "size": { 229 | "0": 315, 230 | "1": 106 231 | }, 232 | "flags": {}, 233 | "order": 6, 234 | "mode": 0, 235 | "inputs": [ 236 | { 237 | "name": "model", 238 | "type": "MODEL", 239 | "link": 38, 240 | "slot_index": 0 241 | } 242 | ], 243 | "outputs": [ 244 | { 245 | "name": "SIGMAS", 246 | "type": "SIGMAS", 247 | "links": [ 248 | 59 249 | ], 250 | "slot_index": 0, 251 | "shape": 3 252 | } 253 | ], 254 | "properties": { 255 | "Node name for S&R": "BasicScheduler" 256 | }, 257 | "widgets_values": [ 258 | "normal", 259 | 4, 260 | 1 261 | ] 262 | }, 263 | { 264 | "id": 13, 265 | "type": "SamplerCustomAdvanced", 266 | "pos": { 267 | "0": 1100, 268 | "1": 320 269 | }, 270 | "size": { 271 | "0": 355.20001220703125, 272 | "1": 106 273 | }, 274 | "flags": {}, 275 | "order": 10, 276 | "mode": 0, 277 | "inputs": [ 278 | { 279 | "name": "noise", 280 | "type": "NOISE", 281 | "link": 86, 282 | "slot_index": 0 283 | }, 284 | { 285 | "name": "guider", 286 | "type": "GUIDER", 287 | "link": 30, 288 | "slot_index": 1 289 | }, 290 | { 291 | "name": "sampler", 292 | "type": "SAMPLER", 293 | "link": 19, 294 | "slot_index": 2 295 | }, 296 | { 297 | "name": "sigmas", 298 | "type": "SIGMAS", 299 | "link": 60, 300 | "slot_index": 3 301 | }, 302 | { 303 | "name": "latent_image", 304 | "type": "LATENT", 305 | "link": 89, 306 | "slot_index": 4 307 | } 308 | ], 309 | "outputs": [ 310 | { 311 | "name": "output", 312 | "type": "LATENT", 313 | "links": [ 314 | 24 315 | ], 316 | "slot_index": 0, 317 | "shape": 3 318 | }, 319 | { 320 | "name": "denoised_output", 321 | "type": "LATENT", 322 | "links": null, 323 | "shape": 3 324 | } 325 | ], 326 | "properties": { 327 | "Node name for S&R": "SamplerCustomAdvanced" 328 | } 329 | }, 330 | { 331 | "id": 50, 332 | "type": "RandomNoise", 333 | "pos": { 334 | "0": 660, 335 | "1": 720 336 | }, 337 | "size": { 338 | "0": 315, 339 | "1": 82 340 | }, 341 | "flags": {}, 342 | "order": 4, 343 | "mode": 0, 344 | "inputs": [], 345 | "outputs": [ 346 | { 347 | "name": "NOISE", 348 | "type": "NOISE", 349 | "links": [ 350 | 86 351 | ], 352 | "shape": 3 353 | } 354 | ], 355 | "properties": { 356 | "Node name for S&R": "RandomNoise" 357 | }, 358 | "widgets_values": [ 359 | 818571366394800, 360 | "randomize" 361 | ] 362 | }, 363 | { 364 | "id": 8, 365 | "type": "VAEDecode", 366 | "pos": { 367 | "0": 1240, 368 | "1": 480 369 | }, 370 | "size": { 371 | "0": 210, 372 | "1": 46 373 | }, 374 | "flags": {}, 375 | "order": 11, 376 | "mode": 0, 377 | "inputs": [ 378 | { 379 | "name": "samples", 380 | "type": "LATENT", 381 | "link": 24 382 | }, 383 | { 384 | "name": "vae", 385 | "type": "VAE", 386 | "link": 12 387 | } 388 | ], 389 | "outputs": [ 390 | { 391 | "name": "IMAGE", 392 | "type": "IMAGE", 393 | "links": [ 394 | 88 395 | ], 396 | "slot_index": 0 397 | } 398 | ], 399 | "properties": { 400 | "Node name for S&R": "VAEDecode" 401 | } 402 | }, 403 | { 404 | "id": 38, 405 | "type": "SplitSigmas", 406 | "pos": { 407 | "0": 1140, 408 | "1": 180 409 | }, 410 | "size": { 411 | "0": 315, 412 | "1": 78 413 | }, 414 | "flags": {}, 415 | "order": 8, 416 | "mode": 0, 417 | "inputs": [ 418 | { 419 | "name": "sigmas", 420 | "type": "SIGMAS", 421 | "link": 59 422 | } 423 | ], 424 | "outputs": [ 425 | { 426 | "name": "high_sigmas", 427 | "type": "SIGMAS", 428 | "links": [], 429 | "slot_index": 0, 430 | "shape": 3 431 | }, 432 | { 433 | "name": "low_sigmas", 434 | "type": "SIGMAS", 435 | "links": [ 436 | 60 437 | ], 438 | "slot_index": 1, 439 | "shape": 3 440 | } 441 | ], 442 | "properties": { 443 | "Node name for S&R": "SplitSigmas" 444 | }, 445 | "widgets_values": [ 446 | 0 447 | ] 448 | }, 449 | { 450 | "id": 9, 451 | "type": "SaveImage", 452 | "pos": { 453 | "0": 1500, 454 | "1": 180 455 | }, 456 | "size": { 457 | "0": 686.9293823242188, 458 | "1": 1089.4158935546875 459 | }, 460 | "flags": {}, 461 | "order": 12, 462 | "mode": 0, 463 | "inputs": [ 464 | { 465 | "name": "images", 466 | "type": "IMAGE", 467 | "link": 88 468 | } 469 | ], 470 | "outputs": [], 471 | "properties": {}, 472 | "widgets_values": [ 473 | "flux/ComfyUI" 474 | ] 475 | }, 476 | { 477 | "id": 51, 478 | "type": "EmptyLatentImage", 479 | "pos": { 480 | "0": 660, 481 | "1": 560 482 | }, 483 | "size": { 484 | "0": 315, 485 | "1": 106 486 | }, 487 | "flags": {}, 488 | "order": 5, 489 | "mode": 0, 490 | "inputs": [], 491 | "outputs": [ 492 | { 493 | "name": "LATENT", 494 | "type": "LATENT", 495 | "links": [ 496 | 89 497 | ], 498 | "slot_index": 0, 499 | "shape": 3 500 | } 501 | ], 502 | "properties": { 503 | "Node name for S&R": "EmptyLatentImage" 504 | }, 505 | "widgets_values": [ 506 | 1024, 507 | 1024, 508 | 1 509 | ] 510 | } 511 | ], 512 | "links": [ 513 | [ 514 | 10, 515 | 11, 516 | 0, 517 | 6, 518 | 0, 519 | "CLIP" 520 | ], 521 | [ 522 | 12, 523 | 10, 524 | 0, 525 | 8, 526 | 1, 527 | "VAE" 528 | ], 529 | [ 530 | 19, 531 | 16, 532 | 0, 533 | 13, 534 | 2, 535 | "SAMPLER" 536 | ], 537 | [ 538 | 24, 539 | 13, 540 | 0, 541 | 8, 542 | 0, 543 | "LATENT" 544 | ], 545 | [ 546 | 30, 547 | 22, 548 | 0, 549 | 13, 550 | 1, 551 | "GUIDER" 552 | ], 553 | [ 554 | 38, 555 | 12, 556 | 0, 557 | 17, 558 | 0, 559 | "MODEL" 560 | ], 561 | [ 562 | 39, 563 | 12, 564 | 0, 565 | 22, 566 | 0, 567 | "MODEL" 568 | ], 569 | [ 570 | 40, 571 | 6, 572 | 0, 573 | 22, 574 | 1, 575 | "CONDITIONING" 576 | ], 577 | [ 578 | 59, 579 | 17, 580 | 0, 581 | 38, 582 | 0, 583 | "SIGMAS" 584 | ], 585 | [ 586 | 60, 587 | 38, 588 | 1, 589 | 13, 590 | 3, 591 | "SIGMAS" 592 | ], 593 | [ 594 | 86, 595 | 50, 596 | 0, 597 | 13, 598 | 0, 599 | "NOISE" 600 | ], 601 | [ 602 | 88, 603 | 8, 604 | 0, 605 | 9, 606 | 0, 607 | "IMAGE" 608 | ], 609 | [ 610 | 89, 611 | 51, 612 | 0, 613 | 13, 614 | 4, 615 | "LATENT" 616 | ] 617 | ], 618 | "groups": [], 619 | "config": {}, 620 | "extra": { 621 | "ds": { 622 | "scale": 0.6209213230591553, 623 | "offset": [ 624 | 122.48530024999918, 625 | 74.87918050000005 626 | ] 627 | } 628 | }, 629 | "version": 0.4 630 | } -------------------------------------------------------------------------------- /workflows/workflow-flux-dev.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 37, 3 | "last_link_id": 116, 4 | "nodes": [ 5 | { 6 | "id": 6, 7 | "type": "CLIPTextEncode", 8 | "pos": [ 9 | 384, 10 | 240 11 | ], 12 | "size": { 13 | "0": 422.84503173828125, 14 | "1": 164.31304931640625 15 | }, 16 | "flags": {}, 17 | "order": 9, 18 | "mode": 0, 19 | "inputs": [ 20 | { 21 | "name": "clip", 22 | "type": "CLIP", 23 | "link": 10 24 | } 25 | ], 26 | "outputs": [ 27 | { 28 | "name": "CONDITIONING", 29 | "type": "CONDITIONING", 30 | "links": [ 31 | 41 32 | ], 33 | "slot_index": 0 34 | } 35 | ], 36 | "title": "CLIP Text Encode (Positive Prompt)", 37 | "properties": { 38 | "Node name for S&R": "CLIPTextEncode" 39 | }, 40 | "widgets_values": [ 41 | "a monkey that holds up a sign that says \"wooo local FLUX!\"" 42 | ], 43 | "color": "#232", 44 | "bgcolor": "#353" 45 | }, 46 | { 47 | "id": 8, 48 | "type": "VAEDecode", 49 | "pos": [ 50 | 866, 51 | 367 52 | ], 53 | "size": { 54 | "0": 210, 55 | "1": 46 56 | }, 57 | "flags": {}, 58 | "order": 16, 59 | "mode": 0, 60 | "inputs": [ 61 | { 62 | "name": "samples", 63 | "type": "LATENT", 64 | "link": 24 65 | }, 66 | { 67 | "name": "vae", 68 | "type": "VAE", 69 | "link": 12 70 | } 71 | ], 72 | "outputs": [ 73 | { 74 | "name": "IMAGE", 75 | "type": "IMAGE", 76 | "links": [ 77 | 9 78 | ], 79 | "slot_index": 0 80 | } 81 | ], 82 | "properties": { 83 | "Node name for S&R": "VAEDecode" 84 | } 85 | }, 86 | { 87 | "id": 9, 88 | "type": "SaveImage", 89 | "pos": [ 90 | 1155, 91 | 196 92 | ], 93 | "size": { 94 | "0": 985.3012084960938, 95 | "1": 1060.3828125 96 | }, 97 | "flags": {}, 98 | "order": 17, 99 | "mode": 0, 100 | "inputs": [ 101 | { 102 | "name": "images", 103 | "type": "IMAGE", 104 | "link": 9 105 | } 106 | ], 107 | "properties": {}, 108 | "widgets_values": [ 109 | "ComfyUI" 110 | ] 111 | }, 112 | { 113 | "id": 10, 114 | "type": "VAELoader", 115 | "pos": [ 116 | 48, 117 | 432 118 | ], 119 | "size": { 120 | "0": 311.81634521484375, 121 | "1": 60.429901123046875 122 | }, 123 | "flags": {}, 124 | "order": 0, 125 | "mode": 0, 126 | "outputs": [ 127 | { 128 | "name": "VAE", 129 | "type": "VAE", 130 | "links": [ 131 | 12 132 | ], 133 | "slot_index": 0, 134 | "shape": 3 135 | } 136 | ], 137 | "properties": { 138 | "Node name for S&R": "VAELoader" 139 | }, 140 | "widgets_values": [ 141 | "ae.safetensors" 142 | ] 143 | }, 144 | { 145 | "id": 11, 146 | "type": "DualCLIPLoader", 147 | "pos": [ 148 | 48, 149 | 288 150 | ], 151 | "size": { 152 | "0": 315, 153 | "1": 106 154 | }, 155 | "flags": {}, 156 | "order": 1, 157 | "mode": 0, 158 | "outputs": [ 159 | { 160 | "name": "CLIP", 161 | "type": "CLIP", 162 | "links": [ 163 | 10 164 | ], 165 | "slot_index": 0, 166 | "shape": 3 167 | } 168 | ], 169 | "properties": { 170 | "Node name for S&R": "DualCLIPLoader" 171 | }, 172 | "widgets_values": [ 173 | "t5xxl_fp16.safetensors", 174 | "clip_l.safetensors", 175 | "flux" 176 | ] 177 | }, 178 | { 179 | "id": 12, 180 | "type": "UNETLoader", 181 | "pos": [ 182 | 48, 183 | 144 184 | ], 185 | "size": { 186 | "0": 315, 187 | "1": 82 188 | }, 189 | "flags": {}, 190 | "order": 2, 191 | "mode": 0, 192 | "outputs": [ 193 | { 194 | "name": "MODEL", 195 | "type": "MODEL", 196 | "links": [ 197 | 56 198 | ], 199 | "slot_index": 0, 200 | "shape": 3 201 | } 202 | ], 203 | "properties": { 204 | "Node name for S&R": "UNETLoader" 205 | }, 206 | "widgets_values": [ 207 | "flux1-dev.safetensors", 208 | "default" 209 | ], 210 | "color": "#223", 211 | "bgcolor": "#335" 212 | }, 213 | { 214 | "id": 13, 215 | "type": "SamplerCustomAdvanced", 216 | "pos": [ 217 | 864, 218 | 192 219 | ], 220 | "size": { 221 | "0": 272.3617858886719, 222 | "1": 124.53733825683594 223 | }, 224 | "flags": {}, 225 | "order": 15, 226 | "mode": 0, 227 | "inputs": [ 228 | { 229 | "name": "noise", 230 | "type": "NOISE", 231 | "link": 37, 232 | "slot_index": 0 233 | }, 234 | { 235 | "name": "guider", 236 | "type": "GUIDER", 237 | "link": 30, 238 | "slot_index": 1 239 | }, 240 | { 241 | "name": "sampler", 242 | "type": "SAMPLER", 243 | "link": 19, 244 | "slot_index": 2 245 | }, 246 | { 247 | "name": "sigmas", 248 | "type": "SIGMAS", 249 | "link": 20, 250 | "slot_index": 3 251 | }, 252 | { 253 | "name": "latent_image", 254 | "type": "LATENT", 255 | "link": 116, 256 | "slot_index": 4 257 | } 258 | ], 259 | "outputs": [ 260 | { 261 | "name": "output", 262 | "type": "LATENT", 263 | "links": [ 264 | 24 265 | ], 266 | "slot_index": 0, 267 | "shape": 3 268 | }, 269 | { 270 | "name": "denoised_output", 271 | "type": "LATENT", 272 | "links": null, 273 | "shape": 3 274 | } 275 | ], 276 | "properties": { 277 | "Node name for S&R": "SamplerCustomAdvanced" 278 | } 279 | }, 280 | { 281 | "id": 16, 282 | "type": "KSamplerSelect", 283 | "pos": [ 284 | 480, 285 | 912 286 | ], 287 | "size": { 288 | "0": 315, 289 | "1": 58 290 | }, 291 | "flags": {}, 292 | "order": 3, 293 | "mode": 0, 294 | "outputs": [ 295 | { 296 | "name": "SAMPLER", 297 | "type": "SAMPLER", 298 | "links": [ 299 | 19 300 | ], 301 | "shape": 3 302 | } 303 | ], 304 | "properties": { 305 | "Node name for S&R": "KSamplerSelect" 306 | }, 307 | "widgets_values": [ 308 | "euler" 309 | ] 310 | }, 311 | { 312 | "id": 17, 313 | "type": "BasicScheduler", 314 | "pos": [ 315 | 480, 316 | 1008 317 | ], 318 | "size": { 319 | "0": 315, 320 | "1": 106 321 | }, 322 | "flags": {}, 323 | "order": 13, 324 | "mode": 0, 325 | "inputs": [ 326 | { 327 | "name": "model", 328 | "type": "MODEL", 329 | "link": 55, 330 | "slot_index": 0 331 | } 332 | ], 333 | "outputs": [ 334 | { 335 | "name": "SIGMAS", 336 | "type": "SIGMAS", 337 | "links": [ 338 | 20 339 | ], 340 | "shape": 3 341 | } 342 | ], 343 | "properties": { 344 | "Node name for S&R": "BasicScheduler" 345 | }, 346 | "widgets_values": [ 347 | "simple", 348 | 20, 349 | 1 350 | ] 351 | }, 352 | { 353 | "id": 22, 354 | "type": "BasicGuider", 355 | "pos": [ 356 | 576, 357 | 48 358 | ], 359 | "size": { 360 | "0": 222.3482666015625, 361 | "1": 46 362 | }, 363 | "flags": {}, 364 | "order": 14, 365 | "mode": 0, 366 | "inputs": [ 367 | { 368 | "name": "model", 369 | "type": "MODEL", 370 | "link": 54, 371 | "slot_index": 0 372 | }, 373 | { 374 | "name": "conditioning", 375 | "type": "CONDITIONING", 376 | "link": 42, 377 | "slot_index": 1 378 | } 379 | ], 380 | "outputs": [ 381 | { 382 | "name": "GUIDER", 383 | "type": "GUIDER", 384 | "links": [ 385 | 30 386 | ], 387 | "slot_index": 0, 388 | "shape": 3 389 | } 390 | ], 391 | "properties": { 392 | "Node name for S&R": "BasicGuider" 393 | } 394 | }, 395 | { 396 | "id": 25, 397 | "type": "RandomNoise", 398 | "pos": [ 399 | 480, 400 | 768 401 | ], 402 | "size": { 403 | "0": 315, 404 | "1": 82 405 | }, 406 | "flags": {}, 407 | "order": 4, 408 | "mode": 0, 409 | "outputs": [ 410 | { 411 | "name": "NOISE", 412 | "type": "NOISE", 413 | "links": [ 414 | 37 415 | ], 416 | "shape": 3 417 | } 418 | ], 419 | "properties": { 420 | "Node name for S&R": "RandomNoise" 421 | }, 422 | "widgets_values": [ 423 | 860965999065638, 424 | "randomize" 425 | ], 426 | "color": "#2a363b", 427 | "bgcolor": "#3f5159" 428 | }, 429 | { 430 | "id": 26, 431 | "type": "FluxGuidance", 432 | "pos": [ 433 | 480, 434 | 144 435 | ], 436 | "size": { 437 | "0": 317.4000244140625, 438 | "1": 58 439 | }, 440 | "flags": {}, 441 | "order": 12, 442 | "mode": 0, 443 | "inputs": [ 444 | { 445 | "name": "conditioning", 446 | "type": "CONDITIONING", 447 | "link": 41 448 | } 449 | ], 450 | "outputs": [ 451 | { 452 | "name": "CONDITIONING", 453 | "type": "CONDITIONING", 454 | "links": [ 455 | 42 456 | ], 457 | "slot_index": 0, 458 | "shape": 3 459 | } 460 | ], 461 | "properties": { 462 | "Node name for S&R": "FluxGuidance" 463 | }, 464 | "widgets_values": [ 465 | 3.5 466 | ], 467 | "color": "#233", 468 | "bgcolor": "#355" 469 | }, 470 | { 471 | "id": 27, 472 | "type": "EmptySD3LatentImage", 473 | "pos": [ 474 | 480, 475 | 624 476 | ], 477 | "size": { 478 | "0": 315, 479 | "1": 106 480 | }, 481 | "flags": {}, 482 | "order": 10, 483 | "mode": 0, 484 | "inputs": [ 485 | { 486 | "name": "width", 487 | "type": "INT", 488 | "link": 112, 489 | "widget": { 490 | "name": "width" 491 | } 492 | }, 493 | { 494 | "name": "height", 495 | "type": "INT", 496 | "link": 113, 497 | "widget": { 498 | "name": "height" 499 | } 500 | } 501 | ], 502 | "outputs": [ 503 | { 504 | "name": "LATENT", 505 | "type": "LATENT", 506 | "links": [ 507 | 116 508 | ], 509 | "slot_index": 0, 510 | "shape": 3 511 | } 512 | ], 513 | "properties": { 514 | "Node name for S&R": "EmptySD3LatentImage" 515 | }, 516 | "widgets_values": [ 517 | 1024, 518 | 1024, 519 | 1 520 | ] 521 | }, 522 | { 523 | "id": 30, 524 | "type": "ModelSamplingFlux", 525 | "pos": [ 526 | 480, 527 | 1152 528 | ], 529 | "size": { 530 | "0": 315, 531 | "1": 130 532 | }, 533 | "flags": {}, 534 | "order": 11, 535 | "mode": 0, 536 | "inputs": [ 537 | { 538 | "name": "model", 539 | "type": "MODEL", 540 | "link": 56, 541 | "slot_index": 0 542 | }, 543 | { 544 | "name": "width", 545 | "type": "INT", 546 | "link": 115, 547 | "slot_index": 1, 548 | "widget": { 549 | "name": "width" 550 | } 551 | }, 552 | { 553 | "name": "height", 554 | "type": "INT", 555 | "link": 114, 556 | "slot_index": 2, 557 | "widget": { 558 | "name": "height" 559 | } 560 | } 561 | ], 562 | "outputs": [ 563 | { 564 | "name": "MODEL", 565 | "type": "MODEL", 566 | "links": [ 567 | 54, 568 | 55 569 | ], 570 | "slot_index": 0, 571 | "shape": 3 572 | } 573 | ], 574 | "properties": { 575 | "Node name for S&R": "ModelSamplingFlux" 576 | }, 577 | "widgets_values": [ 578 | 1.15, 579 | 0.5, 580 | 1024, 581 | 1024 582 | ] 583 | }, 584 | { 585 | "id": 34, 586 | "type": "PrimitiveNode", 587 | "pos": [ 588 | 432, 589 | 480 590 | ], 591 | "size": { 592 | "0": 210, 593 | "1": 82 594 | }, 595 | "flags": {}, 596 | "order": 6, 597 | "mode": 0, 598 | "outputs": [ 599 | { 600 | "name": "INT", 601 | "type": "INT", 602 | "links": [ 603 | 112, 604 | 115 605 | ], 606 | "slot_index": 0, 607 | "widget": { 608 | "name": "width" 609 | } 610 | } 611 | ], 612 | "title": "width", 613 | "properties": { 614 | "Run widget replace on values": false 615 | }, 616 | "widgets_values": [ 617 | 1024, 618 | "fixed" 619 | ], 620 | "color": "#323", 621 | "bgcolor": "#535" 622 | }, 623 | { 624 | "id": 35, 625 | "type": "PrimitiveNode", 626 | "pos": [ 627 | 672, 628 | 480 629 | ], 630 | "size": { 631 | "0": 210, 632 | "1": 82 633 | }, 634 | "flags": {}, 635 | "order": 7, 636 | "mode": 0, 637 | "outputs": [ 638 | { 639 | "name": "INT", 640 | "type": "INT", 641 | "links": [ 642 | 113, 643 | 114 644 | ], 645 | "slot_index": 0, 646 | "widget": { 647 | "name": "height" 648 | } 649 | } 650 | ], 651 | "title": "height", 652 | "properties": { 653 | "Run widget replace on values": false 654 | }, 655 | "widgets_values": [ 656 | 1024, 657 | "fixed" 658 | ], 659 | "color": "#323", 660 | "bgcolor": "#535" 661 | } 662 | ], 663 | "links": [ 664 | [ 665 | 9, 666 | 8, 667 | 0, 668 | 9, 669 | 0, 670 | "IMAGE" 671 | ], 672 | [ 673 | 10, 674 | 11, 675 | 0, 676 | 6, 677 | 0, 678 | "CLIP" 679 | ], 680 | [ 681 | 12, 682 | 10, 683 | 0, 684 | 8, 685 | 1, 686 | "VAE" 687 | ], 688 | [ 689 | 19, 690 | 16, 691 | 0, 692 | 13, 693 | 2, 694 | "SAMPLER" 695 | ], 696 | [ 697 | 20, 698 | 17, 699 | 0, 700 | 13, 701 | 3, 702 | "SIGMAS" 703 | ], 704 | [ 705 | 24, 706 | 13, 707 | 0, 708 | 8, 709 | 0, 710 | "LATENT" 711 | ], 712 | [ 713 | 30, 714 | 22, 715 | 0, 716 | 13, 717 | 1, 718 | "GUIDER" 719 | ], 720 | [ 721 | 37, 722 | 25, 723 | 0, 724 | 13, 725 | 0, 726 | "NOISE" 727 | ], 728 | [ 729 | 41, 730 | 6, 731 | 0, 732 | 26, 733 | 0, 734 | "CONDITIONING" 735 | ], 736 | [ 737 | 42, 738 | 26, 739 | 0, 740 | 22, 741 | 1, 742 | "CONDITIONING" 743 | ], 744 | [ 745 | 54, 746 | 30, 747 | 0, 748 | 22, 749 | 0, 750 | "MODEL" 751 | ], 752 | [ 753 | 55, 754 | 30, 755 | 0, 756 | 17, 757 | 0, 758 | "MODEL" 759 | ], 760 | [ 761 | 56, 762 | 12, 763 | 0, 764 | 30, 765 | 0, 766 | "MODEL" 767 | ], 768 | [ 769 | 112, 770 | 34, 771 | 0, 772 | 27, 773 | 0, 774 | "INT" 775 | ], 776 | [ 777 | 113, 778 | 35, 779 | 0, 780 | 27, 781 | 1, 782 | "INT" 783 | ], 784 | [ 785 | 114, 786 | 35, 787 | 0, 788 | 30, 789 | 2, 790 | "INT" 791 | ], 792 | [ 793 | 115, 794 | 34, 795 | 0, 796 | 30, 797 | 1, 798 | "INT" 799 | ], 800 | [ 801 | 116, 802 | 27, 803 | 0, 804 | 13, 805 | 4, 806 | "LATENT" 807 | ] 808 | ], 809 | "groups": [], 810 | "config": {}, 811 | "extra": { 812 | "ds": { 813 | "scale": 0.620921323059155, 814 | "offset": [ 815 | 176.31363458750957, 816 | -34.489478521297364 817 | ] 818 | }, 819 | "groupNodes": {} 820 | }, 821 | "version": 0.4 822 | } --------------------------------------------------------------------------------