diff --git a/.github/workflows/wiki.yml b/.github/workflows/wiki.yml new file mode 100644 index 0000000..38131e8 --- /dev/null +++ b/.github/workflows/wiki.yml @@ -0,0 +1,67 @@ +name: Publish wiki + +# The wiki/ folder in this repo is the source of truth: it reviews with the code +# that changes it. This copies it into the GitHub wiki, which is a separate +# repository, so the pages are also browsable at /wiki with its own navigation. +# +# The wiki repo has to exist before the first run - GitHub only creates it once +# a page has been made in the web UI. Create any page there once and delete it +# afterwards if you like; this replaces the contents wholesale. + +on: + push: + branches: [main] + paths: + - "wiki/**" + - ".github/workflows/wiki.yml" + workflow_dispatch: + +permissions: + contents: write + +concurrency: + group: wiki + cancel-in-progress: true + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Rewrite repo-relative links for the wiki + # The wiki is a different repository, so ../assets and ../CHANGELOG.md + # resolve to nothing there. Images become raw URLs and repo links become + # blob URLs; links between wiki pages are left alone, because GitHub + # resolves Usage.md to the Usage page on its own. + run: | + set -euo pipefail + mkdir -p build + cp wiki/*.md build/ + raw="https://raw.githubusercontent.com/${GITHUB_REPOSITORY}/main" + blob="https://github.com/${GITHUB_REPOSITORY}/blob/main" + for f in build/*.md; do + sed -i "s#](\.\./assets/#](${raw}/assets/#g" "$f" + sed -i "s#](\.\./#](${blob}/#g" "$f" + done + echo "--- remaining relative parents (should be none) ---" + ! grep -rn '](\.\./' build/ || exit 1 + + - name: Push to the wiki + run: | + set -euo pipefail + git clone "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.wiki.git" wiki-repo + # Replace wholesale: a page deleted from wiki/ should disappear. + find wiki-repo -maxdepth 1 -name '*.md' -delete + cp build/*.md wiki-repo/ + cd wiki-repo + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add -A + if git diff --cached --quiet; then + echo "Wiki already matches wiki/; nothing to push." + exit 0 + fi + git commit -m "Publish wiki from ${GITHUB_SHA::7}" + git push diff --git a/README.md b/README.md index 57eb06a..9907e60 100644 --- a/README.md +++ b/README.md @@ -1,254 +1,126 @@ -# WarpPipe - ComfyUI Custom Nodes +![WarpPipe](assets/registry/banner.png) -

- WarpPipe Banner -

+# WarpPipe -WarpPipe is a set of custom nodes for ComfyUI that provides a data bundling and transfer system. It allows you to package multiple data types (models, conditioning, images, parameters, etc.) into a single "warp" object that can be passed between nodes and unpacked later in your workflow -- like a Super Mario warp pipe for your data. +ComfyUI nodes that bundle a whole generation into one wire, and a prompt box +that keeps a prompt and its LoRAs in the same place. -## Why WarpPipe? +- **Warp / Unwarp** — everything a sampler needs travels as a single link. + Switching between whole model setups is one wire moved instead of twenty. +- **Prompt + LoRAs** — write `a portrait ` and have it + mean it. The tags *are* the loader; the prompt is still a prompt. +- **Save Image (Civitai)** — writes metadata Civitai reads, so an upload + credits the checkpoint and the LoRAs that actually made the picture. -If you've ever built a complex ComfyUI workflow, you know the pain: dozens of connections criss-crossing your canvas, making it impossible to read or maintain. WarpPipe solves this by letting you **bundle everything into a single wire**. +They work apart as well as together. -- **Clean workflows**: Replace 20+ tangled connections with one clean Warp-to-Unwarp link. Your workflow becomes readable at a glance. -- **Fast model switching**: Set up multiple Warp nodes -- one per model/style -- each with its own settings (steps, CFG, scheduler, sampler, resolution). Switch between them instantly by connecting a different Warp to your Unwarp. -- **Flexible and modular**: Build reusable workflow sections that accept and return warp bundles. Change one part without touching the rest. -- **No data loss**: Every standard ComfyUI type is supported -- models, CLIP, VAE, conditioning, images, latents, prompts, and all sampling parameters travel together. - -## Features - -- **Warp Node**: Bundles multiple ComfyUI data types into a single transferable object -- **Unwarp Node**: Unpacks the bundled data back into individual outputs -- **Warp Provider**: Generates latents and parameters with 30+ resolution presets -- **FD Scheduler Adapter**: Converts KSampler schedulers to FaceDetailer-compatible schedulers -- **Dead End Node**: Accepts any input type but produces no output -- perfect for debugging -- **Chain-able**: Warp nodes can copy and extend data from other warp nodes -- **Scheduler Compatibility**: Automatic coercion of exotic schedulers to safe values - -## Installation - -### Method 1: Comfy Registry (Recommended) +## Install ```bash comfy node install warppipe ``` -### Method 2: ComfyUI Manager +Or clone into `ComfyUI/custom_nodes` and restart. Python 3.9+, no third-party +dependencies. -1. Open ComfyUI Manager -2. Search for "WarpPipe" -3. Click Install +## The prompt box -### Method 3: Manual (git clone) +![The Prompt + LoRAs node, with tags, notes and trigger words coloured](assets/docs/prompt-node.webp) -```bash -cd ComfyUI/custom_nodes -git clone https://github.com/gregory-richard/ComfyUI-WarpPipe.git -``` +Colour says what will happen before you run anything: cyan resolves, red matches +nothing, orange is built for another base model, green is a trigger word, grey +is a `//` note that never reaches the model. The line underneath describes +whichever tag the caret is in. -Restart ComfyUI after installation. +Press `/` to complete against your library inline, `Tab` to take it, `Tab` again +on a tag for that LoRA's trigger words. Weight, ordering and switching a LoRA off +are ordinary text edits, so undo covers all of them. -## Nodes +→ [Writing a prompt](wiki/Usage.md#writing-a-prompt) · +[the browser](wiki/Usage.md#the-browser) · [all the keys](wiki/Usage.md#keys) -### Warp Node +## One wire -**Category**: `Custom/WarpPipe Nodes` | **Display Name**: 🌀 Warp +![A Warp bundling three sources into one link, unpacked by Unwarp](assets/docs/warp-unwarp.webp) -Bundles multiple data types into a single "warp" object. +Everything on the left goes into a **Warp**. One link crosses the canvas. An +**Unwarp** gives it all back. Warps chain, so a second one downstream carries +everything the first did and adds to it. -**Inputs** (all optional): +→ [Bundling a generation](wiki/Usage.md#bundling-a-generation) -- `warp`: Copy data from an existing warp object (WARPPIPE type) -- `model_1`, `model_2`: MODEL objects (e.g. checkpoints, LoRA-modified models) -- `clip`: CLIP encoder -- `clip_vision`: CLIP_VISION encoder -- `vae`: VAE model -- `conditioning_positive`, `conditioning_negative`: CONDITIONING inputs -- `image`: IMAGE batch -- `mask`: MASK input -- `latent`: LATENT data -- `prompt_positive`, `prompt_negative`: Text prompts (STRING) -- `batch_size`, `seed`, `steps_1`, `steps_2`, `steps_3`, `width`, `height`: Integer parameters -- `cfg`: CFG scale (FLOAT) -- `sampler_name`: Sampler selection (matches KSampler) -- `scheduler`: Scheduler selection (matches KSampler) +## Works with Civitai Updater -**Output**: +WarpPipe reads the `.civitai.info` sidecars that +[Civitai Updater](https://github.com/gregory-richard/comfyui-civitai-updater) +writes: trigger words, base models, titles, Civitai links and the AutoV2 hash +Civitai matches on. Only the hash has a fallback — the rest simply are not there +without a sidecar, and the features built on them go quiet. -- `warp`: Bundled data object (WARPPIPE type) +→ [What the sidecars give you](wiki/Usage.md#what-the-sidecars-give-you) -### Unwarp Node +## The nodes -**Category**: `Custom/WarpPipe Nodes` | **Display Name**: 🌀 Unwarp +| Node | | +| --- | --- | +| 🌀 **Warp** | Bundles models, conditioning, images, latents, prompts and parameters into one link | +| 🌀 **Unwarp** | Unpacks it into twenty-two outputs | +| 🌀 **Warp Provider** | Latent and parameters together, with 30+ resolution presets | +| 🌀 **Prompt + LoRAs** | The prompt box above | +| 🌀 **Save Image (Civitai)** | Saves with metadata Civitai reads | +| 🌀 **Scheduler Adapter for FaceDetailer** | Maps KSampler schedulers onto FaceDetailer's set | +| 🚫 **Dead End** | Accepts any type, produces nothing. Parks a branch without deleting it | -Unpacks a warp object back into individual data types. +Every node carries its own help inside ComfyUI, behind the `?` on the node. -**Input**: +→ [Every input and output](wiki/Nodes.md) -- `warp`: The warp object to unpack (WARPPIPE type) -- optional, returns None values if not connected +## Example workflow -**Outputs** (in order): - -- `model_1`, `model_2`: MODEL objects -- `image`: IMAGE -- `mask`: MASK -- `clip`: CLIP -- `clip_vision`: CLIP_VISION -- `vae`: VAE -- `conditioning_positive`, `conditioning_negative`: CONDITIONING -- `latent`: LATENT -- `prompt_positive`, `prompt_negative`: STRING -- `batch_size`, `seed`, `steps_1`, `steps_2`, `steps_3`: INT -- `cfg`: FLOAT -- `sampler_name`: Sampler enum -- `scheduler`: Scheduler enum -- `width`, `height`: INT - -### Warp Provider Node - -**Category**: `Custom/WarpPipe Nodes` | **Display Name**: 🌀 Warp Provider - -Generates latents and parameters with convenient preset dimensions. Features 30+ resolution presets covering all major aspect ratios (9:16, 3:4, 2:3, 4:5, 1:1, 5:4, 3:2, 4:3, 16:9), each labeled with use case, aspect ratio, resolution, and megapixel count. - -**Inputs** (all optional): - -- `batch_size`: Number of images (default: 1, range: 1-64) -- `seed`: Random seed (default: 0) -- `steps_1`: Primary sampling steps (default: 20, range: 1-200) -- `steps_2`, `steps_3`: Additional step counts for multi-pass workflows (default: 0) -- `cfg`: CFG scale (default: 7.0, range: 0.0-50.0) -- `sampler_name`: Sampler to use (default: "euler") -- `scheduler`: Scheduler to use (default: "normal") -- `size_preset`: Resolution preset dropdown (30+ options, default: Square SDXL native 1024x1024) -- `custom_width`, `custom_height`: Custom dimensions when "Custom" preset is selected (step: 8) - -**Outputs**: - -- `latent`: Generated empty latent at selected resolution -- `batch_size`, `seed`, `steps_1`, `steps_2`, `steps_3`, `width`, `height`: INT -- `cfg`: FLOAT -- `sampler_name`: Sampler enum -- `scheduler`: Scheduler enum - -### FD Scheduler Adapter Node - -**Category**: `Custom/WarpPipe Nodes` | **Display Name**: 🌀 Scheduler Adapter for FaceDetailer - -Converts KSampler schedulers to FaceDetailer-compatible schedulers. Exotic schedulers (AYS SDXL, GITS, OSS variants, etc.) are automatically mapped to their closest compatible equivalent. - -**Input**: - -- `scheduler`: KSampler scheduler type (required) - -**Output**: - -- `scheduler`: FaceDetailer-compatible scheduler - -### Dead End Node - -**Category**: `Custom/WarpPipe Nodes` | **Display Name**: 🚫 Dead End - -A true dead end node that accepts any input type but produces no output. Does not trigger execution. - -**Input**: - -- `input`: Any data type (wildcard) -- optional - -**Output**: None - -**Use Cases**: - -- **Debugging**: Temporarily disconnect a workflow branch without deleting nodes -- **Workflow organization**: Cleanly terminate unused output paths -- **Testing**: Isolate parts of complex workflows during development - -## Usage Examples - -### Basic Usage - -1. Add a **Warp** node to your workflow -2. Connect your models, conditioning, and other data to the Warp node inputs -3. Connect the Warp output to an **Unwarp** node -4. Use the Unwarp outputs in the rest of your workflow - -### Using Warp Provider - -1. Add a **Warp Provider** node to generate latents and parameters -2. Choose from 30+ presets organized by aspect ratio, or use custom sizes -3. Connect the outputs directly to your sampling nodes or bundle them with a **Warp** node - -### Chaining Warps - -``` -[Model] --> [Warp A] --> [Some Processing] --> [Warp B] --> [Unwarp] --> [KSampler] - ^ ^ - [Additional Data] [More Data] -``` - -Warp B copies all data from Warp A and adds additional data, creating a cumulative bundle. - -### FaceDetailer Compatibility - -``` -[KSampler Scheduler] --> [FD Scheduler Adapter] --> [FaceDetailer Node] -``` - -### Debugging with Dead End - -``` -[Model] --> [KSampler] --> [Dead End] - \-> [VAE Decode] --> [Save Image] -``` - -Use the Dead End node to temporarily disable a branch while keeping the rest active. - -### Example Workflow - -Here's a real workflow using WarpPipe with multiple model configurations: +Two model configurations — Krea 2 and Z-Image Turbo — each with its own Warp, +switched into one shared workflow:

- WarpPipe Example Workflow + The example workflow: two model groups feeding one shared pipeline

-Download the [example workflow JSON](examples/workflow_example.json) and drag it into ComfyUI to try it out. +It produced this, and carries the workflow inside it — drag the image into +ComfyUI to open it: -## Technical Details +

+ A pixel-art warp pipe, generated by the example workflow +

-- **Data Types**: Custom `WARPPIPE` type for bundled data transfer between Warp and Unwarp nodes -- **Data Storage**: Global storage with unique UUIDs per warp instance, thread-safe with locking -- **Memory Management**: Automatic time-based cleanup (1-hour expiry) with a 256-entry hard cap -- **Scheduler Compatibility**: Automatic coercion of exotic schedulers to safe, compatible values -- **RES4LYF Compatibility**: Registers the `beta57` and `bong_tangent` schedulers globally so other node packs (like FaceDetailer) accept them even if RES4LYF hasn't loaded yet -- **V3 Combo Compatibility**: Uses ComfyUI's native combo-output schema so sampler and scheduler links validate without modifying ComfyUI's global prompt validator -- **Preset Dimensions**: 30+ SDXL-optimized resolution presets across all major aspect ratios -- **Logging**: Uses Python `logging` module (set to DEBUG level to see internal details) +Save Image (Civitai) wrote this alongside it, which is what a site reads: -### V3 Schema Support (Experimental) - -WarpPipe includes optional ComfyUI V3 schema node implementations. Legacy registration is the default because the V3 API is still unstable upstream. To try the V3 nodes, set the environment variable `WARPPIPE_ENABLE_V3=1` before starting ComfyUI. Saved workflows keep working either way — both paths register the same node IDs. - -## Troubleshooting - -### Node Not Appearing - -- Ensure you've restarted ComfyUI after installation -- Check the console for any error messages during startup -- Verify all files are in the correct directory - -### Migrating from v2.x - -v3.0.0 renamed the internal data type from `CONTROL` to `WARPPIPE`. If you load an old workflow, you may need to reconnect the Warp-to-Unwarp links once. All node names and functionality remain the same. - -## Contributing - -Contributions are welcome! Before submitting a pull request, run: - -```bash -python -m ruff check . --exclude .agents --exclude .claude -python -m ruff format --check . --exclude .agents --exclude .claude -python -m pytest -q +``` +Steps: 8, Sampler: euler, Schedule type: simple, CFG scale: 1.0, Seed: 44, +Size: 1024x1536, Model hash: 8e4eeda70d, Model: krea2_turbo_int8_convrot, +Hashes: {"model":"8e4eeda70d"}, Version: ComfyUI-WarpPipe ``` -## License +Or download the [workflow JSON](examples/workflow_example.json). -MIT License - see LICENSE file for details +## Documentation + +| | | +| --- | --- | +| [Home](wiki/Home.md) | Start here | +| [Usage](wiki/Usage.md) | Prompts, bundling, saving for Civitai | +| [Nodes](wiki/Nodes.md) | Every input and output | +| [API](wiki/API.md) | The HTTP routes the frontend uses | +| [Architecture](wiki/Architecture.md) | How the pieces fit, and why | +| [Development](wiki/Development.md) | Tests, lint, releasing | +| [Troubleshooting](wiki/Troubleshooting.md) | When something does not appear | + +Also published as the [GitHub wiki](https://github.com/gregory-richard/ComfyUI-WarpPipe/wiki). + +## Credits + +UI screenshots are taken from a real ComfyUI against a small demo LoRA folder; +those names are illustrative and that preview art is generated stand-in, not any +creator's work. + +Developed with AI assistance (Claude Opus 5). + +Licensed under the [MIT License](LICENSE). diff --git a/assets/docs/inline-completion.webp b/assets/docs/inline-completion.webp new file mode 100644 index 0000000..d396c32 Binary files /dev/null and b/assets/docs/inline-completion.webp differ diff --git a/assets/docs/lora-browser.webp b/assets/docs/lora-browser.webp new file mode 100644 index 0000000..bcfb131 Binary files /dev/null and b/assets/docs/lora-browser.webp differ diff --git a/assets/docs/prompt-node.webp b/assets/docs/prompt-node.webp new file mode 100644 index 0000000..d7c8aa2 Binary files /dev/null and b/assets/docs/prompt-node.webp differ diff --git a/assets/docs/save-image-civitai.webp b/assets/docs/save-image-civitai.webp new file mode 100644 index 0000000..46bc93c Binary files /dev/null and b/assets/docs/save-image-civitai.webp differ diff --git a/assets/docs/warp-provider.webp b/assets/docs/warp-provider.webp new file mode 100644 index 0000000..b890a59 Binary files /dev/null and b/assets/docs/warp-provider.webp differ diff --git a/assets/docs/warp-unwarp.webp b/assets/docs/warp-unwarp.webp new file mode 100644 index 0000000..71f6d38 Binary files /dev/null and b/assets/docs/warp-unwarp.webp differ diff --git a/assets/registry/banner.png b/assets/registry/banner.png new file mode 100644 index 0000000..68020d6 Binary files /dev/null and b/assets/registry/banner.png differ diff --git a/assets/registry/icon.png b/assets/registry/icon.png new file mode 100644 index 0000000..2df0bf8 Binary files /dev/null and b/assets/registry/icon.png differ diff --git a/banner.png b/assets/source/banner-original.png similarity index 100% rename from banner.png rename to assets/source/banner-original.png diff --git a/icon.png b/assets/source/icon-original.png similarity index 100% rename from icon.png rename to assets/source/icon-original.png diff --git a/examples/workflow_example.json b/examples/workflow_example.json index 2725e12..31f1ac4 100644 --- a/examples/workflow_example.json +++ b/examples/workflow_example.json @@ -1 +1 @@ -{"id":"1ac6ef5d-03c5-4ebf-a1b6-2b01864cd7bc","revision":0,"last_node_id":130,"last_link_id":174,"nodes":[{"id":62,"type":"Bookmark (rgthree)","pos":[-630,-4300],"size":[210,14],"flags":{"collapsed":true},"order":0,"mode":0,"inputs":[],"outputs":[],"title":"🔖 (1) SDXL","properties":{"ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["1",1],"color":"#222","bgcolor":"#000"},{"id":63,"type":"GetNode","pos":[-630,-4220],"size":[210,34],"flags":{"collapsed":true},"order":1,"mode":0,"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[98]}],"title":"Get_img - filtered - sdxl","properties":{"ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["img - filtered - sdxl"],"color":"#2a363b","bgcolor":"#3f5159"},{"id":64,"type":"GetNode","pos":[-630,-4180],"size":[210,34],"flags":{"collapsed":true},"order":2,"mode":0,"inputs":[],"outputs":[{"name":"*","type":"*","slot_index":0,"links":[97]}],"title":"Get_img - final - sdxl","properties":{"ue_properties":{"version":"7.0.1","widget_ue_connectable":{}}},"widgets_values":["img - final - sdxl"],"color":"#2a363b","bgcolor":"#3f5159"},{"id":65,"type":"Image Comparer (rgthree)","pos":[-630,-4260],"size":[470,565],"flags":{"collapsed":false},"order":17,"mode":0,"inputs":[{"dir":3,"name":"image_a","type":"IMAGE","link":97},{"dir":3,"name":"image_b","type":"IMAGE","link":98}],"outputs":[],"title":"Image Comparer","properties":{"comparer_mode":"Slide","cnr_id":"rgthree-comfy","ver":"32142fe476878a354dda6e2d4b5ea98960de3ced","connections_layout":["Left","Right"],"ue_properties":{"version":"7.0.1","widget_ue_connectable":{}}},"widgets_values":[[{"name":"A","selected":true,"url":"/api/view?filename=rgthree.compare._temp_yulqy_00001_.png&type=temp&subfolder=&rand=0.4220956487273495"},{"name":"B","selected":true,"url":"/api/view?filename=rgthree.compare._temp_yulqy_00002_.png&type=temp&subfolder=&rand=0.8338963173091618"}]],"color":"#222","bgcolor":"#000"},{"id":66,"type":"SetNode","pos":[1420,-4210],"size":[210,34],"flags":{"collapsed":true},"order":26,"mode":0,"inputs":[{"name":"WARPPIPE","type":"WARPPIPE","link":99}],"outputs":[{"name":"*","type":"*","links":null}],"title":"Set_warp - sdxl","properties":{"previousName":"","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["warp - sdxl"]},{"id":68,"type":"Warp Provider","pos":[1120,-4260],"size":[280,565],"flags":{"collapsed":false},"order":3,"mode":0,"inputs":[{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","widget":{"name":"batch_size"},"link":null},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","widget":{"name":"steps_1"},"link":null},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","widget":{"name":"steps_2"},"link":null},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","widget":{"name":"steps_3"},"link":null},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"size_preset","name":"size_preset","shape":7,"type":"COMBO","widget":{"name":"size_preset"},"link":null},{"localized_name":"custom_width","name":"custom_width","shape":7,"type":"INT","widget":{"name":"custom_width"},"link":null},{"localized_name":"custom_height","name":"custom_height","shape":7,"type":"INT","widget":{"name":"custom_height"},"link":null}],"outputs":[{"localized_name":"latent","name":"latent","type":"LATENT","links":[106]},{"localized_name":"batch_size","name":"batch_size","type":"INT","links":[107]},{"localized_name":"seed","name":"seed","type":"INT","links":[108]},{"localized_name":"steps_1","name":"steps_1","type":"INT","links":[109]},{"localized_name":"steps_2","name":"steps_2","type":"INT","links":[110]},{"localized_name":"steps_3","name":"steps_3","type":"INT","links":[111]},{"localized_name":"cfg","name":"cfg","type":"FLOAT","links":[112]},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","links":[113]},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","links":[114]},{"localized_name":"width","name":"width","type":"INT","links":[115]},{"localized_name":"height","name":"height","type":"INT","links":[116]}],"properties":{"Node name for S&R":"Warp Provider","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"80e0443476fcdcebfe03eb0c6923b2e1c5f9d674","ue_properties":{"widget_ue_connectable":{"batch_size":true,"seed":true,"steps_1":true,"steps_2":true,"steps_3":true,"cfg":true,"sampler_name":true,"scheduler":true,"size_preset":true,"custom_width":true,"custom_height":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[2,2211,"fixed",8,8,8,1,"lcm","exponential","Photo portrait (high-res) | 2:3 | 1024 × 1536 | 1.57 MP",1024,1024],"color":"#323","bgcolor":"#535"},{"id":69,"type":"Warp","pos":[1420,-4260],"size":[200,560],"flags":{"collapsed":false},"order":23,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":null},{"localized_name":"prompt_positive","name":"prompt_positive","shape":7,"type":"STRING","link":100},{"localized_name":"prompt_negative","name":"prompt_negative","shape":7,"type":"STRING","link":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","shape":7,"type":"CONDITIONING","link":101},{"localized_name":"conditioning_negative","name":"conditioning_negative","shape":7,"type":"CONDITIONING","link":102},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null},{"localized_name":"model_1","name":"model_1","shape":7,"type":"MODEL","link":103},{"localized_name":"model_2","name":"model_2","shape":7,"type":"MODEL","link":null},{"localized_name":"clip","name":"clip","shape":7,"type":"CLIP","link":104},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":null},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":105},{"localized_name":"latent","name":"latent","shape":7,"type":"LATENT","link":106},{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","link":107},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","link":108},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","link":109},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","link":110},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","link":111},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","link":112},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","link":113},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","link":114},{"localized_name":"width","name":"width","shape":7,"type":"INT","link":115},{"localized_name":"height","name":"height","shape":7,"type":"INT","link":116}],"outputs":[{"localized_name":"warp","name":"warp","type":"WARPPIPE","links":[99]}],"properties":{"Node name for S&R":"Warp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"874bdef2c5b8d55a8bb980e9e95b0d2f21ccac57","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":[],"color":"#222","bgcolor":"#000"},{"id":67,"type":"cb05e60a-765d-4ce7-aba7-4f796308ac55","pos":[-140,-4260],"size":[750,565],"flags":{},"order":4,"mode":0,"inputs":[{"name":"ckpt_name","type":"COMBO","widget":{"name":"ckpt_name"},"link":null},{"name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null}],"outputs":[{"name":"MODEL","type":"MODEL","links":[117]},{"name":"CLIP","type":"CLIP","links":[118]},{"label":"CONDITIONING POS","name":"CONDITIONING","type":"CONDITIONING","links":[101]},{"label":"CONDITIONING NEG","name":"CONDITIONING_1","type":"CONDITIONING","links":[102]},{"name":"VAE","type":"VAE","links":[105]},{"label":"PROMPT POS","name":"prompt","type":"STRING","links":[100]}],"properties":{"proxyWidgets":[["-1","ckpt_name"],["-1","prompt"]],"cnr_id":"comfy-core","ver":"0.11.1","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":["sdxl\\big love - photo5 (sdxl).safetensors","A photo-realistic amateur image of a stunning 40-year-old woman with shoulder-length wavy honey-blonde hair pulled up in a messy bun, green eyes. She has a curvy yet fit body, toned waist, wide hips, wearing a fitted white tank top and grey yoga pants. She is standing in a dim, messy teenage boy's bedroom, holding up a black lace bra she just found. She's inspecting and looking at the bra with a disappointed and confused expression on her face. The room behind her has an unmade bed, a PC desk setup, clothes scattered around, decoration and posters on the wall. Afternoon light filters through drawn curtains, casting warm amber tones across the scene."],"color":"#323","bgcolor":"#535"},{"id":70,"type":"Power Lora Loader (rgthree)","pos":[620,-4260],"size":[490,560],"flags":{},"order":18,"mode":0,"inputs":[{"dir":3,"name":"model","type":"MODEL","link":117},{"dir":3,"name":"clip","type":"CLIP","link":118}],"outputs":[{"dir":4,"name":"MODEL","shape":3,"type":"MODEL","links":[103]},{"dir":4,"name":"CLIP","shape":3,"type":"CLIP","links":[104]}],"properties":{"Show Strengths":"Single Strength"},"widgets_values":[{},{"type":"PowerLoraLoaderHeaderWidget"},{"on":true,"lora":"sdxl\\tianweiy - dmd2 4step fp16 (sdxl).safetensors","strength":1,"strengthTwo":null},{},""],"color":"#323","bgcolor":"#535"},{"id":60,"type":"Power Lora Loader (rgthree)","pos":[630,-3490],"size":[460,560],"flags":{},"order":21,"mode":0,"inputs":[{"dir":3,"name":"model","type":"MODEL","link":95},{"dir":3,"name":"clip","type":"CLIP","link":96}],"outputs":[{"dir":4,"name":"MODEL","shape":3,"type":"MODEL","links":[79]},{"dir":4,"name":"CLIP","shape":3,"type":"CLIP","links":[80]}],"properties":{"Show Strengths":"Single Strength"},"widgets_values":[{},{"type":"PowerLoraLoaderHeaderWidget"},{},""],"color":"#323","bgcolor":"#535"},{"id":53,"type":"SetNode","pos":[1410,-3450],"size":[210,58],"flags":{"collapsed":true},"order":28,"mode":0,"inputs":[{"name":"WARPPIPE","type":"WARPPIPE","link":75}],"outputs":[{"name":"*","type":"*","links":null}],"title":"Set_warp - z-image","properties":{"previousName":"","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["warp - z-image"]},{"id":56,"type":"Warp","pos":[1410,-3490],"size":[197.876953125,565],"flags":{"collapsed":false},"order":25,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":null},{"localized_name":"prompt_positive","name":"prompt_positive","shape":7,"type":"STRING","link":76},{"localized_name":"prompt_negative","name":"prompt_negative","shape":7,"type":"STRING","link":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","shape":7,"type":"CONDITIONING","link":77},{"localized_name":"conditioning_negative","name":"conditioning_negative","shape":7,"type":"CONDITIONING","link":78},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null},{"localized_name":"model_1","name":"model_1","shape":7,"type":"MODEL","link":79},{"localized_name":"model_2","name":"model_2","shape":7,"type":"MODEL","link":null},{"localized_name":"clip","name":"clip","shape":7,"type":"CLIP","link":80},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":null},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":81},{"localized_name":"latent","name":"latent","shape":7,"type":"LATENT","link":82},{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","link":83},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","link":84},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","link":85},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","link":86},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","link":87},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","link":88},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","link":89},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","link":90},{"localized_name":"width","name":"width","shape":7,"type":"INT","link":91},{"localized_name":"height","name":"height","shape":7,"type":"INT","link":92}],"outputs":[{"localized_name":"warp","name":"warp","type":"WARPPIPE","links":[75]}],"properties":{"Node name for S&R":"Warp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"53c24e15434e882072104fa48fa45ddb21e69df3","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.1"}},"widgets_values":[],"color":"#222","bgcolor":"#000"},{"id":57,"type":"Bookmark (rgthree)","pos":[-630,-3530],"size":[210,50],"flags":{"collapsed":true},"order":5,"mode":0,"inputs":[],"outputs":[],"title":"🔖 (2) Z-Image Turbo","properties":{"ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["2",1],"color":"#222","bgcolor":"#000"},{"id":98,"type":"GetNode","pos":[-630,-2580],"size":[210,34],"flags":{"collapsed":true},"order":7,"mode":0,"inputs":[],"outputs":[{"name":"WARPPIPE","type":"WARPPIPE","links":[166]}],"title":"Get_warp - sdxl","properties":{},"widgets_values":["warp - sdxl"]},{"id":125,"type":"GetNode","pos":[470,-2600],"size":[210,34],"flags":{"collapsed":true},"order":8,"mode":0,"inputs":[],"outputs":[{"name":"INT","type":"INT","links":[163]}],"title":"Get_model switch","properties":{"ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["model switch"],"color":"#1b4669","bgcolor":"#29699c"},{"id":126,"type":"SaveImage","pos":[470,-2660],"size":[210,34],"flags":{"collapsed":true},"order":37,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":164},{"localized_name":"filename_prefix","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null}],"outputs":[],"properties":{"Node name for S&R":"SaveImage","cnr_id":"comfy-core","ver":"0.3.16","ue_properties":{"version":"7.0.1","widget_ue_connectable":{}}},"widgets_values":["%date:yy-MM-dd hh-mm-ss%"],"color":"#222","bgcolor":"#000"},{"id":95,"type":"SetNode","pos":[-630,-2620],"size":[210,50],"flags":{"collapsed":true},"order":19,"mode":0,"inputs":[{"name":"INT","type":"INT","link":133}],"outputs":[{"name":"INT","type":"INT","links":[]}],"title":"Set_model switch","properties":{"previousName":"","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["model switch"],"color":"#1b4669","bgcolor":"#29699c"},{"id":129,"type":"ImpactSwitch","pos":[-620,-2660],"size":[270,394],"flags":{"collapsed":true},"order":20,"mode":0,"inputs":[{"localized_name":"input1","name":"input1","shape":7,"type":"*","link":166},{"localized_name":"select","name":"select","type":"INT","widget":{"name":"select"},"link":167},{"localized_name":"sel_mode","name":"sel_mode","type":"BOOLEAN","widget":{"name":"sel_mode"},"link":null},{"name":"input2","type":"WARPPIPE","link":168},{"name":"input3","type":"WARPPIPE","link":null}],"outputs":[{"label":"WARPPIPE","localized_name":"selected_value","name":"selected_value","type":"*","links":[170]},{"localized_name":"selected_label","name":"selected_label","type":"STRING","links":null},{"localized_name":"selected_index","name":"selected_index","type":"INT","links":null}],"properties":{"Node name for S&R":"ImpactSwitch"},"widgets_values":[1,false]},{"id":106,"type":"GetNode","pos":[-630,-2540],"size":[210,34],"flags":{"collapsed":true},"order":9,"mode":0,"inputs":[],"outputs":[{"name":"WARPPIPE","type":"WARPPIPE","links":[168]}],"title":"Get_warp - z-image","properties":{},"widgets_values":["warp - z-image"]},{"id":84,"type":"GetNode","pos":[-400,-2660],"size":[210,58],"flags":{"collapsed":true},"order":10,"mode":0,"inputs":[],"outputs":[{"name":"INT","type":"INT","links":[172]}],"title":"Get_model switch","properties":{"ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["model switch"],"color":"#1b4669","bgcolor":"#29699c"},{"id":97,"type":"4210877b-b487-4259-a2a6-521337aa69ae","pos":[-400,-2700],"size":[270,150],"flags":{"collapsed":false},"order":24,"mode":0,"inputs":[{"name":"warp","type":"WARPPIPE","link":170},{"name":"select","type":"INT","link":172},{"name":"boolean","type":"BOOLEAN","link":null}],"outputs":[{"label":"warp","name":"selected_value","type":"*","links":[150]}],"properties":{"proxyWidgets":[],"cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[],"color":"#432","bgcolor":"#653"},{"id":113,"type":"Image Comparer (rgthree)","pos":[180,-2500],"size":[270,460],"flags":{"collapsed":false},"order":33,"mode":4,"inputs":[{"dir":3,"name":"image_a","type":"IMAGE","link":151},{"dir":3,"name":"image_b","type":"IMAGE","link":152}],"outputs":[],"title":"Image Comparer","properties":{"comparer_mode":"Slide","cnr_id":"rgthree-comfy","ver":"32142fe476878a354dda6e2d4b5ea98960de3ced","connections_layout":["Left","Right"],"ue_properties":{"version":"7.0.1","widget_ue_connectable":{}}},"widgets_values":[[{"name":"A","selected":true,"url":"/api/view?filename=rgthree.compare._temp_ifgzg_00001_.png&type=temp&subfolder=&rand=0.5713009616209365"},{"name":"B","selected":true,"url":"/api/view?filename=rgthree.compare._temp_ifgzg_00002_.png&type=temp&subfolder=&rand=0.18677132983655031"}]],"color":"#222","bgcolor":"#000"},{"id":110,"type":"32bbae29-443d-4a61-afff-dc005730b71a","pos":[-110,-2700],"size":[270,150],"flags":{"collapsed":false},"order":27,"mode":0,"inputs":[{"name":"warp","type":"WARPPIPE","link":150},{"name":"timeout","type":"INT","widget":{"name":"timeout"},"link":null},{"name":"ontimeout","type":"COMBO","widget":{"name":"ontimeout"},"link":null}],"outputs":[{"name":"warp","type":"WARPPIPE","links":[173]},{"label":"img in","name":"image","type":"IMAGE","links":null},{"label":"img out","name":"images","type":"IMAGE","links":[134,149]}],"properties":{"proxyWidgets":[["-1","timeout"],["-1","ontimeout"]],"cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[300,"send all"],"color":"#432","bgcolor":"#653"},{"id":123,"type":"SetNode","pos":[470,-2480],"size":[210,50],"flags":{"collapsed":true},"order":39,"mode":0,"inputs":[{"name":"*","type":"*","link":161}],"outputs":[{"name":"*","type":"*","links":null}],"title":"Set_img - final - sdxl","properties":{"previousName":"img - final - sdxl","ue_properties":{"widget_ue_connectable":{},"version":"7.5.2","input_ue_unconnectable":{}}},"widgets_values":["img - final - sdxl"]},{"id":119,"type":"SetNode","pos":[470,-2440],"size":[210,50],"flags":{"collapsed":true},"order":40,"mode":0,"inputs":[{"name":"IMAGE","type":"IMAGE","link":157}],"outputs":[{"name":"*","type":"*","links":null}],"title":"Set_img - final - z-image","properties":{"previousName":"img - final - z-image","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["img - final - z-image"],"color":"#2a363b","bgcolor":"#3f5159"},{"id":124,"type":"ImpactInversedSwitch","pos":[470,-2560],"size":[270,262],"flags":{"collapsed":true},"order":36,"mode":0,"inputs":[{"localized_name":"input","name":"input","type":"IMAGE","link":162},{"localized_name":"select","name":"select","type":"INT","widget":{"name":"select"},"link":163},{"localized_name":"sel_mode","name":"sel_mode","shape":7,"type":"IMAGE","widget":{"name":"sel_mode"},"link":null}],"outputs":[{"localized_name":"output1","name":"output1","type":"IMAGE","slot_index":0,"links":[161]},{"name":"output2","type":"IMAGE","slot_index":8,"links":[157]},{"name":"output3","type":"IMAGE","slot_index":9,"links":null}],"properties":{"Node name for S&R":"ImpactInversedSwitch","cnr_id":"comfyui-impact-pack","ver":"6a517ebe06fea2b74fc41b3bd089c0d7173eeced","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":[1,false],"color":"#222","bgcolor":"#000"},{"id":114,"type":"fbece873-b379-432d-943d-b99e2e92f61a","pos":[180,-2700],"size":[270,150],"flags":{"collapsed":false},"order":29,"mode":4,"inputs":[{"name":"warp","type":"WARPPIPE","link":173},{"name":"upscale_by","type":"FLOAT","widget":{"name":"upscale_by"},"link":null},{"name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null}],"outputs":[{"name":"warp","type":"WARPPIPE","links":[174]},{"label":"img in","name":"image","type":"IMAGE","links":[152]},{"label":"img out","name":"IMAGE","type":"IMAGE","links":[151]}],"properties":{"proxyWidgets":[["-1","upscale_by"],["-1","denoise"]],"cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[1.5,0.1],"color":"#432","bgcolor":"#653"},{"id":127,"type":"Unwarp","pos":[470,-2520],"size":[197.876953125,446.4376027592439],"flags":{"collapsed":true},"order":32,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":174}],"outputs":[{"localized_name":"model_1","name":"model_1","type":"MODEL","links":null},{"localized_name":"model_2","name":"model_2","type":"MODEL","links":null},{"localized_name":"image","name":"image","type":"IMAGE","links":[162,164,165]},{"localized_name":"mask","name":"mask","type":"MASK","links":null},{"localized_name":"clip","name":"clip","type":"CLIP","links":null},{"localized_name":"clip_vision","name":"clip_vision","type":"CLIP_VISION","links":null},{"localized_name":"vae","name":"vae","type":"VAE","links":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","type":"CONDITIONING","links":null},{"localized_name":"conditioning_negative","name":"conditioning_negative","type":"CONDITIONING","links":null},{"localized_name":"latent","name":"latent","type":"LATENT","links":null},{"localized_name":"prompt_positive","name":"prompt_positive","type":"STRING","links":null},{"localized_name":"prompt_negative","name":"prompt_negative","type":"STRING","links":null},{"localized_name":"batch_size","name":"batch_size","type":"INT","links":null},{"localized_name":"seed","name":"seed","type":"INT","links":null},{"localized_name":"steps_1","name":"steps_1","type":"INT","links":null},{"localized_name":"steps_2","name":"steps_2","type":"INT","links":null},{"localized_name":"steps_3","name":"steps_3","type":"INT","links":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","links":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","links":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","links":null},{"localized_name":"width","name":"width","type":"INT","links":null},{"localized_name":"height","name":"height","type":"INT","links":null}],"properties":{"Node name for S&R":"Unwarp"},"widgets_values":[],"color":"#222","bgcolor":"#000"},{"id":128,"type":"PreviewImage","pos":[470,-2700],"size":[370,660],"flags":{"collapsed":false},"order":38,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":165}],"outputs":[],"title":"Final image","properties":{"Node name for S&R":"PreviewImage","cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[],"color":"#222","bgcolor":"#000"},{"id":111,"type":"INTConstant","pos":[-630,-2700],"size":[210,660],"flags":{"collapsed":false},"order":11,"mode":0,"inputs":[{"localized_name":"value","name":"value","type":"INT","widget":{"name":"value"},"link":null}],"outputs":[{"localized_name":"value","name":"value","type":"INT","links":[133,140,167]}],"title":"Model Selector","properties":{"Node name for S&R":"INTConstant","cnr_id":"comfyui-kjnodes","ver":"1.1.0","ue_properties":{"version":"7.0.1","widget_ue_connectable":{},"input_ue_unconnectable":{}}},"widgets_values":[2],"color":"#323","bgcolor":"#535"},{"id":130,"type":"Bookmark (rgthree)","pos":[-630,-2740],"size":[210,14],"flags":{"collapsed":true},"order":12,"mode":0,"inputs":[],"outputs":[],"title":"🔖 (0) Workflow","properties":{"ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["0",1],"color":"#222","bgcolor":"#000"},{"id":59,"type":"Warp Provider","pos":[1110,-3490],"size":[280,565],"flags":{"collapsed":false},"order":13,"mode":0,"inputs":[{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","widget":{"name":"batch_size"},"link":null},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","widget":{"name":"steps_1"},"link":null},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","widget":{"name":"steps_2"},"link":null},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","widget":{"name":"steps_3"},"link":null},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"size_preset","name":"size_preset","shape":7,"type":"COMBO","widget":{"name":"size_preset"},"link":null},{"localized_name":"custom_width","name":"custom_width","shape":7,"type":"INT","widget":{"name":"custom_width"},"link":null},{"localized_name":"custom_height","name":"custom_height","shape":7,"type":"INT","widget":{"name":"custom_height"},"link":null}],"outputs":[{"localized_name":"latent","name":"latent","type":"LATENT","links":[82]},{"localized_name":"batch_size","name":"batch_size","type":"INT","links":[83]},{"localized_name":"seed","name":"seed","type":"INT","links":[84]},{"localized_name":"steps_1","name":"steps_1","type":"INT","links":[85]},{"localized_name":"steps_2","name":"steps_2","type":"INT","links":[86]},{"localized_name":"steps_3","name":"steps_3","type":"INT","links":[87]},{"localized_name":"cfg","name":"cfg","type":"FLOAT","links":[88]},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","links":[89]},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","links":[90]},{"localized_name":"width","name":"width","type":"INT","links":[91]},{"localized_name":"height","name":"height","type":"INT","links":[92]}],"properties":{"Node name for S&R":"Warp Provider","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"80e0443476fcdcebfe03eb0c6923b2e1c5f9d674","ue_properties":{"widget_ue_connectable":{"batch_size":true,"seed":true,"steps_1":true,"steps_2":true,"steps_3":true,"cfg":true,"sampler_name":true,"scheduler":true,"size_preset":true,"custom_width":true,"custom_height":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[4,294736003688100,"randomize",8,8,8,1,"dpmpp_sde","beta","Landscape (classic) | 4:3 | 1024 × 768 | 0.79 MP",800,400],"color":"#323","bgcolor":"#535"},{"id":61,"type":"612948cc-c960-4c76-a913-d9fd7f1e731c","pos":[-140,-3490],"size":[750,565],"flags":{},"order":14,"mode":0,"inputs":[{"name":"unet_name","type":"COMBO","widget":{"name":"unet_name"},"link":null},{"label":"prompt pos","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null}],"outputs":[{"name":"MODEL","type":"MODEL","links":[95]},{"name":"CLIP","type":"CLIP","links":[96]},{"label":"CONDITIONING POS","name":"CONDITIONING","type":"CONDITIONING","links":[77]},{"label":"CONDITIONING NEG","name":"CONDITIONING_1","type":"CONDITIONING","links":[78]},{"label":"PROMPT POS","name":"prompt","type":"STRING","links":[76]},{"name":"VAE","type":"VAE","links":[81]}],"properties":{"proxyWidgets":[["-1","unet_name"],["-1","prompt"]],"cnr_id":"comfy-core","ver":"0.11.1","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":["zit\\z_image_turbo_bf16.safetensors","An 800x400 pixel banner in retro 8-bit pixel art style (like classic NES Super Mario Bros). A green warp pipe from Super Mario centered in the composition, viewed from a slight top-down 3/4 angle showing the dark circular opening at the top. The pipe is the iconic bright green (#30b030) with darker green shading on the sides and a wide cylindrical rim at the top, just like in the original NES games. Colorful pixel-art data particles (blue, orange, purple small squares) float into the pipe opening, suggesting data being warped/bundled. Solid dark navy/charcoal background (#1a1a2e). Clean pixel art aesthetic with visible blocky pixels, no anti-aliasing, crisp edges. No text, no characters, no ground tiles. Just the pipe and data particles on dark background. Simple, iconic, readable at small sizes."],"color":"#323","bgcolor":"#535"},{"id":54,"type":"GetNode","pos":[-630,-3450],"size":[223.7935546875,50],"flags":{"collapsed":true},"order":15,"mode":0,"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[94]}],"title":"Get_img - filtered - z-image","properties":{"ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["img - filtered - z-image"],"color":"#2a363b","bgcolor":"#3f5159"},{"id":55,"type":"GetNode","pos":[-630,-3410],"size":[210,58],"flags":{"collapsed":true},"order":16,"mode":0,"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","slot_index":0,"links":[93]}],"title":"Get_img - final - z-image","properties":{"ue_properties":{"version":"7.0.1","widget_ue_connectable":{}}},"widgets_values":["img - final - z-image"],"color":"#2a363b","bgcolor":"#3f5159"},{"id":93,"type":"GetNode","pos":[-110,-2460],"size":[210,50],"flags":{"collapsed":true},"order":6,"mode":0,"inputs":[],"outputs":[{"name":"INT","type":"INT","links":[135]}],"title":"Get_model switch","properties":{"ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["model switch"],"color":"#1b4669","bgcolor":"#29699c"},{"id":88,"type":"SetNode","pos":[-110,-2340],"size":[222.3306640625,60],"flags":{"collapsed":false},"order":35,"mode":0,"inputs":[{"name":"IMAGE","type":"IMAGE","link":128}],"outputs":[{"name":"*","type":"*","links":null}],"title":"Set_img - filtered - z-image","properties":{"previousName":"","ue_properties":{"widget_ue_connectable":{},"version":"7.5.1","input_ue_unconnectable":{}}},"widgets_values":["img - filtered - z-image"],"color":"#2a363b","bgcolor":"#3f5159"},{"id":89,"type":"SetNode","pos":[-110,-2380],"size":[210,58],"flags":{"collapsed":true},"order":34,"mode":0,"inputs":[{"name":"*","type":"*","link":129}],"outputs":[{"name":"*","type":"*","links":null}],"title":"Set_img - filtered - sdxl","properties":{"previousName":"","ue_properties":{"widget_ue_connectable":{},"version":"7.5.2","input_ue_unconnectable":{}}},"widgets_values":["img - filtered - sdxl"]},{"id":96,"type":"ImpactInversedSwitch","pos":[-110,-2420],"size":[270,262],"flags":{"collapsed":true},"order":30,"mode":0,"inputs":[{"localized_name":"input","name":"input","type":"IMAGE","link":134},{"localized_name":"select","name":"select","type":"INT","widget":{"name":"select"},"link":135},{"localized_name":"sel_mode","name":"sel_mode","shape":7,"type":"IMAGE","widget":{"name":"sel_mode"},"link":null}],"outputs":[{"localized_name":"output1","name":"output1","type":"IMAGE","slot_index":0,"links":[129]},{"name":"output2","type":"IMAGE","slot_index":8,"links":[128]},{"name":"output3","type":"IMAGE","slot_index":9,"links":null}],"properties":{"Node name for S&R":"ImpactInversedSwitch","cnr_id":"comfyui-impact-pack","ver":"6a517ebe06fea2b74fc41b3bd089c0d7173eeced","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":[1,false],"color":"#222","bgcolor":"#000"},{"id":109,"type":"PreviewImage","pos":[-110,-2500],"size":[270,460],"flags":{"collapsed":false},"order":31,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":149}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage","cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[],"color":"#222","bgcolor":"#000"},{"id":58,"type":"Image Comparer (rgthree)","pos":[-630,-3490],"size":[470,565],"flags":{"collapsed":false},"order":22,"mode":0,"inputs":[{"dir":3,"name":"image_a","type":"IMAGE","link":93},{"dir":3,"name":"image_b","type":"IMAGE","link":94}],"outputs":[],"title":"Image Comparer","properties":{"comparer_mode":"Slide","cnr_id":"rgthree-comfy","ver":"32142fe476878a354dda6e2d4b5ea98960de3ced","ue_properties":{"version":"7.0.1","widget_ue_connectable":{},"input_ue_unconnectable":{}},"connections_layout":["Left","Right"]},"widgets_values":[[{"name":"A1","selected":true,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00003_.png&type=temp&subfolder=&rand=0.1814448052641483"},{"name":"A2","selected":false,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00004_.png&type=temp&subfolder=&rand=0.3334709429731997"},{"name":"A3","selected":false,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00005_.png&type=temp&subfolder=&rand=0.9675423424814653"},{"name":"A4","selected":false,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00006_.png&type=temp&subfolder=&rand=0.6715708852329928"},{"name":"B1","selected":true,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00007_.png&type=temp&subfolder=&rand=0.2124339963942955"}]],"color":"#222","bgcolor":"#000"}],"links":[[75,56,0,53,0,"WARPPIPE"],[76,61,4,56,1,"STRING"],[77,61,2,56,3,"CONDITIONING"],[78,61,3,56,4,"CONDITIONING"],[79,60,0,56,7,"MODEL"],[80,60,1,56,9,"CLIP"],[81,61,5,56,11,"VAE"],[82,59,0,56,12,"LATENT"],[83,59,1,56,13,"INT"],[84,59,2,56,14,"INT"],[85,59,3,56,15,"INT"],[86,59,4,56,16,"INT"],[87,59,5,56,17,"INT"],[88,59,6,56,18,"FLOAT"],[89,59,7,56,19,"COMBO"],[90,59,8,56,20,"COMBO"],[91,59,9,56,21,"INT"],[92,59,10,56,22,"INT"],[93,55,0,58,0,"IMAGE"],[94,54,0,58,1,"IMAGE"],[95,61,0,60,0,"MODEL"],[96,61,1,60,1,"CLIP"],[97,64,0,65,0,"IMAGE"],[98,63,0,65,1,"IMAGE"],[99,69,0,66,0,"WARPPIPE"],[100,67,5,69,1,"STRING"],[101,67,2,69,3,"CONDITIONING"],[102,67,3,69,4,"CONDITIONING"],[103,70,0,69,7,"MODEL"],[104,70,1,69,9,"CLIP"],[105,67,4,69,11,"VAE"],[106,68,0,69,12,"LATENT"],[107,68,1,69,13,"INT"],[108,68,2,69,14,"INT"],[109,68,3,69,15,"INT"],[110,68,4,69,16,"INT"],[111,68,5,69,17,"INT"],[112,68,6,69,18,"FLOAT"],[113,68,7,69,19,"COMBO"],[114,68,8,69,20,"COMBO"],[115,68,9,69,21,"INT"],[116,68,10,69,22,"INT"],[117,67,0,70,0,"MODEL"],[118,67,1,70,1,"CLIP"],[128,96,1,88,0,"IMAGE"],[129,96,0,89,0,"IMAGE"],[133,111,0,95,0,"INT"],[134,110,2,96,0,"IMAGE"],[135,93,0,96,1,"INT"],[140,111,0,108,0,"INT"],[149,110,2,109,0,"IMAGE"],[150,97,0,110,0,"WARPPIPE"],[151,114,2,113,0,"IMAGE"],[152,114,1,113,1,"IMAGE"],[157,124,1,119,0,"IMAGE"],[161,124,0,123,0,"IMAGE"],[162,127,2,124,0,"IMAGE"],[163,125,0,124,1,"INT"],[164,127,2,126,0,"IMAGE"],[165,127,2,128,0,"IMAGE"],[166,98,0,129,0,"WARPPIPE"],[167,111,0,129,1,"INT"],[168,106,0,129,3,"WARPPIPE"],[170,129,0,97,0,"WARPPIPE"],[172,84,0,97,1,"INT"],[173,110,0,114,0,"WARPPIPE"],[174,114,0,127,0,"WARPPIPE"]],"groups":[{"id":2,"title":"Z-Image Turbo","bounding":[-660,-3620,2320,760],"color":"#444","font_size":24,"flags":{}},{"id":3,"title":"SDXL","bounding":[-660,-4390,2320,760],"color":"#444","font_size":24,"flags":{}},{"id":4,"title":"Workflow","bounding":[-660,-2850,2310,890],"color":"#444","font_size":24,"flags":{}}],"definitions":{"subgraphs":[{"id":"612948cc-c960-4c76-a913-d9fd7f1e731c","version":1,"state":{"lastGroupId":35,"lastNodeId":3992,"lastLinkId":10282,"lastRerouteId":0},"revision":0,"config":{},"name":"Models and Prompt","inputNode":{"id":-10,"bounding":[-1600,-8740,120,80]},"outputNode":{"id":-20,"bounding":[-280,-8670,157.849609375,160]},"inputs":[{"id":"35d8d273-6817-4496-b0cb-9ca5ff6e728f","name":"unet_name","type":"COMBO","linkIds":[10273],"pos":[-1500,-8720]},{"id":"f34deb71-647a-42ff-9bd7-9c104171da47","name":"prompt","type":"STRING","linkIds":[10282],"label":"prompt pos","pos":[-1500,-8700]}],"outputs":[{"id":"7e291c28-8f55-49dc-9b89-2b895ac0ee29","name":"MODEL","type":"MODEL","linkIds":[10276],"pos":[-260,-8650]},{"id":"9d6d548e-fa24-4039-990b-b0ef41b6bf2b","name":"CLIP","type":"CLIP","linkIds":[10277],"pos":[-260,-8630]},{"id":"c6e8a8fb-7df9-4b8b-8f51-cb01d45feb14","name":"CONDITIONING","type":"CONDITIONING","linkIds":[10278],"label":"CONDITIONING POS","pos":[-260,-8610]},{"id":"5660e4ef-8006-4ee5-8c7d-1ed24cbb1d8c","name":"CONDITIONING_1","type":"CONDITIONING","linkIds":[10279],"label":"CONDITIONING NEG","pos":[-260,-8590]},{"id":"9d6fd925-30fa-4407-a8cb-62a3d78a8691","name":"prompt","type":"STRING","linkIds":[10280],"label":"PROMPT POS","pos":[-260,-8570]},{"id":"709a45c3-383c-4fa9-b727-17dc441cda5e","name":"VAE","type":"VAE","linkIds":[10281],"pos":[-260,-8550]}],"widgets":[],"nodes":[{"id":3992,"type":"UNETLoader","pos":[-1340,-8760],"size":[410,82],"flags":{},"order":7,"mode":0,"inputs":[{"localized_name":"unet_name","name":"unet_name","type":"COMBO","widget":{"name":"unet_name"},"link":10273},{"localized_name":"weight_dtype","name":"weight_dtype","type":"COMBO","widget":{"name":"weight_dtype"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[10270]}],"properties":{"Node name for S&R":"UNETLoader","cnr_id":"comfy-core","ver":"0.5.1","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":["zit\\z_image_turbo_bf16.safetensors","default"]},{"id":3991,"type":"CLIPLoader","pos":[-1330,-8550],"size":[270,110],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"clip_name","name":"clip_name","type":"COMBO","widget":{"name":"clip_name"},"link":null},{"localized_name":"type","name":"type","type":"COMBO","widget":{"name":"type"},"link":null},{"localized_name":"device","name":"device","shape":7,"type":"COMBO","widget":{"name":"device"},"link":null}],"outputs":[{"localized_name":"CLIP","name":"CLIP","type":"CLIP","links":[10274]}],"properties":{"Node name for S&R":"CLIPLoader","cnr_id":"comfy-core","ver":"0.3.75","ue_properties":{"widget_ue_connectable":{},"version":"7.5.1","input_ue_unconnectable":{}}},"widgets_values":["qwen_3_4b.safetensors","lumina2","default"],"color":"#000000","bgcolor":"#000000"},{"id":3905,"type":"CLIPSetLastLayer","pos":[-1030,-8550],"size":[270,58],"flags":{"collapsed":false},"order":2,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":10274},{"localized_name":"stop_at_clip_layer","name":"stop_at_clip_layer","type":"INT","widget":{"name":"stop_at_clip_layer"},"link":null}],"outputs":[{"localized_name":"CLIP","name":"CLIP","type":"CLIP","links":[10275,10277]}],"properties":{"Node name for S&R":"CLIPSetLastLayer","cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{"stop_at_clip_layer":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[-2],"color":"#323","bgcolor":"#535"},{"id":3904,"type":"CLIPTextEncode","pos":[-670,-8430],"size":[220,90],"flags":{"collapsed":true},"order":3,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":10275},{"localized_name":"text","name":"text","type":"STRING","widget":{"name":"text"},"link":10023}],"outputs":[{"localized_name":"CONDITIONING","name":"CONDITIONING","type":"CONDITIONING","links":[10143,10278]}],"properties":{"Node name for S&R":"CLIPTextEncode","cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{"text":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[""],"color":"#232","bgcolor":"#353"},{"id":3973,"type":"ConditioningZeroOut","pos":[-670,-8390],"size":[204.134765625,26],"flags":{"collapsed":true},"order":6,"mode":0,"inputs":[{"localized_name":"conditioning","name":"conditioning","type":"CONDITIONING","link":10143}],"outputs":[{"localized_name":"CONDITIONING","name":"CONDITIONING","type":"CONDITIONING","links":[10279]}],"properties":{"Node name for S&R":"ConditioningZeroOut","cnr_id":"comfy-core","ver":"0.10.0","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":[],"color":"#322","bgcolor":"#533"},{"id":3914,"type":"CR Prompt Text","pos":[-1170,-8340],"size":[460,330],"flags":{"collapsed":false},"order":4,"mode":0,"inputs":[{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":10282}],"outputs":[{"localized_name":"prompt","name":"prompt","type":"STRING","links":[10023,10280]},{"localized_name":"show_help","name":"show_help","type":"STRING","links":null}],"title":"Prompt Positive","properties":{"Node name for S&R":"CR Prompt Text","cnr_id":"ComfyUI_Comfyroll_CustomNodes","ver":"d78b780ae43fcf8c6b7c6505e6ffb4584281ceca","ue_properties":{"widget_ue_connectable":{"prompt":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["An 800x400 pixel banner in retro 8-bit pixel art style (like classic NES Super Mario Bros). A green warp pipe from Super Mario centered in the composition, viewed from a slight top-down 3/4 angle showing the dark circular opening at the top. The pipe is the iconic bright green (#30b030) with darker green shading on the sides and a wide cylindrical rim at the top, just like in the original NES games. Colorful pixel-art data particles (blue, orange, purple small squares) float into the pipe opening, suggesting data being warped/bundled. Solid dark navy/charcoal background (#1a1a2e). Clean pixel art aesthetic with visible blocky pixels, no anti-aliasing, crisp edges. No text, no characters, no ground tiles. Just the pipe and data particles on dark background. Simple, iconic, readable at small sizes."],"color":"#232","bgcolor":"#353"},{"id":3990,"type":"VAELoader","pos":[-660,-8330],"size":[270,58],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"vae_name","name":"vae_name","type":"COMBO","widget":{"name":"vae_name"},"link":null}],"outputs":[{"localized_name":"VAE","name":"VAE","type":"VAE","links":[10281]}],"properties":{"Node name for S&R":"VAELoader","cnr_id":"comfy-core","ver":"0.3.75","ue_properties":{"widget_ue_connectable":{},"version":"7.5.1","input_ue_unconnectable":{}}},"widgets_values":["z-image-turbo.safetensors"],"color":"#000000","bgcolor":"#000000"},{"id":3925,"type":"ModelSamplingAuraFlow","pos":[-880,-8760],"size":[270,58],"flags":{"collapsed":false},"order":5,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":10270},{"localized_name":"shift","name":"shift","type":"FLOAT","widget":{"name":"shift"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[10276]}],"properties":{"Node name for S&R":"ModelSamplingAuraFlow","cnr_id":"comfy-core","ver":"0.3.75","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.1"}},"widgets_values":[5]}],"groups":[],"links":[{"id":10023,"origin_id":3914,"origin_slot":0,"target_id":3904,"target_slot":1,"type":"STRING"},{"id":10143,"origin_id":3904,"origin_slot":0,"target_id":3973,"target_slot":0,"type":"CONDITIONING"},{"id":10270,"origin_id":3992,"origin_slot":0,"target_id":3925,"target_slot":0,"type":"MODEL"},{"id":10273,"origin_id":-10,"origin_slot":0,"target_id":3992,"target_slot":0,"type":"COMBO"},{"id":10274,"origin_id":3991,"origin_slot":0,"target_id":3905,"target_slot":0,"type":"CLIP"},{"id":10275,"origin_id":3905,"origin_slot":0,"target_id":3904,"target_slot":0,"type":"CLIP"},{"id":10276,"origin_id":3925,"origin_slot":0,"target_id":-20,"target_slot":0,"type":"MODEL"},{"id":10277,"origin_id":3905,"origin_slot":0,"target_id":-20,"target_slot":1,"type":"CLIP"},{"id":10278,"origin_id":3904,"origin_slot":0,"target_id":-20,"target_slot":2,"type":"CONDITIONING"},{"id":10279,"origin_id":3973,"origin_slot":0,"target_id":-20,"target_slot":3,"type":"CONDITIONING"},{"id":10280,"origin_id":3914,"origin_slot":0,"target_id":-20,"target_slot":4,"type":"STRING"},{"id":10281,"origin_id":3990,"origin_slot":0,"target_id":-20,"target_slot":5,"type":"VAE"},{"id":10282,"origin_id":-10,"origin_slot":1,"target_id":3914,"target_slot":0,"type":"STRING"}],"extra":{"workflowRendererVersion":"LG","ue_links":[],"links_added_by_ue":[]}},{"id":"cb05e60a-765d-4ce7-aba7-4f796308ac55","version":1,"state":{"lastGroupId":35,"lastNodeId":3986,"lastLinkId":10181,"lastRerouteId":0},"revision":0,"config":{},"name":"Models and Prompt","inputNode":{"id":-10,"bounding":[-1310,-4160,120,80]},"outputNode":{"id":-20,"bounding":[-170,-4350,157.849609375,160]},"inputs":[{"id":"d94c8a02-71a8-487c-902a-074826657824","name":"ckpt_name","type":"COMBO","linkIds":[10180],"pos":[-1210,-4140]},{"id":"89f0bcc8-488d-4b9b-9c57-6894c3494b60","name":"prompt","type":"STRING","linkIds":[10181],"pos":[-1210,-4120]}],"outputs":[{"id":"0ce329bc-c808-4f78-ad1f-e8ebb1d2ed9e","name":"MODEL","type":"MODEL","linkIds":[10177],"pos":[-150,-4330]},{"id":"1f396416-e0f5-44c0-94cb-6912f3ca85ed","name":"CLIP","type":"CLIP","linkIds":[10153],"pos":[-150,-4310]},{"id":"02b7338c-e0d9-4f96-bd61-751a49664b16","name":"CONDITIONING","type":"CONDITIONING","linkIds":[10154],"label":"CONDITIONING POS","pos":[-150,-4290]},{"id":"e4e929e9-47d5-4986-a14b-354f3fe06edf","name":"CONDITIONING_1","type":"CONDITIONING","linkIds":[10155],"label":"CONDITIONING NEG","pos":[-150,-4270]},{"id":"4e846ea4-442b-4ea5-a893-1664380347b8","name":"VAE","type":"VAE","linkIds":[10179],"pos":[-150,-4250]},{"id":"3465f15d-ef0e-4ad8-aa07-084148c9a296","name":"prompt","type":"STRING","linkIds":[10162],"label":"PROMPT POS","pos":[-150,-4230]}],"widgets":[],"nodes":[{"id":3981,"type":"CR Prompt Text","pos":[-1090,-3990],"size":[480,220],"flags":{"collapsed":false},"order":0,"mode":0,"inputs":[{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null}],"outputs":[{"localized_name":"prompt","name":"prompt","type":"STRING","links":[10163]},{"localized_name":"show_help","name":"show_help","type":"STRING","links":null}],"title":"Prompt Negative","properties":{"Node name for S&R":"CR Prompt Text","cnr_id":"ComfyUI_Comfyroll_CustomNodes","ver":"d78b780ae43fcf8c6b7c6505e6ffb4584281ceca","ue_properties":{"widget_ue_connectable":{"prompt":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["(moles, birthmarks:1.2),\n(big head:1.2), (unproportional:1.2), (bad proportions:1.2), (leaning forward:1.2),\n\nnoisy, blurry, grainy, drawing, painting, crayon, sketch, graphite, impressionist, soft,\nugly hands, deformed hands, deformed fingers, missing fingers, too many fingers,\nugly, deformed, distorted, disfigured, glitch, mutated,\nugly eyes, poorly drawn eyes, poorly drawn retina,\nbad quality, worst quality,\nwatermark, text, logo,"],"color":"#322","bgcolor":"#533"},{"id":3979,"type":"CLIPTextEncode","pos":[-460,-4090],"size":[218.659765625,88],"flags":{"collapsed":true},"order":4,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":10150},{"localized_name":"text","name":"text","type":"STRING","widget":{"name":"text"},"link":10163}],"outputs":[{"localized_name":"CONDITIONING","name":"CONDITIONING","type":"CONDITIONING","links":[10155]}],"properties":{"Node name for S&R":"CLIPTextEncode","cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{"text":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[""],"color":"#322","bgcolor":"#533"},{"id":3977,"type":"CR Prompt Text","pos":[-1090,-4040],"size":[470,330],"flags":{"collapsed":true},"order":2,"mode":0,"inputs":[{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":10181}],"outputs":[{"localized_name":"prompt","name":"prompt","type":"STRING","links":[10162,10171]},{"localized_name":"show_help","name":"show_help","type":"STRING","links":null}],"title":"Prompt Positive","properties":{"Node name for S&R":"CR Prompt Text","cnr_id":"ComfyUI_Comfyroll_CustomNodes","ver":"d78b780ae43fcf8c6b7c6505e6ffb4584281ceca","ue_properties":{"widget_ue_connectable":{"prompt":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["A photo-realistic amateur image of a stunning 40-year-old woman with shoulder-length wavy honey-blonde hair pulled up in a messy bun, green eyes. She has a curvy yet fit body, toned waist, wide hips, wearing a fitted white tank top and grey yoga pants. She is standing in a dim, messy teenage boy's bedroom, holding up a black lace bra she just found. She's inspecting and looking at the bra with a disappointed and confused expression on her face. The room behind her has an unmade bed, a PC desk setup, clothes scattered around, decoration and posters on the wall. Afternoon light filters through drawn curtains, casting warm amber tones across the scene."],"color":"#232","bgcolor":"#353"},{"id":3978,"type":"CLIPTextEncode","pos":[-460,-4130],"size":[218.659765625,88],"flags":{"collapsed":true},"order":3,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":10151},{"localized_name":"text","name":"text","type":"STRING","widget":{"name":"text"},"link":10171}],"outputs":[{"localized_name":"CONDITIONING","name":"CONDITIONING","type":"CONDITIONING","links":[10154]}],"properties":{"Node name for S&R":"CLIPTextEncode","cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{"text":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[""],"color":"#232","bgcolor":"#353"},{"id":3986,"type":"CheckpointLoaderSimple","pos":[-1110,-4260],"size":[270,98],"flags":{},"order":5,"mode":0,"inputs":[{"localized_name":"ckpt_name","name":"ckpt_name","type":"COMBO","widget":{"name":"ckpt_name"},"link":10180}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[10177]},{"localized_name":"CLIP","name":"CLIP","type":"CLIP","links":[10178]},{"localized_name":"VAE","name":"VAE","type":"VAE","links":[10179]}],"properties":{"Node name for S&R":"CheckpointLoaderSimple","cnr_id":"comfy-core","ver":"0.11.1","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":["sdxl\\big love - photo5 (sdxl).safetensors"],"color":"#323","bgcolor":"#535"},{"id":3302,"type":"CLIPSetLastLayer","pos":[-800,-4220],"size":[270,58],"flags":{"collapsed":false},"order":1,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":10178},{"localized_name":"stop_at_clip_layer","name":"stop_at_clip_layer","type":"INT","widget":{"name":"stop_at_clip_layer"},"link":null}],"outputs":[{"localized_name":"CLIP","name":"CLIP","type":"CLIP","links":[10150,10151,10153]}],"properties":{"Node name for S&R":"CLIPSetLastLayer","cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{"stop_at_clip_layer":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[-2],"color":"#323","bgcolor":"#535"}],"groups":[],"links":[{"id":10150,"origin_id":3302,"origin_slot":0,"target_id":3979,"target_slot":0,"type":"CLIP"},{"id":10151,"origin_id":3302,"origin_slot":0,"target_id":3978,"target_slot":0,"type":"CLIP"},{"id":10153,"origin_id":3302,"origin_slot":0,"target_id":-20,"target_slot":1,"type":"CLIP"},{"id":10154,"origin_id":3978,"origin_slot":0,"target_id":-20,"target_slot":2,"type":"CONDITIONING"},{"id":10155,"origin_id":3979,"origin_slot":0,"target_id":-20,"target_slot":3,"type":"CONDITIONING"},{"id":10162,"origin_id":3977,"origin_slot":0,"target_id":-20,"target_slot":5,"type":"STRING"},{"id":10163,"origin_id":3981,"origin_slot":0,"target_id":3979,"target_slot":1,"type":"STRING"},{"id":10171,"origin_id":3977,"origin_slot":0,"target_id":3978,"target_slot":1,"type":"STRING"},{"id":10177,"origin_id":3986,"origin_slot":0,"target_id":-20,"target_slot":0,"type":"MODEL"},{"id":10178,"origin_id":3986,"origin_slot":1,"target_id":3302,"target_slot":0,"type":"CLIP"},{"id":10179,"origin_id":3986,"origin_slot":2,"target_id":-20,"target_slot":4,"type":"VAE"},{"id":10180,"origin_id":-10,"origin_slot":0,"target_id":3986,"target_slot":0,"type":"COMBO"},{"id":10181,"origin_id":-10,"origin_slot":1,"target_id":3977,"target_slot":0,"type":"STRING"}],"extra":{"workflowRendererVersion":"LG","ue_links":[],"links_added_by_ue":[]}},{"id":"4210877b-b487-4259-a2a6-521337aa69ae","version":1,"state":{"lastGroupId":23,"lastNodeId":3371,"lastLinkId":9131,"lastRerouteId":0},"revision":0,"config":{},"name":"Generate","inputNode":{"id":-10,"bounding":[-310,-4160,120,100]},"outputNode":{"id":-20,"bounding":[1230,-4140,120,60]},"inputs":[{"id":"e490d8ec-04c8-42b5-abee-9970e283a150","name":"warp","type":"WARPPIPE","linkIds":[9129,9130],"pos":[-210,-4140]},{"id":"89f19f17-064f-4828-bf61-26a49a25ac31","name":"select","type":"INT","linkIds":[],"pos":[-210,-4120]},{"id":"e6701c54-926f-41dd-b1c8-c6e8025bcb73","name":"boolean","type":"BOOLEAN","linkIds":[],"pos":[-210,-4100]}],"outputs":[{"id":"d8677576-7bab-4075-9f38-04ed20a0bac4","name":"selected_value","type":"*","linkIds":[9131],"label":"warp","pos":[1250,-4120]}],"widgets":[],"nodes":[{"id":3368,"type":"VAEDecode","pos":[646.0615234375,-4143],"size":[140,50],"flags":{"collapsed":false},"order":0,"mode":0,"inputs":[{"label":"samples","localized_name":"samples","name":"samples","type":"LATENT","link":9116},{"label":"vae","localized_name":"vae","name":"vae","type":"VAE","link":9127}],"outputs":[{"label":"IMAGE","localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","slot_index":0,"links":[9126]}],"properties":{"Node name for S&R":"VAEDecode","cnr_id":"comfy-core","ver":"0.3.16","ue_properties":{"version":"7.0.1","widget_ue_connectable":{}}},"widgets_values":[],"color":"#222","bgcolor":"#000"},{"id":3369,"type":"KSampler","pos":[336.0615234375,-4233],"size":[270,310],"flags":{"collapsed":false},"order":1,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":9117},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":9118},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":9119},{"localized_name":"latent_image","name":"latent_image","type":"LATENT","link":9120},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":9121},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":9122},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":9123},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":9124},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":9125},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","slot_index":0,"links":[9116]}],"properties":{"Node name for S&R":"KSampler","cnr_id":"comfy-core","ver":"0.3.16","ue_properties":{"version":"7.0.1","widget_ue_connectable":{"seed":true,"sampler_name":true}}},"widgets_values":[317198787338181,"fixed",8,1,"lcm","exponential",1],"color":"#323","bgcolor":"#535"},{"id":3370,"type":"Unwarp","pos":[26.0615234375,-4233],"size":[197.876953125,446],"flags":{"collapsed":false},"order":2,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":9130}],"outputs":[{"localized_name":"model_1","name":"model_1","type":"MODEL","links":[9117]},{"localized_name":"model_2","name":"model_2","type":"MODEL","links":[]},{"localized_name":"image","name":"image","type":"IMAGE","links":[]},{"localized_name":"mask","name":"mask","type":"MASK","links":[]},{"localized_name":"clip","name":"clip","type":"CLIP","links":[]},{"localized_name":"clip_vision","name":"clip_vision","type":"CLIP_VISION","links":[]},{"localized_name":"vae","name":"vae","type":"VAE","links":[9127]},{"localized_name":"conditioning_positive","name":"conditioning_positive","type":"CONDITIONING","links":[9118]},{"localized_name":"conditioning_negative","name":"conditioning_negative","type":"CONDITIONING","links":[9119]},{"localized_name":"latent","name":"latent","type":"LATENT","links":[9120]},{"localized_name":"prompt_positive","name":"prompt_positive","type":"STRING","links":[]},{"localized_name":"prompt_negative","name":"prompt_negative","type":"STRING","links":[]},{"localized_name":"batch_size","name":"batch_size","type":"INT","links":[]},{"localized_name":"seed","name":"seed","type":"INT","links":[9121]},{"localized_name":"steps_1","name":"steps_1","type":"INT","links":[9122]},{"localized_name":"steps_2","name":"steps_2","type":"INT","links":[]},{"localized_name":"steps_3","name":"steps_3","type":"INT","links":[]},{"localized_name":"cfg","name":"cfg","type":"FLOAT","links":[9123]},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","links":[9124]},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","links":[9125]},{"localized_name":"width","name":"width","type":"INT","links":[]},{"localized_name":"height","name":"height","type":"INT","links":[]}],"properties":{"Node name for S&R":"Unwarp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"80e0443476fcdcebfe03eb0c6923b2e1c5f9d674","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[],"color":"#222","bgcolor":"#000"},{"id":3371,"type":"Warp","pos":[846.0615234375,-4273],"size":[197.876953125,466],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":9129},{"localized_name":"prompt_positive","name":"prompt_positive","shape":7,"type":"STRING","link":null},{"localized_name":"prompt_negative","name":"prompt_negative","shape":7,"type":"STRING","link":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"conditioning_negative","name":"conditioning_negative","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":9126},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null},{"localized_name":"model_1","name":"model_1","shape":7,"type":"MODEL","link":null},{"localized_name":"model_2","name":"model_2","shape":7,"type":"MODEL","link":null},{"localized_name":"clip","name":"clip","shape":7,"type":"CLIP","link":null},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":null},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":null},{"localized_name":"latent","name":"latent","shape":7,"type":"LATENT","link":null},{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","link":null},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","link":null},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","link":null},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","link":null},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","link":null},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","link":null},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","link":null},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","link":null},{"localized_name":"width","name":"width","shape":7,"type":"INT","link":null},{"localized_name":"height","name":"height","shape":7,"type":"INT","link":null}],"outputs":[{"localized_name":"warp","name":"warp","type":"WARPPIPE","links":[9131]}],"properties":{"Node name for S&R":"Warp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"53c24e15434e882072104fa48fa45ddb21e69df3","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":[],"color":"#222","bgcolor":"#000"}],"groups":[],"links":[{"id":9116,"origin_id":3369,"origin_slot":0,"target_id":3368,"target_slot":0,"type":"LATENT"},{"id":9117,"origin_id":3370,"origin_slot":0,"target_id":3369,"target_slot":0,"type":"MODEL"},{"id":9118,"origin_id":3370,"origin_slot":7,"target_id":3369,"target_slot":1,"type":"CONDITIONING"},{"id":9119,"origin_id":3370,"origin_slot":8,"target_id":3369,"target_slot":2,"type":"CONDITIONING"},{"id":9120,"origin_id":3370,"origin_slot":9,"target_id":3369,"target_slot":3,"type":"LATENT"},{"id":9121,"origin_id":3370,"origin_slot":13,"target_id":3369,"target_slot":4,"type":"INT"},{"id":9122,"origin_id":3370,"origin_slot":14,"target_id":3369,"target_slot":5,"type":"INT"},{"id":9123,"origin_id":3370,"origin_slot":17,"target_id":3369,"target_slot":6,"type":"FLOAT"},{"id":9124,"origin_id":3370,"origin_slot":18,"target_id":3369,"target_slot":7,"type":"COMBO"},{"id":9125,"origin_id":3370,"origin_slot":19,"target_id":3369,"target_slot":8,"type":"COMBO"},{"id":9126,"origin_id":3368,"origin_slot":0,"target_id":3371,"target_slot":5,"type":"IMAGE"},{"id":9127,"origin_id":3370,"origin_slot":6,"target_id":3368,"target_slot":1,"type":"VAE"},{"id":9129,"origin_id":-10,"origin_slot":0,"target_id":3371,"target_slot":0,"type":"WARPPIPE"},{"id":9130,"origin_id":-10,"origin_slot":0,"target_id":3370,"target_slot":0,"type":"WARPPIPE"},{"id":9131,"origin_id":3371,"origin_slot":0,"target_id":-20,"target_slot":0,"type":"WARPPIPE"}],"extra":{"ue_links":[],"links_added_by_ue":[],"workflowRendererVersion":"LG"}},{"id":"32bbae29-443d-4a61-afff-dc005730b71a","version":1,"state":{"lastGroupId":23,"lastNodeId":3328,"lastLinkId":9003,"lastRerouteId":0},"revision":0,"config":{},"name":"Image Selector","inputNode":{"id":-10,"bounding":[380,-3310,120,100]},"outputNode":{"id":-20,"bounding":[1340,-3320,120,100]},"inputs":[{"id":"5472c436-a07c-4593-8173-98a73e29f477","name":"warp","type":"WARPPIPE","linkIds":[8997,8998],"pos":[480,-3290]},{"id":"1dcc08f4-c1b6-4a52-88db-60db3ef4f3d8","name":"timeout","type":"INT","linkIds":[8999],"pos":[480,-3270]},{"id":"480d4295-9bd3-4636-b146-0bc6e9eb33ff","name":"ontimeout","type":"COMBO","linkIds":[9000],"pos":[480,-3250]}],"outputs":[{"id":"d4753302-e688-4e2b-8e51-310254cc38cb","name":"warp","type":"WARPPIPE","linkIds":[9003],"pos":[1360,-3300]},{"id":"a362d735-de47-4f79-b36e-83a2a64ef86d","name":"image","type":"IMAGE","linkIds":[8995],"label":"img in","pos":[1360,-3280]},{"id":"07c76bbb-6997-4d55-8fd4-4729f15d0fe3","name":"images","type":"IMAGE","linkIds":[8996],"label":"img out","pos":[1360,-3260]}],"widgets":[],"nodes":[{"id":3317,"type":"Image Filter","pos":[820,-3160],"size":[270,380],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":8991},{"localized_name":"latents","name":"latents","shape":7,"type":"LATENT","link":null},{"localized_name":"masks","name":"masks","shape":7,"type":"MASK","link":null},{"localized_name":"timeout","name":"timeout","type":"INT","widget":{"name":"timeout"},"link":8999},{"localized_name":"ontimeout","name":"ontimeout","type":"COMBO","widget":{"name":"ontimeout"},"link":9000},{"localized_name":"tip","name":"tip","shape":7,"type":"STRING","widget":{"name":"tip"},"link":null},{"localized_name":"extra1","name":"extra1","shape":7,"type":"STRING","widget":{"name":"extra1"},"link":null},{"localized_name":"extra2","name":"extra2","shape":7,"type":"STRING","widget":{"name":"extra2"},"link":null},{"localized_name":"extra3","name":"extra3","shape":7,"type":"STRING","widget":{"name":"extra3"},"link":null},{"localized_name":"pick_list_start","name":"pick_list_start","shape":7,"type":"INT","widget":{"name":"pick_list_start"},"link":null},{"localized_name":"pick_list","name":"pick_list","shape":7,"type":"STRING","widget":{"name":"pick_list"},"link":null},{"localized_name":"video_frames","name":"video_frames","shape":7,"type":"INT","widget":{"name":"video_frames"},"link":null}],"outputs":[{"localized_name":"images","name":"images","type":"IMAGE","links":[8969,8973,8996]},{"localized_name":"latents","name":"latents","type":"LATENT","links":null},{"localized_name":"masks","name":"masks","type":"MASK","links":null},{"localized_name":"extra1","name":"extra1","type":"STRING","links":null},{"localized_name":"extra2","name":"extra2","type":"STRING","links":null},{"localized_name":"extra3","name":"extra3","type":"STRING","links":null},{"localized_name":"indexes","name":"indexes","type":"STRING","links":null}],"properties":{"Node name for S&R":"Image Filter","cnr_id":"cg-image-filter","ver":"1.6.1","ue_properties":{"version":"7.0.1","widget_ue_connectable":{"timeout":true,"ontimeout":true,"tip":true,"extra1":true,"extra2":true,"extra3":true,"pick_list_start":true,"pick_list":true,"video_frames":true}},"filter_floater_xy":{"x":14,"y":100}},"widgets_values":[300,"send all","","","","",0,"",1,826451],"color":"#323","bgcolor":"#535"},{"id":3323,"type":"Unwarp","pos":[550,-3320],"size":[197.876953125,446],"flags":{"collapsed":true},"order":1,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":8997}],"outputs":[{"localized_name":"model_1","name":"model_1","type":"MODEL","links":[8983]},{"localized_name":"model_2","name":"model_2","type":"MODEL","links":null},{"localized_name":"image","name":"image","type":"IMAGE","links":[8991,8995]},{"localized_name":"mask","name":"mask","type":"MASK","links":null},{"localized_name":"clip","name":"clip","type":"CLIP","links":null},{"localized_name":"clip_vision","name":"clip_vision","type":"CLIP_VISION","links":null},{"localized_name":"vae","name":"vae","type":"VAE","links":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","type":"CONDITIONING","links":null},{"localized_name":"conditioning_negative","name":"conditioning_negative","type":"CONDITIONING","links":null},{"localized_name":"latent","name":"latent","type":"LATENT","links":null},{"localized_name":"prompt_positive","name":"prompt_positive","type":"STRING","links":null},{"localized_name":"prompt_negative","name":"prompt_negative","type":"STRING","links":null},{"localized_name":"batch_size","name":"batch_size","type":"INT","links":null},{"localized_name":"seed","name":"seed","type":"INT","links":null},{"localized_name":"steps_1","name":"steps_1","type":"INT","links":null},{"localized_name":"steps_2","name":"steps_2","type":"INT","links":null},{"localized_name":"steps_3","name":"steps_3","type":"INT","links":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","links":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","links":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","links":null},{"localized_name":"width","name":"width","type":"INT","links":null},{"localized_name":"height","name":"height","type":"INT","links":null}],"properties":{"Node name for S&R":"Unwarp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"80e0443476fcdcebfe03eb0c6923b2e1c5f9d674","ue_properties":{"widget_ue_connectable":{},"version":"7.5.2","input_ue_unconnectable":{}}},"widgets_values":[],"color":"#222","bgcolor":"#000"},{"id":3324,"type":"Warp","pos":[1106.4983218399798,-3313.5444788428586],"size":[197.876953125,466],"flags":{"collapsed":true},"order":2,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":8998},{"localized_name":"prompt_positive","name":"prompt_positive","shape":7,"type":"STRING","link":null},{"localized_name":"prompt_negative","name":"prompt_negative","shape":7,"type":"STRING","link":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"conditioning_negative","name":"conditioning_negative","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null},{"localized_name":"model_1","name":"model_1","shape":7,"type":"MODEL","link":null},{"localized_name":"model_2","name":"model_2","shape":7,"type":"MODEL","link":null},{"localized_name":"clip","name":"clip","shape":7,"type":"CLIP","link":null},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":null},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":null},{"localized_name":"latent","name":"latent","shape":7,"type":"LATENT","link":null},{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","link":null},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","link":null},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","link":null},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","link":null},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","link":null},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","link":null},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","link":null},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","link":null},{"localized_name":"width","name":"width","shape":7,"type":"INT","link":null},{"localized_name":"height","name":"height","shape":7,"type":"INT","link":null}],"outputs":[{"localized_name":"warp","name":"warp","type":"WARPPIPE","links":[9003]}],"properties":{"Node name for S&R":"Warp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"53c24e15434e882072104fa48fa45ddb21e69df3","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":[],"color":"#222","bgcolor":"#000"}],"groups":[],"links":[{"id":8991,"origin_id":3323,"origin_slot":2,"target_id":3317,"target_slot":0,"type":"IMAGE"},{"id":8995,"origin_id":3323,"origin_slot":2,"target_id":-20,"target_slot":1,"type":"IMAGE"},{"id":8996,"origin_id":3317,"origin_slot":0,"target_id":-20,"target_slot":2,"type":"IMAGE"},{"id":8997,"origin_id":-10,"origin_slot":0,"target_id":3323,"target_slot":0,"type":"WARPPIPE"},{"id":8998,"origin_id":-10,"origin_slot":0,"target_id":3324,"target_slot":0,"type":"WARPPIPE"},{"id":8999,"origin_id":-10,"origin_slot":1,"target_id":3317,"target_slot":3,"type":"INT"},{"id":9000,"origin_id":-10,"origin_slot":2,"target_id":3317,"target_slot":4,"type":"COMBO"},{"id":9003,"origin_id":3324,"origin_slot":0,"target_id":-20,"target_slot":0,"type":"WARPPIPE"}],"extra":{"ue_links":[],"links_added_by_ue":[],"workflowRendererVersion":"LG"}},{"id":"fbece873-b379-432d-943d-b99e2e92f61a","version":1,"state":{"lastGroupId":23,"lastNodeId":3315,"lastLinkId":8997,"lastRerouteId":0},"revision":0,"config":{},"name":"Upscale","inputNode":{"id":-10,"bounding":[1110,-4200,120,100]},"outputNode":{"id":-20,"bounding":[2120,-4170,120,100]},"inputs":[{"id":"4e2afa98-d127-4001-86d6-ba668ddb9b4d","name":"warp","type":"WARPPIPE","linkIds":[8991,8992],"pos":[1210,-4180]},{"id":"a1abbef4-4c95-4d0c-9b11-62dfc71b2a12","name":"upscale_by","type":"FLOAT","linkIds":[8993],"pos":[1210,-4160]},{"id":"9460479a-7677-474d-ab25-7f41fc6d5848","name":"denoise","type":"FLOAT","linkIds":[8994],"pos":[1210,-4140]}],"outputs":[{"id":"546b99e5-aa31-4522-b7dc-622408c3d062","name":"warp","type":"WARPPIPE","linkIds":[8990],"pos":[2140,-4150]},{"id":"874c1cbb-13d5-4d47-b1ed-887da4512700","name":"image","type":"IMAGE","linkIds":[8996],"label":"img in","pos":[2140,-4130]},{"id":"c2f02d2a-e480-467c-b7ff-ea5adb445a53","name":"IMAGE","type":"IMAGE","linkIds":[8997],"label":"img out","pos":[2140,-4110]}],"widgets":[],"nodes":[{"id":217,"type":"UpscaleModelLoader","pos":[1020,-3960],"size":[400,60],"flags":{"collapsed":false},"order":0,"mode":4,"inputs":[{"localized_name":"model_name","name":"model_name","type":"COMBO","widget":{"name":"model_name"},"link":null}],"outputs":[{"localized_name":"UPSCALE_MODEL","name":"UPSCALE_MODEL","type":"UPSCALE_MODEL","slot_index":0,"links":[599]}],"properties":{"Node name for S&R":"UpscaleModelLoader","cnr_id":"comfy-core","ver":"0.3.16","ue_properties":{"version":"7.0.1","widget_ue_connectable":{}}},"widgets_values":["4x_NMKD-Superscale-SP_178000_G.pth"],"color":"#323","bgcolor":"#535"},{"id":235,"type":"UltimateSDUpscale","pos":[1560,-4060],"size":[320,630],"flags":{},"order":1,"mode":4,"inputs":[{"localized_name":"image","name":"image","type":"IMAGE","link":8980},{"localized_name":"model","name":"model","type":"MODEL","link":8979},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":8982},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":8983},{"localized_name":"vae","name":"vae","type":"VAE","link":8981},{"localized_name":"upscale_model","name":"upscale_model","type":"UPSCALE_MODEL","link":599},{"localized_name":"upscale_by","name":"upscale_by","type":"FLOAT","widget":{"name":"upscale_by"},"link":8993},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":8984},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":8985},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":8986},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":8987},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":8988},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":8994},{"localized_name":"mode_type","name":"mode_type","type":"COMBO","widget":{"name":"mode_type"},"link":null},{"localized_name":"tile_width","name":"tile_width","type":"INT","widget":{"name":"tile_width"},"link":null},{"localized_name":"tile_height","name":"tile_height","type":"INT","widget":{"name":"tile_height"},"link":null},{"localized_name":"mask_blur","name":"mask_blur","type":"INT","widget":{"name":"mask_blur"},"link":null},{"localized_name":"tile_padding","name":"tile_padding","type":"INT","widget":{"name":"tile_padding"},"link":null},{"localized_name":"seam_fix_mode","name":"seam_fix_mode","type":"COMBO","widget":{"name":"seam_fix_mode"},"link":null},{"localized_name":"seam_fix_denoise","name":"seam_fix_denoise","type":"FLOAT","widget":{"name":"seam_fix_denoise"},"link":null},{"localized_name":"seam_fix_width","name":"seam_fix_width","type":"INT","widget":{"name":"seam_fix_width"},"link":null},{"localized_name":"seam_fix_mask_blur","name":"seam_fix_mask_blur","type":"INT","widget":{"name":"seam_fix_mask_blur"},"link":null},{"localized_name":"seam_fix_padding","name":"seam_fix_padding","type":"INT","widget":{"name":"seam_fix_padding"},"link":null},{"localized_name":"force_uniform_tiles","name":"force_uniform_tiles","type":"BOOLEAN","widget":{"name":"force_uniform_tiles"},"link":null},{"localized_name":"tiled_decode","name":"tiled_decode","type":"BOOLEAN","widget":{"name":"tiled_decode"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","slot_index":0,"links":[8995,8997]}],"properties":{"Node name for S&R":"UltimateSDUpscale","cnr_id":"comfyui_ultimatesdupscale","ver":"1b6e60d4f1e7ef325ea4b6268f41c03bd18eee5b","ue_properties":{"version":"7.0.1","widget_ue_connectable":{"upscale_by":true,"seed":false,"tile_width":true,"tile_height":true,"scheduler":true,"sampler_name":true}}},"widgets_values":[1.5,212512467700550,"randomize",12,1,"lms","exponential",0.1,"Linear",1024,1024,8,32,"None",1,64,8,16,true,false],"color":"#323","bgcolor":"#535"},{"id":3315,"type":"Warp","pos":[1900,-4150],"size":[197.876953125,466],"flags":{"collapsed":true},"order":3,"mode":4,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":8992},{"localized_name":"prompt_positive","name":"prompt_positive","shape":7,"type":"STRING","link":null},{"localized_name":"prompt_negative","name":"prompt_negative","shape":7,"type":"STRING","link":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"conditioning_negative","name":"conditioning_negative","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":8995},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null},{"localized_name":"model_1","name":"model_1","shape":7,"type":"MODEL","link":null},{"localized_name":"model_2","name":"model_2","shape":7,"type":"MODEL","link":null},{"localized_name":"clip","name":"clip","shape":7,"type":"CLIP","link":null},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":null},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":null},{"localized_name":"latent","name":"latent","shape":7,"type":"LATENT","link":null},{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","link":null},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","link":null},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","link":null},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","link":null},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","link":null},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","link":null},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","link":null},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","link":null},{"localized_name":"width","name":"width","shape":7,"type":"INT","link":null},{"localized_name":"height","name":"height","shape":7,"type":"INT","link":null}],"outputs":[{"localized_name":"warp","name":"warp","type":"WARPPIPE","links":[8990]}],"properties":{"Node name for S&R":"Warp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"53c24e15434e882072104fa48fa45ddb21e69df3","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":[],"color":"#222","bgcolor":"#000"},{"id":3311,"type":"Unwarp","pos":[1270,-4050],"size":[197.876953125,446],"flags":{"collapsed":true},"order":2,"mode":4,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":8991}],"outputs":[{"localized_name":"model_1","name":"model_1","type":"MODEL","links":[8963,8979]},{"localized_name":"model_2","name":"model_2","type":"MODEL","links":null},{"localized_name":"image","name":"image","type":"IMAGE","links":[8980,8996]},{"localized_name":"mask","name":"mask","type":"MASK","links":null},{"localized_name":"clip","name":"clip","type":"CLIP","links":null},{"localized_name":"clip_vision","name":"clip_vision","type":"CLIP_VISION","links":[]},{"localized_name":"vae","name":"vae","type":"VAE","links":[8981]},{"localized_name":"conditioning_positive","name":"conditioning_positive","type":"CONDITIONING","links":[8982]},{"localized_name":"conditioning_negative","name":"conditioning_negative","type":"CONDITIONING","links":[8983]},{"localized_name":"latent","name":"latent","type":"LATENT","links":null},{"localized_name":"prompt_positive","name":"prompt_positive","type":"STRING","links":null},{"localized_name":"prompt_negative","name":"prompt_negative","type":"STRING","links":null},{"localized_name":"batch_size","name":"batch_size","type":"INT","links":[]},{"localized_name":"seed","name":"seed","type":"INT","links":[8984]},{"localized_name":"steps_1","name":"steps_1","type":"INT","links":null},{"localized_name":"steps_2","name":"steps_2","type":"INT","links":[8985]},{"localized_name":"steps_3","name":"steps_3","type":"INT","links":[]},{"localized_name":"cfg","name":"cfg","type":"FLOAT","links":[8986]},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","links":[8987]},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","links":[8988]},{"localized_name":"width","name":"width","type":"INT","links":null},{"localized_name":"height","name":"height","type":"INT","links":null}],"properties":{"Node name for S&R":"Unwarp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"80e0443476fcdcebfe03eb0c6923b2e1c5f9d674","ue_properties":{"widget_ue_connectable":{},"version":"7.5.2","input_ue_unconnectable":{}}},"widgets_values":[],"color":"#222","bgcolor":"#000"}],"groups":[],"links":[{"id":599,"origin_id":217,"origin_slot":0,"target_id":235,"target_slot":5,"type":"UPSCALE_MODEL"},{"id":8979,"origin_id":3311,"origin_slot":0,"target_id":235,"target_slot":1,"type":"MODEL"},{"id":8980,"origin_id":3311,"origin_slot":2,"target_id":235,"target_slot":0,"type":"IMAGE"},{"id":8981,"origin_id":3311,"origin_slot":6,"target_id":235,"target_slot":4,"type":"VAE"},{"id":8982,"origin_id":3311,"origin_slot":7,"target_id":235,"target_slot":2,"type":"CONDITIONING"},{"id":8983,"origin_id":3311,"origin_slot":8,"target_id":235,"target_slot":3,"type":"CONDITIONING"},{"id":8984,"origin_id":3311,"origin_slot":13,"target_id":235,"target_slot":7,"type":"INT"},{"id":8985,"origin_id":3311,"origin_slot":15,"target_id":235,"target_slot":8,"type":"INT"},{"id":8986,"origin_id":3311,"origin_slot":17,"target_id":235,"target_slot":9,"type":"FLOAT"},{"id":8987,"origin_id":3311,"origin_slot":18,"target_id":235,"target_slot":10,"type":"COMBO"},{"id":8988,"origin_id":3311,"origin_slot":19,"target_id":235,"target_slot":11,"type":"COMBO"},{"id":8990,"origin_id":3315,"origin_slot":0,"target_id":-20,"target_slot":0,"type":"WARPPIPE"},{"id":8991,"origin_id":-10,"origin_slot":0,"target_id":3311,"target_slot":0,"type":"WARPPIPE"},{"id":8992,"origin_id":-10,"origin_slot":0,"target_id":3315,"target_slot":0,"type":"WARPPIPE"},{"id":8993,"origin_id":-10,"origin_slot":1,"target_id":235,"target_slot":6,"type":"FLOAT"},{"id":8994,"origin_id":-10,"origin_slot":2,"target_id":235,"target_slot":12,"type":"FLOAT"},{"id":8995,"origin_id":235,"origin_slot":0,"target_id":3315,"target_slot":5,"type":"IMAGE"},{"id":8996,"origin_id":3311,"origin_slot":2,"target_id":-20,"target_slot":1,"type":"IMAGE"},{"id":8997,"origin_id":235,"origin_slot":0,"target_id":-20,"target_slot":2,"type":"IMAGE"}],"extra":{"ue_links":[],"links_added_by_ue":[],"workflowRendererVersion":"LG"}}]},"config":{},"extra":{"workflowRendererVersion":"LG","ds":{"scale":0.8598962801699542,"offset":[1447.3386785021812,4212.8247736887015]}},"version":0.4} \ No newline at end of file +{"id":"1ac6ef5d-03c5-4ebf-a1b6-2b01864cd7bc","revision":0,"last_node_id":4013,"last_link_id":10327,"nodes":[{"id":53,"type":"SetNode","pos":[1410,-3450],"size":[210,58],"flags":{"collapsed":true},"order":36,"mode":0,"inputs":[{"name":"WARPPIPE","type":"WARPPIPE","link":75}],"outputs":[{"name":"*","type":"*","links":null}],"title":"Set_warp - z-image","properties":{"Node name for S&R":"SetNode","aux_id":"kijai/ComfyUI-KJNodes","previousName":"","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["warp - z-image"],"widgets_values_named":{"Constant":"warp - z-image"}},{"id":56,"type":"Warp","pos":[1410,-3490],"size":[197.876953125,565],"flags":{"collapsed":false},"order":31,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":null},{"localized_name":"prompt_positive","name":"prompt_positive","shape":7,"type":"STRING","link":10307},{"localized_name":"prompt_negative","name":"prompt_negative","shape":7,"type":"STRING","link":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","shape":7,"type":"CONDITIONING","link":10290},{"localized_name":"conditioning_negative","name":"conditioning_negative","shape":7,"type":"CONDITIONING","link":10291},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null},{"localized_name":"model_1","name":"model_1","shape":7,"type":"MODEL","link":10305},{"localized_name":"model_2","name":"model_2","shape":7,"type":"MODEL","link":null},{"localized_name":"clip","name":"clip","shape":7,"type":"CLIP","link":10306},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":null},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":10293},{"localized_name":"latent","name":"latent","shape":7,"type":"LATENT","link":82},{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","link":83},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","link":84},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","link":85},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","link":86},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","link":87},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","link":88},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","link":89},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","link":90},{"localized_name":"width","name":"width","shape":7,"type":"INT","link":91},{"localized_name":"height","name":"height","shape":7,"type":"INT","link":92}],"outputs":[{"localized_name":"warp","name":"warp","type":"WARPPIPE","links":[75]}],"properties":{"Node name for S&R":"Warp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"53c24e15434e882072104fa48fa45ddb21e69df3","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.1"}},"color":"#222","bgcolor":"#000"},{"id":57,"type":"Bookmark (rgthree)","pos":[-630,-3530],"size":[210,50],"flags":{"collapsed":true},"order":0,"mode":0,"inputs":[],"outputs":[],"title":"🔖 (2) Z-Image Turbo","properties":{"ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["2",1],"widgets_values_named":{"shortcut_key":"2","zoom":1},"color":"#222","bgcolor":"#000"},{"id":125,"type":"GetNode","pos":[470,-2600],"size":[210,34],"flags":{"collapsed":true},"order":1,"mode":0,"inputs":[],"outputs":[{"name":"INT","type":"INT","links":[163]}],"title":"Get_model switch","properties":{"Node name for S&R":"GetNode","aux_id":"kijai/ComfyUI-KJNodes","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["model switch"],"widgets_values_named":{"Constant":"model switch"},"color":"#1b4669","bgcolor":"#29699c"},{"id":106,"type":"GetNode","pos":[-630,-2540],"size":[210,34],"flags":{"collapsed":true},"order":2,"mode":0,"inputs":[],"outputs":[{"name":"WARPPIPE","type":"WARPPIPE","links":[168]}],"title":"Get_warp - z-image","properties":{"Node name for S&R":"GetNode","aux_id":"kijai/ComfyUI-KJNodes"},"widgets_values":["warp - z-image"],"widgets_values_named":{"Constant":"warp - z-image"}},{"id":84,"type":"GetNode","pos":[-400,-2660],"size":[210,58],"flags":{"collapsed":true},"order":3,"mode":0,"inputs":[],"outputs":[{"name":"INT","type":"INT","links":[172]}],"title":"Get_model switch","properties":{"Node name for S&R":"GetNode","aux_id":"kijai/ComfyUI-KJNodes","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["model switch"],"widgets_values_named":{"Constant":"model switch"},"color":"#1b4669","bgcolor":"#29699c"},{"id":97,"type":"4210877b-b487-4259-a2a6-521337aa69ae","pos":[-400,-2700],"size":[270,150],"flags":{"collapsed":false},"order":27,"mode":0,"inputs":[{"name":"warp","shape":7,"type":"WARPPIPE","link":170},{"name":"select","type":"INT","link":172},{"name":"boolean","type":"BOOLEAN","link":null}],"outputs":[{"label":"warp","name":"selected_value","type":"*","links":[150]}],"properties":{"proxyWidgets":[],"cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}},"previewExposures":[{"name":"$$canvas-image-preview","sourceNodeId":"3369","sourcePreviewName":"$$canvas-image-preview"}]},"color":"#432","bgcolor":"#653"},{"id":119,"type":"SetNode","pos":[470,-2440],"size":[210,50],"flags":{"collapsed":true},"order":45,"mode":0,"inputs":[{"name":"IMAGE","type":"IMAGE","link":157}],"outputs":[{"name":"*","type":"*","links":null}],"title":"Set_img - final - z-image","properties":{"Node name for S&R":"SetNode","aux_id":"kijai/ComfyUI-KJNodes","previousName":"img - final - z-image","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["img - final - z-image"],"widgets_values_named":{"Constant":"img - final - z-image"},"color":"#2a363b","bgcolor":"#3f5159"},{"id":124,"type":"ImpactInversedSwitch","pos":[470,-2560],"size":[270,262],"flags":{"collapsed":true},"order":42,"mode":0,"inputs":[{"localized_name":"input","name":"input","type":"IMAGE","link":162},{"localized_name":"select","name":"select","type":"INT","widget":{"name":"select"},"link":163},{"localized_name":"sel_mode","name":"sel_mode","shape":7,"type":"IMAGE","widget":{"name":"sel_mode"},"link":null}],"outputs":[{"localized_name":"output1","name":"output1","type":"IMAGE","slot_index":0,"links":[161]},{"name":"output2","type":"IMAGE","slot_index":8,"links":[157]},{"name":"output3","type":"IMAGE","slot_index":9,"links":null}],"properties":{"Node name for S&R":"ImpactInversedSwitch","cnr_id":"comfyui-impact-pack","ver":"6a517ebe06fea2b74fc41b3bd089c0d7173eeced","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":[1,false],"widgets_values_named":{"select":1,"sel_mode":false},"color":"#222","bgcolor":"#000"},{"id":130,"type":"Bookmark (rgthree)","pos":[-630,-2740],"size":[210,14],"flags":{"collapsed":true},"order":4,"mode":0,"inputs":[],"outputs":[],"title":"🔖 (0) Workflow","properties":{"ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["0",1],"widgets_values_named":{"shortcut_key":"0","zoom":1},"color":"#222","bgcolor":"#000"},{"id":54,"type":"GetNode","pos":[-630,-3450],"size":[223.7935546875,50],"flags":{"collapsed":true},"order":5,"mode":0,"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[94]}],"title":"Get_img - filtered - z-image","properties":{"Node name for S&R":"GetNode","aux_id":"kijai/ComfyUI-KJNodes","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["img - filtered - z-image"],"widgets_values_named":{"Constant":"img - filtered - z-image"},"color":"#2a363b","bgcolor":"#3f5159"},{"id":55,"type":"GetNode","pos":[-630,-3410],"size":[210,58],"flags":{"collapsed":true},"order":6,"mode":0,"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","slot_index":0,"links":[93]}],"title":"Get_img - final - z-image","properties":{"Node name for S&R":"GetNode","aux_id":"kijai/ComfyUI-KJNodes","ue_properties":{"version":"7.0.1","widget_ue_connectable":{}}},"widgets_values":["img - final - z-image"],"widgets_values_named":{"Constant":"img - final - z-image"},"color":"#2a363b","bgcolor":"#3f5159"},{"id":93,"type":"GetNode","pos":[-110,-2460],"size":[210,50],"flags":{"collapsed":true},"order":7,"mode":0,"inputs":[],"outputs":[{"name":"INT","type":"INT","links":[135]}],"title":"Get_model switch","properties":{"Node name for S&R":"GetNode","aux_id":"kijai/ComfyUI-KJNodes","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["model switch"],"widgets_values_named":{"Constant":"model switch"},"color":"#1b4669","bgcolor":"#29699c"},{"id":96,"type":"ImpactInversedSwitch","pos":[-110,-2420],"size":[270,262],"flags":{"collapsed":true},"order":34,"mode":0,"inputs":[{"localized_name":"input","name":"input","type":"IMAGE","link":134},{"localized_name":"select","name":"select","type":"INT","widget":{"name":"select"},"link":135},{"localized_name":"sel_mode","name":"sel_mode","shape":7,"type":"IMAGE","widget":{"name":"sel_mode"},"link":null}],"outputs":[{"localized_name":"output1","name":"output1","type":"IMAGE","slot_index":0,"links":[129]},{"name":"output2","type":"IMAGE","slot_index":8,"links":[128]},{"name":"output3","type":"IMAGE","slot_index":9,"links":null}],"properties":{"Node name for S&R":"ImpactInversedSwitch","cnr_id":"comfyui-impact-pack","ver":"6a517ebe06fea2b74fc41b3bd089c0d7173eeced","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":[1,false],"widgets_values_named":{"select":1,"sel_mode":false},"color":"#222","bgcolor":"#000"},{"id":58,"type":"Image Comparer (rgthree)","pos":[-630,-3490],"size":[470,565],"flags":{"collapsed":false},"order":19,"mode":0,"inputs":[{"dir":3,"name":"image_a","type":"IMAGE","link":93},{"dir":3,"name":"image_b","type":"IMAGE","link":94}],"outputs":[{"dir":4,"name":"images","shape":3,"type":"IMAGE","links":null}],"title":"Image Comparer","properties":{"comparer_mode":"Slide","cnr_id":"rgthree-comfy","ver":"32142fe476878a354dda6e2d4b5ea98960de3ced","ue_properties":{"version":"7.0.1","widget_ue_connectable":{},"input_ue_unconnectable":{}},"connections_layout":["Left","Right"]},"widgets_values":[[{"name":"A1","selected":true,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00003_.png&type=temp&subfolder=&rand=0.1814448052641483"},{"name":"A2","selected":false,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00004_.png&type=temp&subfolder=&rand=0.3334709429731997"},{"name":"A3","selected":false,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00005_.png&type=temp&subfolder=&rand=0.9675423424814653"},{"name":"A4","selected":false,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00006_.png&type=temp&subfolder=&rand=0.6715708852329928"},{"name":"B1","selected":true,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00007_.png&type=temp&subfolder=&rand=0.2124339963942955"}]],"widgets_values_named":{"rgthree_comparer":{"images":[{"name":"A1","selected":true,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00003_.png&type=temp&subfolder=&rand=0.1814448052641483","img":{}},{"name":"A2","selected":false,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00004_.png&type=temp&subfolder=&rand=0.3334709429731997"},{"name":"A3","selected":false,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00005_.png&type=temp&subfolder=&rand=0.9675423424814653"},{"name":"A4","selected":false,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00006_.png&type=temp&subfolder=&rand=0.6715708852329928"},{"name":"B1","selected":true,"url":"/api/view?filename=rgthree.compare._temp_xiuxl_00007_.png&type=temp&subfolder=&rand=0.2124339963942955","img":{}}]}},"color":"#222","bgcolor":"#000"},{"id":4001,"type":"adb4fc78-b46f-405d-a114-b8356e33ce37","pos":[-136.8238243983264,-3501.757888926587],"size":[210,78],"flags":{},"order":8,"mode":0,"inputs":[{"name":"unet_name","type":"COMBO","widget":{"name":"unet_name"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[10300]},{"name":"CLIP","type":"CLIP","links":[10303]}],"properties":{"previewExposures":[]},"widgets_values":["zit\\z_image_turbo_bf16.safetensors"],"widgets_values_named":{"unet_name":"zit\\z_image_turbo_bf16.safetensors"},"color":"#323","bgcolor":"#535"},{"id":3999,"type":"VAELoader","pos":[801.4255284875242,-3478.3247799283217],"size":[270,58],"flags":{},"order":9,"mode":0,"inputs":[{"localized_name":"vae_name","name":"vae_name","type":"COMBO","widget":{"name":"vae_name"},"link":null}],"outputs":[{"localized_name":"VAE","name":"VAE","type":"VAE","links":[10293]}],"properties":{"Node name for S&R":"VAELoader","cnr_id":"comfy-core","ver":"0.3.75","ue_properties":{"widget_ue_connectable":{},"version":"7.5.1","input_ue_unconnectable":{}}},"widgets_values":["z-image-turbo.safetensors"],"widgets_values_named":{"vae_name":"z-image-turbo.safetensors"},"color":"#000000","bgcolor":"#000000"},{"id":3996,"type":"CLIPTextEncode","pos":[806.0925865946053,-3373.257629746984],"size":[220,76],"flags":{"collapsed":true},"order":25,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":10308},{"localized_name":"text","name":"text","type":"STRING","widget":{"name":"text"},"link":null}],"outputs":[{"localized_name":"CONDITIONING","name":"CONDITIONING","type":"CONDITIONING","links":[10284,10290]}],"properties":{"Node name for S&R":"CLIPTextEncode","cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{"text":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[""],"widgets_values_named":{"text":""},"color":"#232","bgcolor":"#353"},{"id":3997,"type":"ConditioningZeroOut","pos":[804.6820747183812,-3330.4989196251754],"size":[204.134765625,26],"flags":{"collapsed":false},"order":28,"mode":0,"inputs":[{"localized_name":"conditioning","name":"conditioning","type":"CONDITIONING","link":10284}],"outputs":[{"localized_name":"CONDITIONING","name":"CONDITIONING","type":"CONDITIONING","links":[10291]}],"properties":{"Node name for S&R":"ConditioningZeroOut","cnr_id":"comfy-core","ver":"0.10.0","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"color":"#322","bgcolor":"#533"},{"id":4008,"type":"e59320fb-1a39-41f1-a652-1303bdd80711","pos":[-122.57391404891432,-4261.822663660773],"size":[210,78],"flags":{},"order":10,"mode":0,"inputs":[{"name":"unet_name","type":"COMBO","widget":{"name":"unet_name"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[10309]},{"name":"CLIP","type":"CLIP","links":[10310]}],"properties":{"previewExposures":[]},"widgets_values":["krea2\\krea2_turbo_int8_convrot.safetensors"],"widgets_values_named":{"unet_name":"krea2\\krea2_turbo_int8_convrot.safetensors"},"color":"#323","bgcolor":"#535"},{"id":4009,"type":"VAELoader","pos":[815.6754388369358,-4238.389554662508],"size":[270,58],"flags":{},"order":11,"mode":0,"inputs":[{"localized_name":"vae_name","name":"vae_name","type":"COMBO","widget":{"name":"vae_name"},"link":null}],"outputs":[{"localized_name":"VAE","name":"VAE","type":"VAE","links":[10316]}],"properties":{"Node name for S&R":"VAELoader","cnr_id":"comfy-core","ver":"0.3.75","ue_properties":{"widget_ue_connectable":{},"version":"7.5.1","input_ue_unconnectable":{}}},"widgets_values":["wan_2.1_fp32_vae.safetensors"],"widgets_values_named":{"vae_name":"wan_2.1_fp32_vae.safetensors"},"color":"#000000","bgcolor":"#000000"},{"id":4011,"type":"ConditioningZeroOut","pos":[818.9319850677924,-4090.563694359359],"size":[204.134765625,26],"flags":{"collapsed":false},"order":29,"mode":0,"inputs":[{"localized_name":"conditioning","name":"conditioning","type":"CONDITIONING","link":10312}],"outputs":[{"localized_name":"CONDITIONING","name":"CONDITIONING","type":"CONDITIONING","links":[10318]}],"properties":{"Node name for S&R":"ConditioningZeroOut","cnr_id":"comfy-core","ver":"0.10.0","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"color":"#322","bgcolor":"#533"},{"id":66,"type":"SetNode","pos":[1420,-4210],"size":[210,50],"flags":{"collapsed":true},"order":37,"mode":0,"inputs":[{"name":"WARPPIPE","type":"WARPPIPE","link":99}],"outputs":[{"name":"*","type":"*","links":null}],"title":"Set_warp - krea2","properties":{"Node name for S&R":"SetNode","aux_id":"kijai/ComfyUI-KJNodes","previousName":"warp - krea2","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["warp - krea2"],"widgets_values_named":{"Constant":"warp - krea2"}},{"id":69,"type":"Warp","pos":[1420.5814441822615,-4260],"size":[199.41855581773848,560],"flags":{"collapsed":false},"order":32,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":null},{"localized_name":"prompt_positive","name":"prompt_positive","shape":7,"type":"STRING","link":null},{"localized_name":"prompt_negative","name":"prompt_negative","shape":7,"type":"STRING","link":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","shape":7,"type":"CONDITIONING","link":10317},{"localized_name":"conditioning_negative","name":"conditioning_negative","shape":7,"type":"CONDITIONING","link":10318},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null},{"localized_name":"model_1","name":"model_1","shape":7,"type":"MODEL","link":10315},{"localized_name":"model_2","name":"model_2","shape":7,"type":"MODEL","link":null},{"localized_name":"clip","name":"clip","shape":7,"type":"CLIP","link":null},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":null},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":10316},{"localized_name":"latent","name":"latent","shape":7,"type":"LATENT","link":106},{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","link":107},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","link":108},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","link":109},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","link":110},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","link":111},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","link":112},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","link":113},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","link":114},{"localized_name":"width","name":"width","shape":7,"type":"INT","link":115},{"localized_name":"height","name":"height","shape":7,"type":"INT","link":116}],"outputs":[{"localized_name":"warp","name":"warp","type":"WARPPIPE","links":[99]}],"properties":{"Node name for S&R":"Warp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"874bdef2c5b8d55a8bb980e9e95b0d2f21ccac57","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"color":"#222","bgcolor":"#000"},{"id":113,"type":"Image Comparer (rgthree)","pos":[180,-2500],"size":[270,460],"flags":{"collapsed":false},"order":39,"mode":4,"inputs":[{"dir":3,"name":"image_a","type":"IMAGE","link":151},{"dir":3,"name":"image_b","type":"IMAGE","link":152}],"outputs":[{"dir":4,"name":"images","shape":3,"type":"IMAGE","links":null}],"title":"Image Comparer","properties":{"comparer_mode":"Slide","cnr_id":"rgthree-comfy","ver":"32142fe476878a354dda6e2d4b5ea98960de3ced","connections_layout":["Left","Right"],"ue_properties":{"version":"7.0.1","widget_ue_connectable":{}}},"widgets_values":[[{"name":"A","selected":true,"url":"/api/view?filename=rgthree.compare._temp_ifgzg_00001_.png&type=temp&subfolder=&rand=0.5713009616209365"},{"name":"B","selected":true,"url":"/api/view?filename=rgthree.compare._temp_ifgzg_00002_.png&type=temp&subfolder=&rand=0.18677132983655031"}]],"widgets_values_named":{"rgthree_comparer":{"images":[{"name":"A","selected":true,"url":"/api/view?filename=rgthree.compare._temp_ifgzg_00001_.png&type=temp&subfolder=&rand=0.5713009616209365","img":{}},{"name":"B","selected":true,"url":"/api/view?filename=rgthree.compare._temp_ifgzg_00002_.png&type=temp&subfolder=&rand=0.18677132983655031","img":{}}]}},"color":"#222","bgcolor":"#000"},{"id":123,"type":"SetNode","pos":[470,-2480],"size":[210,50],"flags":{"collapsed":true},"order":44,"mode":0,"inputs":[{"name":"*","type":"*","link":161}],"outputs":[{"name":"*","type":"*","links":null}],"title":"Set_img - final - krea2","properties":{"Node name for S&R":"SetNode","aux_id":"kijai/ComfyUI-KJNodes","previousName":"img - final - krea2","ue_properties":{"widget_ue_connectable":{},"version":"7.5.2","input_ue_unconnectable":{}}},"widgets_values":["img - final - krea2"],"widgets_values_named":{"Constant":"img - final - krea2"}},{"id":89,"type":"SetNode","pos":[-110,-2380],"size":[210,58],"flags":{"collapsed":true},"order":40,"mode":0,"inputs":[{"name":"*","type":"*","link":129}],"outputs":[{"name":"*","type":"*","links":null}],"title":"Set_img - filtered - krea2","properties":{"Node name for S&R":"SetNode","aux_id":"kijai/ComfyUI-KJNodes","previousName":"img - filtered - krea2","ue_properties":{"widget_ue_connectable":{},"version":"7.5.2","input_ue_unconnectable":{}}},"widgets_values":["img - filtered - krea2"],"widgets_values_named":{"Constant":"img - filtered - krea2"}},{"id":88,"type":"SetNode","pos":[-110,-2340],"size":[222.3306640625,60],"flags":{"collapsed":true},"order":41,"mode":0,"inputs":[{"name":"IMAGE","type":"IMAGE","link":128}],"outputs":[{"name":"*","type":"*","links":null}],"title":"Set_img - filtered - z-image","properties":{"Node name for S&R":"SetNode","aux_id":"kijai/ComfyUI-KJNodes","previousName":"","ue_properties":{"widget_ue_connectable":{},"version":"7.5.1","input_ue_unconnectable":{}}},"widgets_values":["img - filtered - z-image"],"widgets_values_named":{"Constant":"img - filtered - z-image"},"color":"#2a363b","bgcolor":"#3f5159"},{"id":109,"type":"PreviewImage","pos":[-110,-2500],"size":[270,460],"flags":{"collapsed":false},"order":35,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":149}],"outputs":[{"localized_name":"images","name":"images","type":"IMAGE","links":null}],"properties":{"Node name for S&R":"PreviewImage","cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[],"widgets_values_named":{},"color":"#222","bgcolor":"#000"},{"id":98,"type":"GetNode","pos":[-630,-2580],"size":[210,50],"flags":{"collapsed":true},"order":12,"mode":0,"inputs":[],"outputs":[{"name":"WARPPIPE","type":"WARPPIPE","links":[166]}],"title":"Get_warp - krea2","properties":{"Node name for S&R":"GetNode","aux_id":"kijai/ComfyUI-KJNodes"},"widgets_values":["warp - krea2"],"widgets_values_named":{"Constant":"warp - krea2"}},{"id":63,"type":"GetNode","pos":[-630,-4220],"size":[210,50],"flags":{"collapsed":true},"order":13,"mode":0,"inputs":[],"outputs":[{"name":"*","type":"*","links":[98]}],"title":"Get_img - filtered - krea2","properties":{"Node name for S&R":"GetNode","aux_id":"kijai/ComfyUI-KJNodes","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["img - filtered - krea2"],"widgets_values_named":{"Constant":"img - filtered - krea2"}},{"id":64,"type":"GetNode","pos":[-630,-4180],"size":[210,50],"flags":{"collapsed":true},"order":14,"mode":0,"inputs":[],"outputs":[{"name":"*","type":"*","slot_index":0,"links":[97]}],"title":"Get_img - final - krea2","properties":{"Node name for S&R":"GetNode","aux_id":"kijai/ComfyUI-KJNodes","ue_properties":{"version":"7.0.1","widget_ue_connectable":{}}},"widgets_values":["img - final - krea2"],"widgets_values_named":{"Constant":"img - final - krea2"}},{"id":4010,"type":"CLIPTextEncode","pos":[820.342496944017,-4133.322404481168],"size":[220,76],"flags":{"collapsed":true},"order":26,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":10311},{"localized_name":"text","name":"text","type":"STRING","widget":{"name":"text"},"link":10319}],"outputs":[{"localized_name":"CONDITIONING","name":"CONDITIONING","type":"CONDITIONING","links":[10312,10317]}],"properties":{"Node name for S&R":"CLIPTextEncode","cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{"text":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[""],"widgets_values_named":{"text":""},"color":"#232","bgcolor":"#353"},{"id":62,"type":"Bookmark (rgthree)","pos":[-630,-4300],"size":[210,50],"flags":{"collapsed":true},"order":15,"mode":0,"inputs":[],"outputs":[],"title":"🔖 (1) Krea 2","properties":{"ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["1",1],"widgets_values_named":{"shortcut_key":"1","zoom":1},"color":"#222","bgcolor":"#000"},{"id":65,"type":"Image Comparer (rgthree)","pos":[-630,-4260],"size":[470,565],"flags":{"collapsed":false},"order":22,"mode":0,"inputs":[{"dir":3,"name":"image_a","type":"IMAGE","link":97},{"dir":3,"name":"image_b","type":"IMAGE","link":98}],"outputs":[{"dir":4,"name":"images","shape":3,"type":"IMAGE","links":null}],"title":"Image Comparer","properties":{"comparer_mode":"Slide","cnr_id":"rgthree-comfy","ver":"32142fe476878a354dda6e2d4b5ea98960de3ced","connections_layout":["Left","Right"],"ue_properties":{"version":"7.0.1","widget_ue_connectable":{}}},"widgets_values":[[{"name":"A","selected":true,"url":"/api/view?filename=rgthree.compare._temp_aocsu_00021_.png&type=temp&subfolder=&rand=0.46523819324610927"},{"name":"B","selected":true,"url":"/api/view?filename=rgthree.compare._temp_aocsu_00022_.png&type=temp&subfolder=&rand=0.5681667652858892"}]],"widgets_values_named":{"rgthree_comparer":{"images":[{"name":"A","selected":true,"url":"/api/view?filename=rgthree.compare._temp_aocsu_00021_.png&type=temp&subfolder=&rand=0.46523819324610927","img":{}},{"name":"B","selected":true,"url":"/api/view?filename=rgthree.compare._temp_aocsu_00022_.png&type=temp&subfolder=&rand=0.5681667652858892","img":{}}]}},"color":"#222","bgcolor":"#000"},{"id":4007,"type":"Warp Lora Prompt","pos":[109.65324485607174,-4260.7824873598975],"size":[671.6496509615897,573.034477271729],"flags":{},"order":21,"mode":0,"inputs":[{"localized_name":"model","name":"model","shape":7,"type":"MODEL","link":10309},{"localized_name":"clip","name":"clip","shape":7,"type":"CLIP","link":10310},{"localized_name":"text","name":"text","type":"STRING","widget":{"name":"text"},"link":null},{"localized_name":"apply_to_clip","name":"apply_to_clip","type":"BOOLEAN","widget":{"name":"apply_to_clip"},"link":null},{"localized_name":"loras","name":"loras","shape":7,"type":"STRING","widget":{"name":"loras"},"link":null}],"outputs":[{"localized_name":"model","name":"model","type":"MODEL","links":[10315]},{"localized_name":"clip","name":"clip","type":"CLIP","links":[10311]},{"localized_name":"prompt","name":"prompt","type":"STRING","links":[10319]}],"properties":{"Node name for S&R":"Warp Lora Prompt"},"widgets_values":["An 800x400 pixel banner in retro 8-bit pixel art style (like classic NES Super Mario Bros). A green warp pipe from Super Mario centered in the composition, viewed from a slight top-down 3/4 angle showing the dark circular opening at the top. The pipe is the iconic bright green (#30b030) with darker green shading on the sides and a wide cylindrical rim at the top, just like in the original NES games. Colorful pixel-art data particles (blue, orange, purple small squares) float into the pipe opening, suggesting data being warped/bundled. Solid dark navy/charcoal background (#1a1a2e). Clean pixel art aesthetic with visible blocky pixels, no anti-aliasing, crisp edges. No text, no characters, no ground tiles. Just the pipe and data particles on dark background. Simple, iconic, readable at small sizes.",null,true,""],"widgets_values_named":{"text":"An 800x400 pixel banner in retro 8-bit pixel art style (like classic NES Super Mario Bros). A green warp pipe from Super Mario centered in the composition, viewed from a slight top-down 3/4 angle showing the dark circular opening at the top. The pipe is the iconic bright green (#30b030) with darker green shading on the sides and a wide cylindrical rim at the top, just like in the original NES games. Colorful pixel-art data particles (blue, orange, purple small squares) float into the pipe opening, suggesting data being warped/bundled. Solid dark navy/charcoal background (#1a1a2e). Clean pixel art aesthetic with visible blocky pixels, no anti-aliasing, crisp edges. No text, no characters, no ground tiles. Just the pipe and data particles on dark background. Simple, iconic, readable at small sizes.","Browse LoRAs":null,"apply_to_clip":true,"loras":""},"color":"#323","bgcolor":"#535","warppipeWidgets":{"text":"An 800x400 pixel banner in retro 8-bit pixel art style (like classic NES Super Mario Bros). A green warp pipe from Super Mario centered in the composition, viewed from a slight top-down 3/4 angle showing the dark circular opening at the top. The pipe is the iconic bright green (#30b030) with darker green shading on the sides and a wide cylindrical rim at the top, just like in the original NES games. Colorful pixel-art data particles (blue, orange, purple small squares) float into the pipe opening, suggesting data being warped/bundled. Solid dark navy/charcoal background (#1a1a2e). Clean pixel art aesthetic with visible blocky pixels, no anti-aliasing, crisp edges. No text, no characters, no ground tiles. Just the pipe and data particles on dark background. Simple, iconic, readable at small sizes.","Browse LoRAs":null,"apply_to_clip":true,"loras":""}},{"id":4002,"type":"Warp Lora Prompt","pos":[95.4033345066597,-3500.717712625711],"size":[671.6496509615897,573.034477271729],"flags":{},"order":20,"mode":0,"inputs":[{"localized_name":"model","name":"model","shape":7,"type":"MODEL","link":10300},{"localized_name":"clip","name":"clip","shape":7,"type":"CLIP","link":10303},{"localized_name":"text","name":"text","type":"STRING","widget":{"name":"text"},"link":null},{"localized_name":"apply_to_clip","name":"apply_to_clip","type":"BOOLEAN","widget":{"name":"apply_to_clip"},"link":null},{"localized_name":"loras","name":"loras","shape":7,"type":"STRING","widget":{"name":"loras"},"link":null}],"outputs":[{"localized_name":"model","name":"model","type":"MODEL","links":[10305]},{"localized_name":"clip","name":"clip","type":"CLIP","links":[10306,10308]},{"localized_name":"prompt","name":"prompt","type":"STRING","links":[10307]}],"properties":{"Node name for S&R":"Warp Lora Prompt"},"widgets_values":["An 800x400 pixel banner in retro 8-bit pixel art style (like classic NES Super Mario Bros). A green warp pipe from Super Mario centered in the composition, viewed from a slight top-down 3/4 angle showing the dark circular opening at the top. The pipe is the iconic bright green (#30b030) with darker green shading on the sides and a wide cylindrical rim at the top, just like in the original NES games. Colorful pixel-art data particles (blue, orange, purple small squares) float into the pipe opening, suggesting data being warped/bundled. Solid dark navy/charcoal background (#1a1a2e). Clean pixel art aesthetic with visible blocky pixels, no anti-aliasing, crisp edges. No text, no characters, no ground tiles. Just the pipe and data particles on dark background. Simple, iconic, readable at small sizes.",null,true,""],"widgets_values_named":{"text":"An 800x400 pixel banner in retro 8-bit pixel art style (like classic NES Super Mario Bros). A green warp pipe from Super Mario centered in the composition, viewed from a slight top-down 3/4 angle showing the dark circular opening at the top. The pipe is the iconic bright green (#30b030) with darker green shading on the sides and a wide cylindrical rim at the top, just like in the original NES games. Colorful pixel-art data particles (blue, orange, purple small squares) float into the pipe opening, suggesting data being warped/bundled. Solid dark navy/charcoal background (#1a1a2e). Clean pixel art aesthetic with visible blocky pixels, no anti-aliasing, crisp edges. No text, no characters, no ground tiles. Just the pipe and data particles on dark background. Simple, iconic, readable at small sizes.","Browse LoRAs":null,"apply_to_clip":true,"loras":""},"color":"#323","bgcolor":"#535","warppipeWidgets":{"text":"An 800x400 pixel banner in retro 8-bit pixel art style (like classic NES Super Mario Bros). A green warp pipe from Super Mario centered in the composition, viewed from a slight top-down 3/4 angle showing the dark circular opening at the top. The pipe is the iconic bright green (#30b030) with darker green shading on the sides and a wide cylindrical rim at the top, just like in the original NES games. Colorful pixel-art data particles (blue, orange, purple small squares) float into the pipe opening, suggesting data being warped/bundled. Solid dark navy/charcoal background (#1a1a2e). Clean pixel art aesthetic with visible blocky pixels, no anti-aliasing, crisp edges. No text, no characters, no ground tiles. Just the pipe and data particles on dark background. Simple, iconic, readable at small sizes.","Browse LoRAs":null,"apply_to_clip":true,"loras":""}},{"id":59,"type":"Warp Provider","pos":[1110,-3490],"size":[280,565],"flags":{"collapsed":false},"order":16,"mode":0,"inputs":[{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","widget":{"name":"batch_size"},"link":null},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","widget":{"name":"steps_1"},"link":null},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","widget":{"name":"steps_2"},"link":null},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","widget":{"name":"steps_3"},"link":null},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"size_preset","name":"size_preset","shape":7,"type":"COMBO","widget":{"name":"size_preset"},"link":null},{"localized_name":"custom_width","name":"custom_width","shape":7,"type":"INT","widget":{"name":"custom_width"},"link":null},{"localized_name":"custom_height","name":"custom_height","shape":7,"type":"INT","widget":{"name":"custom_height"},"link":null}],"outputs":[{"localized_name":"latent","name":"latent","type":"LATENT","links":[82]},{"localized_name":"batch_size","name":"batch_size","type":"INT","links":[83]},{"localized_name":"seed","name":"seed","type":"INT","links":[84]},{"localized_name":"steps_1","name":"steps_1","type":"INT","links":[85]},{"localized_name":"steps_2","name":"steps_2","type":"INT","links":[86]},{"localized_name":"steps_3","name":"steps_3","type":"INT","links":[87]},{"localized_name":"cfg","name":"cfg","type":"FLOAT","links":[88]},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","links":[89]},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","links":[90]},{"localized_name":"width","name":"width","type":"INT","links":[91]},{"localized_name":"height","name":"height","type":"INT","links":[92]}],"properties":{"Node name for S&R":"Warp Provider","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"80e0443476fcdcebfe03eb0c6923b2e1c5f9d674","ue_properties":{"widget_ue_connectable":{"batch_size":true,"seed":true,"steps_1":true,"steps_2":true,"steps_3":true,"cfg":true,"sampler_name":true,"scheduler":true,"size_preset":true,"custom_width":true,"custom_height":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[4,48,"increment",8,8,8,1,"dpmpp_sde","beta","Landscape (classic) | 4:3 | 1024 × 768 | 0.79 MP",800,400],"widgets_values_named":{"batch_size":4,"seed":48,"control_after_generate":"increment","steps_1":8,"steps_2":8,"steps_3":8,"cfg":1,"sampler_name":"dpmpp_sde","scheduler":"beta","size_preset":"Landscape (classic) | 4:3 | 1024 × 768 | 0.79 MP","custom_width":800,"custom_height":400},"color":"#323","bgcolor":"#535"},{"id":127,"type":"Unwarp","pos":[470,-2520],"size":[197.876953125,446.4376027592439],"flags":{"collapsed":true},"order":38,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":174}],"outputs":[{"localized_name":"model_1","name":"model_1","type":"MODEL","links":null},{"localized_name":"model_2","name":"model_2","type":"MODEL","links":null},{"localized_name":"image","name":"image","type":"IMAGE","links":[162,10324]},{"localized_name":"mask","name":"mask","type":"MASK","links":null},{"localized_name":"clip","name":"clip","type":"CLIP","links":null},{"localized_name":"clip_vision","name":"clip_vision","type":"CLIP_VISION","links":null},{"localized_name":"vae","name":"vae","type":"VAE","links":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","type":"CONDITIONING","links":null},{"localized_name":"conditioning_negative","name":"conditioning_negative","type":"CONDITIONING","links":null},{"localized_name":"latent","name":"latent","type":"LATENT","links":null},{"localized_name":"prompt_positive","name":"prompt_positive","type":"STRING","links":null},{"localized_name":"prompt_negative","name":"prompt_negative","type":"STRING","links":null},{"localized_name":"batch_size","name":"batch_size","type":"INT","links":null},{"localized_name":"seed","name":"seed","type":"INT","links":null},{"localized_name":"steps_1","name":"steps_1","type":"INT","links":null},{"localized_name":"steps_2","name":"steps_2","type":"INT","links":null},{"localized_name":"steps_3","name":"steps_3","type":"INT","links":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","links":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","links":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","links":null},{"localized_name":"width","name":"width","type":"INT","links":null},{"localized_name":"height","name":"height","type":"INT","links":null}],"properties":{"Node name for S&R":"Unwarp"},"color":"#222","bgcolor":"#000"},{"id":114,"type":"fbece873-b379-432d-943d-b99e2e92f61a","pos":[180,-2700],"size":[270,150],"flags":{"collapsed":false},"order":33,"mode":4,"inputs":[{"name":"warp","shape":7,"type":"WARPPIPE","link":173},{"name":"upscale_by","type":"FLOAT","widget":{"name":"upscale_by"},"link":null},{"name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null}],"outputs":[{"name":"warp","type":"WARPPIPE","links":[174,10326]},{"label":"img in","name":"image","type":"IMAGE","links":[152]},{"label":"img out","name":"IMAGE","type":"IMAGE","links":[151]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}},"proxyWidgetErrorQuarantine":[{"originalEntry":["-1","upscale_by"],"reason":"missingSourceNode","hostValue":1.5,"attemptedAtVersion":1},{"originalEntry":["-1","denoise"],"reason":"missingSourceNode","hostValue":0.1,"attemptedAtVersion":1}],"previewExposures":[]},"widgets_values":[1.5,0.1],"widgets_values_named":{"upscale_by":1.5,"denoise":0.1},"color":"#432","bgcolor":"#653"},{"id":4013,"type":"Save Image Civitai","pos":[472.27976856811904,-2698.2992983849745],"size":[388.4617674693486,654.0273837395725],"flags":{"collapsed":false},"order":43,"mode":0,"inputs":[{"localized_name":"images","name":"images","shape":7,"type":"IMAGE","link":10324},{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":10326},{"localized_name":"filename_prefix","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null},{"localized_name":"embed_metadata","name":"embed_metadata","type":"BOOLEAN","widget":{"name":"embed_metadata"},"link":null},{"localized_name":"embed_workflow","name":"embed_workflow","type":"BOOLEAN","widget":{"name":"embed_workflow"},"link":null},{"localized_name":"file_format","name":"file_format","type":"COMBO","widget":{"name":"file_format"},"link":null},{"localized_name":"preview","name":"preview","type":"BOOLEAN","widget":{"name":"preview"},"link":null}],"outputs":[],"properties":{"Node name for S&R":"Save Image Civitai"},"widgets_values":["%date:yy-MM-dd hh-mm-ss%",true,true,"png",true],"widgets_values_named":{"filename_prefix":"%date:yy-MM-dd hh-mm-ss%","embed_metadata":true,"embed_workflow":true,"file_format":"png","preview":true},"color":"#222","bgcolor":"#000","warppipeWidgets":{"filename_prefix":"%date:yy-MM-dd hh-mm-ss%","embed_metadata":true,"embed_workflow":true,"file_format":"png","preview":true,"$$canvas-image-preview":""}},{"id":110,"type":"32bbae29-443d-4a61-afff-dc005730b71a","pos":[-110,-2700],"size":[270,150],"flags":{"collapsed":false},"order":30,"mode":0,"inputs":[{"name":"warp","shape":7,"type":"WARPPIPE","link":150},{"name":"timeout","type":"INT","widget":{"name":"timeout"},"link":null},{"name":"ontimeout","type":"COMBO","widget":{"name":"ontimeout"},"link":null}],"outputs":[{"name":"warp","type":"WARPPIPE","links":[173]},{"label":"img in","name":"image","type":"IMAGE","links":null},{"label":"img out","name":"images","type":"IMAGE","links":[134,149]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}},"proxyWidgetErrorQuarantine":[{"originalEntry":["-1","timeout"],"reason":"missingSourceNode","hostValue":300,"attemptedAtVersion":1},{"originalEntry":["-1","ontimeout"],"reason":"missingSourceNode","hostValue":"send all","attemptedAtVersion":1}],"previewExposures":[]},"widgets_values":[300,"send all"],"widgets_values_named":{"timeout":300,"ontimeout":"send all"},"color":"#432","bgcolor":"#653"},{"id":95,"type":"SetNode","pos":[-630,-2620],"size":[210,50],"flags":{"collapsed":true},"order":23,"mode":0,"inputs":[{"name":"INT","type":"INT","link":133}],"outputs":[{"name":"INT","type":"INT","links":[]}],"title":"Set_model switch","properties":{"Node name for S&R":"SetNode","aux_id":"kijai/ComfyUI-KJNodes","previousName":"","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":["model switch"],"widgets_values_named":{"Constant":"model switch"},"color":"#1b4669","bgcolor":"#29699c"},{"id":129,"type":"ImpactSwitch","pos":[-627.675406747466,-2656.8019711121588],"size":[270,394],"flags":{"collapsed":true},"order":24,"mode":0,"inputs":[{"localized_name":"input1","name":"input1","shape":7,"type":"*","link":166},{"localized_name":"select","name":"select","type":"INT","widget":{"name":"select"},"link":167},{"localized_name":"sel_mode","name":"sel_mode","type":"BOOLEAN","widget":{"name":"sel_mode"},"link":null},{"name":"input2","type":"WARPPIPE","link":168},{"name":"input3","type":"WARPPIPE","link":null}],"outputs":[{"label":"WARPPIPE","localized_name":"selected_value","name":"selected_value","type":"*","links":[170]},{"localized_name":"selected_label","name":"selected_label","type":"STRING","links":null},{"localized_name":"selected_index","name":"selected_index","type":"INT","links":null}],"properties":{"Node name for S&R":"ImpactSwitch"},"widgets_values":[1,false],"widgets_values_named":{"select":1,"sel_mode":false}},{"id":111,"type":"INTConstant","pos":[-630,-2699.3604113995125],"size":[214.7574125414843,147.14217126581207],"flags":{"collapsed":false},"order":17,"mode":0,"inputs":[{"localized_name":"value","name":"value","type":"INT","widget":{"name":"value"},"link":null}],"outputs":[{"localized_name":"value","name":"value","type":"INT","links":[133,140,167]}],"title":"Model Selector","properties":{"Node name for S&R":"INTConstant","cnr_id":"comfyui-kjnodes","ver":"1.1.0","ue_properties":{"version":"7.0.1","widget_ue_connectable":{},"input_ue_unconnectable":{}}},"widgets_values":[1],"widgets_values_named":{"value":1},"color":"#323","bgcolor":"#535"},{"id":68,"type":"Warp Provider","pos":[1120,-4260],"size":[280,565],"flags":{"collapsed":false},"order":18,"mode":0,"inputs":[{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","widget":{"name":"batch_size"},"link":null},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","widget":{"name":"steps_1"},"link":null},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","widget":{"name":"steps_2"},"link":null},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","widget":{"name":"steps_3"},"link":null},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"size_preset","name":"size_preset","shape":7,"type":"COMBO","widget":{"name":"size_preset"},"link":null},{"localized_name":"custom_width","name":"custom_width","shape":7,"type":"INT","widget":{"name":"custom_width"},"link":null},{"localized_name":"custom_height","name":"custom_height","shape":7,"type":"INT","widget":{"name":"custom_height"},"link":null}],"outputs":[{"localized_name":"latent","name":"latent","type":"LATENT","links":[106]},{"localized_name":"batch_size","name":"batch_size","type":"INT","links":[107]},{"localized_name":"seed","name":"seed","type":"INT","links":[108]},{"localized_name":"steps_1","name":"steps_1","type":"INT","links":[109]},{"localized_name":"steps_2","name":"steps_2","type":"INT","links":[110]},{"localized_name":"steps_3","name":"steps_3","type":"INT","links":[111]},{"localized_name":"cfg","name":"cfg","type":"FLOAT","links":[112]},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","links":[113]},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","links":[114]},{"localized_name":"width","name":"width","type":"INT","links":[115]},{"localized_name":"height","name":"height","type":"INT","links":[116]}],"properties":{"Node name for S&R":"Warp Provider","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"80e0443476fcdcebfe03eb0c6923b2e1c5f9d674","ue_properties":{"widget_ue_connectable":{"batch_size":true,"seed":true,"steps_1":true,"steps_2":true,"steps_3":true,"cfg":true,"sampler_name":true,"scheduler":true,"size_preset":true,"custom_width":true,"custom_height":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[2,45,"increment",8,8,8,1,"euler","simple","Photo portrait (high-res) | 2:3 | 1024 × 1536 | 1.57 MP",1024,1024],"widgets_values_named":{"batch_size":2,"seed":45,"control_after_generate":"increment","steps_1":8,"steps_2":8,"steps_3":8,"cfg":1,"sampler_name":"euler","scheduler":"simple","size_preset":"Photo portrait (high-res) | 2:3 | 1024 × 1536 | 1.57 MP","custom_width":1024,"custom_height":1024},"color":"#323","bgcolor":"#535"}],"links":[[75,56,0,53,0,"WARPPIPE"],[82,59,0,56,12,"LATENT"],[83,59,1,56,13,"INT"],[84,59,2,56,14,"INT"],[85,59,3,56,15,"INT"],[86,59,4,56,16,"INT"],[87,59,5,56,17,"INT"],[88,59,6,56,18,"FLOAT"],[89,59,7,56,19,"COMBO"],[90,59,8,56,20,"COMBO"],[91,59,9,56,21,"INT"],[92,59,10,56,22,"INT"],[93,55,0,58,0,"IMAGE"],[94,54,0,58,1,"IMAGE"],[97,64,0,65,0,"IMAGE"],[98,63,0,65,1,"IMAGE"],[99,69,0,66,0,"WARPPIPE"],[106,68,0,69,12,"LATENT"],[107,68,1,69,13,"INT"],[108,68,2,69,14,"INT"],[109,68,3,69,15,"INT"],[110,68,4,69,16,"INT"],[111,68,5,69,17,"INT"],[112,68,6,69,18,"FLOAT"],[113,68,7,69,19,"COMBO"],[114,68,8,69,20,"COMBO"],[115,68,9,69,21,"INT"],[116,68,10,69,22,"INT"],[128,96,1,88,0,"IMAGE"],[129,96,0,89,0,"IMAGE"],[133,111,0,95,0,"INT"],[134,110,2,96,0,"IMAGE"],[135,93,0,96,1,"INT"],[140,111,0,108,0,"INT"],[149,110,2,109,0,"IMAGE"],[150,97,0,110,0,"WARPPIPE"],[151,114,2,113,0,"IMAGE"],[152,114,1,113,1,"IMAGE"],[157,124,1,119,0,"IMAGE"],[161,124,0,123,0,"IMAGE"],[162,127,2,124,0,"IMAGE"],[163,125,0,124,1,"INT"],[166,98,0,129,0,"WARPPIPE"],[167,111,0,129,1,"INT"],[168,106,0,129,3,"WARPPIPE"],[170,129,0,97,0,"WARPPIPE"],[172,84,0,97,1,"INT"],[173,110,0,114,0,"WARPPIPE"],[174,114,0,127,0,"WARPPIPE"],[10284,3996,0,3997,0,"CONDITIONING"],[10290,3996,0,56,3,"CONDITIONING"],[10291,3997,0,56,4,"CONDITIONING"],[10293,3999,0,56,11,"VAE"],[10300,4001,0,4002,0,"MODEL"],[10303,4001,1,4002,1,"CLIP"],[10305,4002,0,56,7,"MODEL"],[10306,4002,1,56,9,"CLIP"],[10307,4002,2,56,1,"STRING"],[10308,4002,1,3996,0,"CLIP"],[10309,4008,0,4007,0,"MODEL"],[10310,4008,1,4007,1,"CLIP"],[10311,4007,1,4010,0,"CLIP"],[10312,4010,0,4011,0,"CONDITIONING"],[10315,4007,0,69,7,"MODEL"],[10316,4009,0,69,11,"VAE"],[10317,4010,0,69,3,"CONDITIONING"],[10318,4011,0,69,4,"CONDITIONING"],[10319,4007,2,4010,1,"STRING"],[10324,127,2,4013,0,"IMAGE"],[10326,114,0,4013,1,"WARPPIPE"]],"groups":[{"id":2,"title":"Z-Image Turbo","bounding":[-660,-3620,2320,760],"color":"#444","flags":{}},{"id":3,"title":"Krea 2","bounding":[-660,-4390,2320,760],"color":"#444","flags":{}},{"id":4,"title":"Workflow","bounding":[-660,-2850,2310,890],"color":"#444","flags":{}}],"definitions":{"subgraphs":[{"id":"4210877b-b487-4259-a2a6-521337aa69ae","version":1,"state":{"lastGroupId":35,"lastNodeId":4013,"lastLinkId":10327,"lastRerouteId":0},"revision":0,"config":{},"name":"Generate","inputNode":{"id":-10,"bounding":[-310,-4160,120,100]},"outputNode":{"id":-20,"bounding":[1230,-4140,120,60]},"inputs":[{"id":"e490d8ec-04c8-42b5-abee-9970e283a150","name":"warp","type":"WARPPIPE","linkIds":[9129,9130],"pos":[-210,-4140]},{"id":"89f19f17-064f-4828-bf61-26a49a25ac31","name":"select","type":"INT","linkIds":[],"pos":[-210,-4120]},{"id":"e6701c54-926f-41dd-b1c8-c6e8025bcb73","name":"boolean","type":"BOOLEAN","linkIds":[],"pos":[-210,-4100]}],"outputs":[{"id":"d8677576-7bab-4075-9f38-04ed20a0bac4","name":"selected_value","type":"*","linkIds":[9131],"label":"warp","pos":[1250,-4120]}],"widgets":[],"nodes":[{"id":3368,"type":"VAEDecode","pos":[646.0615234375,-4143],"size":[140,50],"flags":{"collapsed":false},"order":0,"mode":0,"inputs":[{"label":"samples","localized_name":"samples","name":"samples","type":"LATENT","link":9116},{"label":"vae","localized_name":"vae","name":"vae","type":"VAE","link":9127}],"outputs":[{"label":"IMAGE","localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","slot_index":0,"links":[9126]}],"properties":{"Node name for S&R":"VAEDecode","cnr_id":"comfy-core","ver":"0.3.16","ue_properties":{"version":"7.0.1","widget_ue_connectable":{}}},"color":"#222","bgcolor":"#000"},{"id":3369,"type":"KSampler","pos":[336.0615234375,-4233],"size":[270,310],"flags":{"collapsed":false},"order":1,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":9117},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":9118},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":9119},{"localized_name":"latent_image","name":"latent_image","type":"LATENT","link":9120},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":9121},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":9122},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":9123},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":9124},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":9125},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","slot_index":0,"links":[9116]}],"properties":{"Node name for S&R":"KSampler","cnr_id":"comfy-core","ver":"0.3.16","ue_properties":{"version":"7.0.1","widget_ue_connectable":{"seed":true,"sampler_name":true}}},"widgets_values":[317198787338181,"fixed",8,1,"lcm","exponential",1],"widgets_values_named":{"seed":317198787338181,"control_after_generate":"fixed","steps":8,"cfg":1,"sampler_name":"lcm","scheduler":"exponential","denoise":1},"color":"#323","bgcolor":"#535"},{"id":3370,"type":"Unwarp","pos":[26.0615234375,-4233],"size":[197.876953125,446],"flags":{"collapsed":false},"order":2,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":9130}],"outputs":[{"localized_name":"model_1","name":"model_1","type":"MODEL","links":[9117]},{"localized_name":"model_2","name":"model_2","type":"MODEL","links":[]},{"localized_name":"image","name":"image","type":"IMAGE","links":[]},{"localized_name":"mask","name":"mask","type":"MASK","links":[]},{"localized_name":"clip","name":"clip","type":"CLIP","links":[]},{"localized_name":"clip_vision","name":"clip_vision","type":"CLIP_VISION","links":[]},{"localized_name":"vae","name":"vae","type":"VAE","links":[9127]},{"localized_name":"conditioning_positive","name":"conditioning_positive","type":"CONDITIONING","links":[9118]},{"localized_name":"conditioning_negative","name":"conditioning_negative","type":"CONDITIONING","links":[9119]},{"localized_name":"latent","name":"latent","type":"LATENT","links":[9120]},{"localized_name":"prompt_positive","name":"prompt_positive","type":"STRING","links":[]},{"localized_name":"prompt_negative","name":"prompt_negative","type":"STRING","links":[]},{"localized_name":"batch_size","name":"batch_size","type":"INT","links":[]},{"localized_name":"seed","name":"seed","type":"INT","links":[9121]},{"localized_name":"steps_1","name":"steps_1","type":"INT","links":[9122]},{"localized_name":"steps_2","name":"steps_2","type":"INT","links":[]},{"localized_name":"steps_3","name":"steps_3","type":"INT","links":[]},{"localized_name":"cfg","name":"cfg","type":"FLOAT","links":[9123]},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","links":[9124]},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","links":[9125]},{"localized_name":"width","name":"width","type":"INT","links":[]},{"localized_name":"height","name":"height","type":"INT","links":[]}],"properties":{"Node name for S&R":"Unwarp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"80e0443476fcdcebfe03eb0c6923b2e1c5f9d674","ue_properties":{"widget_ue_connectable":{},"version":"7.1","input_ue_unconnectable":{}}},"color":"#222","bgcolor":"#000"},{"id":3371,"type":"Warp","pos":[846.0615234375,-4273],"size":[197.876953125,466],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":9129},{"localized_name":"prompt_positive","name":"prompt_positive","shape":7,"type":"STRING","link":null},{"localized_name":"prompt_negative","name":"prompt_negative","shape":7,"type":"STRING","link":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"conditioning_negative","name":"conditioning_negative","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":9126},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null},{"localized_name":"model_1","name":"model_1","shape":7,"type":"MODEL","link":null},{"localized_name":"model_2","name":"model_2","shape":7,"type":"MODEL","link":null},{"localized_name":"clip","name":"clip","shape":7,"type":"CLIP","link":null},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":null},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":null},{"localized_name":"latent","name":"latent","shape":7,"type":"LATENT","link":null},{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","link":null},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","link":null},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","link":null},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","link":null},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","link":null},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","link":null},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","link":null},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","link":null},{"localized_name":"width","name":"width","shape":7,"type":"INT","link":null},{"localized_name":"height","name":"height","shape":7,"type":"INT","link":null}],"outputs":[{"localized_name":"warp","name":"warp","type":"WARPPIPE","links":[9131]}],"properties":{"Node name for S&R":"Warp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"53c24e15434e882072104fa48fa45ddb21e69df3","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"color":"#222","bgcolor":"#000"}],"groups":[],"links":[{"id":9116,"origin_id":3369,"origin_slot":0,"target_id":3368,"target_slot":0,"type":"LATENT"},{"id":9117,"origin_id":3370,"origin_slot":0,"target_id":3369,"target_slot":0,"type":"MODEL"},{"id":9118,"origin_id":3370,"origin_slot":7,"target_id":3369,"target_slot":1,"type":"CONDITIONING"},{"id":9119,"origin_id":3370,"origin_slot":8,"target_id":3369,"target_slot":2,"type":"CONDITIONING"},{"id":9120,"origin_id":3370,"origin_slot":9,"target_id":3369,"target_slot":3,"type":"LATENT"},{"id":9121,"origin_id":3370,"origin_slot":13,"target_id":3369,"target_slot":4,"type":"INT"},{"id":9122,"origin_id":3370,"origin_slot":14,"target_id":3369,"target_slot":5,"type":"INT"},{"id":9123,"origin_id":3370,"origin_slot":17,"target_id":3369,"target_slot":6,"type":"FLOAT"},{"id":9124,"origin_id":3370,"origin_slot":18,"target_id":3369,"target_slot":7,"type":"COMBO"},{"id":9125,"origin_id":3370,"origin_slot":19,"target_id":3369,"target_slot":8,"type":"COMBO"},{"id":9126,"origin_id":3368,"origin_slot":0,"target_id":3371,"target_slot":5,"type":"IMAGE"},{"id":9127,"origin_id":3370,"origin_slot":6,"target_id":3368,"target_slot":1,"type":"VAE"},{"id":9129,"origin_id":-10,"origin_slot":0,"target_id":3371,"target_slot":0,"type":"WARPPIPE"},{"id":9130,"origin_id":-10,"origin_slot":0,"target_id":3370,"target_slot":0,"type":"WARPPIPE"},{"id":9131,"origin_id":3371,"origin_slot":0,"target_id":-20,"target_slot":0,"type":"WARPPIPE"}],"extra":{"ue_links":[],"links_added_by_ue":[],"workflowRendererVersion":"LG"}},{"id":"32bbae29-443d-4a61-afff-dc005730b71a","version":1,"state":{"lastGroupId":35,"lastNodeId":4013,"lastLinkId":10327,"lastRerouteId":0},"revision":0,"config":{},"name":"Image Selector","inputNode":{"id":-10,"bounding":[380,-3310,128,108]},"outputNode":{"id":-20,"bounding":[1340,-3320,128,108]},"inputs":[{"id":"5472c436-a07c-4593-8173-98a73e29f477","name":"warp","type":"WARPPIPE","linkIds":[8997,8998],"pos":[484,-3286]},{"id":"1dcc08f4-c1b6-4a52-88db-60db3ef4f3d8","name":"timeout","type":"INT","linkIds":[10321],"pos":[484,-3266]},{"id":"480d4295-9bd3-4636-b146-0bc6e9eb33ff","name":"ontimeout","type":"COMBO","linkIds":[10322],"pos":[484,-3246]}],"outputs":[{"id":"d4753302-e688-4e2b-8e51-310254cc38cb","name":"warp","type":"WARPPIPE","linkIds":[9003],"pos":[1364,-3296]},{"id":"a362d735-de47-4f79-b36e-83a2a64ef86d","name":"image","type":"IMAGE","linkIds":[8995],"label":"img in","pos":[1364,-3276]},{"id":"07c76bbb-6997-4d55-8fd4-4729f15d0fe3","name":"images","type":"IMAGE","linkIds":[10323],"label":"img out","pos":[1364,-3256]}],"widgets":[],"nodes":[{"id":3323,"type":"Unwarp","pos":[542.0518264275424,-3163.20422989308],"size":[197.876953125,446],"flags":{"collapsed":false},"order":0,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":8997}],"outputs":[{"localized_name":"model_1","name":"model_1","type":"MODEL","links":[8983]},{"localized_name":"model_2","name":"model_2","type":"MODEL","links":null},{"localized_name":"image","name":"image","type":"IMAGE","links":[8995,10320]},{"localized_name":"mask","name":"mask","type":"MASK","links":null},{"localized_name":"clip","name":"clip","type":"CLIP","links":null},{"localized_name":"clip_vision","name":"clip_vision","type":"CLIP_VISION","links":null},{"localized_name":"vae","name":"vae","type":"VAE","links":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","type":"CONDITIONING","links":null},{"localized_name":"conditioning_negative","name":"conditioning_negative","type":"CONDITIONING","links":null},{"localized_name":"latent","name":"latent","type":"LATENT","links":null},{"localized_name":"prompt_positive","name":"prompt_positive","type":"STRING","links":null},{"localized_name":"prompt_negative","name":"prompt_negative","type":"STRING","links":null},{"localized_name":"batch_size","name":"batch_size","type":"INT","links":null},{"localized_name":"seed","name":"seed","type":"INT","links":null},{"localized_name":"steps_1","name":"steps_1","type":"INT","links":null},{"localized_name":"steps_2","name":"steps_2","type":"INT","links":null},{"localized_name":"steps_3","name":"steps_3","type":"INT","links":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","links":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","links":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","links":null},{"localized_name":"width","name":"width","type":"INT","links":null},{"localized_name":"height","name":"height","type":"INT","links":null}],"properties":{"Node name for S&R":"Unwarp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"80e0443476fcdcebfe03eb0c6923b2e1c5f9d674","ue_properties":{"widget_ue_connectable":{},"version":"7.5.2","input_ue_unconnectable":{}}},"color":"#222","bgcolor":"#000"},{"id":3324,"type":"Warp","pos":[1106.4983218399798,-3313.5444788428586],"size":[197.876953125,466],"flags":{"collapsed":false},"order":1,"mode":0,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":8998},{"localized_name":"prompt_positive","name":"prompt_positive","shape":7,"type":"STRING","link":null},{"localized_name":"prompt_negative","name":"prompt_negative","shape":7,"type":"STRING","link":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"conditioning_negative","name":"conditioning_negative","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":10327},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null},{"localized_name":"model_1","name":"model_1","shape":7,"type":"MODEL","link":null},{"localized_name":"model_2","name":"model_2","shape":7,"type":"MODEL","link":null},{"localized_name":"clip","name":"clip","shape":7,"type":"CLIP","link":null},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":null},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":null},{"localized_name":"latent","name":"latent","shape":7,"type":"LATENT","link":null},{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","link":null},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","link":null},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","link":null},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","link":null},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","link":null},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","link":null},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","link":null},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","link":null},{"localized_name":"width","name":"width","shape":7,"type":"INT","link":null},{"localized_name":"height","name":"height","shape":7,"type":"INT","link":null}],"outputs":[{"localized_name":"warp","name":"warp","type":"WARPPIPE","links":[9003]}],"properties":{"Node name for S&R":"Warp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"53c24e15434e882072104fa48fa45ddb21e69df3","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"color":"#222","bgcolor":"#000"},{"id":4012,"type":"Image Filter","pos":[774.0930147123828,-3155.955120079418],"size":[270,418],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":10320},{"localized_name":"latents","name":"latents","shape":7,"type":"LATENT","link":null},{"localized_name":"masks","name":"masks","shape":7,"type":"MASK","link":null},{"localized_name":"timeout","name":"timeout","type":"INT","widget":{"name":"timeout"},"link":10321},{"localized_name":"ontimeout","name":"ontimeout","type":"COMBO","widget":{"name":"ontimeout"},"link":10322},{"localized_name":"graph_id","name":"graph_id","type":"STRING","widget":{"name":"graph_id"},"link":null},{"localized_name":"tip","name":"tip","shape":7,"type":"STRING","widget":{"name":"tip"},"link":null},{"localized_name":"extra1","name":"extra1","shape":7,"type":"STRING","widget":{"name":"extra1"},"link":null},{"localized_name":"extra2","name":"extra2","shape":7,"type":"STRING","widget":{"name":"extra2"},"link":null},{"localized_name":"extra3","name":"extra3","shape":7,"type":"STRING","widget":{"name":"extra3"},"link":null},{"localized_name":"pick_list_start","name":"pick_list_start","shape":7,"type":"INT","widget":{"name":"pick_list_start"},"link":null},{"localized_name":"pick_list","name":"pick_list","shape":7,"type":"STRING","widget":{"name":"pick_list"},"link":null},{"localized_name":"video_frames","name":"video_frames","shape":7,"type":"INT","widget":{"name":"video_frames"},"link":null},{"localized_name":"audiofile","name":"audiofile","shape":7,"type":"STRING","widget":{"name":"audiofile"},"link":null}],"outputs":[{"localized_name":"images","name":"images","type":"IMAGE","links":[10323,10327]},{"localized_name":"latents","name":"latents","type":"LATENT","links":null},{"localized_name":"masks","name":"masks","type":"MASK","links":null},{"localized_name":"extra1","name":"extra1","type":"STRING","links":null},{"localized_name":"extra2","name":"extra2","type":"STRING","links":null},{"localized_name":"extra3","name":"extra3","type":"STRING","links":null},{"localized_name":"indexes","name":"indexes","type":"STRING","links":null}],"properties":{"Node name for S&R":"Image Filter"},"widgets_values":[600,"send none","1ac6ef5d-03c5-4ebf-a1b6-2b01864cd7bc","","","","",0,"",1,""],"widgets_values_named":{"timeout":600,"ontimeout":"send none","graph_id":"1ac6ef5d-03c5-4ebf-a1b6-2b01864cd7bc","tip":"","extra1":"","extra2":"","extra3":"","pick_list_start":0,"pick_list":"","video_frames":1,"audiofile":""}}],"groups":[],"links":[{"id":8995,"origin_id":3323,"origin_slot":2,"target_id":-20,"target_slot":1,"type":"IMAGE"},{"id":8997,"origin_id":-10,"origin_slot":0,"target_id":3323,"target_slot":0,"type":"WARPPIPE"},{"id":8998,"origin_id":-10,"origin_slot":0,"target_id":3324,"target_slot":0,"type":"WARPPIPE"},{"id":9003,"origin_id":3324,"origin_slot":0,"target_id":-20,"target_slot":0,"type":"WARPPIPE"},{"id":10320,"origin_id":3323,"origin_slot":2,"target_id":4012,"target_slot":0,"type":"IMAGE"},{"id":10321,"origin_id":-10,"origin_slot":1,"target_id":4012,"target_slot":3,"type":"INT"},{"id":10322,"origin_id":-10,"origin_slot":2,"target_id":4012,"target_slot":4,"type":"COMBO"},{"id":10323,"origin_id":4012,"origin_slot":0,"target_id":-20,"target_slot":2,"type":"IMAGE"},{"id":10327,"origin_id":4012,"origin_slot":0,"target_id":3324,"target_slot":5,"type":"IMAGE"}],"extra":{"ue_links":[],"links_added_by_ue":[],"workflowRendererVersion":"LG"}},{"id":"fbece873-b379-432d-943d-b99e2e92f61a","version":1,"state":{"lastGroupId":35,"lastNodeId":4013,"lastLinkId":10327,"lastRerouteId":0},"revision":0,"config":{},"name":"Upscale","inputNode":{"id":-10,"bounding":[1110,-4200,120,100]},"outputNode":{"id":-20,"bounding":[2120,-4170,120,100]},"inputs":[{"id":"4e2afa98-d127-4001-86d6-ba668ddb9b4d","name":"warp","type":"WARPPIPE","linkIds":[8991,8992],"pos":[1210,-4180]},{"id":"a1abbef4-4c95-4d0c-9b11-62dfc71b2a12","name":"upscale_by","type":"FLOAT","linkIds":[8993],"pos":[1210,-4160]},{"id":"9460479a-7677-474d-ab25-7f41fc6d5848","name":"denoise","type":"FLOAT","linkIds":[8994],"pos":[1210,-4140]}],"outputs":[{"id":"546b99e5-aa31-4522-b7dc-622408c3d062","name":"warp","type":"WARPPIPE","linkIds":[8990],"pos":[2140,-4150]},{"id":"874c1cbb-13d5-4d47-b1ed-887da4512700","name":"image","type":"IMAGE","linkIds":[8996],"label":"img in","pos":[2140,-4130]},{"id":"c2f02d2a-e480-467c-b7ff-ea5adb445a53","name":"IMAGE","type":"IMAGE","linkIds":[8997],"label":"img out","pos":[2140,-4110]}],"widgets":[],"nodes":[{"id":217,"type":"UpscaleModelLoader","pos":[1020,-3960],"size":[400,60],"flags":{"collapsed":false},"order":0,"mode":4,"inputs":[{"localized_name":"model_name","name":"model_name","type":"COMBO","widget":{"name":"model_name"},"link":null}],"outputs":[{"localized_name":"UPSCALE_MODEL","name":"UPSCALE_MODEL","type":"UPSCALE_MODEL","slot_index":0,"links":[599]}],"properties":{"Node name for S&R":"UpscaleModelLoader","cnr_id":"comfy-core","ver":"0.3.16","ue_properties":{"version":"7.0.1","widget_ue_connectable":{}}},"widgets_values":["4x_NMKD-Superscale-SP_178000_G.pth"],"widgets_values_named":{"model_name":"4x_NMKD-Superscale-SP_178000_G.pth"},"color":"#323","bgcolor":"#535"},{"id":235,"type":"UltimateSDUpscale","pos":[1560,-4060],"size":[320,638],"flags":{},"order":1,"mode":4,"inputs":[{"localized_name":"image","name":"image","type":"IMAGE","link":8980},{"localized_name":"model","name":"model","type":"MODEL","link":8979},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":8982},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":8983},{"localized_name":"vae","name":"vae","type":"VAE","link":8981},{"localized_name":"upscale_model","name":"upscale_model","type":"UPSCALE_MODEL","link":599},{"localized_name":"upscale_by","name":"upscale_by","type":"FLOAT","widget":{"name":"upscale_by"},"link":8993},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":8984},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":8985},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":8986},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":8987},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":8988},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":8994},{"localized_name":"mode_type","name":"mode_type","type":"COMBO","widget":{"name":"mode_type"},"link":null},{"localized_name":"tile_width","name":"tile_width","type":"INT","widget":{"name":"tile_width"},"link":null},{"localized_name":"tile_height","name":"tile_height","type":"INT","widget":{"name":"tile_height"},"link":null},{"localized_name":"mask_blur","name":"mask_blur","type":"INT","widget":{"name":"mask_blur"},"link":null},{"localized_name":"tile_padding","name":"tile_padding","type":"INT","widget":{"name":"tile_padding"},"link":null},{"localized_name":"seam_fix_mode","name":"seam_fix_mode","type":"COMBO","widget":{"name":"seam_fix_mode"},"link":null},{"localized_name":"seam_fix_denoise","name":"seam_fix_denoise","type":"FLOAT","widget":{"name":"seam_fix_denoise"},"link":null},{"localized_name":"seam_fix_width","name":"seam_fix_width","type":"INT","widget":{"name":"seam_fix_width"},"link":null},{"localized_name":"seam_fix_mask_blur","name":"seam_fix_mask_blur","type":"INT","widget":{"name":"seam_fix_mask_blur"},"link":null},{"localized_name":"seam_fix_padding","name":"seam_fix_padding","type":"INT","widget":{"name":"seam_fix_padding"},"link":null},{"localized_name":"force_uniform_tiles","name":"force_uniform_tiles","type":"BOOLEAN","widget":{"name":"force_uniform_tiles"},"link":null},{"localized_name":"tiled_decode","name":"tiled_decode","type":"BOOLEAN","widget":{"name":"tiled_decode"},"link":null},{"localized_name":"batch_size","name":"batch_size","type":"INT","widget":{"name":"batch_size"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","slot_index":0,"links":[8995,8997]}],"properties":{"Node name for S&R":"UltimateSDUpscale","cnr_id":"comfyui_ultimatesdupscale","ver":"1b6e60d4f1e7ef325ea4b6268f41c03bd18eee5b","ue_properties":{"version":"7.0.1","widget_ue_connectable":{"upscale_by":true,"seed":false,"tile_width":true,"tile_height":true,"scheduler":true,"sampler_name":true}}},"widgets_values":[1.5,212512467700550,"randomize",12,1,"lms","exponential",0.1,"Linear",1024,1024,8,32,"None",1,64,8,16,true,false,1],"widgets_values_named":{"upscale_by":1.5,"seed":212512467700550,"control_after_generate":"randomize","steps":12,"cfg":1,"sampler_name":"lms","scheduler":"exponential","denoise":0.1,"mode_type":"Linear","tile_width":1024,"tile_height":1024,"mask_blur":8,"tile_padding":32,"seam_fix_mode":"None","seam_fix_denoise":1,"seam_fix_width":64,"seam_fix_mask_blur":8,"seam_fix_padding":16,"force_uniform_tiles":true,"tiled_decode":false,"batch_size":1},"color":"#323","bgcolor":"#535"},{"id":3315,"type":"Warp","pos":[1900,-4150],"size":[197.876953125,466],"flags":{"collapsed":true},"order":3,"mode":4,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":8992},{"localized_name":"prompt_positive","name":"prompt_positive","shape":7,"type":"STRING","link":null},{"localized_name":"prompt_negative","name":"prompt_negative","shape":7,"type":"STRING","link":null},{"localized_name":"conditioning_positive","name":"conditioning_positive","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"conditioning_negative","name":"conditioning_negative","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":8995},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null},{"localized_name":"model_1","name":"model_1","shape":7,"type":"MODEL","link":null},{"localized_name":"model_2","name":"model_2","shape":7,"type":"MODEL","link":null},{"localized_name":"clip","name":"clip","shape":7,"type":"CLIP","link":null},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":null},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":null},{"localized_name":"latent","name":"latent","shape":7,"type":"LATENT","link":null},{"localized_name":"batch_size","name":"batch_size","shape":7,"type":"INT","link":null},{"localized_name":"seed","name":"seed","shape":7,"type":"INT","link":null},{"localized_name":"steps_1","name":"steps_1","shape":7,"type":"INT","link":null},{"localized_name":"steps_2","name":"steps_2","shape":7,"type":"INT","link":null},{"localized_name":"steps_3","name":"steps_3","shape":7,"type":"INT","link":null},{"localized_name":"cfg","name":"cfg","shape":7,"type":"FLOAT","link":null},{"localized_name":"sampler_name","name":"sampler_name","shape":7,"type":"COMBO","link":null},{"localized_name":"scheduler","name":"scheduler","shape":7,"type":"COMBO","link":null},{"localized_name":"width","name":"width","shape":7,"type":"INT","link":null},{"localized_name":"height","name":"height","shape":7,"type":"INT","link":null}],"outputs":[{"localized_name":"warp","name":"warp","type":"WARPPIPE","links":[8990]}],"properties":{"Node name for S&R":"Warp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"53c24e15434e882072104fa48fa45ddb21e69df3","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"color":"#222","bgcolor":"#000"},{"id":3311,"type":"Unwarp","pos":[1270,-4050],"size":[197.876953125,446],"flags":{"collapsed":true},"order":2,"mode":4,"inputs":[{"localized_name":"warp","name":"warp","shape":7,"type":"WARPPIPE","link":8991}],"outputs":[{"localized_name":"model_1","name":"model_1","type":"MODEL","links":[8963,8979]},{"localized_name":"model_2","name":"model_2","type":"MODEL","links":null},{"localized_name":"image","name":"image","type":"IMAGE","links":[8980,8996]},{"localized_name":"mask","name":"mask","type":"MASK","links":null},{"localized_name":"clip","name":"clip","type":"CLIP","links":null},{"localized_name":"clip_vision","name":"clip_vision","type":"CLIP_VISION","links":[]},{"localized_name":"vae","name":"vae","type":"VAE","links":[8981]},{"localized_name":"conditioning_positive","name":"conditioning_positive","type":"CONDITIONING","links":[8982]},{"localized_name":"conditioning_negative","name":"conditioning_negative","type":"CONDITIONING","links":[8983]},{"localized_name":"latent","name":"latent","type":"LATENT","links":null},{"localized_name":"prompt_positive","name":"prompt_positive","type":"STRING","links":null},{"localized_name":"prompt_negative","name":"prompt_negative","type":"STRING","links":null},{"localized_name":"batch_size","name":"batch_size","type":"INT","links":[]},{"localized_name":"seed","name":"seed","type":"INT","links":[8984]},{"localized_name":"steps_1","name":"steps_1","type":"INT","links":null},{"localized_name":"steps_2","name":"steps_2","type":"INT","links":[8985]},{"localized_name":"steps_3","name":"steps_3","type":"INT","links":[]},{"localized_name":"cfg","name":"cfg","type":"FLOAT","links":[8986]},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","links":[8987]},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","links":[8988]},{"localized_name":"width","name":"width","type":"INT","links":null},{"localized_name":"height","name":"height","type":"INT","links":null}],"properties":{"Node name for S&R":"Unwarp","aux_id":"gregory-richard/ComfyUI-WarpPipe","ver":"80e0443476fcdcebfe03eb0c6923b2e1c5f9d674","ue_properties":{"widget_ue_connectable":{},"version":"7.5.2","input_ue_unconnectable":{}}},"color":"#222","bgcolor":"#000"}],"groups":[],"links":[{"id":599,"origin_id":217,"origin_slot":0,"target_id":235,"target_slot":5,"type":"UPSCALE_MODEL"},{"id":8979,"origin_id":3311,"origin_slot":0,"target_id":235,"target_slot":1,"type":"MODEL"},{"id":8980,"origin_id":3311,"origin_slot":2,"target_id":235,"target_slot":0,"type":"IMAGE"},{"id":8981,"origin_id":3311,"origin_slot":6,"target_id":235,"target_slot":4,"type":"VAE"},{"id":8982,"origin_id":3311,"origin_slot":7,"target_id":235,"target_slot":2,"type":"CONDITIONING"},{"id":8983,"origin_id":3311,"origin_slot":8,"target_id":235,"target_slot":3,"type":"CONDITIONING"},{"id":8984,"origin_id":3311,"origin_slot":13,"target_id":235,"target_slot":7,"type":"INT"},{"id":8985,"origin_id":3311,"origin_slot":15,"target_id":235,"target_slot":8,"type":"INT"},{"id":8986,"origin_id":3311,"origin_slot":17,"target_id":235,"target_slot":9,"type":"FLOAT"},{"id":8987,"origin_id":3311,"origin_slot":18,"target_id":235,"target_slot":10,"type":"COMBO"},{"id":8988,"origin_id":3311,"origin_slot":19,"target_id":235,"target_slot":11,"type":"COMBO"},{"id":8990,"origin_id":3315,"origin_slot":0,"target_id":-20,"target_slot":0,"type":"WARPPIPE"},{"id":8991,"origin_id":-10,"origin_slot":0,"target_id":3311,"target_slot":0,"type":"WARPPIPE"},{"id":8992,"origin_id":-10,"origin_slot":0,"target_id":3315,"target_slot":0,"type":"WARPPIPE"},{"id":8993,"origin_id":-10,"origin_slot":1,"target_id":235,"target_slot":6,"type":"FLOAT"},{"id":8994,"origin_id":-10,"origin_slot":2,"target_id":235,"target_slot":12,"type":"FLOAT"},{"id":8995,"origin_id":235,"origin_slot":0,"target_id":3315,"target_slot":5,"type":"IMAGE"},{"id":8996,"origin_id":3311,"origin_slot":2,"target_id":-20,"target_slot":1,"type":"IMAGE"},{"id":8997,"origin_id":235,"origin_slot":0,"target_id":-20,"target_slot":2,"type":"IMAGE"}],"extra":{"ue_links":[],"links_added_by_ue":[],"workflowRendererVersion":"LG"}},{"id":"adb4fc78-b46f-405d-a114-b8356e33ce37","version":1,"state":{"lastGroupId":35,"lastNodeId":4013,"lastLinkId":10327,"lastRerouteId":0},"revision":0,"config":{},"name":"Models and Prompt","inputNode":{"id":-10,"bounding":[-517.0020792406832,-3245.726045832741,128,68]},"outputNode":{"id":-20,"bounding":[460.9979207593169,-3275.726045832741,128,88]},"inputs":[{"id":"adaba17d-d935-4232-a471-a7c618625fde","name":"unet_name","type":"COMBO","linkIds":[10299],"pos":[-413.0020792406832,-3221.726045832741]}],"outputs":[{"id":"d9ed006b-6455-40de-a227-025a20d8bd3c","name":"MODEL","type":"MODEL","linkIds":[10288],"localized_name":"MODEL","pos":[484.9979207593169,-3251.726045832741]},{"id":"785cc3e1-67c4-4169-a1ad-896969a343b6","name":"CLIP","type":"CLIP","linkIds":[10302],"pos":[484.9979207593169,-3231.726045832741]}],"widgets":[],"nodes":[{"id":3993,"type":"UNETLoader","pos":[-329.0020792406832,-3581.726045832741],"size":[410,82],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"unet_name","name":"unet_name","type":"COMBO","widget":{"name":"unet_name"},"link":10299},{"localized_name":"weight_dtype","name":"weight_dtype","type":"COMBO","widget":{"name":"weight_dtype"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[10285]}],"properties":{"Node name for S&R":"UNETLoader","cnr_id":"comfy-core","ver":"0.5.1","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":["zit\\z_image_turbo_bf16.safetensors","default"],"widgets_values_named":{"unet_name":"zit\\z_image_turbo_bf16.safetensors","weight_dtype":"default"}},{"id":4000,"type":"ModelSamplingAuraFlow","pos":[130.99792075931688,-3581.726045832741],"size":[270,58],"flags":{"collapsed":false},"order":3,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":10285},{"localized_name":"shift","name":"shift","type":"FLOAT","widget":{"name":"shift"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[10288]}],"properties":{"Node name for S&R":"ModelSamplingAuraFlow","cnr_id":"comfy-core","ver":"0.3.75","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.1"}},"widgets_values":[5],"widgets_values_named":{"shift":5}},{"id":3994,"type":"CLIPLoader","pos":[-319.0020792406832,-3371.726045832741],"size":[270,110],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"clip_name","name":"clip_name","type":"COMBO","widget":{"name":"clip_name"},"link":null},{"localized_name":"type","name":"type","type":"COMBO","widget":{"name":"type"},"link":null},{"localized_name":"device","name":"device","shape":7,"type":"COMBO","widget":{"name":"device"},"link":null}],"outputs":[{"localized_name":"CLIP","name":"CLIP","type":"CLIP","links":[10286]}],"properties":{"Node name for S&R":"CLIPLoader","cnr_id":"comfy-core","ver":"0.3.75","ue_properties":{"widget_ue_connectable":{},"version":"7.5.1","input_ue_unconnectable":{}}},"widgets_values":["qwen_3_4b.safetensors","lumina2","default"],"widgets_values_named":{"clip_name":"qwen_3_4b.safetensors","type":"lumina2","device":"default"},"color":"#000000","bgcolor":"#000000"},{"id":3995,"type":"CLIPSetLastLayer","pos":[-19.00207924068313,-3371.726045832741],"size":[270,58],"flags":{"collapsed":false},"order":1,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":10286},{"localized_name":"stop_at_clip_layer","name":"stop_at_clip_layer","type":"INT","widget":{"name":"stop_at_clip_layer"},"link":null}],"outputs":[{"localized_name":"CLIP","name":"CLIP","type":"CLIP","links":[10302]}],"properties":{"Node name for S&R":"CLIPSetLastLayer","cnr_id":"comfy-core","ver":"0.3.60","ue_properties":{"widget_ue_connectable":{"stop_at_clip_layer":true},"version":"7.1","input_ue_unconnectable":{}}},"widgets_values":[-2],"widgets_values_named":{"stop_at_clip_layer":-2},"color":"#323","bgcolor":"#535"}],"groups":[],"links":[{"id":10286,"origin_id":3994,"origin_slot":0,"target_id":3995,"target_slot":0,"type":"CLIP"},{"id":10285,"origin_id":3993,"origin_slot":0,"target_id":4000,"target_slot":0,"type":"MODEL"},{"id":10288,"origin_id":4000,"origin_slot":0,"target_id":-20,"target_slot":0,"type":"MODEL"},{"id":10299,"origin_id":-10,"origin_slot":0,"target_id":3993,"target_slot":0,"type":"COMBO"},{"id":10302,"origin_id":3995,"origin_slot":0,"target_id":-20,"target_slot":1,"type":"CLIP"}],"extra":{}},{"id":"e59320fb-1a39-41f1-a652-1303bdd80711","version":1,"state":{"lastGroupId":35,"lastNodeId":4013,"lastLinkId":10327,"lastRerouteId":0},"revision":0,"config":{},"name":"Models and Prompt","inputNode":{"id":-10,"bounding":[-517.0020792406832,-3245.726045832741,128,68]},"outputNode":{"id":-20,"bounding":[460.9979207593169,-3275.726045832741,128,88]},"inputs":[{"id":"adaba17d-d935-4232-a471-a7c618625fde","name":"unet_name","type":"COMBO","linkIds":[10299],"pos":[-413.0020792406832,-3221.726045832741]}],"outputs":[{"id":"d9ed006b-6455-40de-a227-025a20d8bd3c","name":"MODEL","type":"MODEL","linkIds":[10314],"localized_name":"MODEL","pos":[484.9979207593169,-3251.726045832741]},{"id":"785cc3e1-67c4-4169-a1ad-896969a343b6","name":"CLIP","type":"CLIP","linkIds":[10313],"pos":[484.9979207593169,-3231.726045832741]}],"widgets":[],"nodes":[{"id":4005,"type":"CLIPLoader","pos":[-319.0020792406832,-3371.726045832741],"size":[270,110],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"clip_name","name":"clip_name","type":"COMBO","widget":{"name":"clip_name"},"link":null},{"localized_name":"type","name":"type","type":"COMBO","widget":{"name":"type"},"link":null},{"localized_name":"device","name":"device","shape":7,"type":"COMBO","widget":{"name":"device"},"link":null}],"outputs":[{"localized_name":"CLIP","name":"CLIP","type":"CLIP","links":[10313]}],"properties":{"Node name for S&R":"CLIPLoader","cnr_id":"comfy-core","ver":"0.3.75","ue_properties":{"widget_ue_connectable":{},"version":"7.5.1","input_ue_unconnectable":{}}},"widgets_values":["qwen3vl_4b_bf16.safetensors","krea2","default"],"widgets_values_named":{"clip_name":"qwen3vl_4b_bf16.safetensors","type":"krea2","device":"default"},"color":"#000000","bgcolor":"#000000"},{"id":4003,"type":"UNETLoader","pos":[-329.0020792406832,-3581.726045832741],"size":[410,82],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"unet_name","name":"unet_name","type":"COMBO","widget":{"name":"unet_name"},"link":10299},{"localized_name":"weight_dtype","name":"weight_dtype","type":"COMBO","widget":{"name":"weight_dtype"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[10314]}],"properties":{"Node name for S&R":"UNETLoader","cnr_id":"comfy-core","ver":"0.5.1","ue_properties":{"widget_ue_connectable":{},"input_ue_unconnectable":{},"version":"7.5.2"}},"widgets_values":["zit\\z_image_turbo_bf16.safetensors","default"],"widgets_values_named":{"unet_name":"zit\\z_image_turbo_bf16.safetensors","weight_dtype":"default"}}],"groups":[],"links":[{"id":10299,"origin_id":-10,"origin_slot":0,"target_id":4003,"target_slot":0,"type":"COMBO"},{"id":10313,"origin_id":4005,"origin_slot":0,"target_id":-20,"target_slot":1,"type":"CLIP"},{"id":10314,"origin_id":4003,"origin_slot":0,"target_id":-20,"target_slot":0,"type":"MODEL"}],"extra":{}}]},"config":{},"extra":{"workflowRendererVersion":"LG","ds":{"scale":0.20585233275480758,"offset":[3838.9436201133863,5157.442934687547]}},"version":0.4} \ No newline at end of file diff --git a/examples/workflow_example.png b/examples/workflow_example.png index f729686..898cdae 100644 Binary files a/examples/workflow_example.png and b/examples/workflow_example.png differ diff --git a/examples/workflow_example_screenshot.png b/examples/workflow_example_screenshot.png new file mode 100644 index 0000000..f9c4273 Binary files /dev/null and b/examples/workflow_example_screenshot.png differ diff --git a/pyproject.toml b/pyproject.toml index 410b622..d571aaa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -74,5 +74,5 @@ ignore = [ [tool.comfy] PublisherId = "gregrichrd" DisplayName = "WarpPipe Nodes" -Icon = "https://raw.githubusercontent.com/gregory-richard/ComfyUI-WarpPipe/main/icon.png" -Banner = "https://raw.githubusercontent.com/gregory-richard/ComfyUI-WarpPipe/main/banner.png" +Icon = "https://raw.githubusercontent.com/gregory-richard/ComfyUI-WarpPipe/main/assets/registry/icon.png" +Banner = "https://raw.githubusercontent.com/gregory-richard/ComfyUI-WarpPipe/main/assets/registry/banner.png" diff --git a/wiki/API.md b/wiki/API.md new file mode 100644 index 0000000..6bc8c4f --- /dev/null +++ b/wiki/API.md @@ -0,0 +1,123 @@ +# API + +Four routes, registered on ComfyUI's own `PromptServer` at import. They exist +for WarpPipe's frontend; nothing stops you calling them yourself. + +If `aiohttp` or `server` cannot be imported — running the module outside +ComfyUI, for tests or a lint — registration is skipped and the nodes still work. +The frontend degrades with it: tags go uncoloured and the browser says the +library is unavailable. + +``` +GET /warppipe/loras +GET /warppipe/embeddings +GET /warppipe/model/base?name= +GET /warppipe/lora/thumbnail?name=&kind=[&full=1] +``` + +--- + +## `GET /warppipe/loras` + +Every LoRA in the configured folders, with everything the browser needs and no +image data. + +```json +{ + "loras": [ + { + "id": "sdxl/atelier - Detail Tweaker - v2.0 (SDXL).safetensors", + "folder": "sdxl", + "creator": "atelier", + "name": "Detail Tweaker", + "version": "v2.0", + "tagged_base": "SDXL", + "base_model": "SDXL 1.0", + "structured": true, + "title": "Detail Tweaker (SDXL)", + "url": "https://civitai.red/models/58390?modelVersionId=583901", + "triggers": ["highly detailed", "intricate detail"], + "has_preview": true, + "kind": "loras", + "thumbnail": "/warppipe/lora/thumbnail?name=sdxl%2F...&kind=loras" + } + ] +} +``` + +| Field | Where it comes from | +| --- | --- | +| `id` | the exact string a `` tag has to resolve to. Uses the platform's separator, so a Windows entry reads `sdxl\name.safetensors`; tag matching ignores slash direction either way | +| `folder` | the first path segment inside the LoRA folder | +| `creator`, `name`, `version`, `tagged_base` | parsed from a `creator - name - version (base)` filename | +| `structured` | whether the filename actually had that shape — when false, `name` is the whole stem and callers should not pretend otherwise | +| `base_model` | the sidecar's `baseModel`, tidied | +| `title` | the sidecar's `model.name` | +| `url` | built from the sidecar's `modelId` and `id` | +| `triggers` | the sidecar's `trainedWords`, split on commas | +| `has_preview`, `thumbnail` | whether an image sits beside the file; the server owns URL construction | + +Sidecar-derived fields are `null` or empty when there is no `.civitai.info`. + +Cost is one directory listing, one sidecar read and a handful of `stat` calls +per model. Against 761 files it answers in well under a second and returns a few +hundred kilobytes of JSON. + +--- + +## `GET /warppipe/embeddings` + +Identical, keyed `embeddings`. Every entry carries `"kind": "embeddings"`, which +is how the frontend knows to insert `embedding:name` rather than a `` +tag. + +--- + +## `GET /warppipe/model/base` + +The base model of one file, for matching LoRAs against the checkpoint that is +wired in. + +``` +GET /warppipe/model/base?name=demo%20-%20Illustrious%20Base%20-%20v1.0%20(SDXL).safetensors +``` + +```json +{ "name": "...", "base_model": "SDXL 1.0", "found": true } +``` + +Looked up across `loras`, `checkpoints`, `diffusion_models`, `unet` and +`embeddings`. `found` is whether the file resolved at all; `base_model` is +`null` when it did but declares nothing. + +--- + +## `GET /warppipe/lora/thumbnail` + +The preview image beside a model. + +| Parameter | | +| --- | --- | +| `name` | the model's `id` from the index | +| `kind` | `loras` or `embeddings`; anything else is a 400 | +| `full` | `1` to serve the original instead of the thumbnail | + +Without `full`, a WebP capped at 320px on the long side, built on first request +and cached by path, size and mtime — so replacing a preview refreshes it. +Measured against a real collection: previews average 1.27 MB, thumbnails 6–9 KB, +about 20 ms to build and under a millisecond to serve after that. Both are sent +with `Cache-Control: max-age=86400`. + +404 when the model has no preview beside it, or when a thumbnail cannot be built +(no Pillow, or nowhere writable to cache it). + +### On paths + +`name` is resolved through ComfyUI's `folder_paths`, which is what keeps this to +configured model folders — an arbitrary path can never be requested, and `..` +is neutralised before the lookup. The route serves preview images beside +configured models and nothing else. + +These routes are unauthenticated, exactly as the rest of ComfyUI's are. Anyone +who can reach your ComfyUI can list your model library through them, which is +worth knowing if you have bound the server to something other than localhost. diff --git a/wiki/Architecture.md b/wiki/Architecture.md new file mode 100644 index 0000000..20b6981 --- /dev/null +++ b/wiki/Architecture.md @@ -0,0 +1,166 @@ +# Architecture + +``` +warp_pipe.py every node, the storage, the resource scan, the routes +__init__.py picks a registration path and re-exports it +web/ + prompt_ui.js the coloured prompt box, the strip, inline completion + lora_browser.js the library modal + model_base.js which base model a node is wired to + library.js one fetch of the index, shared by both views + text.js escaping and filename helpers + widget_values.js saving widget values by name rather than by position + save_image_ui.js friendly labels, and the toast when nothing was saved + docs/*.md the per-node help ComfyUI shows behind the ? button +wiki/ this documentation +tests/ pytest, no ComfyUI required +``` + +## How a warp travels + +A `WARPPIPE` link does not carry the data. It carries `{"id": ""}`, and +the data sits in a module-level dict keyed by that id. + +That is a deliberate trade. Passing tensors and model patchers down a link would +have ComfyUI copy and cache them at every hop; passing a token means a Warp +costs the same whether it carries a seed or six models. + +The cost is that the dict holds references, so a stored bundle keeps its models +alive. Two limits bound it: entries older than an hour are pruned, and no more +than 256 are kept, oldest evicted first. An Unwarp refreshes an entry's +timestamp when it reads it, so a warp in active use never expires. All of it is +under one lock, and the cleanup runs on insertion rather than on a timer. + +Each `Warp` instance gets its id at construction. ComfyUI caches node instances +per graph node, so the id is stable across runs of the same workflow. + +## Validation + +Sampler and scheduler sockets are the awkward part of this pack. + +ComfyUI types a combo socket by its list of options, so a `sampler_name` coming +out of another node pack with a wider list is a *different type* to ComfyUI's +own, and the link is refused. WarpPipe wants those links to work. + +Earlier versions patched ComfyUI's global prompt validator, which affected every +node in the process. That is gone. Instead each node declares +`VALIDATE_INPUTS(input_types)`, which: + +- keeps normal socket checks for everything else — an `IMAGE` into a `MODEL` + still fails, and says so; +- relaxes only `sampler_name` and `scheduler`; +- accepts a comma-joined enum string that shares any member with what was + expected, which is how some builds spell a combo type. + +Whatever arrives is then coerced at run time: an unknown sampler becomes +`euler`, an unknown scheduler `karras`. The allowlists are snapshots of +ComfyUI's lists taken at import, not references to them — a reference would grow +as other packs registered their own schedulers, and coercion would stop +coercing. + +## Finding the resources for a saved image + +`Save Image (Civitai)` needs to know which checkpoint and which LoRAs made the +picture. It reads the prompt graph ComfyUI passes it as a hidden input. + +1. **Walk back from this node.** Breadth-first over the links, recording how far + each node is. Nodes not upstream are ignored, so a second branch of a large + workflow contributes nothing. +2. **Follow only the taken branch of a switch.** A switch names its inputs + `input1..inputN` and carries a `select`; the others are wired but never ran. + The selector is usually a small constant node one link away, so that is + followed too — but only when it is unambiguous. When the choice cannot be + read, every branch is followed, as before, because dropping a real resource + is worse than including a spare one. +3. **Recognise loaders by the input they carry**, not by class name — `ckpt_name`, + `unet_name`, `model_name`. A name that resolves inside the checkpoint, + diffusion-model or UNet folders is a model whatever the input is called, so a + loader from an unknown pack still records what it loaded. +4. **Collect LoRAs** from `lora_name`, from numbered `lora_name_1` slots with + their matching strengths, from rgthree-style `{"lora":…, "on":…}` dicts + honouring the on/off switch, and from `` tags in any string input + with comments stripped first. +5. **Nearest model wins.** With several upstream, the one fewest links away is + the one that made this picture — a refiner in front of a base. Equal + distances fall to the order the graph listed them. + +Then each name is resolved to a file and hashed. A name that resolves to nothing +is logged and left out: crediting a LoRA that was never applied describes an +image that was not made. + +## Hashes and metadata + +Civitai matches a resource by AutoV2 — the first ten hex characters of the +file's SHA256. WarpPipe takes it from the sidecar when one is there and hashes +the file when it is not, caching by path, size and mtime so a replaced file +re-hashes and an unchanged one never does. + +Two conventions go into the `parameters` block, because they are read by +different things: + +- `Lora hashes: "name: hash"` — A1111's additional-networks spelling. +- `Hashes: {"model": …, "lora:name": …}` — what Civitai's own extension writes, + and the field it actually links resources from. + +Writing only the first is why an upload would name its checkpoint and credit +none of its LoRAs: the checkpoint comes from `Model hash`, which both agree on, +and the LoRAs were never anywhere Civitai looked. + +JPEG has no text chunks, so for that format the same block goes into EXIF +`UserComment` as UTF-16BE behind a `UNICODE\0` marker — what A1111 writes and +what every reader of these files expects. + +## The prompt box + +The text is the only state. There is no list of LoRAs kept beside it, because two +sources of truth disagree eventually. + +A transparent `textarea` sits over a highlight layer that renders the same +string as coloured spans. Every property that decides where a glyph lands is +copied from one to the other, including the width ComfyUI's scrollbar gutter +takes, or the colouring slides off the words. Typing, selection, undo and IME +are all the real textarea's. + +Suggestions are *drawn* on that layer rather than written into the value. +Writing them meant undoing them on every keystroke, which raced with fast typing, +filled the undo stack with edits nobody made, and marked the workflow dirty +while merely browsing. + +Edits go through `document.execCommand("insertText")` — the only way to change a +textarea that the browser's own undo still understands. Assigning to `value` +clears the undo stack, which would make every weight nudge a point of no return. + +Layout is watched on a 100ms timer rather than with a `ResizeObserver`, which +only delivers while the page renders: a node resized in a background tab came +back with the layer at its old size. The timer, the observer and the strip are +all torn down on `onRemoved`. + +## Widget values + +ComfyUI serialises widget values positionally. Anything that changes widget +order between a save and a load — an extension reordering them, or a widget +added in a later version — shifts every later value onto the wrong widget, +silently. Booleans are the worst of it, because the wrong value is still valid. + +This pack reorders its own widgets, so it also writes them by name into the saved +workflow and reads them back by name. A workflow saved before that existed falls +back to a per-node migration that knows what the old shape meant. + +## Registration + +`NODE_DEFINITIONS` maps node id to display name and class, and both registration +paths are built from it. Keeping two lists in step by hand is exactly how V3 mode +once shipped five of the seven nodes, with nothing said about the other two. + +The V3 implementation is opt-in behind `WARPPIPE_ENABLE_V3=1` while the upstream +API settles. A test asserts both paths cover the same set. + +## Compatibility shims + +`comfy.samplers` is imported behind a `try`, with a small mock behind it, so the +module imports outside ComfyUI for tests and lint. The mock exists only to make +import work; it is not a simulation of ComfyUI. + +`beta57` and `bong_tangent` are registered globally against the karras handler so +other packs accept a workflow built around RES4LYF's schedulers even when +RES4LYF has not loaded. Startup logs which names it stood in for. diff --git a/wiki/Development.md b/wiki/Development.md new file mode 100644 index 0000000..dc8ef69 --- /dev/null +++ b/wiki/Development.md @@ -0,0 +1,141 @@ +# Development + +## Setting up + +Clone anywhere and link it into ComfyUI rather than working inside +`custom_nodes`: + +```powershell +$src = "C:\path\to\ComfyUI-WarpPipe" +$dst = "C:\path\to\ComfyUI\custom_nodes\warppipe" +New-Item -ItemType Junction -Path $dst -Target $src +``` + +```bash +ln -s /path/to/ComfyUI-WarpPipe /path/to/ComfyUI/custom_nodes/warppipe +``` + +## Checks + +Everything CI runs, in the order it runs it: + +```bash +python -m ruff check . --exclude .agents --exclude .claude +``` + +```bash +python -m ruff format --check . --exclude .agents --exclude .claude +``` + +```bash +python -m pytest -q +``` + +```bash +npm ci && npm run check +``` + +The Python tools are pinned in the workflow and the frontend lockfile is +committed, both for the same reason: a build going red should mean the code +changed, not that a tool released that morning. + +`npm run check` is eslint plus prettier over `web/`. `npm run format` writes the +formatting rather than checking it. + +## Tests + +`pytest` needs no ComfyUI. `tests/conftest.py` installs a fake `comfy`, +`comfy_api` and `torch` into `sys.modules` and loads `warp_pipe.py` fresh for +each test, so legacy and V3 registration can both be exercised in one run. + +The fakes exist to make import work and to let schemas be inspected. They are +not a simulation of ComfyUI: anything depending on real execution semantics has +to be tried in ComfyUI. + +Worth knowing when adding tests: + +- `warp_pipe` and `package_loader` fixtures give you a freshly imported module; + `warp_pipe_loader(enable_v3=True)` gives you the V3 path. +- A test that asserts a fix should be checked against the unfixed code once, by + reverting the change and watching it go red. A regression test that never + could have failed is decoration. +- `test_the_package_ships_every_file_the_frontend_needs` reads `pyproject.toml` + and asserts every file under `web/` is matched by a `package-data` glob. Add a + `.css` there and it will tell you before the wheel does. + +## Adding a node + +1. Write the class in `warp_pipe.py` with `INPUT_TYPES`, `RETURN_TYPES`, + `RETURN_NAMES`, `FUNCTION` and `CATEGORY`. +2. Add it to `NODE_DEFINITIONS`. That is what both registration paths are built + from, so this is the only list. +3. Add a V3 class and an entry in `V3_NODE_CLASSES`. Startup logs an error + naming anything in `NODE_DEFINITIONS` without one, and a test fails. +4. Write `web/docs/.md`. ComfyUI shows it behind the `?` on the node. +5. Document it in [Nodes.md](Nodes.md) and, if it is worth showing, the README. + +V3 schemas share one field-id namespace across inputs and outputs, so an output +mirroring an input needs a distinct id and a matching `display_name` — `model` +in, `model_out` displayed as `model` out. + +## Screenshots + +`assets/docs/*.webp` are captured from a real ComfyUI, not mocked. The setup: + +1. Build a small demo LoRA folder — plausible filenames in the + `creator - name - version (base)` convention, `.civitai.info` sidecars, and + generated stand-in preview art. Never the real library; a public README + should not carry somebody's model collection. +2. Run a second ComfyUI on another port with `--base-directory` pointed at that + folder, so the running instance is untouched. `--base-directory` does not + override `extra_model_paths.yaml`, so copy `main.py` and the other loose + modules into a scratch directory beside junctions to the package directories; + ComfyUI then looks for the config next to that copy and finds none. +3. Drive it with Playwright against an installed Chrome, at + `deviceScaleFactor: 2`, hiding `.workflow-tabs-container`, + `.side-toolbar-container`, `.subgraph-breadcrumb` and `.actionbar-container` + so the app's own chrome stays out of the clip. + +Save flat UI shots as lossless WebP and anything with real gradients as quality +90. Palette-quantised PNG bands badly on preview art. + +## The wiki + +`wiki/` in this repo is the source of truth - it reviews alongside the code that +changes it. A workflow copies it into the GitHub wiki on every push to `main` +that touches it, so the pages are also browsable at `/wiki` with GitHub's own +navigation. + +The wiki is a separate repository, so repo-relative paths do not resolve there. +The workflow rewrites them on the way in: `../assets/...` becomes a +`raw.githubusercontent.com` URL and anything else `../` becomes a blob URL. +Links between wiki pages are left alone, because GitHub resolves `Usage.md` to +the Usage page by itself. Keep writing them relative and the rewrite handles it. + +One manual step, once: GitHub does not create the wiki repository until a page +has been made in the web UI. Create any page there and the workflow takes over - +it replaces the contents wholesale, so a page deleted from `wiki/` disappears. + +## Releasing + +1. Move the `[Unreleased]` block in `CHANGELOG.md` under a new version heading + with today's date. +2. Set the version in **both** `pyproject.toml` and `version.txt`. +3. Merge to `main`. + +The publish workflow fires on a push touching `pyproject.toml`, but only +publishes when the version there actually changed against the previous commit — +editing lint config does not re-publish. A manual `workflow_dispatch` always +publishes. + +Semver as this project reads it: a new node or a new capability is a minor; a +change that makes an existing workflow load differently is a major. 3.0.0 was +the `CONTROL` → `WARPPIPE` rename. 4.0.0 is the prompt box and the Civitai save +node — nothing breaks, but it is a different pack to use. + +## Registry metadata + +`[tool.comfy]` in `pyproject.toml` carries the publisher, display name, and raw +GitHub URLs for `assets/registry/icon.png` and `assets/registry/banner.png`. +Those two are the sized, quantised copies — the originals live in +`assets/source/` and are far too heavy for a listing page. diff --git a/wiki/Home.md b/wiki/Home.md new file mode 100644 index 0000000..e769da7 --- /dev/null +++ b/wiki/Home.md @@ -0,0 +1,82 @@ +# WarpPipe + +Two things, in one node pack. + +**A prompt box that owns its LoRAs.** Write `` inline, the way +A1111 does, and the tags *are* the loader. The text is the only state: colouring, +completion, weights, ordering and switching a LoRA off are all edits to it. + +**One wire instead of twenty.** A Warp bundles everything a generation needs; +an Unwarp gives it back. Whole model setups become a single connection you move. + +## Where to go + +| | | +| --- | --- | +| [Usage](Usage.md) | Writing prompts, bundling a generation, saving for Civitai | +| [Nodes](Nodes.md) | Every node, every input and output | +| [API](API.md) | The HTTP routes the frontend calls | +| [Architecture](Architecture.md) | How it is put together, and why it is put together that way | +| [Development](Development.md) | Running the tests, the lint, and cutting a release | +| [Troubleshooting](Troubleshooting.md) | When a node, a preview or a LoRA does not turn up | + +Each node also carries its own help inside ComfyUI. The `?` on a node opens the +matching page from [`web/docs/`](../web/docs) without leaving the canvas. + +## Installing + +From the ComfyUI Registry: + +```bash +comfy node install warppipe +``` + +Or by hand, into `ComfyUI/custom_nodes`: + +```bash +cd ComfyUI/custom_nodes +git clone https://github.com/gregory-richard/ComfyUI-WarpPipe.git +``` + +Restart ComfyUI afterwards either way. If you keep the source elsewhere, link it +in rather than copying — see [Development](Development.md#setting-up). + +## What it needs + +ComfyUI, Python 3.9 or newer, and nothing else. There are no third-party Python +dependencies: everything WarpPipe uses — `Pillow`, `aiohttp`, `torch` — already +ships with ComfyUI. + +[Civitai Updater](https://github.com/gregory-richard/comfyui-civitai-updater) is +not required but is worth having; see +[Usage → What the sidecars give you](Usage.md#what-the-sidecars-give-you). + +## A quick tour + +The shortest useful workflow is three nodes: + +``` +Load Checkpoint ──► Prompt + LoRAs ──► KSampler + (model, clip, prompt) +``` + +Type a prompt, press `/`, pick a LoRA, press `Tab`. The tag lands on a line of +its own and the LoRA is applied to the model and CLIP that come out. + +The bundling is worth adding once a workflow has more than one model setup in +it: + +``` +Load Checkpoint ─┐ +Warp Provider ──┼──► Warp ────────► Unwarp ──► KSampler ──► VAE Decode +Prompt + LoRAs ──┘ │ │ + └────────────────► Save Image (Civitai) ◄┘ +``` + +The middle link carries the lot. Build a second Warp with a different checkpoint +and different steps, and switching between them is one connection moved. + +## Version + +This wiki documents **4.0.0**. See the [changelog](../CHANGELOG.md) for what +changed, and [Development](Development.md) for how releases are cut. diff --git a/wiki/Nodes.md b/wiki/Nodes.md new file mode 100644 index 0000000..bbf5341 --- /dev/null +++ b/wiki/Nodes.md @@ -0,0 +1,194 @@ +# Nodes + +Seven nodes, all under **Custom/WarpPipe Nodes**. Node IDs are what saved +workflows and the API use; display names are what you see on the canvas. + +| ID | Display name | +| --- | --- | +| `Warp` | 🌀 Warp | +| `Unwarp` | 🌀 Unwarp | +| `Warp Provider` | 🌀 Warp Provider | +| `Warp Lora Prompt` | 🌀 Prompt + LoRAs | +| `Save Image Civitai` | 🌀 Save Image (Civitai) | +| `FD Scheduler Adapter` | 🌀 Scheduler Adapter for FaceDetailer | +| `Dead End` | 🚫 Dead End | + +--- + +## 🌀 Warp + +Bundles data into a single `WARPPIPE` object. + +**Inputs** — all optional. + +| Input | Type | Notes | +| --- | --- | --- | +| `warp` | `WARPPIPE` | Start from another warp's contents, then add to them | +| `model_1`, `model_2` | `MODEL` | | +| `clip` | `CLIP` | | +| `clip_vision` | `CLIP_VISION` | | +| `vae` | `VAE` | | +| `conditioning_positive`, `conditioning_negative` | `CONDITIONING` | | +| `image` | `IMAGE` | | +| `mask` | `MASK` | | +| `latent` | `LATENT` | | +| `prompt_positive`, `prompt_negative` | `STRING` | link only | +| `batch_size`, `seed`, `steps_1`, `steps_2`, `steps_3`, `width`, `height` | `INT` | link only | +| `cfg` | `FLOAT` | link only | +| `sampler_name` | sampler enum | link only | +| `scheduler` | scheduler enum | link only | + +**Output:** `warp` — `WARPPIPE`. + +Three step counts exist because multi-pass workflows want them: a base pass, a +refiner, a detailer. Nothing forces you to use more than `steps_1`. + +Sampler and scheduler are coerced on the way in. A name ComfyUI does not know +becomes `euler` or `karras` rather than travelling as something a sampler will +later reject. Linked enums from other node packs are accepted — see +[Architecture → Validation](Architecture.md#validation). + +--- + +## 🌀 Unwarp + +Unpacks a warp. Its one input, `warp`, is optional; with nothing connected every +output is `None`. + +**Outputs**, in order: + +`model_1`, `model_2`, `image`, `mask`, `clip`, `clip_vision`, `vae`, +`conditioning_positive`, `conditioning_negative`, `latent`, `prompt_positive`, +`prompt_negative`, `batch_size`, `seed`, `steps_1`, `steps_2`, `steps_3`, `cfg`, +`sampler_name`, `scheduler`, `width`, `height`. + +A field the warp never carried comes back as `None`, not as a default. Inventing +`euler` for a sampler nobody set would produce an image with the wrong settings +and no indication that anything was missing. + +--- + +## 🌀 Warp Provider + +Sampling parameters and a matching empty latent, in one node. + +| Input | Type | Default | Range | +| --- | --- | --- | --- | +| `batch_size` | `INT` | 1 | 1–64 | +| `seed` | `INT` | 0 | 0–2⁶⁴−1 | +| `steps_1` | `INT` | 20 | 1–200 | +| `steps_2`, `steps_3` | `INT` | 0 | 0–200 | +| `cfg` | `FLOAT` | 7.0 | 0.0–50.0 | +| `sampler_name` | sampler enum | `euler` | | +| `scheduler` | scheduler enum | `normal` | | +| `size_preset` | 31 presets | Square (SDXL native) 1024×1024 | | +| `custom_width`, `custom_height` | `INT` | 1024 | 64–8192, step 8 | + +**Outputs:** `latent`, `batch_size`, `seed`, `steps_1`, `steps_2`, `steps_3`, +`cfg`, `sampler_name`, `scheduler`, `width`, `height`. + +Presets are labelled `use case | ratio | width × height | megapixels` and sorted +by aspect ratio (9:16 up to 16:9), then by size. Every one is divisible by 8 +with the short side at most 2048. Choose `Custom` to use the two custom boxes. + +The latent is four channels at an eighth scale — the SD1.5/SDXL shape, matching +ComfyUI's own Empty Latent Image. Wider-latent architectures need their own +node. + +Dimensions are validated before the tensor is made: a linked width that is not +an integer, is out of range, or is not divisible by 8 raises rather than +producing a latent nothing can sample. + +--- + +## 🌀 Prompt + LoRAs + +The prompt and its LoRAs in one text box. Full walkthrough in +[Usage → Writing a prompt](Usage.md#writing-a-prompt). + +| Input | Type | Notes | +| --- | --- | --- | +| `text` | `STRING` | multiline. The prompt, with `` tags inline and `//` notes | +| `apply_to_clip` | `BOOLEAN` | default on. Patch the text encoder as well as the model | +| `model` | `MODEL` | optional | +| `clip` | `CLIP` | optional | + +**Outputs:** `model`, `clip`, `prompt`. + +`prompt` is what you wrote with tags and notes removed and nothing added. Blank +lines you wrote are kept — at most one in a row — but a line that held only a +tag or only a note is removed rather than left behind as a blank. + +**`apply_to_clip`** decides whether the text encoder is patched too. Whether it +matters depends entirely on the LoRA: in a survey of 761 files, every Krea2, +Flux2, Wan, Qwen, ZIT and LTX LoRA was model-only, so patching CLIP changed +nothing; among SDXL LoRAs, 76% carried text-encoder weights, where turning it off +discards half of what the LoRA does. Leave it on unless you have a reason. + +Encode the prompt **after** the LoRAs are applied — take this node's `clip` +output into your text encoder, not the CLIP straight from the loader. + +There is also a hidden `loras` input, kept so workflows saved before the tags +moved into the prompt still load. The strip offers to move its contents into the +prompt; nothing writes to it any more. + +--- + +## 🌀 Save Image (Civitai) + +Saves images with metadata Civitai reads. Details in +[Usage → Saving for Civitai](Usage.md#saving-for-civitai). + +| Input | Type | Default | Shown as | +| --- | --- | --- | --- | +| `filename_prefix` | `STRING` | `WarpPipe` | Save as | +| `embed_metadata` | `BOOLEAN` | on | Generation info | +| `embed_workflow` | `BOOLEAN` | on | Workflow | +| `file_format` | `png` / `jpeg` | `png` | Format | +| `preview` | `BOOLEAN` | on | Preview | +| `images` | `IMAGE` | — | optional | +| `warp` | `WARPPIPE` | — | optional | + +Hidden inputs: `prompt`, `extra_pnginfo`, `unique_id`. No outputs — this is an +output node. + +`images` is optional on purpose: bypassing an upstream branch leaves this node +idle instead of failing the whole prompt. When nothing arrives it saves nothing +and says so, on the node and in the log, rather than reporting a silent success. + +--- + +## 🌀 Scheduler Adapter for FaceDetailer + +**Input:** `scheduler` — a KSampler scheduler (required). +**Output:** `scheduler` — one FaceDetailer accepts. + +FaceDetailer builds its list as ComfyUI's schedulers plus Impact Pack's own. +Exotic entries — `AYS SDXL`, `GITS[coeff=1.2]`, `OSS FLUX` and friends — pass +through when the target list has them and are mapped to `karras` when it does +not. + +--- + +## 🚫 Dead End + +**Input:** `input` — any type, optional. **No outputs.** + +It is not an output node, so ComfyUI never executes it, which is the point: it +terminates a branch without running it. Useful for parking a path while you work +on another, or for tidying an unused output. + +--- + +## Registration + +Both registration paths are built from one table in `warp_pipe.py`, so every +node exists whichever path runs. + +- **Legacy** (default) — `NODE_CLASS_MAPPINGS` and `NODE_DISPLAY_NAME_MAPPINGS`. +- **V3** — set `WARPPIPE_ENABLE_V3=1` to register through + `comfy_entrypoint()` and ComfyUI's V3 schema instead. + +The two are mutually exclusive; the package exports one or the other, never +both. If a node were ever added without a V3 schema, startup logs an error +naming it rather than quietly dropping it. diff --git a/wiki/Troubleshooting.md b/wiki/Troubleshooting.md new file mode 100644 index 0000000..8cfb3c3 --- /dev/null +++ b/wiki/Troubleshooting.md @@ -0,0 +1,147 @@ +# Troubleshooting + +## The nodes do not appear + +Restart ComfyUI after installing, then check the startup log. WarpPipe logs +`WarpPipe LoRA library routes registered` when it has loaded; an import failure +appears above that as a traceback naming the file. + +If you installed by hand, the folder has to be directly inside `custom_nodes`, +with `__init__.py` at its top level. + +## Some nodes are missing, but not all + +If `WARPPIPE_ENABLE_V3` is set in your environment, WarpPipe registers through +ComfyUI's V3 API. Should a node ever lack a V3 schema, startup logs an error +naming it. Unset the variable to fall back to the legacy path, which registers +everything. + +## The prompt box is a plain text field + +No colouring, no strip, no `/` completion means the frontend did not load. Check +the browser console for a failed import of `/extensions/warppipe/prompt_ui.js`. + +If you installed from the registry with a version before 4.0.0, the wheel did +not ship the JavaScript at all — `package-data` listed only the documentation. +Upgrading fixes it. + +## Every tag is red + +Red means no file matched. If *every* tag is red, the library did not load +rather than every name being wrong. Open `/warppipe/loras` directly: + +``` +http://127.0.0.1:8188/warppipe/loras +``` + +An error or an empty list points at ComfyUI's LoRA folder configuration, not at +your prompt. + +## A tag is red but the file is there + +The name has to identify exactly one file. Try, in order: the filename without +folder or extension, then several words from it in any order. A bare fragment +that matches several files cannot be resolved — in one real collection, 24 files +share a single common phrase. + +A near miss suggests the closest names in the message, which usually settles it. + +## The run stops with "matches no file" or "matches N files" + +That is deliberate. Generating without a LoRA the prompt asked for gives a wrong +picture *and* wrong metadata, so an unresolvable tag fails the run rather than +being skipped with a warning nobody reads. Fix the tag, or comment it out with +`//`. + +## No previews in the browser + +Previews are read off the disk: an image beside the model file named +`.preview.png`, `.preview.jpg`, `.preview.webp`, or just `.png`. +[Civitai Updater](https://github.com/gregory-richard/comfyui-civitai-updater) +downloads them; so do most model managers. + +If the files are there but the cards are blank, the thumbnail cache has nowhere +to write. It goes next to ComfyUI's user directory; check that is writable, and +that Pillow is importable in ComfyUI's Python. + +## No trigger words anywhere + +Trigger words come only from `.civitai.info` sidecars — there is no fallback, +because nothing else on disk knows them. Run Civitai Updater's **Scan Metadata +Only** to fetch them without checking for updates. + +`Tab` on a tag always answers: it says the LoRA declares none rather than doing +nothing, so you can tell a missing sidecar from a key that did not register. + +## Everything is grouped under folder names, not base models + +Same cause. `baseModel` comes from the sidecar; without one, WarpPipe falls back +to the folder, which is right for collections filed that way and meaningless for +the rest. + +## A tag is orange + +The file is real but its sidecar declares a different base model to the +checkpoint you have wired in. It will load; it usually does nothing useful. You +may know better than the sidecar — the warning does not stop anything. + +With nothing connected to `model`, nothing can be judged and nothing goes +orange. + +## Civitai does not link the resources + +Check the saved PNG actually has a `parameters` chunk — **Generation info** has +to be on, and something has to reach the `images` input. + +Then check the resources were found. The node logs any name it could not resolve +and left out. The usual causes: + +- The LoRA is not in ComfyUI's LoRA folder any more, so it was not applied + either. +- The branch that loaded it was behind a switch that did not run — which is + correct: it did not contribute to the image. +- The upload is a JPEG re-encode. Re-encoding strips EXIF, and with it the + generation info. + +## Saved nothing and said nothing + +Fixed in 4.0.0. When nothing reaches `images` the node now reports it on screen +and in the log instead of showing a green tick over an empty save. If you see the +old silent behaviour you are on an older version. + +## The workflow did not embed + +JPEG has nowhere to keep it. The node saves the file and tells you the workflow +was dropped; the generation info still goes into EXIF, which Civitai reads. Use +PNG if you want the graph in the file. + +## Schedulers named beta57 or bong_tangent behave oddly + +WarpPipe registers those names globally so other packs — FaceDetailer especially +— accept a workflow built around them. Until RES4LYF itself is installed they +are karras under another label, which is logged at startup. Install RES4LYF for +the real implementations. + +## A workflow from 2.x will not connect + +3.0.0 renamed the internal type from `CONTROL` to `WARPPIPE`. Reconnect the +Warp-to-Unwarp link once and it will save correctly from then on. + +## Outputs are None + +An Unwarp returns `None` for anything the warp never carried, rather than +inventing a default. If a sampler is complaining about a missing value, connect +it into the Warp — or check that the Warp you are unpacking is the one you +think, since a chained Warp only carries what it was given plus what it was told. + +## Reporting something else + +Turn on debug logging and include the startup lines plus whatever the run +produced: + +```python +import logging +logging.getLogger("WarpPipe").setLevel(logging.DEBUG) +``` + +Issues: diff --git a/wiki/Usage.md b/wiki/Usage.md new file mode 100644 index 0000000..5f293dd --- /dev/null +++ b/wiki/Usage.md @@ -0,0 +1,212 @@ +# Usage + +## Writing a prompt + +The **Prompt + LoRAs** node is a text box that understands what is in it. + +![The prompt box, with every colour state showing](../assets/docs/prompt-node.webp) + +LoRAs go inline, A1111 style: + +``` +a portrait in a sunlit kitchen, golden hour, soft bokeh +highly detailed, 35mm film // pushed up from 0.6 + + + +// parked for now +``` + +The node's **model** and **clip** outputs come out patched with every tag it +resolved. Its **prompt** output is what you wrote with the tags and the notes +taken out — and nothing added. + +### What the colours mean + +| | | +| --- | --- | +| cyan | a tag matching a file, built for the model you have connected | +| red, wavy underline | a tag matching nothing — check the spelling | +| orange, dotted underline | a real file, but built for another base model | +| amber | an embedding | +| green | a trigger word belonging to one of the LoRAs in use | +| grey italic | a note after `//`, which is not sent to the model | + +Red and orange are different complaints. Red will not load at all. Orange loads +perfectly well and usually does nothing useful — you may know something the +sidecar does not. Hover either for the reason. + +With nothing wired into **model**, or for a file whose sidecar declares no base, +nothing can be judged and nothing goes orange. + +### Naming a LoRA + +A tag does not need the full filename, only enough to identify one file. +Matching is tried in this order, ignoring case and slash direction: + +1. the full name — `sdxl/atelier - Detail Tweaker - v2.0 (SDXL).safetensors` +2. the filename without folder or extension — `atelier - Detail Tweaker - v2.0 (SDXL)` +3. every word, in any order — `sdxl detail tweaker` finds the above +4. a unique fragment — `detail tweaker` + +Option 2 always works and is what the browser inserts. Option 3 is usually the +shortest thing worth typing. + +**A tag that matches nothing, or matches several files, stops the run** and says +what it matched. That is deliberate: generating without a LoRA the prompt asked +for gives a wrong picture *and* wrong metadata, and a console warning is too easy +to miss. A near miss suggests the closest names, so a typo is a question rather +than a dead end. + +### Completing with `/` + +![Typing slash completes against the library inline](../assets/docs/inline-completion.webp) + +The suggestion is drawn in grey rather than shown in a popover, so it never +covers what you are typing, and it is filtered to the base model you have wired +in. `Tab` takes it. Taking a LoRA that declares trigger words offers them +straight away as a second suggestion, so the common pair — add it, then say its +word — is `Tab` twice and no dialog. + +Nothing is written into the box until you accept. The suggestion cannot be typed +over, cannot land in the undo history, and does not mark the workflow changed +while you are only looking. + +### Keys + +| | | +| --- | --- | +| `/` | complete against the library, inline | +| `Tab` | take the suggestion; on an existing tag, offer that LoRA's trigger words | +| `↑` `↓` | walk the alternatives while a suggestion is showing | +| `Ctrl+↑` `Ctrl+↓` | change the weight of the tag the caret is in, in steps of 0.1 | +| `Ctrl+/` | comment the line out, which switches that LoRA off | +| `Alt+↑` `Alt+↓` | move the line, which reorders when LoRAs are applied | +| `Esc` | drop the suggestion | + +Each of these is an ordinary edit to the text, which is why a tag gets a line to +itself. It also means the browser's own undo understands all of them. + +### Trigger words + +Nothing is added to your prompt. `Tab` on a tag offers that LoRA's words, and +the strip lists the first six as buttons; either way you pick, and they land on a +line of their own as ordinary prompt text. + +That is the point of choosing. Appending them silently would send words you never +saw, and creators do not always put a keyword in `trainedWords` — in one real +collection the longest entry ran to 655 characters. + +### The browser + +**Browse LoRAs** opens the library as cards. + +![The LoRA library browser](../assets/docs/lora-browser.webp) + +The rail groups by family with counts. The family of the model you have +connected is pinned and marked; the rest stay visible but dimmed, because you +may have a reason. Search matches creator, name, version and family. Clicking a +card writes its tag where the caret was. + +## Bundling a generation + +![Warp bundling three sources; Unwarp giving them back](../assets/docs/warp-unwarp.webp) + +Connect anything you like into a **Warp** — models, CLIP, VAE, conditioning, +images, masks, latents, prompts, and the sampling parameters. One `WARPPIPE` +link carries all of it. An **Unwarp** unpacks it into twenty-two outputs in a +fixed order. + +Two things worth knowing: + +- **Warps chain.** Give a Warp another warp on its `warp` input and it starts + from that one's contents, then applies whatever else is connected. Build a + base warp and extend it per branch. +- **Absent is not default.** A field nothing was connected to comes back as + `None`, not as an invented `euler` or `512`. If a downstream node needs a + value, connect one. + +The intended shape is one Warp per model or style — each with its own steps, +CFG, sampler, scheduler and resolution — and switching between them by moving +the single link into your Unwarp. + +### Parameters and latents + +**Warp Provider** is the other half: one node holding the seed, steps, CFG, +sampler, scheduler and size, and producing the empty latent to match. + +![Warp Provider](../assets/docs/warp-provider.webp) + +Thirty-odd presets cover every common aspect ratio from 9:16 to 16:9, each +labelled with its use, ratio, pixel size and megapixels, sorted by ratio and +then by size. Pick `Custom` to use the `custom_width` and `custom_height` boxes. + +The latent it makes is the SD1.5/SDXL shape — four channels at an eighth scale, +the same as ComfyUI's own Empty Latent Image. Architectures on a wider latent +(Flux, SD3) need their own empty-latent node; the presets here are SDXL's +anyway. + +## Saving for Civitai + +![Save Image (Civitai)](../assets/docs/save-image-civitai.webp) + +Civitai identifies a checkpoint or a LoRA by a hash of the file, not by its +name, and reads those hashes out of an A1111-style `parameters` text chunk. +**Save Image (Civitai)** writes that chunk alongside ComfyUI's own, so one PNG +both satisfies the site and still reopens as a workflow. + +Connect your images, and a warp carrying the prompt, seed, steps, CFG and +sampler. The resources are worked out from the graph: + +- It walks back from itself, so only nodes that actually fed this image count. + A branch behind a switch that did not run is not credited. +- With several checkpoints upstream, the nearest one wins — a refiner in front + of a base is the one recorded. +- LoRAs are found in ComfyUI's own loaders, in numbered stacker slots, in + rgthree-style slot dicts, and as `` tags in any text input. A tag + behind a `//` is skipped, because it never loaded. +- A LoRA the workflow names but which is not on disk is left out and logged, + rather than credited to a picture it never touched. + +### The toggles + +| | | +| --- | --- | +| **Save as** | `filename_prefix`. Understands `%date:yy-MM-dd hh-mm-ss%` as well as ComfyUI's `%width%`/`%height%`. A slash makes a subfolder. | +| **Generation info** | The `parameters` block: prompt, seed, sampler, size, model and LoRA hashes. | +| **Workflow** | The whole ComfyUI graph, so the image can be dragged back in — which also reveals your pipeline to anyone you send it to. PNG only. | +| **Format** | `png` is lossless and holds the workflow; `jpeg` is much smaller and keeps the generation info in EXIF, which Civitai also reads. | +| **Preview** | Whether the saved images appear on the node. They are saved either way. | + +`%date:...%` is expanded here rather than in the frontend, so a prompt sent over +the API behaves the same as one run from the browser. + +Choosing JPEG with **Workflow** on saves the file and tells you the workflow was +dropped, rather than silently omitting it. + +## What the sidecars give you + +WarpPipe reads `.civitai.info` files sitting beside your models — the sidecars +[Civitai Updater](https://github.com/gregory-richard/comfyui-civitai-updater) +writes and keeps current. + +| Field | Used for | Without it | +| --- | --- | --- | +| `trainedWords` | trigger words: `Tab`, the strip, green colouring | no trigger words at all | +| `baseModel` | family grouping, the orange warning, filtering `/` | grouped by folder instead | +| `model.name` | the real model name on cards and in the strip | the filename | +| `modelId`, `id` | the ↗ link to its page on Civitai | no link | +| `files[].hashes.SHA256` | the AutoV2 hash Civitai matches on | computed by hashing the file, then cached | + +Only the hash has a fallback. Everything else is simply absent, and the features +built on it go quiet — the LoRA still lists, still previews and still applies. + +Preview images are read straight off the disk: any `.preview.png`, `.preview.jpg` +or bare `.png` next to the model file. They are cached down to 320px WebP +thumbnails on first request, because full previews are generations in their own +right — around 1.27 MB each in a real collection, against 6–9 KB cached. + +Links point at `civitai.red` rather than `civitai.com`. Since the April 2026 +split, `.com` serves an SFW-filtered catalogue, so a link to it for a mature +model arrives nowhere useful; `.red` serves everything, checked against a model +flagged safe.